Проверка email регуляркой

Сейчас пишу для проверки email регулярное выражение. Вот что своял:

"/^[\w_\.-]*@[\w_-]*\.[\w_\.-]*[a-z]$/i"

Мне кажеться вроде охватывает все. Какие есть мнения?

Правила работы с SVN

Почему-то в интернете очень мало информации по правильной работе с системами контроля версий. Решил выложить свой опыт по правилам работы с репозиторием.
  1. В репозитории должна быть только рабочая версия проекта. Это также должно проверяться периодическим обновлением и испытанием в production-подобных условиях (в идеале после каждого комита). P.S. Вообще то согласно принципам непрерывной интеграции, этот процесс нужно автоматизировать, но как правило это неоправдано в web.

  2. Перед каждым комитом разработчик должен проверить работоспособность проекта на рабочей станции. Если были затронуты участки кода которые могли потенциально повлиять на чужие модули, то проверке должны быть подвержены все эти модули (в случае необходимости в присутствии автора проверяемого модуля). З.Ы Это необходимый минимум, а вообще то положено запустить тесты.


( Читать дальше )

Подключение FCKEditor к CodeIgniter

Делаеться это так:
Заливаеться редактор в корень проекта и в system/helpers/form_helper.php пишеться функция fcke()
Это на быструю руку, вообще пользовательские хелперы туда лучше не писать.
Цитата из доки:
Хелперы, как правило, хранятся в папке system/helpers. Так же вы можете создать папку с названием helpers внутри вашей папки application и хранить собственные хелперы там. CodeIgniter сначала будет искать хелпер в папке system/application/helpers. Если директория не существует, либо файла с таким названием не найдено, CI продолжит поиск в вашей папке system/helpers.


function fcke($value='',$name='FCKeditor1',$width='600px',$height='400px',$basePath='/fckeditor/')
    {
       include_once("fckeditor/fckeditor.php") ;        
        $oFCKeditor = new FCKeditor($name) ;
        $oFCKeditor->BasePath = $basePath;
        $oFCKeditor->Value = $value;
        $oFCKeditor->Width = $width;
        $oFCKeditor->Height = $height;
        return $oFCKeditor->CreateHtml();
    }
}

Вот и все дело с концом все очень просто. Пишеться за 30 сек.И удобно подключать.
В шаблоне пишем:

<?php echo fcke() ?>

Незабываем подключить хелпер в контроллере, а лучше прямо в шаблоне

$this->load->helper('form');

Склонение - день, дня,дней

Очень часто приходиться выводить пользователю числительную информацию, например 2 дня, 3статьи, 5 комментариев и т.д. Это склонение не так то и сложно осуществить автоматически. Есть несколько форм существительных в русском языке при употреблении с числительными — это единственная, двойственная и множественная. Для автоматической работы с этими формами можно воспользоваться простой ф-цией:

function declension($n,$string=array('день','дня','дней'))
{
    $n = abs($n) % 100;
    $n1 = $n % 10;
    if ($n > 10 && $n < 20) return $string[2];
    if ($n1 > 1 && $n1 < 5) return $string[1];
    if ($n1 == 1) return $string[0];
    return $string[2];
}

Для легкости составления массива нужно воспользоваться мнемоническим правилом — пишем сначала слово для одного предмета, потом для двух и для пяти.К примеру 1 месяц, 2 месяца, 5 месяцев. Вот собственно и все, пользуйтесь на здоровье!

Сессия - вспышка(flash)

Иногда необходимо воспользоваться сессиями, да при том так чтобы при чтении сразу удалять параметр. Естейственно это несовсем удобно, так как нужно каждый раз писать удаление. Этот процесс можно автоматизировать. Я для этого взял идею с фреймворков Symfony и других (там есть такое понятие как Flash)


<?php
class Flash
{
    private $container=array();
    public function __construct()
    {
         if(isset($_SESSION['flash'])){
            $this->container=$_SESSION['flash'];
            $_SESSION['flash']='';
         }
    }
    public function set($name,$value)
    {
         $_SESSION['flash'][$name]=$value;
    }
    public function get($name,$defaultvalue=null)
    {
         if(empty($this->container[$name])){
             return $default_value;
         } else {
             return $this->container[$name];
         }
    }
}
?>



( Читать дальше )

Хранение файлов в вебе

Иногда удобно держать файлы в вебе. Для этого существует целое море сервисов. Но один хотел бы отметить отдельно fileqube.com

Есть два вида аккаунтов lite и pro, первый бесплатный, второй стоит 5,95 долларов вмесяц. Но в принципе и бесплатного достаточно. Он позволяет хранить 2 ГБ данных. Трафика правда маловато 256 МБ в месяц. Но и этого для большинства случаев более чем достаточно.

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

Весь проект построен на ajax, и вообще с технической точки зрания все сделано восхитительно и красиво. В общем рекомендую.

Gspace

Недавно случайно узнал что существует такой плагин к FireFox как Gspace. Он позволяет хранить файлы на почтовом ящике gmail. Вернее хранить вы можете их и так, но он предоставляет удобный интерфейс для заливки файлов. Т.е перед вами будет две колонки, одна из них — ваша машина, а другая — фаловое хранилище на основе почты. На самом деле этот плагин просто посылает письмо с файлом самому себе. При этом определенным образом форматирует письмо (в своем формате).

Этот сервис будет полезен тем, кому удобно хранить файлы онлайн.

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

В принципе мне этот сервис не к чему, так как я пользуюсь amazon S3 но кому то может понадобиться

Отзыв о CodeIgniter

Посморел на codeigniter(русская документация на сайте http://code-igniter.ru/) и чесно говоря не очень доволен. ИМХО етсь такие недостатки:
-неудобная система обращения к гет-параметрам.
-слой базы дынных организован авторами фреймверка, хотя могли использовать более удачное решение, например PDO.
-файл .htaccess если сделать как рекомендуеться в мануале, то на фронтконтроллер будут идти все запросы кроме картинок и robot.txt (это утверждение из мануала). А как же стили и JavaScript и все остальное??? Вместо этого имхо нужно было построить файл .htaccess так как в symfony (проверка на физическое существование файла).

( Читать дальше )

Amazon S3

Недавно зарегистрировался на сервисе amazonS3 и очень доволен. Давно ждал чего-то подобного. Для тех кто не знает — это сервис распределенного хостинга файлов. Вообще эта система разработана amazon для собственных нужд, но начиная с 2006 года предлагает ее и другим. На сегодняшний день вся эта система находиться в пяти датацентрах, чать в США и часть в Европе.

Система построена по принципу избыточности, т.е все файлы храняться в нескольких экземплярах, и как в случае с гугловскими системами использует компоненты массового спроса, иными словами дешевыми ПК (как домашние, только с bios и системой питания серверного уровня).

( Читать дальше )

У вас еще установлено много браузеров????

Существует довольно интересный сервис http://browsershots.org. Он позволяет делать скриншоты вашего сайта в разных браузерах. Придется немного подождать, так как ваш процесс сначала становиться в очередь. Затем через некоторое время обновляете страницу и перед вами куча картинок. Которые кстати можно скачать. Очень интересный сервис для верстальщиков, но скорее как контрольная проверка перед окончанием, так как в реальности столько времени ждать возможности нет.