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

2008-06-29

МГТС версус КорбинаСоТоварищи

А вот интересно, есть в Москве дома-новостройки, к которым телефон еще не дотянули (но тянут) а Корбина и подобные (крупные) уже имеют свой гешефт?

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

Интересно, да? Что мешает Корбинщикам? Чьи яйца? Тем более, что с февраля местные комсомольцы нас подключили к своей локалке. По грабительским тарифам. И проводов к крыше дома каждый месяц все больше тянется. А Корбина и всякие Акады весь город своей рекламой заклеили. А ко мне не идуть.

Я вот посмотрю, кто раньше доберется - МГТС кабель дотянет или Корбина.
Мнится мне, у МГТС право первой ночи.

Кто скажет, есть в Москве новостройки, куда МГТС кабель еще не дотянула а Корбина уже дает тырнет?

Тонкости прошивки гаджетов

Есть у меня книжка, с экраном на чернилах, Lbook V3.
Всем хороша, кабы не регулярные зависоны с потерей последней читаемой страницы. Очередной раз потеряв терпение, решил перепрошить, благо с последней прошивки прошло несколько месяцев.
Скачал свежую прошивку (паршивку, 60) и началось...

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

Сначала неформально - книжка понимает SD карточки, прошивать ее надо с такой карточки, положив в корень файловой системы файл с прошивкой. Заявлено, что файловая система должна быть FAT16. Но этой информации недостаточно. Нужна совершенно конкретная FAT16, файл должен лежать в первых же секторах раздела. И только тогда, может быть, оно прошьется.

Как сделать "правильную" FAT16, последовательность команд в консоли GNU/Linux (если у вас пропадут файлы или разделы дисков после попыток воспользоваться моими подсказками - считайте виновными себя а не меня):
fdisk -l
по выводу команды определите какой диск есть карточка, у меня /dev/sdb


fdisk /dev/sdb
d
o
n
p
1
t
e - реально помогла 6, хотя есть люди выбравшие (e) и у них работало
w
mkdosfs -F 16 /dev/sdb1

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


Вопросы и ответы по устройству LBook

2008-06-28

Футбольное

Или правильнее (фут)больн0е? Вы любите футбол? Вам в кайф оповестить об этом весь белый свет? Тогда прочтите миниатюрку:

.- Закинет молот за стенку метательница Лысенко! – бесновались субботней ночью фанаты метания молота.
- Вы издеваетесь!!! – закричал Вася. – Дайте поспать!
- Мы не издеваемся! Мы мстим! – закричали со двора и добавили издевательски – Россия – вперед!.

frumich.livejournal.com

2008-06-24

Безопасность в поездках

Задал на днях Тёма задачку:

.В июле-августе я собираюсь в одиночку проехать всю Россию от Москвы как минимум до Владивостока (до Магадана, кажется, нет дороги). 1 августа я буду в Новосибирске, чтобы позырить на солнечное затмение. Поездка должна занять минимум месяц, протяженность пути составит не меньше 20000 км.
Многие люди уверены, что поездка такого рода небезопасна. Злодеи уже точат пилы, которыми будут валить деревья на моем пути, чтобы выкинуть меня из-за руля в районе БАМа.

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


tema.livejournal.com

И задачка меня порадовала. Ну в самом деле, как снизить вероятность неприятных встреч? Первая мысль была - ехать двумя машинами, два экипажа, в каждом присутствует "спец по критическим ситуациям". Но это не Тёма поедет а спецподразделение. Не решение. А как?

А у Тёмы ответ должен быть дизайнерским, машинку надо покрасить. И еще:

Россия - вполне безопасная страна. По моим личным субъективным ощущениям она гораздо более безопасна, чем другие места, где я был. Мой кошелек один раз украли - в Германии. За мной один раз гнался алкаш с ножом - в Гренландии. В Новом Орлеане надо останавливаться на светофоре за 50 метров до предыдущей машины, потому что негры грабят на ходу. В Каракасе есть районы, которые проскакивают только с закрытыми окнами и только на скорости 100 км/ч, чтобы тебя по дороге не ограбили. В Йоханнесбурге нельзя ходить по улице с кошельком, фотоаппаратом или еще чем-нибудь, что можно отнять. На границе между Францией и Швейцарией меня шмонали так, как не шмонал ни один мент на родине.

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


tema.livejournal.com

При этом надо знать, что Тёма очень много, неприлично много путешествует. Он знает о чем говорит.

2008-06-19

Сила гугеля - в бигтабле

Реально несмешно. Скорее наоборот:

.Bigtable активно разрабатывается с конца 2003 г., и первое производственное внедрение системы было произведено в середине 2005 г. В последние несколько лет объем использования Bigtable постоянно возрастает. К январю 2008 г. в Google имелось более 600 кластеров Bigtable, и в наиболее крупном кластере содержалось более 2000 машин. В самых крупных ячейках храниться более 700 терабайт данных, и в наиболее загруженных ячейка выполняется до 100 тысяч операций в секунду..
(sic!)

citforum.ru/database

Блог про Oracle & GIS

Нашлась полезняшка для тех, кто имеет дело с связкой Oracle - Spatial cartrige - SDE.
Техническая информация.

bingluo.blogspot.com
Spatial DBA - Technical Translator

2008-06-16

А они написали LP систему рендеринга!

literateprogramming.com

Matt Pharr and Greg Humphries. "Physically Based Rendering: From Theory to Implementation", Morgan Kaufmann, 2004

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

Эта книга представляет подборку современных алгоритмов рендеринга через документированный исходный код законченной системы рендеринга. Система, pbrt, написана используя методологию программирования называемую LP которая соединяет прозаическое описание системы с исходным кодом реализующим систему. Мы верим что LP подход это ценный путь к представлению идей компьютерной графики и компьютерных наук в целом. Часто, некоторые тонкости алгоритма могут быть неясны или скрыты до их реализации, так что рассмотрение действительной реализации это хороший способ получить полное понимание деталей алгоритма. Действительно мы верим что глубокое понимание немногих алгоритмов таким макаром дает крепче фундамент для дальнейшего изучения комп.графики чем дает поверхностное понимание многих (алгоритмов).

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

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


pbrt.org

2008-06-15

Практики LP

Программист - эссэист 60

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

LP увеличивает качество продукта требуя от программеров исследования и обьяснения их кода. Архитектура и дизайн разьясняются на концептуальном уровне. Диграммы моделирования включаются (UML). Длинные процедуры реструктурируются сворачиваемыми порциями кода в секции. Инновационные идеи, решающее техзнание, алгоритмические решения и необычные конструкции кода ясно документированы.

LP написаны для прочтения другими программерами. Понимание программы есть ключевая деятельность при исправлении и улучшении программ в рамках сопровождения. Высококачественная документация облегчает изменение программ уменьшая концептуальные ошибки и результирующие дефекты. Ясность LP позволяет команде повторно использовать код и давать конструктивные отзывы при пересмотре кода.

Организация исходников в маленькие секци. Стиль LP комбинирует код и документацию в один файл-исходник. LP использует секции позволяя разработчикам описывать блоки кода подходящим способом. Фунции раскладываются на несколько секций. Секции предьявляются в порядке лучшем для понимания программы. Секции кода выигрывают у многословных комментариев предоставляя возможность записать толковые параграфы с устранением мешанины в исходниках.

Производство листингов книжного качества. LP языки (CWEB) используют комбинации типографский языков (TeX) и языков программирования (C++). Типографский язык позволяет все доступные в книгах полезняшки вроде картинок, диаграмм, схем, таблиц, формул, ссылок, оглавлений, индексов. Типографская обработка LP выдает листинги с элегантно отформатированной документацией и исходным кодом. Листинги генерируемые в PDF формате включают гипертекстовые ссылки.

Помните основы. Есть много факторов вовлеченных в разработку превосходного софта. LP это только простая техника для использования вместе с всеми другими принятыми в софтинжиниринге практиками. Вот несколько практик связанных с документированием программ:

  • * Прорабатывайте структуры, процессы и "выход" (см. Luke Holman).
  • * Создавайте требования и описания дизайна (см. IEEE standards).
  • * Практикуйте ОО дизайн.
  • * Выбирайте имена классов, имена функций и имена переменный с умом.
  • * Избегайте дублирования кода созданием общих функций.
  • * Перерабатывайте код трудный для понимания.
  • * Разрабатывайте малые классы и маленькие функции когда это возможно.
  • * Стремитесь к простоте и целеустремленности по мере сил.
  • * Организуйте большие файлы исходников используя редакторы с поддержкой оконтуривания (Leo).
  • * Комментируйте исходники эффективно через хидеры и инлайн каменты.
  • * Документируйте исходники используя стандарты API документирования (doxygen).
  • * Выполняйте пост и пре проверки используя assertions.
  • * Предоставляйте формальные или неформальные доказательства корректности кода.
  • * Проводите практику обзоров (софта, документации, кода).
  • * Внедряйте автоматизированное тестирование модулей как форму документации.
  • * Проверяйте метрики кода (кол-во строк, сложность,etc).
  • * Выполняйте статический анализ на общие ошибки кодирования.

Некоторые из моих любимых инструментов - CWEB и Leo для оконтуривания исходников, doxygen для API документирования, CCCC и LocMetrics для измерений кода, PC Lint для статического анализа ошибок, и cppunit для автоматизированного тестирования модулей.
..


literateprogramming.com
Daniel Mall. "Recommendation for Literate Programming"

А я вот думаю - где бы найти пару сотен тыщ уев, чтобы прикупить фазенду на Майорке?

2008-06-14

Программист-литератор

Еще про literate programming
.Обычная компьютерная программа состоит из текстового файла содержащего программный код. Там мы имеем разбросанные по программному коду комментарии с описанием разных частей кода.

В LP акцент перевернут. Вместо написания кода содержащего документацию, LP программер пишет документацию содержащую код. Теперь не надо аглицкие комменты, внедренные в программу прятать внутри отбивки коментов в начале файла или в начале процедуры, или на концах строк. Вместо этого описание выводится из тени и ставится в фокус (внимания). "Программа" становится в основном документом для людей, с кодом сгруппированным внутри "ограничителей кода" откуда он может быть вынут и направлен в языковую систему инструментами LP.

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


literateprogramming.com
Ross Williams. FunnelWeb Tutorial Manual, pg 4.

2008-06-12

Моделирование

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

Почти никакие. Только чудо, ломающее отработанные методы и алгоритмы. Эксепшн, выбивающий программу на аварийное завершение.

Ниче так "теория заговора", да?

2008-06-06

Мультег

Надо, надо засмотреть. Как только, так сразу.
Гоблин о мультике.

-
-
ТРУБОЖОПеры просто убивают!

И за что он ненавидит все на свете?

Рекомендую, шедевр. В своем роде. Ода потребителя (цитирую спец.кусочек):

.Товарищи линуксоиды, программисты-опенсорсники, я хочу задать только один вопрос: вы не охуели? Вас миллионы по всему миру! Среди вас опытные черти, лучшие мировые программисты! Вы ж если захотите, так возьмете какой-нибудь дистрибутив и вылижете его напильником, чтоб летал и на первом Пентиуме в 32 мегах! И я даже видел такие дистрибутивы, они прекрасны, но с ними потом придется ебаться годами, собирать софт и читать мануалы, когда понадобится подвесить вебкамеру, примонтировать флэшку или сделать еще какую-нибудь непредусмотренную хуйню. А я пользователь, я не хочу и не умею писать и компилировать софт! Не надо мне рассказывать, как это просто и здорово! Мне на хуй не уперлось читать тонны документаций и медитировать, что означает и как поступить если "ОШИБКА КОМПИЛЯЦИИ: установите библиотеку не ниже huiTamLib-2.4.0". При том, что в системе, разумеется, давно присутствует какая-нибудь "huiTamLib2-5.1"? Ее предлагается снести чтобы отвалилось полсистемы или обновить до старой чтоб полсистемы отвалилось? Вам же знаком этот повседневный линуксовый дзен, не правда ли? Так не надо наверно пиздеть, как легко одним нажатием кнопки сами по себе собираются любые программы. Да и, скажите, на хуя это мне, пользователю?.

razgovor.org За что я ненавижу Линукс

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

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

2008-06-03

Задачи Демократов по отношению к Советам (России)

Слыхали про "План Даллеса"? Нет, это не то же, что "план Путина", хотя и близко. А я вот наткнулся на текст. Прочел, многое стало понятнее - процессы вокруг России и в мире, связанные с США. А что поразило больнее всего - в документе рассмотрены задачи решаемые мирным путем и, не приведи Господи, военным. Так вот, фактически, мы просрали войну штатам даже не воюя. Они достигли своих целей-максимум, за усилия минимум. Они нас переоценили. Обидно и стыдно. Я тут надергал наиболее показательные цЫтаты, ссылки на оригиналы - в хвосте.

.Нашими основными задачами в отношении России на самом деле являются только две следующие :

а. Уменьшить мощь и влияние Москвы до таких пределов, при которых она больше не будет представлять угрозу миру и стабильности международного сообщества;

и

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

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

А именно:

(а) Что суверенные и равноправные страны могут мирно сосуществовать бок о бок и сотрудничать друг с другом без претензий или попыток установить одностороннее господство;

(б) Что конфликт не является необходимой основой международной жизни, что народы могут иметь общие интересы, не имея полного согласия в идеологии и не подчиняясь единому авторитету;

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

(г) Что международное сотрудничество может и должно сближать интересы обеих сторон даже и при различии их идеологических платформ;

и

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

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

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

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

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

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

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

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

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

(а) Не будет обладать большой военной мощью;

(б) Будет экономически сильно зависим от окружающего мира;

(в) Не будет обладать слишком большой властью над национальными меньшинствами;

и

(г) Не установит ничего, напоминающего железный занавес в отношение контактов с окружающим миром.

Таким образом мы можем смело утверждать, что в случае войны с Советским Союзом наша цель - проследить за тем, чтобы после окончания войны никакому режиму на российской территории не было позволено

(а) Сохранять военные силы в количестве, способном представлять угрозу любому соседнему государству;

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

(в) Отказывать в автономии и самоуправлении основным национальным меньшинствам;

или

(г) Сохранить какое-либо подобие нынешнего железного занавеса.

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

Прежде всего желательно ли в этом случае, чтобы нынешние территории Советского Союза оставались объеденены одним режимом или же желательно их разделение? И если желательно оставить их едиными, по крайней мере в значительной степени, то какую степень федерализма должно соблюдать российское правительство? Как быть с основными национальными меньшинствами, в частности с Украиной?

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

В случае с Украиной проблема совсем иная. Украинцы - наиболее развитый из народов, находящихся под управлением России в настоящее время. В целом они обижены российским господством; их националистические организации за рубежом активны, к ним прислушиваются. Было бы легко прийти к выводу, что они должны получить наконец свободу от российского управления и реализоваться в качестве независимого государства.

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

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

Экономика Украины неразрывно сплетена с экономикой России в единое целое. Никогда не было никакого экономического разделения с тех пор, как территория была отвоевана у кочевых татар и стала осваиваться оседлым населением. Попытка оторвать ее от Российской экономики и сформировать нечто самостоятельное была бы столь же искусственной и разрушительной, как попытка отделить Зерновой Пояс, включая Великие Озера, от экономики Соединенных Штатов.

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

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

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


Директива Совета Национальной Безопасности США 20/1 от 18 августа 1948 года

2008-06-02

Примеры апачевых конфигов

Кто хочет все и сразу при конфигурировании Apache?
Вам сюда:

.htaccess Tutorials and Sample .htaccess Files
.htaccess file examples and code to get you up and running. This is the index of my favorite apache HTTP (htaccess, mod_rewrite, httpd.conf) examples, solutions, ideas, htaccess tips, apache tricks and .htaccess sample files. Some of my best server tricks and htaccess configuration techniques aren’t yet here, but are on their way. I like to semi-hide the very best solutions throughout these articles so that only the hungry find it. But 99% of these .htaccess articles are full of easy to use, cut-and-paste-ready htaccess example snippets.

askapache.com

Мегаполезно

Хороший код - безопасный код

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

.Код всегда вызывается «злым» кодом
Похоже на паранойю, но это так. Никто и никогда не может быть уверен, какой код и как вызовет ваш метод. Можно быть уверенным только в одном – ваш код работает в изменчивой среде и требует обязательной валидации всех обязательных параметров: аргументов метода, глобальных переменных, данных файлов конфигурации, строки запроса и т.д.

Исключительные ситуации заслуживают исключительных мер
Стоит запомнить раз и навсегда:
1. возврат методом кодов ошибок, вместо вызова исключения – это зло;
2. исключение не синоним ошибки.
Тут стоит сразу же определиться, что на самом деле считать кодом ошибки. Если код возвращает описание ситуации, то это – описание ситуации, но если код возвращает значение в случае возникновения ситуации, когда он не смог продолжить работу – то это и есть код ошибки, вызов которого должен быть заменен на вызов исключения.
Определение степени исключительности ошибки – это не всегда простая задача. Я рекомендую следующие правила:
• возврат кода ошибки допустим только в методах, которые тестируют ситуацию на ошибку;
• если код не может быть выполнен до конца в связи с ошибкой, то необходимо генерировать исключение;
• если код в рамках контекста решаемой задачи столкнулся с заранее известной возможной проблемой, то имеет смысл, либо завершить код с возвратом описания ситуации, либо проигнорировать проблему.

Все ответы – отрицательные
• все методы, возвращающие значения, первым делом должны инициализировать это значение самым отрицательным или безопасным вариантом (для nullable типов – это может быть null, для булевых – false, для перечислений – самое негативное значение вроде Access.Restricted);
• все методы должны иметь одну точку для возврата значений.

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


habrahabr.ru/blog/webdev

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

Архив блога

Ярлыки

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) Java (22) humor (22) knowledge (22) translate (20) CSS (19) cheatsheet (19) hack (19) Apache (16) 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) Klaipeda (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) купи/продай (9) Photo (8) 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) 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) serialization (1) spatial (1) tie (1) vim (1) Науру (1) крысы (1) налоги (1) пианино (1)