barbitoff programmer`s blog

Здесь я публикую заметки из программерской жизни: грабли, на которые мне случилось наступить, проблемы, для которых было найдено элегантное (или не очень) решение, а также все, с чем мне пришлось столкнуться и чем хотелось бы поделиться =)
PS Если хотите меня поблагодарить - на странице есть 3 места, чтобы это сделать =)

пятница, 29 июля 2011 г.

cmd.exe - открытие программы в новом командном окне

Команда "start" открывает любую команду в новом командном окне:

start ["заголовок"] [/dпуть] [/i] [/min] [/max] [{/separate | /shared}] [{/low | /normal | /high | /realtime | /abovenormal | belownormal}] [/wait] [/b] [имя_файла] [параметры]

Основные параметры следующие:
  •  "заголовок" - задает заголовок окна
  •  /d - задает каталог запуска
  •  /wait - запускает приложение с окончанием завершения его работы
  •  имя_файла - имя исполняемого файла для запуска 
  •  параметры - параметры, передаваемые запускаемому приложению  

    четверг, 28 июля 2011 г.

    Имя пакета PostgreSQL-модуля для PHP в Debian

     php5-pgsql

    Отключение "живой сессии" в 1С-Битрикс

    "Живая сессия" в 1С-Битрикс позволяет не закрывать сессию на сервере, пока активно окно браузера пользователя. Однако, несмотря на очевидные плюсы, решение это потребляет трафик, причем значительно (10-20 Мб за пару часов). Хорошо, что разработчики Битрикса предусмотрели возможность её отключить:

    Настройки -> Настройки Продукта -> Настройки модулей -> Главный модуль -> Вкладка "Авторизация" -> Снять галочку "Продлевать сессию при активности посетителя в окне браузера".

    вторник, 26 июля 2011 г.

    ucfirst для utf8 строк в php

    function mb_ucfirst($str)
    {
         $str[0] = mb_strtoupper($str[0]);
         return $str;
    }

    Изменение location.hash без записи в историю браузера

    Для организации своей системы навигации по сайту очень удобно использовать hash-часть адреса (расположенную после "#"). Если из JavaScript изменять значение location.hash простым присваиванием (кстати, location.hash содержит не только все то, что расположено после символа "#", но и его самого), то каждое изменение будет запоминаться браузером и использоваться, например, при нажатии кнопки "Назад". Такое поведение не всегда удобно, т.к. пользователь может ожидать, что при нажатии "Назад" он вернется на предыдущую страницу, а не будет гулять по всей истории своих hash-переходов в пределах данной страницы. В таком случае необходимо не менять hash-часть не непосредственно, а использовать метод location.replace():

    location.replace(location.protocol+"//"+location.host+location.pathname+location.search+"#"+newHashValue);

    Такое изменение не вызовет перезагрузки страницы, т.к. изменилась только hash-часть адреса, а также не будет сохранено в истории браузера (точнее в истории браузера предыдущий адрес будет заменен на новый).

    понедельник, 25 июля 2011 г.

    Как убрать рамку вокруг ссылок в IE / Firefox

    a
         {
         outline:none;
         }

    Извлечение двоичных данных (типа bytea) из PostgreSQL в PHP

    После выполнения SELECT`а с извлечением данных из столбца Postgres необходимо данные, извлеченные из таблицы, пропустить через функцию pg_unescape_bytea():

    $arr = pg_fetch_assoc($result);
    $arr["blob_col"] = pg_unescape_bytea($arr["blob_col"]);

    Для записи двоичных данных в Postgres перед выполнением соответствующего INSERT / UPDATE двоичные данные пропускаются через функцию pg_escape_bytea().