Там-там телеграф, как нам обустроить java, память на голоса.
Лингвистический журнал из прошлых мелочей порадовал статьей о системе там-тамов. Как выяснилось (вольный пересказ одной из систем), язык там тоновый, и при передаче фразы из нее выкидываются все гласные и согласные, оставляют только тона. Для каждого из трех тонов языка есть свой звук (для нижнего и среднего используются разные стороны ассиметричного большого там-тама, для верхнего - второй, маленький).
Автор задалась вопросом, сохраняется ли что бы то ни было после такой редукции. Прояснилось все в момент записи звука: она просила настучать какие-нибудь примеры перед микрофоном, и через некоторое время стали подтягиваться люди...
Сообщение состоит из четырех частей (это я - программист - начал протокол связи расписывать):
- сигнатура начала сообщения: верхний тон;
- заголовок, содержащий обращение (поле "To:"), может быть личным, общим, либо к какой-то группе;
- тело сообщения, в котором чередуются известные формы ("идите, идите", "все ко мне", "отвечайте", "сегодня праздник" и т.п.) и конкретная онформация ("день рождения вождя", "умер Вася Пупкин", "не валяйте дурака" - последний пример не придуман). Заключительный тон каждого слова стучится чуть громче остальных. Радист-тамтамщик намеренно вставляет известные всем формулы, чтобы упростить трактовку сообщения, устранить неоднозначности;
- сигнатура конца сообщения: нижний-нижний-средний-средний тона;
Ну разве не прелесть?
Программерское: слегка нервирует в java наследование NullPointerException от RuntimeException. Из-за чего про него регулярно забывают.
Понятно, что нельзя тупо сделать его обычным Exception: любую точку после имени переменной прийдется окружать try - catch. По этому поводу несколько идей:
1. Сделать доступ ко всем членам "обычного" класса throws NullPointerException на системном уровне, вылетающее, когда переменная == null. Но при этом предусмотреть интерфейс NotNullable, реализовав который мы снимаем это неудобство, зато приобретаем такое же throws для всех операций присвоения (в том числе вызов конструктора), если выражение справа == null. В таком случае, вместо того, чтобы после каждого присвоения проверять, не null ли там (и в зависимости от этого выбрать поведение программы), мы делаем try - catch на присвоении, код try выполняется, когда переменная имеет значение, catch - в случае null.
2. Дальнейшее развитие идеи - не классы реализуют интерфейс NotNullable, а переменные в момент инициализации (а то и каждого присвоения). Например, "a = b;" работает как сегодня, зато все последующие вызовы членов переменной a декларируются как throws NullPointerException. А сделав "a := b;", мы оборачиваем try - catch только эту строку, а не все последующие обращения к объекту.
Если вы дочитали до этого момента, скорее всего на языке вертится вопрос "нахрена?" Идея в том, чтобы код, написанный без соответствующих try - catch просто не компилировался. Как сегодня уже делается с каким-нибудь IOException.
Интересно, в каком-нибудь языке это реализовано в таком виде? Или ересь и бред все это?
Смотрел вчера Les guignols, там издевались над книжкой в духе "Ив Монтан домогался до меня, когда мне было 5 лет". Кукла Монтана (скелет в черном цилиндре с тростью) говорила удивительно знакомым голосом. Только сегодня вспомнил - оказалось, он играл в Jean de Florette
. Вместо Наденькиной памяти на лица - у меня на голоса.
Лингвистический журнал из прошлых мелочей порадовал статьей о системе там-тамов. Как выяснилось (вольный пересказ одной из систем), язык там тоновый, и при передаче фразы из нее выкидываются все гласные и согласные, оставляют только тона. Для каждого из трех тонов языка есть свой звук (для нижнего и среднего используются разные стороны ассиметричного большого там-тама, для верхнего - второй, маленький).
Автор задалась вопросом, сохраняется ли что бы то ни было после такой редукции. Прояснилось все в момент записи звука: она просила настучать какие-нибудь примеры перед микрофоном, и через некоторое время стали подтягиваться люди...
Сообщение состоит из четырех частей (это я - программист - начал протокол связи расписывать):
- сигнатура начала сообщения: верхний тон;
- заголовок, содержащий обращение (поле "To:"), может быть личным, общим, либо к какой-то группе;
- тело сообщения, в котором чередуются известные формы ("идите, идите", "все ко мне", "отвечайте", "сегодня праздник" и т.п.) и конкретная онформация ("день рождения вождя", "умер Вася Пупкин", "не валяйте дурака" - последний пример не придуман). Заключительный тон каждого слова стучится чуть громче остальных. Радист-тамтамщик намеренно вставляет известные всем формулы, чтобы упростить трактовку сообщения, устранить неоднозначности;
- сигнатура конца сообщения: нижний-нижний-средний-средний тона;
Ну разве не прелесть?
Программерское: слегка нервирует в java наследование NullPointerException от RuntimeException. Из-за чего про него регулярно забывают.
Понятно, что нельзя тупо сделать его обычным Exception: любую точку после имени переменной прийдется окружать try - catch. По этому поводу несколько идей:
1. Сделать доступ ко всем членам "обычного" класса throws NullPointerException на системном уровне, вылетающее, когда переменная == null. Но при этом предусмотреть интерфейс NotNullable, реализовав который мы снимаем это неудобство, зато приобретаем такое же throws для всех операций присвоения (в том числе вызов конструктора), если выражение справа == null. В таком случае, вместо того, чтобы после каждого присвоения проверять, не null ли там (и в зависимости от этого выбрать поведение программы), мы делаем try - catch на присвоении, код try выполняется, когда переменная имеет значение, catch - в случае null.
2. Дальнейшее развитие идеи - не классы реализуют интерфейс NotNullable, а переменные в момент инициализации (а то и каждого присвоения). Например, "a = b;" работает как сегодня, зато все последующие вызовы членов переменной a декларируются как throws NullPointerException. А сделав "a := b;", мы оборачиваем try - catch только эту строку, а не все последующие обращения к объекту.
Если вы дочитали до этого момента, скорее всего на языке вертится вопрос "нахрена?" Идея в том, чтобы код, написанный без соответствующих try - catch просто не компилировался. Как сегодня уже делается с каким-нибудь IOException.
Интересно, в каком-нибудь языке это реализовано в таком виде? Или ересь и бред все это?
Смотрел вчера Les guignols, там издевались над книжкой в духе "Ив Монтан домогался до меня, когда мне было 5 лет". Кукла Монтана (скелет в черном цилиндре с тростью) говорила удивительно знакомым голосом. Только сегодня вспомнил - оказалось, он играл в Jean de Florette
no subject
Date: 2004-10-01 06:40 am (UTC)no subject
Date: 2004-10-02 01:05 am (UTC)no subject
Date: 2004-10-03 11:31 am (UTC)Конечно удобнее заделать на системном уровне вокруг NotNullable, а то задолбали эти нал поинтеры по самое нехочу. Но мне кажется, все же это иллюзия. Дядьки "не помню откуда" доказали, что отследить для конечных автоматов, где не определено значение, до рантайма невозможно. Поэтому как тут ни крутись..
no subject
Date: 2004-10-04 12:42 am (UTC)no subject
Date: 2004-10-01 05:51 am (UTC)Кстати, я так и не понял за все это время, так ли же мычится по-французски и по-английски. Слышал разные ответы.
А вообще чему удивляться в смысле протокола? Весь синтаксис - протокол! Более того, в совсем уж другой области белок доставляется в клетке куда надо, потому что у него на носу сидит адрес, состоящих из паролей прохождения мембран. Каждая обрезает свой кусочек, и оно идет себе дальше. Так что жизнь - игра в протокол.
no subject
Date: 2004-10-01 06:43 am (UTC)Я не особо удивляюсь протоколу, я уже прочитал достаточное количество книжек, объясняющих, что современное программирование - всего лишь моделирование той или иной грани жизни. Мне именно реализция понравилась. Сродни передачи TCP голубиной почтой, где скорость передачи завидела от таких параметров, как накормленность птиц и длина лапки, на которую бумажку накручивали.
no subject
Date: 2004-10-01 06:51 am (UTC)java разрабатывается только внутри sun microsystems (кстати, люди, которые непосредственно придумывают и пишут, иногда бывают в москве и питере). сама корпорация ставит задачи и цели себе самостоятельно. внешние упреки и предложения в корпорацию попадают только из комитета java community process (http://www.jcp.org/).
если у вас есть гениальная идея - напишите об этом в jcp, они рассмотрят, и, если всё ок, передадут в sun для включения в следующую версию языка.
кстати, в новой версии 1.5 есть три функции и один метод, предложенный из россии
no subject
Date: 2004-10-01 07:38 am (UTC)no subject
Date: 2004-10-02 01:06 am (UTC)no subject
public String toKOI8();
no subject
no subject
Date: 2004-10-01 07:41 am (UTC)По поводу "разных" - я бы по-другоме поставил вопрос: а кому-то не нужна предложенная мною функциональность? За исключением потери производительности на проверке (которую и так, по-хорошему, надо писать), никаких минусов.
no subject
no subject
Date: 2008-07-10 08:43 pm (UTC)no subject
Date: 2008-07-11 07:38 am (UTC)no subject
Date: 2008-07-11 07:40 am (UTC)no subject
Date: 2008-07-11 07:46 am (UTC)