[00:21:21] <kpmý> да ваще
[00:52:41] <alexey.veselovsky> нужен?
[00:52:43] <тихий бот> не, нинужен!
[00:53:08] <Kemet> ну вот, опятьбэбэшников нема
[00:53:24] <alexey.veselovsky> бронебойных? :-)
[00:53:39] <vlad2> Ты еще у нас?
[00:53:49] <alexey.veselovsky> угу
[00:53:56] <alexey.veselovsky> я 15 вылетаю взад
[00:58:28] <vlad2> Турку ел? :)
[00:58:51] <alexey.veselovsky> не, только индейку :-) а турка она медная, несъедобная, в ней кофий варят :-)
[01:00:51] <vlad2> Kemet: а чего там за тема с воскрешением кооперативной многозадачности?
[01:01:28] <alexey.veselovsky> да там info21 увидел ключевое слово “кооперативный” и возбудился не вникая :-)
[01:05:46] <alexey.veselovsky> говорят помилованная индейка все равно долго не живет - умирает от сердечно сосудистых заболеваний
[01:06:19] <alexey.veselovsky> ибо сейчас такая порода индеек тут культивируется, которые очень большие, при этом внутренние органы не справляются
[01:07:18] <Kemet> vlad2: vпока непонятно, что там кооперируется, может процессоры )
[01:09:46] <Kemet> код в веткеCooperative не собирается, илипросто процесс только начался или работа идет в другом репозитории, а в паблик покало случайно, хз
[01:12:16] <vlad2> Кстати, а как вставка йелдов в каждый WHILE влияет на производительность?
[01:12:59] <alexey.veselovsky> это что за йелды такие?
[01:13:26] <vlad2> В смысле я бы не хотел никакой переключающей магии в коде типа "while (*dst++ = *src++);
[01:13:38] <vlad2> yield
[01:13:53] <vlad2> переключение на другую задачу
[01:14:10] <alexey.veselovsky> просто сигнал шедулеру что можно отобрать управление
[01:15:07] <alexey.veselovsky> ну или если шедулера нет, а все кооперативно, то просто сами все делаем в плане переключения
[01:15:23] <alexey.veselovsky> контекст туда, контекст сюда :-)
[01:15:28] <alexey.veselovsky> фигли, делов то?
[01:15:51] <vlad2> Гхм. По-моему актуальнее был бы сигнал "в от сейчас нельзя отбирать управление"...
[01:16:16] <alexey.veselovsky> yield - это как раз про то, что ты отдаешь управление
[01:16:50] <alexey.veselovsky> а про “нельзя отбирать” - это тоже бывают механизмы в осях такие. но обычно это на уровне драйверов и ядра. редко на уровень апликаций это дело высовывают
[01:17:12] <alexey.veselovsky> ибо баг в такой вот секции где нельзя отбирать (зацикливание например) повесит всю систему нафиг
[01:20:35] <alexey.veselovsky> примерно как в обероне правильно закрученная задача может легко положить всю систему
[01:20:52] <vlad2> клеветы
[01:20:54] <тихий бот> абирон - нинужен потому, что в нём всё капсом а в хацкиле всё делается с закрытыми глазами
[01:37:31] <Kemet> клеветы
[01:37:31] <тихий бот> абирон - плахой потому, что в нём нет шаблонов а в питоне всё делается в одну строчку
[01:38:39] <alexey.veselovsky> не, в питоне сложно в ону строчку - там же значимые отступы :-)
[02:15:11] <vlad2> питон
[02:15:13] <тихий бот> питон няшка!
[02:15:28] <alexey.veselovsky> шняшка :-)
[02:15:35] <alexey.veselovsky> Go - няшка
[02:15:46] <alexey.veselovsky> пользую вместо питона. то есть неплохой компромисс для моих задач
[02:17:53] <alexey.veselovsky> эхъ, когда же наконец проект перейдет на такую стадию, когда можно будет выкинуть Go нафиг и писать на кошерных плюсах?
[02:20:17] <vlad2> oberonjs! ;)
[02:20:42] <alexey.veselovsky> эмм.. слишком слоупочно :-)
[02:20:47] <alexey.veselovsky> у меня ж там математега
[02:20:55] <alexey.veselovsky> ну и желательно без рантайму :-)
[02:27:22] <alexey.veselovsky> поэтому Го и является хорошей альтернативой всяким пихонам
[02:27:31] <alexey.veselovsky> + вменяемая пакетная система
[02:27:38] <alexey.veselovsky> + статическая типизация
[02:27:51] <alexey.veselovsky> увы, но с ростом программы лезут минусы - например отсутствие шаблонов :-(
[02:28:22] <alexey.veselovsky> и отсутствие нормального разделение на реализацию и спецификацию модуля. в общем те же болезни что и у оберона
[03:06:58] <Kemet> alexey.veselovsky: зпчем тебе спека
[04:19:45] <alexey.veselovsky> чтобы легче работать с кодом
[04:19:51] <alexey.veselovsky> я ж человек, а не компилятор :-)
[08:11:56] <Kemet> alexey.veselovsky: сделай генератор интерфейса)
[08:15:28] <alexey.veselovsky> а неа. это не оно будет
[08:15:43] <alexey.veselovsky> спека должна быть первична, а реализация вторична
[08:18:07] <Kemet> alexey.veselovsky: ну хоть костылик
[08:18:28] <alexey.veselovsky> костыликов есть для любых языков. они не катят
[08:18:35] <alexey.veselovsky> ибо разработку построить нормально не дают
[08:18:53] <Kemet> а в аде чито
[08:19:00] <alexey.veselovsky> в Аде прекрасно все
[08:19:03] <alexey.veselovsky> с этим
[08:19:06] <Kemet> как
[08:19:14] <alexey.veselovsky> просто замечательно
[08:19:41] <alexey.veselovsky> когда проектировали Аду сразу думали о том, что прогу будут писать не в одиночку, а множеством разных групп
[08:20:01] <alexey.veselovsky> а остальные языки, такое ощущение, проектируются так, будто все программят исключительно в одиночку
[08:28:18] <Kemet> и что там придумали
[08:28:34] <geniepro> alexey.veselovsky: враньё! когда Виртяра делал Модулу-2, он об этом тоже думал
[08:29:08] <geniepro> Kemet: спецификации пакетом/дефиниции модулей
[08:29:45] <Kemet> geniepro: отдельным файлом?
[08:29:55] <geniepro> да
[08:29:56] <тихий бот> geniepro, нет
[08:30:01] <geniepro> тихий бот: нет да!
[08:30:30] <geniepro> Kemet: ты же работал в модуле-3? там должно быть такое
[08:31:50] <Kemet> geniepro: мы же про аду
[08:32:43] <geniepro> Kemet: в аде разница в этом плане небольшая, если знаешь как в модуле-2 сделано, значит знаешь как в аде сделано -- вирт делал в соответствии с требованиями к аде
[08:33:22] <Kemet> и в м3 не спецификация,а интерфейсы - там можно размазать по разным файлам и интерфейс и реализацию
[08:34:50] <Kemet> это оченьгибко,и герметичность выше, но есть трудности свосприятием целостной картины
[08:34:54] <geniepro> один модуль в нескольких файлах? как в сишарпе что ли?
[08:35:14] <geniepro> это уже не модуль, а неймспейс
[08:35:26] <s6> вы все сгорите в аду
[08:35:49] <Kemet> geniepro: не модуль, интерфейс, например в одном файле публичный интерфейс, в другом приватный и тп
[08:36:11] <geniepro> холодный лоб как льдышки руки
сосулек с носа бахрома
и попе тоже некомфортно
зима
[08:36:26] <s6> стехи
[08:36:26] <тихий бот> Стехи!
Хреново нужное хотенье
Под скальпелем дают пизды
Как мимолётное паденье
Как ахтунг просит наготы
[08:36:36] <s6> етить
[08:36:36] <geniepro> Kemet> geniepro: не модуль, интерфейс, например в одном файле публичный интерфейс, в другом приватный и тп
ну и в чём тут отличие от модулы-2/ады?
[08:37:27] <s6> вас всех уроет центробанк
[08:37:29] <Kemet> в том,что это в общем случае не один файл
[08:38:05] <alexey.veselovsky> Вирт не думал, он тупо спер у Xerox Park то что увидел :-)
[08:38:24] <alexey.veselovsky> а затем, уже в Обероне, не поняв зачем оно было нужно, избавился от этого.
[08:38:29] <Kemet> и пользователь конкретного интерфейса(файла интерфеса) ничего не знает об остальном, что как бэповышает инкпсуляцию и безопасность
[08:39:19] <alexey.veselovsky> он не понял что эти интерфейсы нужны не компилятору, а человеку. причем не человеку-одиночке, а работающему в большой группе
[08:39:27] <alexey.veselovsky> сам то он в больших группах не работал никогда
[08:40:20] <Kemet> вряд ли
[08:40:34] <alexey.veselovsky> точно-точно не работал :-0
[08:40:36] <alexey.veselovsky> :-)
[08:40:46] <alexey.veselovsky> это прекрасно видно и по ЯП Оберон и по ОС Оберон
[08:41:55] <Kemet> интерфесы в обероне генерились, те дефиниции
[08:42:08] <alexey.veselovsky> это совершенно не то
[08:42:11] <s6> гыгы "Вариант первый: сделать виноватым Центробанк. Атака на него сегодня проходит в лучших традициях 1930-х годов – с подобающими версиями о «японских шпионах», «заговорами» и криками о «правобухаринских» и «левотроцкистских уклонах». Вслед за Виктором Цоем руководители ЦБ названы агентами ЦРУ." http://bankir.ru/publikacii/s/tsentrobank-kak-gosudarstvennyi-prestupnik-10005642/
[08:42:19] <geniepro> alexey.veselovsky> сам то он в больших группах не работал никогда
он же работал в группах из максимум двух человек -- он и гуткнехт!
[08:42:19] <Kemet> такчто программер не былобделен
[08:42:59] <alexey.veselovsky> был обделен :-) еще раз - автогонерированное читать - хуже нет. да и процесс разработки от спецификаций не построить таким образом
[08:43:10] <alexey.veselovsky> скорее уж нужна тулза для генерации рыбы реализации по спеке
[08:44:26] <Kemet> alexey.veselovsky: ну вот там брали сгенеренную дефиницию, и дописывали до нужной кондиции
[08:44:48] <Kemet> понятно, чтоэто не спека, но
[08:44:52] <geniepro> alexey.veselovsky: для хаскелла нечто подобное называется Джинн Djinn -- он генерирует тело функции по описанию её типа ))
[08:45:11] <s6> юзай эклипс люк
[08:45:11] <alexey.veselovsky> а толку, если никто не гарантировал что эта дефиниция будет не противоречить реализации?
[08:45:17] <Kemet> НО! Естьже ИДЕ!
[08:45:44] <alexey.veselovsky> о, костыли пошли :-)
[08:45:59] <alexey.veselovsky> ну и - где для Оберона хоть одна вменяемая ИДЕ? :-)
[08:46:13] <s6> я писаль =) но обиделся и стёр всё =)
[08:46:17] <Kemet> где-то есть!
[08:46:20] <geniepro> лучшая IDE -- Emacs!
[08:46:37] <s6> alexey.veselovsky, я на базе JDT Ecl. писал
[08:47:02] <alexey.veselovsky> важно не кто и что писал, а важно что было дописано и опубликовано
[08:47:24] <s6> эк ты важности расставлять монстёр =)
[08:47:41] <s6> важны вообще банкиры
[08:48:06] <s6> или вождь дедушка ленин
[08:48:16] <geniepro> alexey.veselovsky> ну и - где для Оберона хоть одна вменяемая ИДЕ? :-)
[08:48:38] <geniepro> православные программисты уходят с еклипсов на текстмейты всякие
[08:49:02] <s6> а муслимы никуда не уходят етить
[08:49:11] <geniepro> и ваще, акрон же сделал иде для оберона-7 -- вот возьми и допили до вменяемости )
[08:49:15] <s6> православие это фимоз
[08:49:38] <alexey.veselovsky> кроме того, IDE - это один фиг не удобно
[08:49:48] <s6> ыыыы сказал сишник
[08:50:11] <alexey.veselovsky> просто потому, что если нет спек на модули нормальных, то например на жидхабе просто так легко и просто уже код не посмотришь
[08:50:15] <Kemet> ну вообще, чтото нужно да,дажев АО, было убрали опережающее определение процедур/операторов, потом опять ввели, этож удобно так интерфейсопределить,а ниже реализацию
[08:50:50] <alexey.veselovsky> ну да. мы же люди. да, компилятору пофиг - машина она железная
[08:50:57] <alexey.veselovsky> а мы то люди - читаем таки сверху вниз
[08:51:00] <geniepro> Kemet: хаскелла на вас нет )
[08:51:03] <alexey.veselovsky> снизу вверх - нам неудобно
[08:51:24] <geniepro> Kemet: или сишарпа )
[08:51:44] <Kemet> geniepro: одноитоже
[08:52:27] <s6> geniepro на вас нет! уж он-то
[08:52:37] <s6> geniepro, тебе Зорко привет передавал
[08:54:52] <alexey.veselovsky> он еще там жив?
[08:54:57] <s6> угу да
[08:55:11] <s6> вчера был жив
[08:55:16] <geniepro> s6: зорко -- больной, о чём я не устаю повторять
[08:56:07] <geniepro> он мне недавно заявы предъявлять начал -- "не пиши на моём форуме, ты мне нинужен, иди к веселовскому или свой собственный делай, а то забаню!"
ну я его и послал нах
[08:56:44] <alexey.veselovsky> o_O
[08:56:46] <alexey.veselovsky> O_o
[08:56:47] <s6> он мне в более мягких чертах рассказывал (слегонца)
[08:57:13] <geniepro> какие бы ни были черты -- суть-то одна! зри в корень!
[08:57:36] <s6> режь правду матку
[08:58:09] <s6> блин. нада пилить бакс покупть за рупь
[08:58:34] <s6> слоупочить
[09:00:04] <s6> geniepro, чё его СМИ задурили чёле зорку?
[09:00:59] <geniepro> s6: там они все зомби, на этой ихней уркаине
[09:01:40] <s6> в СЛ тоже. годами существовала коммунити. потом лидер украинка всех русских послала =)
[09:01:42] <geniepro> s6: вот ты сидишь себе спокойно в своей деревне в глуши России, а для зорки ты -- оккупант, убивающий детишек на донбассе
[09:02:04] <s6> я в областном центре сижу же
[09:02:04] <geniepro> s6: вот, тоже свидомая шизофреничка
[09:02:33] <geniepro> s6: в областном центре? ну значит ты пуляешь по донбассу из градов атомными бомбами!
[09:02:53] <s6> да не, Зорко на меня ни разу не гнал
[09:03:20] <s6> и говорил таки о дружбе народов
[09:03:22] <geniepro> ну зорко живёт в деревне, там может и нет телека у него, а жил бы в киеве -- ты бы его не узнал
[09:04:00] <s6> сми он посматривает, судя по всему
[09:05:50] <s6> и одна фашиствующая киевлянка для меня тож делает исключение
[09:05:56] <s6> так что я шпеён =)
[09:06:05] <s6> с уважением относится
[09:07:23] <Kemet> s6: она надеется )
[09:07:40] <s6> мало её знаю.
[09:11:28] <s6> ещё Зорко сказал что ополченцам платят штуку бакарей в мес
[09:11:52] <s6> типа у него свои люди там были
[09:11:58] <s6> в тех местах
[09:14:41] <geniepro> s6> ещё Зорко сказал что ополченцам платят штуку бакарей в мес
это что бы они с голоду не померли что ли?
[09:15:44] <s6> аха
[09:15:46] <geniepro> интересно, сколько получают иностранные наёмники, работающие на киве
была инфа, что за 1 вылет 5 тыщ баксов
[09:15:55] <geniepro> киев*
[09:19:28] <Kemet> s6: неважно, что ты ее плохо знаешь )) как раз это хорошо, ибо она на другое надеется - шо ты потенциальный майданек
[09:20:13] <s6> ну я да, такой. у меня даже в linkedin.com записано что я Ривалюцианер с 1917 года =))
[09:20:43] <s6> и даже Recommendation стоит от одного друга "He is great!" =))
[09:21:07] <geniepro> s6: your greatness )))
[09:21:21] <s6> geniepro, не подхалимь, всё равно расстреляю =) шучу
[09:23:58] <s6> ох на мороз вылазить в банк пилить
[09:25:42] <geniepro> лыжи оденешь? ))
[09:26:32] <s6> снегоступы
[09:27:03] <geniepro> на голову )
[09:27:20] <s6> а на голову шапку-пидорку =)
[09:27:24] <geniepro> будешь как йога вниз головой ездить по снегу )
[09:28:47] <s6> чёйта
[10:10:51] <geniepro> http://scientificrussia.ru/articles/pervyj-kompyuter-mog-byt-sozdan-arhimedom
[11:14:19] <kpmy> поганые погромисты
[11:17:31] <kpmy> стандартная библиотека для оберонов, бгг
[11:18:06] <kpmy> где-то засели тайные мейнстримщики, переформатируют сообщество
[11:45:53] <vаlexey> кто-то опять затеял стандартную либу для оберона? :-)
[11:56:45] <kpmy> да ваще
[11:56:56] <kpmy> да еще и написать ее на чистом обероне, без примесей
[11:57:13] <kpmy> сразу на С бы писали, чо уж
[12:24:56] <kpmy> в кодогенераторы никто не вкладывается, зачем нужна стандартная либа если будет всего одна полуживая платформа
[12:27:33] <akastargazer> Ну так диалекты оберона суть медицинский факт
[12:28:25] <akastargazer> Уважаемый valexey на форуме всем плешь проел, доказывая, что КП это не Оберон
[12:30:43] <kpmy> ето он от хуцпы свой продукт выпячивал как единственно правильную реализацию.
[12:31:14] <kpmy> ну вообще получается, что диалекты и платформы теряют смысл, если все низводится до первоначального оберона
[12:31:58] <vаlexey> позднеосеннее обострение :-)
[12:32:20] <kpmy> это генерал мороз
[12:32:24] <kpmy> лютует
[12:32:58] <akastargazer> Ну, во-первых, не всё низводится
[12:33:32] <akastargazer> Во-вторых, единой платформы нет, как ни крути. А воду мутит Кемет, ему для А2 надо.
[12:34:45] <akastargazer> Посмотрел гуй в блендере, там тоже при перетаскивании окошки отстают от курсора
[12:35:01] <akastargazer> А как же в винде не отстают. Вот же головоломка. Я тоже так хочу
[12:35:23] <kpmy> в винде мышь оверлейная вроде
[12:35:39] <akastargazer> И шо?
[12:35:47] <kpmy> выводится через видеопамять значит, в соседнем потоке
[12:35:50] <akastargazer> И шо?
[12:36:06] <kpmy> вот и не отстает, шо
[12:36:12] <kpmy> одновременно крутится
[12:36:14] <akastargazer> Как раз должна поэтому отставать
[12:36:14] <vаlexey> не, просто важно чтобы и мышь и окошки выводились через один и тот же механизм
[12:36:16] <vаlexey> всё
[12:36:40] <akastargazer> Дык рендер окна физически занимает какое-то время. За это время юзер успевает сдвинуть мышь
[12:36:56] <akastargazer> Если мышь независимо рисуется, то это заметно на глаз
[12:36:57] <vаlexey> а курсор - НЕТ!
[12:37:02] <vаlexey> "=_
[12:37:06] <vаlexey> "-)
[12:37:09] <akastargazer> Ну вот да. Они курсор тупо к положению окна привязывают. Обман, обман
[12:37:25] <vаlexey> такс, ладно, пора спать
[12:37:27] <vаlexey> ночь на дворе
[12:37:37] <akastargazer> Куда спать, Россия-матушка не спит
[12:37:51] <vаlexey> здесь вам не россия :-)
[12:37:58] <akastargazer> Америкашка
[12:38:08] <vаlexey> :-)
[12:38:30] <vаlexey> /me прикупил на распродаже виндофон за недорого. для экспериментов
[12:38:42] <akastargazer> почем?
[12:38:53] <vаlexey> 2500 рублей
[12:39:30] <vаlexey> /me ждет когда доставят
[12:46:28] <kpmy> а у нас как обычно отличились, за неделю до распродажи цены подняли, а потом типа понизили, вот и распродажа
[12:46:59] <kpmy> покупали за старый бакс, а продают за новый
[12:51:50] <vаlexey> что логично. им же следующую партию за новый покупать
[12:52:06] <vаlexey> если продадут за старый, то товара больше закупить не смогут
[12:52:55] <vаlexey> а этот маздаефон почти в два раза цену скинул сегодня
[12:55:06] <vаlexey> характеристики правда, как у древнего iPhone 4s примерно
[12:55:27] <vаlexey> (из отличий - экран - он тут чуть больше, но при этом разрешение чуть ниже)
[13:07:39] <kpmy> надеюсь у них купят меньше, чтобы они разорились нахер
[13:31:31] <geniepro> vаlexey> /me прикупил на распродаже виндофон за недорого. для экспериментов
какая модель?
[13:35:01] <geniepro> при всей неприязни к свидомитам не могу не отметить подборку цитат про ООП: http://maxim.livejournal.com/444440.html
[13:42:29] <kpmy> оопяку на гиляку
[13:43:32] <akastargazer> В блог пишет по-русски, а дочь учит суржику, идиот
[13:43:55] <kpmy> он очень умный чувак
[13:45:54] <akastargazer> Выдайте ему банан и дерево
[13:46:14] <akastargazer> Ум программиста это не то же самое, что ум обычного человека
[13:46:18] <vаlexey> geniepro: http://www.microsoftstore.com/store/msusa/en_US/pdp/BLU-Win-Jr---Unlocked/productID.310469500
[13:46:20] <vаlexey> это
[13:46:50] <akastargazer> А у укропрограммистов вообще два шила в жопе, это я давно подметил, когда игростроил в начале 2000
[13:47:26] <geniepro> akastargazer: они даже в какую-то игру забубенили надпись "роисся вперде" -- скандал был по этому поводу
[13:47:29] <vаlexey> какие?
[13:48:00] <geniepro> vаlexey: неплохая соточка за такие копейки
[13:48:27] <akastargazer> Да не, пассионарности у них хоть отбавляй, только теперь по майдану ясно, чтоб из укра сделать человека, нужен намордник и ошейник
[13:49:15] <geniepro> vаlexey: камера как в моей нокии 1320 о_О 5 мегапикселов )
[13:49:45] <geniepro> akastargazer: это получится не человек, а цепной пёс )
[13:50:00] <akastargazer> Для них норм.
[13:50:15] <vаlexey> geniepro: в камере не мегапикселы главное :-)
[13:50:47] <geniepro> vаlexey: запусти там тесты антуту и my phone
[13:51:15] <geniepro> про мою лумию 1320 my phone пишет -- быстрее чем 98% виндофонов
[13:51:42] <vаlexey> ну когда приедет - тогда и запущу :-)
[13:51:46] <vаlexey> неделю-полторы ждать
[13:52:13] <geniepro> на али экспрессе заказал что ли? )
[13:52:34] <vаlexey> в мссторе
[13:52:38] <vаlexey> здешнем
[13:52:52] <vаlexey> оно до 7 рабочих дней идти будет
[13:52:57] <geniepro> http://www.ixbt.com/news/hard/index.shtml?18/25/61
"Американская компания Blu Products пополнила каталог смартфонов моделью Win JR, работающей под управлением ОС Windows Phone 8.1. Новинка преподносится как доступная альтернатива Nokia Lumia 530 — в интернет-магазине Microsoft Store она оценена в $100."
[13:54:45] <vаlexey> в отличие от ноклы тут есть фронтальная камера
[13:55:12] <vаlexey> ну и цена в 49 баксов тоже радует :-)
[13:56:20] <geniepro> о_О 89 наверное? )
[13:56:26] <vаlexey> 49
[13:56:29] <geniepro> о_О
[13:56:31] <тихий бот> О_о
[13:56:53] <vаlexey> cyber monday же
[13:56:58] <vаlexey> скидки :-)
[13:56:59] <geniepro> ну ваще да, если по текущему курсу )
[13:57:03] <vаlexey> 2500 рябчиков
[13:57:14] <vаlexey> в смысле, по текущему?
[13:57:21] <geniepro> заказать тебе что ли десяток ))
[13:57:25] <vаlexey> я ж в штатах
[13:57:33] <geniepro> ну курс 52 руб за бакс же вроде
[13:57:39] <vаlexey> а неа. уже цена то снова 89
[13:57:48] <geniepro> ну блин ваще не успел ))
[13:57:52] <vаlexey> надо было на сутки раньше :-)
[14:00:51] <vаlexey> эхъ.. гуйню бы к Go.. цены бы ему не было
[14:01:05] <geniepro> зачем? это же скриптовый язык )
[14:01:16] <geniepro> SDL наверное есть для го?
[14:01:28] <vаlexey> sdl есть
[14:01:39] <vаlexey> в каком месте оно скриптовое? :-)
[14:02:22] <vаlexey> но sdl сложно гуями назвать :-)
[14:03:35] <vаlexey> O! Во! https://github.com/andlabs/ui
[14:06:08] <vаlexey> надо будет попробывать!
[14:15:41] <kpmy> попробЫвай
[14:17:03] <geniepro> err := ui.Go()
if err != nil {
log.Print(err)
}
фууу! nullable pointer detected!
[14:17:44] <kpmy> а куда ж без них?
[14:20:14] <geniepro> в хаскель!
[14:25:09] <kpmy> вообще было бы интересно построить рантайм, который вместо NIL при создании указателя нацеливал бы его на дефолтный экземпляр сущности.
[14:25:26] <kpmy> получится этакий депенденси инжекшн
[14:25:45] <kpmy> только объявил указатель, а он уже нацелен на объект
[14:31:20] <geniepro> kpmy: ну это значит просто что NIL должен быть не просто нулём, а просто дефолтным объектом
[14:32:07] <geniepro> но это хоть и рпедотвратит access violation, всё равно не избавит от разных логических ошибок от неправильной инициализации объекта, так что это неверный путь
[14:36:10] <geniepro> http://www.image.kg/images/2014/12/01/BiLI.jpg
[14:45:33] <kpmy> ну, несуществование объекта в природе тоже может быть, значить NIL это нормально
[14:47:25] <geniepro> kpmy: ну да, либо настоящий NIL без всяких подставляемых дефолтных экземпляров, либо полное отсутствие NIL'а как в хаскелле
[14:49:24] <geniepro> http://alexey-donskoy.livejournal.com/150271.html
не понимаю, почему неглупые казалось бы люди не могут понять опасность ГМО??? ведь ясное дело, что если генокод отличается от нормального растения или животного, то хз что там может быть -- тестировать надо
[14:49:25] <kpmy> дык как же ты его сделаешь
[14:49:45] <geniepro> а то получится что съел ГМО-продукт и отравился ядом рыбы фугу
[14:51:15] <geniepro> kpmy> дык как же ты его сделаешь
если передаёшь указатель, то только заведомо ненулевой (упакованный в контейнер Maybe), иначе передаёшь некое значение, которое означает отсутствие объекта и которому нельзя послать сообщения/вызвать его методы
[14:56:35] <geniepro> http://dok-zlo.livejournal.com/1626835.html
[15:07:40] <Kemet> дык нулевые указатели легколовить аппаратно,а если там спецобъект, как его поймаешь, постоянные проверки нужнытогда
[15:08:42] <kpmy> чем Maybe отличается от проверки на NIL
[15:09:39] <akastargazer> Чем белок в ГМО-корове отличается от белка не-ГМО-коровы?
[15:09:42] <kpmy> ну в целом, единственное что можно сделать, это добавить в обработчик NullPointerException всякие заглушки
[15:11:28] <kpmy> серебро поползло вверх вслед за гольдом
[15:17:55] <kpmy> гмо-белок может закручен в пространстве не совсем точно, никто не знает, как это влияет на людишек
[15:18:58] <geniepro> Kemet> дык нулевые указатели легколовить аппаратно,а если там спецобъект, как его поймаешь, постоянные проверки нужнытогда
нулевые указатели нужно ловить компилятором, а не аппаратно
[15:19:26] <geniepro> kpmy> чем Maybe отличается от проверки на NIL
тем что Maybe нельзя обойти, а проверку на NIL можно забыть
[15:19:54] <geniepro> akastargazer> Чем белок в ГМО-корове отличается от белка не-ГМО-коровы?
тем что кроме этого белка там может быть ещё куча всякой гадости ядовитой
[15:56:47] <kpmy> для Maybe есть нормальная замена - оператор разыменования, что-то типа WITH с секцией NIL
[15:56:56] <kpmy> я давно думал, что такое нужно
[15:57:26] <kpmy> DEREF x
ELSNIL END;
[15:57:50] <kpmy> то есть разыменовать можно только внутри секции
[16:01:08] <Kemet> kpmy: не знаю что за мейби, но если ты не проверил указатель, то обращение к такому указателю вызовет аппаратное прерывание
[16:02:54] <kpmy> ну такое и сейчас есть
[16:03:00] <kpmy> на продакшене такое ловить неохота
[16:04:06] <Kemet> поэтому nil это не ноль, это адрес из пространства, обращение к которому вызывает аппаратное прерывание
[16:04:33] <Kemet> вернее не обязательноноль
[16:05:00] <kpmy> ну это и не важно, пусть будет ноль
[16:05:33] <kpmy> но ексепшн это же не часть логики, на них нельзя строить обязательную проверку на NIL
[16:06:01] <kpmy> а если у тебя есть обязательная проверка перед разыменованием, и секция ELSNIL то и эксепшн не нужен
[16:06:42] <geniepro> kpmy> для Maybe есть нормальная замена - оператор разыменования, что-то типа WITH с секцией NIL
ну это и есть что-то типа Maybe с паттерн-матчингом -- главное, что бы нельзя было обратиться к сырому указателю вообще никогда -- только после разыменования
[16:07:30] <kpmy> другой вопрос, что работа с указателями становится удобной только после разыменования
[16:07:39] <kpmy> через знак .
[16:07:56] <kpmy> как будто и нет никакого указателя
[16:08:24] <Kemet> kpmy: это ничем не отличается, это просто специализированный обработчик конкретнойискл ситуации, сахар,все равно рантайм
[16:09:06] <kpmy> да это не исключительная ситуация, нулевые указатели вполне себе часть понятийного поля.
[16:09:22] <kpmy> это только в джаве возвращают пустой список, лишь бы не поймать NPE
[16:09:28] <geniepro> kpmy> DEREF x ... ELSNIL END;
это как в хаскелле case objptr of Just obj -> {- какая-то операция над obj -}; Nothing -> {- какая-то операция над отсутствием объекта -}
только в хаскелее это общий механизм, а не специальный
[16:09:56] <kpmy> ну неудобно же, пиздец
[16:10:15] <geniepro> зато гарантия отсутсвия ошибок разыменования нулевого указателя
[16:10:46] <kpmy> может, надо что-то типа ptr.Do()?
[16:10:59] <kpmy> то есть вместо точки с запятой вопрос
[16:11:04] <geniepro> и что делает NIL.Do() ?
[16:11:06] <kpmy> NIL или нет
[16:11:20] <kpmy> уходит в ветку ? END;
[16:11:35] <Kemet> kpmy: чем это отличается от
IF ASSIGN(зек) THEN ... ELSE... END
[16:11:52] <geniepro> kpmy> уходит в ветку ? END;
это и есть вариант эксепшина
[16:12:26] <geniepro> Kemet> IF ASSIGN(зек) THEN ... ELSE... END
а что тут делается? что за ассайн такой тут?
[16:13:26] <Kemet> geniepro: \дык проверка что указательвалиден
[16:15:01] <geniepro> Kemet: и если ты её забудешь, то что?
[16:15:33] <geniepro> Kemet: идея то в том, что бы было невозможно использовать указатель без проверки его валидности
[16:25:08] <Kemet> geniepro: у Петра тоже самое -нужно писать кот, о чем можно забыть
[16:25:50] <geniepro> Kemet: Пётр не привёл толком кода, как он там разыменует указатель -- неясно
[16:26:21] <Kemet> в каких случаях nil; не валиден?
[16:27:00] <geniepro> в тех, когда ты думаешь, что там объект, который можно использовать, а там на самом деле неинициализированный объект -- NIL
[16:27:19] <geniepro> Kemet: что делает NIL.Do() ?
[16:27:34] <Kemet> ну т.е.при обращении на запись или на проверку типа
[16:27:54] <geniepro> при попытке обращения к содержимому объекта
[16:28:09] <Kemet> на запись члена классаа или обращение к методу
[16:28:19] <Kemet> ага
[16:30:52] <Kemet> и что нужно сделатьесли указательневалиден
[16:31:31] <kpmy> проверка при разыменовании обязательна, то есть, если написал ptr. то уже обязан поставить в конце секцию ? END;
[16:31:43] <kpmy> но тут сложность, как быть с цепочкой разыменований
[16:32:09] <kpmy> или даже просто ptr.Do? <NIL секция> ;
[16:32:24] <Kemet> поэтому и используют исключения с отловом кокретных исключений
[16:32:31] <Kemet> блок трай
[16:32:58] <kpmy> блок try просто глотает все подряд, на этом нельзя строить алгоритм
[16:33:18] <Kemet> ибо у тебя 10 строк и в каждой разыменование, что ты будешьгородить?
[16:33:32] <kpmy> конечно, как иначе
[16:33:39] <Kemet> kpmy: невсе, а точто тебе надо
[16:34:31] <Kemet> kpmy: ты же указываешь,какие исключения ловишь
[16:35:45] <geniepro> kpmy> но тут сложность, как быть с цепочкой разыменований
и вот мы плавно дошли до монады Maybe )))
[16:37:00] <kpmy> а что дает монада?
[16:38:14] <kpmy> Kemet: в том-то и дело, что я могу сделать типа логику catch(NPE e){ значительная часть бизнес-логики }; это же ад
[16:38:23] <geniepro> ну конкретно монада Maybe (а разные монады -- таки разные) даёт возможность устроить своего рода конвейер разыменований, и если какое-то из разыменований оказывается неуспешным, вся цепочка оказывается неуспешной
[16:38:31] <Kemet> я думаю, что реакцию на пустой указатель нужно сделатьчастью объявления типа, тогда будет проще
[16:38:37] <kpmy> что дает монада при обращении именно с цепочкой разыменований
[16:39:14] <geniepro> kpmy: она организует её в компактный и понятный (когда привыкнешь) код
[16:39:39] <kpmy> а, ну это можно и в данном случае, чтобы символ ? работал для всей цепочки. но тут возникает проблема отладки - как узнать, какой именно элемент цепочки равен нулю
[16:40:18] <geniepro> другое дело, что в хаскелле do-нотация при работе с монадами единообразная для разных монад и не сразу сообразишь, где какая монада используется
[16:40:53] <geniepro> kpmy> тут возникает проблема отладки - как узнать, какой именно элемент цепочки равен нулю
ну и это да, тут монада мейби не помошник, увы
[16:43:31] <kpmy> прозрачность разыменования в обмен на логичную обработку NPE
[16:48:42] <Kemet> понятно, чтона каждое разыменование можногенеритьмашкод для проверки и обработки, и ключи компиляции,чтобы включать-выключать
[16:50:23] <geniepro> Kemet: то, что может быть проверено при компиляции -- должно быть проверено при компиляции
просто потому что в этом случае цена ошибки минимальна
[16:50:48] <Kemet> geniepro: я говорю о времени выполнения
[16:52:41] <Kemet> ноэто очень накладно будет,и по размерам и по скорости,и все эти автоматические секции обработки исключений тоже немоло сожрут
[16:53:43] <kpmy> да все эти условия примитивные, проверка и прыжок займут меньше, чем дроч в heap памяти, а нервов сэкономят
[17:41:05] <Jordan> не курю пятый день, тоскливо.
[20:08:40] <vlad2> kpmy: я ж давно толкал идею про ненулевые указатели.
[20:10:01] <vlad2> поступать с ними примерно так же как с обычными кастами (WITH или как в ебероне).
[20:18:31] <vlad2> пока не кастнул - не давать разыменовывать.
[21:45:20] <geniepro> рано или поздно, но уркаину придётся форматировать! русофобия на марше: http://colonelcassad.livejournal.com/1928170.html
[22:20:12] <akastargazer> На кп сегодня писал интерфейс в одном модуле, реализацию в другом.
[22:20:28] <akastargazer> Так что веселовский опять мимо
[22:21:14] <geniepro> akastargazer: пример?
[22:22:05] <akastargazer> Спецификацию декоратора окна. А реализация на опенгл
[22:22:13] <kpmý> vlad2: как тебе вариант с ? вместо ; в конце выражения с указателем?
[22:23:07] <geniepro> akastargazer: как это выглядит синтаксически? разные файлы, меняемые в поставке продукта руками?
[22:24:02] <geniepro> akastargazer: дефиниция модуля на что-нибудь влияет? компилятор про неё знает, проверяет?
[22:24:29] <akastargazer> Я же написал, два разных модуля. Можно убрать сырец и смотреть символьный
[22:24:58] <akastargazer> Конечно, знает. Ты как здрасте
[22:26:10] <geniepro> о_О то есть у этих модулей совпадают имена файлов с расширениями?
[22:26:51] <geniepro> что значет "символьный модуль"? это то, что генерируется как якобы спецификация по модулю реализации?
[22:27:35] <geniepro> akastargazer: если тебе дать некий символьный модуль, сможешь сделать для него реализацию без подмены символьного файла?
[22:28:08] <kpmý> да
[22:28:09] <тихий бот> kpmý, нет
[22:28:13] <kpmý> нет
[22:28:13] <тихий бот> Нет, не нет...
[22:28:17] <kpmý> ага
[22:33:42] <geniepro> http://avderin.livejournal.com/513851.html "История о восьми дворниках."
[22:41:33] <geniepro> любопытно, тот аппарат, что недавно прикомечивался где-то там далеко в космосе, управлялся фортовскими стековыми процессорами: http://www.cpushack.com/2014/11/12/here-comes-philae-powered-by-an-rtx2010/
[22:42:24] <geniepro> вот так форт, придуманный астрономом, всё-таки попал в далёкий космос, хотя и не долетел ещё до другой звезды )))
[22:57:16] <kpmý> инопланетяне обосрутся от полиза
[23:01:01] <geniepro> kpmý: да нифига! раз уж мастер йода на нём думает, то для инопланетян полиз родной )
[23:07:10] <vlad2> kpmý: ? - в смысле ничего не делать если NIL?
[23:07:25] <vlad2> Тогда уж "?" в начале...
[23:09:45] <geniepro> в сишарпе есть nullable values или что-то такое -- типа "bool? f"
[23:10:01] <geniepro> не помню правда как с ними работать -- всего-то пару раз юзал )
[23:27:32] <akastargazer> (02.12.2014 21:27:35) geniepro: akastargazer: если тебе дать некий символьный модуль, сможешь сделать для него реализацию без подмены символьного файла?
Конечно.
[23:41:01] <akastargazer> Мессенбок детально описывает отказ от интерфейсных модулей: ftp://ftp.ssw.uni-linz.ac.at/pub/Papers/Moe00b.pdf
Finally, explicit definition modules 1duplicate the number of source files and make it harder to maintain a large software system.
Да, я помню эту Модулу. И эти интерфейсные модули. Когда одну и ту же процедуру надо было дважды описывать. Заебись как весело.
Так что те, кто говорят про маленького Вирта с его маленькими системами, просто никогда не писали на Модуле
[23:42:36] <akastargazer> Собно, это всего лишь организационный вопрос. Пиши себе пустые процедурки, а заполнять их отдавай макакам.
[23:43:36] <Jordan> В паскале так же. В модуле ещё нужно было укзавать функции импорта, какие переменные функции использует данный модуль.
[23:43:43] <_valexey_> В РАДИОАКТИВНУЮ ПЫЛЬ!!1
[23:44:05] <akastargazer> нашествие ботов с факелами
[23:44:08] <akastargazer> из Америки
[23:44:10] <akastargazer> .lem
[23:44:12] <тихий бот> akastargazer, Земля падает на Солнце и почти все гибнут.
[23:44:20] <akastargazer> Да не то же
[23:44:26] <akastargazer> Где парни с факелами?
[23:44:51] <_valexey_> Все писали на си и с++, там ровно то же самое. И это удобно.
[23:45:07] <_valexey_> В модуле - еще лучше
[23:45:18] <akastargazer> Где на си раздельная компиляция?
[23:45:32] <_valexey_> Главное - удобство читателя, а не писателя
[23:45:50] <_valexey_> Я про описывание функции в двух местах
[23:45:56] <akastargazer> Приучи макаку к банану, и ей будет удобно
[23:46:24] <akastargazer> Но писать одно и то же в двух местах - это реально неудобно.
[23:46:32] <_valexey_> Как оно компилируется - вообще дело десятое.
[23:46:43] <_valexey_> Вопрос в том, как оно человеком читается.
[23:47:15] <kpmý> vlad2: не, типа, обязательная секция обработки случая, когда указатель NIL
[23:47:33] <akastargazer> Вся проблема подобных обсуждений в том, что все критикуют разработку на Оберонах, не имея опыта разработки на Оберонах, исходя из собственного опыта разработки на других ЯП.
[23:47:53] <_valexey_> Я сейчас пишу активно на objc и go, не сказал бы что в go писать удобней. И вообще с исходниками своими и сужими работать.
[23:48:23] <akastargazer> Аб чём и речь
[23:49:04] <_valexey_> Ну и исходников га обероне я вполне пописал, а прочитал то вообще много
[23:49:20] <_valexey_> И читать оберон код тз за этого менее удобно чем код той же модулы
[23:50:13] <_valexey_> Оналогично go vs objc
[23:50:14] <_valexey_> Или c++ vs java
[23:50:33] <_valexey_> В этом аспекте
[23:50:42] <akastargazer> Речь ведь о больших системах, когда народ строит много всего. А интерфейсы я читаю каждый день по многу раз, сишные и оберошные. И разница заметна
[23:52:00] <_valexey_> Угу. В обероне сложнее разобраться :-)
[23:53:51] <akastargazer> На чём основано такое впечатление?
[23:54:13] <_valexey_> На опыте работы со всем этим
[23:54:42] <_valexey_> Такс, ладно. Работать надо. Начало рабочего дня таки.
[23:56:32] <akastargazer> А у меня от прикосновения к си такие впечатления: http://juick.com/akastargazer/2668923
[23:57:01] <akastargazer> Скажем так, субъективные пристрастия не должны мешать видеть вещи объективно
[23:57:39] <akastargazer> Сам себя процитирую:
Можно даже сказать, что это число, обозначающее индекс буквы (символа) в некой таблице символов. Но тут, поелику речь идёт о ТИПЕ, сразу встаёт вопрос — чем это индекс отличается от прочих числовых типов? K&R дают ответ, что якобы, "Тип char специально предназначен для хранения символьных
данных...", и тут же сами себе противоречат: "...однако для этого также годится и любой целый тип.". Спрашивается, нахуя козе баян?
Ответ (оттуда же): "По определению, значения типа char являются просто малыми целыми". Ахуеть просто. "Малое целое". При этом, "char — единичный байт, который может содержать один символ из допустимого символьного набора;". Вечер перестаёт быть томным.
И тут K&R делают контрольный выстрел в ногу: "Являются ли значения типа просто char знаковыми или беззнаковыми, зависит от реализации, но в любом случае коды печатаемых символов положительны.".
Всё, я с этого места окончательно перестаю понимать, зачем типу char квалификатор signed )))
[23:57:59] <akastargazer> И не надо мне рассказывать про понятность Оберона :)
[23:58:07] <_valexey_> А я и вижу более-менее объективно - в этом аспекте Си пл сравнению с модулой и тем более Адой - полное говно.
[23:58:37] <_valexey_> Но вот ява, оберон, го, шарп - еще хуже чем си.
[23:58:59] <kpmý> объективно, лол
[23:59:04] <kpmý> харош хоть)