[01:18:43] <kemiisto> valexey: с ума сошёл!? :O
[01:18:47] <kemiisto> :D
[01:20:00] <valexey> почему?
[01:20:06] <valexey> рельно ведь доставляет!
[01:20:11] <valexey> и помогает
[01:20:22] <kemiisto> valexey: пишешь какие-то каракули...
[01:20:34] <kemiisto> U∑V*
[01:20:37] <kemiisto> :O
[01:20:40] <valexey> Угу
[01:20:47] <valexey> Мне можно, у меня дедлайн.
[01:21:01] <kemiisto> valexey: на выборы то ходил?
[01:21:04] <valexey> И только это может помочь нам его побороть!!1
[01:21:15] <valexey> Мне далековато - 180 км до урны :-)
[01:21:40] <valexey> сестра пыталась проголосавать тут - её послали.
[01:22:00] <kemiisto> valexey: :D
[01:22:39] <valexey> демократия! хочешь голосуй за ЕР, не хочешь не голосуй (вообще)
[01:23:12] <kemiisto> ТОЛЬКО ЕДРО!
[01:23:17] <kemiisto> ТОЛЬКО ПОБЕДА!
[01:23:21] <valexey> ога
[01:24:54] <valexey> ваще как за этих козлов голосовать, если я не знаю их и не знаю чем они занимаются?
[01:25:02] <valexey> как выбрать правильного козла?
[01:25:31] <kemiisto> valexey: не голосуй, за тебя выберут
[01:26:08] <valexey> а где гарантия что за меня не выберут если я проголосую?
[01:26:24] <kemiisto> valexey: так и будет
[01:26:30] <kemiisto> а если нет разницы
[01:26:33] <valexey> кроме того, откуда я знаю за кого голосовать? я же не компетентен в этом.
[01:26:35] <kemiisto> :)
[01:27:01] <valexey> давайте, блин, устроим голосование всероссийское по выбору языка программирования, ога
[01:27:11] <valexey> результат будет тот же.
[12:49:14] <valexey> .
[12:54:51] <valexey> .
[12:55:18] <kemiisto> .
[12:55:20] <kemiisto> .
[12:59:39] <valexey> "А вы посмотрите, что происходит.
 
Смотрим во вложении копию протокола, она у меня на руках.
 
За едро 310 голосов
 
Идём по ссылке http://www.vybory.izbirkom.ru/region/izbirkom?action=show&global=true&root=522000037&tvd=2522000380840&vrn=100100028713299&prver=0&pronetvd=null&region=52&sub_region=52&type=233&vibid=2522000380840
 
Видим для участка 1701 у едра 527 голосов, все остальные совпадают!!"
[13:01:38] <kemiisto> valexey: http://img696.imageshack.us/img696/2342/tcmtkeiz8jdj.jpg
[13:02:34] <kemiisto> valexey: http://demotivation.me/images/20111116/30v1drzdpatk.jpg
[13:11:08] <valexey> пальмой ап фейс
[13:12:29] <kemiisto> демов уже понаделали
[13:12:30] <kemiisto> :D
[13:12:45] <kemiisto> Безруков отощёл на второй план!
[13:12:46] <kemiisto> :D
[13:13:46] <valexey> кто такой безруков?
[13:14:10] <kemiisto> актёр
[13:14:19] <kemiisto> он сыграл Высоцкого давече
[13:14:28] <kemiisto> ну, мягко скажем
[13:14:32] <kemiisto> не его типаж
[13:14:36] <kemiisto> ну и тма понеслось
[13:14:54] <kemiisto> http://demotivation.me/1litd5o3vq02pic.html
[13:15:01] <kemiisto> вот в таком духе
[13:15:01] <valexey> нинужен же
[13:16:48] <kemiisto> http://demotivation.me/zm30u1qb2pkupic.html
[13:16:52] <kemiisto> :D :D :D
[13:17:16] <kemiisto> http://demotivation.me/zmp3yzfq0kz2pic.html
[13:17:23] <kemiisto> это 5!
[13:17:44] <kemiisto> http://demotivation.me/ml08webc5bqepic.html
[13:17:46] <kemiisto> гы!
[13:19:22] <kemiisto> Сижу одна в газели с водителем, ждем на конечной остановке когда народ заполнит машину. Водителю стало скучно, решил поприкалываться.

Говорит: "Сейчас поржем". Уходит с водительского сидения и садится рядом со мной пассажиром. Газель постепенно забивается народом. Через 5 минут все места заняты. Сидим ждем...
Народ начинает возмущаться, мол никто не видел, куда водила делся? Я сижу, молчу =)
Через 15 минут все уже просто матерятся, водитель подливает масло в огонь, возмущается больше всех. Потом выкрикивает "А нафиг нам водила? Я сам вас отвезу" и садится за руль. Такие ошарашенные лица и такой тишины в маршрутках я никогда не видела)
[13:37:20] <valexey> ihaveabomb: Если мобильный оператор мне подключит услугу "гудок" без моего ведома, я приду к ним в офис и насру под дверью. И буду приходить каждый месяц, аргументируя это тем, что я подписал их на эту услугу, а они не отказались.

[13:42:52] <valexey> "Выборы закончились. Избирательные участки закрыты. Мирные жители уснули. Просыпается мафия."
[13:53:20] <valexey> /me поставил adblock для сафари
[16:28:04] <valexey> блин. какой же андроид глючный..
особенно 3.1
[19:32:58] <vlad2> Гхм. Народ продолжает придумывать механизм исключений, но без try/catch.
[19:33:39] <vlad2> Интересно, когда ж они смирятся с классическуми видом.
[19:35:49] <vlad2> Кстати, я правильно понимаю, что в обероне нельзя гарантировать инвариант для структуры без накладных расходов на фабрику/GC?
[19:35:56] <valexey> ну почему же без catch? у них такое ключевое слово уже есть :-)
[19:36:10] <valexey> причем там народ говорит - ВАУ! какое удачное название для ключевого слова!!1
[19:36:39] <valexey> Ты имеешь ввиду конструктор?
[19:36:57] <vlad2> Да, конструктор.
[19:37:13] <valexey> а разве в плюсцах у нас нет накладных расходов на вызов конструктора?
[19:37:26] <vlad2> Т.е. даже если я объявлю тип с неэкспортированными полями - никто мне не помешает иметь там мусор.
[19:38:00] <vlad2> Выхов контруктора - это нормально. Нет расходов на хип и на аиртуальные функции.
[19:38:53] <vlad2> Я про это еще раз подумал глядя на код Термигалеева.
[19:39:15] <valexey> погоди. что тебе мешает создать структуру на стэке? либо в статической памяти?
[19:39:19] <vlad2> Там у него первыми строчками идет ASSERT "IsValidDate" или что-то такое.
[19:40:13] <vlad2> Никто не мешает. Вопрос в том, могу ли я быть уверен, что там нет мусора (конструтор обязательно вызван).
[19:40:29] <vlad2> Чтоб не писать мусор типа ASSERT(IsValidDate)
[19:40:51] <vlad2> Блин, оборонкоре сдох, не могу код показать.
[19:41:00] <valexey> а чем фабрика не устраивает?
[19:41:07] <vlad2> GC
[19:41:27] <valexey> "фабрика" для структуры в статической памяти. во.
[19:41:45] <vlad2> В смысле?
[19:42:16] <valexey> то есть ты говоришь - дай сцылку на структуру в стат. памяти - оно если не было создано (инициализированно) инитит, а потом дает ссылку
[19:42:21] <valexey> все. никакого хипа
[19:42:50] <vlad2> А на стэке?
[19:43:16] <valexey> а на стэке, если создающая сторона - пассивная сторона (либа), то токо через колвзад.
[19:44:03] <vlad2> Не, я понимаю, что я могу всегда ручками инитить черещз ручнйо вызов конструктора. Мне интересны гарантии :)
[19:44:23] <valexey> в случае кола в зад будут гарантии :-)
[19:44:23] <kemiisto> гарантии...
[19:44:32] <kemiisto> голосуй за ЕдРо!
[19:44:41] <kemiisto> Будут тебе гарантии!
[19:44:58] <valexey> с другой стороны я вот не знаю. если из модуля торчит тип-структура у которой ни одного поля не экспортировано, может ли кто попало переменную такого типа создать вне модуля?
[19:45:11] <vlad2> Колвзад для работы с date или point - это как-то... не по обероновски :)
[19:45:36] <vlad2> Ну я так понял - создать как раз можно. И там будет мусор.
[19:45:44] <vlad2> Блин, жалко оберонщики свалили из чата.
[19:45:46] <valexey> в КП не будет мусора
[19:45:49] <valexey> там будут нули :-)
[19:45:58] <vlad2> Не, если на стэке - будет мусор.
[19:46:29] <valexey> Ну и вполне возможно что в КП есть волшебное ключевое слово-атрибут для структур, чтобы их кто ни попадя не мог создавать вне модуля
[19:46:30] <vlad2> Кроме того, даже если нули - это не инвариант. Но от них, конечно, уже можно плясать.
[19:46:33] <kemiisto> vlad2: ну тебе там объяснили уже, что мусор у тебя в голове? :D
[19:46:46] <vlad2> Ага.
[19:46:57] <kemiisto> vlad2: ОЧИСТИ СВОЙ РАЗУМ!!!1111
[19:47:01] <valexey> - Как вы могли обманывать людей, которые вам верили? - А как я могу обманывать людей, которые мне не верят?
[19:48:23] <vlad2> Не, ключевое слово не поможет :) Я хочу создавать структору вне модуля. Какой-нибудь Point или Date. Но еще я хочу, чтоб там никодгда не было мусора. Чтоб не писать ASSERT(IsValidDate(d)).
[19:49:11] <valexey> дык ты будешь создавать вне модуля. но только через даденные тебе из модуля функции
[19:49:23] <vlad2> Как?
[19:49:38] <vlad2> Только через фабрику. Но фабрика подразумевает GC.
[19:49:50] <valexey> все что угодно в хипе подразумевает GC
[19:50:00] <valexey> ты где хочешь создать то? в хипе или на куче?
[19:50:03] <valexey> nm[e
[19:50:04] <valexey> тьху
[19:50:09] <valexey> или на стеке
[19:50:19] <vlad2> Я не хочу иметь все point в GC. Тем более в BB с его тупым GC.
[19:51:03] <valexey> эмм… если у тебя реально МНОГО точек, то они будут лежать в массиве. и с точки зрения GC это будет единый монолитный элемент
[19:51:09] <vlad2> Я хочу иметь всегда валидные структоры данных. При этом я не хочу платить за GC.
[19:51:39] <vlad2> У меня точки могут быть мемберами других структор и т.д.
[19:51:49] <vlad2> Массивы как раз редко используется.
[19:52:04] <valexey> погодь. а какая такая валидность может быть у точки?
[19:52:11] <valexey> там же любые значения валидны :-
[19:52:12] <valexey> )
[19:52:19] <valexey> точнее их валидность зависит сильно от контекста
[19:52:26] <vlad2> У нас в продукте много кода с геометрией. Нет там массивов (практически).
[19:52:44] <vlad2> У точки - да.
[19:52:48] <valexey> во-во! у вас там бардак! потому, что не на обероне :-)
[19:52:52] <vlad2> А у date? :)
[19:53:01] <valexey> а писали бы на обероне вам ПРИШЛОСЬ бы писать правильно
[19:53:06] <valexey> иначе ничего не вышло бы!!1
[19:53:24] <vlad2> Да да. Оберон всех спасет :)
[19:53:34] <valexey> Гм. Тебя чем-то не устраивает 1970 год?
[19:54:16] <vlad2> Это к Темиргалееву ;) Это он ноговнокодил там ассертов :)
[19:54:30] <valexey> Алсо какой тип у Даты унатуре? Там же небось int какой-нибудь :-) А он всегда VALUE
[19:55:00] <vlad2> Кстати, там у него тоже еще очень интересное (понятное только ему) разделение - где код ошибки вернуть, а где ASSERT кинуть.
[19:55:07] <valexey> Кстати, напомни, разве структуры по значению в оберонах не передаются?
[19:55:14] <valexey> В обероне-07 небось это Вирт выпилил
[19:55:19] <valexey> но в Обероне-2 небось есть
[19:55:32] <vlad2> Даже если передавались - Вирт выпилил в O7.
[19:55:48] <valexey> Он дофига что там выпилил. :-\
[19:56:19] <valexey> Похоже Вирт занялся написанием менеджера памяти и поэтому вырезал еще пачку всего
[19:56:29] <valexey> Например массивы длины неизвестной на этапе компиляции
[19:59:53] <valexey> Вообще даже среди оберонщиков нет однозначного мнения благо ли Оберон-07 или же таки просто, если говорить политкорректно, смелый эксперимент.
[20:04:29] <valexey> кстати, другой метод обработки ошибок используется вроде как в Go
[20:04:38] <valexey> правда я в нем не разбирался еще
[20:05:03] <valexey> интересно, оберонщики принципиально книжек не читают и на другие языки не смотрят?
[20:05:39] <valexey> такое ощущение что у многих просто какой-то железный занавес в мозгу
[20:09:59] <kemiisto> http://www.gazeta.ru/news/lenta/2011/12/05/n_2123122.shtml
[20:13:33] <vlad2> Дык, Вирт же сам за пределами оберонов ничем не интересуется.
[20:14:33] <valexey> ну, когда-то он ведь интересовался
[20:14:40] <valexey> например той же Mesa из ксерокса
[20:15:26] <vlad2> Это было очень даавно.
[20:15:28] <kemiisto> valexey: потом он постарел
[20:15:33] <kemiisto> очевидно же!
[20:15:36] <valexey> то есть Вирту то наверно уже можно не интересоваться. Но молодым… Вбивание в голову что все кроме оберонов ересь, и туда не нужно (даже вредно!) туда смотреть - крайне пагубно отражается на кругозоре и качестве программиста.
[20:15:54] <vlad2> О, отвис оборонкоре.
[20:16:05] <valexey> kemiisto: ну да. и именно тогда у него нечто путное вышло.
[20:16:07] <vlad2> ASSERT(Dates.ValidDate(date), 20);
ASSERT(Dates.ValidTime(time), 21);
[20:16:15] <vlad2> Натуральный говнокод.
[20:16:19] <valexey> А когда окончательно забрался в башню из слоновой кости, так все.
[20:16:28] <vlad2> Зачем отдавать в процедуру невалидные даты?
[20:16:56] <vlad2> Волшебные нормера 20 и 21 конечноотражены в документации.
[20:18:18] <vlad2> Stat(fname, stat, res); ASSERT((res = 0) OR (res = -1), 100);
IF res # 0 THEN
   code := 1   (* не получены атрибуты *)
END;
[20:18:39] <vlad2> Тут тоже все непросто.
[20:18:54] <vlad2> Такая машина по преобразовыванию целых чисел.
[20:20:41] <valexey> они действительно отражены
[20:20:46] <valexey> 20 и 21 это нумера ошибок
[20:20:56] <valexey> что какой значит - описано в доке к ББ
[20:21:54] <valexey> эдакие классы исключений созданные посредством заката солнца вручную :-)
[20:21:58] <vlad2> Так и написано "не валидное время"?
[20:22:19] <valexey> эм.. не помню
[20:22:44] <valexey> все же из исключений мне в аде больше всех понравилось. меньше всех, наверно таки в плюсах
[20:22:47] <vlad2> Да, список файлов, в ноды которого можно записать атрибуты связанных с эти файлов ошибко - тоже порадовал.
[20:22:50] <valexey> но без них как-то совсем скучно
[20:22:59] <valexey> а что там?
[20:23:00] <vlad2> "Удачного дебаггинга"
[20:23:02] <valexey> давай сюда кот!
[20:23:19] <vlad2> http://forum.oberoncore.ru/viewtopic.php?p=68341#p68341
[20:23:43] <vlad2> Не, я понимаю, что это может быть очень эффективно.
[20:24:03] <vlad2> Но если б я такое увидел у нас в базе - я бы очень сильно ругался.
[20:24:43] <vlad2> Про 2048 даже говорить не буду.
[20:26:34] <valexey> меня лесенка из шести END'ов радует неизменно
[20:27:04] <vlad2> Угу. Зато циклы правильные, бл@#$
[20:27:56] <vlad2> Вообще файловые операции - больной вопрос.
[20:28:49] <vlad2> Я как раз тогда переделывал подобное, когдв выкорчевывал два флага "success" из структуры, связанной с перемещаемым файлом.
[20:29:27] <vlad2> Точно такая же "архитектура" блин. Че-то делаем с файлом - и складываем ему туда ошибки.
[20:29:39] <vlad2> Потому разобраться где что обломалось - неаозможно.
[20:39:14] <valexey> зачем разбираться? лучше переписать и все!
[20:39:21] <valexey> не в отладчике же сидеть
[22:04:41] <valexey> ААА!! Студенческий говнокот!
[22:05:03] <valexey> Студенческие проги хороши до тех пор пока не потребуется туда внести ма-аленькое исправление
[22:28:39] <vlad2> воистину горвнокод :)
[22:47:47] <vlad2> О. Оберонщики таки допирают до того, что выгрузить модуль не так непросто :)
[22:49:22] <vlad2> После плюсов и вима решарпер доставляет, да...
[23:12:08] <valexey> Ж-)