Валидация формы

Комментарии ()

checkRule - js-функиця, которая выполняет валидацию даных на основе ранее заданых правил, а также вывод ошибок, если валидация прошла без ошибок. Если функция получает флаг, что ошибка есть, то   выводится  текст об ошибке возле елемента вводу формы, при этом html-страничка не перегружается, функция работает через ajax-запросы.


Читать далее

Проект "Движок"

Комментарии ()

Вместо вступления. Да! Я занимаюсь веб-мазохизмом - пишу свою CMS. Поскольку прогер из меня не получился, а тяга к писанию кода горит огнем, взвесив все за и против пришел к выводу: оно мне все таки нада wink.

Если в кратце, проблема скорее всего во мне. Промониторь популяные CMS'и, выбери себе наиболее перспективную, выучи, набей руку и вперед. Ну так не, меня все не устраивает. Wordpress убожище, в коде каша, Joomla - доставка пицы камазом, тормознутая вещь, или я просто не умею (скорее не хочу) ее правильно "готовить". Ко все как всегда мне чего то не хватает. Поскольку, как я выше изложил, мне проще самому чего-то написать, чем разбираться не понятно какого качества кода, пишу свое детище. Кстате, эти строки написаны в моем "Движке" и это уже радует.


Читать далее

Dovecot не сохраняются письма в папке отправленые

Комментарии ()

Почтовый клиент Thunderbird - при попытке отправить письмо, создается папка "отправленные" в клиенте и  на стороне сервера, но в кодировке в UTF7. Письмо в отправленные клиент сохранить не может: говорит о том что произошла ошибка, и предлагает повторить снова. 

Проблемы решилась использованием плагина Dovecot "autocreate". Для его использования необходимо  добавить в конфиг Dovecot следующее:

protocol imap {
  mail_plugins = autocreate
  }
  
plugin {
  autocreate = Sent
  autocreate2 = Drafts
  autosubscribe = Sent
  autosubscribe2 = Drafts
}

 


Читать далее

Error in system filter /etc/system_filter.exim does not exist

Комментарии ()

wget -O /etc/system_filter.exim "http://files.directadmin.com/services/system_filter.exim"


Читать далее

NFS клиент для Windows

Комментарии ()

Windows 7

В Windows 7 Ultimate есть встроенный NFS-клиент, который нужно включить

 

Дальше, монтируем шару

mount 192.168.1.1:/home/user y:

Правда возникает проблема с кодировкой, посему юзаю NFS-клиент, о котором описано ниже

Windows XP(2003)

Для этого семейста виндовсов, родного клиента нету как такого. С бесплатных понравился NekoDrive

Устанавливаем Microsoft .NET Framework 4, Dokan и сам NekoDrive


Читать далее

Бэкап/перенос FreeBSD (dump/restore)

Комментарии ()

Говорят, что системные администраторы делятся на тех, кто делает бэкапы, и тех, кто уже делает бэкапы. Ранее я чего то там бэкапил на фтп по ночам. Но недавно, после длительной инсталяции Directadmin'а и допиливания хостинг-сервера под свои нужды, по непонятым причинам побились системные файлы, в часноcти /etc/master.passwd. В общем зайти с консоли я уже не мог, да и жалко было потраченого времени. Вопрос бэкапа был отложен в длинный ящик, так как всегда находились якобы более важные дела. 

Для себя поставил задачу сделать бэкап(snapshot) системы в целом, дабы в день X развернуть ее за несколько минут. А вот бэкапы конфигов и нужных даных - как и ранее переодически хранить на отдельном сервере.

Далее опишу свою методику создания и розволрачивания бэкапа FreeBSD.


Читать далее

NFS сервер и клиент на FreeBSD

Комментарии ()

Что такое NFS?

NFS ( Network File System ) — протокол сетевого доступа к файловым системам. Основан на протоколе вызова удалённых процедур. Позволяет монтировать удалённые файловые системы через сеть.

NFS абстрагирована от типов файловых систем как сервера, так и клиента, существует множество реализаций NFS-серверов и клиентов для различных операционных систем и аппаратных архитектур. В настоящее время используется наиболее зрелая версия NFS v.4, поддерживающая различные средства аутентификации (в частности, Kerberos и LIPKEY с использованием протокола RPCSEC GSS) и списков контроля доступа (как POSIX, так и Windows-типов).

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

NFS клиенты получают доступ к файлам на NFS сервере путем отправки RPC-запросов на сервер. Это может быть реализовано с использованием обычных пользовательских процессов — а именно, NFS клиент может быть пользовательским процессом, который осуществляет конкретные RPC вызовы на сервер, который так же может быть пользовательским процессом.


Читать далее

Генерация docx на основе шаблона

Комментарии ()

Как мы уже наверное знаем, файлы docx и xlsx форматов представляют собой не что инное как zip-архив. Об этом можно почитать тут. В моем случае, мне был передан текстовый файл-шаблон  формата doc, в теле которого нужно подставлять нужные значения и генерить пачку файлов. 

Первым делом конвертируем doc в docx. Для решения поставленой задачи мне нужно на основе файла-шаблона создать рабочую копию, вытащить из него word/document.xml, сделать подстановку значений и запаковать назад.

Для подстановки значений использую PEAR'овский шаблонизатор HTML_Template_IT. Во первых я к нему превык, во вторых мне удобно пользоваться блоками в шаблоне. Написал клас Word. Пример использования:

<?php

            $word = new Word();
            $filename = "test.docx";

            $word->create($filename); // Создание нового файл на основе шаблона
            $word->extractTemplate($filename); // вытаскиваем document.xml
            // выполняем подставноку знечений с помощтю шаблонизатора document.xml
            $tpl = new HTML_Template_IT(_DIR . 'ptbr/word');
            $tpl->loadTemplatefile('document.xml', true, true);
            ...
            $tpl->setVariable('svnum', $svnum);
            $tpl->setVariable('date', $date);
            $tpl->setVariable('period', $period);
            ...
            $content = $tpl->get();

            $word->save($filename, $content); // Сохранение файла
        }
    }
}
?>

Нюансы:

В процессе редактирования docx-шаблона, создаются RSid-елеметы, которые используются для более эффективного слияния изменений одного документа. Они очень мешают, потому как разбивают в шаблоне переменную для подстановки на несколько частей. Решение нашел тут:

Нужно открыть редактор макросов (Alt+F11) и выполнить

Application.Options.StoreRSIDOnSave = False

Еще рукомендую перед сохранением шаблона :

  • выделить все и назначить один язык. Иначе текст тоже может быть разбит xml-форматированием. 
  • отключить проверку орфографии (потому как могут присутствувать xml данные вида  <w:proofErr w:type="gramStart"/>)

Читать далее

Обновление прошивки Alcatel-Lucent OS6850E

Комментарии ()

Прошивки берем тут

Скачиваем архив, его содержимое заливаем на свич в папку  /flash/working. Я это делаю через ssh c помощью winscp

Выполняем команду

reload working no rollback-timeout

После автоматической перезагрузки, выполняем команду

copy working certified

Если свич в стеке, то 

copy working certified flash-synchro

Посмотреть версию прошивки командой:

-> show microcode
   Package           Release       Size     Description
-----------------+---------------+--------+-----------------------------------
Kbase.img         6.4.5.442.R02   20619824 Alcatel-Lucent Base Software
Kadvrout.img      6.4.5.442.R02    2992350 Alcatel-Lucent Advanced Routing
K2os.img          6.4.5.442.R02    1965831 Alcatel-Lucent OS
Keni.img          6.4.5.442.R02    6100606 Alcatel-Lucent NI software
Ksecu.img         6.4.5.442.R02     649399 Alcatel-Lucent Security Management
Kencrypt.img      6.4.5.442.R02       3437 Alcatel-Lucent Encryption Management


 


Читать далее

Can't create/write to file (Errcode: 23)

Комментарии ()

Не смог выполнитить бекап БД, в логах увидел ошибку

 Can't create/write to file '/var/tmp/#sql664_70443_8a9.MYI' (Errcode: 23) (1)

В консоли dmesg выдает

kern.maxfiles limit exceeded by uid 1007, please see tuning(7).


Читать далее

Webit.in.ua 2013