вторник, 9 октября 2012 г.

Релиз встраиваемого в web-приложения редактора кода ACE Editor 1.0

Релиз встраиваемого в web-приложения редактора кода ACE Editor 1.0
По заявлению разработчиков ACE Editor, несмотря на то, что продукт рассчитан на работу в браузере, он обладает функциональностью и производительностью близкими к обособленным приложениям, таким как SublimeVim и TextMate. В отличие от стационарных редакторов ACE Editor может легко быть интегрирован с web-приложением или встроен на любую web-страницу (добавление сводится к размещению тега div и подключению JavaScript-библиотеки). Для изменения внешнего вида предусмотрена поддержка подключения визуальных тем. Кроме того, подготовлен модуль Ace Bookmarklet, который может быть использован web-мастерами для прозрачной замены стандартной области ввода, реализуемой тегом textarea.

В настоящий момент ACE Editor развивается в качестве первичного редактора кода для облачной среды разработки Cloud9.

понедельник, 8 октября 2012 г.

запуск perl скриптов

Основной вариант запуска - через mod_perl
Можно в основной конфиг:

AddHandler perl-script .pl
PerlResponseHandler ModPerl::Registry

Или в .htaccess, в cgi-bin:

Options +ExecCGI
SetHandler cgi-script


В основной каталог (httpdocs, htroot, www, public_html...)
AddHandler cgi-script .pl

Проверочный код:

#!/usr/local/bin/perl -w
print "Content-type: text/html\n\n";
print "It works!<br>\n";

Первая строка при выводе в браузер обязательна: она сообщает, что это страница.

мини-скрипты

php
Общая

<?php phpinfo(); ?>

Вывод ошибок в отдельный файл
<?php
ini_set('error_log',  '/var/log/php_errors.log');

При невозможности записи в этот файл - вывод в основной лог.

Тест права создания файлов и владельца
$ourFileName = "testFile.txt";
$ourFileHandle = fopen($ourFileName, 'w') or die("can't open file");
fclose($ourFileHandle);

perl

#!/usr/bin/perl
#!/usr/local/bin/perl
##
##  printenv -- demo CGI program which just prints its environment
##
use CGI::Carp qw(fatalsToBrowser);

print "Content-type: text/plain; charset=iso-8859-1\n\n";
foreach $var (sort(keys(%ENV))) {
    $val = $ENV{$var};
    $val =~ s|\n|\\n|g;
    $val =~ s|"|\\"|g;
    print "${var}=\"${val}\"\n";
}


вторник, 14 августа 2012 г.

Punycode

Библиотек для конвертирования в Punycode много. В общем случае оно называется IDN или IDNA, иногда Punycode.

Python
Встроенными средствами с 2.4:
>>> ru = "ДОМЕНЫ.РУ"
>>> u = unicode(ru, "koi8-r") # Из koi8 в unicode...
>>> u.encode("idna") #... и перекодируем
'xn--d1acufc5f.xn--p1ag'

Perl
Тут несколько библиотек, все работают по разному...
Net::IDN::Encode
URI::UTF8::Punycode
IDNA::Punycode (DEPRECATED)
Convert::RACE
Net::IDN::Nameprep
Net::LibIDN (бинды к libidn)

php
http://pear.speedpartner.de/,
http://fastserv.name.net/open_source/php/punycode/

C
idnkit, libidn

линки
http://s3blog.org/konvertacija-domena-v-zone-rf-v-punycode.html
http://www.rlnic.ru/technology/punycode.pl
http://www.koscheev.ru/articles/perl/?n=38

четверг, 12 апреля 2012 г.

perl

Входные аргументы
$ARGV[0]

$# оператор получения максимального индекса массива
if ($#ARGV<0) ... //нет аргументов

суббота, 7 апреля 2012 г.

Проверяем права