Про московскую архитектуру и общественную активность

Тут, кстати, на сайте Правительства Москвы (это такой город на северо-запад от Люберец) голосовалку повесили (в правом нижнем углу странички) с такой формулировкой: «Как вы считаете, как необходимо поступать со старыми районами столицы?» и четырьмя вариантами ответа:

— Реконструировать и по возможности сохранять уникальность архитектуры
— Сносить старые здания и строить новые, чтобы город обновлялся
— Создавать заповедники в старых районах столицы, чтобы полностью сохранить старую Москву
— Затрудняюсь ответить

Естественно, отдельные особо активные москвичи тут же ринулись накручивать третий пункт, про заповедники, а организаторы голым сования — первый. Мне лично голосовалка по барабану, гораздо интересней «позиция общественности». Как водится, начался обычный вой про уничтожение некой «старой Москвы» (которую большинство из вопящих не видели). Если че, то немалая часть этой «старой Москвы» — это всякие дореволюционные бараки, которые кто-то обозвал «памятниками архитектуры» лишь за то, что они застали Наполеона. Как говорил Кутузов, чтобы спасти Россию, надо сжечь Москву. Не получилось, и теперь москвичи и понаехавшие вынуждены наблюдать двухэтажные сараи 17.. года постройки и ездить по бестолково спланированным переулкам. Чтобы не быть голословным — вот фотография некоего «памятника архитектуры» в Замоскворечье, который активно защищает так называемый «Архнадзор» (за авторством [info]zubkoff):

kadashi

Вообще, касательно «Архнадзора». Лично у меня по поводу этой организации мнение двоякое. Я согласен, что очень часто под «реконструкцией» понимается чуть ли не снос здания и строительство «новодела», и что это — порочная практика, но с другой стороны… Помните сказку Толстого про пастушка-приколиста, который кричал «Волк! Волк!»? «Архнадзор» проявляет себя, как такой «пастушок» — вспомним те же Кадаши или «Дачу Муромцева», которая никакая не дореволюционная дача депутата Госдумы, а деревянный барак 1960-х годов постройки (это к вопросу «как заебато было в СССР», если че), где проживают некие мутные граждане (в надежде, наверное, на получение муниципальной квартиры в том же административном округе). Ах да, есть же еще и здание некоего ПТУ на территории бывшего Хитровского рынка! Читали Гиляровского или на худой конец, Акунина? Как вам идейка «восстановления исторического облика» Хитровки (с воровскими притонами и бомжами)?

В общем, впечатление создается такое, что «Архнадзор» выполняет чьи-то заказы по срыву строительных проектов конкурентов. Вообще, «общественные активисты» — очень хорошая штука, «легковоспламеняющийся материал». Помнится, года три назад где-то на Ленинском проспекте начали очередную «точечную застройку». Примитивный «вброс» с расклейкой по району объявлений о «радиоактивном могильнике» на Том Самом месте не прошел, и тогда были подтянуты силы блоггеров. Надо ли напоминать, что тогда написать в жежешечке о своем походе на очередной Марш Несогласных было хорошим тоном? А если уж удалось получить дубинкой по почкам или «кованым нацистским сапогом» (с) под зад — то ходивший моментально превращался в мега-героя? Удалось собрать приличный по численности митинг, подтянулись нацболы, после чего милиция тупо скрутила особо активных участников. Вот пара ссылочек от «активистов»:

http://nikko57.livejournal.com/100171.html
http://bljakhin-mukher.livejournal.com/46940.html

Лично меня еще слегка удивляет количество учеников 57 школы, задержанных на митинге. Особо про это говорить не буду, даже на луркморе заметили, что «пятидесятисемит» — «википедически значимый» в интернетах и в реале персонаж.

Кстати, насчет того, что «В Англии ружья кирпичом не чистят». Подкину сцылочку на википедическую статью «Брюсселизация«. Кстати, ничего катастрофического с Брюсселем так и не сделали.

PS Лично мое мнение, что надо сделать с Москвой. Надо отгородить центр (в пределах, к примеру, Садового кольца) этого так называемого города бетонной стеной с автоматическими пулеметными турелями, и никого внутрь не впускать. Выходы из метро перекрыть, внутри ввести патрулирование силами роботов-полицаев. Зато НИ ОДНА СВОЛОЧЬ не покусится на СВЯТОЕ — сарай для холопов купца Косопузова, памятник архитектуры XVI века! Для особых эстетов организовывать воздушные экскурсии на бомбардировщике.

tu95

Пост проплачен КБ Туполева и организаторами полетов на Ту-95.

Хорошие фотографии со шпиля ГЗ МГУ

Лет пять назад в жежешечке был очень популярен тупейший тест на «чтение мыслей». Выглядело все на удивление тупо — на экране был нарисован синий квадратик с подписью «Прижмите к квадратику палец и нажмите на кнопку. Чем сильнее вы прижимаете палец, тем информацию точнее». Затем выдавалась очень «точная» информация — «Молодой человек, вы оптимист и это радует!», а также набор разных «фактов».

Естественно, никакого чтения мыслей не было, да и продавливать монитор совершенно незачем — все эти факты элементарно «извлекались» из ЖЖшного профиля и последних записей. Пол определяется элементарно (хотя знаю нескольких жж-юзерш, пишущих о себе в мужском роде. Считаю сие половым извращением). Немного сложнее с оптимизмом/пессимизмом. Здесь просто подсчитывается отношение «позитивных» слов и выражений (типа котик, хомячок и тому подобных) к «негативным» («… сказал поручик Ржевский и грязно выругался»). Точно так же определялись «факты». Например, встретив в записях одиноко стоящую заглавную латинскую букву «C», автомат радостно сообщал «Вы знаете, кто такие Керниган и Ритчи!» Надо ли говорить, что употребляющие не к месту французские фразы индивидуумы нарывались на ложное срабатывание с «C’est le con» или как там правильно.

Для тех же, кто указал в профиле в качестве учебного заведения МГУ, у робота была припасена фраза «Вы любите смотреть на высотку МГУ». Думаю, тут ложных срабатываний не было. А вот вы знаете, что in Soviet Russia, ГЗ МГУ смотрит на вас нету там ничего, ничего нету.

stadions

По на водке [info]infowatch — даю ссылку на ЖЖ [info]ezh_1, где выложены довольно старые фотографии со шпиля ГЗ. Если че, то официально в здании 33 этажа, сравнительно легкодоступно из них 28. Этажи с 28 по 36 (я же говорю, 33 этажа это официально) для доступа закрыты. Но если нельзя, но очень хочется… например, можно поступить на физфак — почитайте надписи на дверях :)

Про PHP и базы данных

В который раз убеждаюсь, что изложение SQL в «непрофильных» книжках по всякому там PHP приводит разве что к бесконтрольному распространению похапешных кодеров.

Недавно наблюдал замечательное — из базы данных извлекаются все записи таблицы (SELECT * FROM foo.bar;), затем сортируются пузырьком (!) в PHP-скрипте (про usort() аффтар был не в курсе), а затем выводятся те из них, которые имеют значение некоторого числового поля, равное 0 и 1. Про существование WHERE и ORDER BY мега-похапешник был не в курсе.

Собственно, осуждать похапешника и обвинять того в быдлокодерстве не стоит — я и сам был таким, делал сайты на самописном подобии CMS. Все это даже работало — с посещаемостью два недочеловека в день и не такое работать будет. Впрочем, некое «оправдание» у меня есть — я «изучал» SQL и PHP по статьям в журнале «Мурзилка» «Ксакеп». С гордостью могу заявить, что никаким SQL Injection у меня никогда не пахло! Впрочем, больше ничего хорошего сказать нельзя. Чему можно научиться вот из такого?

$sql2="select * from xforum";
$res2=mysql_query($sql2);
$a=mysql_num_rows($res2); #считаем количество тем в форуме
$b=ceil($a/30); # считаем количество страниц с результатами запроса
echo "Страницы: "; for ($i=1; $i<=$b; $i++) {if ($i!=$page) {echo "<a href=forum.php?page=$i>";} echo "$i"; if ($i!=$page) {echo "</a>";} echo " ";}
# выводим в цикле список доступных страниц с сообщениями
$sql="select * from xforum order by 'pid' desc limit $from,29"; #запрос на постраничный вывод дискуссий форума
$res=mysql_query($sql);

Собственно, самые продвинутые похапешники, которые даже знают «классические» алгоритмы, могут не заморачиваться со вторым запросом, а, как я уже говорил, отсортировать все «пузырьком». А представляете, что творится, когда в таблице xforum хранятся не короткие заголовки тем, а что-то более содержательное?

Я не говорю про всякое сложное типа «нормальных форм», но почему-то большинство похапешников совершенно не представляют себе, что такое SQL и что он может. Самое главное — это не мешает им считать себя большими специалистами по базам данных (умеют написать UPDATE и SELECT). Не так давно видел «критику» одного популярного вордпрессовского плагина — человек немного потупил в код, переписал пару SQL-запросов, убрал «сортировку пузырьком» — и добился весьма существенного роста производительности.

И эти люди запрещают нам ковыряться в носу :)

UPD Все было еще круче! Сортировка пузырьком понадобилась ровно по той причине, что чел просто не разобрался, как использовать usort(). Интересно, а лет пятнадцать назад, такие же монстры писали на C?

Люберецкий сепаратизм поднимает голову

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

А по каналу «Россия 24» снова показывают рекламный ролик фирмы Apple.

separatist

В качестве картинки для привлечения внимания — картина, можно сказать, великого русского художника Васи Ложкина ([info]vasya_lozhkin) «Ховринские сепаратисты нападают на колонну войск правительства Москвы«

Про маркер и изготовление плат

По причине патологической лени изготовил плату адаптера UART-RS232 (для вогоплеера) полностью при помощи маркера ( а не «лазерным утюгом», как обычно).

Что могу сказать? Дорожки шириной порядка 1,5 мм рисовать можно. Для несложных схем на DIP-микросхемах или транзисторах КТ315 подходит. В хлорном железе маркер немного смывается, дорожки подтравливает. Лучше обводить дорожку несколько раз, а то тонкий слой чернил держится плохо. В целом — приемлемо.

Осталось найти время для поездки за MAX3232.

Замена Hyper Terminal

Вот, кстати, на правах бреда.

А какие у нас есть современные опенсорсные программы для работы с COM-терминалом? Нужно: эмуляция «цветных» терминалов (как минимум ANSI), возможность отправки файлов (как минимум Xmodem, Zmodem, Kermit и «вставка» текстового файла). В общем, наверное, на этом все.

SSH и Telnet желательны, но не необходимы — на это есть PuTTY.

Про комменты

Вот напишешь чего умное — и ноль комментов. А запостишь бред — так десяток-полтора, даже с моей мизерной посещаемостью.

Киньте идей, по которым бредятинки можно попридумывать, а то самому интересно :)

Про линуксячий софт

Вот, кстати, мнение за авторством товарища dsa:

Все программы надо ставить из официальных репозитариев соответсвующих дистрибутивов. Если нужной программы в репозитарии нет, то да – либо закономерные пляски с бубном, либо “в следующий раз поставь дебиан”.

Это у линуксоидов называется «свободой» и «децентрализацией». Эти же люди ругают AppStore. Они же клянут Билла Гейтса за то, что название программы для Windows надо ввести в гугле бинге, а затем — скачать setup.exe с сайта производителя.

Чем репозиторий какого-то дистрибутива отличается от аппстора — понять затрудняюсь. Демократия — это диктатура главного демократа.

Знаете, почему сдохла иконка «Установка и удаление программ» из Windows 95? По очень простой причине — в Windows действительно присутствует свобода пользователя ставить программы любым способом и свобода разработчика запаковать программу в любой «дистрибутив» — от zip-архива до наикрутейшего InstallShield.

ИМХО, при дальнейшей коммерциализации линуксообразных ОС мы увидим и удаление программ конкурентов из репозиториев, и намеренную задержку их появления, и вообще — войны не будет, но будет та-а-акая борьба за мир!

Про эмуляторы терминала

Вот лично я не понимаю, отчего для работы с девайсами по COM-порту все стремятся использовать PuTTY. Да, опенсорс, free software и еще туда-сюда, но…

Буду очень благодарен тому, кто покажет, как в PuTTY можно отправить по COM-порту файл через Kermit или ZMODEM. Это умел даже древний-древний Telemax из комплекта Norton Commander, не говоря уже о Hyper Terminal. Кстати, последний, хоть и не включен в Windows 7, прекрасно работает в нем, будучи жестоко выдранным из дистрибутива кошерной XP.

Не выходит каменный цветок

MAX232 завелась от пониженного напряжения, но…

Как и предупреждал DI HALT и другие комментаторы в [info]ru_radio_electr, работать на высоких скоростях отказалась. А для меня это означает, что плюющийся отладочной инфой на адской скорости в 57600 бод вогоплеер так и останется «немым». Ехать на Митино мне по-прежнему лень, так что ближайший месяц буду платонически любить pavo через эмулятор.

Про U-Boot

Кстати, посмотрел документацию сабжа. Весьма кошерная тулза, ничуть не хуже USBBoot, прошитого в Ingenic-овские процессоры «по умолчанию». Если зашить во флешку только U-Boot, то можно вполне прилично работать с вогоплеером через COM-порт (например, «зашить» туда Linux). Вот только одна вещь пока мешает — я не уверен, можно ли использовать в качестве конвертера «логических» уровней MAX232 — эта микросхема согласно даташиту работает от 5В, а у нас на плате только 3,7В. Переться на Митино за повышающим преобразователем или MAX3232 (те же яйца, только трехвольтовые) мне неохота, так что буду экспериментировать.

toolchain для Ingenic’овских плат

Я уже успел рассказать людям, что занимаюсь портированием Minix 3 на Ingenic’овские процессоры, поэтому мне не удастся сделать вид, что я «пальцы крестиком держал» и ничего толком не делал. Надеюсь, что читающие этот пост не по диагонали уже прочитали всю китайскую документацию, и им не надо объяснять, где искать файл mips_toolchain_guide_EN.pdf. Больших откровений не будет, пишу я скорее для себя, чтобы не забыть последовательность правильных действий.

Итак, первоочередная задача — получить работающий кросс-компилятор, способный собрать исполняемые файлы для «китайского» MIPS. Задача осложнена тем, что занимается этим закоренелый виндузятник. Впрочем, для закоренелых виндузятников имеется такая замечательная вещь, как Cygwin.

Итак, начинаем с установки Cygwin-а. Это аналогичный MSYS «эмулятор» POSIX-совместимой системы, чем-то приглянувшийся китайцам — все утилиты из «комплекта разработчика» для Ingenic’а скомпилированы для Cygwin. Установка довольно проста, внесу от себя лишь одно дополнение — сразу же поставьте пакеты make и gcc. Они понадобятся при компиляции U-Boot.

Второй шаг — установка кросс-компилятора. Берем файл mipsel-gcc4.1-cygwin-nopic.tar.bz2 и распаковываем его в какую-нибудь директорию. Дальше добавляем ее в PATH:

export PATH='/some/path/mipseltools-v-1-2-3/bin':$PATH

После этого можно проверить его работоспособность «китайским» методом, с помощью компиляции helloworld.c — и наверное, даже нужно, подробнее читайте в mips_toolchain_guide_EN.pdf, а мы сделаем один шаг дальше — попробуем собрать U-Boot. Последняя его версия с правками от китайцев и «наших» разработчиков лежит в файловом архиве VoGeeky.

Я буду собирать версию всей этой гадости для pavo, поэтому выполняем команды

make pavo_nand_config
make

По какой-то мне пока непонятной причине некорректно работает утилита, создающая заголовочный файл с картинкой. make вываливается с ошибкой, если после нее попытаться продолжить, то ошибка возникнет в файле lcd.c. У меня не было желания разбираться с глюком, поэтому я пока обошел его так — добавил в конец файла include/bmplogo.h забытый #endif (и убрал оттуда сообщение об ошибке), а в файле common/lcd.c закомментировал все тело функции bitmap_plot().

После всех этих извращений U-Boot успешно собрался, а файл uboot-nand.bin прекрасно запустился в эмуляторе Pavo (только вот логотип не показал, что и логично).

Итак, я получил работающий toolchain, который может собирать софт для «голого» железа. Удивительно, но особых «подводных камней» не возникло. Дальше я немного поизвращаюсь на C для «голого» железа, без ОС, а затем вплотную займусь Minix’ом. Прежде всего придется продумать его загрузку. Я не хочу писать «вторичный загрузчик», работающий после U-Boot, но не хочу и переделывать «загрузочный образ» Minix. Наверное, это можно решить с помощью скрипта для U-Boot. Ну и bmp_logo.c подправлю, куда без него.