[00:05:58] <TRUE> заказчик заплатил двум программистам за системку. Они оба трудились: родили архитектуру, спроектировали БД и т.д. Но под конец работы первый программист забухал, поэтому заказчик при сохранении своих данных в системке постоянно натыкался окошко с сообщением "извините, нет доступа к БД". И где тут ошибка? Второй программист честно кидал исключение при обащении к БД, потому что первый недописал этот самый уровень.
[00:06:02] <TRUE> )
[00:09:35] <_valexey_> не понял. при чем тут какие-то окошки?
[00:09:44] <_valexey_> как исключение вызовет какое-то там окошко?
[00:10:24] <TRUE> окошко появлялось потому, что второй программист кидал исключения, а где-то там выше это исключение обрабатывалось таким образом: появлялось окошко.
[00:10:58] <_valexey_> за такое убивать надо
[00:11:09] <TRUE> это гипотетический пример
[00:11:56] <_valexey_> впрочем, я не понял какие там были слои и кто чего не дописал
[00:20:06] <TRUE> у нас есть данные, но нет доступа к БД, чтобы записать их (уровень обращения к БД не написан). Или другой пример: у нас есть очередной символ последовательности, но ему нет места в нашем аккумуляторе (это буква, а не цифра). В обоих случаях, если, согласно модельке данного кусочка кода, достаточно информации для обработки, то обработка должна совершиться. Если информации недостаточно, то мы имеем дело с исключением.
[00:21:26] <TRUE> не совсем ясное предложение получилось...
[00:28:38] <_valexey_> Угу. А если бы там были коды ошибок а не исключения, то прога ничего не высвитела бы вообще. И юзер подумал бы что все хорошо случилось.
[00:32:21] <vlad2> valexey: true
[00:32:55] <vlad2> Писать _правильно_ с кодами ошибок можно, но запарнее чем _првильно_ с исключениями.
[00:33:09] <_valexey_> Это слабо сказано, запарнее...
[00:33:22] <vlad2> Это если взять сферического коня. Без сопровождения и т.д.
[00:33:30] <vlad2> Просто писать.
[00:33:31] <_valexey_> В Go каждая вшивая функция из стандартной либы возвращает код ошибки! Это капец!
[00:33:37] <TRUE> не факт. Но я всё это говорю не потому что я за коды ошибок. Я тоже, бывает, возвращаю таким образом ошибки (украдкой оглядываясь - не видит ли кто :)). Но механизм исключений не для этого. Здесь нужно что-то другое.
[00:33:48] <_valexey_> Один вызов функции - три строчки на то чтобы хоть как-то это обработать.
[00:34:00] <_valexey_> Полезного кода выходит - 1/3.
[00:34:10] <vlad2> По поводу строки в число.
[00:34:22] <vlad2> valexey все правиольно сказа - зависит от задачи
[00:34:38] <vlad2> в парсере исключение нафиг не сделось.
[00:35:11] <vlad2> точнее даже не в парсере, а в неком валидпторе
[00:36:07] <vlad2> А если к тебя уже все отвалидировано (файл с данными), то такщить с самого низу ошибку преобразования - это удос-ужос.
[00:36:07] <_valexey_> Причем когда коды ошибки - мы имеем ДИКОЕ дублирование кода. Потому что 80 процентов ошибок имеют одну и ту же обработку - склеить ласты и пожаловаться на это тому, кто тебя вызвал.
[00:37:13] <_valexey_> В результате либо имеет чистый код, где виден функционал, но без обработки ошибок, либо имеем дико замусоренный код, где основной логики не видно вообще. Зато с обработкой.
[00:37:23] <vlad2> Угу. Файл кораптед. Привет. И шлупо заставлять 10 слоев логики по анализу столконовения протонов обрабатывать эту ошибку.
[00:38:41] <_valexey_> Да, причем этот мусор он как горизонтально по функции расползается (размазан тонким слоем по всему телу функции), так и по стеку функций, вертикально размазан. Это просто капец.
[00:40:25] <_valexey_> Причем это в Go, где это хоть как-то постарались облагородить (код возврата не мешает функции возвращать свои нормальные значения, то есть никаких возвратов значений через аргумент функции, также сильно облегчен синтаксис объявления и инициализации переменных).
[00:40:56] <TRUE> vlad добавил valexey-ю сил :). Энергетика принёс? Ну, давайте, ломайте меня полностью :)
[00:41:25] <_valexey_> TRUE: я просто сейчас особенно отчетливо вспомнил свой сегодняшний кусок кода на Go :-)
[00:42:20] <vlad2> TRUE: я могу откопать свои посты на RSDN, где я всем рассказывал какие плохие исключения и что безопасно программить с ними невозможно ;)
[00:42:30] <vlad2> Было это лет 7 назад.
[00:42:43] <_valexey_> Да-да. Я тоже не любил исключения когда-то :-)
[00:43:20] <_valexey_> У исключений есть один минус - они не входят в сигнатуру функции.
[00:43:28] <vlad2> Попробуй посмотреть на исключения с пргаматической точки зрения. Чем конкретно они тебе мешают. Без идеологии.
[00:43:41] <TRUE> [23:35:58] <_valexey_> В результате либо имеет чистый код, где виден функционал, но без обработки ошибок, либо имеем дико замусоренный код, где основной логики не видно вообще. Зато с обработкой.
[00:44:05] <TRUE> а теперь внимание: нам нужен всего лишь чистый код? :)
[00:44:24] <_valexey_> Нам нужен чистый код с нормальной обработкой "ошибок".
[00:44:38] <vlad2> Чистый код - это необходимое условие для всех остальных рулезов :)
[00:44:39] <_valexey_> Исключения как раз позволяют этого достичь.
[00:45:28] <TRUE> не позволяют. Но ключевой момент в использовании исключений - добиться чистоты и надёжности.
[00:45:50] <TRUE> я тоже этого хочу
[00:46:01] <TRUE> а коды возврата этого не дают
[00:46:24] <_valexey_> То есть поскольку исключения не входят в сигнатуру функции, то из кого угодно может выскочить кто угодно. Внезапно, так сказать.
[00:46:32] <TRUE> поэтому нужно другое решение. Не исключения. Нужного сейчас нет
[00:46:47] <TRUE> нужного решения в языках*
[00:47:03] <_valexey_> Ну, если не видно выхода, то выход стандартен - посмотреть что там в хаскелле :-)
[00:47:25] <vlad2> ;)
[00:47:48] <_valexey_> Там исключения библиотечные. То есть это не механизм языка. И они устраняют мусор горизонтальный, то есть внутри функции.
[00:48:04] <TRUE> [23:42:14] <vlad2> Попробуй посмотреть на исключения с пргаматической точки зрения.
[00:48:14] <TRUE> я про прогматиков сегодня уже писал :)
[00:48:20] <TRUE> прагматиков
[00:48:53] <vlad2> Не обязательно быть в терминально стадии ;)
[00:49:13] <vlad2> Это скорее предложении выйти из сферы идеологии :)
[00:50:51] <_valexey_> vlad2: кстати, о сигнатурах - думаю это вполне решается на инструментальном уровне. То есть в случае когда у нас есть все исходники, то ничто не мешает IDE пройтись по ним и выдать тебе список возможных исключений вот этой вот функции.
[00:51:25] <vlad2> Дык, в жабе оно входит в сигнатуру. Толку не сильно много.
[00:51:45] <vlad2> В смысле у такого подхода свои проблемы.
[00:51:48] <_valexey_> Она там в сигнатуру входит принудительно. То есть это надо делать руками.
[00:52:18] <_valexey_> А то о чем я говорю - тыкнул кнопку в IDE, оно тебе выдало список исключений с которыми возможно придется иметь дело.
[00:52:43] <vlad2> ХЗ. Надо попробовать :)
[00:53:08] <vlad2> Не думаю, что такая возможность что-то сильно изменит.
[00:54:03] <TRUE> чем плохи исключения: они не обрабатывают всё, что надо для полного счастья. И эту обработку нужно всё равно делать вручную. Но исключения не обрабатываются сразу же здесь, поэтому, иногда приходится прыгать по исходникам, чтобы во всех обработчиках исключений закрыть потоки, сокеты и т.п. Так не бывает прямо уж всегда, но мне очень неприятно искать баги, выросшие на этой почве. Не в последнюю очередь потому, что я их ищу долго (некоторые расстраиваются, что тратят на отлов такого полтора-два часа, а я же просто счастлив, если уложился в такой промежуток).
[00:56:19] <_valexey_> TRUE: не понял проблемы. исключения это не что-то волшебное. у них тот же источник что и у кодов возврата - какой-то программист руками написал throw.
[00:56:38] <_valexey_> Это информирование о проблеме по сути.
[00:57:21] <_valexey_> Зато в С++ выкинутое исключение, если ты его прямо тут не обработал, автоматически закроет тебе все сокеты и вообще освободит ресурсы которые из за ошибки больше не нужны.
[00:57:27] <TRUE> ога, информирование другого программиста о проблеме, которую первый программист решать _не хочет_
[00:58:03] <_valexey_> Которую он решить НЕ МОЖЕТ.
[00:58:09] <TRUE> а ещё свернёт все окна и выключит компьютер :)
[00:58:16] <_valexey_> Потому что на его уровне не достаточно информации.
[00:58:21] <TRUE> С++
[00:58:49] <TRUE> я это к тому, что закрыть файлы - это круто, но это частный случай
[00:59:03] <_valexey_> Вот пишешь ты стандартую либу. Пишешь стандартную функцию strToInt. Не можешь ты распарсить строку и вернуть int. Что делать будешь?
[00:59:34] <TRUE> функция? Тут фремворк нужен :)
[00:59:59] <_valexey_> эээ.. ну, может и фреймворк. но в С++ обычно просто функция.
[01:00:28] <TRUE> я не знаю точного ответа. Сам ищу
[01:01:16] <TRUE> коды возвата - и уж тем более исключения - это извороты
[01:01:47] <TRUE> код возврата - это метаинформация
[01:01:48] <_valexey_> Дык, а чего искать то? Ты, автор стандартной библиотеки, не знаешь контекста использования. У тебя все что есть - это строка. Соответственно тебе нужно проинформировать того кто тебя использует о том, что возникла проблема. Вот и все.
[01:03:51] <TRUE> меня использует? Меня - это кого?
[01:04:02] <_valexey_> функцию которую ты написал.
[01:04:12] <_valexey_> Функцию стандартной либы.
[01:06:47] <vlad2> Ответ оберонщиков - ASSERT
[01:07:01] <_valexey_> эээ. блин. сурово.
[01:07:02] <vlad2> Ну или HALT
[01:07:07] <_valexey_> o_O
[01:07:13] <vlad2> А что поделуешь.
[01:07:13] <_valexey_> погасить пользователю комп нафиг!
[01:07:20] <vlad2> Замаскированное исключение ;)
[01:07:38] <_valexey_> Типо калькулятор поделил на ноль, хренк. Комп вырубили. Аварийный останов.
[01:07:47] <vlad2> АВОСТ!
[01:08:06] <TRUE> а я написал не функцию :). Функция - это всего лишь оболочка. Некая форма, через которую у меня доступ к содержанию. А точнее - к синтаксическому анализатору. В функции у меня синтаксический анализатор.
[01:08:14] <TRUE> [00:05:59] <_valexey_> погасить пользователю комп нафиг!
[01:08:21] <vlad2> В смысле я хотел сказать, что оберонщиуи тоже люди - и все время такскать коды возврата даже такие суровые люди не хотят ;)
[01:08:28] <TRUE> форматировать винт и сжеть потом все платы
[01:09:26] <_valexey_> Парсер числа назвать синтаксическим анализатором конечно можно, но не слишком ли много чести? :-)
[01:09:32] <vlad2> Илья ж рассказывал, что он придумал как обрабатывать ассерыт на нижних уровнях. Т.е. изобрел обычный механизм исключений.
[01:09:58] <_valexey_> (этот мегапарсер пишется в 10 строк кода)
[01:11:20] <_valexey_> vlad2: знаешь, я вот сижу тут, и думаю, что пожалуй код на Модуле-3 то может получиться почище чем на Go :-) За счет наличия у нее исключений в языке :-)
[01:11:21] <vlad2> TRUE: по поводу незакрытых сокетов -
[01:11:42] <TRUE> ASSERT - это предусловие. Если он сработал, то прцедуру запустили в неподобающем окружении. Значит, останавливаем текущее действие.
[01:11:50] <vlad2> эта проблема оговаривается в любом нормальном руководстве "как писать с исключениями".
[01:11:52] <TRUE> [00:08:43] <_valexey_> (этот мегапарсер
[01:12:01] <TRUE> я не говорил "мегапарсер"
[01:12:10] <vlad2> открыл сокет - напиши finally.
[01:12:25] <_valexey_> или в raii оберни
[01:12:46] <vlad2> Да, в плюсах все еще шоколаднее, но не будем парить человека :)
[01:13:20] <_valexey_> а в go заворачиваем в defer :-)
[01:13:25] <TRUE> [00:11:11] <_valexey_> или в raii оберни
Не сразу понял, что оберня - это не оскорбление Оберона :)
[01:13:33] <_valexey_> :-)
[01:13:52] <_valexey_> в Go исключений нет, никто их особо не кидает, но есть паники.
[01:14:09] <_valexey_> Которые легко могут сложить твою goroutine. Поэтому defer таки нужен.
[01:14:17] <TRUE> а паниковать у них обычное дело или в порядке исключения?
[01:14:43] <_valexey_> Паникуют они например когда идет разименование nil'а
[01:15:16] <_valexey_> Ну и самостоятельно можно панику конечно вызвать.
[01:15:38] <_valexey_> Но принято таки все на кодах возврата.
[01:16:33] <_valexey_> http://golang.org/ref/spec#Run_time_panics
[01:17:05] <_valexey_> http://golang.org/ref/spec#Handling_panics
[05:06:27] <Сергей Зорин> .
[05:39:11] <egp> "в Go исключений нет, никто их особо не кидает, но есть паники." - вот это хорошо придумано!
[05:44:17] <vlad2> Не, так вообще - ни рыба ни мясо.
[05:44:46] <vlad2> valexey: а чего такой наплыв бфл 24-го на форум?
[05:48:20] <egp> ни рыба, а эффективности здорово помогает отсутствие стектрейсов в обьектах
[05:49:07] <vlad2> Как оно помогает, если стектрейс все равно будет в случае паники?
[05:49:44] <egp> ну паник он паник, но в java парсинг невалидных чисел реализован через стектрейсы. это плохо
[05:50:42] <vlad2> Что значит "парсинг невалидных чисел реализован через стектрейсы"?
[05:51:56] <egp> vlad2: ну parse числа бросает NumberFormatException в случае неверного числа
[05:52:19] <egp> таких мест правда мало
[05:52:38] <egp> в апи
[05:52:40] <egp> java
[05:52:58] <vlad2> Ну и пусть бросает. Если не нужно исключение - воздьмешь какую-нибудь tryParse
[05:53:22] <egp> ну это лишние тормоза.
[08:05:41] <Сергей Зорин> чето mb_convert_encoding($str, "CP1251", "UTF8") не конвертит в cp1251
[08:06:10] <Сергей Зорин> так в утф и осается
[08:07:14] <urod> мож там errno какой вылез по поводу "нет установленной кодировки"
[08:07:33] <urod> just a guess
[08:07:59] <urod> Сергей Зорин: Более каноничное написание "UTF-8" а не "UTF8"
[08:09:16] <urod> хотя кажется я видел и "UTF8" в каких-то кажется спеках
[08:10:21] <urod> просто вот я ВПС поставил - там репы убунты нестандартные, с локалями проблема
[08:10:38] <Сергей Зорин> не сработало
[08:11:07] <urod> кури маны =)
[08:11:08] <Сергей Зорин> может 1251 как-то иначе указывается
[08:11:19] <urod> может Lowercase cp1251
[08:11:37] <urod> хотя это глюк
[08:12:19] <urod> ну вот ещё есть прога iconv, прога прекрасная, может к ней есть и либа
[08:12:27] <urod> там таких траблов нет
[08:15:10] <Сергей Зорин> ну да ловеркейс, но и аппер тоже не конвертит
[08:16:52] <urod> Сергей Зорин: если ты в POSIX Пашешь, то надо в начале проги локали проинитить
[08:17:02] <urod> чототам set_locale и ещё чтото
[08:17:09] <urod> поищи на вебе самплы
[08:17:48] <urod> в начале main() это делается
[08:17:53] <Сергей Зорин> гадство какоето утф8 эта
[08:18:27] <urod> в яве всё норм с ней за одним исключением
[08:18:55] <urod> 4-байтные символы юникода репрезентятся явой как два рядом стоящих char
[08:19:37] <urod> ну это не утф8 а юникод явовый вообще, при любых кодировках
[08:22:30] <urod> клёва. Раз в 20 лет послушаешь группу Camel и люто нравится
[08:22:36] <urod> редкая группа
[08:23:56] <urod> Сергей Зорин: я кстати разбирал явовые конвертеры UTF-8 вглубь, писал разбивщик потока на равные части чтобы синхронизация байтстрима и чарстрима была
[08:24:39] <urod> нужно для google app engine такое, ибо на длинных потоках происходит таймаут операции, надо разбивать на чанки
[08:25:39] <urod> и в разных операциях парсить
[08:25:57] <urod> под контролем операции которая почти всё время просто ждёт
[08:26:13] <urod> и ресурсов при ожидании не ест
[08:31:14] <Сергей Зорин> твою мать, вмпсто mb_strtolower используют strtolower
[08:32:35] <urod> выслал статью www.opennet.ru/opennews/art.shtml?num=35907 <http://www.opennet.ru/opennews/art.shtml?num=35907> китычу - автору The Nothing System
[08:32:53] <urod> как бы одно направление.
[08:35:47] <urod> Сергей Зорин: для юникода вообще существует методология целая - скажем для char* указателей на UTF-8 по спекам должен работать strlen()
[08:35:50] <urod> и т.п.
[08:36:27] <urod> маздайный безтиповый подход, но такова се ля ва
[08:38:32] <urod> то есть если есть прога для char* (ASCII 7-bit или ASCII 8-bit), то юникодизовать её можно двумя путями - "трудным" и "лёгким".
[08:38:45] <urod> Трудный это конвертить всё в wchar_t*.
[08:39:07] <urod> Лёгкий это юзать char* для UTF-8 и юзать strlen() and friends.
[08:39:24] <urod> Есть статьи на вебе про эти два пути. Линка не дам - не помню.
[08:58:33] <urod> мой mysql упал на edis.at ...
[08:58:52] <urod> VRS Starter план
[09:07:28] <urod> что приятно - то ли спринг, то ли mysql_jdbc кешируют данные пользователя, логаут-логин происходит успешно при лежащем mysql
[10:40:34] <_valexey_> vlad2 vlad3 : да это я сервис один проверял. он твой сайт вертит в разных браузерах а затем высылает тебе пачку скриншотов, как твой сайт там смотрится, в этих браузерах
[11:11:19] <urod> ох. начальник недодумал с классификаторами на нашей цмс. щас как выкатить зиллион ченджев, вот я рад буду
[11:11:26] <urod> выкатит
[11:12:03] <urod> чото написал. опять поди нифига не продумал
[11:12:10] <urod> вот так говносайты и рождаются
[11:12:19] <urod> непродуманные
[11:28:34] <urod> Решили пока поставить сайт on hold пока всё не продумаем. Чтобы не рождать говносайт.
Я пока думаю заняться своим abproject - там issues проявились.
[11:29:01] <urod> под линухом мой аб не пашет, надо починить.
[11:33:17] <urod> я вот думаю для этого flat-file адресбука (abproject) сделать папочку проги общую для всех ос (для винды, линуха, и проч.) в которой преференсы типа размера окна хранятся отдельно в папках по имени инстанса ОС. Ну в винде это будет в регистри, в линухе в папке ~/.abproject/ или если ос не поддерживается абом, то в нигде.
[11:34:30] <_valexey_> угу
[11:48:17] <Сергей Зорин> гдето я видел ирку с гуглотранслятором
[11:49:39] <urod> блин зараза ява маздай. нет и вряд ли могут быть решения, чтобы bin/java[.exe] отыскивать автоматом. МАЗДАЙ
[11:52:51] <urod> а ребол в этой же проге глючит с отображением гуи
[11:53:12] <urod> надо на C переписывать
[11:53:18] <urod> с гарбаге коллектором
[11:54:04] <urod> C тупой язык, хочу нормальный ООП
[11:55:44] <urod> ну кстати таки можно и без ООП
[12:04:16] <urod> так есть понятие "алгоритмы и структуры данных", а есть понятие "нотации алгоритмов и нотации структур данных"
[12:04:22] <urod> таки
[13:51:57] <TRUE> <Сергей Зорин> чето mb_convert_encoding($str, "CP1251", "UTF8") не конвертит в cp1251
Логичные и наиболее часто встречающиеся функции выглядят так: f($str, from, to)
Может, с этой функцией так же? То есть, что произойдёт, если переставить два последних параметра?
[13:52:55] <valexey > полагаю что лучше доку по функции прочесть - это ж стандартная PHP ФУНКЦИЯ
[15:25:11] <valexey > читаю башорг:
[15:25:15] <valexey > 000: Го на лыжах! Экстремальный отдых!
ххх: бля, уже не помню как на них стоять
ооо: Это как на велике - если научился - умеешь на всегда)
ххх: Маша - велик у меня это 3 ребра сломано, рука и нога в гипсе, да месяц в больнице!
ххх: Идите вы в Ж0%у с "это как велик!" жить охота.
[15:25:42] <valexey > Только с третьей попытки понял, что в "Го на лыжах" Го - это глагол, а не Go :-)
[15:30:38] <valexey > так и представил вот это: http://blogs.computerworld.com/sites/default/themes/cw_blogs/cache/files/u34/gogopher-200.gif на лыжах :-)
[15:38:44] <TRUE> ну а чо. Руби на рельсах, а Го на лыжах.
[15:42:02] <valexey > С++ на стероидах :-)
[15:48:13] <valexey > Сергей Зорин: а тя не видел для модулы-3 что-то вроде ncurses или curses? Ну или может биндинг к ним есть?
[15:49:07] <Сергей Зорин> неа
[15:54:49] <Сергей Зорин> но если где найдешь чего полезного для м2, то есть конвертер м2->m3
[15:55:12] <Сергей Зорин> хотя тут оно бесполезно
[16:04:56] <valexey > Сергей Зорин: поставил модулу-3 на линух :-)
[16:05:02] <valexey > Гуй-демки работают!
[16:07:32] <valexey > гы. браузер типо
[16:26:05] <Сергей Зорин> угу неработающий
[16:26:29] <Сергей Зорин> там часть из спина
[16:30:55] <Сергей Зорин> если в спине пошарится то мож чего полезного найдется
[16:36:19] <valexey > А ты Juno заценил?
[16:36:57] <valexey > программерская рисовалка :-)
[16:41:11] <Сергей Зорин> так, потыкался
[16:52:34] <Сергей Зорин> гдето еще должна быть тулзовина для автобиндинга, потому как в некоторых интефейсах написано автогенерате
[16:55:01] <Сергей Зорин> ьлин когда эти ирки умрут уже
[16:56:50] <valexey > ?
[16:58:59] <Сергей Зорин> зачем они нужны
[16:59:24] <Сергей Зорин> или уж бы утф нормально поддерживали
[17:02:33] <valexey > дык поддерживают вроде
[17:02:41] <valexey > по крайней мере некоторые сервера
[17:02:57] <valexey > точнее они позволяют массу кодировок, в зависимости от клиента выбирай что хочешь
[17:04:44] <Сергей Зорин> у меня сплошные кракозяберы или нумера
[17:05:05] <valexey > ну, бывает, чо.
[17:05:55] <valexey > у меня все ок
[17:20:52] <valexey > интерфейс конечно страшненький и местами не работающий у демок
[17:34:38] <Сергей Зорин> ну, учитывая, что это годы 80е, то терпимо )
[17:34:43] <Сергей Зорин> 90е
[17:36:01] <Сергей Зорин> ну может надо пересобрать чтоб заработало все
[17:36:20] <Сергей Зорин> под виндой вроде всё работало
[17:42:43] <valexey > не, оно работает, но мелкие глючки имеются
[17:49:31] <Сергей Зорин> стоило поставить старую мирку и юникод заработал, вот же
[17:50:36] <valexey > /me никогда миркой не пользовался
[17:51:39] <Сергей Зорин> ты ничего не отерял ) я вообще ирк впервые запустил сегодня
[17:56:40] <Сергей Зорин> поставил в мирку гуглотранслятор, а то медленно перевожу, а так сразу можно смысл уловить
[18:07:51] <valexey > эмм. ну в ирке то я постоянно
[18:07:55] <valexey > но миркой никогда не пользоался
[18:19:57] <valexey > "Сегодня на совещании:
- Я не буду работать в компании, в которой [такая фигня творится].
- Что, уволишься?
- Нет! Работать не буду"
[18:21:46] <Сергей Зорин> )
[18:22:01] <Сергей Зорин> а ники в ирке регать надо?
[18:24:10] <valexey > можно но не обязательно
[18:49:05] <valexey > Ведущие разработчики Linux остались без Кокса: http://www.linux.org.ru/news/linux-general/8768337
[19:07:36] <valexey > version kpmy
[19:07:38] <Жаба> valexey , kpmy have Psi+ 0.15.5185 (Jan 22 2012) on Windows 7
[19:08:53] <valexey > kpmy: hi
[19:09:02] <kpmy> привет
[19:09:41] <valexey > какими судьбами?
[19:10:20] <kpmy> скучно стало
[19:42:37] <valexey > под веб мне программируется исключительно под вот это: http://www.youtube.com/watch?hl=ru&gl=RU&v=wcLNteez3c4
[19:42:42] <valexey > к чему бы это? :-)
[19:44:33] <Сергей Зорин> zoкko пиарит компаулер аркона1, правда указывает свой сай )
[19:45:34] <valexey > Сергей Зорин: где?
[19:45:47] <Сергей Зорин> на канале ирк
[19:45:58] <valexey > на буржуйском?
[19:46:02] <Сергей Зорин> ага
[19:46:26] <Сергей Зорин> dsr жалуется что не может его юзать ибо он на русском, в смыслек иде
[19:46:32] <Сергей Зорин> dsar
[19:46:59] <Сергей Зорин> yflj yfgbcfnm xnj, frhjy tuj yf ,eh;eqcrbq gttdtk
[19:47:07] <valexey > эээ
[19:47:15] <valexey > пофиксим
[19:47:15] <Сергей Зорин> надо написать чтоб аркон его на русский перевл
[19:47:30] <valexey > да я сам переведу. по крайней мере компилер
[19:47:39] <Сергей Зорин> не, иде
[19:47:53] <Сергей Зорин> компиляер то не проблема
[19:48:17] <valexey > гм. а какой смысл пиарить Зорко свой сайт, если там один фиг все на русском?
[20:00:27] <Сергей Зорин> ну хз
[20:00:53] <Сергей Зорин> а если они переведут некоторые слоганы
[21:09:25] <valexey > блин. дебильное авторасставление точкозапятых в Go
[21:09:49] <valexey > не получается по человечески оформть функцию со множеством параметров - приходится все лепить в одну строку
[21:11:15] <urod> язык Гы
[21:15:40] <valexey > ыгы
[21:24:32] <valexey > "Надо... надо быть дружественнее к конечному пользователю.. и они потянутся... а что не надо - так это брать принцип коровят "возможно в принципе и ладно - пользователь разберется" - НЕ БУДЕТ ОН РАЗБИРАТЬСЯ - ПОШЛЕТ НАХЕР."
[21:26:00] <kpmy> кул стори
[23:24:11] <alexey.veselovsky> да, все же точказапятая в конце строки это явное излишество
[23:24:21] <alexey.veselovsky> после Go постоянно забываю эту ; ставить
[23:25:50] <kpmy> а в го как?
[23:33:02] <alexey.veselovsky> а там оно само ; проставляет в конце строк