Записки программиста, обо всем и ни о чем. Но, наверное, больше профессионального.

2009-11-14

Продвигаем интернет-услуги, продвигаем

Благодаря terrakot-у, решил поглядеть, о чем это была

Рабочая встреча (президента) с Министром связи и массовых коммуникаций Игорем Щёголевым
9 ноября 2009 года, 12:30 Москва, Кремль

Я почикал фсякое, оставив самое вкусное (для меня):

...
Д.МЕДВЕДЕВ: Правильно. Чтобы потом не пришлось выкупать «кремлин.рф» или что-нибудь в таком духе у людей, не имеющих отношения к Кремлю.
...
И.ЩЁГОЛЕВ: Это будет почта в зоне «.рф», где гражданин по желанию сможет получить свой персональный электронный адрес и с него посылать запросы в госорганы (...). Это будет для нас достаточным идентификатором для общения с гражданином, (...).

Д.МЕДВЕДЕВ: То есть тем самым введение в обиход кириллических доменных имён, расширения «.рф», будет способствовать и более активному внедрению электронного правительства?

И.ЩЁГОЛЕВ: Совершенно верно, именно на это мы рассчитывали.
...
И.ЩЁГОЛЕВ: (...) на днях мы праздновали 80-летие радиостанции «Голос России», раньше она называлась иначе, это было иновещание, (...) поднимался вопрос о том, чтобы восстановить позиции России в тех странах, откуда это вещание ушло. (...).

Д.МЕДВЕДЕВ: (...) Но мы с Вами понимаем, что если восстанавливать, то на новом уровне. Длинноволновое вещание имеет определённые перспективы, (...) проще делать через существующий интернет-трафик или через другие цифровые технологии.

И.ЩЁГОЛЕВ: Да, интернет, FM, выработка нового цифрового стандарта – к сожалению, здесь мы только в самом начале пути.

Д.МЕДВЕДЕВ: Да, но это весь мир в начале пути, потому что, строго говоря, цифрового радио нигде в нормальном виде пока ещё нет.
...


kremlin.ru/news/5934

"Кремлин.рф" это круто. Если на кириллице, то почему не "Кремль.рф"? А если по уму, то вообще "Кремль.Москва.РФ".
Но это фигня, не сориентировался по быстрому, бывает.

Гораздо интереснее почта для граждан, вида "Пупкин Василий Петрович 37@госпочта.рф".
Министр, видимо предполагает, что такой ящик однозначно идентифицирует гражданина? А если этих Пупкиных В.П. пара сотен?
Министр, видимо предполагает, что в те моменты, когда гражданину нужна помощь чиновника, под рукой гражданина обязательно найдется кириллическая раскладка? (... а если вы не можете перевести телефон в режим тонального набора, как клиент вы нас не интересуете...) Хотя ктож заставит чиновника транслит разбирать, полюбому?
Непонятно, чего вообще огород городить? Чем плохи обычные ящики? Разве только для "способствования развитию электроправительства". Хотя, в целом, как идея, скорее хорошо чем плохо. А ящик почтовый выдавать вместе с паспортом. Ну и придется кому-то сделать веб-сервис, типа пунто-свитчера, чтобы можно было на клавиатуре с латиницей набить кириллические буквы в сообщении.

Ну и с "нет в мире цифрового радио в нормальном виде" я категорически не согласен. Каким требованиям должно удовлетворять "нормальное цифровое радиовещание"?

2009-11-13

PCRE, Perl-Compatible Regular Expressions

На лицо ужасные, добрые внутри. Это как раз про регулярные выражения. Читать их невозможно, только писать. Write-only.
А если вы умеете их писать, то ваша жись неимоверно облегчается, правда только тогда, когда вы заниметесь помногу обработкой текстов. Сисадмин или программер. Или очень технический писатель.

Термины
  • оператор – символы, используемые в регулярных выражениях; они управляют поиском, но не участвуют в совпадении.
  • совпадение – один или больше символов и операторов регулярного выражения, которые совпали с проверяемым текстом.
  • квантификатор – оператор регулярного выражения, определяющий количество экземпляров повторяющегося совпадения.
    • жадный (другое определение - «максимальный») – захватывает все доступные совпадения, после чего может их возвратить, если потребуется операторам справа. По умолчанию, все квантификаторы - «жадные».
    • не жадный (другое определение - «минимальный») – захватывает совпадение только в том случае, если нет совпадения справа.
    • захватывающий – жадный, никогда не возвращает захваченные совпадения.
  • последовательное совпадение – последовательность одинаковых совпадений.
Словарь операторов
  • символы
    • <символ> – печатный символ: буквы, цифры, знаки препинания и т.д.
    • . – произвольный символ
    • подстрока – литеральный (такой, в котором нет операторов) набор символов.
  • управление совпадением (квантификаторы)
    • * – ноль или больше последовательных совпадений
    • + – одно или больше последовательных совпадений
    • ? – ноль или одно совпадение
    • *? – не жадные ноль или больше последовательных совпадений
    • +? – не жадные одно или больше последовательных совпадений
    • *+ – захватывающие ноль или больше последовательных совпадений
    • ++ – захватывающие одно или больше последовательных совпадений
    • {n1,n2} – от n1 до n2 последовательных совпадений
    • {n} – ровно n совпадений
  • формирование последовательности – совпасть может только вся последовательность
    • ( – начнём захватывать совпадения в последовательность и сохраним её в памяти (сохраняющие скобки)
    • (?: – начнём захватывать совпадения в последовательность, но не сохраняем её (несохраняющие скобки)
    • ) – завершим захватывать совпадения.
    • | – альтернативная последовательность при отсутствии совпадения с последовательностью слева
  • наборы символов – совпадает любой из символов
    • [ – откроем набор символов
    • ] – закроем набор символов
    • - – укажем диапазон символов
    • ^ – набор содержит все символы, кроме перечисленных
  • позиционная проверка
    • (?= – начнём проверку на наличие совпадения справа
    • (?! – начнём проверку на отсутствие совпадения справа
    • (?< = – начнём проверку на наличие совпадения слева
    • (?<! – начнём проверку на отсутствие совпадения слева
    • ) – завершим проверку
  • ссылки на предыдущие совпадения
    • \0..\9 – порядковый номер последовательности в сохраняющих скобках


citforum.ru/internet/articles/regexp_tutorial


Статья хороша тем, что на примере решения не самой простой задачи (разбор HTML) наглядно дается методика составления регулярных выражений. А как их читать - не рассказано. Потому как их невозможно читать, их можно только расшифровывать :)

2009-11-12

form autocomplete

Веб страницы. Формы. Бывают такие формы, что заполнив и отправив их, очень не хочется узнать, что данные не дошли. Бывает, сеть отвалилась, сервер упал, серверный скрипт кривой и т.п. Если такое случилось, есть шанс, нажав "бэк" вернуться к форме и увидеть, что добрый браузер сохранил все, что вами понаписано.
Называется - автокомплит. Вернее, для такого поведения форм используется этот механизм.
Удобно.
А бывают формы такие, что автокомплит вреден. Типа, поисковые формы. Вы искали "рыбок", потом вбили "зимняя резина", поглазели на рекламу колес и нажали кнопу "бэк". И что вы видите? Автокомплит вписал "зимняя резина" на странице с перечнем ссылок на рыб.
Нехорошо-с.

Вот, на днях я с таким столкнулся. Что делать? Как быть? Коллективный разум знает.
Или резетить форму:
window.onunload=function(){for(var i=0;i<document.forms.length;i++){document.forms[i].reset()}}
или ставить нестандартный атрибут в форме
autocomplete="off"
Весьма подробно расписано на developer.mozilla. Что любопытно, если в форме есть "address" или "name", то гековский движок насильно закеширует эти данные. Забавно.


Сцылки дня:


2009-11-11

SWAT 4

SWAT это у них. У нас это ОМОН и прочие аббревиатуры. А данный пост - это реклама игрухи SWAT4.

Какая прелесть. Сказ о том, как журналистам показывали будни террористов-заложников-силовиков. По методу Станиславского. Я старался посокращать, но особо там сокращать и нечего.

...
Как раз после Беслана, когда в очередной раз выяснилось, что журналисты ни хера не умеют работать с нами и когда выяснилось, что журналисты ни хера не понимают, как надо себя вести в зоне проведения спецопераций. В очередной раз. Первый раз был на «Норд-Осте», когда НТВшная пара «отличилась» со снайперской «лёжкой», второй раз момент был как раз на Беслане. Ну, там был полный «зачОт», сам помнишь
...
Пригласили туда энную ораву журналистов, ... им неделю давали лекции, с такими, полу-практическими занятиями, ну, не то чтобы в «поле», но… показывали, рассказывали, объясняли, учили, грубо говоря. И для них зачётом должна была быть большая «показуха», оно же практическое занятие. В ходе которого энная часть журналистов, большая часть, могла бы спокойно отработать все полученные навыки и умения в оперативном штабе: о том, как это освещать, как с кем разговаривать, и как НЕ мешать «силовикам» работать, где стоять, где не стоять. Ну а отдельные активисты, и те, у кого очень много адреналина и жить просто так неймется – те могут побыть в качестве заложников. Заодно понять – каково это.
...
А домики там были хорошие, их там было то ли семь, то ли восемь типов, двух- трех-этажные, быстро возводимые, все совершенно разной планировки. Для отработки действий групп – песня, то, что надо! Ну а поскольку времена смутные, электричества там нету, тепла там нету, холодно-голодно, благо, что снега внутри нет.
А нас когда «накачивали» перед всем этим делом – была команда, что типа работать по полной программе, но без открытого членовредительства. Т.е. следов не оставлять – а если оставляете, то аккуратно. Значит, нам дали женщину-психолога, штатного, которая должна была сидеть со всеми нами там, внутри, на случай если вдруг у бедных заложников «сорвёт крышу». С ней же рядом женщина-медик со всем набором лекарств всего и вся. Ну, им команда – нам не мешать.
...
там подход к этому домику, где мы с ними должны «веселиться», стоит весь этот журналистский пул, камеры, туда-сюда, выходит генерал, дескать, уважаемые журналисты – кто хочет? «Ликероводочный завод – два человека». Ну, вылезают эти две: а можно мы, а можно мы? Их к нам в цепкие лапы
...
«Злые террористы», как понимаешь, это мы. Было три «злобных террориста» – Али, Ахмед и Ага…
там голый пол и стены, и всё. Их – туда, пятки – максимально далеко от стены, но при этом сидит она на корточках, т.е. рыпнуться она уже не может, и попой до пола она не достает. Оч-чень неудобная поза… Руки, соответственно, за головой, пальцы переплетены, чтобы не дергалась. Сверху команда: - Сидеть, не рыпаться, говорить тогда, когда разрешат!
...
Девки просекли. Они-то лекции слушали. Этот вылезает… Я, говорит, журналист, мне можно! Ну, на фразу «я журналист» получает п…лей. Типа – тебе команды говорить не было! (Пока аккуратно, пока без следов). Команды не было! И сверху – бум!
– Меня бить нельзя!
Бум!
– Тебе говорить никто не разрешал, сиди, молчи. Всё усек?
– Усёк.
Бум!
– Тебе же сказано – без разрешения не говорить!
Вроде затих.
...
Дальше начинается одиночный допрос: фамилия, имя, место жительства, точный домашний адрес, состав семьи, «счас придём будим рэзать», туда-сюда...
Начинается разговор. Ты кто? Маша. А точно Маша? Точно Маша. А если не врать? Да точно, точно! А кто дома?.. Ну, стандартный «раскол», короче, минут по 5-7 на каждого. При этом они же слышат, что происходит сбоку. А – тыкается пальцем в конкретного, говорится ему: «сиди и заткнись, команды говорить не было». И пока сбоку человека «колешь», периодически лупишь в стенку чем-нибудь тяжелым. Человек не понимает, что происходит. Такое впечатление, что сбоку уже кого-то убивают. Минут за 15 всех разговорили – этот опять начал выёживаться, типа «я журналист, со мной так обращаться нельзя, а давайте я вам помогу»… Да-да.
В общем, минут через 10, по-моему, с ним слегка переусердствовали. Не сильно – но чуть-чуть. Потому как в очередной раз на вопль «я журналист», в очередной раз огрёб по печени. (Следов нет, но неприятно). Опять – я писать хочу. А тебя, козла, никто не спрашивал, что ты хочешь! Твоя задача – сидеть и не выёживаться, сиди!
...
Плюс, на фоне всего этого постоянная трепотня между Али и Агой, насчет того, что вот правая, она, вот, как бы можно и воспользоваться, пока ещё туда-сюда – пока не началось. Перо в бок (ну то есть не в бок, понятно, просто лезвие к телу приложили) – пошли!
Вот если бы ОМОН пришел минут на пять попозже… она бы сама дала, точно тебе говорю....
они-то думали, что это минут на пять, на семь, на восемь – а дальше придет доблестный ОМОН и их всех разом освободят. А у нас команда – на 40 минут это счастье растянуть, по полной программе. И они-то не знают, что кроме нас в комнате – психолог, медик. К тому же это фиксировалось на видео, но это уже служебная документация, сам понимаешь, она ушла в недра, как учебное пособие в дальнейшем.
...
Так вот, девку уже наполовину раздели – я тебе говорю, она была уже сама готова дать, только чтобы отстали. И она поняла, что любой приказ – лучше выполнять. Потому что по шее досталось и им тоже. Соразмерно – но и им тоже. В таких ситуациях, люди почему-то моментально обучаемые становятся. ...
И том, что всё это не более чем учения – забывается мгновенно!
...
Ну, пришел доблестный ОМОН, всех радостно освободил. А они сидят, у них натянуты маски, они ничего не видят, они только все это чувствуют. И они вдруг слышат – стрельба, взрывы, они через маски видят вспышки светошумовых гранат, потому что она даже через маску просвечивает, и просвечивает хорошо, и они-то надеялись, что вот сейчас-то оно будет, вот, свобода! А ни хрена подобного, потому что дальше – «фильтр» (фильтрационный пункт). И потому что если… они-то надеются на то, что сейчас вот пришел ОМОН, и всех расстреляли, дальше с них снимут масочки, и нежненько, под ручки аккуратно выведут, как выносили детей в Беслане – ни хера подобного. Они в том же виде, как они были – им только «браслеты» ещё нацепили на руки, и точно так же, пинками погнали на фильтрационный сбор. И там продолжается шоу, потому что: докажите, что вы – это вы, а какое вы имели отношение, а действительно ли вы были заложницей, а кто может это подтвердить, а на основании чего вы оказались в заложниках, а какие подробности, как вас взяли… Потому что это же тоже нужно тем журналистам, которые сидят в «пуле». И все это показывается – журналистам, они видят все. Единственное, что журналисты, которые сидели в «пуле», не видели – они не видели обработку заложников внутри. И для журналистов очень хорошо была разница видна: люди, которые заходили, и те, кого оттуда вывели.
...
после «показухи» была итоговая большая «прессуха». Вот там забавно было… Первый вопрос, который всегда всем задавался, перед началом всех мероприятий: господа журналисты, можно ли освещать позицию боевиков? И журналисты все как один: да, можно, нужно, нужно предоставить боевикам возможность высказаться, высказать свои требования, это позволит спасти заложников, туда-сюда, они же тоже типа люди… Типа это не бандиты, а это незаконные вооруженные формирования, борющиеся за свободу одной независимой области.
...
зал делится чётко на две группы. Вторая группа – там, где эти две девицы. И они говорят – чего-о-о-о? Этим зверям ещё и давать возможность говорить? Да их, козлов, мочить надо, прямо там, в сортире, как завещал великий президент! Не то, что трибуну не давать – сказать нельзя ничего не давать! Где увидел – там и мочишь!
А с мальчоночкой забавно получилось. Потому что мальчонка начал тут же верещать, как только его спас ОМОН: «Я свой, я журналист!». Ну, ему и досталось – на сей раз уже от ОМОНа. Типа – разбираться кто ты, будет следователь, а сейчас пока что не п…ди
...
вот офицеры Центра, которые исполняли роль «террористов» - их было всего три человека, а не семь, как показывали экс-заложники. Вот, это наши сотрудники, это наши офицеры. Так что можете подойти поближе, можете поговорить, порасспросить, ...
Прибегает мальчонка, держась за помятые бока, и начинает: ну вот, ну что вы, ну как же так, я же свой, вы же знали, что я журналист, почему вы со мной так обращались… Я ему говорю: мужик, ты сейчас обращаешься к кому? К офицеру правоохранительных органов – или к «террористу Али»? «Террорист Али» сейчас тебе загонит перо под рёбра, и на этом разговор с тобой закончится. А если ты обращаешься к офицеру – то вопрос не по адресу. А к тебе, уважаемый, одна-единственная просьба: поскольку ты, так или иначе, успел наснимать наши рожи в открытую, то прежде чем пускать это дело в эфир, либо закрой лица, там, где мы засветились (не по своей воле, понятно), либо позвони, мы приедем, посмотрим, что у тебя получилось.
Ни хрена подобного. Это был, по-моему, четверг – в субботу, в итоговой программе недели пошел сюжет с открытыми лицами!
...
Эпизод 2
...
Ну, очередной раз над ухом постреляли – к нам выходит переговорщик. Типа, мы должны поговорить с заложниками, убедиться, что с ними все в порядке, передать вам часть ваших требований, предоставить, туда-сюда… Я выдергиваю одну из девиц-заложниц, такая мелкая, размер 42-й, не больше, и росточком где-то 165. А у меня «Калаш» ещё горячий от стрельбы, только-только полрожка холостыми выпустил. Её в охапку, ставлю перед собой, выхожу из автобуса, пытаюсь за ней спрятаться – а чтоб не дергалась, ей на ухо компенсатор горячий.
...Поэтому когда девочку вынесли практически за шкирман из автобуса, на негнущихся ногах поставили перед собой, за ней укрылся «террорист», а у нее четко на ухе, вот, около глаза болтается раскаленный компенсатор, из которого пованивает порохом – девка начала плыть. ...
Ну а пока он мне все по сценарию делает, поворачивается – он мне глазами всё на эту девочку показывает, которая у меня на руке висит. Я девку к себе поворачиваю – а у нее глаза уже закатились. И ноги, по-моему, уже не сильно держат. Ствол убрал, по щекам похлопал чуть… Ты жива? В ответ таким дохлым голосом: - Ага… Ну и я тут же – э, никачиствэнний матэриаль, расстрэливать нада! Обратно, перед собой, ствол на морду...
...
Автобус тронулся. Единственное, что мы сделали не по сценарию, не по стандарту – понимая, что сейчас будет, мы их одели и посадили обратно на кресла. Ну, понятно, что наш народ пойдет через окна, а оказаться на пути у летящей 100-кг туши – зашибут ведь ненароком. Одели их, посадили. Нас доблестно тормознули и взяли. Стандартная ситуация: перегораживается дорога либо БТРом, либо грузовиком, одновременно идет отстрел передних колес, одновременно отвлекающие внимание террористов подрывы, плюс по идее подрыв, который разносит двигатель ПАЗику (хотя в принципе на спущенных передних ободах он и так встает).
Первая группа идет – это на водителя, они его через дверь выносят. Вторая группа заходит через переднюю дверь – в ПАЗике передняя дверь открывается ударом. Вторая группа идет через задний запасной выход, вышибая стекло. Плюс блокирующие группы, которые стоят на отсечении спереди и сзади. Стекла выносятся, для этого есть специальная кувалда.
...
Группа пошла, зашла, положили – всех на «фильтр». «Террористов» – кого постреляли, кого в плен. Вообще… вообще, стараются в таком случае террористов мочить – оно безопаснее. Ну, вот тебе банальная ситуация: вход группы внутрь автобуса – перед тобой стоит тело. В руках может быть всё, что угодно, от «Калаша» до гранаты. Гораздо проще не ждать его реакцию на команду «лежать!», а прислать ему две «маслины» между глаз, и на этом всё закончится. ...
Скажем, водилу обычно вытаскивают, с ним проще: первый номер открывает дверь, а второй номер водилу выдергивает – при этом, как правило, водила делает два кульбита и приземляется чётко на спину, дальше расслабляющий под дых – и понеслось.
...
Журналюг – «на фильтр», ну и как обычно. Мы – журналисты! Да? Пока что вы ещё заложники, причем непонятно какие, поэтому, вон следователи, они с вами разберутся. Закончили. Народ стоит, трясётся. Не от холода – а от шока. Банально, кому-то из журналистов дали сигарету прикурить – он прикурить не мог. Он не попадал сигаретой в рот, а потом не попадал по пламени. Но вот кто отличился – это белорусы. Типа – а, вот, мы не все снять смогли, а вот, можно повторить? Не тех людей эстонцами назвали…
...
мы, конечно, видели через лобовое стекло из оперативного штаба, чего у них там происходило, но нам бы подробностей? Потому что как же вот так вот можно за 25 минут человека довести до состояния истерики так, что у него руки трясутся, молодого крепкого мужика – это знаете нам как-то очень интересно. ... просьба всем в автобус! А народ в автобус идти просто отказывается. Типа – нафиг, нафиг, мы уж лучше пешком дойдём. Уважаемые коллеги, дело в том, что ваши коллеги из Белоруссии не успели доснять – они просят повторить.
Мы думали, этих, кто доснять не успел – их порвут прямо там.
...
Типа: ребята, ребята, спокойно! Они такие же журналисты, как и вы! Не надо их бить! Не надо ручки тянуть!
...
На самом деле там до места «прессухи» было недалеко – но шли пешком. В автобус не пошел никто. Вообще. И опять-таки на «прессухе» тот же самый стандартный вопрос: господа журналисты, вы будете давать микрофон террористу для озвучивания своих угроз? Все, кто были в автобусе – в категорической форме: козлов давить, мочить, не давать!
...
Потом такая программа общения с журналистами сдохла. По многим причинам.


tiomkin.livejournal.com/832135

Вообще говоря, не понимаю, чего гражданских пускают на такие "мероприятия". В смысле, не учебные а реальные. Да хоть трижды демократия - снимай из-за забора. А на месте - штатный боец взвода PR :) фиксирует для архивов.

А жаль, что программа сдохла. Ее бы наоборот, расширить, чтобы любой желающий мог бы поучаствовать. Не дай Бог, конечно, никому оказаться в такой реальной жопе, но - "будь подготовлен" - очень хороший лозунг.
Хотя, есть варианты побезопаснее, не такие интересные и действенные, но хоть что-то.
Например, поиграть часиков эдак с тыщу в симулятор SWAT-а.
gameguru.ru/pc/games/swat_4
Довольно скоро начинаешь ощущать, когда где чье место, когда где кому что можно и что нельзя.

Вы только попробуйте себе представить: идете вы на цырлах по полутемному коридору, ждете, что за углом будет либо очередь в морду лица, либо еще какой смертельный сюрприз (а подыхать даже в игре очень не охота), аккуратненько заглядываете за угол, оцениваете ситуевину (полна комната врагом и заложниками), уже готовы зачистить угрозу и взять ситуацию под контроль, и тут... тут у безоружного заложника - дяди/тети, который/ая вас увидел/а сдают нервы. Вместо того, чтобы упасть на пол и зашхериться, вскакивает и бежит. Часто - поперек линии стрельбы. Ну епвашумать! И вместо того, чтобы снять самого опасного урюка, вы придерживаете пальчик на крючке и получаете маслину в чайник. Бай-бай, наша взяла не в этой жизни.
Вопрос - а не лучше ли для всех было бы пальчик не придерживать?

А ведь находится мудочье, позволяющее другому мудочью винить бойцов. Причем расклады таковы, что бойцы регулярно ходят под смертью а мудочье (обоих планов) не видело ничего опаснее собаки без поводка. Бойцы - они на войне. Если их и судить, то по законам военного времени.
Я так считаю.

2009-11-09

NTFS

Наконец-то узнал, что такое hard-link в NTFS.

ОС VMS работала на железе DEC, включая 32-битные компьютеры VAX и 64-битные машины на основе процессора Alpha. Каким-то образом команда, работавшая над созданием VMS, перекочевала в Microsoft для создания NT. Во главе этой команды находился Дэйв Катлер (Dave Cutler), крестный отец NT, разработчик ядра системы. Основная версия причины перехода Катлера в Microsoft – закрытие проекта разработки нового RISC-процессора и соответствующей ОС, в котором он работал вместе со своей командой инженеров. В результате, не без участия Билла Гейтса, Дэйв со своей командой оказался в Microsoft. Кстати, Гейтс был очень заинтересован в создании новой ОС, потому что у Microsoft на тот момент была только Windows, пригодная для домашних пользователей, а выхода на рынок серверов не было.

Архитекторами NTFS были Том Миллер (Tom Miller) и Гэри Кимура (Gary Kimura), которые работали программистами в команде Катлера в DEC. Так же, как NT влила в себя идеи VMS, NTFS основывалась на идеях файловой системы VMS – Files-11, в которой, в частности, поддерживались списки контроля доступом (ACL), а также ввод/вывод, ориентированный на записи (record-oriented I/O) .

NTFS разрабатывалась, прежде всего, как ФС для ОС корпоративного уровня, какой и являлась NT.

...

Атрибут $DATA.

Атрибут $DATA (идентификатор 0x80) в своем теле содержит данные файла и может быть как резидентным, если атрибут умещается в MFT-записи, так и нерезидентным. На уровне атрибута $DATA реализуются Alternate Data Streams или альтернативные потоки данных. Поток в NTFS – это данные файла. По умолчанию, все записываемые данные в файл попадают в безымянный поток $DATA. Альтернативные потоки – это дополнительные атрибуты $DATA для файла, в которых также могут храниться данные. Главный безымянный поток обычно следует последним в списке атрибутов, а все последующие альтернативные потоки будут добавляться за ним. NTFS адресует потоки (атрибуты $DATA) по их именам (имена атрибутов). Смещение имени потока вычисляется также как смещение имени любого атрибута, как сумма смещения заголовка атрибута со смещением имени, которое указывается в заголовке (при присутствии значения длины имени, при его отсутствии мы имеем дело в неименованным потоком).

Жесткие связи.

Жесткие связи (hard links) – механизм POSIX, который позволяет из разных каталогов обращаться к одному файлу. На уровне NTFS, жесткая ссылка – это дополнительный атрибут $FILE_NAME в MFT-записи файла и такой же атрибут в родительской директории самой ссылки (в этом случае структура INDEX_ENTRY_HEADER_DIR в поле ссылки на файл содержит ссылку на MFT запись для самого файла). Жесткие связи создаются на уже существующий файл и их количество указывается в заголовке MFT записи файла в поле link_count. Если на файл нет жестких связей, это поле равно единице. Если link_count больше единицы тогда количество связей определяется как link_count минус 1. Отличие атрибута $FILE_NAME, который описывает жесткую ссылку в MFT записи, от атрибута, который описывает одно из имен файла, в том, что поле родительской директории содержит ссылку на родительскую директорию самой ссылки, а не ссылку на директорию, которой принадлежит файл.

Для перечисления всех жестких ссылок на файл нужно получить их количество как MFT_RECORD.link_count – 1 и ссылку на родительский каталог файла. Если кол-во ссылок больше нуля, тогда пройтись по всем атрибутам $FILE_NAME и сравнить значения полей родительских ссылок с ссылкой на родительский каталог файла. В случае несоответствия, мы имеем дело с жесткой ссылкой.


citforum.ru/operating_systems/windows/ntfs

А имена файлов индексированы бинарным деревом. Так что если нужна эффективность, надо знать полное имя файла.

2009-11-08

Глядишь, и КПСС судить будут

Надо же, президент назвал преступлением имевшее место насилие. Оно, конечно, личное мнение президента. Это не официальная позиция правительства или парламента. Но, как бы то ни было, внушает надежду. Надежду на то, что событиям нашей истории будут даны адекватные оценки. Со временем. А там и КПСС можно осудить. А по итогам суда - наказать.

В интервью представителям журнала Der Spiegel Медведев отметил, что его недавние высказывания в видеоблоге в связи с Днем памяти жертв политических репрессий нашли живой отклик, в частности, на президентский сайт пришли тысячи откликов на то, что он сказал.

"Кто-то пишет, что наконец-то руководитель государства прямо сказал, что он думает о времени репрессий и о Сталине. Все оценки были даны, то, что делалось, было названо мной преступлением. Кто-то пишет, что это неприемлемо, потому что Сталин привел страну к очень высокому уровню развития, мы получили развитую промышленность, хорошо продвинутую социальную сферу, где многие продукты получали бесплатно, в обществе почти отсутствовали преступность. И что, мол, современным лидерам России еще надо достичь таких успехов", - отметил президент.

"Власть должна быть честной, а честность власти заключается и в том, чтобы определенные исторические события, которые уже имеют глубокий анализ, назывались абсолютно понятным правовым языком. С точки зрения права, уничтожение огромного количества соотечественников по политическим или надуманным экономическим поводам является преступлением", - заявил президент.


newsru.com/russia/07nov2009

2009-11-07

Traffic Server, 35000 запросов в секунду на одной железке не предел

Ну просто вау!

Yahoo открывает исходные тексты своего кэш- и прокси-сервера Traffic Server, под которым работают крупнейший в мире почтовый хостинг Yahoo Mail и другие сервисы портала. Это приложение было куплено вместе с Inktomi в 2002 году и впоследствии многократно дорабатывалось и улучшалось внутри компании.

Traffic Server — идеальное решение для кэширования контента и обслуживания сайтов под большой нагрузкой. По данным Yahoo, он обрабатывает до 30 000 запросов в секунду, обслуживает 30 млрд веб-объектов и прокачивает до 400 ТБ данных в сутки через 100-150 стандартных серверов. Совокупная аудитория сайтов Yahoo составляет 600 млн уникальных визитов в месяц.


habrahabr.ru/blogs/webdev/74182

Любопытно, каковы были основные причины открытия кода? Чтоб врагу не достался?


Сцылки дня:

2009-11-06

Охота пуще неволи

Никакие внушения о пользе хождения не могут достичь эффекта, легко достижимого нажатием на шишку любопытства и забавности:



Вот только вопрос у меня: через месяц тоже все будут с удовольствием по ступенькам прыгать? Ведь вряд ли.


Сцылки дня:

2009-11-05

Занимательные числа

Проглядывая новости, зацепился (взглядом? мыслью?) за любопытные числа. Не поленился собрать подборку за пару дней.

В 2010 году РАН получит из госбюджета 40 миллиардов рублей.
В масштабах страны эта сумма катастрофически мала и в пересчете на доллары США эквивалентна бюджету среднего американского научно-исследовательского института. Такое заявление на пресс-конференции в Российской академии наук сделал вице-президент РАН академик Александр Некипелов

nkj.ru/news/16663

Государство планирует привлечь на рынке для поддержки ОАО "АВТОВАЗ" 54,8 млрд руб. Об этом сообщил сегодня премьер-министр РФ Владимир Путин
top.rbc.ru/economics/03/11/2009/342700

Поддержка российского кинематографа за счет государства в 2010 году вырастет на 55% до 4,9 млрд рублей. Об этом сообщил сегодня журналистам министр культуры Александр Авдеев.
gzt.ru/print/269915

Как показывают результаты данного исследования, российский рынок электронной торговли имеет огромный потенциал развития. Так, перевод только половины госзакупок из имеющегося объема в 4,2 трлн рублей на ЭТП, способен дать экономический эффект свыше 400 млрд рублей ежегодной экономии
newsru.com/finance/03nov2009/zakupki

Интересно да? Сразу видно, какие наши дела. На кинопропаганду 5 лярдов, на науку 40 лярдов, ВАЗу 55 лярдов (еще к тем, что уже влили без пользы, заметим в скобочках). При этом, поэкономив на госхозяйственных закупках, можно отложить 400 лярдов.

В свете этих чисел особенно интересно слушать болтовню власть предержащих, не правда ли?


Сцылки дня:

2009-11-04

Каннабис как лекарство?

Задача заголовка как и у рекламы - привлечь внимание. Делать какие либо выводы только по заголовкам - запрещаю.

В инструкции, выпущенной министерством юстиции США 19 октября, говориться, что правоохранительным органам не стоит расходовать федеральные ресурсы на лиц, кто соблюдает законы штатов, допускающие использование каннабиса в качестве лекарства.

vz.ru/news/2009/10/20/339550

А в заголовках и прочих воплях педалируется легализация марихуаны. Вот, заголовок оттуда же: "США легализовали лечебное курение марихуаны в 13 штатах".

А на самом деле, поскольку во многих штатах использование каннабиса в качестве медпрепарата разрешено, псам режима было указано, что гонять-шпынять законопослушных людей с рецептами в карманах нынче не в тему. Денег на это нет.
Вот и все. Никакой легализации.
Это мне напомнило некоторые распоряжения наших властей, типа "требую следить за соблюдением законности" или что-то в этом роде. Это как публично ребенку напомнить - "почисти зубы перед сном", или "помой руки перед едой". Давление на психику.


Сцылки дня:

2009-11-03

АдВордовые чудеса

Сегодня мне пришло письмо. Бумажное, Почта России. В конвертике с логотипом Гугля, моим адресом буржуйскими буквами и обратным адресом таким, что хрен поймешь, где это. Похоже на Великобританию.

В конверте купон для AdWords (купи слова) на 1800 рублей. Немало.

Я было обрадовался, щаз думаю, куплю словей и разрекламирую чего-нибудь, этот блог, к примеру. Ан нет. При внимательном прочтении мелких буков, выяснилось, что срок действия купона - до 30 июня. Это в одном месте так написано. В другом написано - до 1 августа 2009 г. А нынче то уже 3 ноября!

То ли смеяться, то ли плакать. Сам не знаю. Скорее смешно. Хотели как лучше а получилось - авторитет Гугеля в моих глазах приупал. Реноме пострадало. Кто виноват? Я думаю вовсе не Почта России. А на купоне факсимиле Артема Четверикова, менеджера по маркетингу. Выпеййаду, Артем.

Это ладно. Я на всяк случай попытался зарегить купон. Так меня даже в систему не пустили. Набираю урл, какой сказано, мне говорят - ваш гуглевый акк это не то что надо. Укажите свою гуглевую почту и пароль. И так по кругу. Новый акк сделать не дают, старый не принимают.
Ужоснах.

Кстати, я поглядел, какие рекламные предложения Гугель подбирает к моему блогу своим АдСенсом. Это пестня. Мировое господство Гугелю еще не скоро случицца поиметь при таких раскладах. Можно не бояться.


Сцылки дня:

2009-11-02

AMQP

Продвинутый протокол очередей сообщений. У меня уже пробегало. Эта штука становится популярной:

В данной архитектуре для реализации «ленты Друзей» или «Новостной ленты» лучше использовать сервер очередей используя систему: Подписка-Уведомление. В качестве брокера обмена предлагается использовать сервер очередей RabbitMQ, реализующий протокол AMQP, который был выбран по причине хорошей масштабируемости. Серверная часть реализована на PHP, используя расширение php-rabbit (описание АПИ).

Архитектура Подписка-Уведомление представляет собой событийный подход. Кто-либо подписывается на Ваше события. Как только на Вашей персональной странице произошли какие-либо изменения: загрузилась новая фотография или видео, Вы — написали в блоге, получили подарок или просто пукнули, т.е. возникло некое событие, то Подписчики, сразу об этом узнают через уведомления.


habrahabr.ru/blogs/webdev/73904

Как всегда, каменты чуть не полезнее поста :)

2009-11-01

Backports, packages

Есть у меня некоторое недоумение по поводу пакетной системы дебианчика. Часть первая: почему вместо замечательного медиаплеера SMPlayer умолчальным сделан странный Totem?

Часть вторая: почему "из коробки" этот умолчальный тотем ничего не играет? Ни видео, ни аудио? Вы только представьте, как раздражает, когда загружается диск (или вы открываете медиафайл) и вам выдают сообщение типа "не хочу, не буду, кодеков нет".

Часть третья: почему для починки этого тотема надо ставить плеер Xine?
У меня, например, после этого тотем заработал прекрасненько:
aptitude install xine-ui

Часть четвертая: почему вчера из бэкпортов пиджин не ставился а сегодня ставится? Но только так:
aptitude purge pidgin pidgin-data pidgin-guifications libpurple-bin libpurple0
aptitude -t lenny-backports install pidgin pidgin-data pidgin-guifications libpurple-bin libpurple0

2009-10-30

Потому что в кузнице не было гвоздя

Маршак:

Не было гвоздя -
Подкова
Пропала.
Не было подковы -
Лошадь
Захромала.
Лошадь захромала -
Командир
Убит.
Конница разбита --
Армия
Бежит.
Враг вступает в город,
Пленных не щадя,
Оттого, что в кузнице
Не было гвоздя.

world-art.ru/lyric/lyric.php?id=4382

А вот оригинал:

For want of a nail the shoe was lost.
For want of a shoe the horse was lost.
For want of a horse the rider was lost.
For want of a rider the battle was lost.
For want of a battle the kingdom was lost.
And all for the want of a horseshoe nail.

wikipedia.org/wiki/For_Want_of_a_Nail

Забавно, правда?

А еще забавнее, как я на это наткнулся. В MS Visual Studio, в его редакторе кода, нет явного способа удалять пробелы и прочие пробельные знаки в концах строк (при сохранении файла обычно это делается). Уж не найти редактора для программеров, где этой опции нет, а в виз.студии - нету!
Вообще, это позор.
Короче, я не поверив своим глазам, искал в инете способ удалять эти trailing spaces. И нашел: billfellows.blogspot.com/2009/05/strip-trailing-spaces-on-save-in-visual
И там же сцыль на стишок. Прикольно.
MS предлагает удалять лишние пробелы через вызов из меню редактирования команды переформатирования файла или выделенного участка. Код переформатируется согласно правилам (скобочки, отступы и проч.) и лишние пробелы удаляются. Вместе с тем форматированием, которое вы внесли от себя. Грубо.
Кстати, выбрать символы табуляции вместо набора пробелов для отступов, также - невозможно.
Ужоснах а не редактор.

2009-10-29

Запрет на дневной показ повысил популярность шоу

Тут на днях запретили "Дом 2". Ну не совсем, это было бы как-то недемократично. А просто перенесли на позднее время. Ночью показывают. Привело это к неожиданному (для идиотов) результату:

...доля ее аудитории выросла в два раза.
Целевой аудиторией шоу, по данным телеканала, являются молодые люди в возрасте от 18 до 30 лет. Тем не менее, какой была доля аудитории до введения запрет и после, в пресс-релизе не уточняется. Как пишет в номере от 28 октября газета "Коммерсант", в последний день, когда шоу транслировалось днем, его посмотрели 17-19 процентов зрителей этой категории.

Перенос шоу на ночное время состоялся 21 сентября. В ночь на 22 октября доля его аудитории в целом по России выросла до 23 процентов, а в Москве - до 28 процентов. При этом особый интерес к программе проявила женская часть целевой аудитории, отмечает издание. Так, доля женщин 18-30 лет, смотревших передачу в ночь на 23 октября, составила рекордные 55 процентов.

Кроме того, программой заинтересовались зрители, находящиеся вне ее целевой аудитории. Начиная с 21 октября, доля зрителей старше 55 лет, смотревших передачу после полуночи, выросла с прежних 10 процентов до 17 процентов.



lenta.ru/news/2009/10/28/dom2

Вы все еще хотите что-то запретить?


Забавно, 10 заблуждений, выносимых буржуями из школы. Доставляет.

2009-10-28

Разные MTU и блокирование ICMP

Вот уж вечные проблемы. Старый, добрый ну-просто-повсеместно распространенный TCP/IP. И до сих пор лезут проблемы.

Суть технологии состоит в том, что
когда два хоста соединяются друг с другом, то устанавливается DF бит
"Dont Fragmen"), который запрещает фрагментацию пакетов на роутерах.
Это заставляет роутер, который собирается перенаправить пакет через
соединение с MTU меньше размера пакета, отбрасывать пакеты и
отправлять хосту-отправителю сообщение типа ICMP 3:4. Данное сообщение
типа "Destination is unreachable" означает "Хост недоступен, поскольку
пакет слишком большой и роутер не будет его фрагментировать". В
добавлении к данному сообщению, при применении PMTUD, прилагается
размер MTU нижестоящего за роутером участка. Таким образом,
хост-отправитель, после получения ICMP 3:4 с информацией от PMTUD,
уменьшает размер отправляемого пакета и пересылает его заново. Как
итог -- пакеты доходят до хоста-получателя без фрагментации.

Все операционные системы с 1988 года поддерживают технологию PMTUD.
Однако, проблема может быть в том, что либо вышестоящий над вашим
соединением роутер, либо некий роутер между вами и удаленным сервером,
либо сам удаленный веб-сервер могут БЛОКИРОВАТЬ некоторые типы ICMP
пакетов, включая ICMP 3:4. В этом месте хочется передать привет
параноидальным администраторам -- НЕ ДЕЛАЙТЕ ТАК, НЕ БЛОКИРУЙТЕ ICMP
трафик! Как итог - соединение между хостами устанавливается, но пакеты
от одного хоста к другому не доставляются, отбрасяваясь где-то по
пути... Похоже на наши симптомы?

Собственно проблема не нова, ее начали обсуждать еще в 1998 году.
Называется она Path MTU Discovery Black Hole, и описана в RFC 2923.

По сути, потенциально этой проблеме подвержено любой PPPoE соединение,
поскольку его MTU меньше типового MTU в 1500 байт и, для прохождение
через PPPoE, TCP/IP пакет необходимо либо фрагментировать, либо
использовать PMTUD.

В тоже время, если у вас обыкновенная машина с DSL модемом, вы не
столкнетесь с этой проблемой, поскольку на этапе инициализации
соединения с удаленными серверами размер пакета будет вычислен исходя
из размера MTU PPPoE соединения.

Однако, если у вас DSL роутер (например как у меня, на базе линукса),
то вы в зоне риска, поскольку ваша машина, при установлении соединения
с удаленными серверами, по умолчанию оперирует размером пакета исходя
из MTU локальной сети, которое установлено в 1500. В тоже время,
пакеты от удаленных серверов к вам проходят через канал роутера,
который имеет MTU PPPoE соединения, т.е. 1492...


opennet.ru/base/net/pppoe_mtu

Вот уж действительно, не надо блокировать ICMP. А не будешь блокировать - легко зафлудят. Что делать, куда бежать? Интересно, какие проблемы будут в версии 6 IP?


Сцылки дня:

2009-10-27

two weeks notice

Это по по ихнему фильма так называется. Или, в нашем прокате, Любовь с уведомлением.
Это фильма такая. Очень симпатичная, если не анализировать. Милый такой дамский роман по типу Золушки. Хотя не совсем. В общем, стоит посмотреть. Хороший отдых.

А я к нему субтитры перевел на русский. Очень интересное занятие, хоть и утомительное. По ходу такого наслушался в дубляже, просто слов нет. Ну такую отсебятину в дубляже несут - просто жопа. А у меня может и не слишком литературно, зато почти без искажений. Близко к подстрочнику. Для любителей правды, короче.


Сцылки дня:

2009-10-25

The following packages have been kept back

gpac{a} libogmrip0{a} mencoder{a} mjpegtools mplayer{a} ogmrip transcode tzdata

Это мне манагер пакетов дебианчика намекает, что не все ладно в датском королевстве. Коллективный разум рекомендует воспользоваться опцией dist-upgrade при обновлении системы, типа
aptitude update
aptitude dist-upgrade

Только в моем случае это проблемы не решает. Хотя, говорят, обычно помогает.
В моем же случае пришлось снести под корень конфликтные пакеты:
aptitude purge ogmrip
aptitude purge tzdata-java
aptitude purge mjpegtools
aptitude purge mencoder
aptitude purge mplayer
aptitude purge mplayer-nogui
aptitude purge smplayer

Потом, правда, пришлось вернуть smplayer, ибо кино смотреть я привык в нем. А когда я устанавливаю его из репозитория debian-multimedia, обратно конфликт. Потому как мультимедийная сборка хочет библиотек, которых в ленни еще нету (видимо и не будет). Да и ладно, работает ведь плеер, что и требуется, в конечном-то итоге.

2009-10-24

Сразу видно, кто из ху

Вот как так можно с людями? Как люди позволяют так с собой?
Или это уже и не люди, а паства? Стадо?
Зато честно, сразу видно, что почем.



Слил отсюда:
http://s.lurkmore.ru/images/2/29/PGMfat.jpg

А в то же время...

У меня, судя по тесту insightin.com/test
словарный запас буржуйского весит 8200 слов. Это при том, что словарный запас я и не развиваю. Прикольно.


Сцылки дня:
Дима Вернер, человек и "анекдот.ру".

38 попугаев

Вот засада: карта трубопровода в географических координатах (Geodetic Coordinates), ну там Latitude, Longitude. Градусы. А длина труб нужна в метрах.
Крутой геософт вроде как считает длины и автоматом заполняет колонку в БД, именованную "длина", но, бяка такая, как и положено роботу, заполняет по тупому - в градусах. Длина труб в градусах. Фигня какая.

Хорошо, что БД лежит в Оракле. У Оракла есть документация и в ней написано: используйте метод

SDO_GEOM.SDO_LENGTH(
geom IN SDO_GEOMETRY,
tol IN NUMBER
[, unit IN VARCHAR2]
) RETURN NUMBER;

если вам длину надо. А необязательным параметром "юнит" укажите единицы измерения.
Обожаю СУБД ораклевую.
Интересно, в постгре также легко задачки решаются?

В итоге, чтобы найти длину отрезка трубы в метрах, я пишу сиквельный запрос:

select hm.arcnum, SDO_GEOM.SDO_LENGTH(hm.geom, 0.00001, 'unit=M') ln
from tgk.heatmain hm
where hm.arcnum=3;

И получаю в колонке 'ln' то, что надо.

6.1.1 Coordinate System (Spatial Reference System)

A coordinate system (also called a spatial reference system) is a means of assigning coordinates to a location and establishing relationships between sets of such coordinates. It enables the interpretation of a set of coordinates as a representation of a position in a real world space.

The term coordinate reference system has the same meaning as coordinate system for Spatial, and the terms are used interchangeably. European Petroleum Survey Group (EPSG) specifications and documentation typically use the term coordinate reference system. (EPSG has its own meaning for the term coordinate system, as noted in Section 6.6.11.)
6.1.2 Cartesian Coordinates

Cartesian coordinates are coordinates that measure the position of a point from a defined origin along axes that are perpendicular in the represented two-dimensional or three-dimensional space.
6.1.3 Geodetic Coordinates (Geographic Coordinates)

Geodetic coordinates (sometimes called geographic coordinates) are angular coordinates (longitude and latitude), closely related to spherical polar coordinates, and are defined relative to a particular Earth geodetic datum (described in Section 6.1.6). For more information about geodetic coordinate support, see Section 6.2.
6.1.4 Projected Coordinates

Projected coordinates are planar Cartesian coordinates that result from performing a mathematical mapping from a point on the Earth's surface to a plane. There are many such mathematical mappings, each used for a particular purpose.
6.1.5 Local Coordinates

Local coordinates are Cartesian coordinates in a non-Earth (non-georeferenced) coordinate system. Section 6.3 describes local coordinate support in Spatial.
6.1.6 Geodetic Datum

A geodetic datum (or datum) is a means of shifting and rotating an ellipsoid to represent the figure of the Earth, usually as an oblate spheroid, that approximates the surface of the Earth locally or globally, and is the reference for the system of geodetic coordinates.

Each geodetic coordinate system is based on a datum.
6.1.7 Transformation

Transformation is the conversion of coordinates from one coordinate system to another coordinate system.

If the coordinate system is georeferenced, transformation can involve datum transformation: the conversion of geodetic coordinates from one geodetic datum to another geodetic datum, usually involving changes in the shape, orientation, and center position of the reference ellipsoid.


oracle.com/docs/.../sdo_cs_concepts


Сцылки дня:
Собрание сочинений Алексея Федорчука, популизатора линукса.

2009-10-23

Поколение М

Это не я придумал, это Ходорковский придумал. На мой взгляд, название неудачное. А изложенное мнение вполне даже удачное. Практически согласен.

... если политическое решение о модернизации в сегодняшней России будет принято, то кто будет осуществлять эту модернизацию?

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

Силовая элита — тоже нет. Она предназначена охранять, но не создавать. Все попытки совмещения этих несовместимых задач не шли на пользу ни функции охраны, ни функции созидания.

Абсолютно понятно: модернизацией не может заниматься один лидер, пусть даже самый сильный, если ему не на кого опереться. Модернизацию не могут осуществить одиночки. Это дело непосильно для сотен и пусть даже тысяч его союзников из бюрократического лагеря.

На мой взгляд, для осуществления настоящей модернизации необходим целый социальный слой — полноценный модернизационный класс. Для которого модернизация страны есть не фиктивная кампания, спущенная сверху, а вопрос выживания, самооформления в собственной стране и, если угодно, вопрос постепенного прихода к власти. Суммируя и обобщая исторический опыт различных модернизаций, можно утверждать, что численность модернизационного класса должна составлять не менее 3% трудоспособного населения. То есть в нашем случае — не менее 2 млн человек.
...
Модернизаторами России могут быть люди только созидательного, а не паразитически-распределительного типа мышления. К сожалению, в последние годы элиты и властная машина способствовали в основном возвышению последних и удалению первых.

Эту общность, способную стать коллективным модернизационным субъектом, назовем условно поколением модернизации — «поколением М».

Если Медведев действительно хочет дать шанс таким — именно таким — людям, то модернизация может не обернуться профанацией. Но это значит также, что президента ждут очень сложные решения. Ведь «поколению М» надо дать расчистить поле, серьезно потеснив крепко вцепившихся в свои места представителей упомянутого тандема «коррумпированная бюрократия — паразитический капитал». Способен ли президент поддержать такие шаги? Он предложил нам спрашивать — вот давайте и спросим. А пока нет ответа на этот вопрос, трудно говорить о модернизации всерьез.


vedomosti.ru/newspaper/print/2009/10/21/216863

2009-10-22

LISP

Изумительный по полезности пост. Как написать бота на лиспе за час, с нуля. Просто свет в массы! Всем, кто не умеет программировать но хочет научиться - фтыкать обязательно.

Если же у Вас есть свободная пара часов и желание научиться писать таких роботов самостоятельно — читайте дальше. Я расскажу как. От Вас потребуется знание компьютера на уровне продвинутого пользователя и определённая сила воли, чтобы напрягать в течение этих двух часов свой мозг. Писать робота, кстати, мы будем на LISP.

Почему именно на LISP?

Потому что есть определённая иерархия программистов.

VBasic, PHP: гопники
Perl, Python: гастарбайтеры
C/Cpp: рабочий класс, мужики
Assembler: инженеры
LISP: элита


fritzmorgen.livejournal.com/248335

Жаль, самые трудные для понимания места программы, ближе к концу, остались неразжеванными. Видно автор подустал. Ну да ничего, можно рассматривать как домашнее задание.

Помню, в ВУЗе я писал лабы на лиспе под AutoCAD. Тогда он был версии 10. Под DOS.
Кстати, EMACS тоже программируется на лиспе, дедушке функциональных языков.


Сцылки дня:

2009-10-21

Разомни

Всем компьютерным засидельцам - читайте этот стишок не менее трех раз в день:



Дернул отсюда:
meta-delo.blogspot.com/2009/08/office-training


Сцылки дня:

2009-10-20

Adobe AIR 2.0

Прочел список возможностей (далеко не полный, о как) и сразу захотелось влиться в ряды эйр-девелоперов. Оченно соблазнительно:

Возможность запуска внешних приложений - да, теперь можно будет инициировать открытие приложений из AIR, например, если вы работаете с документами Word или Excel, то сможете предоставить пользователю возможность напрямую из приложения открыть файл в его родной программе

Родные инсталляционные пакеты для приложения. Если раньше ваша программа паковалась в независимый от платформы формат *.air (очень схожий с jar), то теперь можно создавать нативные приложения для каждой платформы (вопрос остается открытым - будет ли возможность создать независимый дистрибутив, когда в пакет включена и сама среда AIR). Конечно, вариант с air-пакетом также останется.
Расширенные возможности работы с файлами и интеграция с десктопом - FilePromise, URLFilePromise, что позволит работать с файлами и переносить их между приложением и ОС (по сути, возможность указать URL или файл как доверенный и обработать в приложении, потом передав ОС).

Расширенная работа с сокетами. Это, пожалуй, самое важное и ожидаемое нововведение - создание серверных сокетов, чего ранее не умел делать Flash, зато сможет AIR

Прямой доступ к микрофону и аудио-потоку. Эту возможность ожидали очень многие! Теперь записывать звук с микрофона можно без обязательного участия удаленного сервера, получая доступ к сырым данным потока в виде PCM ByteArray. Данные можно сохранять в wav-файл и проигрывать из приложения. В принципе, возможно и прямое кодирование в другой формат.

Встроенная СУБД получает расширенную поддержку транзакций и точек сохранения. Для этого вводятся новые функции savepoints(), setSavepoint(), releaseSavepoint() и rollbackToSavepoint().

Максимальный размер окна приложения теперь расширен до 4095x4095 пикселей, что позволяет запускать AIR-приложения на больших экранах и использовать всю доступную площадь. Также добавлена поддержка сенсорных экранов и multi-touch.

Поддержка мобильных приложений. Да, да, ДА! Можно создавать мобильные приложения, в том числе и для iPhone - и это будут родные приложения для платформы от Apple

# Обновленный движок рендеринга Webkit (такой же, как в Safari 4 beta), теперь позволяет:
* использовать самый быстрый движок JavaScript - SquirrelFish Extreme (со множеством оптимизаций, включая полиморфное кеширование и облегченный JIT компилятор)
* CSS трансформации (CSS Transformations)
* CSS Transitions
* CSS анимация (CSS Animations)
* градиенты (CSS Gradients)
* Быстрый Selector API для доступа к DOM-узлам (Webkit CSS selectors)


abrdev.com/?p=1014

2009-10-18

Дорожное

Сведения непроверяемы, впечатление складывается, что это не про нас, но ситуация показательна и любопытна сама по себе. Кстати, демонстрирует, почему компьютеры нам не нужны :)

Камеры поставили на тестовую эксплуатацию.Камеры стали сыпать штравами. Причём не взирая на чины и награды. БОЛЬШИМ людям стали приходить штрафы. А прикрыть такой штраф не легко — там всё автоматизировано и просто замолчать не получается — приходится шишек разных из срааного превышения привлекать. Всю местную ГИБДД поставили в непристойную позу. Сначала решили написать фильтр, чтобы "свои" номера не штрафовать. Не получилось. Во–первых. своими оказались не только БОЛЬШИЕ люди, но и их дети, любовницы, племанники и т.п. А визитку с подписью камере не покажешь. А во–вторых, там ещё система отслеживающая угнаные авто стоит. И оказалось до безобразия много машин с неправильными/просроченными документами, числящихся в угоне, с несовпадающей маркой машины и т.п, да ещё и зарегистрированные непонятно на кого. Представляете, как одино БОЛЬШОМУ человек, когда к нему приходят и заявляют, что таможенная пошлина с его машины не уплачена, и пени набежало на две такие машины? Или, что его машина числится в розыске? Короче опять вздючили всех и вся. Посадили человечка вручную фильтровать всю информацию. Но! Во–перых, толку с камер ноль стало, т.к. человечек одну десятую информации успевает просмотреть. А во–вторых человечек всё равно ошибается и не то пропускает (ну, невоможно всех блатных "в лицо" знать). И человечка дрючат и увольняют раз в месяц — расстрельная должность, самоубийц на ней работать нет.

yosha-orlow.livejournal.com/245503


Сцылки дня:
Семь слов, очень, очень забавно и поучительно, Джордж Карлин.

2009-10-17

Wheel

Некоторые понимают это как "круг доверия". Ну, как мнемоническое правило - сойдет. Всем (юниксоидам) известно, что работать надо на компе под учеткой непривилегированной, рядового пользователя. Но иногда надо выполнить действие, требующее прав админа, рута. Ну, типа апдейт системы запустить или еще чего. Для этого все используют средство su или sudo. Я лично предпочитаю su, хотя это и не приветствуется спецами по безопасности. Да, так опаснее, но лично мне удобнее.

Если система многопользовательская, в смысле - действительно многие пользуются, то есть шанс, что командой su воспользуется тот, кому не положено. Всякое бывает, не правда ли? Чтобы снизить вероятность этого печального события, добрые люди придумали концепцию "вил" - wheel. Это группа такая, кто в ней есть, тому можно использовать su. Остальным - нельзя. Сама команда su может содержать внутреннюю поддержку этой группы.

Но это все не очень интересно. Интересно то, что в BSD вилы поддерживаются полностью и включены, а в линуксовых дистрах и многих коммерческих дистрибутивах юникса - нет. Даже если поддержка есть, то она не включена по умолчанию, надо дополнительно кнопки давить, чтобы включить поддержку вил.

Why GNU `su' does not support the `wheel' group
===============================================

(This section is by Richard Stallman.)

Sometimes a few of the users try to hold total power over all the
rest. For example, in 1984, a few users at the MIT AI lab decided to
seize power by changing the operator password on the Twenex system and
keeping it secret from everyone else. (I was able to thwart this coup
and give power back to the users by patching the kernel, but I wouldn't
know how to do that in Unix.)

However, occasionally the rulers do tell someone. Under the usual
`su' mechanism, once someone learns the root password who sympathizes
with the ordinary users, he or she can tell the rest. The "wheel
group" feature would make this impossible, and thus cement the power of
the rulers.

I'm on the side of the masses, not that of the rulers. If you are
used to supporting the bosses and sysadmins in whatever they do, you
might find this idea strange at first.


administratosphere.wordpress.com/2007/07/19/the-wheel-group

Ричард наш Столлмен не хочет поддерживать вилы, потому как он на стороне масс, не правителей. Ему не нравится, когда у людей нет возможности завладеть привилегиями рута.
Такие дела.


Сцылок дня сегодня нет.

2009-10-15

Телефон

Удивительное дело, один день без телефона, а как меняется мироощущение. Попробуйте как-нибудь в один из насышенных дней оставить мобилу дома.
Вчера у меня симка сдохла, сегодня я новую поставил. Сколько положительных эмоций при проявлении вернувшейся связи, даже не ожидал. Может быть, мобильная связь - это тип наркотика?

Смена симки в салоне-магазине занимает пару минут. "Я хочу симку поменять", - "Ваш паспорт и номер телефона?", - "вот-с...". - "Вот ваша симка, всего хорошего".


Сцылки дня:

эмтиэс, паразитен

Сегодня сдох телефон. С утра еще работал, а к вечеру - "поиск сети", "нет сети". Я его и выключал, и батарейку вытаскивал, и симку протирал , и по колесам пинал и стекла протирал.
Ничего не помогает. Поставили в тел (коммуникатор) другую симку - прекрасно работает, значит, железка в порядке. Поставили симку в гарантированно исправный тел - "поиск сети", "нет сети".

Симка умерла. Пойду завтра в офис МТС-а, менять. Заодно и роуминг включу, на всякий случай.
Симка старая, уж более пяти лет, наверно.

Завтра вставать в 7 утра. Невероятно.

2009-10-14

Advanced Message Queueing Protocol

Передача сообщений, очереди сообщений, асинхронная передача сообщений, гарантированная передача сообщений - ну просто как музыка!
AMQP - протокол. А RabbitMQ это брокер (сервер) обслуживания очередей сообщений.
Очень полезно и очень интересно.

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

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

1. Сообщение (message) — единица передаваемых данных, основная его часть (содержание) никак не интерпретируется сервером, к сообщению могут быть прицеплены структурированные заголовки.
2. Точка обмена (exchange) — в нее отправляются сообщения. Точка обмена распределяет сообщения в одну или несколько очередей. При этом в точке обмена сообщения не хранятся. Точки обмена бывают трех типов: fanout — сообщение передается во все прицепленные к ней очереди; direct — сообщение передается в очередь с именем, совпадающим с ключом маршрутизации (routing key) (ключ маршрутизации указывается при отправке сообщения); topic — нечто среднее между fanout и exchange, сообщение передается в очереди, для которых совпадает маска на ключ маршрутизации, например, app.notification.sms.* — в очередь будут доставлены все сообщения, отправленные с ключами, начинающимися на app.notification.sms.
3. Очередь (queue) — здесь хранятся сообщения до тех пор, пока не будет забраны клиентом. Клиент всегда забирает сообщения из одной или нескольких очередей.
...
Я его использовал для рассылки сообщений всем серверам кластера (fanout exchange) и организации аналогов “почтовых ящиков”, в которые доставляются сообщения, адресованные определенным клиентам (direct exchange). Для получения сообщений нет необходимости опрашивать сервер, достаточно подписаться на сообщения из очереди, и сервер передаст их в тот момент, когда они появятся.

В качестве клиентской библиотеки я выбрал библиотеку txAMQP для Twisted Framework (Python). ... В AMQP и вокруг AMQP есть много интересного и перспективного. К примеру, брокер RabbitMQ умеет масштабироваться и работать в едином кластере.


habrahabr.ru/blogs/webdev/62502


Сцылки дня:
сравнение CMS-ок, сделанных на Django. Между собой.

2009-10-13

buildout, not buildout

главное - у кого ружье.

А сегодня, дети, я расскажу вам сказку.
В стародавние времена Plone был как все нормальные программы, самостоятельный. Но прошло время и добрые люди решили, что негоже ему быть как все, пусть будет одним из пакетов Python. А чтобы стало еще загадочнее, сотворили чудо чудное, диво дивное, buildout имя ему. И под этим соусом поменяли раскладку файлов и каталогов у Плона, так, что обновить старые версии по простому можно только до 3.2. Сам 3.2 уже на билдауте.

И написали люди добрые инструкцию, в которой рассказали, как можно превратить Плон старый в Плон новый, хороший, годный. Только допустили маленькую неточность. В инструкции сказано - "скопируйте ваш Data.fs из старого инстанса в новый". А на самом деле, рабочий вариант - "сделайте экспорт вашего сайта в файл bla.zexp и импортируйте его в новый инстанс".

И будет вам щасте.

Привожу проверенный мною алгоритм превращения не-билдаута в билдаут:

1. сделать резервную копию, полную (старого плона).
2. сделать экспорт сайта в файл зексп.
3. остановить зопу.
4. установить в отдельный каталог диска версию 3.3.1 (в смысле, билдаутную).
5. пофиксить окружение и скопировать нужные (свои, нестандартные) расширения, продукты, плагины
(из старой версии в новую).
6. запустить новую зопу.
7. добавить необходимых пользователей в корень зопы.
8. импортировать сайт (из файла зексп).
9. мигрировать сайт до текущей версии.
10. проверить все.
11. использовать вилдаут для последующих обновлений,
с шагами 5,9,10 после успешного билдаута и шагом 1 до билдаута.


Сцылки дня:

2009-10-12

Мосдума

Сегодня были выборы. Вроде как в городскую думу. Я не ходил, лень было. Лень пораньше встать и переться через весь город (3 часа на дорогу) к избирательному участку.
Вот почему бы избиркому не усовершенствовать малость нынешнюю технологию выборов? Надо то всего, добавить централизованную регистрацию проголосовавшего. Сейчас в бумажке на участке расписываешься и там будешь на бумажке расписываться, только еще запись в БД пойдет, что пришел, бюль взял.

Чтобы я мог появиться на любом из избирательных участков и выдав автограф, получить свой бюллетень. Примитивная БД и терминалы к ней на участках. Достаточно просто и легко. Почему нет?
Хотите, я сам сделаю? Занедорого.

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

2009-10-10

Быдлокодер?

Забавно, выпал на статью о Экслере в луркморе, оттуда вышел на быдлокодера и уже там прочел замечательное:

Одним из признаков быдлокодера является часто употребляемое слово "функционал", в контексте "у моей программы вооот-такой функционал". Быдлокодер не учил матан и не знает что функционал это "функция, определённая на множестве функций со значениями обычно в вещественных числах".

Просто замечательно.

Меня уже давно, мягко говоря, задирает употребление слова "функционал" там, где по логике должно быть слово "функциональность" или другие его синонимы.

Не могу понять причину, по которой из языка пропадает "ьность".


Сцылки дня:
Aspen Interactive Movie Map, 1979 год, фактически Street View. Нафоткали улицы Аспена и засунули в сенсорный экран, 1979 год. Фантастика!

Прослойка

Заманчивая идея обернуть БД в интерфейс, удобный именно вам. Сколько проектов, столько велосипедов.

...
А разработчику не очень важно знать, как именно организована структура хранения данных на уровне SQL (структура для хранения данных реализована в виде самих данных, реализована стандартными средствами СУБД или смешана). Он оперирует понятиями объект-атрибут. Предметную область в этом случае можно представить графом. Помимо стандартных характеристик объекта (атрибуты (информация), связи) у терминологического поля имеются:
1. можно организовывать не только связи, но и взаимодействия (триггеры);
2. маршруты графа (замкнутые, незамкнутые, часто меняются);
3. отказ от необходимости знать, как выглядят SQL-таблицы на самом деле;
4. методы (добавить пользователя, отправка письма по почте, а в другой объект что-то добавить).

Объектная модель

Объектная модель должна позволять выбрать множество A по известным параметрам B: A(B). Вот несколько практических примеров:

* список пользователей, у которых возраст > 20: user(user.age>20);
* список подарков у пользователей с возрастом более 20: gifts(user.age>20).

В чем особенность этой модели? Разработчику необязательно знать, как связаны объекты «Пользователь» и «Подарок». Ему достаточно описать требуемую бизнес-логику в каком-то виде (API, предоставляемый системой), а сервер сам построит необходимые связи и выдаст нужный результат.
...
Для реализации такой модели создается так называемый объектный сервер. Это самостоятельно приложение, которое имеет некоторые интерфейсы для взаимодействия с другими приложениями. Объектный сервер знает о своих компонентах и сам определяет, какую именно у него запросили информацию. Клиентское же приложение, в котором разработчик описывает свои запросы к базе, не знает структуру базы, но имеет механизмы, которые позволяют запрашивать требуемую информацию у объектного сервера.
...


habrahabr.ru/blogs/webdev/71279


Сцылки дня:
Письма президенту

2009-10-09

Почему я не люблю верстку

В смысле верстку страниц HTML. И CSS не люблю.
Я сегодня совершил подвиг.
Среди 2500 (да, две тышшы пицот!) строк кода хтмл я нашел и исправил багу, связанную с версткой.

Было
< span class="kupu-tb-buttongroup" style="float: right" id="kupu-zoom" >
Стало
< span class="kupu-tb-buttongroup" id="kupu-zoom" >

Бага проявлялась в том, что исключительно в IE8 таблица размером с Джомолунгму схлопывалась в ноль.
Причем код, который я поправил, был глубоко внутри последней строки этой таблицы, да еще и вложенный в кучу дивов и спанов.

Ну и как вот после этого относиться к верстке? Ну вот какой м. придумал такую сложную модель контейнеров и боксов? Ведь факт, можно ж проще. Повбывал бы.

Поделюсь методом нахождения баги. Метод прост как брюква.
Выкидывайте блоки кода крупными кусками, пока не обнаружите, что бага пропала. Верните последний кусок обратно и выкидывайте мелкие куски кода, пока бага опять не пропадет. Верните последний кусок и выкидывайте еще более мелкие куски... и так до полного удовлетворения.


Сцылки дня:

2009-10-08

zcml

До чего все не просто устроено в плоне. Сегодня пытался узнать, почему в стандартной шкуре плона элемент breadcrumbs находится в блоке шапки а в шкуре нестандартной эти бредкрамбсы находятся в блоке контента.
Узнал.

Бредкрамбсы - это viewlet, расклад вьювлетов в стандартном шаблоне определяется файлом zcml
Plone\buildout-cache\eggs\plone.app.layout-1.1.8-py2.4.egg\plone\app\layout\viewlets\configure.zcml
Например, для бредкрамбов там так написано:
<browser:viewlet
name="plone.path_bar"
manager=".interfaces.IPortalTop"
class=".common.PathBarViewlet"
permission="zope2.View"
/>

а в моей нестандартной теме есть файл
Plone\parts\instance\Products\vePloneTheme\browser\viewlets.zcml
в котором написано:
<browser:viewlet
name="vePloneTheme.path_bar"
manager="plone.app.layout.viewlets.interfaces.IContentViews"
class="plone.app.layout.viewlets.common.PathBarViewlet"
layer=".interfaces.IThemevePloneTheme"
permission="zope2.View"
/>

Разницу видно? У них разный менеджер, суть - блок, в котором будут отрендерены мои бредкрамбсы.

Отсюда понятен образ действий: отредактировать файл темы так, чтобы менеджер был какой надо а не какой не надо.

Магия.


Сцылки дня:
система документооборота Naudoc (на базе Zope, отечественная!)

2009-10-07

Plone upgrade

Удобная штука, Plone buildout.
У меня был установлен плон 3.2 и по неизвестной мне причине, я не смог установить на него замечательный продукт для поддержки мультиязычных сайтов (LinguaPlone).
Дай, думаю, апгрейдну плон до наисвежайшей версии и посмотрю, что будет. Процедура апгрейда, благодаря билдауту, проста до безобразия.

Остановить плон (bin/plonectl stop).
Сделать резервную копию всего каталога (на аварийный случай).
Прописать в buildout.cfg правильную строчку, в моем случае
extends = http://dist.plone.org/release/3.3.1/versions.cfg
Запустить bin/buildout -v
Стартовать плон (bin/plonectl restart).
Нажать кнопу "upgrade" в разделе portal_migration в ZMI.
Аллес.

Все само качнется из тырнета и установится. Минут 10-15 на не самом хорошем канале (менее мегабита).

А потом, с помощью того же билдаута, влегкую установился и LinguaPlone.
Ура, заработало.


А для редактора jEdit (проверил, хорошая штучка) рекомендую установить плагины "whitespaces" и "console". Первый позволяет удалять завершающие пробелы в строках (и не только). Второй позволяет не выходя из редактора запустить редактируемый скрипт (и не только). Поддержка разных кодировок символов - на недосягаемой высоте.


Сцылки дня:

2009-10-06

Вид поиска или подписка на новости по теме?

В любом случае, мысль толковая. Человек выбирает то, что его интересует и бот потом уведомляет о новинках в выбранном.

… Надо дать ему возможность оставить свои пожелания, и по мере поступления новых книг, производить все новые и новые поиски – до тех пор, пока нужные книги не будут найдены.

В качестве основы, как можно догадаться, используется все тот же быстрый поиск, который перебирает все поисковые слова, введенные пользователями, и формирует таблицу результатов. ...
После этого почтовый робот рассылает e-mail уведомления: «Здравствуйте, по вашему запросу найдена новая книга…»

С точки зрения пользователя все выглядит весьма удобно: достаточно один раз ввести свои запросы, а потом тебе на почту приходят сообщения. Как говорится, «мы работаем, чтобы вы отдыхали». :-)


habrahabr.ru/blogs/webdev/70656

Я бы не стал называть это поиском. Скорее "у нас есть новости по интересующей вас теме".

2009-10-04

jEdit

Сколько программеру надо текстовых редакторов? У меня в фаворитах один (SciTE), пользуюсь им постоянно. Но, поскольку он универсален, определенно есть специализированные инструменты для конкретных задач. Так, для Python я использую клипсу с плагином PyDev, для PHP - студию от Zend, для HTML - дримвивер макромедийный, ну и так далее.

Но ведь не задавить стремление к совершенству (или к новому?). Сегодня попался на глаза текстовый редактор, мне лично не знакомый. jEdit.
Судя по описанию - вкусняшка.
Качаю, буду смотреть.


Сцылки дня:

«Попробуйте не разговаривать, а писать. Реакция на бумагу потрясающая!!! Жалоба, докладная записка, заявление... Бумага на каждый чих. И спокойно, спокойно: „Когда Вы дадите мне ответ? Зарегистрируйте мой документ. Дайте входящий номер. Вы же не хотите, чтобы я с этим шла в РУНО, отдел соцзащиты и т.п. Крёстная моего ребенка журналист, хочет сделать репортаж о нашей школе“. (Все в таком духе).

У учителей неплохая зарплата. Они держатся за свои места. Младший обслуживающий персонал, если он хамоват, чудно ведется на: „Вы бога не боитесь? Я вам здоровья пожелаю и свечку за вас поставлю“. Как правило, страшно боятся сглаза.

Это мы, мышицы

Мультик про кота Леопольда, когда мыши попали на рентген. Их ответ на вопрос - "а это что такое?" был - "а это мы, мышицы".

Оказывается, мышечный корсет, вернее его слабость, отвечает за боли в спине:

...
Причина болей в спине по Бубновскому: у человека есть ГЛУБОКИЕ мышцы (они расположены столбом круг позвоночника). Они осуществляют питание межпозвонковых дисков и нервных корешков (доставляют туда влагу). Происходит нарушение работы этих мышц (либо в результате травмы, когда происходит мышечный спазм, либо в результате сидячего образа жизни, когда они постоянно находятся в напряженном состоянии). Итак, в результате нарушения питания высыхает фиброзное кольцо и прорывается грыжа. Однако это ничем вам не грозит, так как сама грыжа не содержит нервных окончаний и задеть корешок не может. Также из-за недостатка влаги происходит воспаление нервного корешка, появляются ноющие в любом положении боли, как правило в голени (могут и в бедре и в спине).
Есть такое понятие, как мышечная память. Она длится 2 суток. Мышцы помнят, как расслабляться. Поскольку при сидячем образе жизни (компьютер, телевизор и т.д.) мышцы спины постоянно напряжены, к тому же ослаблены, в один прекрасный момент вы делаете неловкое движение, ГЛУБОКИЕ мышцы спазмируются и не расслабляются.
СМЫСЛ ЛЕЧЕНИЯ У БУБНОВСКОГО - РАССЛАБЛЕНИЕ ГЛУБОКИХ МЫШЦ. Расслабление и нормализация их работы -> нормализация питания позвоночника и нервных корешков -> исчезновение болей и уменьшение грыжи (специальные клетки - фагоциты - удаляют ненужные организму ткани), однако большая грыжа полностью не исчезнет, вы можете рассчитывать на уменьшение в два раза. Однако это не имеет большого значения, так как сама грыжа никаких болей не причиняет.
Если у вас заметный невооруженным глазом перекос - вам прямая дорога к Бубновскому. Схема подача-снятие нагрузки (т.е. тренировка на тренажерах) постепенно приводит их в расслабленное состояние.

НУЖНО ОЧЕНЬ ХОРОШО УЯСНИТЬ: чтобы вы не делали - блокады, операцию по удалению грыжи, карипазим - без поддержания глубоких мышц в нормальном состоянии мышечные спазмы рано или поздно повторятся. у кого-то через пол-года, у кого-то через 5 лет.
...


spinet.ru/conference/post4450

Вообще, эта теория вполне соотносится с разными другими "нетрадиционными" взглядами на причины заболеваний. Например, методика Бейтса для глаз опирается на тот же базис. Базис прост до очевидности: в теле нет ничего лишнего и все это надо поддерживать в хорошей форме, регулярно давая умеренные нагрузки. И обязательно чередуя нагрузки с расслаблением, как можно более полным.
Ну вы поняли, здоровый образ жизни. Все хорошо в меру. Очевидно. Почти невыполнимо.
Но надо стараться, жизнь и так коротка, чтобы позволять себе роскошь проводить часть ее на больничной койке.


Сцылки дня:

2009-10-03

Plone viewlets, практика

English.
Так сложилось, что сегодня я осознал, что такое есть вьювлеты плона. На весомой и грубой практике.
А было это так.

Заказчику надо многоязычный сайт. Первая моя попытка сделать это в стиле "поставьте в плон продукт и радуйтесь" не удалась. Потому я подготовил (как альтернативу) простое решение, сколько языков, столько и сайтов. На каждом сайте материалы только на нативном (для этого сайта) языке. Благо, сам интерфейс плона интернационализирован по самое небалуйся, в настройках нужный язык выбрал, и гуляй. Редакторы контент будут забивать, я тут не при чем, разве только тестовые странички для показухи сделать пришлось.

А потом я споткнулся о задачу создания кросс-ссылок между языковыми версиями. Хорошо бы, подумал я, каждая страница была со ссылками на другие языковые версии этой страницы. Одна из проблем в том, что не каждая страница имеет переводы на другие языки. Да и разделы, в общем случае, могут не отражаться один на другой. Ручная работа?
Пока решил сделать просто и изячно - через site_actions сделать ссылки на корни сайтов, с флажками стран для разных языков.
В параметрах экшена есть некий Icon, видимо картинка. Забил я пару экшенов, подготовил картинки. Проверяю - нет картинок в результате, только текст. Тегом <img ... даже и не пахнет. Что за засада? Почему атрибут Icon в экшене есть а картинки на сайте нет? Захотел я посмотреть код, который рендерит мои экшены.

И тут на арену выходят вьювлеты. Сайт-экшены рендерятся вьювлетом. Он расположен в файле
Plone\buildout-cache\eggs\plone.app.layout-1.1.8-py2.4.egg\plone\app\layout\viewlets\site_actions.pt
а если в ZMI смотреть, то в узле
Plone/portal_view_customizations
в строке
plone.site_actions (zope.publisher.interfaces.browser.IDefaultBrowserLayer)
Открывши его и щелканув на кастомайзе, можно мальца переделать вьювлет.

И я его переделал. Теперь он иконки кажет за милую душу. Если в экшене иконка не указана (как обычно) то работает как раньше, выводит текст.




Сцылки дня:

2009-10-02

Как бы транзакции

Сегодня за день уложился полный цикл. Сломал сайт, починил сайт.
Испытывал сегодня языковый сервис для плона, LinguaPlone. По задумке, он позволяет легко поддерживать разноязычные версии страниц сайта. А на практике я сломал сайт.
Для установки предлагают воспользоваться механизмом buildout. Я воспользовался. Мне говорят - у тебя плон старый, надо новый. Я методом перебора нахожу версию продукта, подходящую к моему плону, билдаутю и вижу, ошибки компиляции питона. Тут бы мне похерить эту затею, или соломки подстелить. Нет, чего там. Билдаут еще раз, ошибок нет, запуск сервиса, установка продукта - бабах, exception.
Все, сайт поломался.

Чинил я его долго. Заколдованный круг какой-то. Удаляю продукт - сайт не работает, потому как при (неудачной) установке он успел зарегистрироваться в базе. Ставлю продукт, сайт не работает, потому как продукт кривой или криво встал. Удалить нельзя, потому как сайт лежит.
Вот что за транзакции такие? Обещали же - если в процессе обработки запроса будет ошибка, транзакции откатываются. Но, блин, факт - не все и не всегда откатываются.

Починил просто. Пошел в список транзакций (undo) и отменил все нафик. После чего снес продукт.

Мораль: смотрите внимательно, что вам на консоли и в логах пишут. Не игнорируйте предупреждений и тем более ошибок. Делайте резервные копии, для скорейшего восстановления. Тестируйте всякое на спец. полигонах, в виртмашинах со снапшотами, очень удобно.

Вот теперь думаю, еще попытку сделать установки многоязыкости или ну его нафик?


Сцылки дня:

Архив блога

Ярлыки

linux (241) python (191) citation (186) web-develop (170) gov.ru (159) video (124) бытовуха (115) sysadm (100) GIS (97) Zope(Plone) (88) бурчалки (84) Book (83) programming (82) грабли (77) Fun (76) development (73) windsurfing (72) Microsoft (64) hiload (62) internet provider (57) opensource (57) security (57) опыт (55) movie (52) Wisdom (51) ML (47) driving (45) hardware (45) language (45) money (42) JS (41) curse (40) bigdata (39) DBMS (38) ArcGIS (34) history (31) PDA (30) howto (30) holyday (29) Google (27) Oracle (27) tourism (27) virtbox (27) health (26) vacation (24) AI (23) Autodesk (23) SQL (23) humor (23) Java (22) knowledge (22) translate (20) CSS (19) cheatsheet (19) hack (19) Apache (16) Klaipeda (15) Manager (15) web-browser (15) Никонов (15) functional programming (14) happiness (14) music (14) todo (14) PHP (13) course (13) scala (13) weapon (13) HTTP. Apache (12) SSH (12) frameworks (12) hero (12) im (12) settings (12) HTML (11) SciTE (11) USA (11) crypto (11) game (11) map (11) HTTPD (9) ODF (9) Photo (9) купи/продай (9) benchmark (8) documentation (8) 3D (7) CS (7) DNS (7) NoSQL (7) cloud (7) django (7) gun (7) matroska (7) telephony (7) Microsoft Office (6) VCS (6) bluetooth (6) pidgin (6) proxy (6) Donald Knuth (5) ETL (5) NVIDIA (5) Palanga (5) REST (5) bash (5) flash (5) keyboard (5) price (5) samba (5) CGI (4) LISP (4) RoR (4) cache (4) car (4) display (4) holywar (4) nginx (4) pistol (4) spark (4) xml (4) Лебедев (4) IDE (3) IE8 (3) J2EE (3) NTFS (3) RDP (3) holiday (3) mount (3) Гоблин (3) кухня (3) урюк (3) AMQP (2) Baltic (2) ERP (2) IE7 (2) NAS (2) Naudoc (2) PDF (2) address (2) air (2) british (2) coffee (2) fitness (2) font (2) ftp (2) fuckup (2) messaging (2) notify (2) sharepoint (2) ssl/tls (2) stardict (2) tests (2) tunnel (2) udev (2) APT (1) CRUD (1) Canyonlands (1) Cyprus (1) DVDShrink (1) Jabber (1) K9Copy (1) Matlab (1) Portugal (1) VBA (1) WD My Book (1) autoit (1) bike (1) cannabis (1) chat (1) concurrent (1) dbf (1) ext4 (1) idioten (1) join (1) krusader (1) license (1) life (1) migration (1) mindmap (1) navitel (1) pneumatic weapon (1) quiz (1) regexp (1) robot (1) science (1) seaside (1) serialization (1) shore (1) spatial (1) tie (1) vim (1) Науру (1) крысы (1) налоги (1) пианино (1)