[06:25:04] <sda> Космический спутник LightSail на солнечном парусе завис из-за программной ошибки
http://geektimes.ru/post/251062/
[06:27:19] <sda> линукс такой линукс
[06:27:43] <sda> еще один марс-грунт не отвечает на команды
[06:28:14] <sda> ой, фобос-грунт конечно
[07:35:52] <sda> Видео от пользователя: ReactOS установлен и работает на «современном» компьютере
http://habrahabr.ru/company/reactos/blog/258863/
[07:36:59] <geniepro> я же вчера скидывал сюда ))
[07:37:10] <geniepro> кажется ))
[07:37:49] <sda> я неделю или две назад пытался ставить, но при установке после переключения режима не появлялось синее окно
[07:38:00] <sda> а в виртуаль боксе ставится нормально
[08:00:15] <sda> Евроатлантическая ориентация
http://colonelcassad.livejournal.com/2204296.html
госдеп опять майданит, теперь в Македонии
[08:01:00] <sda> прям игра РТС, не дай газпрому проложить трубу в европу !
[08:03:20] <geniepro> ну да, для пендостана труба из россии в европу нежелательна
[08:03:28] <sda> евро-атлантическая ориентация - еще одна половая девиация, а че звучит!
[08:04:59] <sda> да вроде бы в китай две нитки должны уйти, еще должна быть западная, кстати рядом с нами пройдет, мож ну ее европу? а лишний газ пусть полежит в земле, для потомков?! )
[08:11:01] <sda> впринципе надо трубу только до границе турции и греции довести, остальное пусть сами прокладывают, главное чтобы дедлайн по транзиту по украине действительно подчеркивался... потому пусть пеняют на себя, можно еще северный поток увеличить, европа только 50% позволяет прокачивать
[08:13:58] <sda> вообще, это все только на пользу, чем больше связей с западом порвется тем лучше
[08:14:40] <sda> время качать ресурсы давно прошло, надо другие источники бюджета искать
[08:18:47] <geniepro> http://www.odnako.org/blogs/kitayskiy-lokomotiv-istorii-kak-stremitelno-menyaetsya-mir-i-pochemu-mi-etogo-ne-zamechaem/
[08:23:54] <sda> TypeScript: общие впечатления
http://habrahabr.ru/post/258957/
[08:31:33] <sda> Из-за ошибки Пентагона 22 человека подверглись риску заражения сибирской язвой
http://lenta.ru/news/2015/05/28/pentagon/
[09:26:20] <akastargazer> В связи с http://saintrio.livejournal.com/15297.html подумалось, вот валексей общается с красноквадратными, а однажды прилетит в США, а его там под белы ручки и на допрос
[10:35:06] <kpmy> Теперь обратимся к пятому доводу. Он имеет отношение к
влиянию инструмента, который мы пытаемся использовать, на
наши собственные мыслительные привычки. Я заметил неко-
торую культурную тенденцию, которая, по всей вероятности,
своими корнями уходит в эпоху Возрождения, состоящую в
том, чтобы не замечать этого влияния, считать человеческий ум
высшим и независимым хозяином всего, что он порождает. Но
если я начинаю анализировать свои собственные мыслительные
привычки, а также и привычки своих коллег, то я независимо
от своей воли приходу совсем к другому выводу, а именно что
инструменты, которые мы пытаемся использовать, а также язык
или обозначения, применяемые нами для выражения или запи-
си наших мыслей, являются главными факторами, определяю-
щими нашу способность хоть что-то думать или выражать! Ана-
лиз влияния, которое имеют языки программирования па мыс-
лительные привычки своих пользователей, и признание того, что
теперь именно интеллектуальные ресурсы ограничивают наши
возможности более чем что-либо другое, дают нам новый набор
Смиренный программист 43
критериев для сравнения относительных достоинств различных
языков программирования. Компетентный программист вполне
сознает жесткую ограниченность своих способностей; поэтому
он подходит к задаче программирования в полном смирении и
наряду с некоторыми другими вещами как чумы боится хитро-
умных трюков. Я слышал со всех сторон о хорошо известном
диалоговом языке программирования, что, если программисты
оснащены терминалом для него, происходит специфическое яв-
ление, известное под названием «однострочники». Оно прини-
мает одну из двух различных форм: один программист кладет
перед другим однострочную программу и либо гордо говорит,
что она делает, и добавляет вопрос: «Можете закодировать это
меньшим числом литер?» — как если бы это имело какое-нибудь
значение! —- или же просто говорит, «Угадайте, что она дела-
ет?» Из этого наблюдения мы должны заключить, что этот язык
в качестве инструмента есть открытое приглашение к хитроум-
ным трюкам; и хотя именно это может до некоторой степени
объяснить его привлекательность для тех, кто любит демонст-
рировать- свое интеллектуальное превосходство, но, прошу ме-
ня простить, я должен рассматривать это как одно из самых
ТЯЖКИХ Обвинений, КОТОрЫе МОЖНО ВЫДВИНУТЬ ПрОТИВ Я^,Ы¥Э
программирования.
[10:35:16] <kpmy> кривоват OCR
[10:37:39] <akastargazer> щас более выразительные языки
[10:37:48] <valexey> akastargazer: красноквадратные интереса не представляют
[10:39:06] <akastargazer> да, не переживай
[10:39:36] <akastargazer> их всего примерно 12 тыс
[10:40:08] <kpmy> прикольно, парус не раскрылся
[10:40:27] <akastargazer> какой парус?
[10:40:28] <kpmy> бгг, столько усилий инженегров и все зря
[10:40:42] <kpmy> солнечный)
[10:41:29] <kpmy> http://geektimes.ru/post/251062/
[10:42:20] <akastargazer> ошибка была о программном обеспечении спутника на базе Linux. Каждые 15 секунд спутник отправлял сигнал радиомаяка. Одновременно данные дописывались в файл beacon.csv. Неумолимо приближался момент, когда файл занял всё доступное пространство памяти в 32 мегабайта и полетное ПО упало.
[10:42:35] <akastargazer> ебаный пиздец, не могу поверить, что такое в XXI веке
[10:45:38] <sda> "Десять лет назад уже была предпринята попытка запуска аппарата с солнечным парусом: разработанный НПО им. Лавочкина по заказу того-же Planetary Society аппарат Cosmos-1 был запущен с российской подводной лодки «Борисоглебск» в Баренцевом море, но к сожалению, ракета упала в море и утонула. В этот раз финальный запуск будет производить SpaceX."  проклятие солченых парусов...
[10:46:26] <sda> может им с мкс попробовать?
[10:46:45] <sda> хотя чего еще и станцию потерять...
[10:49:15] <akastargazer> нда, ребята, хабросоциум ещё более примитивен, чем я думал. Управляется древними социальными инстинктами, а вовсе не интеллектом, как можно было ожидать от ИТ-шников.
[10:49:49] <sda> http://www.planetary.org/blogs/jason-davis/2015/20150526-software-glitch-pauses-ls-test.html
[10:50:07] <sda> там говорят, что скорее всего помочь может только нажатие кнопки ресет )
[10:50:51] <sda> для простых, конечно, объяснение
[10:51:20] <sda> странно, что там нет алтернативной линии связи и подачи команды на перезапуск
[10:51:25] <akastargazer> может и есть
[10:52:06] <akastargazer> если на самом деле нет, я буду смеяться. Значит, выросло поколение изнеженных инженеров, которым нельзя доверять внепланетный challenge
[10:52:31] <sda> "I hope this charged particle will hit the spacecraft soon but I have to say as an apprentice in the field of electronics this is kind of funny.
I work for a company which developes coffee machines and I usually build test equipment for it and even there were we could just pull the cord it is considered normal to reboot the system in a regular schedule or if somethings goes wrong.
Applied to this situation it would proably be like: No comm for x amount of time (4h or so) -> reboot and a scheduled reboot every 24h.
Nice to see that even you guys are just people ^^ "
[10:52:37] <sda> коменты
[10:53:59] <akastargazer> типа, перезагрузка даже в кофейном автомате?
[10:54:04] <sda> )
[10:54:21] <sda> видимо это самое простое решение проблемы и оно работает
[10:54:46] <kpmy> https://nplus1.ru/images/2015/05/21/9b4081540732c6f2a9441360caa2d9e8.gif
[10:55:32] <sda> вот с фобос-грунт таже история была, там были два компьютера и если один отключался, то второй должен был бы его перезагрузить, но никто и не подумал, что делать если ОБА компа отрубятся одновременно, так оно и случилось
[10:55:41] <akastargazer> чото я хочу, чтоб наши спутники не на линуксе запускались
[10:56:03] <akastargazer> хы, наверняка подумали, но третий комп ставить просто по весу не вышло
[10:56:12] <akastargazer> а так же четвёртый и пятый
[10:56:58] <valexey> дублирование не всегда помогает
[10:57:02] <valexey> особенно в случае ПО
[10:57:22] <valexey> при одинаковых состояниях и параллельной работе вылететь могут обе программы :-)
[10:57:23] <akastargazer> ебаный пиздец, они теперь будут ждать, пока оно САМО перезагрузится:
По мнению специалистов перезагрузка спутника может произойти в течении 3-6 недель
[10:57:48] <akastargazer> valexey, не выгораживай. Это тенденция
[10:58:01] <sda> ну видимо есть как-то статистика, что все они раз в два в месяц отрубаются
[10:58:44] <akastargazer> а прикинь, ты полетишь на экскурсию, софт заглючит и Земля будет ждать, пока у тебя само всё перегрузится и твой трупик вернётся обратно
[10:59:32] <valexey> akastargazer: не, просто на эти грабли (когда берем два компа, грузим туда идентичное ПО и они параллельно работают, имеем резервирование) уже наступили все кому не лень.
[11:00:12] <sda> если я полечу, то я буду требовать чтобы весь софт был написан с нуля, софт не большого размера, исходники должны быть на борту, запчасти на борту, в крайнем случае, чтобы я замкнув два проводка смог управлять кораблем )
[11:00:12] <valexey> поэтому сейчас частенько делают иначе. делают не два одинаковых компа, а два РАЗНЫХ компа, с идентичным по функциональности ПО, но ПО пишут разные команды и с разным инструментарием.
[11:00:23] <valexey> компы тоже на разной элементарной базе.
[11:01:27] <akastargazer> >поэтому сейчас частенько делают иначе
читал "Ракеты и люди", в СССР именно так и поступали. Но сейчас да, сейчас глубина прорабоки совсем другая.
[11:03:27] <valexey> по крайней мере так в авионике делают.
[11:03:42] <valexey> как оно в космосе для подобных вот аппаратов - хз
[11:04:28] <akastargazer> грех самоуверенности, ИТ-шники думают, что они знают о Вселенной всё
[11:04:41] <akastargazer> поэтому ставят два линукса и ждут результатов
[11:05:56] <valexey> понятие греха - надумано :-)
[11:05:57] <akastargazer> каменты на хабре: "Пусть пошлют перезагружать того, кто не догадался включить watchdog. Ещё и на обратном билете можно сэкономить."
а меня убеждали, что профессионалы не делают ошибок.
[11:06:13] <akastargazer> оно не надумано, оно написано кровью )
[11:08:12] <valexey> http://geektimes.ru/post/251088/
[11:08:14] <valexey> :-D
[11:10:28] <akastargazer> сначала в С++ втыкаем всё, что в голову придёт. а потом делаем автофильтрацию специалистов
[11:10:37] <akastargazer> ведь можно просто не использовать все эти фичи
[11:10:46] <akastargazer> и профессионалы не делают ошибок
[11:11:00] <akastargazer> как это всё предсказуемо
[11:11:11] <akastargazer> а потом паруса не раскрываются
[11:12:14] <valexey> akastargazer: твой тон рассуждений очень смахивает на тон феменисток
[11:12:20] <valexey> читается та же самая обида на весь мир
[11:12:56] <kpmy> психологом шабашишь?
[11:13:28] <akastargazer> у тебя когнитивные проблемы
[11:13:29] <valexey> нет, описывают собственные ощущения
[11:13:36] <kpmy> Я совершенно неспособен понять, как мы можем надеяться сохранять ориентацию в наших постоянно растущих программах, если из-за своей явной вычурности язык программирования — напомню, что это наш основной инструмент! — уже ускользнул из-под нашего контроля.
[11:14:13] <akastargazer> я эту хуйню технологическую постоянно в кармане ношу - андроид называется. И каждый день с виндой работаю.
[11:14:18] <kpmy> где-то пару лет назад, когда все форсили облака, был мем "хватит держать все под контролем"
[11:14:27] <akastargazer> Поэтому у меня нет удивления, что спутники там падают или паруса не раскрываются
[11:15:02] <akastargazer> а риторика вот такая, да. Не меняется с годами.
[11:15:09] <kpmy> valexey ты же протестуешь, когда тебя жидом называют, хотя вот я тоже описываю собственные ощущения
[11:17:05] <akastargazer> Буквально на днях в тредах про оберон мне сообщили, что профессионалы не делают ошибок. Мне уже лет много, я не могу обижаться на такое, потому что не связываю свою личность с обероном :) Это же подросло новое поколение, которое наступает на ТЕ ЖЕ САМЫЕ грабли.  
[11:18:20] <valexey> kpmy: дык описывай. никто не мешает :-) кстати, я не протестую, мне просто интересно почему ты меня так называешь. не более того.
[11:19:14] <anjensan> /me определенно нравится этма рума - что не день, то споры, обиды и срыв покровов
[11:19:19] <valexey> каждое поколение наступает на одни и те же грабли. это нормально
[11:20:07] <akastargazer> когда твоя жизнь будет зависеть от компьютеров, ты начнёшь эмитировать другие сентенции
[11:21:13] <valexey> моя жизнь и так периодически от компутера зависит
[11:22:00] <akastargazer> что надо делать для избавления от граблей - говорил ещё Дейкстра, и Вирт, например. Но кому нужно это окаменевшее говно мамонта, так ведь? Человек должен учиться на своих ошибках
[11:23:12] <valexey> ну, вирт от граблей так и не избавился. то есть экспериментальную проверку гипотеза не прошла.
[11:23:18] <valexey> а что там с дейкстрой - хз.
[11:24:29] <akastargazer> Как раз на практическом уровне прошла. Спроси Ширяева хотя бы.
[11:25:29] <akastargazer> ты ж не делаешь ответственных приложений на Обероне, чо тут обсуждать
[11:25:37] <akastargazer> а пиздеть не мешки ворочать
[11:26:23] <valexey> я могу оценить сколько багов насажал сам вирт в Оберон-системе, причем критичных багов котоные не к трапу приводят.
[11:26:33] <valexey> и это с учетом того, сколько там того кода.
[11:26:39] <valexey> так вот - грабли никуда не делись.
[11:27:07] <akastargazer> да, если ты будешь оценивать баги как те перцы на хабре, то я постою в сторонке
[11:27:29] <valexey> я не по коду определяю
[11:27:40] <valexey> а по тому зависла намертво система, или нет.
[11:28:12] <valexey> падает ли компилятор при попытке собрать код или нет.
[11:28:51] <akastargazer> Давай поставим рядом Вирта, старичка. И компанию Интел, с её миллиардами. И сравним.
[11:29:44] <valexey> дык у вирта и не промышленное решение, и промышленный требований к нему нет. у него моделька. и у него идея как избежать граблей. дык его идея не работает даже на им же сочиненной модели!
[11:30:24] <valexey> и нет, там не в железе дело. там дело именно в оберонокоде.
[11:30:51] <kpmy> мы использовали промышленно, все работает. тчк.
[11:31:02] <anjensan> для полтноты сравнения давайте еще сбоку поставим небольшую бегонию
[11:31:05] <akastargazer> промышленные решения основаны на том, чтобы избежать ранее насаженных граблей?
[11:31:13] <anjensan> ну типо Вирт vs Интел vs Бегония
[11:31:24] <kpmy> тебя еще можно рядом поставить
[11:31:28] <kpmy> будешь дубом
[11:31:38] <akastargazer> Oakwood
[11:32:25] <kpmy> промышленный код это когда надо написать такое, чтобы одновременно нанимать макак, пилить платные тулзы и оградиться от критики
[11:33:03] <sda> http://liberatum.ru/news/sindrom-privykaniya-mozga-k-microsoft-—-glavnaya-problema-v-perekhode-na-linux
[11:33:55] <kpmy> потому что та же джава в итоге выполняет тот же самый кот и использует те же самые паттерны.

дурачки думают, что если у них промышленный подход, то это спасет от тупых багов
[11:34:18] <valexey> а код в стиле Вирта - это много пафоса в книжке, хреновый кодинг стайл и мертвый вис системы от простейших действий пользователя
[11:34:58] <kpmy> ты же не помог ему
[11:35:17] <kpmy> ему там вроде только один чувак помогает, который держит сайт projectoberon
[11:35:43] <kpmy> найми контору кодеров и получится ББ, найми многоэтажное здание и получится ядро линукса
[11:36:17] <valexey> ужас какой. нанимать контору кодиров, чтобы получилось вот ЭТО ВОТ? не, нафиг-нафиг!
[11:36:20] <kpmy> да что говорить, мудаки до сих пор не могут с юникодом разобраться
[11:37:02] <kpmy> valexey азаза, ГЛАЗА ВЫТЕКЛИ КАК ТЕПЕРЬ ЖИДЬ
[11:37:05] <valexey> а Вирт даже и не пробует с юникодом дело иметь :-)
[11:37:30] <valexey> latin1 хватит для всех!
[11:37:37] <kpmy> да, это верно, ему хватает и ASCII, потому что он живет у себя в стране и не парится
[11:37:54] <kpmy> но в ББ юникод уже есть
[11:38:10] <valexey> обрезаный. те же проблемы что и везде - только base
[11:38:14] <kpmy> пусть и уровня конца виндовс
[11:38:28] <kpmy> хр
[11:39:21] <sda> Завершено расследование по аварии «Протон-М» в 2013 году
http://geektimes.ru/post/251086/
там же фотки эксперимента по установке кверх ногами датчиков:
http://twower.livejournal.com/1117337.html
[11:40:55] <kpmy> DISPOSE
[11:42:03] <kpmy> FALSE
[11:42:30] <valexey> kpmy: отрицаешь? :-)
[11:42:35] <akastargazer> От этих капсов повышается вытекаемость глаз!
[11:42:50] <valexey> sda: это называется - хуяк хуяк (кувалдой) и в продакшн!
[11:43:11] <kpmy> valexey я про пользователя
[11:43:29] <anjensan> это потому что они на обероне не кодили
[11:43:33] <valexey> kpmy: и я про это же. ты его отрицаешь!
[11:44:02] <valexey> anjensan: если бы кодили, то от капса глаза не вытекали бы, а втекали бы!
[11:44:12] <kpmy> элиминирую
[11:44:30] <sda> valexey: секрет нештатной установки вверх ногами передается из поколения в поколение )

Википедия про испытания ракетоносителя Энергия: «В ходе подготовки ко второму старту, также несколько раз отложенному, был обнаружен факт неправильной установки блока гироскопов. Примечательно, что крепление блока не позволяло его неправильную установку, однако некий «умелец» изготовил адаптер, позволивший поставить блок вверх ногами.»
[11:44:42] <akastargazer> >anjensan: это потому что они на обероне не кодили
Детей сызмальства надо приучать аккуратности. Во всём, в том числе и в мышлении. Человек, который мыслит аккуратно, и действовать будет аккуратно.
[11:45:40] <valexey> sda: русская смекалка! не перевелись еще левши на руси!
[11:46:43] <akastargazer> да, блин, блоху подковали
[11:47:01] <akastargazer> им и без мелкоскопа сподручно
[11:47:17] <kpmy> anjensan:  заметил некоторую культурную тенденцию, которая, по всей вероятности,
своими корнями уходит в эпоху Возрождения, состоящую в том, чтобы не замечать этого влияния, считать человеческий ум высшим и независимым хозяином всего, что он порождает.

так что да, если несколько людей говорят одно и то же, то возможно и правда критикам стоит сначала поработать с обероноподобными языками а потом рассуждать. а то у них мозг скобочками проклят, деформирован.
[11:48:35] <akastargazer> скобочки, это как бы желание развидеть ненужные эти штучки все, зачем они
[11:49:12] <akastargazer> а BEGIN это как бы стоять, сука, ты с формализмом имеешь дело, вот тебе еще END, жри
[11:50:56] <akastargazer> блин, временно поставил переменные как public, а красным цветом их не пометить, чтоб потом убрать
[11:51:02] <valexey> anjensan: кстати, что примечательно, срачик за оберон там четко следовал традиции, темы все были традиционные: begin vs скобочки, и, крайне любимая оберонщиками тема, ЦЫКЛЫ! Какие из них правильные какие не правильные, как их писать, и до чего докатился поганый мейнстрим :-)
[11:51:35] <valexey> Правда до других дисциплин спец. олимпиады дело не дошло - времени не хватило.
[11:51:51] <valexey> akastargazer: воткни todo
[11:52:00] <akastargazer> одни носители Истины запинали других носителей Истины
[11:52:04] <akastargazer> todo? куда?
[11:52:09] <valexey> в коммент
[11:52:22] <akastargazer> костыль
[11:52:48] <sda> ну я убрал бегины в процедурах, помоему лучше читаемость стала, у рекогда же нет бегин и в процедуре он не нужен
[11:52:53] <valexey> комментарии своим названием как бы намекают зачем они есть
[11:53:12] <valexey> кроме всего прочего, IDE обычно все эти тудушки автоматом выцепляют и составляют общий список тудушек из кода
[11:53:16] <valexey> в отдельном окошке
[11:53:19] <valexey> весьма удобно
[11:54:46] <akastargazer> да мне на ближайшие полчаса, отладить бота, зачем это всё
[11:54:59] <akastargazer> каменты, ide
[11:55:29] <akastargazer> это, конечно, даёт ощущение причастности к Великой Технологической Тайне
[11:55:34] <valexey> дык без IDE ты и текст не покрасишь :-) вон, возьми блокнот и там наяривай. если IDE не нужна
[11:55:48] <akastargazer> Покраска текста - важный момент
[11:55:57] <akastargazer> упрощает очень многие вещи
[11:55:57] <valexey> значит таки нужна IDE? ;-)
[11:56:12] <akastargazer> IDE не умеет, потому что нет концепта архитектурной раскраски
[11:56:23] <valexey> нинужна!
[11:56:41] <akastargazer> Почему, нужна. Работу же выполняет свою. Пусть работает.
[11:56:44] <valexey> ибо коммент набрать проще, легче и удобней. даже до мышки тянуться не нужно.
[11:57:33] <kpmy> консолеблядок шолее
[11:57:34] <akastargazer> чтоб набрать коммент, надо перевести взгляд в другое место, потом переключить сознание на другое.
[11:58:22] <valexey> в какое другое место?
[11:58:28] <akastargazer> Сравни - я держу взгляд на переменной, а рука у меня 90% времени на мышке. Я тут же клац, выделил и пометил красным через шорткат. Всё, мозг свободен. Красный цвет по легенде даст мне знать потом
[11:59:09] <anjensan> valexey, естессно. приколупываться к мелочам проще и интереснее
[11:59:11] <valexey> когда я пишу код, у меня мышка далеко в стороне. я держу взгляд на переменной, у меня руки на клавиатуре. фигак, и написал коммент!
[11:59:11] <akastargazer> Но настоящим спецам нравится делать много всяких особенных движений
[11:59:19] <kpmy> а срач про оберон наверное развивается по одним канонам просто потому, что это так выстроены уровни осмысления реальности и нового в ней, сначала внешний вид, непохожесть, поиск общих мест, вопрос "зачем это нужно"
[11:59:22] <anjensan> а цикло так вообще не нужны :)
[11:59:32] <anjensan> TCO наше все
[11:59:51] <valexey> а потом, фигак, и грепом например (если у нас вдруг нет IDE) нашел все эти комменты где написано TODO: убрать
[11:59:54] <valexey> всё
[12:00:02] <valexey> и мне не надо руками код потом листать
[12:00:14] <valexey> чтобы найти все "покрашенные" места
[12:00:30] <valexey> но крутым обероноспецам нравится все делать вручную, мышкой
[12:00:45] <anjensan> мышка при кодинге - наркоманство какоето :)
[12:00:50] <valexey> это как будто у тебя вместо двух рук остался только один палец. вот им и работаешь.
[12:01:37] <kpmy> вот, настоящая Истина от Профессионалов
[12:02:32] <kpmy> не выдумки нет
[12:02:34] <akastargazer> > и грепом например
я привык к ББ, где я СРАЗУ вижу, где что.
[12:02:39] <kpmy> общепризнанная истина
[12:03:19] <valexey> и как ты в ББ СРАЗУ найдешь во ВСЕХ исходниках ВСЕ выделенные цветом места?
[12:03:34] <akastargazer> >anjensan: мышка при кодинге - наркоманство какоето
У меня код уже написан, просто надо переменную временно вывести в инспектор, чтоб понаблюдать за поведением.
[12:05:11] <akastargazer> > valexey: и как ты в ББ СРАЗУ найдешь во ВСЕХ
а вопрос так не стоит. Потому что легенда красного цвета не темпоральна. Суть в том, чтобы зацепиться глазом при очередной инспекции.
А найти красное во всех сразу технически несложно. Кликнул по коммандеру и нашёл.
[12:06:27] <valexey> только для этого нужно вначале модуль написать с экспортом процедуры, чтобы коммандеру было кого звать :-)
[12:07:07] <valexey> ну и аргументы тоже нужно подать, грепать то не по всебу ББ иногда имеет смысл
[12:07:35] <valexey> то есть таки придется как обычно, написать что-то с клавиатуры, а потом до мышки тянуться
[12:07:37] <akastargazer> > valexey: только для этого нужно
а для твоей IDE тудушки усилием мысли выцепляются, что ли?
[12:07:41] <valexey> лютый оверхед!
[12:07:45] <geniepro> valexey> stateles алгоритм? ну, норм :-D
valexey> интересно, если ничего (абсолютно!) не меняется, то в чем выражается работа алгоритма? ;-) исполнитель не меняется, вокруг него ничего не меняется.
это самый правильный алгоритм -- получает порцию входных данных, создаёт порцию выходных данных, нигде не сохраняя свои промежуточные значения в долговременной памяти между её вызовами
[12:08:01] <geniepro> kpmý> ilovb: вот кстати, в го есть замыкания
kpmý> и я такой типа могу пилить их когда хочу
kpmý> почти ФП

блин, эти замыкания были ещё в древнючем смоллтоке -- все его "операторы" типа IF, FOR, WHILE по сути лишь отправка замыкания в качестве сообщения.
[12:08:58] <akastargazer> geniepro, расскажи популярно (для меня) концептуальную суть замыканий
[12:09:01] <valexey> akastargazer: дык это же уже сделано. и это удобно. если IDE нет, то grep в помощь - тоже удобно. При этом даже распоследний тектовый редактор позволяет визуально, по цвету, видеть где именно тудушка.
[12:09:19] <valexey> так что конкретно в твоем случае - это вообще будет явно видно глазом.
[12:09:32] <kpmy> ну то есть ты не сам делал
[12:09:50] <akastargazer> > valexey: akastargazer: дык это же уже сделано.
а мне удобно по-другому, и раз вопрос упирается в то, чтобы один раз сделать, а пользоваться всегда, то спорить не о чем
[12:09:56] <geniepro> akastargazer: замыкания -- это некий кусок машинного кода, в котором также хранится некие данные из лбъемлющего алгоритма, и вот этот кусок кода передаётся в другие куски кода для каких-то там целей
[12:10:03] <valexey> kpmy: операционку который ты пользуешься прямо сейчас, тоже не ты сам делал.
[12:10:18] <akastargazer> geniepro, данные или алгоритм передаётся?
[12:10:31] <geniepro> и данные, и алгоритм
[12:10:32] <valexey> так. ладно. ну вас всех нафиг.
[12:10:35] <valexey> удачного дня :-)
[12:10:40] <geniepro> valexey: бб
[12:11:02] <valexey> да, актуальное забыл: http://lenta.ru/news/2015/05/28/silicon/
[12:11:10] <valexey> вот, теперь точно бб ;-)
[12:11:26] <akastargazer> а зачем такое, ведь я когда проектирую поток выполнения, явно его формирую. Зачем мне делать пробросы в другие потоки, ведь появляется лапша
[12:11:34] <kpmy> valexey> наличие локального оптимума в ИДЕ не мешает мне размышлять о том, что лучше бы иметь семантическую раскраску вместо //TODO в идее
[12:12:08] <akastargazer> kpmy, так аргументация же строится по типу - в других IDE уже сделали, поэтому оберон плохой
[12:12:48] <anjensan> akastargazer, при чем тут другие потоки ?
[12:13:00] <anjensan> проброс идет в подпрограммы
[12:13:18] <kpmy> в европе уже сделали липхер, наши мазы говно и не нужны
[12:13:19] <anjensan> ну.. обычно, в другие потоки конечно тоже иногда (но это уже ФПшники)
[12:13:30] <akastargazer> anjensan, я не threads имею в виду, а потоки управления, вычислительные последовательсности, подпрограммы ведь это то же самое
[12:13:41] <kpmy> потоки управления спутал с потоками
[12:13:49] <kpmy> со тупикал
[12:14:13] <anjensan> akastargazer, за счет этого повышается гибкость и компонуемость.
[12:14:20] <anjensan> пример - функция map
[12:14:29] <akastargazer> гибкость? это же goto, по сути
[12:14:33] <anjensan> ну а так конечно концептуально замыкания ~ объекты
[12:14:44] <anjensan> map - это goto ?
[12:14:49] <anjensan> или замыкание - это goto ?
[12:14:57] <anjensan> оба утверждения ложны
[12:15:04] <anjensan> замыкание - это объект
[12:15:05] <akastargazer> ну так я и пытаюсь выяснить, что такое замыкание. Мне говорят, что управление из одной точки передаётся в другую.
[12:15:09] <kpmy> кибкость и помпонуемость
[12:15:25] <anjensan> т.е. можно через замыкания объекты выразить, а можно через объекты сделать замыкания
[12:15:42] <akastargazer> что такое объект?
[12:16:38] <anjensan> объект в смысле ооп
[12:16:41] <anjensan> https://mitpress.mit.edu/sicp/full-text/sicp/book/node50.html
[12:16:54] <kpmy> стратегическая философия (с) Шукшин
[12:17:06] <akastargazer> объект в смысле ООП - класс или экземпляр класса?
[12:17:19] <akastargazer> Украинские СМИ не должны давать возможности высказываться пророссийски настроенным гражданам, поскольку «Есть правило: врагу прямого слова не давать, его можно цитировать какими-то критичными отрывками, но не давать перепечатки полностью

Казалось бы, причём тут хабр и минусование оппов?
[12:17:55] <kpmy> а вот кемета не минусуют!
[12:18:12] <akastargazer> все уже устали
[12:18:24] <akastargazer> поднакопят пассионарности и снова в бой
[12:18:41] <akastargazer> опять глаза начнут вытекать
[12:19:12] <kpmy> неделя оберона на хабре должна превратиться в месячник оберона на хабре
[12:22:52] <akastargazer> в общем, так получается, что замыкания это некий хак, призванный выйти за рамки только что тобой построенной вычислительной последовательности. Грубо говоря, наколбасил хуйни в ночи, а с утра понял, что хуйня и надо как-то выходить из ситуации
[12:22:55] <kpmy> короче, если по рабоче-крестьянски, то основная суть замыкания в том, что это
а) указатель на функцию, который может быть nil, не nil, одного типа, другого типа т.о.
б) он захватывает переменные извне, то есть ты можешь явно не передавать значение, компилятор его тебе захватит, даже если та функция, в которой возникло замыкание уже закончилась.

то есть по сути это объект типа функция с автоматически заполняемыми полями.
[12:22:57] <akastargazer> Не переписывать же код
[12:23:26] <kpmy> и в целом, ее суть да, экономия времени на заполнение честного объекта
[12:23:41] <kpmy> и еще вторая цель есть, превращение кода в лапшу
[12:23:55] <kpmy> то есть все кложуры больше одной строки - автоматически лапшуют твой код
[12:24:29] <kpmy> но ведь людям важно, когда за них компилятор делает работу, ПОТОМУ ЧТО ЧЕЛОВЕК НЕ ДОЛЖЕН ДЕЛАТЬ ТО, ЧТО МОЖЕТ СДЕЛАТЬ КОМПИЛЯТОР
[12:25:04] <anjensan> 1) nil-не-nil - это уже ограничения языка
[12:25:18] <anjensan> бывают и без nil-ов (в мощной системой типов)
[12:25:18] <kpmy> надо чтобы не было явного объекта или коллбэка со ВСЕМИ нужными парметрам, надо чтобы было замыкание чтобы все само заполнилось и тд.
[12:25:36] <anjensan> по поводу лапши - быавет с мутабельными замыканиями
[12:25:56] <kpmy> отсутствие значения это отдельный тип значения. ВОТ ЭТО КОНЦЕПТ ВОТ ЭТО ПОБЕДА
[12:25:58] <anjensan> в некоторых языках можно замыкать только локальные константы
[12:26:22] <kpmy> это все отговорки, аргументы в пользу бедных
[12:26:30] <kpmy> в некоторых то, в некоторых это
[12:26:33] <kpmy> и чо?
[12:26:43] <akastargazer> не, смотрите, а в чём радикальная выгода? Грубо говоря, я пишу километр императивщины, а с замыканием напишу всего сто метров, или как?
[12:26:45] <anjensan> и ничего. расказываю вам, дабы расширить ваши познания
[12:27:00] <kpmy> анус себе расширь, умник
[12:27:13] <anjensan> akastargazer, да. хотя замыкания в императивном коде не очень (реально лапша)
[12:27:36] <geniepro> akastargazer> а зачем такое, ведь я когда проектирую поток выполнения, явно его формирую. Зачем мне делать пробросы в другие потоки, ведь появляется лапша
для смоллтока, лиспа, хаскелла замыкания -- естественные средства построения eDSL, расширения языка
в сишарпе я замыкания редко использую, но когда использую -- то метко
[12:27:54] <kpmy> бгг, стоит сказать такое на хаборе и ты уже не будешь позитивно оценен
[12:28:08] <anjensan> вполне себе будешь :)
[12:28:16] <Jordan> напомните куда можно в инет залить код?
[12:28:26] <kpmy> gist.github.com
[12:28:28] <akastargazer> >для смоллтока, лиспа, хаскелла замыкания -- естественные средства построения eDSL, расширения языка
это ж когда транслятор пишут, там получаются гигантские CASE с рекурсиями
[12:28:57] <anjensan> а связь какая? между замыканиями и трансляторами ?
[12:29:15] <kpmy> anjensan ну иди скажи в треде про оберон, что замыкания не нужны в императивном коде и продуцируют макароны
[12:29:36] <anjensan> я не говорил что они не нужны кстати
[12:29:40] <sda> по йемену долбанули чем-то мощным
https://youtu.be/OTE_Eshm2xw
[12:29:47] <anjensan> тут вопрос скорее в программисте ;)
[12:30:59] <kpmy> переобулся
[12:31:07] <TRUE> за замыкания в императивных языках яйца отрывать надо: такие люди не должны себя размножать.
[12:31:07] <Jordan> Помогите с кодом https://gist.github.com/anonymous/6529f7b6803772bbb2e4
[12:31:16] <Jordan> Я закоментил нужный участок
[12:31:34] <kpmy> So C
[12:31:51] <akastargazer> > sda: по йемену долбанули чем-то мощным
Да, очень похоже
[12:32:45] <kpmy> TRUE но иногда же можно, ведь если профессионал знает что делает, зачем язык должен ему мешать работать, зачем связывать РУКИ!
[12:33:07] <TRUE> можно. Но без яиц.
[12:33:50] <Jordan>
void event_buffer_pop(event_buffer_t * buffer, event_t event)
{
 assert(buffer != NULL);
 
 event_t * p = buffer->active->head;

 if (p != NULL)
 {
   event_list_remove(buffer->active, p);
   event_list_append(buffer->reserve, p);
 }
 
 memcpy(&event, p, sizeof(event_t));
}
[12:34:12] <anjensan> надо всем лисперам яйцы поотрывать, да
[12:34:21] <Jordan> мне нужно, скопировать по указателю p инфу в event
[12:34:46] <TRUE> лисп - не императивный язык.
[12:35:23] <Jordan> Где главный сишник, Алексей явись! :-)
[12:36:06] <kpmy> поди влад главный, а валексей скорее всего так, по вершкам, чтобы умничать можно было)
[12:36:22] <anjensan> TRUE, функциональный ?
[12:37:06] <Jordan> VAR в объявлении параметра функции это ссылка?
[12:37:10] <Jordan> в паскале
[12:37:28] <Jordan> Это аналог сишного &
[12:39:53] <kpmy> akastargazer представь, что у тебя дерево решений, каждое решение в узле зависит от решений потомков. Если потомков больше одного, то при обработки каждого решение узла может меняться, если в этом случае решение выбрать в виде процедуры, то в данном случае замыкание это просто удобный способ в одном месте описать набор возможных решений.
Как если бы в Обероне можно было передать из процедуры указатель на внутреннюю процедуру
[12:40:46] <Jordan> заработало
[12:41:07] <kpmy> повышают выразительность хуле
[12:41:23] <TRUE> anjensan: функциональный. В нём по-иному представляют действие, что иногда хорошо, а иногда - не очень
[12:42:15] <anjensan> http://cl-cookbook.sourceforge.net/loop.html
[12:42:26] <anjensan> прикольно, не знал что это функциональщина :)
[12:42:43] <TRUE> в качестве "не очень" идут замыкания, но без них некоторые вещи просто не сделать на том языке. А в императивных есть альтернатива по-лучше, поэтому, замыкания там не нужны.
[12:43:36] <anjensan> кстати. а elisp - это лисп или нет ?
[12:45:12] <TRUE> elisp не знаю. По поводу lisp-а - всегда считал его функциональным. Но могу ошибаться. Здесь, вроде, geniepro спец по функциональщине. Можно у него спросить.
[12:45:32] <anjensan> просто вон в emacs lisp (elisp) до недавнего времени замыканий какбы и не было :)
[12:48:29] <akastargazer> TRUE, какая же альтернатива в импративщине?
[12:49:10] <TRUE> в общем случае - объекты.
[12:49:35] <anjensan> а если объектов нету? :)
[12:59:56] <kpmy> норм срутся http://www.cirello.org/2015/03/2015-03-20-fp-enthusiasts-vs-go/
[13:03:21] <TRUE> программисты на многих функциональных языках гордятся чистотой функций (Функционацы, так сказать). Это значит, что от работы фунции не меняется внешнее по отношению к функции состояние. То есть, грубо говоря, в функцию передают набор значений (начальное состояние), и после её выполнения получают результат (конечное состояние). Но иногда начальное состояние содержит неодстаточно информации для выполнения операции. В этом случае используется хак - недостающую часть информации (кусочек начального состояния) создают до создания функции, а потом соединяют их вместе. И при вызове функции с параметрами недостающие данные будут получены из прилепленного невидимого кусочка.
[13:06:02] <TRUE> почему это хак - на самом деле, внешнее состояние меняется. Оно подготавливается соответствующим образом, чтобы фунция выглядела чистой. Точнее, она чистая, но смысл от чистоты немного теряется, когда внешнее состояние всё равно как-то прихоится менять.
[13:06:58] <akastargazer> так этот хак и есть замыкание?
[13:07:01] <geniepro> akastargazer> У меня код уже написан, просто надо переменную временно вывести в инспектор, чтоб понаблюдать за поведением.
этаже debugger!!!
[13:07:08] <Kemet> ещё статью отправил
[13:07:16] <geniepro> akastargazer> а зачем такое, ведь я когда проектирую поток выполнения, явно его формирую. Зачем мне делать пробросы в другие потоки, ведь появляется лапша
когда ты процедуру вызываешь, поток управления же тоже изменяется.
Тут ты просто в какую-то процедуру передаёшь не только данные, но и какой-то код, выполняющийся там, в другом месте.
Те же самые колбеки -- это тоже замыкания
[13:08:04] <geniepro> блин я за чатом не успеваю ))
[13:08:06] <sda> Путин назвал аресты в ФИФА попыткой распространить юрисдикцию США на другие государства
http://www.interfax.ru/444255
[13:08:15] <akastargazer> >этаже debugger
в юнити инспектор объектов работает как в блэкбоксе
[13:10:53] <TRUE> anjensan> а если объектов нету?
А если объектов нет, то придётся немного поступиться абстрагированием. Подразрушить абстракции, чтобы передавать данные вместе с функцией, если вместо функции нельзя передать объект с данными, инкапсулированными внутри. Здесь, опять же, вопрос в возможностях представления, которые предоставляет язык. Если нет объектов, но есть замыкания, то лучше, наверное, использовать их, чем рушить абстракции.
[13:11:37] <geniepro> akastargazer> ну так я и пытаюсь выяснить, что такое замыкание. Мне говорят, что управление из одной точки передаётся в другую.
находишься в процедуре A, вызываешь процедуру B, параметром у неё является процедура без имени (не оформленная явно как процедура), но с данными, доступными в процедуре A  -- вот это и есть замыкание
что там делает процедура B с этой анонимной процедурой -- уже зависит от B -- захочет выполнит, не захочет -- нет
[13:12:39] <TRUE> akastargazer> так этот хак и есть замыкание?
нам с функцией нужно передать несколько скрытых значений (переменных с точки зрения функциональных языков или констант с точки зрения императивных). Замыкание нужно для этого.
[13:13:38] <geniepro> anjensan> т.е. можно через замыкания объекты выразить, а можно через объекты сделать замыкания
ну да, уж сколько раз твердили оберонщикам, что "замыкание -- это объекты для бедных, а объекты -- это замыкания для бедных", да только всё не в прок, и в каждом оберонщике амнезия найдёт свой уголок!
[13:14:43] <akastargazer> >нам с функцией нужно передать несколько скрытых значений
состояние
[13:14:45] <geniepro> TRUE> akastargazer> так этот хак и есть замыкание?
нам с функцией нужно передать несколько скрытых значений (переменных с точки зрения функциональных языков или констант с точки зрения императивных). Замыкание нужно для этого.
в некоторых императивных языках с замыканием можно передавать не только константы, но и переменные, но многие языки считают это плохим тоном
[13:16:09] <geniepro> akastargazer> объект в смысле ООП - класс или экземпляр класса?
в истинном ООП класс -- это тоже объект, экземпляр метакласса
[13:17:36] <akastargazer> истинное ООП, это символ веры Алана Кея.
[13:17:52] <akastargazer> класс это же множество, будь проще
[13:17:56] <geniepro> akastargazer> в общем, так получается, что замыкания это некий хак, призванный выйти за рамки только что тобой построенной вычислительной последовательности.
для кого -- хак, а для кого -- средство расширения концептуально минимального языка.
да, оберон -- далеко не минимальный язык, лисп или смоллток куда меньше
[13:18:30] <akastargazer> смоллток меньше? Это вряд ли, если хотя бы EBNF сравнить
[13:19:19] <geniepro> akastargazer> смоллток меньше? Это вряд ли, если хотя бы EBNF сравнить
в смоллтоке даже операторов нет!!!
[13:20:31] <kpmy> а ебнф все равно больше)
[13:20:35] <akastargazer> тык концепции выразимы в синтаксисе, который мы и видим в РБНФ. Смолток больше, чем Оберон.
[13:20:40] <geniepro> kpmy> и еще вторая цель есть, превращение кода в лапшу
в некоторых случаях наоборот, сделал замыкание -- и сэкономил кучу абсолютно ненужного кода, который пришлось бы воротить в отстутсвие замыкания
идеальный код -- тот, которого нет, но функция его выполняется
[13:21:03] <kpmy> магия
[13:21:26] <akastargazer> >сэкономил кучу абсолютно ненужного кода
Я  ж говорю, с вечера наколбасил херни, а с утра пришлось замыкание делать
[13:22:20] <akastargazer> >идеальный код -- тот, которого нет, но функция его выполняется
один программист написал вирус размером в 0 байт и даже сам автор не понимает, что этот вирус  делает.
[13:23:09] <TRUE> > идеальный код -- тот, которого нет, но функция его выполняется\
[13:23:16] <geniepro> kpmy: покажи этот ебнф, а то мне тут попался один: http://www.math.rsu.ru/smalltalk/sml-c.ru.html -- не вижу, что бы было больше
[13:23:50] <TRUE> это если про двоичный код говорить. Если речь про исходник, то код, которого нет, не даёт прочитать и проследить цепочку действий.
[13:25:06] <geniepro> kpmy> то есть все кложуры больше одной строки - автоматически лапшуют твой код
в смаллтоке или хаскелле это не так, всё чотко!!!
[13:25:45] <geniepro> kpmy> но ведь людям важно, когда за них компилятор делает работу, ПОТОМУ ЧТО ЧЕЛОВЕК НЕ ДОЛЖЕН ДЕЛАТЬ ТО, ЧТО МОЖЕТ СДЕЛАТЬ КОМПИЛЯТОР
абсолютно верно! именно поэтому я не люблю динамическую типизацию!
[13:27:22] <geniepro> kpmy> отсутствие значения это отдельный тип значения. ВОТ ЭТО КОНЦЕПТ ВОТ ЭТО ПОБЕДА
ТЫ НАКОНЕЦ-ТО ДОШЁЛ ДО КОНЦЕПЦИИ ТИПА MAYBE!!! ДА, ЭТО ПОБЕДА!!!
ещё чуть-чуть -- и ты дойдёшь своим умом до монад
[13:28:16] <geniepro> akastargazer> не, смотрите, а в чём радикальная выгода? Грубо говоря, я пишу километр императивщины, а с замыканием напишу всего сто метров, или как?
в некоторых случаях -- именно так
[13:29:04] <boris_ilov> akastargazer: Вот простейший пример использования замыканий https://github.com/ilovb/1c-toolkit/blob/master/lua/cf_tools/cf_reader.lua
[13:29:38] <geniepro> TRUE> за замыкания в императивных языках яйца отрывать надо: такие люди не должны себя размножать.
расстрелять TRUE!!!
[13:30:54] <geniepro> TRUE> лисп - не императивный язык.
лисп тков, каким ты его вырастишь!
[13:30:56] <boris_ilov> NewFileReader - это конструктор объекта со скрытым состоянием (offset, fpos, flen) и публичными методами (read, setpos, pos, size)
[13:30:58] <geniepro> таков*
[13:31:00] <akastargazer> http://chronos-st.blogspot.ru/2007/12/smalltalk-in-one-page.html
[13:31:31] <boris_ilov> там же приватный метод seek к примеру
[13:32:09] <geniepro> Jordan> Где главный сишник, Алексей явись! :-)
чо там за траблема у тебя?
[13:32:22] <boris_ilov> Также замыкания можно использовать как делегаты
[13:34:23] <Jordan> geniepro уже решил
[13:34:29] <geniepro> TRUE> anjensan: функциональный. В нём по-иному представляют действие, что иногда хорошо, а иногда - не очень
есть функциональные лиспы, есть императивные лиспы, есть ООП-лиспы, есть прологолиспы... каким лисп сделаешь, таким он и будет
[13:34:51] <Jordan> geniepro там нужно было передать указатель, а взять адресс. ссылок то в си нет
[13:35:02] <kpmy> потому что лисп это просто промежуточный формат для компилятора
[13:35:02] <geniepro> нету...
[13:36:48] <boris_ilov> akastargazer: А вообще рекомендую помедитировать над Y–комбинатором. Это такое почесывание пяткой носа для реализации рекурсии без поддержки рекурсии
[13:38:02] <TRUE> >расстрелять TRUE!!!
Если расстрелять TRUE, то останется только FALSE. Вселенная потеряет равновесие.
[13:39:26] <kpmy> не останется, ведь FALSE это ~TRUE
[13:40:05] <geniepro> TRUE> программисты на многих функциональных языках гордятся чистотой функций (Функционацы, так сказать).
из промышленных функциональных языков таких на самом деле немного. всего два -- хаскелл и клин
в остальных якобы чистая функция может изменять окружающий мир
да и в хаскелле есть хак, позволяющий нарушить чистоту функции, но там это дурной тон
[13:40:59] <geniepro> akastargazer> класс это же множество, будь проще
это, кстати, хаскельный взгляд на мир
[13:41:19] <kpmy> это просто они его себе взяли)
[13:42:34] <kpmy> boris_ilov кстати норм книжка, сразу прочел выступление дейкстры
[13:47:48] <kpmy> вот интересно, допустим вирт говорит, что язык это, для простоты, бесконечный набор синтаксических и семантических правил соответствующих друг другу.
ДЛя описания синтаксиса есть EBNF, а для семантики есть ли какой язык описания? Ведь если рассматривать идею создания модульного языка, должно быть средство для описания семантики.
[13:48:54] <kpmy> вернее, набор правил конечный, но цепочки из них составленные могут быть бесконечны
[13:50:02] <kpmy> то есть вирт говорит, что можно писать + между двумя идентификаторами, но что будет происходить при исполнении он описывает чисто словами, а при этом возможны ошибки написания и понимания.
[13:53:06] <geniepro> в какой-то энциклопедии нефтегаза сказано так:
[13:53:10] <geniepro> "Единого общепринятого  формального  метода  описания   семантики   языков  программирования на сегодняшний день не существует.  Описание   языка   обычно   состоит   из   формального   описания   синтаксиса   и   неформального   описания   семантики   языка "
[13:53:32] <kpmy> ну хоть какой-нибудь не единый
[13:53:48] <kpmy> видимо, реализация компилятора и есть формальное описание
[13:54:37] <geniepro> https://www.academia.edu/1763880/%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_%D1%81%D0%B5%D0%BC%D0%B0%D0%BD%D1%82%D0%B8%D0%BA%D0%B0_%D0%BA%D0%B0%D0%BA_%D0%BF%D0%BE%D1%80%D0%BE%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BB%D0%B8%D0%BD%D0%B3%D0%B2%D0%B8%D1%81%D1%82%D0%B8%D0%BA%D0%B8_%D0%B8_%D1%84%D0%B8%D0%BB%D0%BE%D1%81%D0%BE%D1%84%D0%B8%D0%B8_Formal_Semantics_as_the_offspring_of_linguistics_and_philosophy_in_Russian_
[13:57:52] <valexey> ДАВИ БОБРОВ ПО ВСЕЙ ЗЕМЛИ!
[14:00:15] <kpmy> в общем ясно, тут человечество уже покопалось и ничего простого не нашло.
[14:00:49] <geniepro> kpmy: ну это же из области формализации знаний, искуственный интеллект все дела
[14:01:26] <geniepro> valexey: во! для тебя как раз новость: http://lenta.ru/news/2015/05/28/homoflies/
[14:02:42] <valexey> geniepro: спасибо. ценное свидетельство
[14:04:39] <sda> это все равно что сказать про эволюционные преимущества алкашей, т.к. среди их потомства бывают строгие трезвенники
[14:05:05] <sda> ...которые хорошо размножаются
[14:05:37] <valexey> у тебя много детей? задумайся, возможно твой отец или дет был гомиком!
[14:05:44] <sda> ))
[14:05:47] <sda> нет детей
[14:06:06] <geniepro> " Оказалось, что самцы, в чьей родословной было много мужских особей со склонностью к гомосексуальному поведению, при спаривании с самками дают больше потомства. Биологи пока не знают, какие именно гены отвечают за такую повышенную плодовитость"
да какие там гены??? просто окружающие дрозофилы говорят мухам-потомкам геев: "Докажи что ты не педераст! Оставь кучу потомства с натуралкой!" вот те и стараются
[14:06:10] <sda> так что я вне зоны риска
[14:06:10] <valexey> нет детей? задумайся, возможно тебе стоит стать гомиком, чтобы у твоих детей было больше детей!
[14:06:20] <sda> )))
[14:06:23] <kpmy> geniepro>  kpmy: ну это же из области формализации знаний, искуственный интеллект все дела

да вот хотя бы в применении к языкам и компиляторам, из чего сделать dsl для описания семантических правил.
Потому что если язык модульный, то такие модули сможет писать и другой человек, а не только автор компилятора, значит надо сразу думать про отдельный язык (не модульный наверное, а обычный)
[14:08:49] <boris_ilov> любопытно https://github.com/Spirit-of-Oberon/ProjectOberon2013/graphs/traffic
[14:08:56] <boris_ilov> даже VK затесался
[14:09:11] <kpmy> просто я тут начал ковырять схемы данных, сначала relax ng, чтобы можно было вытаскивать полную информацию об узлах xml, их содержимом. Хотел сделать генератор сущностей, да чо-то запутался и начал читать про схемы и грамматики
[14:09:22] <kpmy> ну это наверное паблик хабра
[14:09:28] <boris_ilov> и SQL.ru
[14:09:38] <boris_ilov> http://www.sql.ru/forum/190407-918/kurilka
[14:12:07] <kpmy> да, забавно
[14:16:03] <kpmy> наверное какое-то подобие модульного языка это аннотации, для которых в джаве есть механизм реализации
[14:16:12] <kpmy> если представить, что все ключевые слова это аннотации
[14:16:25] <kpmy> в общем, в джаве большинство так и пишет
[14:23:37] <kpmy> https://github.com/kpmy/rng/blob/master/auto/t.go
вот например генерация исходника из схемы.
исходник описывает объекты-конструкторы с методами. Каждый объект это этап конструирования.
По определенным правилам выстраиваются методы и ограничения на их вызов "вызвать все", "один или больше", "вызвать в определенном порядке".
По идее, юзер который поставил себе цель создать корректный объект по схеме должен будет пройти от первого этапа до последнего, и только в последнем этапе ему будут доступны экземпляры того объекта, который собственно юзеру нужен.
Но я тут же наткнулся на тот факт, что исходов у такого дерева решений может быть несколько, плюс непонятна рекурсивная часть схемы, как ее вообще выразить.
[14:24:01] <kpmy> то есть просто в лоб не получается выразить Семантику, по которой должен работать юзер
[14:24:17] <kpmy> более того, даже просто перечислить все возможные варианты результата не получится
[14:24:22] <kpmy> фундаментальный тупик
[14:26:34] <kpmy> по идее это бы выглядело так,
New().OneOrMore().SetAttr("name", "value").Result()
И мы должны были получить результат объекта xml с аттрибутом. Но без аттрибута мы бы не смогли получить объект
[14:26:50] <kpmy> как к этому относятся ведущие CS-ученые я не знаю
[14:28:04] <geniepro> кстати, есть проект ACE http://en.wikipedia.org/wiki/Attempto_Controlled_English с урезанными синтаксисом и семантикой
разработан что бы передавать семантику текстов на человеческом языке без искажений -- всякие там инструкции и прочее
[14:29:33] <boris_ilov> Я уже давно мечтаю о формальном языке для постановки задач
[14:30:02] <geniepro> жаль ты не инглишман )))
[14:30:05] <boris_ilov> Каждый раз позывы писать ТЗ сразу на ЯП
[14:30:22] <akastargazer> >Каждый раз позывы писать ТЗ сразу на ЯП
таже хрень
[14:30:43] <akastargazer> собсно, именно поэтому начал упарываться никаноровскими штучками
[14:31:54] <geniepro> пипец яндекс тупит! гугл куда лучше ищет запросы по русскоязычным темам
[14:32:25] <kpmy> ACE штука интересная
[14:32:42] <geniepro> https://ru.wikipedia.org/wiki/%D0%9A%D0%BE%D0%BD%D1%82%D1%80%D0%BE%D0%BB%D0%B8%D1%80%D1%83%D0%B5%D0%BC%D1%8B%D0%B9_%D1%8F%D0%B7%D1%8B%D0%BA
http://blog.smartcat.pro/ru/2010/06/30/kontroliruemyj-yazyk-i-ponyatnaya-dokumentaciya/
[14:32:47] <kpmy> но по сути оно сводится к онтологическом движку
[14:33:13] <kpmy> онтологии это слишком массивное и низкоуровневое описание, чтобы человек мог его легко управлять
[14:33:33] <geniepro> "Сегодня контролируемые языки используются в таких компаниях как Sun, Xerox, IBM, Boeing, Nortel, General Motors, Saab, Kodak. Они значительно отличаются друг от друга. Например, Nortel Standard English включает в себя чуть больше десяти грамматических правил, а в Caterpillar Technical English (преемнике CFE) их более ста. Фактически, единственное правило, которое есть во всех основных контролируемых языках – одна фраза должна выражать одну мысль."
[14:35:27] <kpmy> ну да, как в онтологии
[14:35:31] <kpmy> я есть груут
[14:35:53] <kpmy> штука полная, но как брейнфак, не вытянуть на себе
[14:38:11] <kpmy> в общем, хз
[14:38:31] <kpmy> всю жизнь положишь на такое, а даже не продвинешься
[14:40:17] <akastargazer> даа, онтология должна сильно поддерживаться технически
[14:40:28] <boris_ilov> akastargazer: кста там еще пример итератора есть https://github.com/ilovb/1c-toolkit/blob/master/lua/cf_tools/cf_reader.lua#L252
[14:40:51] <boris_ilov> Функция, которая возвращает функцию, которая возвращает функцию :D
[14:40:54] <akastargazer> илов, я щас ниасилю, но спасибо
[14:41:01] <boris_ilov> and we need...
[14:41:30] <boris_ilov> Вот когда поймешь как этот итератор работает, тогда считай полностью вкурил замыкания
[14:42:15] <boris_ilov> Итератор возвращает метод Rows
[14:42:40] <kpmy> технически получается, что самые норм замыкания в джаве, потому что там это сразу анонимный класс и объект
[14:42:50] <boris_ilov> вот пример использования https://github.com/ilovb/1c-toolkit/blob/master/lua/cf_tools/cf_repack.lua#L21
[14:42:53] <kpmy> никто не скрывает его под синтаксисом функций
[14:42:59] <akastargazer> да ты чего, я когда онтологии пилил, рекурсию делал с закрытыми глазами, а через день уже забывал смысл написанного
[14:43:46] <akastargazer> оберон отлично подходит для стиля написал и забыл
[14:47:52] <akastargazer> конечно, тема замыканий сегодня оказалась богатой на смыслы
[14:49:02] <geniepro> вот я как-то делал на сишарпе замыкание http://pastebin.ru/s5LlNNKf
мне кажется, что замыканием тут сделать лучше, чем как-то иначе, но может вы тут подскажете как лучше? ))
[14:49:35] <boris_ilov> замыкания - это когда приспичило посцать и ты бежишь за гаражи
[14:49:48] <boris_ilov> быстро, легко и приносит облегчение
[14:50:10] <boris_ilov> но за гаражом все зассано к хуям и никто туда лезть не хочет
[14:52:15] <geniepro> как говорит начальство -- "туалет нужен сегодня!!!"
[14:53:37] <kpmy> ну вот характерный пример замыкания, https://github.com/kpmy/fw/blob/master/rt2/rules2/wrap/eval/expr.go#L341


[14:55:25] <kpmy> операция принимает аргументом выражение, которое еще нужно вычислить и только потом посчитать результат, для этого над дочерними узлами будет выполнена мегафункция GetExpression, которая потом вызовет мой маленький и простой код do, наверное тут можно было описать объект MonadicDo но раз язык позволил, я написал эту хрень
[14:55:28] <kpmy> работает и ладно
[14:55:34] <kpmy> стыд конечно
[14:56:18] <akastargazer> я вот всё думаю, а чем вы будете заниматься на пенсии?
[14:56:33] <kpmy> лечить рак
[14:56:46] <kpmy> лол
[14:56:50] <geniepro> kpmy: на настоящее замыкание это особо не тянет, так, замыканьице ))
[14:56:51] <kpmy> а ты?
[14:56:52] <akastargazer> типун тебе на язык :)
[14:57:12] <kpmy> ну я что-то замечаю, что у известных ит-шников рак часто бывает
[14:57:14] <akastargazer> я хз, игростроить напропалую
[14:57:20] <kpmy> тот же яндексоид
[14:57:34] <kpmy> а еще пенсии отменят, так и умру в офисе
[14:57:42] <boris_ilov> а вот пример эротических фантазий на замыканиях https://github.com/luapower/zlib/blob/master/zlib.lua#L15
[14:58:04] <akastargazer> Да, у никаноровских учеников вообще через одного, молодые все, раньше него повымерли. Столкновение с реальностью таких масштабов, как в ИТ, не проходит бесследно
[14:58:09] <kpmy> но надеюсь, семантически точный модульный язык я хотя бы опишу в паблике
[14:58:15] <boris_ilov> на кой хуй чуваки так изваритились одному Богу известно
[14:58:38] <kpmy> имитируют ленивость
[14:58:43] <kpmy> скорее всего
[14:59:12] <akastargazer> лечит ли Оберон от рака?
[14:59:30] <kpmy> отгоняет его КАПСОМ
[14:59:37] <akastargazer> бгг
[15:00:18] <Kemet> анонимные функции нинужны!
[15:00:41] <geniepro> нужны!!!
[15:04:35] <akastargazer> Аппарат Оберон (Метатрон) представляет собой программно-аппаратный комплекс для нелинейного анализа, разработка которого принадлежит Институту прикладной психофизики.
[15:04:58] <akastargazer> На сегодняшний день Системы нелинейного анализа (NLS) являются одними из самых передовых информационных технологий, которые относятся к самым удивительным и перспективным достижениям современной науки.NLS позволяет получить наиболее полную информацию о здоровье и самых начальных проявлениях заболеваний (в том числе и онкологических), что не доступно при использовании любых других методов обследования (УЗИ, рентген, компьютерная томография, ЯМР и пр.), которые обнаруживают лишь уже сформировавшийся процесс.
[15:05:19] <akastargazer> внезапно так. Стоит лишь поднять вопрос, как реальность тут как тут
[15:08:10] <Kemet> akastargazer: а что там от Оберона кроме названия?
[15:12:03] <kpmy> думаю, это была шутка)
[16:05:53] <akastargazer> Дадут ли Веселовскому доделать свой стартап? http://worldcrisis.ru/crisis/1935630
Думаю, вряд ли.
[16:17:42] <kpmy> эх зря он не стал получать гражданство
[16:18:11] <valexey> ви гоните
[16:18:39] <TRUE> geniepro> вот я как-то делал на сишарпе замыкание http://pastebin.ru/s5LlNNKf
мне кажется, что замыканием тут сделать лучше, чем как-то иначе, но может вы тут подскажете как лучше? ))

           task.Start();
          
           DateTime t_end = DateTime.Now + new TimeSpan(0, 0, timeout);
           while (DateTime.Now < t_end)
           {
               lock (locker)

А не боишься, что новый поток начнёт работать с задержкой, и текущий поток захватит locker первым?
[16:21:34] <TRUE>

как сделать без замыканий: вынести таск в отдельный объект. У класса объекта конструктор, куда передавать локер. У объекта будут методы доступа к done, ex, result.
[16:23:52] <valexey> язык без лямбд и замыканий нинужен!
[16:24:24] <kpmy> нужен
[16:24:50] <TRUE> толсто
[16:25:20] <valexey> ибо без них язык абсолютно useless!
[16:25:44] <TRUE> или смотря какой. Если он stateless, то да - станет ещё и useless
[16:25:56] <valexey> кстати, в матлабе даже карирование есть!
[16:26:07] <valexey> очень удобно!
[16:26:12] <TRUE> log
[16:26:13] <Жаба> TRUE, Logs here: http://77.108.99.102:8080/oberon@conference.jabber.ru/
[16:26:22] <TRUE> version valexey
[16:26:22] <Жаба> TRUE, valexey have Psi 0.14 on Ubuntu 14.04.2 LTS
[16:27:54] <valexey> version TRUE
[16:27:55] <Жаба> valexey, TRUE have Psi 0.15 on Windows 7
[16:28:02] <valexey> МАЗДАЙ!
[16:28:08] <TRUE> я круче на 0,01
[16:28:20] <TRUE> в общем случае лямбды и замыкания усложняют чтение кода.
[16:28:31] <valexey> у тебя операционка древняя и не соответствующая стандартам!
[16:28:37] <TRUE> может, в матлабе оно и к месту
[16:28:44] <valexey> в общем случае любой код усложняет чтение кода :-)
[16:28:57] <TRUE> особенно, если нет другого способа хранить состояние кроме как замыканиями
[16:30:24] <TRUE> LTS? Ты что, не любишь приключения чтоле?
[16:30:26] <valexey> идеальный код тот, которого нет
[16:30:38] <valexey> TRUE: неа, не люблю. точнее да, сейчас я рискую
[16:30:46] <valexey> обычно то я вообще дебиан использую :-)
[16:31:11] <TRUE> И этот человек меня попрекает маздаем?
[16:31:31] <TRUE> а у дебиана есть LTS?
[16:31:34] <valexey> дык, нафига эта альтернативщина нужна?
[16:31:42] <valexey> а дебиан он весь LTS :0(
[16:31:44] <valexey> :-)
[16:32:27] <TRUE> У меня на убунте LTS KVM стоит.
[16:32:33] <TRUE> А на нём винда...
[16:33:07] <valexey> не, ну можно туда конечно было еще и колибри-ось какую вкорячить
[16:33:14] <valexey> или что-то еще альтернативное
[16:33:26] <valexey> но зачем, если есть стандартные оси, где все удобно?
[16:33:31] <TRUE> Я хочу миникс , хайку и план 9 поставить
[16:33:48] <TRUE> чтобы ВСЁ и СРАЗУ!!1 же
[16:33:50] <valexey> гайка да
[16:33:56] <valexey> но там все паркетом изгадили
[16:35:05] <TRUE> то есть, не советуешь?
[16:36:56] <valexey> посмотреть - советую
[16:40:51] <Jordan> valexey глянб код
[16:40:55] <Jordan> *глянь
[16:42:23] <Jordan>
class event: public node
{
public:
 size_t type;
};

class event_buffer
{
public:
 list used;
 list free;
 void push(event elem);
};

void event_buffer::push(event elem)
{
 event * p = NULL;
 
 (node*)p = free.head; //: error C2106: =: ëåâûé îïåðàíä äîëæåí áûòü ëåâîñòîðîííèì çíà÷åíèåì

 if (p != NULL)
 {
   free.remove(p);
 }
 else
 {
   p = new event;
 }
 
 memcpy(p, &elem, sizeof(event));

 used.append(p);
}
[16:43:26] <Jordan> error C2106: =: левый операнд должен быть левосторонним значением
[16:44:11] <Jordan> я его уже и статик кастом
[16:44:30] <valexey> что такое list?
[16:44:56] <valexey> а, блин
[16:44:59] <Jordan>
class node
{
public:
 node * next;
 node * prev;
};

class list
{
public:
 node * head;
 node * tail;
 list();
 void append(node * elem);
 void remove(node * elem);
};
[16:45:03] <valexey> ты что делаешь? ;-)
[16:45:11] <Jordan> event наследует node
[16:45:12] <valexey> зачем ты у ЛЕВОГО операнда тип приводишь? ;-)
[16:45:24] <valexey> (node*)p = free.head;
[16:45:33] <valexey> (node*)p
[16:45:36] <valexey> p
[16:45:57] <valexey> если сильно хочется приводить, приводи того, кто справа от =
[16:47:04] <Jordan> работает
[16:47:23] <Jordan> в паскале наооборот мой вариант работает
[16:48:05] <Jordan> я просто на паскле писал
[16:48:15] <Jordan> потом решил на с++
[16:48:17] <Jordan> procedure TEventBuffer.Push(Event: TEvent);
VAR
 P: PEvent;
begin
 PNode(P) := Free.Head;
[16:48:37] <Jordan> на паскале как раз левый операнд приводить нужно
[16:48:56] <Jordan> потому и ступил
[16:53:18] <valexey> все в паскале как-то через
[16:53:20] <valexey> жопу
[16:53:26] <valexey> даже в обероне иначе
[17:04:01] <Kemet> Jordan: в object pascal Приводится и правый рперанд
[17:05:24] <Kemet> вернее правильно именно правый приводить, ибо слева может быть исключение
[17:28:39] <kpmy> да, блин, жесть, когда то писал на fpc, было странно
[17:33:11] <valexey> не даром люди не любят паскаль!
[17:51:45] <kpmy> не только не любят, но и любят
[17:52:29] <kpmy> хотя конечно, чем пилить свой мертвосожженый лазарус лучше бы обероном занялись)
[17:57:53] <valexey> это делфидрочерство
[18:06:10] <kpmy> больше оберона хабру
[18:08:37] <Kemet> ребята пока не понимают, в чём подвох
[18:08:38] <kpmy> хы, убрал капс
[18:08:43] <kpmy> конформизм)
[18:09:06] <kpmy> а в чем подвох?
[18:09:14] <kpmy> хотя не, не отвечай)
[18:09:15] <Kemet> не, надож конфетку дать
[18:09:17] <kpmy> они читают
[18:09:40] <kpmy> по крайне мере в первые пару дней отслеживали эту конфу
[18:10:09] <Kemet> kpmy: да подвоха то и нет, просто пишут и спрашивают
[18:12:12] <kpmy> что спрашивают?
[18:12:22] <kpmy> в комментах или в личке? :)
[18:12:33] <kpmy> а то мне тоже в личку писали, какой я мудак)
[18:13:06] <valexey> и какой же?
[18:13:15] <kpmy> полный
[18:13:25] <Kemet> в личках, типа что происходит, почему вдруг оберон без остановки
[18:13:35] <kpmy> бгг
[18:14:23] <valexey> а почему нет?
[18:14:26] <valexey> :-)
[18:14:31] <valexey> захотелось - пишем
[18:14:35] <valexey> не захотелось - не пишем
[18:14:40] <Kemet> самае прикольное, чувак просил телефон, чтрб проверить не бот ли пишет статьи
[18:14:45] <valexey> про жабаскрипт же постоянно без остановки пишут
[18:14:47] <valexey> аж тошнит
[18:15:00] <kpmy> админ?
[18:24:10] <Kemet> не
[18:24:44] <Kemet> но в целом нормальные лс были
[18:38:01] <akastargazer> Алексей, а ты в какой город пиндосский летаешь?
[18:39:08] <akastargazer> >почему вдруг оберон без остановки
почему их это беспокоит? Вот этого не могу понять ну никак.
[18:40:31] <akastargazer> наверное, они вычислили какую-нибудь двухходовку, типа сначала бомбят вбросами, а потом высаживается нормальный десант
[18:45:59] <geniepro> це украина в скором времени: http://gifok.net/images/2015/05/28/566238907.jpg
[18:47:41] <valexey> akastargazer: прилетаю в Сан-Франциско
[18:59:57] <valexey> в общем, разлом Сан-Андреас, это там :-)
[19:00:12] <valexey> все ждут
[19:03:37] <Kemet> шо, пиндостан провалится в тартарары?
[19:05:36] <akastargazer> Просто тут занятные фотки выложили: http://aftershock.su/?q=node/311149
Американские пригороды поразительны
[19:08:24] <geniepro> царь зверей: https://scontent-fra3-1.xx.fbcdn.net/hphotos-xpa1/t31.0-8/p480x480/11041853_956938044357995_4718532437993510167_o.jpg
[19:10:52] <akastargazer> Лев взобрался повыше, чтобы сообщить буйволам, куда приносить говядину
[19:17:21] <valexey> akastargazer: да, я это наблюдал. выглядит потрясно. да и живется там тоже отлично :-)
[19:17:34] <valexey> Kemet: не, только отдельная его часть :-)
[19:20:13] <Kemet> жаль
[19:22:35] <geniepro> TRUE> А не боишься, что новый поток начнёт работать с задержкой, и текущий поток захватит locker первым?
ну как бы это нормальная ситуация.
Thread task = new Thread(new ThreadStart(qrytsk)); task.Start();
тут запускается поток, который может подвиснуть на неопределённое время, выполняя запрос по сети вот здесь:
try { res = query(); } catch (Exception ex) { taskex2 = ex; }
если через сколько-то секунд не будет ответа, этот поток убивается...
вроде всё правильно

[19:28:49] <geniepro> TRUE> как сделать без замыканий: вынести таск в отдельный объект. У класса объекта конструктор, куда передавать локер. У объекта будут методы доступа к done, ex, result.
это правда будет лучше, понятней, компактней, поддерживаемей?
[20:19:11] <valexey> вот интересно, почему upload у gmail замедляется по мере закачки файла?
[20:19:14] <valexey> СИЛЬНО замедляется
[20:20:40] <geniepro> ну так пока анб проверит твои файлы -- время уходит ))
[20:23:15] <Kemet> valexey, оно же ра пределённое, вот и ра пределяется часть анб часть фбр часть обамке а часть выставляется на распродажу
[20:23:40] <valexey> :-)
[20:32:28] <Kemet> чем по-твоему valexey: всёж ты опять кауюто хуйню в камментах немёшь, ведь очевидно, что и разработчикам КП и Го виднее, заимствовали они или нет. Кроме того, семантика объявления метода отличается
[20:32:56] <Kemet> чем отличается
[20:35:10] <akastargazer> валексей опять проводит сеансы разоблачения оберона?
[20:49:44] <Kemet> типа того. разрабы Го пишут что заимстовали, приче вся декларация заимстована, Алексей пишет, что да нихрена не заимстовали, опять лучше разрабов всё знает
[20:52:23] <akastargazer> Ну вот это интересное разночтение. Создатели КП написали, что influenced и superset of Oberon-2, а Алексей рассказывает людям, что КП - совершенно самостоятельный язык. После чего люди мне объясняют, что я ничего не понимаю в КП и обероне.
[20:59:24] <akastargazer> Буду писать спокойные статьи про устройство ББ
[20:59:40] <Kemet> это правильно
[21:13:32] <geniepro> дамс, Китай уже давно не средневековая страна...
[21:13:34] <akastargazer> Думаю, что просто технические описания будут довольно интересны.
[21:13:52] <akastargazer> geniepro, ты про цемент?
[21:15:52] <Kemet> akastargazer, Давай на следующей неделе ты напишь, через неделю я, чтлб эффект был
[21:19:53] <akastargazer> давай
[21:20:28] <akastargazer> там, наверное, большие статьи не надо давать. Думаю, сколько писать.
[21:21:50] <valexey> http://lenta.ru/news/2015/05/28/gavriluk/
[21:22:04] <akastargazer> Была мысль запилить про переход с winapi на SDL, но чото там много всего получается, в одну небольшую и удобную для восприятия статью не вместить.
[21:23:02] <akastargazer> украинки, пишут, заполонили евросоюз, а теперь им даже выезжать не надо будет.
[21:23:21] <akastargazer> ещё наркотики надо легализовать и будет полный комплект
[21:24:10] <valexey> и рок-н-рол!
[21:26:14] <akastargazer> только если Макаревич им изобразит.  Не думаю, что вменяемые люди туда теперь будут ездить
[21:26:28] <akastargazer> Разве что Мэрилин Мэнсон за кишками и кровищщей
[21:26:52] <akastargazer> среда монодевелоп со временем перестаёт понимать шорткаты
[21:27:48] <akastargazer> я даже не знаю.
[21:27:57] <akastargazer> как такое возможно в XXI веке
[21:31:08] <Kemet> Ну напиши клротенько Как я переводил БлекБокс с винапи на сдл, с какими трудностями столкнулся, если много получится разбей на 2 части. эта те а интере на будет
[21:39:17] <Kemet> akastargazer, Да, лучьше на 2-3 части разбить, про шрифты точно отдельно надо
[21:40:36] <akastargazer> про шрифты?
[21:41:50] <akastargazer> у нас материалы на obertone.ru есть, придётся адаптировать ещё, как раз неделю сковыряю )
[21:45:57] <Kemet> akastargazer, Но про шрифты вторым постом
[21:46:55] <akastargazer> дак а чего про шрифты-то?
[21:49:41] <Kemet> akastargazer, Дык какие проблемы при портировании, сам процесс опиши,  свои изыскания, мысли. людям такое интересно
[21:51:04] <Kemet> Надо обертон почитать
[21:54:35] <akastargazer> ладно, поглядим. У тебя какая-то памятка про эти шрифты, интересно.
[21:55:40] <akastargazer> О, ты про модули запилил, почитаю
[21:56:17] <akastargazer> буду на тебя ссылаться :)
[21:58:18] <akastargazer> >Модуль в Оберонах — это не только единица компиляции, загрузки и связывания, это ещё и механизм инкапсуляции.
Это настолько важная часть языка, что не получается говорить даже про АО и КП как разные языки
[21:58:51] <akastargazer> Я смотрю сырцы АО и понимаю, что не надо переучиваться, потому что база-то одна
[21:59:28] <akastargazer> а щас вот в C# вспоминал, как делегат работает - пришлось слегка мозги вывернуть. Месяц назад разбирался, написал код - а щас пришлось помучиться
[22:02:20] <valexey> akastargazer: это просто длительная тренеровка. ну, то есть Go ведь проще чем С++, правда? Проще, понятней и вообще почти Оберон.
[22:02:50] <valexey> Так вот - я постоянно забываю Гошные синтаксические конструкции. Как в С++ знаю и помню, хотя сто лет не писал, а в Го достаточно неделю не пописать, все, забыл как что делается.
[22:03:09] <geniepro> akastargazer> geniepro, ты про цемент?
ага
[22:03:11] <akastargazer> Дейкстра был прав насчёт формирования мышления
[22:03:38] <valexey> это не мышление. то есть мыслить я в терминах Го могу легко
[22:03:44] <valexey> и строить архитектуру
[22:04:08] <akastargazer> Дело в том, что класс в обероне воспринимается по-другому, чем в c#.
[22:04:08] <valexey> но все эти вот мелочи - это на уровне рефлексов (как что в языке на уровне текста делается).
[22:04:16] <valexey> и это нужно просто много много раз повторить.
[22:04:46] <akastargazer> Я минут двадцать только втыкал в то, что достаточно к полю класса добавить метод. Не объекта, а класса.
[22:06:20] <valexey> дык в КП же метод тоже привязывается к типу, а не переменной.
[22:08:37] <akastargazer> Да, конечно, только делегат внутри класса и выставляет наружу своё поле. Я помню, что делал через делегат, но зачем делегат обёртывается классом, малообъяснимо. Месяц назад было вроде понятно, а щас смотришь чистым взглядом и вот эти вот извращения с объектной коммуникацией кажутся довольно тяжёлыми. Оно по месту применения записывается легко, вот только в голове надо держать сложные конструкции.
[22:09:17] <valexey> ну, делегаты, сколь я помню, еще в делфях были в каком-то там виде
[22:09:28] <valexey> так что это все еще с паскалей пошло :-)
[22:11:05] <akastargazer> не, сама идея делегата простая же. Чё там, раз мы в рекорд можем данные пихать, почему бы туда и алгоритмы не запихать
[22:12:16] <akastargazer> Хабр хамит: "В конце заголовка и подзаголовка точка не ставится Это я еще давно запомнил" :) Точку можно ставить, это необязательное правило. Но хабр делает обязательным и унижает пользователя при этом.
[22:13:09] <akastargazer> В целом, тон инструкций рассчитан на школоту
[22:13:22] <valexey> сразу ставит пользователя на место, показывает кто в доме хозяин!
[22:13:46] <valexey> и пользователь тут не пользователь, а товар!
[22:15:02] <akastargazer> а почему, кстати, нет профильного хаба "Оберон"
[22:15:04] <akastargazer> Непорядок
[22:15:21] <valexey> ну, потому, что не было статей как минимум :-)
[22:15:38] <valexey> Оборон :-)
[22:17:07] <akastargazer> Там админы соображают, какой хаб создать?
[22:17:46] <valexey> вроде да. это ж вам не охлократия, это нормальная тирания :-)
[22:18:08] <geniepro> вот создадут они хаб Оберон, а через неделю у вас угар пройдёт и забудете вы про этот хаб, а он останется лишним мусором висеть!!!
[22:18:42] <akastargazer> вот именно
[22:18:53] <akastargazer> попробую выползти из гетто
[22:19:02] <akastargazer> как заживут раны
[22:19:09] <valexey> get to
[22:19:15] <akastargazer> хетты
[22:19:56] <akastargazer> я как этот, кузнечик из фильма "Район №9"
[22:20:10] <akastargazer> хожу такой по помойке, пустые кастрюли обшариваю
[22:20:11] <valexey> https://pp.vk.me/c627717/v627717904/3be3/86y8tGMORO4.jpg
[23:58:50] <alexey.veselovsky> http://2061.su
[23:58:52] <alexey.veselovsky> вот вам