[00:00:09] <vаlexey> не, не одни :-)
[00:00:20] <geniepro> а, их там много )
[00:00:22] <vаlexey> вон, vlad2 еще живет например :-)
[00:00:42] <geniepro> он не америкос, так что не в счёт, его в любой момент оттуда турнут обратно )
[00:00:55] <vаlexey> это врятли :-)
[00:01:26] <geniepro> vlad2, тебе пора давно домой, чо ты там среди врагов окопался )))
[00:02:17] <s6> живот наедает
[00:02:37] <s6> как наест, ему сразу грин кард и гражданство США
[00:03:35] <vаlexey> грин давно есть, сколь я понимаю
[00:07:30] <vаlexey> http://lenta.ru/news/2014/07/14/bishops/
[00:08:48] <vаlexey> kpmý: а как ты смог избежать Диасофта?
[00:08:59] <vаlexey> там же вроде на делфях пишут в том числе
[00:09:05] <vаlexey> и были попытки писать на жабе
[00:09:15] <vаlexey> и никаких плюсов!
[00:09:31] <geniepro> vаlexey: в Диасофте КЛОАКА и там не пишут на абироне!!!
[00:09:49] <vаlexey> от делфей до ББ один шаг!
[00:10:07] <geniepro> vаlexey: а вот обратного шага петруха так и не сделал же )
[00:10:14] <kpmý> vаlexey: да чё я, меня только тестером берут, хуле туда идти тестером)
[00:10:44] <vаlexey> странно. а почему только тестером?
[00:11:00] <geniepro> vаlexey: ну кодить не умеет же )
[00:11:03] <vаlexey> хотя, тестером тоже прикольно - находить недостатки в чужой работе. хе-хе :-)
[00:11:13] <vаlexey> geniepro: он же официально программистом работает.
[00:11:26] <geniepro> vаlexey: КТО??? о_О
[00:11:32] <vаlexey> Петр
[00:11:36] <geniepro> где????
[00:11:48] <geniepro> он вроде отошёл от этих дел давно )
[00:11:51] <vаlexey> в ИРО, насколько я понимаю.
[00:11:59] <geniepro> в ИРА мб? ))
[00:12:10] <vаlexey> Институт Развития Образования же
[00:12:25] <boris_ilov> "<s6> эх. не программировали вы промышленно. хеллоуворлдщики"
ахаха, ну ты жгешь напалмом. я этим вашим промышленным хуярю от рассвета до заката. не надо учить ацца ибацца :D
[00:12:26] <kpmý> ну так кодить надо на джяве, а джяву надо знать хорошо, а я не знаю
[00:12:44] <geniepro> kpmý: так выучи на интуите же )
[00:12:48] <vаlexey> джава у них вроде загнулась. судя по слухам.
[00:12:53] <vаlexey> вернулись на делфи :-)
[00:13:10] <boris_ilov> kpmy: А ты и не узнаешь, пока не устроишься ))
[00:13:32] <geniepro> vаlexey: дельфы разве не мёртв давно? о_О
[00:13:34] <kpmý> замкнутый говнокруг ойтирынка труда
[00:13:45] <vаlexey> живет и пахнет :-)
[00:13:47] <geniepro> kpmý: открой стартап же )
[00:13:51] <vаlexey> чем дальше, тем сильнее пахнет!
[00:14:43] <geniepro> ладно всем бб
[00:14:47] <geniepro> бб
[00:14:57] <vаlexey> ББ КБ!
[00:15:04] <geniepro> .ad;бб;проваливай уже!
[00:15:05] <тихий бот> geniepro, "бб" assigned
[00:15:06] <geniepro> бб
[00:15:07] <тихий бот> проваливай уже!
[00:20:12] <boris_ilov> kpmy: Я тож, когда в 1С устраивался, не знал с какой стороны к этому православному чуду подходить
[00:20:29] <boris_ilov> и от родного в исходниках тошнило
[00:20:34] <kpmý> а раз джява загнулась то вообще нет смысла идти.
я понимаю там, оберон для идеи, а жава и прочее для денег, а если для денег использовать делфи то нахер не нужно, ведь есть оберон
[00:21:06] <kpmý> вот мцст выбрали бы оберон, я бы прямо сразу к ним рванул демпинговать
[00:21:32] <boris_ilov> продвигать надо оберон
[00:21:40] <boris_ilov> конкретными продуктами
[00:22:18] <boris_ilov> вот пришел в фирму и показываешь какие они лохи, и как ты их базы на х... на одном меге оперативы вертишь :D
[00:23:12] <kpmý> а они такие "а где я кодеров найду когда ты в москву свалишь?" :)
[00:23:44] <vаlexey> да на обероне сможет кто угодно - довольно низкий порог вхождения
[00:23:52] <boris_ilov> а ты такой "тык хуль тут в 1к строк любой дебил разберется без пива"
[00:23:56] <vаlexey> плеваться правда будут, ну да за это им деньги платят :-)
[00:24:43] <boris_ilov> это вон в одноэсах расчет зарплаты 30к строк
[00:24:43] <kpmý> ну тогда надо сразу идти евангелистом
[00:24:50] <boris_ilov> 30к строк блеать!
[00:25:09] <boris_ilov> один модуль!
[00:25:33] <boris_ilov> представляешь какая говень?
[00:25:51] <kpmý> ну круто наверное там все считают по законам и поправкам
[00:26:19] <kpmý> ну то есть я не отказываю одинэсу в мощности их фич :)
[00:26:20] <boris_ilov> ну типа да
[00:26:30] <boris_ilov> но можно гораздо проще и короче
[00:26:40] <kpmý> просто зачем все это самому поддерживать на плаву - не понимаю
[00:26:49] <kpmý> пусть даже и за бабло
[00:26:57] <kpmý> только от безысходности
[00:27:00] <boris_ilov> я однажды (риал тру стори) сократил модуль 10000 строк до 2000
[00:27:13] <kpmý> принуждение голодом работает хорошо, на чем угодно станешь писать
[00:27:15] <boris_ilov> просто потому что у аффтара руки из жопы росли
[00:27:39] <vаlexey> не, руки там были просто заточены под другой KPI :-)
[00:27:56] <vаlexey> старый, добрый аутсорсинговый KPI
[00:28:11] <boris_ilov> гы гы
[00:28:33] <boris_ilov> вот любопытное наблюдение
[00:28:41] <boris_ilov> я вижу оч много говна в 1с
[00:28:51] <boris_ilov> но с другой стороны понимаю что иначе никак
[00:29:16] <boris_ilov> ибо без говнокода просто не выживешь
[00:29:31] <boris_ilov> и перфекционисты типа меня на самом деле лохи
[00:29:36] <boris_ilov> в рыночной экономике
[00:29:47] <kpmý> мы вот пилили для таксистов софт, тоже приходилось, да
[00:29:57] <kpmý> бизнес туп и агрессивен
[00:30:35] <boris_ilov> вот даже у меня в офисе прижимают п...ц
[00:30:58] <boris_ilov> когда тебе на неделю ставят задачу запилить некую херню
[00:31:02] <boris_ilov> без тз
[00:31:11] <boris_ilov> и строк в 4к ожидаемо
[00:31:24] <boris_ilov> причем совершенно незнакомую хрень
[00:31:38] <boris_ilov> вот что должно быть на выходе?
[00:31:47] <boris_ilov> херачишь днем и ночью
[00:31:49] <vаlexey> работающий код :-)
[00:32:02] <boris_ilov> переписываешь с нуля по 1к при перепостановке
[00:32:13] <boris_ilov> ни документации, ни хера
[00:32:21] <vаlexey> нормуль :-)
[00:32:34] <boris_ilov> нормуль пока я есть
[00:32:45] <kpmý> бюджетником хорошо, хочешь и отпинываешь задачу обратно на переформулировку
[00:32:46] <boris_ilov> а кроме меня никто нихера не знает и писец
[00:32:51] <vаlexey> а потом наймут другого тебя и он тоже за неделю наговнокодит
[00:32:53] <vаlexey> делов то :-)
[00:33:10] <boris_ilov> другого меня еще найти надо
[00:33:13] <boris_ilov> :)
[00:33:28] <vаlexey> это да.
[00:33:36] <boris_ilov> ну то есть я умею некоторые вещи, которые другие на порядок дрольше делают
[00:33:46] <boris_ilov> и наоборот
[00:33:48] <vаlexey> поэтому правильный манагер будет отслеживать тебя и делать так, чтобы ты не решался уйти :-)
[00:33:53] <boris_ilov> т.е. каждый чел уникален
[00:34:04] <vаlexey> незаменимых нет!
[00:34:07] <boris_ilov> вот он так и делает :(
[00:34:21] <kpmý> оберон всех уравняет)
[00:34:29] <boris_ilov> неа
[00:34:35] <kpmý> всех задемпингует
[00:34:44] <boris_ilov> есть программеры которые с рекурсией никак, например
[00:34:48] <boris_ilov> реально
[00:34:50] <boris_ilov> не могут
[00:34:50] <vаlexey> o_O
[00:34:52] <vаlexey> O_o
[00:34:57] <boris_ilov> о да!
[00:35:01] <vаlexey> O_O
[00:35:12] <boris_ilov> сам удивляюсь каждый раз
[00:35:36] <vаlexey> Не, я тоже когда-то таким был. Но за полгода я помнится перерос это. В самом начале было :-)
[00:35:54] <boris_ilov> ну просто в 1с ее не много надо
[00:35:59] <vаlexey> Помню у меня был чудный код - рекурсия запрограммированная без рекурсии :-) То есть циклом + стеком рукотворным.
[00:36:03] <boris_ilov> вот наверно народ и не вкуривает
[00:36:20] <vаlexey> мне тогда это показалось более явным и вообще более простым. Потом переписал это место.
[00:37:31] <vаlexey> kpmý: а работать можно из дома, или каждый день в офис?
[00:38:47] <kpmý> можно по-разному, зависит от списка открытых задач в трекере
[00:39:10] <vаlexey> и это правильно
[00:43:47] <vаlexey> а шо? может в свете http://habrahabr.ru/post/229827/ запилить инициативу по отечественному компу и оси на базе Оберона?
[00:44:04] <vаlexey> а то ведь исходники есть и их мало - модифицировать просто
[00:44:22] <vаlexey> верилог-код тоже есть. сделать из этого asic - элементарно.
[00:44:43] <vаlexey> и это сможет производиться чисто в россии. никаких супер-пупер нанометровых технологий там не нужно ведь :-)
[00:45:54] <boris_ilov> "asic" был такой диалект васика помнится
[00:46:25] <boris_ilov> http://en.wikipedia.org/wiki/ASIC_programming_language
[00:47:37] <vаlexey> http://ru.wikipedia.org/wiki/ASIC
[00:48:12] <kpmý> че вирт не сделал троичный конпутер
[00:48:21] <boris_ilov> vаlexey: Тык надо, да. Оберон во всякие ЧПУ только в лет пойдет
[00:48:30] <vаlexey> fpga->asic делается, сколь я понимаю, элементарно
[00:48:54] <vаlexey> чпу не уверен, а вот в университеты - почему нет?
[00:49:15] <boris_ilov> На чпу просто реально говеный софт
[00:49:36] <boris_ilov> если с умом взяться, то можно отхватить кусок
[00:49:50] <vаlexey> я знаю. но я сильно не уверен что гуй-ориентированная сильно не реалтайм система со сборщиком мусора хорошо годится для чпу
[00:50:06] <boris_ilov> да все норм
[00:50:15] <boris_ilov> тем более не обязательно GC ведь
[00:50:25] <vаlexey> ну, то есть там можно переделать, да. от оберона там остается полтора перепиленных модуля :-)
[00:50:40] <boris_ilov> ой да ладно
[00:50:51] <boris_ilov> без GC оберон не шибко пострадает
[00:51:03] <boris_ilov> ну будет там подсчет сцылок, ну и чо?
[00:51:16] <vаlexey> а вот в качестве игрушечного компа для отработки методик - в самый раз. ибо комп виде насвкозь целиком
[00:51:23] <vаlexey> в обучении это очень важно
[00:51:39] <boris_ilov> а гуй только под тачскрины переделать придется
[00:52:01] <boris_ilov> а софт я видел реально говенный
[00:52:12] <vаlexey> а не вот - у нас тут такая вот волшебная фигня, с гигабайтами озу, гигагерцами и волшебными гномиками внутри + монстрооперационка + монстроязык, и сейчас с помощью всего этого мы неведомым волшебным образом попробуем соорудить hello world
[00:52:34] <boris_ilov> например была программулина на сях, которая автокадовские чертежи для лазера подготавливала
[00:52:48] <boris_ilov> писана каким-то ингжинером пришибленнымм
[00:52:53] <boris_ilov> черт ногу сломит
[00:53:15] <vаlexey> :-)
[00:53:37] <vаlexey> почти любой корпоративный софт является говном
[00:53:49] <vаlexey> просто в силу специфики производства оного софта, и жизненного цикла
[00:54:00] <vаlexey> коробочный и опенсорс - чуть лучше
[00:54:16] <boris_ilov> и все это говно на win 3.11 крутилось
[00:54:36] <vаlexey> ну, там хотя бы кооперативная многозадачность есть, не то что в обероне ;-)
[00:55:21] <boris_ilov> вот с многозадачностью надо дружить оберон, да
[00:55:31] <boris_ilov> только х.з. как
[00:56:06] <boris_ilov> отдельные ядра в разных процессах если только
[00:56:10] <vаlexey> актив оберон!11
[00:56:24] <boris_ilov> сложно
[00:56:29] <boris_ilov> не нужно
[00:56:57] <vаlexey> значит запускаем много оберончиков!!1
[00:57:02] <boris_ilov> вот!
[00:57:04] <vаlexey> каждый делает свою задачку!
[00:57:16] <vаlexey> общаются друг с другом пересылая записочки!
[00:57:21] <boris_ilov> CSP!
[00:57:33] <vаlexey> получаем эдакий наноерланг :-)
[00:57:44] <boris_ilov> go же
[00:58:05] <vаlexey> не несколько другой. там все же кучи не разделены
[00:58:09] <vаlexey> там разделены только стеки
[00:58:16] <vаlexey> и есть опциональная возможность каналов
[00:59:23] <boris_ilov> вообще вся эта многозадачность интересная тема
[00:59:48] <boris_ilov> но не на столько чтобы прям до усраки
[00:59:56] <vаlexey> это уже лет 30 как смекнули :-) минимум 30
[01:00:07] <boris_ilov> т.е. на обероне и так 90% задач можно решить
[01:00:30] <vаlexey> от ресурсов зависит :-) и от области задач
[01:00:46] <boris_ilov> ведь задачи какие решаются многими процессами?
[01:00:47] <vаlexey> ну, то есть на Оберон-компе боюсь я не смогу на Обероне решить 90 процентов моих задач :-)
[01:00:57] <boris_ilov> многопользовательность раз
[01:01:15] <boris_ilov> это спокойно разными ядрами решается
[01:01:30] <boris_ilov> загрузить систему по самое не могу два
[01:01:45] <boris_ilov> а вот тут уже поле для маневров
[01:02:11] <boris_ilov> не верю, что то, что обычно делают на потоках, нельзя решить без них
[01:02:17] <boris_ilov> т.е. загрузить систему
[01:02:53] <boris_ilov> параллельные вычисления три
[01:03:07] <boris_ilov> ну тут уж никак без потоков
[01:03:10] <boris_ilov> это да
[01:03:36] <boris_ilov> но это уж совсем специфические вещи
[01:03:54] <boris_ilov> для которых можно заюзать видеокарту и спец. софт, к примеру
[01:04:50] <boris_ilov> вообще как-то неправильно все
[01:05:04] <boris_ilov> нах всякие ученые центральный проц юзают?
[01:05:05] <vаlexey> :-)
[01:05:25] <boris_ilov> сделали бы специальный дюже параллельный проц и не парились
[01:05:32] <vаlexey> сделали уже
[01:05:36] <vаlexey> fpga называется :-)
[01:05:41] <boris_ilov> :)
[01:05:52] <vаlexey> один минус - с частотами там плохо
[01:06:03] <vаlexey> чтобы частота была повыше. нужно делать asic
[01:06:29] <vаlexey> хотя высокие частоты это еще тот гемор в разработке
[01:06:58] <vаlexey> boris_ilov: а ты уже прикидывал среду разработки для спартана?
[01:07:06] <boris_ilov> нет еще
[01:07:21] <boris_ilov> мне ее все не довезут никак
[01:07:47] <vаlexey> а ты где брал?
[01:07:53] <boris_ilov> хз
[01:08:05] <boris_ilov> я через фирму заказал
[01:08:17] <vаlexey> через свою? в смысле где сам работаешь?
[01:08:20] <boris_ilov> да
[01:08:22] <тихий бот> boris_ilov, нет
[01:09:03] <boris_ilov> поставщики, скидки
[01:09:44] <vаlexey> хы. прикольно. то есть заказ идет через вашу бухгалтерию? интересно, как это оформляют?
[01:10:00] <vаlexey> и как объясняют зачем 1Снику fpga? ;-)
[01:10:23] <boris_ilov> фирма официально заказывает fpga
[01:10:32] <boris_ilov> что кому объяснять?
[01:10:43] <boris_ilov> у нас же не филиал
[01:10:54] <vаlexey> но деньги то платит фирма в результате? а ты фирме?
[01:10:59] <boris_ilov> да
[01:10:59] <тихий бот> boris_ilov, нет
[01:11:13] <boris_ilov> обычный купил-продал
[01:11:29] <vаlexey> а как это по бумагам проходит? просто, сколь я помню, обычно какие-то сложности возникали с подобными трюками.
[01:11:45] <boris_ilov> хз
[01:11:50] <vаlexey> забавно у вас :-)
[01:12:02] <vаlexey> а трекинга посылки нема?
[01:12:20] <boris_ilov> неа
[01:12:27] <boris_ilov> да я не парюсь
[01:12:30] <vаlexey> Жуть!
[01:12:36] <vаlexey> а мне приехало таки
[01:12:43] <boris_ilov> сегодня?
[01:12:57] <boris_ilov> завел?
[01:13:10] <vаlexey> оберон еще не заводил
[01:13:25] <vаlexey> так, поставил quartus, и местами офигеваю от IDE
[01:13:28] <vаlexey> непривычно - жуть!
[01:13:45] <vаlexey> нужно в мозгу место для новых категорий расчистить :-)
[01:13:56] <vаlexey> демки запускаю
[01:14:05] <boris_ilov> а Вирт что юзал?
[01:14:06] <vаlexey> и надо ps/2 дивайсы найти будет
[01:14:16] <boris_ilov> вот это проблема да
[01:14:45] <vаlexey> у вирта же спартан. а спартан это xilinx, у них своя какая-то среда разработки
[01:14:53] <vаlexey> у меня же сильно не спартан
[01:15:04] <vаlexey> и соответственно не xilinx
[01:15:06] <vаlexey> у меня альтера
[01:17:59] <vаlexey> так что мне будет веселее чем тебе :-)
[01:18:19] <vаlexey> ибо дорожка у меня несколько альтернативная ;-)
[01:19:27] <vаlexey> boris_ilov: а ты с паяльником дружишь?
[01:19:39] <vаlexey> а то там предлагают вот такой ужоз паять http://www.paddedcell.com/projectoberon/RISC-Daughterboard.pdf
[01:21:20] <boris_ilov> а чо с ним дружить?
[01:21:33] <boris_ilov> правда нынче нужно нанопаяльники использовать
[01:21:43] <vаlexey> зачем нано?
[01:21:44] <boris_ilov> а я последний раз лет 10 назад держал
[01:21:51] <vаlexey> для этой то штуки
[01:21:57] <vаlexey> /me никогда не держал
[01:22:03] <vаlexey> но видимо таки придё-ётся.
[01:22:11] <boris_ilov> а ну тут херня
[01:26:05] <boris_ilov> интересно, а там без этих извращений никак?
[01:27:00] <vаlexey> ну, SD-карту то надо куда--то вставлять по идее. хотя-я.. не помню. у спартана-3 есть дырка для SD?
[01:27:25] <vаlexey> я помню альтеру выбрал еще исходя из соображение того, что меньше паять надо будет.
[01:28:14] <boris_ilov> крысу на кой то хер припаивать
[01:28:21] <boris_ilov> там же два ps/2
[01:28:25] <boris_ilov> ни че не понял
[01:28:37] <vаlexey> два ли?
[01:28:54] <vаlexey> помню я смотрел, и мне не хватало
[01:28:57] <boris_ilov> по спеке два вроже
[01:29:00] <boris_ilov> вроде
[01:29:57] <vаlexey> * Two 9-pin RS-232 serial port
* PS/2-style mouse/keyboard port
[01:30:08] <vаlexey> это spartan-3a
[01:30:15] <boris_ilov> блин
[01:30:18] <boris_ilov> херово
[01:30:28] <vаlexey> ну воткнешь в rs-232!
[01:30:29] <vаlexey> Ж-)
[01:30:45] <vаlexey> делов то!
[01:31:10] <boris_ilov> будем паять значит!
[01:31:42] <vаlexey> в сентябре покажешь :-)
[01:32:16] <boris_ilov> :)
[01:33:58] <vаlexey> что-то на фоточке я там и одного ps/2 не вижу. хотя по спекам он вроде бы есть
[01:34:25] <boris_ilov> вон же он http://www.terraelectronica.ru/images/news/dl_s3board.jpg
[01:34:28] <boris_ilov> у циферблата
[01:35:14] <vаlexey> а, вижу, да.
[01:35:26] <vаlexey> просто он смотрится как lan
[01:36:20] <vаlexey> зато, говорят, у xilinx'а сама fpga в плане именно вентилей-железа лучше чем у альтеры
[01:37:21] <vаlexey> да, на фоточке у вирта тоже эта плата расширения воткнута
[01:37:23] <boris_ilov> http://homes-smart.ru/index.php/oborudovanie/bez-provodov-2-4-ggts/opisanie-radiomodulya-nrf24l01
[01:37:36] <vаlexey> куда SD-карту и крысу.
[01:38:33] <boris_ilov> ага да
[01:39:01] <boris_ilov> я вот че то насчет этой радиосети не понял
[01:39:11] <vаlexey> может сам спаял, а может что-то стандартное. хз.
[01:39:12] <boris_ilov> что там за спецификация
[01:40:02] <vаlexey> http://www.digilentinc.com/Data/Products/S3BOARD/S3BOARD_RM.pdf
[01:40:03] <boris_ilov> покупать отдельно надо
[01:40:09] <vаlexey> ы?
[01:40:12] <vаlexey> или ты про что?
[01:40:31] <boris_ilov> я ж ссылку кинул
[01:40:45] <boris_ilov> у них там крыса, карта и радиосеть
[01:40:57] <vаlexey> SPI
[01:40:59] <vаlexey> у них
[01:41:25] <boris_ilov> nRF24L01
[01:41:42] <vаlexey> да, эти модули надо покупать
[01:41:57] <vаlexey> общаться с ними из своего микроконтроллера надо по SPI
[01:42:53] <boris_ilov> а нах сеть?
[01:43:06] <boris_ilov> думаю мне для начала не нужна
[01:43:15] <vаlexey> думаю тоже не нужна
[01:44:01] <boris_ilov> блин, а ведь там простор для расширений
[01:44:25] <boris_ilov> всякой херни можно наподключать через ентот SPI
[01:44:32] <vаlexey> угу. тонну
[01:44:49] <vаlexey> а поскольку это fpga, то там еще можно тонну тонн наворотить :-)
[01:45:13] <vаlexey> i2c, сеть, аудио - что угодно :-)
[01:45:18] <vаlexey> usb
[01:45:36] <vаlexey> а по i2c и spi можно туеву хучу переферии подключить
[01:45:52] <vаlexey> и bluetooth и wifi
[01:46:05] <vаlexey> и lcd-экраны от телефонов :-)
[01:46:28] <boris_ilov> гы
[01:46:37] <boris_ilov> сделать себе реально черную коробочку
[01:46:44] <vаlexey> софт это хорошо, но когда ты еще и железо можешь менять.. это на порядки больше возможностей!
[01:47:27] <vаlexey> датчики освещенности, датчики приближения. микрофон - что угодно :-)
[01:47:36] <vаlexey> по сути все что есть для ардуино + еще ворох
[01:47:48] <boris_ilov> умный дом на обероне!
[01:48:10] <boris_ilov> хочу чтоб оберон воду в сортире сливал!
[01:48:11] <boris_ilov> :D
[01:48:14] <boris_ilov> ахаха
[01:48:20] <vlad2> С деревянным толчком на улице :)
[01:48:34] <vlad2> в доме - это слишком сложно
[01:48:52] <vаlexey> чтобы воду сливал в деревянном сортире o_O
[01:48:56] <vаlexey> сурово!
[01:48:56] <boris_ilov> такс, товарищи
[01:48:58] <vlad2> трубы, канализация... должнва быть просто яма
[01:48:58] <boris_ilov> бб
[01:49:00] <тихий бот> проваливай уже!
[01:49:57] <vаlexey> ну да. сложность - это уязвимость!
[01:50:08] <vаlexey> вот отрубят воду в квартире, и все! толчок не работает!
[01:50:16] <vаlexey> и жить дома нельзя!
[01:50:24] <vаlexey> а в деревне - можно!
[01:50:30] <vаlexey> минимальный расход воды!
[01:51:07] <vlad2> Сплошные преимущества!
[01:51:27] <vаlexey> дык!
[01:53:20] <vаlexey> блин, сколько же варнингов валится в демо-проектах от производителя!
[01:53:22] <vаlexey> во время сборки.
[01:54:08] <vаlexey> а собирается мелкий прокт - минут 5
[02:09:45] <vlad2> Это кто?
[02:13:08] <vаlexey> verilog
[02:13:14] <vаlexey> в quartus II
[02:13:24] <vаlexey> fpga :-)
[02:13:40] <vаlexey> плюсцы нервно курят в сторонке :-)
[02:47:24] <vlad2> Adobe - мегаконтора. Вообще недостучаться.
[02:47:38] <vаlexey> небожители!
[03:39:52] <vаlexey> всё. hello world вроде бы осилил :-)
[03:40:11] <vаlexey> по тьюториулу реализовал XOR :-D
[03:40:28] <vаlexey> запитаный на два переключателя и один светодиод
[03:50:33] <vlad2> Вау!
[03:53:39] <vаlexey> надо будет для начала на досуге видео осилить. vga-модуль
[03:53:50] <vаlexey> самое зрелищное :-)
[09:10:01] <geniepro> kpmý> че вирт не сделал троичный конпутер
а чо у тебя такой интерес к троичности? о_О изучай сетунь тогда, есть и эмулятор
[09:10:59] <geniepro> http://archive.today/WHUCn
[09:11:18] <geniepro> http://trinary.ru/projects/setunws/
[09:12:11] <geniepro> kpmý: во! тебе сюда! http://trinary.ru/forum/
[10:50:29] <geniepro> vаlexey: ты читал "Карл Поппер. ОТКРЫТОЕ ОБЩЕСТВО И ЕГО ВРАГИ"? если не читал и не проникся, то не имеешь права называться либералом! вот новотварьская читала, оказывается!!!
[11:51:40] <kpmý> geniepro: сетунь там типа калькулятор, не очень интересно. было бы интересней увидеть RISC на троичной базе, типа как в этом документе http://ternarycomp.cs.msu.ru/Papers/Sborn12_Sidorov.pdf
[11:52:05] <kpmý> ternarycomp.cs.msu.su/
[12:05:53] <sda> Снежное. 6:30 утра
http://el-murid.livejournal.com/1923902.html
укры заврались совсем уже
[12:07:16] <kpmý> > Другие страны решают свои проблемы, США - общечеловеческие. Потому что Америка давно не нация.Америка - это человечество, взявшееся за руки.
[12:15:51] <sda> америку нужно разрушить
[13:33:21] <jordan36957> Скачал специально образ диска MSVC express. Для того, что бы поставить на комп без инета. Сейчас проверил. Лезет в инет и докачивает нужные пакеты для установки. Вот, чем плохо сразу засунуть всё в образ.
[15:49:10] <vаlexey> http://www.mk.ru/science/2014/07/14/yadernym-arsenalom-ssha-budet-upravlyat-novyy-superkompyuter-trinity.html
[15:49:14] <vаlexey> хехе :-)
[16:06:14] <kpmý> вот как будут звать скайнет ирл
[16:41:50] <jordan36957> программа падает при итерации
[16:41:54] <jordan36957>  std::list<Widget_t*>::iterator j = Hello->Window.Buffer->begin();

 while (j !=  Hello->Window.Buffer->end())
 {
   std::cout<< (*j)->Size.X <<std::endl;
   std::cout<< (*j)->Size.Y <<std::endl;
   std::cout<< (*j)->Size.W <<std::endl;
   std::cout<< (*j)->Size.H <<std::endl;

   j++;
 }
[16:42:17] <jordan36957> Весь остальной код
[16:42:37] <jordan36957> #include <iostream>
#include <list>
#include <assert.h>

const int TypeWindow = 0;
const int TypeButton = 1;

struct Rect_t
{
 int X;
 int Y;
 int W;
 int H;
};

struct Widget_t
{
 int Type;
 Rect_t Size;
 union
 {
   struct Window_t
   {
     std::string * Name;
     std::list<Widget_t*> * Buffer;
   } Window;
   
   struct Button_t
   {
     std::string * Name;
   } Button;
   
 };
};


std::list<Widget_t*> Root;

Widget_t * WindowCreate(int X, int Y, int W, int H)
{
 Widget_t * P = new Widget_t;

 P->Type = TypeWindow;
 
 P->Size.X = X;
 P->Size.Y = Y;
 P->Size.W = W;
 P->Size.H = H;
 
 //P->Window.Name = "sdf";
 
 Root.push_back(P);

 return P;
}

Widget_t * ButtonCreate(Widget_t * A, int X, int Y, int W, int H)
{
 assert(A != NULL);
 assert(A->Type == TypeWindow);
 
 Widget_t * P = new Widget_t;
 
 P->Type = TypeButton;

 P->Size.X = X;
 P->Size.Y = Y;
 P->Size.W = W;
 P->Size.H = H;
 
 A->Window.Buffer->push_back(P);
 
 return P;
}

int main ()
{
 Widget_t * Hello = WindowCreate(1, 2, 3, 4);
 Widget_t * Hel = WindowCreate(23, 45, 123, 56);
 
 Widget_t * Btn = ButtonCreate(Hello, 5, 6, 7, 8);
 
 std::list<Widget_t*>::iterator i = Root.begin();

 while (i != Root.end())
 {
   std::cout<< (*i)->Size.X <<std::endl;
   std::cout<< (*i)->Size.Y <<std::endl;
   std::cout<< (*i)->Size.W <<std::endl;
   std::cout<< (*i)->Size.H <<std::endl;
   
   i++;
 }
 
 std::list<Widget_t*>::iterator j = Hello->Window.Buffer->begin();

 while (j !=  Hello->Window.Buffer->end())
 {
   std::cout<< (*j)->Size.X <<std::endl;
   std::cout<< (*j)->Size.Y <<std::endl;
   std::cout<< (*j)->Size.W <<std::endl;
   std::cout<< (*j)->Size.H <<std::endl;

   j++;
 }
 return 0;
}
[16:43:44] <kpmý> зашквар какой-то на этом писать)
[16:45:37] <jordan36957> скорей всего ошибка здесь std::list<Widget_t*>::iterator j = Hello->Window.Buffer->begin(); понять, что не так не могу
[16:48:11] <jordan36957> kpmý нормально
[17:26:06] <vаlexey> jordan36957: а  std::list<Widget_t*> * Buffer; кто аллоцировать будет?
[17:26:23] <vаlexey> у тебя указатель на список не валидный
[17:26:28] <vаlexey> забыл завести
[17:26:52] <vаlexey> по идее у тебя должно падать уже на вот этой строчке:
[17:26:54] <vаlexey>  std::list<Widget_t*>::iterator j = Hello->Window.Buffer->begin();
[17:27:58] <jordan36957> оно там и падает
[17:28:11] <vаlexey> было бы странно если бы не падало :-)
[17:30:44] <kpmý> ссанина
[17:31:20] <vаlexey> на обероне было бы в точности то же самое :-)
[17:32:46] <jordan36957> конструктор list не вызывается?
[17:32:57] <vаlexey> а ты его где-то вызывал? :-)
[17:33:01] <vаlexey> у тебя же там указатель
[17:33:11] <vаlexey> а у тупого сишного указателя не бывает конструкторов
[17:33:16] <vаlexey> а самого листа там нигде нет
[17:34:15] <s6> нет
[17:34:17] <тихий бот> Нет, не нет...
[17:34:17] <s6> да
[17:34:19] <тихий бот> s6, нет
[17:34:38] <s6> клеветы
[17:34:38] <тихий бот> абирон - нинужен потому, что в нём нет шаблонов а в с++ всё делается в одну строчку
[17:35:04] <jordan36957> так как его вызвать, то? Чё то я туплю.
[17:35:09] <s6> new
[17:35:26] <s6> Buffer = new ...
[17:35:50] <jordan36957> ок
[17:35:57] <jordan36957> работает
[17:36:28] <vаlexey> правда теперь у тебя в коде утечки памяти :-) впрочем в данном коде это даже хорошо :-)
[17:36:37] <vаlexey> ибо на этом все заканчивается.
[17:37:09] <jordan36957> потом по спискам пройду erase delete
[17:37:22] <vаlexey> сам список убить не забудь :-)
[17:37:31] <s6> delete Buffer
[17:37:36] <jordan36957> точно
[17:38:14] <jordan36957> спасибо
[17:38:22] <vаlexey> пжалста :-)
[17:38:28] <vаlexey> с++ - это просто! ;-)
[17:38:42] <vаlexey> можно дебажить без компилятора и дебагера ;-)
[17:41:51] <jordan36957> По умному указатели лучше скрыть? К примеру выдавать наружу int, сами указатели держать в map.
[17:42:44] <s6> По умному это не сложнить
[17:42:50] <s6> лишний раз
[17:43:08] <s6> ибо KISS
[17:44:35] <s6> достало меня в коде для 20мбайтной дллки ковыряться
[17:44:42] <vаlexey> по умному - выпилить юнионы :-)
[17:44:43] <s6> пойду на жавера устроюсь =)
[17:44:55] <vаlexey> и отказаться от сырых указателей вообще
[17:45:56] <s6> и перейти на жаву
[17:46:17] <s6> там дяди позаботились об отсутствии сырых указателей
[17:46:55] <vаlexey> заодно и raii нечаянно выпилили нафиг :-)
[17:47:32] <s6> не выпилили же
[17:47:43] <s6> в excelsior jet почём зря raii
[17:47:52] <s6> информация от инсайдеров
[17:48:03] <s6> правда это противоречит спекам типа JLS =)
[17:48:11] <s6> и JVMS
[17:48:37] <jordan36957> Если выпилить юнионы, тогда не получится держать разные типы в контейнере.
[17:48:48] <s6> так extends же
[17:48:55] <s6> в цпп это :
[17:49:06] <s6> и всё получится
[17:49:39] <jordan36957> наследование?
[17:49:43] <s6> угу
[17:49:53] <s6> button : public widget
[17:50:00] <s6> window : public widget
[17:50:33] <jordan36957> Сейчас
[17:51:07] <s6> я правда оч малый спец в с++
[17:51:30] <s6> вот для явы я писал для ТНК
[17:51:35] <s6> а с++ - нет
[18:01:37] <jordan36957> Как наследников добавить в список, в базовом классе?
[18:01:39] <jordan36957> class Widget_t
{
 public:
 Rect_t Size;
 std::list<???> Buffer;
};

class Button: Widget_t
{

};
[18:05:50] <jordan36957> Я не понимаю, как сделать такое на ООП
[18:11:12] <s6> class Button: public Widget_t
[18:12:33] <s6> зачем список наследников? нинужен же
[18:13:01] <s6> список чайлд виджетов ещё куда ни шло, но это уже в классе Container_t
[18:13:14] <s6> а не в Widget_t
[18:14:27] <s6> по кр мере в Java AWT/Swing Control и Container - разные классы
[18:17:35] <s6> в контроле списка чайлдов нету
[18:22:56] <jordan36957> Так работает.
[18:23:04] <jordan36957> #include <iostream>
#include <list>
#include <assert.h>

struct Rect_t
{
 int X;
 int Y;
 int W;
 int H;
};

class Widget
{
 public:
 Rect_t Size;
};

std::list<Widget*> Root;

class Button: Widget
{
 Widget * P;
 public:
 void Create(int X, int Y, int W, int H)
 {
   P = new Widget;
   
   P->Size.X = X;
   P->Size.Y = Y;
   P->Size.W = W;
   P->Size.H = H;
   
   Root.push_back(P);
 }
};


int main ()
{
 Button B1;

 B1.Create(1, 2, 3, 4);
 
 std::list<Widget*>::iterator i = Root.begin();

 while (i != Root.end())
 {
   std::cout<< (*i)->Size.X <<std::endl;
   std::cout<< (*i)->Size.Y <<std::endl;
   std::cout<< (*i)->Size.W <<std::endl;
   std::cout<< (*i)->Size.H <<std::endl;

   i++;
 }
 
 return 0;
}
[18:24:23] <jordan36957> Но есть сомнения, что делается это не так.
[18:34:02] <s6> class Button: public Widget
{
 public:
 Button(int X, int Y, int W, int H): Widget(){
   Size.X = X;
   Size.Y = Y;
   Size.W = W;
   Size.H = H;
   
   Root.push_back(P);
 }
};
[18:34:40] <s6> push_back(this)
[19:07:52] <s6> kpmý, устраивайтесь вот сюда - говорят жутко требуются программисты http://krylov-center.ru/rus/ http://spb.hh.ru/vacancy/10939952
[19:08:00] <s6> http://krylov-center.ru/rus/personnel/vacancies/
[19:08:13] <s6> оборонка. подводки, суда
[19:08:18] <s6> боевые
[19:09:40] <kpmý> питер
[19:09:53] <s6> питер, да
[19:12:13] <s6> не то что какие-то дебильные датчики здоровья клепать =)
[19:12:35] <s6> одно дело для военки датчик здоровья, кнчн
[19:13:02] <s6> охота в военку, етить
[19:13:21] <s6> но у меня неоконченное высшее...
[19:13:23] <kpmý> предчувствие войны
[19:13:54] <s6> да просто там коммунизм всегда, почти вне зависимости от политики
[19:14:05] <s6> военный коммунизм =)
[19:15:00] <s6> я просто всегда типа мечтал на государство прогером пахать
[19:15:18] <s6> только ума не хватало понять как. а тут вот реальные вакансии
[19:16:23] <s6> всё почему-то думал про работу в органах разведки и контрразведки... не знаю почему так зацикливался
[19:19:28] <s6> про фсб всё думал. циклил
[19:26:26] <s6> http://www.niineptun.ru/krilova
[19:27:51] <kpmý> ПЕРСПЕКТИВА УСПЕХ КАРЬЕРА
[19:29:32] <s6> ну да. не ассенизатором же пахать =)
[19:50:07] <s6> из памяти вылетело - какой командой шелла каждые 5 секунд команду запускать?
[19:50:14] <s6> в линухе
[19:51:17] <s6> watch
[19:55:46] <geniepro> купил 4ТБ винт, а то анимешки и прочие фильмы некуда записать ))) 2 по 1ТБ + 3 ТВ мало уже, теперь в сумме будет 9ТБ )))
[19:56:54] <geniepro> реально 8.2 ТБ о_О
[19:57:08] <kpmý> да, обман
[19:57:12] <kpmý> че за винт?
[20:04:17] <geniepro> kpmý: сигейт
[20:04:34] <geniepro> ещё тошиба вроде 3ТБ и два самсунга по 1ТБ
[20:04:43] <geniepro> их скоро тоже менять надо будет )
[20:05:06] <geniepro> это я поменял макстор 320ГБ на 4ТБ )))
[20:06:06] <geniepro> интересно, полное форматирование для новых винтов полезно? кто-то говорит надо, кто-то нафиг не надо ))
[20:06:32] <geniepro> на всякий случай форматну, хотя 3ТБ винт не форматировал -- больше полугодия пашет вроде норм
[20:06:48] <s6> а у меня были три винта по 1ТБ (одинаковых, 1 мастер и 2 бэкапа), потом я купил 3*3 ТБ - слил туда архив классической музыки которую я не слушаю, тоже 1 мастер и 2 бэкапа
[20:07:04] <geniepro> s6: рейд что ли?
[20:07:13] <s6> не, я предпочитаю rsync
[20:07:43] <s6> рейд один раз пытался в линухе настроил - понял что там граблей может быть полно, отказался
[20:07:48] <s6> настроить
[20:08:03] <geniepro> ясно )
[20:09:11] <geniepro> ещё купил роутер TD-W8968 -- интересно,Ю нормлаьный? а то старый греется и ваще чота не нравится
[20:09:25] <s6> асус роутер у меня быстро сгорел
[20:09:27] <geniepro> TD-W8901G
[20:09:34] <s6> мне советовали линксис роутеры
[20:09:37] <geniepro> асусы сосут!!!
[20:12:24] <vlad2> У меня асус тоже стал подглюковывать через пару лет.
[20:15:55] <s6> ну у меня не то что сгорел - а просто перестал реагировать на наличие электричества в разъёме
[20:16:11] <s6> мне ломы было нести в ремонт, я выбросил
[20:16:30] <s6> тоже через несколько лет после покупки
[20:18:28] <vlad2> Я свитчнулся на другого провайдера и они поставили свой роутер. Асус убрал в дальнюю коробку.
[20:18:45] <s6> geniepro, я винты очень редко форматировал и не все
[20:18:50] <s6> терабайтники
[20:19:17] <s6> проблем не возникло пока
[20:26:30] <geniepro> s6> ну у меня не то что сгорел - а просто перестал реагировать на наличие электричества в разъёме
да у тебя там небось предохранитель сдох и всё )
[20:28:21] <s6> поздняк
[20:28:27] <s6> мусорная машина увезла
[20:28:57] <s6> к тому же оно точнее гря реагировало - включалось и сразу выключалось
[20:29:07] <s6> ну или не помню, давно было
[20:30:12] <vаlexey> НИНУЖЕН!
[20:43:01] <kpmý> кого волнует модель роутера, все равно внутри ddwrt должна стоять)
[20:45:03] <s6> кого волнует незнакомая технология с загадочным названием =)))
[20:46:22] <s6> http://www.dd-wrt.com/site/index
[20:46:45] <kpmý> бгг, незнакомая
[20:50:26] <s6> kpmý, ещё рассказали, что у ЦНИИ Крылова в разделе Партнёры упомянуты сотни гос.организаций, в которые тоже могут быть прогеры нужны
[20:58:02] <vаlexey> http://habrahabr.ru/post/229827/#comment_7779095
[21:00:03] <kpmý> сразу видно умный человек, вертится в высших кругах
[21:01:16] <vаlexey> в каком месте там высшие круги? :-)
[21:02:08] <kpmý> в тех, которые все знают о приемке целого космодрома
[21:03:16] <vаlexey> обычно такая информация доступна даже инженеру. ну, судя по моему опыту.
[21:12:45] <vаlexey> "Команда патриотичных кодеров не напишет аналог серьезного проекта, что собирался годами."
[21:13:27] <kpmý> то ли дело креаклы
[21:18:51] <vаlexey> "Подкину идейку разработчикам. Этот дистрибутив должен называться «Крокодил Гена». Будет комплементарно «Чебурашке»."
[21:31:39] <jordan36957> Писать всё с нуля. Я за, но реально ли?
[21:32:06] <s6> спорти Oberon bootloader для линуха
[21:32:11] <s6> из А2
[21:32:23] <vаlexey> для военки - вполне реально
[21:32:27] <vаlexey> для ширпотреба - нет
[21:32:34] <jordan36957> Всё ок.
[21:32:38] <jordan36957> На основе убунту
[21:32:45] <jordan36957> Не дочитал.
[21:32:56] <jordan36957> Поторопился с ответом.
[21:33:20] <vаlexey> на основе убунты 100% не получится :-)
[21:33:27] <s6> эх. и как люди инглиш слышат
[21:33:38] <s6> =(
[21:33:48] <vаlexey> хотя, статья на хабре желтоватая
[21:33:59] <vаlexey> вот оригинальный анонс: http://www.diasoft.ru/about/news/877/
[21:34:46] <jordan36957> Нормально, люди смотрят, не на то, что какая версия ядра, а есть ли браузер, видео проигрыватель и т.д
[21:35:36] <jordan36957> Похожих проектов много.
[21:35:49] <jordan36957> Вроде пуппи линукс
[21:35:52] <jordan36957> runtu
[21:35:57] <jordan36957> и т.д
[21:36:21] <s6> vаlexey, про убунту - ни слова
[21:37:28] <jordan36957> всё же с нуля. Безумцы.
[21:38:04] <s6> там сказано - переиспользование
[21:38:25] <jordan36957> Выкатят проприетарную фиговину.
[21:38:50] <s6> да мало ли катателей
[21:38:54] <s6> alt-linux
[21:39:06] <kpmý> тысячи мудаков будут говорить что нельзя пилить с нуля вместо пиления :)
[21:39:18] <kpmý> так никогда и не запилят
[21:39:29] <s6> чего пилить-то. всё давно запилено
[21:39:41] <jordan36957> угу
[21:39:54] <jordan36957> вспомним андроид, без линукса шансов нет
[21:40:06] <jordan36957> Ьысттрый старт
[21:40:10] <jordan36957> Быстрый старт
[21:40:12] <kpmý> ну и что, нельзя запилить ядро и повторить там разные среды, типа юникса с его libc)
[21:40:25] <kpmý> даже в браузере сделали NaCL
[21:40:49] <jordan36957> Смысл когда, ужё всё запилено. Смысл в авторстве исходников?
[21:40:53] <kpmý> а тысячи россиянчиков не могут сделать ос на нормальном языке, отличном от С
[21:41:59] <jordan36957> Программист нынче не тот. :-)
[21:42:10] <kpmý> да, мелковат
[21:42:12] <jordan36957> Ему всё быстрей в продакшн
[21:43:18] <jordan36957> Ближе по духу к оберон оси, проект миникс, успешно развивается
[21:43:47] <kpmý> ложки нет
[21:43:50] <kpmý> смысла нет
[21:47:03] <vаlexey> вопрос еще и в драйверах
[21:47:27] <jordan36957> В вин 8 при падении драйвера, он перезапускается. Неужто микроядро в вин 8?
[21:47:28] <vаlexey> ну вот есть Hurd - с точки зрения прикладного ПО все остается тем же самым. Меняется только ядро.
[21:47:29] <vаlexey> И-и?
[21:47:54] <jordan36957> Он написан вражескими умами.
[21:48:07] <jordan36957> Нету авторства Акакия ивановича
[21:48:08] <vаlexey> ненене, я в принципе про конкурентноспособность операционок
[21:48:33] <vаlexey> даже если ты сделаешь ось совместимую по API с популярной на 90 процентов, то один фиг не взлетит. ибо оборудование
[21:48:46] <kpmý> вот на коробках с принтерами рисуют WIN/MAC, это потому, что принтер продать хотят и драйвер написали или потому, что им джобс с гейтсом драйверы написали)
[21:49:07] <jordan36957> Реактос, вроде во главе проекта русский
[21:49:51] <jordan36957> Драйвера камень преткновения
[21:50:20] <vаlexey> а они обычно сотрудничают :-)
[21:50:33] <vаlexey> драйвера и софт.
[21:51:09] <vаlexey> ибо 90 (или даже 99) процентов совместимость означает что софт там как минимум не оттестирован. следовательно может вести себя странно и не работать.
[21:51:11] <jordan36957> Кого подмажут, кого запугают. Софт беспредел :-)
[21:53:30] <vаlexey> угу. что позволит сделать софт для военки да некоторых промышленных решений.
[21:53:49] <vаlexey> но для домашних пользователей так не прокатит.
[21:54:10] <kpmý> jordan36957: кроме авторства появится команда, которая умеет. и руководители которые могут.
которые не будут ныть как хабрабляди.
[21:55:30] <vаlexey> кстати, вот где мы могли бы быть в топе, но почему то не стали (российские компании/продукты) так это в плане пакетов математического софта.
[21:55:57] <vаlexey> помню рассказывали как эпично сливали возможности выйи на коробочный рынок такого софта.
[21:57:02] <vаlexey> в результате сейчас наша военка/нии соответствующей направленности массово пользуют американские мат. пакеты. (нет, свои считалки конечно есть, для кластеров там и так далее, но на персоналках стоит тот же матлаб например, или ансис)
[21:58:33] <jordan36957> Алексей ты омнишь, тот российский браузер? Сссылку давал, он чего не взлетел? Отсутствие отдачи от проекта, в виде денег.
[21:59:08] <vаlexey> да, с монетизацией были проблемы
[21:59:10] <vаlexey> ариадна
[21:59:27] <vаlexey> ну и Html вышел новый. браузер это затратно.
[21:59:40] <vаlexey> довольно много браузеров умерло, не пережили гонки вооружений
[22:00:11] <jordan36957> сейчас есть один вебкит, всё остальное только другой гуй. Некая унификация.
[22:00:27] <vаlexey> не понял юмора
[22:00:33] <vаlexey> есть еще геко - мозилла
[22:00:37] <vаlexey> есть IE
[22:00:44] <vаlexey> есть хром наконец - это блинк :-)
[22:01:01] <vаlexey> а вебкит - это сафари
[22:01:16] <jordan36957> ятно
[22:01:20] <jordan36957> Понятно
[22:05:31] <jordan36957> С оберон кора
[22:05:34] <jordan36957> "Вот недавно в конфе рассказывал, как 10 из 10 человек не смогли с первого раза поиск в массиве написать без ошибок"
[22:07:09] <jordan36957> 5 лет, в институте. Рука лицо.
[22:07:24] <jordan36957> Ещё раз рука лицо
[22:07:52] <vаlexey> ну, программировать там обычно не учат :-)
[22:08:01] <vаlexey> то есть практическим навыкам научить нельзя, можно только научиться.
[22:08:54] <jordan36957> 5 лет, тысячи часов лекций.
[22:09:08] <vаlexey> и ни строчки кода! :-)
[22:09:19] <jordan36957> Как?
[22:10:29] <boris_ilov> jordan: легко
[22:10:31] <jordan36957> В основном там, чем занимаются? Сдают экзамены, пишут лабы и т.д
[22:10:34] <vаlexey> легко!
[22:10:44] <vаlexey> ненене, лабы там тоже сдают :-)
[22:10:46] <vаlexey> а не пишут ;-)
[22:10:57] <jordan36957> Пишут, потом сдают.
[22:11:04] <jordan36957> Ну ок.
[22:11:12] <vаlexey> там узкая специализация - одни пишут, другие сдают :-)
[22:11:20] <boris_ilov> просто чуваки думают, что программирование это не сложнее продавца в макдональдсе
[22:11:45] <vаlexey> ну зарплаты то сопоставимые! ;-)
[22:11:54] <boris_ilov> как правило пишут 1-2 человека из группы :)
[22:12:07] <jordan36957> Остальные?
[22:12:27] <boris_ilov> остальные думают что и так прокатит
[22:12:35] <vаlexey> а остальные сдают :-)
[22:12:38] <boris_ilov> типа само изучится
[22:12:46] <jordan36957> У меня сесра инженер, такие же страсти рассказывает 1-2 чертят, другие 10 кофе пьют и трещат
[22:12:55] <jordan36957> *сестра
[22:12:58] <vаlexey> типа нужно получить диплом, а не изучить науку и инженерию :-)
[22:13:02] <boris_ilov> я вот одного понять не могу
[22:13:12] <boris_ilov> на кой хер они идут на программеров???
[22:13:23] <vаlexey> а какая разница куда идти?
[22:13:30] <vаlexey> с таким подходом :-)
[22:13:33] <boris_ilov> ну почему не в манагеры там?
[22:13:44] <vаlexey> в манагеры учиться дороже и поступить сложнее :-)
[22:14:08] <boris_ilov> еще б на физиков пошли....
[22:14:10] <vаlexey> ну и учти, что место учебы обычно выбирается не теми кто там будет учиться, а родителями. а у них свои тараканы в голове
[22:14:18] <vаlexey> и туда идут.
[22:14:37] <boris_ilov> не знаю. меня лично выбор родителей не волоновал ни разу
[22:15:01] <vаlexey> ну и учти, что не попробовав учиться на данную специальность ты не можешь решить хочешь ли ты там учиться.
[22:15:01] <boris_ilov> родители хотели чтоб я нефтяником стал :)
[22:15:21] <vаlexey> просто потому, что не достаточно информации
[22:15:24] <jordan36957> потом же они на работе, в любом случае отсеются
[22:15:42] <vаlexey> максимум - могут быть романтические воззрения в юной голове :-)
[22:16:28] <vаlexey> проблема в том, что программистов не хватает
[22:16:33] <vаlexey> поэтому нет, не отсеиваются
[22:17:33] <boris_ilov> кстати, читаю Тьюринга
[22:17:37] <boris_ilov> это оргазм
[22:17:50] <boris_ilov> в википедиях и учебниках такого не пишут
[22:17:51] <vаlexey> мерсский математик
[22:18:22] <boris_ilov> т.е. я вот за ново открываю Тьюринга для себя
[22:18:27] <boris_ilov> почему?
[22:18:45] <vаlexey> потому что математик :-) по моему, он чистый математик.
[22:19:04] <vаlexey> да, чистый
[22:19:25] <boris_ilov> ну вот у меня сейчас складывается впечатление что он реальный первый программист
[22:19:49] <boris_ilov> т.е. программист в том смысле, в котором мы программисты
[22:20:18] <jordan36957> Как же Ада Лавлейс? Коль сколько, эти хрупкие женские руки, перфокарт набили. :-)
[22:20:24] <vаlexey> первый из известных тебе :-)
[22:20:32] <vаlexey> нисколько :-)
[22:20:46] <vаlexey> она была теоретическим программистом под несуществующую теоретическую машину :-)
[22:21:33] <boris_ilov> valexey: Ну а кто еще?
[22:22:59] <boris_ilov> Там у Тьюринга не так сухо как в википедиях пишут
[22:23:12] <boris_ilov> у него реальные свои приемы программирования были
[22:23:14] <jordan36957> boris_ilov Борис, ты си выучил? :-)  В конфе ругался.
[22:23:22] <boris_ilov> он им даже названия давал
[22:23:31] <boris_ilov> т.е. шаблоны проектирования! :D
[22:24:10] <boris_ilov> Ну я в общем уже давненько знаю Си процентов на 90%
[22:24:18] <boris_ilov> просто практики нет совсем
[22:24:38] <boris_ilov> он же простой как бревно
[22:25:02] <boris_ilov> там только указатели мозг выворачивают с непривычки
[22:25:21] <jordan36957> Код на си замудрён и неподдерживаем. Но Линус умудряется писать ядра. :-)
[22:25:32] <boris_ilov> смотря как писать
[22:25:44] <boris_ilov> на си можно красиво писать
[22:26:05] <boris_ilov> паскали отличаются только тем, что на них сложно херово написать
[22:26:19] <boris_ilov> а на си все двери открыты
[22:26:42] <jordan36957> В чём кроется предубеждение, что в паскале нет указателей, иол в си они более понятны. Одно и тоже.
[22:26:49] <boris_ilov> неа
[22:26:54] <jordan36957> чем
[22:27:04] <boris_ilov> адресной арифметикой
[22:27:17] <boris_ilov> и прочей херней
[22:27:22] <jordan36957> Никогда не использвал
[22:27:27] <boris_ilov> типа передачи указателя по ссылке
[22:27:45] <boris_ilov> вот в паскале у тебя VAR параметры
[22:27:49] <boris_ilov> а в си тютю
[22:27:57] <boris_ilov> делаешь указатель на указатель
[22:28:00] <jordan36957> Пусть системщики, получают свою витаминку счастья.
[22:28:23] <boris_ilov> а если у тебя уже был указатель на указатель то тогда тебе нужен указатель на указатель на указатель
[22:28:31] <boris_ilov> чуешь? :)
[22:28:40] <kpmý> need to go deeper
[22:28:48] <boris_ilov> угу
[22:29:02] <kpmý> говно конеш
[22:29:07] <vаlexey> а какие проблемы с указателями в Си? В паскалях да оберонах тоже указатели, и ничего :-)
[22:29:19] <boris_ilov> ой не надо ля ля
[22:29:30] <kpmý> которые больше похожи на ссылки
[22:29:39] <vаlexey> надо
[22:29:39] <jordan36957> Используй как в паскале и всё.
[22:29:53] <vаlexey> pointer на pointer тоже можно сделать :-)
[22:30:06] <boris_ilov> такой говени как в си в обероне даже постаравшись не замутишь
[22:30:21] <boris_ilov> valexey: нельзя
[22:30:37] <jordan36957> можно
[22:30:46] <boris_ilov> нет
[22:30:48] <тихий бот> Нет, не нет...
[22:30:49] <jordan36957> tlist на них построен
[22:31:09] <jordan36957> И другие контейнеры
[22:31:10] <boris_ilov> это указатель на рекорд
[22:31:14] <kpmý> а в чем ценность Цэ для железячников?
[22:31:22] <jordan36957> Он есть везде
[22:31:27] <boris_ilov> байтоебство же шь
[22:31:34] <jordan36957> Байтоложество
[22:32:30] <vаlexey> вериложество страшнее :-)
[22:34:49] <boris_ilov> в си самое дебильное это параметры типа void foo(int*** p);
[22:35:05] <vаlexey> тройной указатель давненько не видел :-)
[22:35:09] <boris_ilov> узнать что сие за структура нет никакой возможности
[22:35:12] <vаlexey> хотя ходят страшные легенды...
[22:35:17] <boris_ilov> кроме как курить код
[22:35:32] <vаlexey> не, самое страшное в Си это void* :-)
[22:35:35] <boris_ilov> тогда как в обероне все легко смотрится по описанию типов
[22:35:53] <boris_ilov> указатель на void это да
[22:36:02] <boris_ilov> как в пословице
[22:36:10] <vаlexey> а int* - это указатель на инт, очевидно. ибо указателем на что-то другое (например на указатель) это быть не может.
[22:36:10] <boris_ilov> "принеси то не знаю что"
[22:36:12] <vаlexey> ибо не портабельно
[22:36:16] <jordan36957> Посмотри апи glib
[22:36:34] <jordan36957> Это лютый ужас
[22:36:36] <boris_ilov> valexey: а если массив?
[22:36:44] <vаlexey> массив может быть
[22:36:55] <vlad2> Кстати про указатели. Я так воткнулся в то, что SELF в ебероне не указатель. Пока захэкал через JS.do, но надо что-то придумывать.
[22:37:00] <boris_ilov> тык вот из описания параметра неизвестно что это
[22:37:10] <vаlexey> но это обычно по контексту видно.
[22:37:26] <vаlexey> вообще указатель на единичный int передавать конечно очень странная идея :-)
[22:37:27] <boris_ilov> vlad2: Не понял
[22:37:33] <kpmý> ужасно
[22:38:06] <vlad2> В методе есть SELF - аналог this. В ебероне это ссылка, потому что метод может быть вызван для стекового объекта.
[22:38:45] <boris_ilov> тык да
[22:38:51] <boris_ilov> смотри CP
[22:38:54] <vlad2> Но в некоторых ситуация этот SELF надо превратить в указатель (POINTER)
[22:38:55] <boris_ilov> и Oberon 2
[22:39:02] <vlad2> Да, я знаю как там.
[22:39:14] <boris_ilov> в каких?
[22:39:15] <vlad2> Но это все равно херня.
[22:39:31] <vаlexey> ссылка - в смысле var-параметр?
[22:39:37] <boris_ilov> vlad2: Да там же все просто как 2*2. ЭТО ОБЫЧНЫЙ ПАРАМЕТР
[22:39:48] <vlad2> Да. Но это не решает проблемы.
[22:40:00] <kpmý> сделай как в КП)
[22:40:14] <boris_ilov> тык в ETH вон тонны коода нашпилили. Как не решает?
[22:40:24] <boris_ilov> и ББ вон жужжит
[22:40:36] <vlad2> Ты в базовом классе говоришь, что этот параметр указатель - и все, ты больше не можешь вызвать этот метод на ссылке.
[22:40:59] <boris_ilov> не понял
[22:41:30] <vаlexey> дык в КП/О2 нет же резервированного слова дя self
[22:41:36] <vаlexey> поэтому там и проблемы нет :-)
[22:41:42] <vаlexey> насколько я понмаю
[22:41:44] <vlad2> Хотя в базовом классе ты обюычно ничего не знаешь как будет имплементирован этот метод - может указатель в наследниках нафиг не нужен, а ты обрекаешь всех наследников быть созданными исключительно по NEW.
[22:41:55] <boris_ilov> vаlexey: вот, да
[22:41:56] <boris_ilov> :D
[22:42:09] <vlad2> Не. Вы не понимаете. Сделать SELF указателем - не проблема.
[22:42:32] <boris_ilov> vlad2: давай пример. нихрена не понятно с чем трабл
[22:42:48] <vlad2> Проблема в том, чтобы свободно создавать объекты (и вызывать их методы) не только по NEW, но и как VAR.
[22:42:59] <vаlexey> а, ясно.
[22:43:06] <boris_ilov> а я не понял
[22:43:24] <vаlexey> а зачем тебе SELF в виде указателя?
[22:43:39] <kpmý> в ББ же так и решают эту проблему - у рекордов методы через VAR
[22:43:48] <kpmý> а у типов-указателей просто
[22:44:06] <boris_ilov> вот у меня тоже ощущение что vlad2 не до конца понял этот момент в ББ
[22:44:31] <vlad2> boris_ilov: TYPE T = RECORD END;
[22:44:40] <boris_ilov> ща пример кину
[22:44:57] <vаlexey> да тут даже бб не нужен :-)
[22:45:06] <vlad2> PROCEDURE method(VAR this: T)();
END method
[22:45:25] <boris_ilov> вот, сам кинул
[22:45:38] <boris_ilov> тык в чем проблема?
[22:45:38] <vlad2> Теперь я хочу переобределить method в наследнике и мне в наследнике нужен POINTER - откуда его взять?
[22:45:54] <vаlexey> зачем тебе в наследнике pointer?
[22:45:59] <boris_ilov> чегой?
[22:46:09] <vlad2> Блин. Нужен же говорю - редко, но нужен.
[22:46:16] <vаlexey> то есть вопрос в том, зачем тебе self в виде указателя?
[22:46:23] <vаlexey> пример
[22:46:26] <vlad2> Потому что я его возвращаю, например.
[22:46:29] <vаlexey> все алкают пример такой задачи
[22:46:42] <boris_ilov> vlad2: так обычный параметр же
[22:46:42] <vаlexey> чтобы вот прям никак
[22:47:02] <vlad2> https://github.com/vladfolts/oberonjs/blob/master/src/ob/Scope.ob#L194
[22:47:35] <boris_ilov> а фсеее
[22:47:37] <boris_ilov> я понял
[22:47:45] <boris_ilov> ты хочешь ссылку возвращать?
[22:48:01] <vlad2> В данном случае она кладется в поле рекорда.
[22:48:09] <boris_ilov> тык низя же
[22:48:18] <boris_ilov> ссылки только вниз по цепочке можно
[22:48:22] <vlad2> Угу.
[22:48:35] <vlad2> Я об чем и говорю. Проблема.
[22:48:36] <vаlexey> вниз по стеку, ага
[22:48:40] <vаlexey> гы
[22:48:43] <boris_ilov> это то же самое, что и VAR рекорд вернуть
[22:48:50] <vаlexey> вот эта строчка сломала мой сишный парсер в мозгу
[22:48:52] <vаlexey>        void <- JsMap.find(SELF.stdSymbols, id, result);

[22:48:56] <boris_ilov> без всяких self
[22:49:09] <boris_ilov> ну вот, такое ограничение у рекордов
[22:49:14] <boris_ilov> никуда не денешься
[22:49:22] <boris_ilov> если только не размещать их в куче
[22:49:32] <vlad2> При том, что по факту SELF _может_ быть указателем, потому что по факту объект создан чере NEW.
[22:49:59] <boris_ilov> Тык это ж разные типы
[22:50:02] <vаlexey> поэтому у Вирта и нет методов богомерзких!
[22:50:06] <boris_ilov> у тебя они не могут пересекаться
[22:50:11] <boris_ilov> в алгоритмах
[22:50:13] <vаlexey> чо это? могут
[22:50:19] <boris_ilov> с чего это?
[22:50:22] <vlad2> Т.е. проблема может быть, напрмер, решена в рантайме: SELF(POINTER) - АВОСТ для стекового объекта, для хипового - указатель. Но некошерно.
[22:50:25] <vаlexey> тип один и тот же T = RECORD END;
[22:50:26] <boris_ilov> там поинтер а там рекорд
[22:50:29] <vаlexey> один и тот же тип :-)
[22:50:35] <boris_ilov> нет!
[22:50:49] <boris_ilov> типы разные
[22:50:57] <boris_ilov> это вы CP перекурили
[22:51:04] <boris_ilov> там сахар это скрывающий
[22:51:12] <boris_ilov> см. Oberon 2
[22:51:32] <vlad2> vаlexey: "void <-" лучше, чем дополнительная переменная в VAR только для того, чтобы заигнорить результат ;)
[22:51:33] <kpmý> да, чисто на уровне синтаксиса, а в промежуточном дереве это просто вар
[22:52:26] <vаlexey> типы одни и те же. на уровне семантики
[22:52:32] <vаlexey> типов
[22:54:36] <boris_ilov> нет!
[22:54:46] <boris_ilov> в Oberon 2 поинтеры не наследуются
[22:54:49] <vlad2> Либо требовать любые типы с методами создавать только через NEW. Но это будет также тупо как в паскале и прочих шарпах.
[22:54:59] <vlad2> А хочется как в плюсах :)
[22:55:08] <vlad2> Эффективно типо :)
[22:55:21] <boris_ilov> в CP тоже, но там скрыли в некоторых местах для удобства
[22:55:53] <boris_ilov> vlad2: тык давно ясно что ты хочешь си а не оберон )))
[22:57:07] <vlad2> Ну серьезно - языков с GC и new на каждый чих - дохера. А оберон раскручивался как раз тем, что у него не все на GC, а можно часть объектов переложить на стек.
[22:57:40] <boris_ilov> тык вот и забуть про ретурны ссылок ;)
[22:57:46] <boris_ilov> забудь*
[22:57:52] <vlad2> Т.е. я легко представляю ситуацию, когда у меня наследник не создается через NEW, а спускается сверху через VAR базу.
[22:58:28] <boris_ilov> у тебя можно рекорд передавать туда где поинтер? O_o
[22:58:39] <vlad2> Нет конечно.
[22:58:52] <boris_ilov> тогда я не понял о чем ты
[22:58:52] <kpmý> в ББ нельзя сделать статический наследник поинтера с переопределением методов, начинает ругаться вроде, типа
[22:59:05] <vlad2> Иначе у меня не возникла бы проблема с SELF - оно бы неявно касталось и все.
[22:59:49] <boris_ilov> тык не может у тебя в одном алгоритме быть и поинтер и рекорд, в чем проблема то?
[22:59:57] <boris_ilov> они же не пересекаются
[23:00:55] <vlad2> boris_ilov:  я о том, что требовать NEW для всех объектов с методами - это тупо. Есть много ситуаций, когда наследник может быть создан не через NEW, но при этом спещуен по стэку вниз как VAR-база, у которой будут вызываться методы.
[23:01:27] <boris_ilov> ну и?
[23:01:38] <boris_ilov> еще раз
[23:01:46] <boris_ilov> это обычный параметр у процедуры
[23:02:35] <boris_ilov> с маленькой поправкой
[23:02:49] <boris_ilov> что указатель можно как по ссылке так и по значению
[23:02:59] <vlad2> Не у процедуры, а у метода. Этот параметро определяется один раз в базовом типе и потом не может быть изменен наследником. Базовый тип не может знать - накладывать ограничение (требовать поинтер) или нет. Устал объяснть.
[23:03:00] <boris_ilov> а рекорд только по ссылке
[23:04:11] <boris_ilov> в общем смотри как в CP
[23:05:09] <boris_ilov> vlad2: ты борешься с проблемой, которая давно решена
[23:05:15] <boris_ilov> в куче компиляторов
[23:05:18] <boris_ilov> оберонов
[23:05:41] <vlad2> Еще раз: проблема не в параметре, а в ограничении - или "ссылка + указатель" или "только указатель". Это ограничение не может (не должно) быть выбрано в базовом классе.
[23:06:13] <boris_ilov> еще раз: смотри CP
[23:06:36] <boris_ilov> там же процедура шарит, что ей дали
[23:06:49] <vlad2> Борис. Ты реально тупишь :)
PROCEDURE method(VAR this: T)();
END method
[23:07:08] <vlad2> Переобредели мне этот меотд в наследнике, чтобы он мог использовать this как POINTER
[23:07:16] <boris_ilov> блять
[23:07:18] <boris_ilov> ща
[23:07:38] <kpmý> как можно переопределять, это же получатся разные сигнатуры методов
[23:07:46] <vlad2> Дык.
[23:08:11] <boris_ilov> на http://forum.oberoncore.ru/viewtopic.php?f=127&t=4940&p=87641#p87633
[23:08:15] <vlad2> Я и говорю - "параметр" против SELF ничего не решает.
[23:08:44] <kpmý> ну просто ты не должен позволять таких переопределений
[23:08:53] <vlad2> Че-то не открывается ссылка.
[23:09:34] <vlad2> Многа букав.
[23:10:09] <vlad2> Не вижу - где наследник T0?
[23:10:18] <kpmý> там про то, что реальные методы это просто процедуры с параметром-указателем или var-параметром-рекордом
[23:11:11] <vlad2> А. Так вроде не об этом разговор.
[23:11:54] <kpmý> а как например, получится, если ты передашь VAR-указатель, а в методе ему присвоят другой указатель и по сути изменят SELF
[23:12:29] <vlad2> Э... Как такое получится, что его кто-то изменит?
[23:12:57] <vlad2> Я так понимаю BB Тоже должен запрещать изменение this-параметра.
[23:13:02] <kpmý> ну если он будет вместо VAR-рекорда в методе
[23:14:21] <vlad2> Э... Ты сейчас вообще про что - про ББ или про еберон?
[23:14:33] <vlad2> В ебероне SELF нельзя менять.
[23:14:47] <kpmý> про то, что получится если ты будешь вместо рекорда кидать указатель в виде VAR
[23:15:16] <vlad2> А. Понял.
[23:15:49] <kpmý> так что это идея порочная)
[23:15:51] <vlad2> Ничего не будет. Он же не по ссылке попадает в метод - копируется.
[23:16:49] <vlad2> Просто SELF выглядит как ссылка - а по факту это адрес + неявное разименование.
[23:17:08] <vlad2> (применительно к js это вообще просто this)
[23:17:38] <boris_ilov> MODULE TestFoo;
TYPE
T= EXTENSIBLE RECORD END;
T0= RECORD(T) END;

P= POINTER TO T;
P0= POINTER TO T0;

VAR
r: T;
r0: T0;
v: P;
v0: P0;

PROCEDURE (VAR this: T) Foo*(), NEW, EXTENSIBLE;
BEGIN

END Foo;

PROCEDURE (VAR this: T0) Foo*();
BEGIN

END Foo;


BEGIN
r.Foo();
r0.Foo();
NEW(v);
v.Foo();
NEW(v0);
v0.Foo();

END TestFoo.
[23:17:42] <boris_ilov> MODULE TestFoo;
TYPE
T= EXTENSIBLE RECORD END;
T0= RECORD(T) END;

P= POINTER TO T;
P0= POINTER TO T0;

VAR
r: T;
r0: T0;
v: P;
v0: P0;

PROCEDURE (VAR this: T) Foo*(), NEW, EXTENSIBLE;
BEGIN

END Foo;

PROCEDURE (VAR this: T0) Foo*();
BEGIN

END Foo;


BEGIN
r.Foo();
r0.Foo();
NEW(v);
v.Foo();
NEW(v0);
v0.Foo();

END TestFoo.
[23:18:19] <boris_ilov> оно?
[23:18:32] <vlad2> Ага!
[23:18:36] <vlad2> И где указатель?
[23:18:43] <boris_ilov> какой указатель?
[23:18:57] <boris_ilov> P и P0 указатели
[23:18:59] <vlad2> "VAR this: T0" - вот как мне из этого получить POINTER TO TO
[23:19:14] <boris_ilov> P0= POINTER TO T0;
[23:19:48] <boris_ilov> говорю же кури CP
[23:19:56] <vlad2> Как мне в методе получить POINTER?
[23:20:11] <boris_ilov> никак
[23:20:31] <boris_ilov> тебе ж сразу сказано забудь
[23:20:31] <vlad2> НЕу и как тогда BB мне помогает?
[23:20:44] <boris_ilov> блин ты говорил что это нельзя сделать
[23:21:01] <boris_ilov> а про то, что нельзя вернуть ссылку тебе сразу сказали
[23:22:20] <vlad2> Оригнальная проблема звучит так: получить в переопределенном методе SELF как указатель, не трогая базу. Это проблема не решается в BB.
[23:22:34] <boris_ilov> эта проблема нигде не решается
[23:22:43] <boris_ilov> НЕЛЬЗЯ ВЕРНУТЬ ССЫЛКУ
[23:22:57] <boris_ilov> либо отказ от стека
[23:23:14] <vlad2> Причем желание вполне законное, потому что объект _может_ быть создан через NEW и, соответвенно, SELF может быть указателем.
[23:23:20] <vlad2> А может и не быть.
[23:24:31] <boris_ilov> вот такой вопрос: а на кой хер?
[23:24:33] <vlad2> ОК. Всем спасибо :) Очень жаль, что проблема не решается. Сделаю, наверное, SELF(POINTER)
[23:24:38] <kpmý> ну просто же, если метод вызывать как SELF^.do, значит передавать в виде вар параметра)
[23:24:56] <kpmý> а если SELF.do то в виде указателя
[23:25:33] <kpmý> а той стороне должно быть все равно
[23:25:57] <vlad2> Да, с той стороны все равно.
[23:26:18] <vlad2> Применительно к js - вообще все равно, там все объекты через NEW.
[23:26:31] <kpmý> но если например метод захочет зарегистрировать своего владельца в виде хука, то нужен поинтер
[23:26:48] <vlad2> Ага - примеров не так уж и мало.
[23:27:16] <kpmý> а если захочешь пустить владельца по шине сообщений - то уже нужен будет рекорд
[23:28:02] <vlad2> Да. Из поинтера рекорд получается всегда, но не наоборот.
[23:28:04] <kpmý> но это легко определить при вызове, ведь известно, что нужно передать, указатель или рекорд
[23:28:30] <kpmý> но из SELF получится одинакого легко наверное
[23:28:41] <boris_ilov> вот давайте представим что мы хотим регистрировать как хук
[23:29:09] <boris_ilov> как мы зарегистрируем рекорд на стеке?
[23:29:14] <boris_ilov> расскажите я поржу
[23:29:37] <boris_ilov> хоть бы даже и был у нас указатель на этот рекорд
[23:30:00] <vlad2> Борис, не кипятись :) Я ж про это говорил - да, в случае стека будет АВОСТ. Если нельзя разрулить все это во время компиляции.
[23:30:02] <kpmý> не, это вторая часть вопроса, она нерешаема
[23:30:02] <boris_ilov> неужели непонятно: ну не пересекаются они в алгоритмах!
[23:30:28] <boris_ilov> т.е. это просто не имеет смысла пока рекорд на стеке
[23:30:30] <kpmý> но вообще выигрыш от превращения поинтера в рекорд в чем заключается?
[23:30:41] <kpmý> проще по месту разыменовать
[23:31:11] <boris_ilov> vlad2: я вообще не вижу случаев где бы это сработало
[23:31:21] <boris_ilov> т.е. в Oberon 2 все логично
[23:32:50] <vlad2> Короче, решение в compile time - это решение в стиле ББ/Оберона2 - в сигнатуре базы указываем, что хотим поинтер и все. В этом решение плохо только то, что мы не сможет вызвать такой метод для объекта переданного по ссылке VAR.
[23:33:10] <vlad2> Ставим хуки, все всегда работает.
[23:33:47] <vlad2> Другое решение - проверяем в рантайме действительно ли объект был создан по NEW - если был создан по NEW, то разрешаем превращать SELF в поинтер.
[23:34:24] <vlad2> Это все будет хорошо работать до момента, когда метод не вызовут для объекта, созданного не через NEW - будет АВОСТ.
[23:35:38] <vlad2> рантайм всегда хуже compile time, поэтому и желание найти еще какое0то решение
[23:35:55] <kpmý> ну тогда проще сделать процедуру системную, которая будет добывать указатель на этот рекорд, если он есть
[23:36:03] <vlad2> Угу.
[23:36:07] <kpmý> типа, антиразыменование
[23:36:15] <vlad2> Угу.
[23:36:23] <kpmý> тогда его можно проверять на NIL законно
[23:36:45] <vlad2> Угу.
[23:36:57] <boris_ilov> vlad2: у тебя методы то для чего определяются?
[23:37:16] <vlad2> Ну как обычно - чтобы изменить поведение в наследниках.
[23:37:23] <boris_ilov> да не
[23:37:30] <boris_ilov> для рекордов или поинтеров?
[23:37:43] <vlad2> Для рекордов.
[23:37:56] <boris_ilov> как в Oberon 2?
[23:38:18] <boris_ilov> я чет не пойму где у тебя вообще поинтеры появляются
[23:38:30] <vlad2> Синтаксически по другому. Но это аналог PROCEDURE (VAR this: T) Foo*(), NEW, EXTENSIBLE;
[23:38:44] <vlad2> Т.е. SELF - это ссылка.
[23:38:56] <boris_ilov> аааа, и ты типа хочешь переопределить на поинтер?
[23:39:36] <boris_ilov> типа было VAR this: T и переопределить this: P
[23:39:38] <boris_ilov> ?
[23:39:40] <тихий бот> тварь я дрожащая, или тот, кому надо?
[23:39:50] <vlad2> Я не могу просто переопределить на поинтер (хотя это сразу решает проблему), потому что тогда я не смогу создавать объекты на стеке.
[23:40:08] <boris_ilov> тык да
[23:40:14] <boris_ilov> это потому что ты пропустил
[23:40:33] <boris_ilov> [22:39:36] <boris_ilov> vlad2: Да там же все просто как 2*2. ЭТО ОБЫЧНЫЙ ПАРАМЕТР
[23:41:13] <boris_ilov> т.е. ты хочешь нечто большее чем просто параметр
[23:41:28] <boris_ilov> нечто непонятно что
[23:41:38] <vlad2> kpmý: а как вообще в ББ принято? Т.е. там в базк обычно VAR используют или сразу указатель?
[23:42:00] <boris_ilov> в ББ присвистоперделили методы к поинтерам
[23:42:05] <vlad2> boris_ilov: да, я хочу и на елку взлезть... :)
[23:42:15] <boris_ilov> но рекорды о них ничего ессесно не знают
[23:42:17] <kpmý> или то, или другое, зависит от назначения типа.
[23:42:48] <boris_ilov> на самом деле мне в CP не очень нравится этот момент
[23:43:05] <boris_ilov> этот синт сахар для наследлвания поинтеров
[23:43:18] <kpmý> ну это просто такое упрощение, чтобы вручную не хуячить виртуальные таблицы
[23:43:32] <boris_ilov> ну да
[23:43:45] <boris_ilov> но vlad2'а вон запутало
[23:44:02] <boris_ilov> а чтобы не путаться, нужно смотреть Oberon 2
[23:44:27] <vlad2> меня ничего не путало :) Я давно знал как это в ББ - изучил до реализации методов в обероне. И сделал по-другому :)
[23:45:01] <boris_ilov> вот потому ты и не оберонщег :)
[23:45:19] <boris_ilov> тебя к си тянет :D
[23:46:06] <vlad2> Да не, у меня были вполне объективные причины.
[23:46:21] <boris_ilov> ну мне вот например такое бы даже в голову не пришло
[23:46:29] <vlad2> Какое?
[23:46:37] <vlad2> SELF?
[23:46:44] <boris_ilov> ибо я не думаю о методах, как о чем то отличном от обычных процедур
[23:47:01] <boris_ilov> и SELF и желание ссылки возвращать
[23:47:59] <boris_ilov> вот кстати в Lua методы приколько сделаны
[23:47:59] <vlad2> У меня такое желание возникло конкретно вчера :) Это совершенно частная вещь, которая иногда возникает. И которую надо порешать без асма (JS.do)
[23:48:17] <boris_ilov> почти оберон стайл
[23:48:31] <boris_ilov> двоеточие :
[23:48:43] <boris_ilov> и первый параметр превращается в self
[23:49:59] <boris_ilov> vlad2: тык у тебя ж выбор простой.
[23:50:06] <boris_ilov> либо на стеке либо нет
[23:50:13] <boris_ilov> что думать то?
[23:50:13] <vlad2> Я даже не хочу спорить - по совокупности неявный параметро считаю, что лучше. Просто потому что, красивый дефолт важнее не очень красивого частного слуая.
[23:50:49] <vlad2> Студентам ООП конечно лучше объянять с явным параметром.
[23:51:05] <boris_ilov> а лучше вообще не думать об ооп
[23:51:15] <boris_ilov> а сначала покодить на первом обероне
[23:51:23] <boris_ilov> так R.Foo(R)
[23:51:49] <boris_ilov> а потом на обероне 2 с удобством так R.Foo()
[23:52:43] <boris_ilov> я бы вообще не давал ооп до последнего
[23:52:49] <boris_ilov> ибо нех
[23:52:59] <boris_ilov> сначала нужно без него научиться строить
[23:53:18] <boris_ilov> вот когда упрешься в ограничения тогда ооп