[09:43:00] <akastargazer> вобчем, вчера по делегатам понял, что приходится дополнительно напрягать мозг, чтоб получить то же самое, что и я так мог бы сделать в обероне.
[09:43:57] <geniepro> а на обероне как?
[09:46:23] <akastargazer> завёл бы объект, описал бы его методы и дёргал их. Или вообще сообщение в шину запускал. То есть, не пытался бы осваивать новые механизмы с делегатами
[09:48:58] <akastargazer> в юнити игровой объект имеет иерархическую сущность. Щас у меня два-три уровня вложенности. Например, блок стрельбы на втором уровне. Когда блок попаданий говорит, что всё, надо сообщить всем остальным блокам об этом, чтоб они прекратили работу
[09:49:30] <akastargazer> И там либо надо напрямую вытаскивать компонент GetComponent, либо в компоненте привязать свои методы к делегату
[09:49:40] <akastargazer> То есть, надо как-то устроить коммуникацию объектов
[09:50:19] <akastargazer> И желательно обобщённо, чтоб не привязываться к имени компонента
[09:50:38] <akastargazer> Сообщения там есть, но они медленные.
[09:51:34] <geniepro> организация целого класса ради мелочи в одном месте -- синтаксический оверхед же!
[09:51:52] <geniepro> java-style
[09:52:24] <akastargazer> Я сделал общий класс, и в компонентах просто подключаю к нему их методы
[09:52:37] <akastargazer> то есть, черезжопно организовал этакую шину сообщений
[09:52:46] <akastargazer> оно тяжело очень воспринимается
[09:53:20] <akastargazer> несмотря на то, что в месте использования очень компактный вызов, та самая пресловутая читабельность
[10:05:40] <s6> нада жава 2 си компайлер надерябать =))) мечты
[10:07:09] <geniepro> s6: http://www.cs.arizona.edu/projects/sumatra/toba/
Toba: A Java-to-C Translator
[10:07:56] <s6> geniepro, пасиб. потом гляну
[10:29:14] <Jordan> Что то я ооп не могу осилить.
[10:29:37] <Jordan>
class node
{
public:
 node * next;
 node * prev;
};

class list
{
public:
 node * head;
 node * tail;
 list();
 void append(node * elem);
 void remove(node * elem);
};
[10:29:56] <geniepro> а где здесь ооп? нет наследования -- нет ооп
[10:30:08] <Jordan> сейчас
[10:30:15] <Jordan>
class widget: public node
{
public:
 rect size;
 list childs;
 widget * contains(point pt);
};

widget * widget::contains(point pt)
{
 for (widget * i = childs.head; i != NULL; i = i->next)
 {
   if (( pt.x > i->size.x ) && ( pt.x < i->size.x + i->size.w ) && ( pt.y > i->size.y ) && ( pt.y < i->size.y + i->size.h ))
   {
     return i;
   }
 }
 
 return NULL;
}
[10:30:25] <Jordan> widget наследуется от node
[10:30:30] <Jordan> но
[10:30:37] <geniepro> это у тебя не OOP, а OOPS ))
[10:31:03] <Jordan> for (widget * i = childs.head; i != NULL; i = i->next) этот код не компилируется, как правильно привеси тип
[10:32:37] <Jordan> у меня через наследование список юзается для виджетов и очереди сообщений.
[10:33:00] <Jordan> geniepro Навскидку, что нужно исправить?
[10:33:43] <Jordan> Лёх выручай!
[10:34:29] <Jordan> Походу я не понимаю принципов наследования
[10:36:32] <Jordan> компилятор на widget * i = childs.head; ругается. Делал так widget * i = (widget*)childs.head; i
[10:38:14] <Kemet> ыыы, и патрик ушёл в гугол
[10:38:38] <Jordan> Тот самый?
[10:39:56] <Kemet> да, Patrik Reali, внёсший значимтельный вклад в Активный Оберон, написавший многопоточный компилер АО, JVM для A2 и тп
[10:41:02] <Kemet> вообще, люди, прошедшие школу оберона ethz как раз и создают мейнстрим
[10:42:01] <Jordan> Kemet не глянешькол?
[10:42:06] <Jordan> *код
[10:52:21] <kpmy> http://web.archive.org/web/20120325031326im_/http://plas.fit.qut.edu.au/images/mcp.gif когда-то было планов громадье
[10:53:42] <kpmy> а K J Gough автор GPCP тоже ушел из своего австралийского универа и пилит джаву вроде
[10:57:30] <s6> посоветуйте файловое стораге для бэкапов, подешевше
[10:58:46] <s6> разведать яндекс диск, гугл диск, мегасинк диск
[11:00:04] <s6> сколько там дают яндекс и гугл? мегасинк даёт 50 MB
[11:00:34] <s6> мегасинк даёт 50 GB, Точнее
[11:03:33] <kpmy> AWS?
[11:03:56] <kpmy> но хз, что там с физическими лицами
[11:15:36] <s6> да. цены на Glacier божеские
[11:19:39] <geniepro> Jordan>  for (widget * i = childs.head; i != NULL; i = i->next)
как-то так: for (widget * i = childs.head; i != NULL; i = i->head->next)
или for (widget * i = childs.head; i != NULL; i = i->tail->next)
[11:20:17] <kpmy> прикольно, по поводу функционального программирования пришла мысль, что в модульной системе типа Оберона функциональным может быть один модуль, который например держит бизнес-модель, или научные вычисления, а все стейты будут храниться в модулях обычного оберона, ведь технически, никто не должен делать догадок о природе кода скрытого в модуле
[11:20:44] <kpmy> а это некоторым образом приводит нас к гетерогенной модели вычислений на уровне модулей
[11:20:55] <kpmy> а там и железные реализации подтянутся
[11:20:58] <geniepro> for (widget * i = childs.head
ну тут походу надо for (widget * i = &childs.head
[11:21:35] <kpmy> типа, модуль который для своих вычислений сначала перезаписывает программу на FPGA потом быстро быстро дробит числа, а потом отдает их обычному императивному коду в соседнем модуле
[11:21:54] <kpmy> или там, всякие CUDA, которые сейчас надо явно описывать
[11:22:03] <kpmy> а ведь надо только придумать хороший интерфейс
[11:22:10] <kpmy> который отражает это дело
[11:22:15] <geniepro> s6> посоветуйте файловое стораге для бэкапов, подешевше
бери мелкомягкий OneDrive ))
[11:31:43] <geniepro> http://www.feofan.com/
[11:34:03] <geniepro> kpmy: http://dic.academic.ru/dic.nsf/ruwiki/1340374
[11:34:49] <geniepro> http://technorus.ru/
[11:38:23] <Kemet> Jordan: какой код?
[11:42:38] <Kemet> Jordan: ааа, я С++ не разумею, но у тебя ж там widget "старше" node . старшкму нельзя присвоить младшего, можно олько наоборот
[11:47:48] <kpmy> технорус, забавно
[11:48:14] <kpmy> но он все же не математически обусловленный, как я понял.
[11:48:35] <kpmy> хотя может они просто это не указали в описании
[11:48:55] <Jordan> Я так я widget от node наследую, значит node старше
[11:49:26] <Jordan> geniepro твои варианты не работают затык именно в for (widget * i = childs.head;
[11:49:47] <kpmy> по идее, когда я пишу текст на техническом языке у меня должен быть только выбор слов, то есть я не должен мочь написать слово из головы, только динамически определяемое подмножество из словаря. а схему должно вычислять ПО на основе предыдущих слов.
[11:50:13] <kpmy> но как в таком случае перейти от описания семантики языка к ее реализации все еще остается открытым
[11:50:18] <kpmy> вопросом
[11:50:26] <Jordan> что пишет компилятор error C2440: инициализация: невозможно прео
бразовать "node *" в "widget *"
[11:51:49] <Jordan> и кастовать не даёт
[11:53:46] <geniepro> kpmy> но он все же не математически обусловленный, как я понял.
kpmy> хотя может они просто это не указали в описании
не могу блин скачать ихнюю прогу (( "Обратитесь к администратору сайта" пишет
[11:54:37] <geniepro> Jordan> что пишет компилятор error C2440: инициализация: невозможно прео
бразовать "node *" в "widget *"

кстати, у тебя ведь сверху вниз всё поставлено
[11:54:39] <Kemet> Jordan: эээ, янаписал "старше" в не старше ) - это наследник node и его можно присвоить node, а widget node присвоить нельзя
[11:55:20] <geniepro> Jordan: тому, от кого наследуют, можно присвоить того, кого наследуют, но не наоборот
[11:55:22] <Kemet> а ты как раз node присваиваешь widgetу
[11:55:59] <geniepro> Jordan: Принцип подстановки Лисков http://habrahabr.ru/post/83269/
https://ru.wikipedia.org/wiki/%CF%F0%E8%ED%F6%E8%EF_%EF%EE%E4%F1%F2%E0%ED%EE%E2%EA%E8_%C1%E0%F0%E1%E0%F0%FB_%CB%E8%F1%EA%EE%E2

[11:59:59] <Jordan> ок
[12:00:14] <Jordan> как тогда переписать с сохранением логики?
[12:01:14] <geniepro> Jordan: ну сначала тебе хотя бы надо записать техзадание на упрощённом техническом русском языке
[12:02:00] <geniepro> судя по коду, тебе нужно узнать, находится ли некая точка в каком-то окне?
[12:03:04] <Jordan> да
[12:04:12] <Jordan> есть список node я хочу через наследование пихать в этот список widgetы, и потом проходя по списку проверять попадание точки прямоугольнику
[12:04:14] <geniepro> Jordan: неужели вот так не работает?
 for (node * i = childs.head; i != NULL; i = i->next)

[12:04:45] <Jordan> так работает
[12:05:01] <geniepro> а зачем ты тут вместо node написал widget?
[12:05:07] <Jordan> но как тогда быть с проверкой (( pt.x > i->size.x ) && ( pt.x < i->size.x + i->size.w ) && ( pt.y > i->size.y ) && ( pt.y < i->size.y + i->size.h ))
[12:05:11] <geniepro> он там ваще не в тему возник
[12:05:34] <Jordan> size прописан в wdget
[12:05:56] <Jordan> разсеры самого виджета
[12:06:01] <Jordan> *размеры
[12:06:43] <kpmy> geniepro странно что у них нет веб-версии
[12:07:35] <geniepro> Jordan: ты ищешь подходящий size в списке, который этих size'ов вообще не содержит? что-то не то у тебя с архитектурой
[12:08:02] <Jordan> сейчас код укороченый закину
[12:09:41] <geniepro> Jordan: а вот так работает?
widget * widget::contains(point pt)
{
 for (node * i = childs.head; i != NULL; i = i->next)
 {
   widget *wi = (widget *)i;
   if (( pt.x > wi->size.x              ) &&
       ( pt.x < wi->size.x + wi->size.w ) &&
       ( pt.y > wi->size.y              ) &&
       ( pt.y < wi->size.y + wi->size.h ))
   {
     return i;
   }
 }
 
 return NULL;
}

[12:10:37] <s6> return wi тогда уж
[12:10:43] <s6> а не return i
[12:11:23] <geniepro> я бы аообще вот так записал:
   if  (pt.x > wi->size.x               
     && pt.x < wi->size.x + wi->size.w  
     && pt.y > wi->size.y               
     && pt.y < wi->size.y + wi->size.h)

[12:11:33] <geniepro> s6> return wi тогда уж
точно!
[12:12:06] <Jordan> угу компилит
[12:12:13] <geniepro> а работает? )))
[12:12:18] <Jordan> Это вроде хака?
[12:12:25] <Jordan> сейчас
[12:12:26] <geniepro> нет, это ООП )))
[12:12:37] <geniepro> это просто преобразования типов в ООП
[12:12:47] <s6> там ещё каст (widget*) небезопасен
[12:12:48] <Jordan> в си покрасивше смтрелось
[12:13:16] <Kemet> geniepro: а в if этого приведения нельзя делать?
[12:13:18] <geniepro> Jordan: а теперь перепиши на оберон, дабы соответствовать теме чятика )))
[12:13:26] <akastargazer> >(11:55:59) geniepro: Jordan: Принцип подстановки Лисков
Кстати, в ББ это сплошь и рядом. Все эти HandleCtrlMsg2
[12:13:52] <Jordan> я простую вещь хотел написать, а тут такие хаки
[12:14:21] <geniepro> Kemet: можно, но не красиво же:
   if  (pt.x > (widget *)i->size.x               
     && pt.x < (widget *)i->size.x + (widget *)i->size.w  
     && pt.y > (widget *)i->size.y               
     && pt.y < (widget *)i->size.y + (widget *)i->size.h)
   {
     return (widget *)i;
   }
как-то так
[12:14:24] <s6> какие ещё хаки. всё нормально кроме каста небезопасного
[12:14:48] <geniepro> s6: в чём он небезопасен?
[12:15:02] <s6> если в списке невиджет окажется
[12:15:28] <geniepro> ну это да, это на совести того, кто список заполняет
[12:15:51] <Kemet> geniepro: заче там же в условии i iэто виджет
[12:15:54] <s6> для этого в сишарпе есть As и в яве есть instanceof
[12:16:12] <s6> тогда можна сделать безопасно
[12:16:38] <geniepro> Kemet: i это node*
 for (node * i = childs.head; i != NULL; i = i->next)
 {
   widget *wi = (widget *)i;
   if  (pt.x > wi->size.x               
     && pt.x < wi->size.x + wi->size.w  
     && pt.y > wi->size.y               
     && pt.y < wi->size.y + wi->size.h)
   {
     return wi;
   }
 }
[12:16:56] <Kemet> geniepro: у джордана был виджет
[12:17:04] <geniepro> e ytuj ,skj ytghfdbkmyj ;t )
[12:17:07] <s6> Jordan, а в цпп это будет node<type>
[12:17:11] <geniepro> у него было неправильно же )
[12:17:19] <s6> node<widget> например
[12:17:30] <Kemet> дык приведение к виджету и фсе правильно
[12:18:08] <s6> не всё. каст опасен
[12:18:23] <Kemet> widget * widget::contains(point pt)
{
 for (widget * i = (widget *)childs.head; i != NULL; i = i->next)

[12:18:55] <s6> i = (widget*)i->next
[12:19:02] <s6> i = (widget*)(i->next)
[12:19:41] <Kemet> s6: зачем
[12:20:02] <s6> ошибка компиляции будет без этого
[12:20:12] <Jordan> оно таки работает!
[12:20:19] <s6> i->next имеет тип node
[12:20:22] <s6> node*
[12:20:54] <geniepro> Jordan> оно таки работает!
да не может быть такого ))
[12:21:17] <geniepro> ***
[12:21:48] <Kemet> ну по мне, лучше условие правильно сформулировать, чем личшие переменные плодить
[12:22:21] <Jordan> kpmy Петь скинь ссылку куда моно код выложить.
[12:22:28] <Jordan> *можно
[12:22:42] <geniepro> pastebin.ru
[12:23:53] <Jordan> Не то, Петя норм ссылку давал
[12:25:01] <geniepro> о_О ккая разница?
[12:25:19] <geniepro> Jordan: тебе шашечки или ехать?
[12:26:41] <Jordan> воть https://gist.github.com/anonymous/3fe7083b1cc58d0ee27e
[12:27:19] <Jordan> общая картина
[12:28:44] <Jordan> childs нужен для потомков. Создаём окно, к нему прикрепляем другие виджеты, меню содержит другие и т.д
[12:30:01] <s6> Jordan, node как темплейт сделай =) node<typename>
[12:30:25] <s6> правда я не умею толком с ними обращаться, но видно что там он нужен
[12:31:27] <s6> или просто вместо list взять из stdlib
[12:31:45] <s6> ну короче ладно я убежал
[12:33:18] <geniepro> да, лучше пользоваться стандартными либами
можно не list, а vector взять, например
[12:35:10] <geniepro> kpmy: презенташка: http://www.s1000d.ru/userforum/presentations/Day_3_Track1_04_Simplified_Russian.pdf
[12:37:55] <Jordan> Я просто хотел ещё сделать пулы памяти для виджетов. Потому стандартный std list не подходит
[12:38:15] <Jordan> у меня где то был интрузивный шаблон списка
[12:39:34] <akastargazer> среда монодевелоп прикольно запускается - сначала открывает сплэш с индикатором загрузки, потом ПОД сплэшем окошко с сообщением, что чего-то там не подгружается и останавливается. Надо нажать кнопку ОК, но она ПОД сплэшем. Сплэш мышкой не двигается. Короче, атас.
[12:44:00] <Kemet> kpmy: а ты ББ ещё пользуешься?
[12:45:13] <geniepro> Jordan> Я просто хотел ещё сделать пулы памяти для виджетов. Потому стандартный std list не подходит
преждевременная оптимизация -- корень всех твоих зол
[12:45:58] <Jordan> есть такое
[12:46:01] <Kemet> Здесь ftp://ftp.ethoberon.ethz.ch/ETHOberon/Contrib/VCS/ есть version control system, может портировать её по ББ и сделать локальное версирование, да и не только локальное можно
[12:46:59] <geniepro> akastargazer: тех, кто делает splashscreen'ы при загрузке программы, нужно казнить на медленном огне на электростуле
[12:49:21] <akastargazer> тех, кто делает  ЗАГРУЗКУ программы, надо ещё раньше на кол сажать. Программа должна загружаться НЕОЩУТИМО!!!
[12:49:34] <akastargazer> kung fury, a-a-a-a-a-a-a!!!!!
[12:49:57] <geniepro> ну, любая программа загружается
хорошая программа загружается за 0.1 сек
[12:50:08] <akastargazer> есть загрузка, а есть ЗАГРУЗКА
[12:51:11] <akastargazer> Kemet, да меркуриал обычный пользовали. Денисов вон прикрутил плагин к гиту
[13:08:44] <Kemet> akastargazer: дык своё для локала лучше
[13:08:57] <Kemet> ыы, цЫклы! http://forum.oberoncore.ru/viewtopic.php?f=2&t=2357
[13:12:13] <akastargazer> для составных документов нужно че-то особенное, чтоб диффы нормально смотреть локально, да
[13:47:34] <kpmy> Kemet>  kpmy: а ты ББ ещё пользуешься?

Ну да, когда нужно что-то быстро накидать, просто открываю и накидываю
[13:50:08] <kpmy> версионность это интересно, я как-то думал, что можно хранить диффы в самом документе
[13:53:22] <kpmy> 2010-й год, золотое было время
[14:04:47] <Kemet> kpmy: хранить в самом документе не стоит, лучше описание коммитов в виде линка на диф в другом файле (или на команду выдающую диф)
[14:05:44] <Kemet> но лучше вообще в файле модуля такое не хранить - если есть встроеннаяя квс, то всё это можно получить по команде
[14:08:22] <kpmy> в идее есть такой механизм local history он вообще пишет и запоминает все что ты делал с файлом, в обход стороннего git
[14:16:49] <valexey> https://www.youtube.com/watch?v=_luhn7TLfWU
[14:16:56] <valexey> http://lenta.ru/news/2015/05/29/cheetahjump/
[14:18:25] <valexey> https://www.youtube.com/watch?v=M8YjvHYbZ9w
[14:25:31] <valexey> http://lenta.ru/news/2015/05/29/rostech/
[14:26:45] <geniepro> опять бараны про приватизацию задумались
[14:26:58] <geniepro> за такое вредительство расстрелять надо!
[14:27:33] <valexey> а по моему, норм ;-)
[14:28:48] <boris_ilov> Товарищи, модерация на хабре долго идет?
[14:29:11] <geniepro> valexey: ну для тебя-то да -- чем быстрее россия развалится и превратится в зарубежный штат сша, тем тебе лучше
[14:29:33] <valexey> geniepro: ненене, не надо таких штатов штатам!
[14:30:13] <geniepro> valexey: так значит ты всё-таки патриот сша, хоть и не имеешь тамошнего гражданства?
[14:30:31] <valexey> я то? не-е, я не патриот США!
[14:30:37] <valexey> как я могу быть патриотом США?
[14:31:05] <geniepro> как ты можешь быть патриотом сша??? как тебе не стыдно???
[14:31:23] <valexey> никак не могу :-(
[14:31:51] <boris_ilov> ауу
[14:32:01] <boris_ilov> [14:28:48] <boris_ilov> Товарищи, модерация на хабре долго идет?
[14:32:40] <valexey> boris_ilov: ты имеешь ввиду через какое время тебя забанят за нарушение правил?
[14:32:51] <boris_ilov> та не
[14:32:55] <valexey> или как долго они это будут делать пока им не надоест
[14:32:56] <valexey> ?
[14:33:08] <boris_ilov> сколько модерация новой публикации идет
[14:33:21] <boris_ilov> в песочницу
[14:33:38] <valexey> я не знаю. у меня нет опыта
[14:33:44] <valexey> я в песочницу никогда не писал
[14:33:54] <boris_ilov> а не в песочницу сколько?
[14:34:00] <valexey> 0
[14:34:06] <valexey> нет модерации как таковой
[14:34:17] <boris_ilov> сразу публикуется? O_o
[14:34:18] <valexey> расстреливают постфактум :-)
[14:34:43] <boris_ilov> я отправил час назад и тишина
[14:34:55] <valexey> дык ты же в песочницу
[14:35:06] <valexey> будут проверять
[14:35:10] <valexey> небось про МТ накатал? ;-)
[14:35:12] <boris_ilov> эх
[14:35:17] <boris_ilov> почти
[14:35:25] <boris_ilov> пятничный пост
[14:35:33] <boris_ilov> шутошный
[14:35:46] <valexey> прям какой-то пошел массовый каминг-аут оберонщиков на хабре :-)
[14:36:01] <boris_ilov> про это https://github.com/ilovb/pussy
[14:36:46] <valexey> оно не полно по тьюрингу ведь?
[14:36:54] <boris_ilov> хз
[14:36:55] <geniepro> про вагину что ли? о_О
[14:36:58] <boris_ilov> вроде нет
[14:37:29] <valexey> хотя по грамматике сложно судить. нужно семантику языка знать. ху из ху
[14:37:42] <boris_ilov> вот семантика в статье
[14:38:00] <geniepro> pussy
̈ɪˈpʌsɪ I прил.
1) гнойный;
гноевидный Syn : purulent II сущ.
1) киска, кошечка
2) заяц;
кролик
3) женщина;
любовница;
женоподобный мужчина;
гомосексуалист
4) жилец, квартирант
5) детск. что-л. мягкое, пушистое (сережка на вербе, боа и т.д.)
6) сл. меховая одежда, шуба
7) вульг. влагалище
8) вульг. совокупление кошка, кошечка, киска, котик "косой", заяц (детское) "киса" (мягкий, пушистый предмет) сережка (на вербе) игра в чижи чиж (в игре) (грубое) женские наружные половые органы;
соблазнительная бабенка (грубое) половой акт гнойный, гноевидный pussy = puss ~ гнойный;
гноевидный ~ сережка на вербе
[14:38:13] <valexey> если процедура есть, то оно может быть полным по тьюрингу
[14:38:16] <geniepro> опять гейпропаганда
[14:38:16] <valexey> если есть рекурсия
[14:38:21] <boris_ilov> есть
[14:38:29] <valexey> значит полно по тьюрингу :-)
[14:38:42] <valexey> можно свободно выбирать - брейнфак, оберон, или пусси :-)
[14:40:02] <boris_ilov> Вызов имени переменной означает инкремент оной
[14:40:23] <boris_ilov> Этого достаточно знать чтобы понять как оно работает
[14:40:25] <boris_ilov> :D
[14:41:54] <valexey> boris_ilov опять обкурился машиной тьюринга!
[14:41:56] <valexey> акхтунг!
[14:42:03] <valexey> и пытается инициировать этим хабр!
[14:42:10] <geniepro> boris_ilov: а что, переменным можно только числа от 0 до 9 присваивать? но тогда зачем правило integer = digit {digit} ???
[14:42:37] <boris_ilov> тык в числах несолько цифр
[14:42:51] <kpmy> ссылку дайти
[14:42:52] <valexey> сунул диджит диджит в диджит...
[14:43:01] <valexey> все в ссылку!
[14:43:03] <geniepro> assigment = ident "=" (digit | ident) "\n"
ifstatement = ident "#" (digit | ident) [ident] "\n"
где
digit = "0"|..|"9"

ну и где здесь несколько цифр?
[14:43:14] <Jordan> такой вопрос
[14:43:20] <boris_ilov> а тьху
[14:43:26] <boris_ilov> да накололся
[14:43:36] <boris_ilov> integer там должно быть
[14:43:53] <geniepro> boris_ilov: когда транслятор налабаешь? )))
[14:44:06] <Jordan> Если затолкать в объединение union классы? Тогда кастовать не нужно будет?
[14:44:09] <valexey> Драконоиды все же странную терминологию имеют:
[14:44:13] <valexey> "На лекции был задан интересный вопрос:
Что следует располагать на шампуре, самый благоприятный путь через алгоритм или самый вероятный?"
[14:44:27] <valexey> По моему ответ очевиден - на шампуре надо располагать ШАШЛЫК!
[14:44:29] <geniepro> Jordan: тогда будет ваще очень плохо всё )))
[14:44:45] <boris_ilov> поправил там
[14:45:10] <Jordan> geniepro к примеру в си варианте у меня кастов нет
[14:45:12] <valexey> Jordan: ты имеешь ввиду что в union'e будут переменные не примитивных типов, а сложных?
[14:45:14] <Jordan> И всё работает
[14:45:15] <valexey> или что? ;-)
[14:45:28] <Jordan> Да именно классы в юнион
[14:45:33] <boris_ilov> geniepro: может на хабре кто налабает
[14:45:41] <valexey> НАФИГА?!
[14:45:44] <valexey> извените
[14:46:02] <geniepro> boris_ilov: да там же элементарщина! за полчаса можно сделать при желании ))
[14:46:31] <valexey> Jordan: если ты используешь классы уже, то зачем тебе юнионы?
[14:46:44] <Jordan> хочу сделать без кастов
[14:46:52] <valexey> ну, либо у тебя у классов нет виртуальных методов, и тогда твои классы от обычных структур ничем не отличаются
[14:47:03] <valexey> а у тебя там все равно есть касты :-D
[14:47:12] <geniepro> Jordan> geniepro к примеру в си варианте у меня кастов нет
ты хочешь непредсказуемых багов?
[14:47:40] <valexey> ты же там пишешь что-то типа if (u.type == SOME_TYPE) {u.some_type ...}
[14:47:45] <Jordan> угу
[14:47:51] <valexey> вот это и есть каст
[14:47:58] <valexey> только руками :-)
[14:48:12] <boris_ilov> geniepro: тык да, но мне пока некогда, а вечером у меня пати
[14:48:23] <geniepro> valexey> Jordan: ты имеешь ввиду что в union'e будут переменные не примитивных типов, а сложных?
valexey> НАФИГА?!
не ну иногда надо!!! например, представляешь структуру данных как массив байтов и выкидываешь в последовательный порт
[14:48:58] <Jordan> нужно ещё раз теорию ооп проштудировать
[14:49:00] <valexey> Jordan: если не хочешь кастов. пили ООП полноценное. создавай чисто абстрактные классы (ака интерфейсы), присобачивай общее множество виртуальных методов и вперед
[14:49:03] <valexey> и не нужно кастов
[14:49:46] <valexey> geniepro: ну, по хорошему (переносимо, машинонезависимо и проч) сериализация все же иначе делается
[14:50:08] <geniepro> пофиг, работает же )))
[14:50:17] <valexey> хуяк-хуяк и в продакшн!
[14:50:24] <Jordan> Да!
[14:50:33] <geniepro> но, правда, надо на приёмной стороне указывать, что нет выравниания, если на передающей его нет )
[14:50:50] <valexey> ага, и что оно везде одинаковое :-D
[14:51:00] <valexey> и endian одинаковый
[14:51:01] <Jordan> +100500 оговорок, как нельзя использовать апи ;-)
[14:51:22] <geniepro> как-то давно я так передавал из мелкоконтроллера на сях структуру данных, а принимал на дельфях на компе -- пришлось packed record юзать
[14:51:34] <valexey> а еще если туда положить класс с виртуальными методами, то будет вообще весело :-D
[14:51:50] <geniepro> ну, на сях их нет )
[14:52:06] <Jordan> Есть компилятор С++ который компилирует в промежуточный си?
[14:52:15] <valexey> был по крайней мере
[14:52:17] <valexey> вначале
[14:52:21] <geniepro> Jordan: первые компилеры такими были
[14:52:27] <valexey> да и сейчас небось есть где-то
[14:52:37] <valexey> Jordan: а смысл в нем?
[14:52:45] <Jordan> Интересно как ООП выглядит на сях
[14:52:55] <geniepro> http://stackoverflow.com/questions/1833484/c-frontend-only-compiler-convert-c-to-c
[14:53:18] <geniepro> Jordan: я ж тебе скидывал либу для ООП на сях
[14:53:33] <Jordan> это какую?
[14:55:41] <geniepro> чота не гуглится, забыл как называется ))
[14:55:49] <valexey> как в gtk :-)
[14:55:59] <valexey> в glib, сколь я помню
[14:56:11] <valexey> https://ru.wikipedia.org/wiki/GLib
[14:56:22] <Jordan> glib смотрел, там повыльеый void
[14:56:32] <Jordan> *повальный
[14:56:58] <valexey> Си это в принципе повальный void* :-)
[14:58:05] <geniepro> вот что-то на эту тему http://www.planetpdf.com/codecuts/pdfs/ooc.pdf
[14:58:39] <boris_ilov> Товарищи у меня просьба. Если статью опубликуют, а я буду отсутствовать, киньте там плиз ссылку на реп с исправленными ошибками
[14:58:52] <boris_ilov> если не затруднит
[14:59:27] <geniepro> boris_ilov: я не смогу -- меня на хабре нету ))
[15:01:30] <anjensan> статью? снова статья на хабр ?
[15:01:47] <valexey> anjensan: ДА!
[15:01:56] <valexey> anjensan: и это еще основные силы не подтянулись!
[15:02:00] <valexey> готовься!
[15:02:31] <anjensan> к чему?
[15:02:41] <valexey> к превращению хабра в оберонкор!
[15:02:54] <geniepro> valexey: оберонхабр!
[15:03:01] <valexey> покайтесь мейнстримщики, ибо ГРЯДЕТ!
[15:03:04] <geniepro> хаберон!!!
[15:03:17] <valexey> хаба-хаба!
[15:03:38] <valexey> хабракор
[15:04:30] <anjensan> поосторожнее - люди не любят сильный налом. 10 статей за неделю и трехмесячная тишина после этого - тоже не гуд
[15:04:31] <geniepro> хабракобра!!! хабра-кодабра!!!
[15:05:37] <valexey> это вам не изнеженные питонисты, или там джависты, это сплоченный коллектив настоящих боевых оберонцев!
[15:05:45] <geniepro> Jordan: кажись вот это, но точно не помню: http://sourceforge.net/projects/ooc-coding/
[15:05:57] <geniepro> ну хоть не пидарасов
[15:06:17] <valexey> :-D
[15:06:26] <valexey> ver
[15:06:30] <valexey> version
[15:06:31] <Жаба> valexey,  you have Psi 0.14 on Ubuntu 14.04.2 LTS
[15:06:44] <valexey> что-то у меня раз в двое-трое суток сеть на компе вылетает
[15:06:46] <valexey> намертво
[15:06:55] <valexey> помогает только перезагрузка :-(
[15:07:19] <valexey> причем только на этом компе
[15:07:23] <valexey> на маках - все гут
[15:07:23] <geniepro> дык говнолинупс же
[15:07:31] <valexey> geniepro: в говновинде тоже вылетает
[15:07:43] <valexey> точнее так - говновинда вообще периодически сваливается с бсодом
[15:07:55] <geniepro> у тя комп не исправен!!!
[15:08:00] <valexey> это винда которая на внешнем юсб-диске
[15:08:12] <valexey> а та винда которая была на внутреннем - она почему-то вообще сдохла
[15:08:17] <valexey> хотя я туда и не грузился почти
[15:08:23] <valexey> реестр не реестр и привет
[15:08:49] <valexey> geniepro: не, я не понял, если комп глючит в линуксе, это значит говнолинукс ,а если в винде, то это комп не исправен? ;-)
[15:11:25] <valexey> http://geektimes.ru/post/251160/
[15:11:27] <valexey> хы
[15:15:09] <Jordan> geniepro по той ссыллке, сищная порнуха, в стиле БДСМ :-)
[15:15:29] <Jordan> *сишная
[15:19:07] <valexey> байтоложество!
[15:19:10] <geniepro> valexey> geniepro: не, я не понял, если комп глючит в линуксе, это значит говнолинукс ,а если в винде, то это комп не исправен? ;-)
ну конечно
[15:19:26] <geniepro> Jordan> geniepro по той ссыллке, сищная порнуха, в стиле БДСМ :-)
а си и есть bdsm
[15:20:44] <valexey> I love in it!
[15:24:11] <Jordan> Всё так винда не виновата ;-)
[15:24:51] <Jordan> valexey Сколько эе сишников извращенцев. А с виду, нормальные ребята, в очках, алгоритмы пишут...
[15:26:28] <valexey> например таких? http://dic.academic.ru/pictures/wiki/files/67/Chikatilo02.jpg
[15:26:58] <Jordan> Чикатило?
[15:28:18] <valexey> нормальный парень, образованый, в очках..
[15:28:22] <valexey> :-)
[15:38:04] <geniepro> http://protext.su/pro/?p=1420 "КАК ПИСАТЬ КРАТКО И ПОНЯТНО"
[15:39:57] <kpmy> статью могут и сутки модерировать
[15:43:02] <geniepro> Jordan: If you use LLVM, llvm-g++ will compile your C++ code to LLVM bitcode, and llc has a backend which converts bitcode to C.

You could write commands like this:

llvm-g++ -emit-llvm -c foo.cpp -o foo.o
llc -march=c <foo.o >foo.c
[15:43:28] <Jordan> оно под винду есть?
[15:43:55] <geniepro> Jordan: есть
[15:44:11] <geniepro> http://www.comeaucomputing.com/ Comeau C++ generates C as its output
[15:45:20] <Jordan> llvm 25 мегов весит, подозрительно
[15:45:22] <geniepro> http://www.softwarepreservation.org/projects/c_plus_plus/cfront
Cfront was the original compiler for C++ (then known as "C with Classes") from around 1983, which converted C++ to C; developed by Bjarne Stroustrup.
[15:45:59] <geniepro> Jordan: LLVM-3.6.0-win32.exe 36 метров у меня
[15:46:13] <Jordan> где брать?
[15:46:49] <geniepro> http://llvm.org/releases/
[15:47:05] <valexey> комю рулит, да
[15:47:33] <geniepro> Jordan: наверное лучше сборку со встроенным силангом
[15:48:16] <kpmy> что-то про llvm по-русски мало кто пишет и в основном какие-то очевидности
[15:48:34] <geniepro> а, так он вроде и так встроенный
[15:49:03] <TRUE> geniepro> а си и есть bdsm
Был в каком-то месте, где программистов на си называли наСильниками
[15:49:22] <geniepro> сисечники же ))
[15:49:23] <TRUE> а программистов на макроассеблере макрушниками
[15:51:16] <Jordan> llvm-g++ -emit-llvm
[15:51:21] <Jordan> таких бинарей нет
[15:53:27] <geniepro> Jordan: попробуй clang++.exe вместо llvm-g++
[16:00:22] <kpmy> это конференция оберона, как пропатчить llvm под freebsd
[16:03:07] <valexey> TRUE: а программистов на С++ - приплюснутыми насильниками :-)
[16:03:36] <valexey> kpmy: ну, llvm никак оберону не противоречит. более того - llvm оберону способствует!
[16:04:29] <kpmy> что-то никак не способствует пока
[16:05:00] <valexey> всему свое время
[16:05:15] <valexey> интересно у GPCP как там дела с ллвм продвигаются?
[16:05:28] <valexey> Модулу-3 вроде на ллвм активно пихают
[16:05:36] <valexey> судя по рассылке
[16:08:12] <Jordan> llc -march=c <foo.o >foo.c это на что поменять?
[16:08:34] <Kemet> у Модулы-3 c llvm есть проблемы
[16:09:18] <Kemet> и пока эти проблемы решают всякими хаками
[16:10:29] <Jordan> сделал так
[16:10:31] <Jordan> "c:\Program Files (x86)\LLVM\bin\clang++.exe" -emit-llvm -c main.cpp -o main.o
[16:10:37] <Jordan> появился main.o
[16:13:30] <valexey> Kemet: какие проблемы? и проблемы везде, или только в виндах?
[16:13:48] <valexey> Jordan: и что внутри? фаром видать?
[16:14:19] <Jordan> крякозябры
[16:15:59] <Jordan> llc -march=c <foo.o >foo.c
[16:16:00] <Kemet> везде, я не вникал, было чтото с вложенными процедурами, типами, указателями и даже операторами
[16:16:04] <Jordan> llc бинаря там нет
[16:16:36] <Kemet> чтото там со скопами еще было
[16:16:42] <valexey> o_O
[16:16:44] <valexey> странно
[16:17:04] <valexey> llvm вроде довольно пофигестичен к тому что там себе думает высокоуровневый язык
[16:17:33] <Kemet> они стыковались с разрабами ллвм, чтото поправили, но проблемы пока остались
[16:17:45] <kpmy> valexey насколько я понял, автор сменил работу и больше не пилил gpcp
[16:18:27] <Kemet> оно генерит местами не рабочий код, местками некошерный
[16:19:02] <Kemet> простые тесты работают, но до продакшена далекоо
[16:19:04] <kpmy> про llvm интересно, как оно вообще переходит от ir к бинарникам, можно ли там сделать динамический линковщик
[16:20:34] <Kemet> кстати, да, в модуле-3, патченый gcc, который генерит символьные файлы в модуловском форимате и среда там прозрачно все пооддерживает, а как будет в ллвм хз
[16:20:38] <valexey> kpmy: можно
[16:20:42] <valexey> это основная фича llvm
[16:20:49] <valexey> там и жид-компиляцию делают
[16:21:05] <valexey> и оно часто используется не для ЯП общего назначения, а для языка шейдеров например
[16:27:40] <valexey> "Салат Фибоначчи: Взять остатки вчерашнего салата, смешать с остатками позавчерашнего и т.д."
[16:27:46] <kpmy> короче, надо дополнить Compilers Construction генерацией llvm co
[16:30:09] <Kemet> kpmy: дак примеров полно
[16:31:28] <Kemet> ыыы, пришло, не желаете ли вы присоединится к написанию антивируса и возможно портировать его на оберон )_
[16:31:54] <kpmy> бгг поехавшие
[16:32:19] <valexey> э?
[16:32:22] <kpmy> да я по примерам не могу, мне надо посерьезнее вкурить
[16:32:24] <valexey> кто написал? в личку?
[16:32:28] <valexey> на хабре? O_O
[16:33:08] <valexey> Kemet: а предлагают на ЯП Оберон портировать, или таки пoд ОС ОБерон антивирь засунуть? :-)
[16:33:31] <valexey> кстати! надо Касперскому подсказать - а то антивирь даже под iOS есть, и под линух есть, а под Оберон - НЕТУ!
[16:33:39] <valexey> Это же опасно!
[16:35:10] <valexey> "Высокотехнологичный бизнес — несмотря на внешнюю привлекательность — дерьмовый бизнес: капитала требуется много, сроки окупаемости большие, большие риски, приходится нанимать капризных инженеров за все бОльшие и бОльшие деньги."
[16:36:46] <kpmy> как всегда денег жалеют)
[16:38:00] <akastargazer> > за все бОльшие и бОльшие деньги.
Это ещё почему?
[16:38:34] <valexey> ну, я разговаривал с людьми на тему стартапов в россии. То есть теми, кто там действительно плавал и кто имеет таки друзей-товарищей которые могли бы деньги в hitech стартапы вкладывать.
[16:38:45] <akastargazer> >не желаете ли вы присоединится к написанию антивируса и возможно портировать его на оберон )
очередной пассионарий с шилом в одном месте, рекомендую не обращать внимания
[16:38:47] <valexey> И да, в России с этим все печально. Хорошо согласуется с тем, что в той статье написано.
[16:39:05] <valexey> http://habrahabr.ru/post/218171/
[16:39:07] <valexey> в это1
[16:39:10] <valexey> й
[16:39:11] <akastargazer> валексей, у нас тут колония, всё строго
[16:42:23] <valexey> не, пока не совсем. пока все хуже - дикари абсолютные!
[16:42:56] <valexey> вот если у дикарей ядерную дубинку отнять, то вот тогда-а из них может получиться нормальный народ колонизированный.
[16:43:06] <valexey> цивилизованный.
[16:43:07] <akastargazer> не, страна дикария это пиндосия
[16:43:14] <akastargazer> варвары, наглые и беспринципные
[16:43:23] <akastargazer> Я Черчилля читаю, ваще пиздец
[16:43:54] <akastargazer> ментальность убийц и воров
[16:44:16] <valexey> ты так говоришь, будто это что-то плохое..
[16:45:47] <kpmy> человек-отрицалово
[16:46:16] <valexey> "Низкотехнологичный бизнес — создает прибавочную стоимость перемещая товары, созданные другими, и создают товары для производства которых нужна одна технологическая операция без большого количества собственной интеллектуальной собственности. Зачастую географически привязан к источнику ресурсов (ГЭС, угольный разрез, месторождение нефти, месторождение инженеров для аутсорса)."
[16:46:21] <akastargazer> для них - отлично
[16:46:22] <valexey> Местрождение инженеров!
[16:46:28] <valexey> Ыыы!
[16:47:26] <akastargazer> "месторождение инженеров", это всё правильно, не надо тратиться на выращивание инженегра, не надо тратиться на его пенсию. Пусть вкладывается колония, лечит его, учит.
[16:48:26] <valexey> не, это про наши аутсорсинговые конторы.
[16:48:32] <valexey> чисто внутри колонии
[16:48:44] <valexey> потом эти конторы скупаются индусами :-)
[16:51:56] <valexey> сейчас им вообще лафа - себестоимость добычи упала, а ценник на рынке остался.
[17:06:39] <Kemet> valexey: нет, по почте,но на адрес который я использовал только для регистрации в мыллистах оберона и модулы3, им на хабре, пришло на англицком, с каким то корейским имкенем кувак предлагают переисать на активном обероне, сделав многопоточнымтак что оно и под А2 будет. Сейчас он написан на дельфи, частично использует слам - оттуда часть уже переписана на дельфи + своё, + фаерворл+ мониторинг ... прислали инсталятор
[17:07:14] <Kemet> *clam
[17:10:56] <valexey> дас. юнити-шмунити.. нужен на КП какой-то инновационный продухт!
[17:31:54] <kpmy> во многих языках не хватает одной тупой фичи, это возможность писать для двухаргументной функции выражение, как будто это оператор
[17:33:07] <kpmy> не как обычно c:=ShitSum(a, b)
ведь может быть не очень сложно писать
c := (a ShitSum b) можно в других скобочках
[17:33:07] <valexey> kpmy: пример можно?
[17:33:30] <kpmy> семантика функции не меняется, ничего не меняется, только запись
[17:34:42] <kpmy> квадратные скобки без квалификатора как раз могли бы служить сигнализатором для начала такой записи аргументов
[17:35:33] <kpmy> тогда снимается сразу ряд вопросов с перегрузкой операторов в некоторых задачах
[17:36:06] <kpmy> хотя может в каких-то языках есть такое
[17:36:10] <kpmy> но я не встречал
[17:36:20] <valexey> пример! я алкаю примера
[17:36:23] <valexey> псевдокода!
[17:36:25] <valexey> хотя бы
[17:36:49] <valexey> а, вижу пример
[17:37:04] <valexey> это есть в Haskell
[17:37:12] <valexey> обычный инфиксный оператор
[17:39:44] <valexey> и надо глянуть, возможно это и в алголе было
[17:43:41] <kpmy> вообще надо чтобы компилятор позволял добавлять такие простенькие фичи компонентно
[17:44:36] <valexey> посмотри немерлю :-)
[17:44:41] <kpmy> чтобы можно было писать EXTEND Infix и все, пиши себе в инфиксной записи
[17:45:00] <valexey> точнее - nemerle-2
[17:45:56] <kpmy> да я видел
[17:46:19] <kpmy> все эти языки страдают от невозможной убогости языка, который скриптует компилятор
[17:46:37] <valexey> там вроде вполне себе нечто похожее на БНФ
[17:46:41] <valexey> у второй немерли
[17:46:52] <valexey> и оно вроде не скриптуется, а вполне себе компилируется :-)
[17:48:00] <kpmy> ну я имею в виду то, что содержимое макроса управляет компилером в процессе компиляции
[17:48:05] <kpmy> скриптует, по сути
[17:49:38] <kpmy> вся проблема в выборе примитивов для такого скриптования
[17:50:53] <valexey> становится модулем компилятора скорее
[17:51:27] <kpmy> то есть как дать разработчику расширений нормальные средства по управлению компиляцией, не убивая базовые функции компилятора
[17:51:28] <valexey> впрочем, можно и без такой содомии - можно просто плагины к clang например писать и расширяй себе С++ в ту сторону, в которую хочется :-)
[17:51:36] <valexey> язык написания модулей самый нормальный - С++
[17:51:55] <valexey> ну а для маргиналов там есть камло
[17:51:59] <kpmy> да понимаешь это же получается модуль компилятора
[17:52:21] <kpmy> а нужно чтобы модуль языка
[17:52:52] <kpmy> абстрактная модель нужна, что и как будет предоставлять компилятор уже модулю компилятора
[17:54:45] <valexey> kpmy: http://en.wikipedia.org/wiki/Seed7
[17:54:48] <valexey> вот тебе
[17:55:04] <valexey> оно? ;-)
[17:57:18] <kpmy> да, круто
[17:57:43] <valexey> обращайтесь :-)
[17:58:57] <kpmy> я раньше считал вот это https://github.com/chrisseaton/katahdin эталоном мутабельного синтаксиса
[17:59:33] <valexey> ну, с мутабельным синтаксисом народ давно играется
[17:59:46] <valexey> начиная с лиспов еще (хотя там страшненько, да)
[18:00:04] <valexey> а потом есть всякие еще перлы-6, есть D, есть Dylan
[18:01:02] <kpmy> а, ну значит тут уже порылись
[18:01:21] <kpmy> тогда не очень интересно
[18:03:01] <valexey> сложно найти область в языках где бы еще не порылись :-)
[18:06:53] <Kemet> kpmy: если вводить в язык такие функции операторы, надо вводить и механизмы приоритета в выражениях
[18:07:12] <Kemet> механизмы указания
[18:07:49] <Kemet> нужно уазать приоритет такого оператора
[18:12:03] <valexey> угу
[18:12:07] <valexey> в хаскеле это указывается
[18:12:12] <valexey> можно задать
[18:21:04] <anjensan> или забить на инфиксную запись вообще, да
[18:21:14] <valexey> да!
[18:21:17] <valexey> дайошь лисп!
[18:21:23] <anjensan> а то ведь надо еще и постфиксную тогда запиливать. вдруг комут надо постфиксный оператор
[18:21:24] <valexey> вот в лиспе таких проблем нету, с приоритетами то!
[18:21:30] <anjensan> вон в хаскеле можно постфиксный оператор замутить?
[18:21:37] <valexey> не помню :-(
[18:21:40] <anjensan> как мне в нем факториал определить?
[18:21:51] <valexey> вроде бы да, можно
[18:22:25] <valexey> в стандартном хаскеле нельзя, но у ghc как обычно есть расширение!
[18:22:31] <valexey> https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/syntax-extns.html#postfix-operators
[18:22:34] <valexey> :-)
[18:23:14] <anjensan> а. ну тогда круто
[18:28:34] <valexey> у хаскеля с выразительностью то все в порядке
[18:28:42] <valexey> там проблемы другого плана совсем :-)
[18:29:47] <valexey> "Китае не было приватизации по образцу России — и крупные компании, занимающиеся простым высокодоходным бизнесом (добыча и первичная переработка природных ресурсов, энергетика и проч.) так и остались государственными. Приватизировали наоборот, компании помельче, где после покупки впахивать нужно, а не купоны стричь. В результате — предприниматели были вынуждены заниматься развитием реального, сложного бизнеса, а не разделом и эксплуатацией «простого»"
[18:29:51] <valexey> сурово, блин!
[18:31:56] <Jordan> зацените апи, гуя на си
[18:33:09] <valexey> а может не надо? ;-)
[18:35:26] <Jordan> ну как хочете, думал может дельный совет дадите
[18:35:52] <valexey> ну може и дадим :-)
[18:35:55] <valexey> а есть проблемы?
[18:36:07] <geniepro> anjensan> вон в хаскеле можно постфиксный оператор замутить?
нет
[18:36:09] <Jordan> выглядит как говно
[18:36:11] <Jordan> https://gist.github.com/anonymous/1c9e8adf627f27c55b30
[18:36:25] <geniepro> valexey> в стандартном хаскеле нельзя, но у ghc как обычно есть расширение!
расстрелять!
[18:37:12] <valexey> geniepro: что-то ты в последнее время какой-то радикальный :-)
[18:37:26] <valexey> вон, TRUE добрее. он только кастрировать предлагал :-)
[18:37:57] <Jordan> ещё есть экзекуция, но это по желанию обвиняемого
[18:38:15] <Jordan> Не изверги же мы какие :-)
[18:38:22] <valexey> Jordan: ну. для си вполне терпимо :-)
[18:38:32] <valexey> сравни например с hello world на gtk
[18:38:55] <geniepro> кастрация делает кастрируемого более злым и жестоким! расстрелять!
[18:38:57] <Jordan> я по примеру gtk делал, но меньше ООП, чисто функции
[18:39:00] <valexey> http://www.gtk.org/tutorial1.2/gtk_tut-2.html
[18:39:16] <valexey> geniepro: с чего бы? тестостерона становится меньше. откуда жестокость то?
[18:39:36] <geniepro> valexey: ну из-за обиды на весь мир из-за того что кто-то его кастрировал
[18:39:53] <valexey> не дрейфь котяра! будешь домашним, ласковым! :-D
[18:39:59] <geniepro> кстати, радикальные украинцы предлагают кастрировать всё мужское население России
[18:41:02] <valexey> смысл? и каким образом?
[18:41:07] <valexey> и почему мужское то?
[18:41:15] <geniepro> за год президенства доходы потрошенки выросли в три раза бугага )))
[18:42:24] <geniepro> valexey> смысл? и каким образом?
ну дабы москалей не было! 30 тыщ хирургов денно и нощно всех будут кастрировать!

valexey> и почему мужское то?
ну национальность же по мужской линии, чай не жиды какие-то!
[18:42:45] <valexey> o_O
[18:42:53] <valexey> новое слово в генетике!
[18:48:15] <geniepro> http://habrahabr.ru/company/ctcom/blog/259033/
[18:54:00] <valexey> атом нинужен!
[18:54:03] <valexey> тем более мирный!
[19:19:25] <geniepro> kpmy> во многих языках не хватает одной тупой фичи, это возможность писать для двухаргументной функции выражение, как будто это оператор
блин, ну выучи ты уже хаскель, наверняка там есть уже всё, о чём ты только мечтать начинаешь!!!
[19:23:11] <valexey> или даже еще только не начинает :-)
[19:23:43] <geniepro> ленивый он! ((
[19:35:12] <TRUE> ну вот, ленивость в языках ему уже не нужна
[19:35:22] <TRUE> так что ленивость фтопку
[19:40:47] <geniepro> http://gifok.net/images/2015/05/29/29051514-29-44.jpg
[19:42:47] <valexey> #Ленин Коммунистов нужно уничтожать в первую очередь.
[19:45:18] <geniepro> о_О не было такого!
[19:48:24] <Kemet> а что илов на хабр решил написать?
[19:48:39] <geniepro> да машину тьюринга переизобретает
[20:09:41] <Kemet> мля, что за снобизм - выехать за бугор и писать на русских ресурсах но иностранному
[20:10:51] <Kemet> вспоминается Саша, по русски это будет "не выёживайся"
[20:16:48] <valexey> Kemet: кто? где по английски пишет?
[20:17:24] <valexey> но обычно это не снобизм а просто отсутствие клавы с русскими буквочками. реально им НАМНОГО тяжелее через 10-20 лет жизни там печатать на клавиатуре по русски вслепую.
[20:17:44] <valexey> это я могу вслепую на англ. клаве без русских наклеек печатать, ибо практики много.
[20:17:48] <valexey> а многие не могут
[20:18:03] <geniepro> я не могу и не хочу )
[20:18:46] <valexey> во-во
[20:18:51] <valexey> но у тебя клава есть :-)
[20:20:05] <geniepro> на ноуте нет русских букв ((
[20:21:54] <valexey> страдать!
[20:22:10] <valexey> а вот выпустят эльбрус, там не будет английских буков! вахаха!
[20:22:15] <valexey> клавиатура 1С едишн!
[20:26:08] <Kemet> на клавиши есть наклейки на любой вкус - есть онлайн трансляторы
[20:27:01] <Kemet> valexey: дык С в 1С иностранная!
[20:27:18] <Kemet> накроется 1ёС без буквы
[20:27:59] <valexey> Kemet: а где ты такого иногстранного персонажа нашел, что не по русски пишет?
[20:28:13] <Kemet> у меня ноут тоже был без русских - я наклеил и не парюсь
[20:29:11] <Kemet> valexey: да я часто вижу - в том числе на оберонкоре писал один бывший разработчика кроноса
[20:29:39] <Kemet> а так на н ш корпоративный форум техподдержки написал один бегемот
[20:29:54] <valexey> ну, я поскольку с такими людьми постоянно общаюсь, могу сказать, что на англ. им реально легче и быстрее писать.
[20:30:02] <valexey> никакого снобизма. просто удобство.
[20:30:40] <Kemet> дак я тоже постоянно общаюсь и никакого снобизма - пишут и говорят по русски
[20:31:18] <valexey> ну а я наблюдал как человек уже и по русски говорить не мог на бизнес-темы
[20:31:31] <valexey> то есть начинает говорить по русски, в процессе переходит на английский :-)
[20:32:05] <Kemet> о, ещё один свидомый на хабре по инглийски написал - видимо понял, что мову ещё меньше поймут чем аэнглишь, а на русском писать жаба душит
[20:33:41] <valexey> Kemet: гыде?
[20:33:46] <valexey> url!
[20:38:11] <Kemet> habrahabr.ru/company/ctcom/blog/259033/
[20:49:13] <Kemet> о, виндовый хостинг
[20:58:11] <valexey> кому он нужен?
[21:01:29] <Kemet> ну раз есть, значит нужен
[21:02:55] <Kemet> я думаю всзят впс и поставить там UnixAos, на ней запустить HTTP сервер, а на нйм CMS )
[21:08:24] <valexey> для впс же надо под виртуализацию допиливать ось, не?
[21:11:10] <Kemet> valexey: lsr gjdth[ kbgegcf ;t
[21:11:21] <Kemet> дык под линупсом же
[21:11:31] <valexey> а, да
[21:11:33] <valexey> тогда норм
[21:12:02] <Kemet> но под виртуал тоже не плохо бы, надо погуглить что там надо
[21:13:38] <Kemet> УЖАС, НА ХАБРЕ НЕТ ЗАГОВОРА ПРОТИВ ОБЕРОНА! Подозреваю, что и вообще нет
[21:14:24] <valexey> угу. нет никакого заговора :-)
[21:14:53] <Kemet> но неадекватно настроенных к оберону полно
[21:15:20] <valexey> Алмазов: Я отказываюсь от любых переговоров, пока вы не прекратите дискриминацию граждан цыганской национальности.
Кроликов: Да кому они нахрен нужны — твои цыгане.
[21:15:22] <valexey> :-)
[21:15:51] <valexey> оберонов слишком много. ДОЛЖЕН ОСТАТЬСЯ ТОЛЬКО ОДИН!!1
[21:17:26] <Kemet> нет, их потому и много, что есть основа - оригинальный оберон, минимально достаточная штукенция, вокруг которой наращивают реализации под предметные области
[21:19:10] <valexey> ну да. это как вирусы - которые очен быстро мутируют именно из за того, что они крайне примитивны.
[21:19:33] <valexey> их даже живыми то назвать нельзя в полной мере
[21:53:33] <kpmý> Kemet> kpmy: если вводить в язык такие функции операторы, надо вводить и механизмы приоритета в выражениях

если оно всегда в скобочках будет, то по идее не нужно
[21:58:56] <kpmý> то есть скобочки это чисто синтаксический модификатор для такой записи. В принципе, если задуматься, то можно записывать и несколько аргументов после функции, тогда можно получить всякие тернарные операторы
[21:59:47] <kpmý> хотя хардкодить такое в язык конечно бессмысленно
[22:06:03] <valexey> куищще!
[22:11:43] <ilovb> Хабр мой троллинг не пропустил
[22:11:45] <ilovb> и пох
[22:12:06] <ilovb> Дописал ридми https://github.com/ilovb/pussy/blob/master/README.md
[22:14:04] <valexey> ilovb: не факт
[22:14:16] <ilovb> что не факт?
[22:14:53] <valexey> не факт что не пропустили
[22:14:58] <valexey> или тебе там отписали?
[22:15:07] <ilovb> отписало НЛО на почту
[22:15:17] <valexey> что сказало?
[22:15:40] <ilovb> Увы, ваша публикация «Простейший инкрементальный структурный язык» не была одобрена НЛО и не может быть опубликована в песочнице на «Хабрахабре».

Настоятельно просим не терроризировать службу поддержки. Она не комментирует причины отказа и не обладает информацией о модерировании публикаций в Песочнице. Об этом известно только НЛО. А с НЛО, как известно, человечеству вступить в контакт еще не удалось.

Впрочем, не стоит расстраиваться, можно повторить попытку, предварительно ещё раз освежив требования к размещению публикаций в Песочнице.
[22:15:47] <ilovb> :D
[22:16:18] <valexey> хы
[22:16:47] <ilovb> ну я там вообще очень мало написал
[22:16:52] <ilovb> наверно по этому
[22:17:01] <ilovb> в статье кода было больше чем текста
[22:19:13] <geniepro> kpmý> то есть скобочки это чисто синтаксический модификатор для такой записи. В принципе, если задуматься, то можно записывать и несколько аргументов после функции, тогда можно получить всякие тернарные операторы
опять ты выдумываешь то, что было 20+ лет назад в хаскелле
[22:22:44] <valexey> ilovb: да, статья должна быть конфэткой
[22:22:47] <valexey> для писочницы
[22:23:24] <ilovb> да я хотел пошутковать
[22:23:33] <ilovb> ты на название посмотри
[22:23:46] <ilovb> "Простейший инкрементальный структурный язык"
[22:23:47] <geniepro> ilovb: что значит:
tmp1 # arg2
в чём тут заключается IF-ость?
[22:24:02] <ilovb> там написано в ридми
[22:24:17] <ilovb> ПИСЯ
[22:24:23] <ilovb> :D
[22:25:26] <ilovb> geniepro: Это условный вызов процедуры. Чего непонятного? Самый обычный IF
[22:26:40] <Kemet> ilovb: не, много кода это хорошо, но какието пояснения должны быть
[22:28:04] <ilovb> Ну там осталось неинтересные технические вещи только написать
[22:28:36] <ilovb> Типа битности etc
[22:28:45] <geniepro> ilovb: какой процедуры? она же не приведена там
[22:29:04] <ilovb> geniepro: Прочитай уже про семантику
[22:29:16] <ilovb> 4. Пункт
[22:29:33] <geniepro> читал, нипонял! если ты и статью также писал, то я её тоже не пропустил бы
[22:29:45] <ilovb> Условие без указания процедуры означает рекурсивный вызов
[22:29:55] <ilovb> Что непонятно в этом предложении?
[22:30:10] <ilovb> 'tmp1 # arg2' == 'tmp1 # arg2 inc'
[22:30:12] <Kemet> ilovb: дык давайт тогда мы почитаем )
[22:30:12] <geniepro> тьфу ну и семантика!!! трудно что ли убрать это правило и упростить грамматику? заодно и программы понятнее станут
[22:30:40] <ilovb> гы :D
[22:31:08] <geniepro> ilovb: НЕКОНСИСТЕНТНЫЙ ДИЗАЙН!!! ДЕЛАЙ ПРОЩЕ, ПО ЗАВЕТАМ СТАРЦЕВ!!!
[22:31:15] <ilovb> Это фича. Можно было сократить, и я сократил. Так же сейчас поступают все умные люди
[22:31:37] <ilovb> А я забил хер на старцев и перенял опыт у rust
[22:31:53] <geniepro> сократить что? вот Вирт сократил бы правильно, а ты перемудрил
[22:31:59] <valexey> ilovb: http://david.elbe.me/programming/2015/05/25/different-types-of-programmers.html
[22:32:08] <ilovb> Я сделал проще простого :D
[22:32:59] <ilovb> valexey: Какой диагноз, доктор?
[22:34:07] <ilovb> Да и вообще, чего вы докопались до языка с названием ПИСЯ?
[22:34:14] <ilovb> :D
[22:35:36] <ilovb> Я даже не знаю возможно ли для него корректный интерпретатор написать. Не развита у меня эта часть мозга
[22:36:25] <valexey> не пися, а киска!
[22:36:28] <valexey> все любят кошек!
[22:37:16] <geniepro> не пися и не киска, а гей!!! это тоже одно из значений слова pussy
[22:37:38] <geniepro> ilovb: всё-таки тебе не даёт покоя слава гея тьюринга
[22:37:52] <ilovb> латентность, ога
[22:38:42] <ilovb> будь в тренде! стань пидарасом!
[22:39:51] <geniepro> ilovb: так чего ты вдруг решил затеять эту тьюрингову трясину?
[22:40:24] <ilovb> хз сегодня на обеде пришла идея и запилил
[22:40:40] <ilovb> хотел пятничный троллинг, а получил хуй
[22:41:19] <Kemet> ilovb: назови язык инкриминатор
[22:41:32] <ilovb> Вообще это наверно ненормально, что мне такие идеи во время обеда приходят
[22:41:57] <geniepro> ilovb: сдерживай себя ))
[22:42:08] <Kemet> ilovb: салат из конопли?
[22:42:23] <ilovb> наверно это шампунь
[22:42:36] <ilovb> сегодня денюха у коллеги была
[22:43:08] <ilovb> стаканчик шампанского и ПИСЯ готова
[22:43:27] <ilovb> странная фраза
[22:44:49] <geniepro> ilovb: нужно тебя заставить переписать 1С на твоём язычке в качестве наказания за попытку тролления хабра
[22:56:54] <Kemet> отладка в Обероне
[22:56:55] <Kemet> http://www.ethoberon.ethz.ch/faqlang.html#locate
[22:57:25] <ilovb> Keme: А ты не знал?
[22:57:41] <Kemet> ilovb: я ей пользуюсь
[22:57:44] <ilovb> Там же как раз для этого координаты ошибки в лог выводятся
[22:59:37] <ilovb> лан, че то меня алкоголь срубает
[22:59:42] <ilovb> всем пока