Дневник ur'а

Recent Entries

You are viewing the most recent 14 entries.

23rd June 2011

8:16pm: исходник файла xlpage-windows-1251.php для PmWiki
Выкладываю исходник написанного мной файла xlpage-windows-1251.php для адаптации движка PmWiki под кодировку windows-1251. Наконец-то он у меня стабилизировался, я реализовал в нём всё, что мне было нужно. По хорошему надо бы послать на сайт pmwiki.org, но лень писать по-английски (активный английский у меня никакой), да и вообще посылать лень. Поэтому выкладываю здесь, может, какой-нибудь такой же страдалец, как и я, нагуглит, и будет ему счастье :)

страшные программистские кракозябры )

10th September 2010

2:24pm: программистско-лингвистическое
Давно меня достало название для пустой ссылки (или неопределённого значения), употребляемое во многих языках программирования и в базах данных: null. Достало потому, что в устном разговоре с коллегами трудно различить фразы «эта переменная (или поле в таблице базы данных) равна нулю (т. е. 0)» и «эта переменная равна null».

Дело в том, что в английском (и французском, кстати) такой проблемы не возникает, т.к. там 0 — это zero. А вот в русском и немецком 0 — это нуль (Null).

Отсюда возникает гипотеза: видимо, те языки программирования, в которых пустая ссылка (или неопределённое значение) называется как-то по-другому, разрабатывали не англоязычные люди. Действительно: Паскаль (nil) разрабатывал Вирт (швейцарский немец), Алгол-68 (nil) — международный комитет (и кажется, рулил им голландец ван Вейнгаарден), Симула-67 (none) — норвежская разработка. В Аде (которую разрабатывали, кажется, французы), правда, есть null, но у французов, как я упомянул выше, также нет таких проблем с нулём.

Правда, не знаю, как быть с Лиспом, откуда, собственно, пошёл nil. Его создал американский математик, но, вероятно, он был несколько грамотнее, чем более поздние компьютерщики (было это в 1958 г.), и, возможно, владел иностранными языками ;)

26th May 2010

10:35pm: Nova Ek! 3.9 | Новый Ek! 3.9
[eo]
Laŭ peto de [info]slobin@lj:
3.9 (26-maj-2010):
- Ek nun ignoras regoklavojn (kiel sagoklavoj, PgUp/PgDn ktp) por ke en la reĝimo «rapida tajpado» ne okazu bremsado de ludoj (kiel «Dua Vivo»).

[ru]
По просьбе [info]slobin@lj:
3.9 (26-мая-2010):
- Ek теперь игнорирует управляющие клавиши (стрелки, PgUp/PgDn и т.п.) чтобы в режиме «быстрая печать» не было тормозов в играх (типа «Second Life»).

http://www.esperanto.mv.ru/Ek/index.html

4th March 2010

10:33am: До пенсии осталось 14 лет...
(Если, конечно, тогда ещё будет пенсия...)

Программа, над которой я работаю уже год и три месяца, близка к введению в тестовую эксплуатацию. Поэтому у нас очередной аврал — как всегда, полезли неожиданные глюки плюс в последний момент объявились новые фичи, без которых работать ну никак невозможно. В общем, сегодня я сижу и пашу, хотя хотел было забить. Как мне надоело программирование, кто бы знал... Да и вообще работа как таковая (отчуждённый труд), когда я вынужден заниматься не тем, чего я хочу. А тем, чего я хочу, я заниматься не могу — из-за того, что всё время уходит на работу и домашние заботы. На рабочем месте я для себя на компе едва ли успеваю что-то сделать, т.к. надо вкалывать, а дома доступ к компу ограниченный, ибо надо с дитём посидеть, дать жене посидеть за компом, да и вообще сил уже не остаётся...

Обидно ещё, что никак не могу добраться до электронных книг (на первой очереди — 5 томов Плеханова). Я и так-то лишь с трудом могу читать книги с экрана, а принимая во внимание вышесказанное — вообще никак. Заказал себе было на озоне e-ink-читалку, так ведь облом: после почти месяца ожидания прислали сообщение, что поставщик не прислал девайс, деньги вернут и т.п. Так, видимо, и придётся оставаться чукчей-писателем :(

Ну, а под катом — несколько скриншотов моей многострадальной программы (суммарный размер картинок небольшой — где-то 300 Кб).

Серверная часть написана на Java с использованием фреймворка mina, плюс несколько небольших скриптов на php в качестве прокси (если будут тормозить, перепишу на C под fast-cgi, но пока проблем они не вызывают). База данных — MySQL (но в будущем планируется переход на PostgreSQL).

Клиентская часть (работающая в браузере) написана на Java с использованием smartGWT (GWT — Google Web Toolkit — это, проще говоря, компилятор с Java на JavaScript; smartGWT — это к GWT добавили smartClient — мощную javascript-овскую библиотеку виджетов).

Скриншоты... )

23rd November 2009

3:59pm: Ek! 3.8
Сабж:
3.8 (23-nov-2009):
- La nova reĝimo de unikoda enmeto iĝis malŝaltebla ("Rapida tajpado"), kvankam ŝaltita defaŭlte. Ĝi estas malŝaltinda okaze de konfliktoj kun programoj, samkiel Ek, interkaptantaj klavaran enmeton, ekzemple, Punto Switcher.

3.8 (23-ноя-2009):
- Новый режим юникодного ввода стал отключаемым (опция «Быстрая печать»), хотя и включённым по умолчанию. Его желательно отключать в случае конфликтов с программами, так же как Ek, перехватывающими клавиатурный ввод, например, Punto Switcher.

Добавлю ещё, что существуют неплохие альтернативы Punto Switcher, с которыми Ek не конфликтует: Key Switcher и Orfo Switcher. Рекомендую использовать их и не компостировать мне мозги ;)

19th November 2009

8:13pm: Ek! 3.7
Поправил кое-что в в Ek!, а именно:
  • Korektita: okazadis prokrastoj de enmeto de ĉapelitaj literoj dum rapida tajpado (do ili aperadis en malĝusta ordo). Por eviti tion mi mem en unikoda reĝimo transsendas ĉiujn literojn, ne nur ĉapelitajn, en la enmetan vicon. Tiel konserviĝas ĝusta ordo.
Или по-русски:
  • Исправлено: происходили задержки ввода букв с диакритиками при быстрой печати (так что они появлялись в неправильном порядке). Чтобы избежать этого, я в юникодном режиме сам пересылаю все буквы, не только с диакритиками, в очередь ввода. Таким образом сохраняется правильный порядок.
Качать здесь.

А я приболел. Надеюсь, не свиной грипп :)
Current Mood: температура 37.4

16th November 2009

12:51pm: Планы на ближайший год
Сейчас у меня какой-то затык в делах, всё почти остановилось (кроме работы). Но зато появились кое-какие идеи. В общем, напишу планы на ближайший год (главным образом, для себя, чтобы не забыть). Через год посмотрю, сколько из этого удалось реализовать.

Библиотечка марксизма:

1. Индекс ПСС Ленина. (Уже в работе, надеюсь завершить до нового года).
2. Расширенный индекс Собрания сочинений Маркса и Энгельса (до 40-х томов).
3. Несколько самых важных работ Ленина («Империализм как высшая стадия капитализма», «Государство и революция», «Материализм и эмпириокритицизм», может быть, ещё кое-что).
4. «Теории прибавочной стоимости» (4-й том «Капитала») Маркса.

Этого, думаю, на следующий год хватит :) Дальше будет видно.

Переводы на эсперанто:

1. Закончить «Блистающий мир» (ориентировочно весной — в начале или в конце весны, жизнь покажет).
2. «Дорога никуда».

Программирование:

1. Выпустить ещё одну версию Ek! (есть один глючок, плюс хочу реализовать одну дополнительную фичу).
2. Сделать пару плагинов к FAR 2 (хочу добавить к юникодному редактору FAR'а возможности, реализованные у меня в UniRed'е).
3. Переписать UniRed на движке SynEdit — исчезнет сразу куча проблем (правда, больше не будет работать под Win9x — ну и плевать). И, возможно, спортировать его под Lazarus.

(Долгое время, лет 5, я не мог без отвращения думать о программировании «для души» (т.е. не по работе) — до такой степени мне осточертело программирование собственно на работе. Но неожиданно в последний месяц у меня прорезалось какое-то вдохновение в этой области. Не знаю, долго ли оно продержится... Но выше я указал идеи, которые у меня сейчас вертятся в голове. Может быть, удастся их реализовать).

3rd November 2009

4:23pm: давненько не брал я в руки шашек...

Решил тряхнуть стариной: обновил (после почти 5-летней паузы) свою широко известную в узких кругах программу Ek! — эсперантизатор виндовой клавиатуры.

Нового там собственно вот что:
3.6 (3-nov-2009): Ŝanĝita la meĥanismo de sendo de unikoda signo; nun ĝi uzas SendInput anstataŭ PostMessageW. Pro tio EK korekte funkcias kun unikodaj konzolaj programoj (kiel FAR 2.0). Probable malaperos aliaj problemoj (pri kiuj oni de tempo al tempo raportas, sed mi ne povas ilin reprodukti), sed verŝajne EK ne plu funkcios sub Vindozo 9x/ME.

Или на общепонятном ;) языке:
3.6 (3-ноя-2009): Изменён механизм посылки юникодного символа; теперь он использует SendInput вместо PostMessageW. Благодаря этому EK корректно работает с юникодными консольными программами (как FAR 2.0). Вероятно исчезнут также другие проблемы (о которых мне время от времени сообщают, но я не могу их воспроизвести), но скорее всего EK больше не будет работать под Windows 9x/ME.

Качать отсюда. Исходники там же.

UPD. Как выяснилось, с FAR 2.0 Ek 3.6 работает только при использовании ConEmu (это такой эмулятор консоли). Ну и ладно. А раньше-то вообще не работал :)

UPD 2. Подправил кое-что, версия 3.6.1 лежит там же. И (вы таки будете смеяться) под Win98 она тоже работает :)
Current Mood: привыкли руки к топорам...

22nd August 2009

12:26pm: отпуск, работа и вообще
Наконец-то я в отпуске. Чувствую себя выжатым лимоном. Похоже, ещё и погода влияет — как-то мне нехорошо; но и поработал под конец очень напряжённо. В последний день в проекте вылезли серьёзнейшие глюки в самом ядре (в серверной части), причём глюки очень трудноотлавливаемые, связанные с параллельной обработкой. Как только начинаешь ходить в отладчике, или даже вставляешь запись в лог — всё начинает нормально работать (потому что отладчик или вывод в лог отрубают всю параллельность), а в штатном режиме — полный глюконат :( Провозился всю пятницу, так ничего и не нашёл. Ну и плевать. После отпуска разберусь.

К слову, о программировании. Недавно случайно набрёл на очень интересный язык: Scala. См. также здесь. Ей-богу, он мне нравится. Надо будет поизучать. Может, даже попробую на нём что-нибудь сделать. Но, конечно, после отпуска. (Кстати, о пользе моего хобби — выдумывания языков программирования: кое-что из того, что я сам напридумывал (и отчасти отказался, т.к. не смог довести до конца), в этом языке есть. Уже не в первый раз я с таким сталкиваюсь. Так что моё хобби помогает мне быстро понять новые концепции программирования, т.к. я их отчасти уже сам придумал, или, по крайней мере, обдумывал возможные пути решения соответствующих проблем. Так, например, было с замыканиями).

И о переводе. В переводе «Золотой цепи» осталось вычитать (третьим чтением) несколько глав. В принципе работа на два-три дня, но — см. выше — я сейчас, как выжатый лимон. Так что возможно с публикацией немного задержусь.

20th June 2009

10:31pm: сразу обо всём
Напишу сразу обо всём, чтобы не плодить несколько тематических записей.

1. Сегодня отпраздновали 2 года Гоше. Может быть, позже выложу пару фотографий, если будет время.

2. Неделю назад после более полугода активного программирования на Яве открыл в ней фичу, о которой совершенно не знал, а именно: блок инициализации в классе. В обычных классах он особо не нужен, т.к. есть конструкторы (вероятно поэтому некоторые учебники о нём умалчивают, в частности у Шилдта я этого не нашёл), но они очень полезны в анонимных классах. Т.е. можно написать вместо
final FormItem fieldName = new TextItem();
fieldName.setShowDisabled(false);
fieldName.setWidth("*");
fieldName.setName("name");
fieldName.setTitle(«Фирма»);
fieldName.setHeight(26);
вот так:
final FormItem fieldName = new TextItem() {{
    setShowDisabled(false);
    setWidth("*");
    setName("name");
    setTitle(«Фирма»);
    setHeight(26);
}};
т.е. избежать муторного многократного повторения имени объекта. Вот ведь блин, а я-то полгода мучался и плевался на то, что у Явы нет оператора with! Как говорится, век живи — век учись — и дураком помрёшь :)

3. Работаю над библиотечкой. Близка к завершению работа над «Анти-Дюрингом». Осталось самое муторное — предметный указатель. И хочу ещё на его основе сделать «Развитие социализма от утопии к науке» в виде отдельной «книжки». В общем, работы ещё недели на две.

4. Добрался наконец-то до книги Каутского «Происхождение христианства» (читаю в бумажном виде). Начало — описание общей обстановки в рабовладельческом Риме перед возникновением христианства — очень интересное. Может, это только на мой дилетантский взгляд (я не очень силён в истории), но для меня там было несколько новых фактов и идей. Буду читать дальше, хотя особо некогда (ну, френды понимают, почему).

5. Был неприятно удивлён обсуждением у [info]lex-kravetski@lj специальной теории относительности: здесь, здесь и здесь. Я почему-то думал, что он более в курсе. Я в детстве и юности (советской) очень интересовался СТО (и квантовой механикой, к слову, но не про это речь), прочёл массу популярных книжек и пару учебников на эти темы. Конечно, формулы и многие детали я начисто забыл за ненадобностью, поэтому и не встревал в дискуссию. Но дилетантство мне видно невооружённым глазом, причём ладно дилетантство само по себе, но вот когда на этом уровне начинают критиковать общепринятую теорию...

Но у [info]lex-kravetski@lj ещё терпимо, а вот помню лет 5 назад, когда я ещё тусовался на форуме КПРФ, вылезло несколько «кефирщиков» (приверженцев теории эфира) с бешеной критикой СТО, причём самое отвратное, что один критиковал её, как он думал, с точки зрения диамата. Якобы СТО — воплощение махизма, идеализма, релятивизма (в философском смысле) и ещё чёрт знает чего. Причём было видно, что СТО он не понимает совершенно. Другой вообще на дух не переносил Эйнштейна, потому что он был еврей (ну, тут вообще был клинический случай, но и первый не намного лучше).

Грустно это всё. Нет, я понимаю, что критика в науке необходима. Но за 100 лет в СТО так никто и не нашёл внутренних противоречий (все кажущиеся противоречия — всего лишь результат непонимания), а также противоречий с экспериментами. Это вовсе не означает, что СТО — единственно возможный способ объяснения явлений природы, но пока что никто не придумал другого способа, который объяснял бы их лучше (несмотря на заявления кефирщиков). До тех пор СТО остаётся рабочей теорией, хоть вы разбейте себе башку об стену. И тот факт, что кое-какие положения СТО нельзя непосредственно проверить экспериментом, ничуть не опровергает теорию. Главное, что следствия её проверяемы. Стоимость вон тоже в чистом виде измерить затруднительно... Я уж не говорю о пси-функции в квантовой механике (наблюдаем только её квадрат, а она сама — комплексное число)... И идеализм в этом могут видеть только твердолобые вульгарные материалисты-реакционеры. Для материалистов-диалектиков критика СТО не с позиций физики как таковой, а с позиций «философии» — позор и возрождение метафизики самого дурного пошиба. Я так думаю.

P.S. Пока писал всё это, забыл, что поставил вариться рыбу для кота, вода выкипела, и рыба сгорела. Вспомнил, только когда почувствовал запах горелого. Вот же ж блин, склероз... Бедный кот, останется завтра без завтрака :( Хотя может удастся наковырять жареные кусочки :)

23rd April 2009

9:32am: Язык программирования моей мечты
Поскольку я сейчас нездоров, серьёзными делами заниматься нет сил, то опубликую всё-таки мои наброски "языка программирования моей мечты", о котором я уже упоминал. Это именно наброски, конспект — скорее для себя самого, чтобы не забыть. Я не стал оформлять в БНФ, думаю, опытным программистам достаточно неформального описания. Ну и, конечно, далеко не все вопросы проработаны, есть кое-какие вещи, которые ещё не устоялись (да и вообще этот "проект" регулярно подвергается реформам — надо же мне чем-то заниматься, когда стою в очередях ;))

Да, и не стоит ждать никаких откровений: все использованные мной идеи придуманы давным-давно, я просто соединил их вместе.

UPD: Добавил много забытого.

только для программистов )

14th March 2009

10:36am: Знаменитый глюк
Поскольку писать мне пока особо не о чем, и к тому же я нахожусь в некотором отупении от (заканчивающейся) простуды, то пост будет программистский.

Недавно в комментах у [info]rexy-craxy@lj я упомянул о знаменитой ошибке в программе на FORTRAN IV, из-за которой не то НАСА потеряло спутник, не то американские военные — ракету (не помню точно). Расскажу поподробнее.

Вот кусок программы на Фортране:
        DO 20 I=1,5
        ... какие-то операторы ...
20      CONTINUE

Это цикл с переменной-счётчиком I, принимающей значения от 1 до 5 (а 20 — это метка последнего оператора тела цикла, в данном случае пустого оператора CONTINUE). Тут всё нормально.

Но вспомним, что запятая и точка на клавиатуре расположены рядом. И вот однажды программист опечатывается и вместо запятой вводит точку:

        DO 20 I=1.5
        ... какие-то операторы ...
20      CONTINUE

Как ни покажется странным, этот кусок нормально проходит компиляцию. Почему? Да потому, что 1) в Фортране пробелы внутри идентификаторов ничего не значат, 2) переменные в Фортране можно не объявлять (их тип определяется по первой букве идентификатора). В результате первая строка теперь означает присваивание числа 1.5 переменной DO20I (типа FLOAT).

В результате происходит следующее: присваивание числа некоей далее не используемой переменой, выполнение операторов один раз (к тому же переменной I, вероятно, уже было выше присвоено какое-то значение, так что ошибки не происходит) и... всё. Т. е. вместо цикла получаем однократное выполнение тела цикла со "случайным" значением переменной-счётчика.

Компилятор на такую ошибку не ругается. Ошибок времени выполнения тоже не происходит. Представьте, насколько трудно отловить такую ошибку, особенно при тогдашней (60-х годов) технике отладки программ (а если это всё было на перфокартах?!)

Вот так вот ошибка, допущенная при разработке синтаксиса языка, провоцирует трудноотлавливаемые ошибки при программировании. И программиста, допустившего такую ошибку, просто грех ругать чайником и т.п. Ему только посочувствовать можно. Я считаю, что в таком случае не программист виноват, а язык программирования (точнее, его разработчики). (Кстати, чтобы смягчить эффект, ЕМНИП, в FORTRAN-77 разрешили писать запятую перед переменной-счётчиком: DO 20, I=1,5; если запятую не писать, то компилятор выдавал предупреждение).

То же самое происходит и в C/C++. Но об этом я умолчу, т. к. фанаты C воспринимают наезд на своего кумира весьма болезненно :)

Практический вывод для меня такой: никогда не пренебрегать предупреждениями (warning'ами) компилятора. Современные компиляторы пытаются исправить такие ошибки в синтаксисе языка тем, что сомнительные (но допустимые с точки зрения синтаксиса) места пропускают, но помечают предупреждением. Так вот, я всегда стремлюсь не оставлять ни одного warning'а в своих программах — на любом языке. Даже если это всего лишь предупреждение о неиспользуемой переменной. Что и рекомендую всем.

30th March 2008

9:11pm: Частая проблема с Ek / Ofta problemo kun Ek
(По-русски см. ниже)

Esperante. Ofte oni plendas al mi pri jena problemo en mia programo Ek (esperanta klavaro): en iu programo anstataŭ enigo de ĉapelita litero (plej ofte de ĉ) okazas forviŝo de antaŭe enigita litero. Tion kaŭzas tio, ke por kongruo kun Vindozo 95/98/ME Ek uzas specialan kaŝitan klavararanĝon, en kiu al AltGr+C (aŭ Alt+Ctrl+C) estas atribuita litero ĉ, kaj respektive al AltGr+G — ĝ ktp. Sed en iuj programoj tiaj literkombinoj plenumas internajn funkciojn, tial ili estas "glutataj" (kaj ĉar Ek funkcias tiel, ke unue oni tajpas "c", kaj poste ĉe enigo de postfikso "x" okazas forviŝo de la "c" kaj enigo anstataŭ ĝi de "ĉ", do pro nefunkcio de la "ĉ" restas nur la forviŝo).

Definitiva solvo de la problemo: Ĉar la linio Vindozo 95/98/ME praktike mortis, do oni povas uzi rekte unikodan reĝimon, kiu funkcias nur en la linio Vindozo NT/2000/XP/Vista. Por tio klaku per la dekstra musbutono sur la piktogramo de Ek en la taskopleto, el aperinta menuo elektu Agordu, en aperinta fenestro elektu langeton Instalo, kaj tie en la maldekstra panelo de elekto de kodpaĝo elektu neniu, poste premu la butonon Bone. Eble, post tio la programo petos restartigi la operaciumon.

Post tio Ek ne plu uzos anstataŭigon de klavararanĝo kaj transdonados en aplikprogramojn senpere unikodajn kodonojn de la esperantaj ĉapelitaj literoj. La menciita problemo devos malaperi.

По-русски. Часто мне жалуются на такую проблему в моей программе Ek (эсперантизатор клавиатуры): в той или иной программе вместо ввода буквы с диакритикой (чаще всего ĉ) происходит удаление ранее введённой буквы. Это вызвано тем, что для совместимости с Windows 95/98/ME Ek использует специальную скрытую раскладку клавиатуры, в которой на AltGr+C (или Alt+Ctrl+C) назначена буква ĉ, и соответственно на AltGr+G — ĝ и т.д. Но в некоторых программах такие сочетания клавиш выполняют служебные функции, поэтому они "проглатываются" (а поскольку Ek устроен так, что сначала вводится "с", а затем при вводе постфикса "x" происходит забой "c" и ввод вместо него "ĉ", то из-за несрабатывания "ĉ" остаётся только забой).

Кардинальное решение проблемы:
Поскольку линия Windows 95/98/ME практически умерла, то можно использовать непосредственно юникодный режим, который работает только в линии Windows NT/2000/XP/Vista. Для этого нажмите правой кнопкой мыши на иконке Ek в трее, из появившегося меню выберите Agordu (Настроить), в появившемся окошке выберите закладку Instalo (Установка) и там в левой панели выбора кодовой страницы выберите neniu (никакая), после чего нажмите кнопку Bone (дословно "Хорошо", т.е. Принять). Возможно, после этого программа попросит перезагрузить систему.

После этого Ek не будет использовать подмену раскладки клавиатуры и будет передавать в приложения непосредственно юникодные коды эсперантских букв с диакритикой. Упомянутая проблема должна исчезнуть.

19th March 2008

9:33am: Программистское
В последнее время пашу как папа Карло, его лошадь и его собака, вместе взятые. PHP, HTML, CSS, JavaScript, AJAX и MySQL уже по ночам снятся...

В связи с этим вспомнились две моих "любимых" глюкофичи в PHP как в языке.

На первую я напоролся месяца три назад. Пишу примерно следующее:
$a=false;
$b=true;
$a=$a or $b;
(про && и || я знаю, но как старый паскалист, предпочитаю and и or этим сишным закорючкам)... и получаю $a==false !!! Я потратил час, чтобы локализовать это место, и ещё полчаса бился головой о клавиатуру, думая, что я сошёл с ума. Чуть ли не с детства знаю, что false or true==true, а тут на́ тебе... В конце концов, как всегда, пришлось залезть в документацию — и тут выяснилось, что приоритет операций and и or ниже приоритета операции присваивания! Т.е. выполняется следующее:
($a=$a) or $b;
т.е. фактически не выполняется ничего. Мда. Насколько я понимаю, такой приоритет для and и or позаимствован из Perl'а, чтобы можно было в перловском стиле писать:
сделать_чего-то_там or die('капец');
На мой взгляд, такая имитация естественного (английского) языка в языке программирования совершенно ни к чему (как вспомню Кобол, так вздрогну). Языки программирования должны следовать логике, а не имитировать человеческий язык.

(Кстати, приоритеты and и or ещё, оказывается, равны, т.е. в сложных выражениях скобки надо ставить).

Ну а вторую глюкофичу я знаю много-много лет, но напарываюсь на неё регулярно. Это старая ловушка всех си-образных языков. Если случайно в условии вместо == написать =, то компилятор/интерпретатор это спокойно проглотит и послушно выполнит присваивание, а потом результат сравнит с нулём. Стоит где-то просто опечататься, и часы увлекательного вылавливания глюка обеспечены :( В современных компиляторах C/C++ на такую конструкцию по крайней мере выдаётся предупреждение, а в более современных языках (Java, C#, D) так вообще невозможно написать (насколько я знаю), но PHP это проглатывает незамеченно, как компиляторы C в старые добрые времена... Вот за такие штуки я C и си-образный синтаксис и не люблю. Я, как старый паскалист, считаю, что выражение — это выражение, а присваивание — это оператор, и не фиг смешивать одно с другим.

Вот, поворчал, и вроде как полегчало :)
Current Mood: пашу
Powered by LJ.Rossia.org