Итак, пингвиноводам посвящается.
Часто задаваемый вопрос новичка в программировании на PHP: А в чем писать, с чего начать?
Ответ конечно банальный, а зачастую вообще пренебрежительный: Пиши в блокноте и не парься. Ставь Апач, настраивай сервак, поднимай Мускуль... и т.д.
Нет, конечно, я согласен, что знать значение всех этих хитрых слов - нужно и полезно, но иногда такой облом начинать выяснять, что все это значит и с чем его едят. (По себе заню). Тем более, когда все более или менее стает ясно с Виндой, то Линукс в плане среды разработки и средств тестирования, может на долго затянуть начинающего разработчика в дебри конфигураций и команд терминала.
Кончено, "мы не ищем легких путей", и я бы рекомендовал пройти этот путь с самого начала, что бы понять как и что конфигурируется в том же Апаче и Мускуле, но, порой возникают ситуации, когда необходимо быстро и без лишних заморочек поднять на Линуксе сервак для тестирования сайта. Так что же, заседать за книги и мануалы с мутными трактовками каждой строки ini-шек?
Мой ответ: вовсе нет!
Есть гораздо более простой способ (в Окнах он тоже есть, но это другая тема, более простая для прогугливания). Так вот, этот способ - установить связку LAMPP!
Нет, нет... я отлично знаю как пишется "лампа" по-английски. На самом деле LAMPP, это комплект из Linux+Apache+MySQL+PHP+Perl. Итак, все предельно просто.
Для начала устанавливаем пингвина любой породы на свой дэсктоп или лэптоп.
Дальше качаем XAMPP (X - означает одну из четырех платформ, на которых сие чудо работает) с домашней страницы проекта: http://www.apachefriends.org/en/xampp.html
Дальше следуем прилагаемой инструкции на все той же странице. Теперь перезагружаемся (без этого у меня не заработало, что вполне логично, ведь еще не прописались в системе команды старта всех серверов)
После установки заходим в консоли или обычном графическом окне файлового менеджера в папку /opt, где выполняем лежащий там sh-скрипт lampp.
Вуаля, теперь адрес 127.0.0.1 (или попросту localhost) выдает нам не ошибку, а симпатичную страницу с логотипом проекта. Остается выбрать родной (английский :-/) язык и приступать к тестированию, а позже и к работе над чем-то интересным.
Не забудьте так же про рекомендацию из раздела A matter of security (A MUST READ!) и не поленитесь настроить все, что касается безопасности.
Для совсем новеньких, подскажу: файлы проектов нужно ложить в папке /opt/lampp/htdocs/
Ах да, чуть не забыл: писать код можно в предустановленных редакторах вашего любимого дистрибутива пингвинария, а если вы привыкли к чему-то вроде ZendStudio, то спешу обрадовать - она отлично работает под .wine
Небольшой секрет (который на самом деле вовсе не секрет): сменить язык интерфейса можно подправив файлик конфигурации Zend и проставив в соответствующих строках значение ru. Кстати говоря, в списке языков, русский все таки не появится и потому если вы зайдете в настройки после этой нехитрой манипуляции и нажмете Ок, то сбросите язык в английский (придется опять править конфиг).
Удачно вам от-PHP-ить своего пингвина! :)
Настроение сейчас - супер
В рунете, оказалось, проблематично найти не только регулярное выражение для валидации ФИО, которое пришлось в итоге писать самому, но и для проверки банального URL.
На этот раз, отделался легким испугом: нашел выражение на западном ресурсе и слегка модифицировал его для соответствия требованиям.
Сам же требования, кстати, нашел вот тут: http://zcontest.ru/2008.02/zrex.php
... правильным URL считаются адреса http и https, явное указание протокола также может отсутствовать. Учитываются только адреса, состоящие из символов, т.е. IP адреса в качестве URL не присутствуют при проверке. Допускаются поддомены, указание порта доступа через двоеточие, GET запросы с передачей параметров, доступ к подпапкам на домене, допускается наличие якоря через решетку. Однобуквенные домены считаются запрещенными. Запрещены спецсимволы, например «-» в начале и конце имени домена. Запрещен символ «_» и пробел в имени домена. При составлении регулярного выражения ориентируйтесь на список правильных и неправильных выражений заданных ниже.
Пример правильных выражений:
http://www.zcontest.ru
http://zcontest.ru
http://zcontest.com
https://zcontest.ru
https://sub.zcontest-ru.com:8080
http://zcontest.ru/dir%201/dir_2/program.ext?var1=x&var2=my%20value
zcon.com/index.html#bookmark
Пример неправильных выражений:
Just Text.
http://a.com
http://www.domain-.com
![]() | ![]() | ![]() | ![]() |
![]() |
Многофункциональный элемент экрана «Сегодня»
* Легко настраиваемый экран «Сегодня»
* Drag-and-drop
* 30+ превосходных скинов
* Запуск приложений в один клик
* Размещение других плагинов во вкладках
Превратите ваш Internet Explorer в полнофункциональный веб-браузер
* Вкладки как в IE7
* Перетаскивание веб-страниц пальцем
* Быстрая панель поиска
* Сохранение веб-страниц
* Просмотр HTML-текста страниц
Все функции, упущенные в проводнике (File Explorer)
* Поддержка ZIP-архивов
* Шифрование файлов
* Свойства файлов (возможность просматривать и изменять атрибуты и расширение файлов)
* Форматирование карт памяти
* Проверка размера папок
Кнопка «Закрыть», которая на самом деле закрывает приложения!
* Завершение приложений, а не минимизация
o ускорение устройства
o освобождение памяти
* Диспетчер задач
* Показ запушенных приложений по долгому нажатию
Прокрутка интернет-страниц, списка контактов, имейлов, и прочего — пальцем
* Простая и интуитивная прокрутка
* Оптимизирована для пальцев
* Перетаскивание
* Кинетический эффект
* Совместима со стандартными приложениями
![]() | ![]() | ![]() | ![]() |
![]() | ![]() | ![]() | ![]() |
![]() | ![]() | ![]() | ![]() |
![]() | ![]() | ![]() | ![]() |
![]() | ![]() |
Настроение сейчас - нормальное
Сегодня по долгу службы, пришлось писать регулярное выражение для валидации введенных пользователем Фамилии Имени Отчества. Увы, но великий и мудрый Гугль с Яндексом в лице моей любимой поисковой системы Nigma (http://www.nigma.ru), не смогли связать и двух слов по этой теме. Пришлось думать самому.
Конечно, проверка соответствия английского имени пользователя вполне тривиальная задача:
/^[A-Z][a-z]{2,}\040[A-Z][a-z]{2,}$/
Это регулярное выражение проверяет наличие в валидируемой строке двух слов разделенных пробелом, которые начинаются с латинских символов в верхнем регистре и состоят из тех же символов, но в нижнем регистре. причем слова эти должны иметь длину от 2-х букв и более.
Что ж, остается учесть, что в русском и украинском языках есть еще и отчество, в итоге получим такое выражение для русского:
/^
([А-Я][а-я]{2,}
\040
[А-Я][а-я]{2,}
\040
[А-Я][а-я]{2,}
$/
То есть, то же самое что для английского варианта, но с еще одним словом и русскими буквами.
Дальше - проще.
В украинском варианте стоит учесть наличие таких символов как І і Ї ї Є є Ґ ґ откуда получаем regex такого вида:
/^
[\xa5\xaf\xb2\xaaА-Я][\xb4\xb3\xbf\xba\x27а-я]{2,}
\040
[\xa5\xaf\xb2\xaaА-Я][\xb4\xb3\xbf\xba\x27а-я]{2,}
\040
[\xa5\xaf\xb2\xaaА-Я][\xb4\xb3\xbf\xba\x27а-я]{2,}
$/
Чудненько! А теперь осталось учесть, что некоторые люди берут себе двойные фамилии, то есть к своей собственной добавляют еще и фамилию мужа, жены или для женщин - сохраняют девичью фамилию.
Такие фамилии пишутся через дефис, что мы и отразим в результирующем выражении, получив на выходе моего мозга следующее:
/^
([\xa5\xaf\xb2\xaaА-Я][\xb4\xb3\xbf\xba\x27а-я]{2,}
|
[\xa5\xaf\xb2\xaaА-Я][\xb4\xb3\xbf\xba\x27а-я]{2,}
\-
[\xa5\xaf\xb2\xaaА-Я][\xb4\xb3\xbf\xba\x27а-я]{2,})
\040
[\xa5\xaf\xb2\xaaА-Я][\xb4\xb3\xbf\xba\x27а-я]{2,}
\040
[\xa5\xaf\xb2\xaaА-Я][\xb4\xb3\xbf\xba\x27а-я]{2,}
$/
Соглашусь, что для вариантов с Сен-Жюст, Мак-Магон можно и в выражении для английского языка предусмотреть использование дефиса, если они там конечно бывают.
Вот в общем-то и всё. Теперь в инете будет хоть какой-то образец подобной валидации.
Полученное регулярное выражение предназначено для проверки соответствия строки введенной пользователем формату Фамилии Имени Отчества для русского и украинского языков одновременно. Если же понадобиться анализ только русских имен, то конечно следует исключить лишние символы из этого регекса.
Теперь некий гипотетический В'яїсненко-Марусяк Мар'ян Іґнатович будет валидироваться как корректная строка ФИО!
Вот так-то...
Кстати, популярно о регулярных выражениях советую почитать здесь:
http://www.pcre.ru/
а в контексте модуля mod_rewrite тут:
http://www.egoroff.spb.ru/portfolio/apache/mod_rewrite.html
[480x486]
Пол: M Возраст:22 | 1-10 A: 5 B: 10 C: 4 E: 6 F: 4 G: 4 H: 5 I: 7 L: 8 M: 7 N: 6 Q: 10 Q1:3 Q2:3 Q3:4 Q4:7 |
ОСНОВНАЯ ИНТЕPПPЕТАЦИЯ: ПЕРВИЧНЫЕ ФАКТОРЫ (постоянно проявляющиеся): Высокий IQ: сообразительный, обучаем, интеллектуальный. Подозрительный: ревнивый, высокомерен, догматичный, соpевновательный. Чувство вины: тревожный, подавленный, обеспокоенный, депpессивный. Консерватизм: имеет установившиеся идеи и мнения, почтенный. Гpупповая зависимость: социабельный, последователь, несамостоятельный. ЛАТЕНТНЫЕ ФАКТОРЫ (имеющие тенденцию к проявлению): Эго-слабость: эмоционально неустойчив, легко расстраивается, pаздpажителен. Англоман: склонен к самоанализу, серьезный, остоpожный, сдерживает эмоции. Низкая суперэго-сила: недостаточно усвоены общепpинятые моpальные ноpмы. Женственность:чувствительный, жеманный, романтичный, мягкий, интуитивный. Аутичный: богатое воображение, богемный, поглащен своими идеями, рассеян. Низкая интегpиpованность: следует своим побуждениям, малоконтpолиpуем. Высокая эрго-напряженность: возбудимый, напряжение базальных потребностей. ВТОРИЧНЫЕ ФАКТОРЫ (интегративные свойства): Высокая общая тревожность. Беспокойный, пессимистичный, невротичный. Эмоциональная чувствительность. Утонченный, воспpиимчивый, лабильный. | |
ДОПОЛНИТЕЛЬНАЯ ИНТЕРПРЕТАЦИЯ: ИНТЕЛЛЕКТ: ВЫСОКИЙ ИНТЕЛЛЕКТУАЛЬНЫЙ ПОТЕНЦИАЛ. СПОСОБЕН К ТВОРЧЕСКОЙ РАБОТЕ ЭМОЦИИ: НИЗКИЙ УРОВЕНЬ СТРЕССОУСТОЙЧИВОСТИ. ХРОНИЧЕСКИЕ ЭМОЦИОНАЛЬНЫЕ КОНФЛИКТЫ ВОЛЯ: НИЗКАЯ СИЛА ВОЛИ. ДЕЙСТВУЕТ ИМПУЛЬСИВНО, 'ПО-НАСТРОЕНИЮ' МОРАЛЬ: МОРАЛЬНЫЕ НОРМЫ ЛИБО НЕУСВОЕНЫ, ЛИБО СУГУБО ЛИЧНЫЕ ИЛИ КОРПОРАТИВНЫЕ ЛИДЕРСТВО: МОЖЕТ БЫТЬ ЛИДЕРОМ, НО В ОСНОВНОМ ФОРМАЛЬНЫМ ИЛИ НЕЭФФЕКТИВНЫМ ОБЩЕНИЕ: ДОСТАТОЧНО КОММУНИКАТИВЕН. НО В ОБЩЕНИИ ПРЕДПОЧИТАЕТ СВОЙ КРУГ СТИЛЬ РАБОТЫ И ПРОФЕССИОНАЛЬНЫЕ ПРЕДРАСПОЛОЖЕННОСТИ: СКЛОНЕН К РАБОТЕ НЕ ТРЕБУЮЩЕЙ ВЫСОКОЙ ЛИЧНОЙ ОТВЕТСТВЕННОСТИ МОТИВАЦИЯ: СВЕРХВЫСОКАЯ МОТИВАЦИЯ. ВОЗМОЖНО, БОЛЕЗНЕННО ЧЕСТОЛЮБИВ | |
КЛИНИЧЕСКАЯ ИНТЕРПРЕТАЦИЯ: "НЕВРОТИЗАЦИЯ ПО "NT" ТИПУ! | |
Гендерные профили опросника Кеттелла 16-PF+ Протестируй себя |
Smile @rT понравилось, впечетлило Smile
Поэты - совесть для народа.
Они висмеивают зло, дают добро
И это даже не робота.
Скорее речка смысла, чем сухо русло..
А Бог карает? нам не знать
Мы дураки? Ну что же, пусть!
Тогда прошу не вспоминать
Ту божью кару - нашу грусть...
Поэт - как та птица
Поэт - как та птица,
Что кануть ввысь – не боится….
Свои чувства излагать на листе,
Что неподвластны времени.
Кто спросит зачем? Ответа не знаешь….
Просто берёшь, карандаш, и что-то черкаешь.
Перечитываешь, что-то исправляешь….
Новое дописываешь, мыслю излагаешь.
Эмоции - это всплеск: энергий, стихий,
Независимых друг от друга факторов, и крит состояний.
И тут поэт заходит в пик`е…
Излагая свое состояние в крутом вираже.
Поэт, как та птица, - которой крылья даны,
Чтоб излагать свои думы, письменно.
Быть может, кто-то прочтёт, да что-то поймёт
И чья-то жизнь с колеи бытия не сойдёт.
***
На лист бумажный бросив хлам немых словес,
И возлюбив себя за тяжкий подвиг сей.
Во мне всегда от радости приплясывает глупый бес,
Яд вдохновенья распивая в голове моей.
Пожалуй соглашусь, поэт слепец, транжира и игрок,
Дурак, что жаждет миг запечатлеть.
Богов небесных промысел, замкнув в двенадцать строк,
Пылинку манны ложит в золотую клеть.
Как неуместна здесь семантика, но стих – моя душа,
Не пойманная миром, не понята мною.
Мои стихи, душонка, глупый бес, не стоят и гроша,
Но только в них я остаюсь самим собою.
Поеты идиоты и всё им мало
их облик извращённого нахала
смыкаеться в пути
и дура-слово их летит
чего же пачкают бумагу даром
убожество считая даром
Поет-не идеот,а просто он мечтатель,
Летает в облаках не видя настояшчий мир
Он просто был прекрасным даром награждён
И в етом он поверте не виновен.
А сторочки те что из уст его летят
Были дарованы самой судьбою
И он не знал что будут муки иза етих строк
Он просто жил и жил для честного народа...
************************************
Писать стихи, чтоб поняли другие,
Которые все так же пишут чепуху,
Рифмуют строки, изливают душу
И падают в глухую пустоту.
Писать стихи - сказать простые мысли в рифму,
Но так, чтоб что-то дрогнуло в душе.
Писать стихи, возможно, нету смысла,
Но все ж мы не одни в их пустоте.
Писать стихи - взывать не к разуму, а к сердцу,
Не смысл слова передать, а его боль,
Надежду, радость, счастье и сомненье...
Поэтому поэт и пишет вновь...
Стихи вы говорите? Ах, стихи,
Что так тревожат юные умы,
Звенящей лирой, легкостью строки,
Что так слепы, наивны и темны,
Порой, бывают лестны, но глупы.
Тот час же, всем приказ пишу:
«Забросить! Все страдальческие рифмы,
Нет, я не шут, и вас я не смешу,
Считайте-ка, вы, лучше, логарифмы.
Трубите в трубы, бейте в барабан,
Устраивайте лучше балаган,
Но вот бумагу, умоляю вас, оставьте!
Поэтику и пыл свой, поубавьте».
Палыга Николай Николаевич aka Deflorator
Link: http://www.deflorator.hmarka.net/
Link2: http://deflorator.blog.ru/