вторник, 28 июля 2009 г.

.htaccess и поддомены (sudomains)

Господи, как же давно тут не был. Буду теперь пользовать сие детище web-индустрии.

Основная причина, для которой используется подобная возможность Apache и .htaccess - это возможность использования неограниченного количества поддоменов, считая, что каждая папка с контентом в заранее обусловленной, является поддоменом. Например, (тут и далее будут приводиться реальные примеры) есть сайт pfo.su, в нем есть папка cities, в которой куча других папок (kirov, kazan и тд), их и надо сделать поддоменами. Т.е. kirov.pfo.su на самом деле является pfo.su/cities/kirov/.
Спасибо этой статье за подкинутую мысль.
Решение проблемы оказалось элементарным. Нужно было лишь в файле .htaccess, находящемся в корне pfo.su, прописать следующее:

RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_URI} !^/cities
RewriteCond %{HTTP_HOST} !^www\.pfo\.su$ [NC]
RewriteCond %{HTTP_HOST} ^(www\.)?(.*)\.pfo\.su$ [NC]
RewriteRule ^(.*)$ cities/%2/$1

Где:
RewriteEngine On [включаем движок перезаписи]
RewriteBase / [указываем, что перезапись будет производиться в текущем каталоге]
RewriteCond %{REQUEST_URI} !^/cities [отклоняем прямые запросы в папку cities с поддоменами]
RewriteCond %{HTTP_HOST} !^www\.pfo\.su$ [NC] [указываем, что правила действуют только для сайтов на поддоменах, а не на самом pfo.su]
RewriteCond %{HTTP_HOST} ^(www\.)?(.*)\.pfo\.su$ [NC] [проверяем, идет ли запрос на поддомен]
RewriteRule ^(.*)$ cities/%2/$1 [выдаем контент из папки поддомена, название которого берем из вторых скобок предыдущего выражения, его дописываем к запросу в папку cities и в самый конец приписываем сопсно сам URI]

Вот и все.

вторник, 25 марта 2008 г.

OpenSolaris step #1

Решил вот на днях поставить/посмотреть OpenSolaris Developer Edition v5.11, диск с которой прислали аж с самого Чикаго.
Цель сегодняшнего степа 1: настройка пакетного менеджера pkg_get. Ибо, по каким-то понятным одниму только руководству Sun Microsystems, в OpenSolaris нет нормального пакетного менеджера, коими обладают OpenSuSE, Mandriva и др. Linux системы.
Но на помощь в этом случае пришел проект BlastWave. Который занимается разработкой и поддержкой пакетного менеджера pkg_get.
Так вот. Установка самой системы не должна вызвать проблем: все ясно и понятно для человека, который хотя бы раз работал с Linux системами. Единственная оговорка: нужно минимум 768 МВ оперативной памяти и 8 GB свободного дискового пространства.
Собственно, к установке пакетника.
Для начала нужно скачать этот самый менеджер. Находится он тут. Скачиваем, далее:
#cd /patch/to/pkg_get
#pkgadd -d pkg_get.pkg all

Когда установка зканчивается, нужно скачать wget:
#/opt/csw/bin/pkg-get -i wget
Соответственно, уж не знаю как, но должно быть настроено рабочее интернет подключение. Установка происходит автоматически, нужно лишь в нужных местах два рза нажать "y" :)
В принципе, система готова к работе с репозитариями пакетов. (Настройка pkg-get будет рассмотрена далее)
Ну и напоследок, нужно добавить определение путей размещения бинарников, установленных pkg-get, в систему:
#PATH=/opt/csw/bin:$PATH
#export PATH

понедельник, 14 января 2008 г.

wifi -> ethernet. fase #1 "Routing"

Есть ноутбук с wifi, десктоп с wifi + ethernet:

десктоп - eth0: 10.0.0.0/21; wlan0: 169.254.1.0/24
ноутбук - wifi by atheros 169.254.1.0/24

Нужно настроить прозрачный доступ с ноутбука в сеть 10.0.0.0/21. Для этого на десктопе, находящимся под управлением OpenSuSE 10.3, используем SuSEFirewall, который умеет "маскировать".
Нужно отредактировать /etc/sysconfig/SuSEfirewall2:
//внешний интерфейс
FW_DEV_EXT="eth0"
//внутренний интерфейс
FW_DEV_INT="wlan0"
//разрешаем перенаправление
FW_ROUTE="yes"
//разрешаем "маскарадинг"
FW_MASQUERADE="yes"
//по умолчанию маскирующий интерфейс - внешний, eth0
FW_MASQ_DEV="zone:ext"
//разрешаем неограниченный доступ сети 169.254.1.0/24 в сеть 0/0 (внешнюю)
FW_MASQ_NETS="169.254.1.0/24,0/0"
(Хотя, если не замарачиваться, то просто FW_MASQ_NETS="0/0" - неограниченный доступ)

Далее
# /etc/rc.d/SuSEfirewall2_init restart
# /etc/rc.d/SuSEfirewall2_setup restart

Для начала все. Таки образом настроен доступ из сети 169.254.1.0/24 в сеть 0/0 посредством SuSEfirewall.

четверг, 3 января 2008 г.

Новый Год? Уже?

- С Новым Годом, детишки! Угадайте! Кто я?
- Ты наш дедушка, переодетый в Деда Мороза...

Так или иначе, прошлого времени сказки уже не производят должного впечатления на современных детей, да и на всех остальных тоже. Теперь уже и не понятно, что сие есть такое, этот... Новый Год. Елка, украшенныя всевозможными вещами, гирляндами, вкусностями, праздничный стол, хорошее настроение, шумная компания (или тихая семейная идилия).. и тд.. С виду похоже на обычный праздник, а нет! Это же Новый Год, время прихода нового, забытия старого и прочих событий, которых так ждут многие, уже давно не веря в сказки, однако по-прежнему ждущих от НГ каких-то чудес.
Вот и моя крайне атеистично-реалистская натура столкнулась с парадоксом, с которым, кроме как просто принять, ничего не получилсь сделать. "Как встретишь НГ, так его и проведешь" гласит народная поговорка, что, собственно, и оказалось тем самым парадоксом. Поэтому этот НГ старался встретить как можно на более позитивной ноте, дабы окончательно убедится в реальности подобных вещей. Сие мероприятие, можно сказать, удалось на славу. Хотя и не было того самого нужного новогоднего настроения, но, в целом, все прошло довольно замечательно.
С утра сплошные приготовления: нарезать, сварить, почистить, налить, выпить, закусить и др. Отличное настроение, поднимаемое потихоньку пьющимся вином ("чтоб в горле не сохло"), веселая компания (одному же скучно готовить), атмосфера, наводимая 31м числом, елкой и ледяной горкой... Все двигается. Порой и убиваешь целый день на одну готовку покушать (раз в год то можно :) ).
Тем временем день к вечеру движется, нада бы сил понабраться (вся ночь впереди) да и отдохнуть от готовки пищи. Отдохнули... И вот! Собрание, все нарядные, кто то в мишуре, кто-то в дождике, кто-то просто веселый - все, оъединенные одной лишь целью, собрались на месте в трепетном ожидании начала нового дня, первого утра НГ.
А не встречается новое утро на голодный желудок и трезвый рассудок - про это конечно никто не забыл, поэтому дело остается за малым: "для храбрости", "для сытости" и "в бой!". Владимир Владимирович, Вам слово, пожалуйста. Спасибо! Хорошо сказали! И... "Россия священная наша держава..." Вот оно, новое утро! Все начинают загадывать желания во время боя Курантов, с предвосхощеним смотрят в будущее через граненую емкость во время празднования, по крепче целуются и обнимаются в надежде провести следующий год с находящимся рядом человеком. Так и задумываешься: "не... они чегой это.. взаправду?" А может и нет, а может и да. А ведь и сам, в текущей атмосфере праздника, улыбок и подвыпивших глаз, поневоле начинаешь каким-то одному тебе понятным образом пытаться заглянуть в будущее, ведь оно очень таинственно и желанно, и к тому же как не хочется отбиваться от коллектива. Однако, стоит лишь дойти до кондиции, все твои мечтания о своей будущей жизни полностью вытесняются планированием проведения остатка новогодней ночи, ибо она вот сейчас, а будущее оно потом, начнется после того, как проснешься. Вот и получается иногда, что, просыпаясь на утро, единственное, что можно вытащить из головы, так это мысль "жеско оттянулись". Какая уж там новогодняя суета, снежинки, дед мороз и шампанское под бой курантов :)
И тем не менее... Встречу НГ считаю удавшимся, хоть он и был встречен не так, как мог бы быть, но это сути не меняет: НГ он и в Африке НГ :)

четверг, 1 ноября 2007 г.

Что наша жизнь - ?....

Сколько живу - не перстаю удивляться людям, узнавать что-то новое о них и тд. Можно сказать, каждый день что-нибуть новое. Смотришь на них: у всех какие-то проблемы, у всех какие то дела, стрессы, радости, развлечения, неудачи и победы - а в конце концов получается, что все мы одинаковы (две руки, две ноги и тд :) ). И попросту, то, чему почему меня люди не перестают удивлять, так это только то, что, хоть мы и одинаковы и проблемы с делами у нас одинаковы, но каждый вносит в ети дела/проблемы частичку себя, и в итоге получается нечно совершенно новое. Но есть одна вещь, в которую ни один человек не в силах внести что-то свое. В народе это называется "любовь".
Какое к черту материальное благополучие, моральное спокойствие, карьера, имущество, богатство - только ради нее и живем. Стоит ей только появиться, так сразу же все выше перечисленное становится на второй план. Доказано, проверено, подтверждено...
Как ни пытались люди (поэты, художники, психологи, дяди Васи, тети Тани) описать/рассказать/определить по-своему сей феномен, а все равно все приходят к одному и тому же: она есть и ее невозможно описать, только почувствовать.
А внешне она проявляется всет-таки по разному: у кого-то в обычном желании быть рядом с ней/ним, у кого-то в маниакальном преследовании различной степени тяжести любимого объекта, у других... Вариантов куча... Кому повезло и встретили ответную - счастья их нет предела, кому же нет, и чувство односторонне (безответно), им тяжело: мучения/раздумья/волнения/стрессы сразу же дают о себе знать. Ив этом случае далеко не факт что объект обожания, даже если узнает или уже знает, ответи взаимностью, пусть даже через некоторое время. В этом случае приходится бороться только самому с собой: никто не в силах помочь преодолеть данное чувство просто так.
Есть одна теория (разработанная и проверенная мною), касающаяся данного факта. Человеку с рождения дается определенный потенциал чувств, который с возрастом постепенно накапливается и примерно лет после 12 скорость накопления начинает уменьшаться. Т.о. годам к 25 он вообще перестает расти. Однако, именно после 12 (примерно, у всех по разному) он начинает проявляться (переходный возраст и все такое). Веть всегда говорят, что первая любовь запоминается всегда. Из теории следует, что при первой возможности этот потенциал расходуется очень сильно (т.к. его накопление происходило многие годы, эффект газ. воды, стоит только потрясти :) ). Отсюда бывают крайне тяжелыми переживания, расстройства если она безответная. Если же ответная, то так же, не факт что она станет первой и единственной (потенциал еще немаленький). Однако, из-за очень сильно выплеска чувств, "первая" остается навсегда в жизни. Все последующие выплески происходят с каждым разом все менее и менее болезненнее и проще, т.к. потенциал расходуется медленнее с каждым разом. Поэтому и получается, что все последующие влюбленности оставляют в жизни гораздо меньший отпечаток. Так что, нада быть аккуратнее с этим потенциалом т.к. внешняя "ответность" в чувствах может быть ложной.
Данный потенциал всегда имел очень сильное влияние над людьми. Его всплески напрочь отключают всю логическую деятельность человека, т.к. мозг у нас слабенький и не в состоянии справляться с такими нагрузками организма. Очень часто такие всплески не только отключают логику, но и заменяют ее. Поэтому постоянные мысли/переживания - это не умственная деятельность, а чувственная, что бы ни говорили в этом случае. Вот поэтому и нужно быть аккуратным, дабе не перепутать и не остаться одному. Это сложно, заставить в такой ситуации работать мозг, но только в этом случае можноо хоть как-то попытаться сохранить свой потенциал (его маленькое количество или вообще отсутсвие кординально меняет жизнь человека в худшую сторону, и самого его) и расходовать его исключительно в нужное времяи на нужного человека.
Знаю, что для многих людей сей пост покажется абсурдом. НО! Задумайтесь... Вспомните свою первую любовь. Если она была безответной, то как же тяжело вам было в этот момент. Вспомните, что вы чувствовали после нее. И как было проще влюбляться и расставаться последующие разы.
Те же, для кого она была все-таки безответной переносят ее по-разному. Кто-то успокаивает себя, что все будет отлично. Кто-то исщет ответы на вопросы: "почему не я, а он(она)?", "почему она (он) так со мной поступила?" и тд. Вариантов огромное количество, у каждого свой.
Если же вам все таки не повезло, не нужно искать причины, ругать себя, ее (его), пытаться изменияться, что бы "быть достойным (ой) ее (его)" и тд. Люди одинаковые и разные одновременно. И причина только в этом. Это так же, как и ОС не совместима/не поддерживает оборудоване - ну не судьба. Вот и все. А проводя различные анализы причин неудачи в любви, можно только себе навредить морально и духовно. Т.к. постоянные размышления и мысли не дают покоя и могут напроч выбить из колеи.
Люди, будьте сильными и властными над собой... Если что-то не получилось, не бросайтесь чувствами... Оберегайте их... Они вам очень нужны...

среда, 19 сентября 2007 г.

Этот забавный и коварный мир ОСей

Операционная система - набор программ, которые полностью управляют компьютером и контролируют его работу, а так же с помощью которых осуществляется взаимодействие пользователя с компьютером и создание/запуск других программ/ОСей.*
Все крайне просто и до скуки неинтересно. Разговор окончен?... Нет.
Большое многообразие платформ компьтеров (домашних, серверов, кластеров, суперкомпьютеров) работют под управление еще большего многообразия ОСей. У каждой свои особенности, свои плюсы и минусы. Одни платные, другие бесплатные. Одни закрытые и полностью проприетарные, код других абсолютно открыт для всех. Сравнивать можно по разным признакам, но всех их объединяет одно - первый абзац :-)
95% процентов современной молодежи начинали свое освоение РС с ОСи Windows - некода совершенно неизвестной и на 100% глючной, но со временем преобразившейся в самую используемую ОСь на планете и, грубо говоря, вполне стабильной. Остальные же (им за это огромный плюс) начинали с других.
Linux (SUSE, Debian, RH, ALT, Mandriva/Mandrake и тд), NetWare, Minix, xBSD - огромное количество ОСей работающихся/разрабатывающихся институтами/корпорациями/сообществами в мире. Хотя, в настоящее время на РС все-таки стоят две ОСи: Windows и разновидности Linux (пусть и не корректно говорить "ОС Linux", нада говорить GNU/Linux, а вообще, Linux - это ядро, а все остальное - это дистрибутивы, но для простоты буду говорить Linux ). Так же немалая разновидность стандартов, описывающих мир "никсов". Основной из них - Single UNIX Specification, ранее известный как POSIX. И только Windows подчиняется другому стандарту - собственному стандарту компании Microsoft.
В делах с Microsoft все ясно - их ОСь полностью направленная на пользователя (на столько, что пользователю даже думать часто не приходится), что собственно и определило/определяет мировой успех данной ОСи. С миром "никсов" все гораздо интереснее и одновременно запутанее (смотреть тут). Возможность абсолютно полной настройки системы (настроки храняться в текстовых файлах), построения конвееров из программ, широкие возможности для работы с файловой системой (а так же NFS, VSF и тд) и др, к тому же ОСи данного типа распростарняются совершенно бесплатно. Но и тут есть свои исключения. Так же имеются и платные ОСи: NetWare, SCO OpenServer, HP-UX (кстати одна из трех ОСей, которая полностью соответствует стандарту UNIX) и др.
Эх... Про ОСи можно писать долго и упорно, и все равно времени не хватит, да оно и не требуется...

** Если интересно более подробно знать, что за "зверь" такой ОС, советую почитать книгу Эндрю Таненбаума "Операционные системы".

суббота, 18 августа 2007 г.

Программер + Пользователь = GUI

Кто больше старадет от неудобного и некорректного пользовательского интерфейса? Программер или пользователь? Наерное, оба. Первый, потому что постоянно получает жалобы в той или иной форме от тех, кто пользуется его творением. Второй, потому что он, собственное, этим и пользуется.
Извечная проблема взаимодействия обеих сторон.
Она, наверное, не будет решена никогда, потому что программер никогда не сможет учесть все желания и прихоти пользователей его программы. Проблема требует решения, которое должно вылиться в некий "абсолютный интерфейс".
Похоже, что дело начинает ударяться в философию, что и не удивительно. Требуется определить некие принципы етого "абсолютного интерфейса". Т.е. суть проблемы состоит в невозможности создания данного творения. Однако, необходимые принципы все-таки можно и нужно выделить и применить.
Рассматривать интерфейс можно с различных сторон: web-интерфейс, консоль (там тоже возможна реализация GUI), программный интерфейс. Все ети три вещи по суть слишком разные, но вместе с тем они едины: их главная цель состоит в том, чтоб сделать работу с сервисом или программой максимально удобной и практичной. Так как моя деятельность связана с web-программированием, я остановлюсь подробнее именно на web-штерфейсе.
Web-интерфейс. В данное время можно разделить wtb-приложения на две части: классический и современный. Проболема классического всего лишь в одном: в том, что при совершении любого действия страница перегружается полностью, отвлекая пользователя от его основной работы. Вместе с тем его создание достаточно простое и не требует каких то больших затрат времени, сил и средств. Новые приложения, в частности построенные на технологии Ajax лишены данной проблемы: пока пользователь совершает действите, его результат создается асинхронно, в фоне, вместе с тем не отвлекая его от основной работы. Однако, данный интерфейс требует больших знаний и затрат, в следствие чего увеличивается его ресурсоемкость и стоимость.
Обе технологии имею свои + и - . Простота и неудобство против сложности и удобства (простите за тафталогию :-) ). Что применять - судить вам.
Приложения, построенные на технологии Ajax, называют переходными, однако к чему они переходные, не берется сказать никто. И современное развитие технологий web-программирования не позволяет объединить классическое и новое приложение.
Теперь я постараюсь выделить основные требования к GUI, построенному на web-технологиях.
Первое, и самое главное, - это ресурсоемкость. Современные web-приложения содержат всегда огромное количество анимации и графики, что потребляет не только большое количесвто ресурсов компьютера но и трафика (последнее почти везде основное требование). Поэтому требуется умеренное количество графики и подобных ресурсов, присутствующих на странице. Потому что, т.к. любой запрос отправляется на удаленный сервер, т.е. всегда происходит большая трата времени, неизбежная трата, связанная с большим количеством факторов: удаленность сервера, тип линии, количество задач, выполняемых на сервере и т.д. Но графика - это всего лишь часть проблемы. Другая часть - это объем страницы. Современные web-страницы содержат много JavaScript и др. программных частей, что, опять же, не только увеличивает время загрузки но и увеличивает расход ресурсов компьютера, необходимых для выполнения скрипта. Поетому, тут так же важен факт расхода трафика и время отображения страницы, к тому же, не везде стоят современные браузеры, много компьюетров, работающих на старых платформах со старым ПО, и на них просто может не быть необходимого ПО для работы с современным web-контентом. Поетому, пять же требуется умеренное применение современных технологий. В етом плане требуется хотябя альтернатива, т.е. имется возможность работы с обычным интерфейсом (классическим).
Второе, неменее важное - это, как я уже писал выше, то, что при работе с классическими web-приложениями при совершении различных действий, требуется полная перегрузка страницы, что ведет за собой простой работы, трата времени на ожидание, к тому же, работающий отвлекается от основной задачи - все это может привести к серьезным неудобствам. Однако, современное развитие технологий в сфере web-приложений позволяет устранять данный недостаток в той или иной степени. И в этом состоит большой + современных приложений перед классическими. Может показаться, что данный тип интерфейса съедает больше трафика, ресурсов, и, следовательно, времени на работу. Однако это не так, потому что динамическое web-приложение раходует больше ресурсов лишь на первой стадии работы, дальше происходит обновление лишь необходимых частей, и соответственно загрузка данных лишь по требованию, что в принципе не может быть реализовано в классическом web-приложении, потому что там при всяком действии происходит обновление станицы. Поэтому приложение, построенное например на технологии Ajax в конечном итоге все таки выиграывает у классического.
По данной теме можно проводить обсуждения сколь угодно долго, поэтому я закончу, рассмотрев лишь самые основные аспекты и высказав лишь свое мнение. Что будет дальше - посмотрим. Развитие web-технологий движется гораздо быстрее остальных систем программирования.