Поиск по блогу

Sunday, October 4, 2015

Включение error_reporting в .htaccess

Для начала простой рецепт: 

Для включения вывода ошибок php в файле .htaccess необходимо добавить строку
php_value error_reporting 7
php_flag display_errors On
Эта запись соответствует включению вывода ошибок уровня «E_ERROR | E_WARNING | E_PARSE»
Для отключения вывода ошибок, включенного в php.ini используйте
php_value error_reporting 0
php_flag display_errors O

Теперь подробнее:

В интернете гуляет множество рецептов, предлагающих устанавливать вывод ошибок с помощью конструкции
php_value error_reporting “E_ALL & ~E_NOTICE”
но во многих случаях это не работает.
Для установки уровня сообщений об ошибках php требуется указать битовую маску, которая в десятичном представлении является целым положительным числом. Когда в php-коде в параметрах функции error_reporting мы указываем значение, например вида E_ERROR | E_WARNING | E_PARSE, на самом деле мы передаем результат действий над именованными константами php, имеющими значение типа int. С помощью документации легко убедиться что функция error_reporting в качестве параметра ожидает получить отнюдь не строку, а целое числовое значение.
Давайте разберемся, что это за зверь такой — битовая маска.
Если открыть список констант php, ответственных за установку уровня вывода ошибок, то можно заметить, что числовое значение каждой из них является «круглым» в двоичном представлении. То есть в двоичном виде константы будут выглядеть в виде одной единицы в старшем разряде и нескольких нулей после нее. Например:
КонстантаДесятичное представлениеДвоичное представление
E_ERROR1
  1
E_WARNING2
 10
E_PARSE4
100
Таким образом: выражение E_ERROR | E_WARNING | E_PARSE даст результат 111 в двоичном формате или 7 в десятичном. Эту-то семерку мы и подставили в директиву htaccess php_value error_reporting 7.
Зная значения констант можно легко варьировать уровень вывода ошибок, при этом нет необходимости переводить числа из десятичного представления в двоичное и обратно вручную. Нам поможет стандартный калькулятор Windows (замечу, что калькулятор, встроенный в (x)Ubuntu имеет схожие возможности). Запустим калькулятор и переведем его в режим «Программист» с помощью меню «Вид» как это показано на рисунке.
Переключение калькулятора в режим "Программист"

Теперь допустим, что мы хотим видеть сообщения об ошибках, но не хотим видеть никаких предупреждений (например мы работаем с каким-то старым php-кодом, использующим множество устаревших конструкций).
Убедимся, что калькулятор находится в десятичном режиме ввода (радио-баттон в положении «Dec») и будем последовательно вводить значения констант, отвечающих за вывод ошибок применяя к ним операцию «Or».
Органы управления калькулятора в режиме "Программист"
Константы, ответственные за предупреждения мы пропустим.
Таким образом мы выполним
1 Or 4 Or 16 Or 64 Or 256 Or 4096
что соответствует E_ERROR | E_PARSE | E_CORE_ERROR | E_COMPILE_ERROR | E_USER_ERROR | E_RECOVERABLE_ERROR. После нажатия равно мы получим 4437, что будет соответствовать битовой маске
1000101010101
В файле htaccess мы пропишем php_value error_reporting 4437 и многочисленные предупреждения не будут нам мешать, в то же время мы будем получать сообщения обо всех ошибках, приводящих к падению скрипта.

Thursday, September 24, 2015

Плагин Microkid’s Related Posts - создание списка похожих статей на WordPress

К CMS WordPress разработано как минимум несколько плагинов, позволяющих выводить к каждому посту список похожих по теме заметок. Одним из самых популярных плагинов является Related Posts, который осуществляет поиск статей в автоматическом режиме по заранее заданным параметрам (тегам, категориям). Однако иногда возникает необходимость вывести в списке похожих постов какие-то определенные статьи, выбранные вами вручную. Вот здесь-то на помощь и приходит плагин Microkid’s Related Posts.
Загрузить версию данного плагина, понимающую русский язык при поиске по ключевым словам, можно отсюда - http://www.wordpressplugins.ru/download/microkids-related-posts.zip. Оригинальная английская версия с русскими словами работать не будет. После установки и активации можно пройти в настройки, которые располагаются в пункте «Related Posts» админки блога.
Добавить сам модуль с выводом списка похожих постов можно несколькими способами. Самый часто используемый способ – вставка php-кода с функцией плагина напрямую в код шаблона single.php. Вставлять следует именно в то место, в котором вы хотите видеть данный список (как правило, модуль выводится перед комментариями). Сам код вставки выглядит следующим образом
<?php if( function_exists("MRP_show_related_posts") )
MRP_show_related_posts();
?>
Чтобы подобрать список похожих постов для каждой конкретной заметки, зайдите на страницу редактирования этой заметки и воспользуйтесь пунктом «Искать записи». Укажите ключевое слово / фразу и выберите, где именно следует его искать – в заголовке, контенте или везде. Рядом с каждым найденным постом будет показана стрелочка, нажав на которую, вы добавите его в список.
Кроме того, список похожих постов можно добавить на блог посредством виджета, который называется «Связанные записи». В настройках этого виджета можно указать тип связанных записей (посты или статичные страницы), параметры отображения, миниатюру и некоторые другие вещи. В большинстве случаев для вывода списка похожих постов используют прямой код вставка плагина, а не виджет, так как виджет отображается в верхней части страницы, а это неудобно для пользователей.
Что касается внешнего вида блога со ссылками на похожие статьи, то по умолчанию он выводится в виде маркированного списка. Изменить внешний вид можно в файле style.css используемой темы, добавив туда нужные правила для таких селекторов, как #related-posts-MRP_all (сам блок), #related-posts-MRP_all li (элемент списка статей), #related-posts-MRP_all li a (ссылка в элементе списка). К примеру, можно изменить размер и тип шрифта, фоновый цвет и т.д.

Saturday, September 12, 2015

Вставляем числа прописью в программе MS Word

При подготовке документов в программе Ms Word иногда нужно числа представить в виде прописи. К примеру, число «321» записать как «Триста двадцать один». Если такая ситуация повторяется часто, объем работы по набору текста резко возрастает. Но есть и хорошая новость: процесс можно частично автоматизировать.

Для этого нужно познакомиться с ПОЛЯМИ – важными атрибутами документа Ms Word. Поле Word – это специальная инструкция (команда), которая позволяет вставить в тело документа различные элементы: рисунки, количество страниц, дату распечатки и т.п. (полный перечень полей есть в справочной системе). Чтобы внедрить поле в документ переходим к месту вставки и нажимаем «Ctrl+F9». Появится поле с фигурными скобками, которые выглядит примерно так {|}. Внутри скобок нужно ввести содержимое поля и нажать клавишу «F9». Программа Word покажет результат обработки поля. Чтобы вернуться в режим отображения содержимого поля, нужно нажать комбинацию «Shift+F9».

При обработке полей их можно отформатировать. Для этого в тексте поля нужно поставить ключ формата. Он начинается с символов «\*», затем идет значение ключа. Однако вернемся к исходной задаче.

Чтобы вывести число прописью, в качестве значения поля вводим само число, перед которым ставим символ «=» (равно). Вместо кода формата указываем «\*CardText». То есть, чтобы показать «321» прописью содержимое поля будет таким: «=321 \*CardText».

Важно! Кавычки в этом тексте при добавлении поля печатать НЕ НУЖНО.

А сам алгоритм внедрения поля для отображения числа прописью выглядит так:

- нажимаем «Ctrl+F9», появится текст {|};
- внутри скобок вводим содержимое поля, например «=321 \*CardText»;
- нажимаем «F9», на экране вместо поля появится текст прописью (в данном конкретном примере «триста двадцать один»).

Важно! В локализованной (русской) версии Ms Word цифры прописью будут представлены по-русски. В англоязычной версии редактора результат будет на английском языке.

Ключ «\*CardText» отображает результат в виде числительных, записанных словами. Разумеется, есть и другие способы отформатировать числа в программе Ms Word.

Так, выражение «\*Upper» преобразует все буквы в заглавные (прописные). Сделать заглавной первую букву первого слова поможет ключ «\*FirstCap» и т.д. В пределах одного поля можно использовать комбинацию из нескольких ключей. Например, чтобы написать число прописью с большой буквы нужно поставить ключи: «{=321\*CardText\*FirstCap}». Результат будет «Триста двадцать один». Чтобы представить число римскими цифрами, можно воспользоваться ключом «\*roman». Например, значение поля «{=321 \*CardText\*roman}» будет таким: «сссxxi»
Важно! Регистр результата обработки поля будет такой, каким он указан в ключе «\*roman». Ключ «\*roman» вернет результат строчными буквами, ключ «\*ROMAN» – заглавными.

Вот несколько полезных ключей, которые можно использовать в полях Ms Word.

- «\*Caps», – сделает заглавной первую букву каждого слова.
- «\*FirstCap», – сделает заглавной первую букву первого слова.
- «\*Upper», – преобразует все буквы в прописные.
- «\*Lower», – преобразует все буквы в строчные.
- «\*CardText», – покажет результат в виде числительного прописью, буквы будут строчные.
- «\*OrdText», – вернет результат как порядковый номер прописью.
- «\*Ordinal», – вернет результат как порядковый номер, но цифрами.
- «\*roman», – покажет число римскими цифрами.

При работе с полями Word удобно использовать три комбинации «горячих» клавиш:

- «Ctrl+F9», – вставить поле;
- «Shift+F9», – показать содержимое поля;
- «F9», – отобразить результат обработки поля.

И еще один момент. Корректировку значений в полях MS Word можно выполнять средствами контекстного поиска и замены. Это самый быстрый способ изменить большое количество полей в документе.

Поля Word — незаменимый инструмент создания документов с изменяющимися элементами. Обязательно посмотрите в справочной системе Word перечень доступных полей. Наверняка вы обнаружите там много полезных возможностей.

Удачной работы!

Monday, September 7, 2015

MS Excel: как найти номер квартала по дате

 При обработке баз данных в Ms Excel (при помощи сводных таблиц, или инструмента подведения итогов) часто бывает такая ситуация: исходные данные собраны с точностью до дат, а их обработку нужно сделать в разрезе кварталов. Стандартные средства Ms Excel не позволяют решить эту проблему стандартными средствами. Единственно разумный (и универсальный!) способ справиться с задачей – это создать рабочую колонку. В этой колонке для каждой даты вычислить номер квартала. И затем использовать данные из рабочей колонки в качестве ключа группировки в инструментах обработки данных.

Идея понятна. Остается разобраться в одном моменте: как по дате найти номер квартала?

На самом деле сделать это совсем несложно. Для этого можно воспользоваться формулой: «=Целое((Месяц(ХХ)+2)/3)», где «ХХ» – адрес ячейки с исходной датой для преобразования.

Проверим работу формулы на примере. Открываем Excel, создаем таблицу, как показано на рис. 1.


 В колонку «А» заносим даты. В колонку «B» пишем формулу преобразования. Например, для даты в ячейке «A2» формула в «B2» будет такой: «=Целое((Месяц(A2)+2)/3)». В этой формуле функция «Месяц(A2))» определяет номер месяца для даты из ячейки «A2». Выражение «Целое()» округляет результат до целого числа. Копируем формулу вниз и проверяем ее для нескольких дат, как показано на рис. 1. Все верно.

Успешной работы!

Sunday, June 15, 2014

Виртуальные хосты в Apache под Ubuntu 14.04 (боремся с Forbidden 403)

В сети можно найти много руководств по быстрой настройке и установке PHP, Apache и MySQL. Например вот это хорошо описывает процесс установки сервера, за исключением нескольких нюансов, которые выясняются по ходу дела.
Единственную сложность может составить настройка виртуальных хостов под Apache 2.4, который по умолчанию идет с новым дистрибутивом Ubuntu.
Лично мне удобно, что бы корневая директория локального сервера на компьютере, где я работаю указывала на некоторую папку в моей домашней директории. Пусть это будет /home/myName/workspace
После установки Apache уже имеется настройка хоста http://localhost, который открывает стандартную страницу "It works!"
Что бы на локалхосте открывалась нужная нам папка выполним в терминале
sudo gedit /etc/apache2/sites-available/000-default.conf
Что бы Apache не ругался при каждом рестарте добавим в начало открывшегося файла:
ServerName localhost
Затем найдем в файле строку "DocumentRoot /var/www/html" и закомментируем ее (добавим в начале строки символ "#"), а ниже добавим строку
DocumentRoot /home/myName/workspace
Теперь самое важное - необходимо разрешить Apache отображать содержимое нашей директории иначе мы получим то самое пресловутое "Forbidden 403". Раньше это делалось с помощью директив "Order Allow, Deny" и "Allow from all" но теперь, начиная с версии Apache 2.4 они заменены одной директивой "Require all granted" подробнее об этом можно прочитать здесь. Поэтому в самый конец файла мы допишем
<Directory /home/myName/workspace/>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>
Сохраним файл и перезапустим Apache командой
sudo service apache2 restart
Теперь по адресу http://localhost будет открываться директория с нашими проектами.
Пример получившегося файла можно посмотреть здесь.

Инструменты для Web-мастеров: Продвижение, Почта для домена, Мониторинг, Безопасность   Подробнее

Monday, May 19, 2014

Модуль горизонтального выпадающего меню для Joomla 2.5 и 3.x

Данный модуль предназначен для формирования меню в публичной части сайта. Пункты меню верхнего уровня расположены горизонтально. Вложенные меню выпадают вниз и вправо при наведении мыши на соответствующие пункты меню верхнего уровня. Уровень вложенности не ограничен.
Эффект выпадающего меню достигается исключительно с помощью HTML и CSS без использование JavaScript
Модуль совместим с Joomla 2.5.x и 3.x
По сути модуль является слегка измененным стандартным модулем меню, взятым из 3-й Joomla. CSS-стили намеренно добавлены помнимому, только для обеспечения функционала, что бы придать максимум универсальности модулю. Внешнее оформление пунктам меню рекомендую прописывать в CSS-стилях шаблона сайта.

Часто употребляемые наименования классов:
  • .horizmenu a - Все ссылки в меню, здесь можно задать общий для всех ссылок цвет фона, границ, формат шрифта. Для всех ссылок установлен блочный режим отображения - поэтому здесь можно задавать отступы, ширину и высоту;
  • .horizmenu .level-n a - Ссылки в меню соответствующего уровня. В ".level-n" вместо "n" нужно подставить соответствующую цифру (напр. ".level-1", ".level-2" и т.д.);
  • .horizmenu .active > a - "Активные" ссылки меню - то есть родительские для текущего пункта;
  • .horizmenu .current a - Текущий пункт меню - пункт меню, ссылающийся на текущую страницу в вашем броузере.
Скачать последнюю версию модуля можно отсюда: mod_horizmenu
PS: Скачивание идет с домена powerhost.pw, то что это мой домен можно проверить по Whois.

Надежный платный виртуальный хостинг сайтов  Подробнее

Sunday, April 6, 2014

Верстка вложенного вертикального меню

 Как правило меню такого типа делают с помощью вложенных друг в друга маркированных списков, устанавливая элементам списка различные значения фона в зависимоти от того, какой пункт меню в данный момент активен. Единственное, что при этом нужно учитывать - высота актианого пункта меню верхнего уровня растягивается на высоту отображаемых вложенных пунктов. Впрочем это легко решается добавлением дескриптроа "top" к свойству background.
Попробуем сверстать вот такое меню:
Для верстики заголовка и низа меню воспользуемся методом, который я уже описывал ранее.   Границы меню и его пунктов сделаем с помощью border.
Изображения, которые нам понадобятся:
  • - Картинки для верстки заголовка меню;
  • - Картинки для верстки подвала меню;
  • - Картинки маркеров пунктов меню;
HTML-код в итоге получится такой:
<html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<link rel="stylesheet" type="text/css" href="css/style.css">
</head>
<body>
 <div class="menu-module">
  <!-- Заголовок меню -->
  <img alt="" src="images/lbar.png" class="lbar top_bar">
  <img alt="" src="images/rbar.png" class="rbar top_bar">
  <h3 class="mbar menu-header">Навигация</h3>
  <!-- Список пунктов меню -->
  <ul class="nav menu">
   <li class="item"><a href="#">Главная</a></li>
   <li class="item active deeper parent">
    <a href="#">DataLife Engine</a>
    <ul class="nav-child unstyled small">
     <li class="item"><a href="#">Хаки</a></li>
     <li class="item"><a href="#">Модули</a></li>
     <li class="item current active"><a href="#">Релизы</a></li>
     <li class="item"><a href="#">Баги/Фиксы</a></li>
    </ul></li>
   <li class="item parent"><a href="#">Invision Power Board</a></li>
   <li class="item parent"><a href="#">vBulletin</a></li>
   <li class="item parent"><a href="#">phpBB</a></li>
  </ul>
  <!-- Подвал меню -->
  <img alt="" src="images/bottom_left_menu_bar.png" class="lbar bottom_bar">
  <img alt="" src="images/bottom_right_menu_bar.png" class="rbar bottom_bar">
  <div class="mbar menu_bottom"></div>
 </div>
</body>
</html> 
Поскольку нижняя граница последнего пункта меню у нас задается в подвале, то при написании CSS-стилей для остальных пунктов будем отображать только верхнюю границу. Также необходимо учесть, что верхняя граница не нужна под активным пунктом меню верхнего уровня, для этого используем стиль ".menu-module .menu li:FIRST-CHILD". В итоге CSS-стили получатся следующие:
/* --- Общие настройки обтекания блоков ---*/
.lbar {
 display: block; float: left;
}
.rbar {
 display: block; float: right;
}
.mbar {
 margin-top: 0px; margin-bottom: 0px;
}
.clr {
 clear:both;
}
/* --- Заголовок меню --- */
.menu-module {
 max-width: 300px;
 margin: 100px;
}
.menu-module .top_bar {
 width: 8px; height: 34px;
}
.menu-header {
 height: 34px;
 background: url('../images/mbar.png');
 margin: 0px 8px; padding-left: 20px;
 font-size: 12px; color: #fff; line-height: 34px;
}
/* --- Пункты меню --- */
.menu-module ul {
 list-style: none;
}
.menu-module .menu {
 border-top: 1px solid #ccc; border-left: 1px solid #ccc; border-right: 1px solid #ccc;
}
.menu-module .menu li {
 border-top: 1px solid #ccc;
}
.menu-module .menu li:FIRST-CHILD {
 border-top: none;
}
.menu-module .menu a {
 height: 25px; margin-left: 10px; padding-left: 10px;
 display: block;
 background: url('../images/inactivebullet.png') left no-repeat;
 line-height: 25px;
}
.menu-module .menu .active {
 background: url('../images/active_background.png') top repeat-x;
}
.menu-module .menu .active a {
 margin-left: 30px; padding-left: 10px;
 background: url('../images/activebullet.png') left no-repeat;
 color: #fff;
}
.menu-module .menu ul .active {
 background: none;
}
.menu-module .menu ul a {
 background: none !important;
 color: #000 !important;
}
.menu-module .menu ul li.current a {
 background: url('../images/currentbullet.png') left no-repeat !important;
}
/* --- Подвал меню --- */
.menu-module .bottom_bar {
 width: 11px; height: 11px;
}
.menu_bottom {
 height: 11px;
 background: url('../images/bottom_medium_menu_bar.png');
 margin: 0px 11px;
}

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

Sunday, March 23, 2014

Верстка заголовков текстовых блоков

Дизайн современных интернет-сайтов включает в себя множество графических элементов. Текстовые блоки зачастую обрамляются рамками со скругленными углами и графическим фоном. Требованиями к верстке таких элементов являются свободное позиционирование на странице и адаптируемость к количеству содержащегося текста.
Попробуем сверстать заголовок такого блока

В заголовке мы видим скругленные углы и градиентный фон. Разделим картинку заголовка на три части,
 
 которые будут соответственно левой стороной, фоном и правой стороной заголовка. Наш HTML-код будет выглядеть следующим образом:
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<link rel="stylesheet" type="text/css" href="./style.css">
</head>
<body>
 <div class="menu">
  <img alt="" src="lbar.png" class="lbar">
  <img alt="" src="rbar.png" class="rbar">
  <div class="mbar">Навигация</div>
  <div class="clr"></div>
 </div>
</body>
</html>
Блок menu будет задавать ширину нашего меню, картинки lbar.png и rbar.png являются краями заголовка блок mbar содержит надпись.
В стилях CSS мы сначала зададим общие настройки для всех подобных текстовых блоков:
.lbar {
 display: block; float: left;
}
.rbar {
 display: block; float: right;
}
.mbar {
 margin-top: 0px; margin-bottom: 0px;
}
.clr {
 clear:both;
}
Теперь зададим стили для нашего заголовка меню
.menu {
 width: 220px;
}
.menu .lbar, .menu .rbar {
 width: 8px; height: 34px;
}
.menu .mbar {
 height: 34px;
 background: url('mbar.jpg');
 margin: 0px 8px; padding-left: 20px;
 font-size: 12px; color: #fff; line-height: 34px;
}
Главным здесь является свойство margin: 0px 8px, с помощью которого мы освобождаем место слева и справа от заголовка для закругленных картинок.
Новые домены .САЙТ, .ОНЛАЙН, .BIKE, .COMPUTER и множество других уже доступны для заказа. Успей занять красивый домен  Подробнее...

Wednesday, March 5, 2014

Альтернативный редактор материалов в Joomla

Добавление страниц сайта на Joomla!  по большей части происходит через менеджер материалов в административной части. По умолчанию в Joomla! уже есть WYSIWYG редактор TinyMCE, но зачастую пользователей не устраивает его функциональность. Конечно правильнее определить необходимые стили при разработке шаблона сайта, что бы они автоматически применялись ко всему его содержимому. Тем не менее администраторы сайтов зачастую хотят видеть в редакторе материалов помимо основных команд по работе с текстом еще и расширенные возможности его форматирования.
Окно редактора TinyMCE
Окно редактора TinyMCE
И даже в расширенном режиме функциональность TinyMCE не всех устраивает

Редактор TinyMCE в расширенном режиме
Редактор TinyMCE в расширенном режиме
В настоящий момент для Joomla! 3.x.x существуют два популярных альтернативных редактора, предоставляющих широкие возможности форматирования текста: JCE и JoomlaCK (JCK). И без того богатая базовая функциональность этих редакторов может быть дополнительно расширена с помощью плагинов. Плагины для JCE предоставляются по платной подписке. Что бы скачать плагины для JCK нужно зарегистрироваться на их сайте, у них есть бесплатные версии для персонального использования.
Скачав базовый пакет установите его как обычно через "Менеджер расширений", зайдите в "Система" → "Общие настройки" и выберите вновь установленный редактор в качестве редактора по-умолчанию.
Теперь при редактировании материалов вы получите существенно больше возможностей по форматированию текста.
Окно редактора JoomlaCK
Окно редактора JoomlaCK
Если при работе с JoomlaCK над окном редактора отображается ошибка: “Warning: the JCK Editor cannot find a default template.css style-sheet to use. Please see: Installation guide” сделайте как указано в руководстве по установке:
Перейдите в "Расширения" → "Менеджер плагинов" и найдите там плагин "Editor - JoomlaCK", зайдите в его настройки и установите следующие настройки:
"Использование шаблонов CSS классы для редактирования района?" - No;
"Использование шаблонов CSS классы Стили для ComboBox?" - No;
"Использование пользовательских классов CSS для редактирования района?" - очистите поле или укажите путь к основному CSS-файлу вашего шаблона. Как правило это путь вида "templates/yourtemplatename/css/yourstyles.css", где "yourtemplatename" - наименование используемого шаблона сайта.
Подбор и регистрация доменов более чем в 250 доменных зонах по всему миру  Подробнее...
А также хостинг сайтов на Joomla от 119 руб. в месяц  Подробнее...

Friday, January 24, 2014

Плагин Sphinx Search для Joomla 2.5

Sphinx - это поисковая система, позволяющая быстро индексировать таблицы баз данных и производить полнотекстовый поиск по ним. В основе работы системы лежит принцип индексации базы альтернативным приложением.
Приложение Sphinx устанавливается в систему. Все настройки для него прописываются в конфигурационном файле sphinx.conf, в числе которых присутствуют параметры соединения с базой данных, запросы к таблицам для индексирования, каталоги для хранения индексов и прочее. Полную документацию для настройки sphinx.conf можно найти здесь.
Существуют решения включающие поиск Sphinx для CMS Битрикс, Wordpress и других. Также мне удалось найти плагин Sphinx для Joomla, но тут вышла накладка. Несмотря на то, что на странице проекта заявлена поддержка Joomla 2.5, реально он работает только в версии 1.5.
Немного поковырявшись в коде я переделал его под 2.5. После установки вы получаете пять плагинов для поиска по различным компонентам Joomla и компонент административной части для настройки. Активировав поисковые плагины Sphinx, можно деактивировать стандартный поиск Joomla.
К сожалению у меня не было достаточно больших таблиц для того, что бы оценить преимущества Sphinx в скорости полнотекстового поиска. Буду рад любым замечаниям и предложениям по доработке.
Скачать SpinxSearch_Joomla2.5 (нажмите Ctrl+S на открывшейся странице)
VPS-сервера (OpenVZ / Xen) от 102 руб. в месяц  Подробнее...
А также хостинг сайтов на Joomla от 119 руб. в месяц  Подробнее...

Wednesday, December 11, 2013

Программное окружение Jelastic

Программное окружение Jelastic распределено по всем серверам, которые обслуживают ваше приложение. Все экземпляры программ в окружении Jelastic (например базы данных, серверные приложения и т. п.) являются независимыми виртуальными машинами (контейнерами). Jelastic следит за вашей средой и обслуживает ее. Например мы можем переместить ваши приложения на более мощные сервера, если им потребуются дополнительные ресурсы.

Как создать свое программное окружение Jelastic

Для создания  программного окружения Jelastic выполните следующие шаги:
  1. Войдите в Jelastic Manager
  2. Нажмите Crate environment в левом верхнем углу панели управления.
  3. Откроется окно Environment topology, где можно установить настройки окружения.
    Для начала выберите необходимый язык программирования кликнув по соответствующей вкладке в верхней части окна:
  4.  Доступно два режима работы мастера настройки окружения - Basic и  Expert
  • Выберите Basic как показано ниже:
    В этом режиме можно быстро создать простое окружение. Все, что вам надлежит сделать - это выбрать сервер и базу данных вашего приложения, а так же ввести желаемое имя окружения, после чего нажать Create.
  • Если вам необходимо получить доступ ко всем настройкам окружения выберите режим Expert. Мастер настроек будет выглядеть так:

Хостинг провайдер - партнер Jelastic  предлагает  услуги облачного хостинга сайтов Подробнее...

Friday, April 19, 2013

Виртуальный сервер на Xen

Успешному интернет-проекту в конце концов становится тесно на стандартном виртуальном хостинге. Помимо связки Apache + MySQL требуются дополнительные возможности операционной системы, специфичное программное обеспечение. В этом случае возникает вопрос о переезде на собственный сервер. К счастью в настоящее время есть широкий выбор услуг по аренде как физического сервера так и виртуального. Последний вариант позволяет получить все преимущества отдельного сервера, серьезно сэкономив при этом.
На сегодняшний день существует несколько технологий виртуализации, благодаря которым у вас есть возможность за недорого получить в свое распоряжение необходимый ресурс. Каждая из них обладает своими особенностями, которые при разных условиях можно рассматривать как достоинства или недостатки. Про виртуализацию на базе OpenVZ я уже писал, сейчас хочу рассказать про технологию Xen. Этот проект развивается уже длительное время и реализует подход, называемый паравиртуализацией. Если по простому, то это означает, что гостевая операционная система (то есть клиентский виртуальный сервер) специальным образом видоизменяется, что бы исключить его обращения к реальному аппаратному обеспечению. За счет этого отпадает необходимость в эмуляции устройств компьютера, которая привела бы к снижению производительности.
Поскольку вы получаете в свое распоряжение полноценную виртуальную машину вы можете чувствовать себя полновластным ее хозяином. Вам доступна настройка прав пользователей, установка любого программного обеспечения, управление процессами и перезагрузка виртуального сервера. В данном случае вы минимально зависите от стороннего администрирования. От провайдера требуется только обеспечение бесперебойной работы хост-системы.
В подготовке операционной системы к работе в среде виртуального сервера, особых сложностей не возникает. Вместе с Xen поставляются утилиты для преобразования ядра ОС, можно скачать подготовленное ядро из интернета, а кроме того, хороший провайдер предложит вам виртуальный сервер с предустановленной системой на выбор.
Предоставляем аренду VPS-серверов на Xen по цене от 102 руб. в месяц. Подробнее...

Saturday, March 30, 2013

Виртуальный частный сервер на базе OpenVZ

Услугой хостинга сайтов сегодня никого уже не удивишь. Интернет наводнен предложениями разместить вашу персональную страничку или сайт-визитку за небольшую цену. Но если ваш ресурс обретает популярность, активно развивается и обзаводится новыми сервисами, то возможностей виртуального хостинга становится недостаточно. Выполнять специфичную настройку http-сервера и исполняемой среды, запускать свои приложения лучше на отдельной машине.
Прекрасная мысль: иметь в своем распоряжении сервер, напрямую подключенный к интернету, на котором можно делать что хочешь, ставить любое ПО, менять любые настройки и прочая и прочая... К сожалению большие возможности подразумевают больше забот. Необходимо для начала этот сервер в свое распоряжение заполучить, арендовать канал связи, обеспечить бесперебойную работу и защиту сервера, посвятить себя его администрированию. Для развивающегося проекта это слишком большие заботы.
На помощь приходит виртуализация. Популярная технология OpenVZ предоставляет в распоряжение пользователя полноценную операционную систему и при этом позволяет делать эту услугу доступной по цене. Заботы же по поддержке и администрированию полностью лежат на владельцах физического сервера, который может обслуживать сотни виртуальных машин одновременно. Суть виртуализации на базе OpenVZ состоит в том, что потребителям предоставляется в пользование ядро операционной системы, с помощью которого они могут запускать свои приложения. OpenVZ следит, что бы процессы пользователей работали изолированно и не пересекались.
Казалось бы такой способ виртуализации накладывает серьезные ограничения – гостевыми (виртуальными) могут быть только линукс-системы, конфигурацию ядра системы настраивает администратор физического сервера. Но из этих особенностей вытекают значительные преимущества для владельца виртуального сервера. Он освобождается от большого количества забот по системному администрированию. Виртуальный сервер не требуется даже перезагружать, при этом им можно пользоваться, как и обычной машиной – управлять правами доступа к своей системе, устанавливать и запускать программы, а так же использовать его для хостинга.
Предоставляем в аренду VPS-серверов на базе OpenVZ по цене от 112 руб. в месяц. Подробнее...

Sunday, October 28, 2012

Exp4j Java-библиотека для разбора формул.

Если вам в Java-программе когда либо понадобится производить разбор формул вида «(A + B) /C» не обязательно избретать собственный велосипед. За вас уже все сделали. Некий Фрэнк Ассег (Frank Asseg) из западной Германии написал небольшую библиотеку весом всего 40 KB, без каких либо дополнительных зависимостей. Она реализует изобретенный Эдсгером Дейкстрой так называемый «Алгоритм сортировочной станции», благодаря чему способна обрабатывать запись математические выражения и функции, записанные в форме, понятной человеку.
Далее приведены примеры использования этой библиотеки.

Вычисление простого выражения:

Calculable calc = new ExpressionBuilder("3 * sin(y) - 2 / (x - 2)")
        .withVariable("x", varX)
        .withVariable("y", varY)
        .build()
double result1=calc.calculate();

Вычисляемое выражение может содержать переменные. Имена переменных могут состоять состоять из символов цифр и символа подчеркивания. При этом они должны начинаться с буквы или символа подчеркивания. Например следующие имена переменных являются правильными: varX, _x1, _var_X_1, а имя переменной 1_var_x не правильное так как не начинается ни с цифры, ни с символа подчеркивания.
Метод withVariable() позволяет определить единственную переменную в выражении:

Calculable calc = new ExpressionBuilder("x * y - 2")
        .withVariableNames("x","y")
        .build();
calc.setVariable("x",1);
calc.setVariable("y",2);
assertTrue(calc.calculate()==0);

С помощью метода withVariableNames() можно определить сразу несколько переменных за один раз:

Calculable calc = new ExpressionBuilder("x * y - 2")
        .withVariable("x",1);
        .withVariable("y",2);
        .build();
assertTrue(calc.calculate()==0);

Библиотека также поддерживает определение польовательских функций. Для этого необходимо реализовать метод applyFunction(double[] values):

CustomFunction fooFunc = new CustomFunction("foo") {
    public double applyFunction(double[] values) {
                return values[0]*Math.E;
        }
};
double varX=12d;
Calculable calc = new ExpressionBuilder("foo(x)")
        .withCustomFunction(fooFunc)
        .withVariable("x",varX)
        .build();
assertTrue(calc.calculate() == Math.E * varX);

Можно определить и функцию с принимющую больше одного аргумента например max(a, b, c) с помощью конструктора CustomFunction(String name, int argc), где 'argc' означает количество аргументов принимаемых функцией аргументов:

CustomFunction custom1 = new CustomFunction("max",3) {
    @Override
    public double applyFunction(double[] values) {
        double max=values[0];
        for (int i=1;i max) {
                max=values[i];
            }
        }
        return max;
    }
};
double varX=Math.E;
Calculable calc = new ExpressionBuilder("max(log(x),sin(x),x)")
        .withVariable("x", varX)
        .withCustomFunction(custom1)
        .build();
assertTrue(varX == calc.calculate());

Пользовательские операторы.

Вы можете расширить абстрактный класс CustomOperator, что бы определить собственную операцию с помощью одного из следующих символов '!,#,§,$,&,;,:,~,<,>,|,='. Учтите, что добавление в CustomOperator исползованный ранее символ переопределяет любую существующую операцию, включая встроенную. Возможно переопределить даже операцию '+'. CustomOperator принимает до 4-х аргументов:


  • Символ, используемый для операции (один из !,#,§,$,&,;,:,~,<,>,|,=);
  • Оператор левоассоциативный (т.е. воздейсвтует на число слева от себя);
  • Приоритет операции;
  • Количество операндов в операции (1 или 2);


CustomOperator factorial = new CustomOperator('!', true, 6, 1) {
        @Override
    double applyOperation(double[] values) {
        double tmp = 1d;
        int steps = 1;
        while (steps < values[0]) {
                tmp = tmp * (++steps);
        }
        return tmp;
    }
};
Calculable calc = new ExpressionBuilder("11!").withOperation(factorial).build();
assertTrue(39916800d == calc.calculate());


Библиотека поддерживает встроенные операторы:

  • Сложение '2 + 2';
  • Вычитание '2 — 2';
  • Умножение '2 * 2';
  • Деление '2 / 2';
  • Возведение в степень '2 ^ 2';
  • Унарный минус или плюс (знаковый оператор) '+2 - (-2)';
  • Остаток от деления '2 % 2';

Приоритет унарного минуса

Приоритет унарных операций при возведении в степень может быть установлен с помощью системного свойства "exp4j.unary.precedence.high". Свойство можно установить с помощью System.setProperty(PROPERTY_UNARY_HIGH_PRECEDENCE, "false"), что бы изменить вычисление такого выражения как -3 ^ 2 с варианта (-3) ^ 2 на -(3 ^ 2):


String expr = "-3^2";
System.setProperty(ExpressionBuilder.PROPERTY_UNARY_HIGH_PRECEDENCE, "false");
Calculable calc = new ExpressionBuilder(expr).build();
assertTrue(-Math.pow(3, 2) == calc.calculate()); // вычислит '-9'

System.clearProperty(ExpressionBuilder.PROPERTY_UNARY_HIGH_PRECEDENCE);
calc = new ExpressionBuilder(expr).build();
assertTrue(Math.pow(-3,2) == calc.calculate()); // вычислит '9'

Встроенные функции

  • abs: абсолютное значение
  • acos: arc-косинус
  • asin: arc-синус
  • atan: arc-тангенс
  • cbrt: корень кубический
  • ceil: ближайшее верхнее целое
  • cos: косинус
  • cosh: hyper-косинус
  • exp: число Эйлера в степени (e^x)
  • floor: ближайшее нижнее целое
  • log: натуральный логарифм (по основанию e)
  • sin: синус
  • sinh: hyper-синус
  • sqrt: корень квадратный
  • tan: тангенс
  • tanh: hyper-тангенс

Более подробную информацию вы можете найти на официальной странице проекта.

Friday, October 19, 2012

Апгрейд памяти в ноутбуке Acer Extensa 5220

Если есть желание сэкономить на покупке нового ноутбука можно попытаться модернизировать старый. У меня в наличие имеется старенький Acer Extensa 5220, верой и правдой прослуживший уже более четырех лет. Последнее время ему стало катастрофически не хватать памяти, особенно при работе над большим проектом в Eclipse.
Хотя в спецификациях к нему сказано, что максимальный поддерживаемый объем памяти 2GB тем не менее удается увеличить объем до 3-х гигов. Собственно вся операция по апгрейду сводится в съеме нижней крышки и установке модуля памяти. В моем случае изначально в ноуте была установлена планка SO-DIMM DDR2 Hynix 2GB PC2-5300, мне удалось найти в Юлмарте планку Hynix 1GB PC2-6400. И хотя память так и осталась работать на частоте 667 MHz, ее стало в полтора раза больше и она теперь работает в двух канальном режиме. Единственное, что нужно учесть это то, что меньший по объему модуль памяти лучше ставить под больший (конструктивно они ставятся один под другой).
Процесс добавления памяти изложен на рисунках.

Wednesday, May 6, 2009

Пересчет курсов валют

Обработка "Пересчет курсов валют" предназначена для автоматизации расчета курсов и кратностей валют на основе других.
В случаях когда расчеты с контрагентами производятся в условных единицах по курсу отличному от ЦБ (например курс + %), для автоматизации учета удобно создавать дополнительную валюту, рассчитывая для нее соответствующий курс. Скачать обработку можно отсюда

Sunday, March 1, 2009

Организация дискового пространства Linux

Этот небольшой дайджест подготовлен по материалам сайта “Linux по-русски”

Организация дискового пространства для Linux


Выбор файловой системы

Linux может работать со следующими файловыми системами:
  • Ext2 — в настоящее время считается устаревшей;
  • Ext3 — является потомком Ext2, подходит для использования в большинстве случаев;
  • RiserFS;
  • JFS;
  • XFS.

Сравнительные характеристики файловых систем

СтабильностьОтличнаяХорошаяХорошаяСреднееХорошая
Утилиты для восстановления удаленных файловЕсть (комплекс)Есть (комплекс)НетНетНет
Скорость перезагрузки после падения системыДолго, даже очень долгоБыстроОчень быстроОчень быстроОчень быстро
Состояние данных в случае падения системыВообще говоря, хорошее, но высок риск частичной или полной потери данныхОчень хоршееСреднее*Очень хоршееОчень хоршее
Поддержка ACLДаДаНетНетДа
* Имеется возможность улучшить результаты восстановления после падения путем журналирования данных, а не только метаданных,

Способы разбивки диска

Простейший способ:

  • SWAP-раздел, размером в два размера ОЗУ, но нет смысла делать его более 2Гб;
  • Едный раздел под все остальное.

Альтернативный униврсальный способ:

  • SWAP (до 2Гб)-раздел, размером в два размера ОЗУ, но нет смысла делать его более 2Гб;
  • / – корень (от 400 Мб);
  • /opt – сюда часто устанавливаются коммерческие приложения. Если не планируется ставить много приложений можно не создавать отдельный раздел, соответсвенно увеличив раздел под корень;
  • /usr (~2-3Гб) – содержит исполняемые файлы большинства пакетов, отдельный раздел облегчает открытие к нему общего доступа по сети;
  • /home – содержит личые каталоги пользователей систмы (размер по необходимости)

Saturday, February 28, 2009

Установка Debian GNU/Linux на Acer Extensa 5220

Это мой перевод статьи Ральфа Дризена (Ralf Dreesen), расположенной по адресу http://www.dreesen.net/linux-extensa.html. Хотя к моменту перевода этой статьи уже вышла новая версия Debian Lenny, надеюсь она будет все-же полезна. Все ссылки в статье взяты из оригинала.


Установка Debian GNU/Linux на Acer Extensa 5220


Acer Extensa - ноутбук нижнего ценового диапазона, который хорошо подходит для использования основных офисных приложений, просмотра интернет-страниц и работы с электронной почтой. Ноутбук поставляется с предустановленной Windows Vista или Linux Linpus. В последнем случае он стоит менее 60€. Однако, Linpus по-видимому придется удалить, потому как он поддерживает только режим командной строки. По-началу я думал что Linux не поддерживает ноутбучное железо, но к моему удивлению установка Debian оказазалась достаточно простой.

Оборудование


Processor: Intel Celeron M530 (1,7GHz)
RAM: 512MB DDR
Display 15,4" 1280x800 WXGA
Graphics Card: Intel GMA X3100
Drives: 80GB SATA Harddisk and DVD Burner
Network: 1000 MBit/s LAN and 54 MBit/s WLAN
USB, Firewire, Card Reader, IrDa, VGA and TV Out


Установка Debian


Я установил текущий стабильный релиз Debian (Etch) с помощью Debian Network Install CD. ISO образ (debian-40r1-i386-netinst.iso) этого CD весит отколо 180 MB и содержит базовые пакеты, которые требуются для минимальной установки. Остальные пакеты загружаются в процессе установки по необходимости. Для установки я подключил ноутбук через LAN-интерфейс в сеть с DHCP-сервером. Карта без проблем обнаружилась и установилась. Жесткий диск ноутбука был разбит на два раздела по 40GB. На первом был предустановленный Linux, а второй содержал пустую файловую систему FAT32. Я удалил оба раздела и создал один раздел EXT3 для системы и двух гигабайтный SWAP-раздел. Прощай Linpus Linux, я буду вспоминать тебя...

Остальная установка прошла как обычно, без осбых проблем. Я установил пакет програм по-умолчанию (думаю он был и для десктопов и для лаптопов), разрешение экрана было выбранно 1280x1024 и спустя 40 минут наконец появился графический экран входа в систему.

Видеокарта


После установки, X.org-сервер сконфигурироваля с использованием vesa драйвера. В результате максимальное разрешение дисплея было только 1024x768. Кроме того, при попытки перейти в терминальный режим нажатием <CTRL><ALT><F1> появлялся черный экран . Итак, моей первой целью была правильная настройка видеоадаптера. В ноутбук встроена видеокарта Intel GMA X3100. Если верить Википедии, ядро основано на GM965 или GL960 чипсете. К сожалению, этот чипсет не поддерживается драйвером Intel i810 X.org который идет с Debian Etch. Однако, актуальный видеодарайвер Intel который есть в релизе Debian Lenny поддерживает этот чипсет. Для апгрейда системы, я изменил файл /etc/apt/sources.conf чтобы использовать релиз lenny и пакеты contrib.
deb cdrom:[Debian GNU/Linux 4.0 r1 _Etch_ - Official i386 NETINST Binary-1 20070820-20:21]/ etch contrib main

deb http://ftp.de.debian.org/debian/ lenny main contrib
deb-src http://ftp.de.debian.org/debian/ lenny main contrib

deb http://security.debian.org/ lenny/updates main contrib
deb-src http://security.debian.org/ lenny/updates main contrib

Вызов apt-get update затем apt-get upgrade наконец заапгрейдил систему до Debian Lenny.

После этой небольшой экскурсии по инсталяции последних интеловских драйверов, я заменил драйвер видеокарты в /etc/X11/xorg.conf с vesa на i810. После перезагрузки я получил разрешение 1280x1024, как и было выбрано при установке системы. Все-таки, требуется презагрузка для вывода графического адаптера из VESA режима.

WLAN интерфейс


В ноутбуке содержится Broadcom 54 MBit/s WLAN интерфейс. Модули драйвера ядра для этой карты уже встроены в ядро версии 2.6.22. Я только сделал modprobe bcm43xx, что бы загрузить их. Кроме модуля ядра, мне пришлось установить bcm43xx-fwcutter для получения прошивки для Broadcom адаптера. Прошивка является интелектуальной собственностью Broadcom и поэтому она не встроена в ядро. Згрузчик прошивки установлся с помощью apt-get install bcm43xx-fwcutter. К моему удивлению, в диалоге установки было предложено загрузить оригинальные Broadcom-овские драйвера и извлечь прошивку автоматически. Я согласился, прошивка была установлена правильно и я получил рабочий WLAN интерфейс. Единственный недостаток: WLAN-карта не поддерживает програмное включение/выключение. Скоро я разберусь с этим. Возможно, я должен выгружать модуль перед остановкой и загружать его после включения?

Дополнительную информацию о Linux-овских драйверах для интерфейсов Broadcom можно найти здесь.

Спящий режим


Я еще не тестировал приостановку без сохранения RAM, но спящий режим с выгрузкой памяти на жесткий диск работает безупречно.

USB


Работает.

Тачпад


Работает.

Звук


Работает.

Firewire


Еще не тестировал.

ИК-порт


Еще не тестировал.

Дополнительные клавиши


Не стал тратить на это время.

Запись DVD


Еще не тестировал

Дополнительная информация


Вебсайт www.tuxmobile.org список пошаговых инструкций, котроые описывают инсталяцию Linux на ноутбуки Acer.

Вывод lspci -v


00:00.0 Host bridge: Intel Corporation Mobile Memory Controller Hub (rev 03)
Subsystem: Acer Incorporated [ALI] Unknown device 011f
Flags: bus master, fast devsel, latency 0

00:02.0 VGA compatible controller: Intel Corporation Mobile Integrated Graphics Controller (rev 03) (prog-if 00 [VGA])
Subsystem: Acer Incorporated [ALI] Unknown device 011f
Flags: bus master, fast devsel, latency 0, IRQ 11
Memory at fc000000 (64-bit, non-prefetchable) [size=1M]
Memory at d0000000 (64-bit, prefetchable) [size=256M]
I/O ports at 1800 [size=8]

00:02.1 Display controller: Intel Corporation Mobile Integrated Graphics Controller (rev 03)
Subsystem: Acer Incorporated [ALI] Unknown device 011f
Flags: bus master, fast devsel, latency 0
Memory at fc100000 (64-bit, non-prefetchable) [size=1M]

00:1a.0 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI #4 (rev 03) (prog-if 00 [UHCI])
Subsystem: Acer Incorporated [ALI] Unknown device 011f
Flags: bus master, medium devsel, latency 0, IRQ 20
I/O ports at 1820 [size=32]

00:1a.1 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI #5 (rev 03) (prog-if 00 [UHCI])
Subsystem: Acer Incorporated [ALI] Unknown device 011f
Flags: bus master, medium devsel, latency 0, IRQ 21
I/O ports at 1840 [size=32]

00:1a.7 USB Controller: Intel Corporation 82801H (ICH8 Family) USB2 EHCI #2 (rev 03) (prog-if 20 [EHCI])
Subsystem: Acer Incorporated [ALI] Unknown device 011f
Flags: bus master, medium devsel, latency 0, IRQ 20
Memory at fc504800 (32-bit, non-prefetchable) [size=1K]

00:1b.0 Audio device: Intel Corporation 82801H (ICH8 Family) HD Audio Controller (rev 03)
Subsystem: Acer Incorporated [ALI] Unknown device 011f
Flags: bus master, fast devsel, latency 0, IRQ 19
Memory at fc300000 (64-bit, non-prefetchable) [size=16K]

00:1c.0 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 1 (rev 03) (prog-if 00 [Normal decode])
Flags: bus master, fast devsel, latency 0
Bus: primary=00, secondary=02, subordinate=03, sec-latency=0
I/O behind bridge: 00002000-00002fff
Memory behind bridge: f6000000-f7ffffff
Prefetchable memory behind bridge: 00000000f0000000-00000000f1ffffff

00:1c.1 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 2 (rev 03) (prog-if 00 [Normal decode])
Flags: bus master, fast devsel, latency 0
Bus: primary=00, secondary=04, subordinate=05, sec-latency=0
I/O behind bridge: 00003000-00003fff
Memory behind bridge: f8000000-f9ffffff
Prefetchable memory behind bridge: 00000000f2000000-00000000f3ffffff

00:1c.2 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 3 (rev 03) (prog-if 00 [Normal decode])
Flags: bus master, fast devsel, latency 0
Bus: primary=00, secondary=06, subordinate=07, sec-latency=0
I/O behind bridge: 00004000-00004fff
Memory behind bridge: fa000000-fbffffff
Prefetchable memory behind bridge: 00000000f4000000-00000000f5ffffff

00:1d.0 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI #1 (rev 03) (prog-if 00 [UHCI])
Subsystem: Acer Incorporated [ALI] Unknown device 011f
Flags: bus master, medium devsel, latency 0, IRQ 22
I/O ports at 1860 [size=32]

00:1d.1 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI #2 (rev 03) (prog-if 00 [UHCI])
Subsystem: Acer Incorporated [ALI] Unknown device 011f
Flags: bus master, medium devsel, latency 0, IRQ 17
I/O ports at 1880 [size=32]

00:1d.2 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI #3 (rev 03) (prog-if 00 [UHCI])
Subsystem: Acer Incorporated [ALI] Unknown device 011f
Flags: bus master, medium devsel, latency 0, IRQ 18
I/O ports at 18a0 [size=32]

00:1d.7 USB Controller: Intel Corporation 82801H (ICH8 Family) USB2 EHCI #1 (rev 03) (prog-if 20 [EHCI])
Subsystem: Acer Incorporated [ALI] Unknown device 011f
Flags: bus master, medium devsel, latency 0, IRQ 22
Memory at fc504c00 (32-bit, non-prefetchable) [size=1K]

00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev f3) (prog-if 01 [Subtractive decode])
Flags: bus master, fast devsel, latency 0
Bus: primary=00, secondary=0f, subordinate=13, sec-latency=32
I/O behind bridge: 00005000-00005fff
Memory behind bridge: fc200000-fc2fffff
Prefetchable memory behind bridge: 0000000030000000-0000000033ffffff

00:1f.0 ISA bridge: Intel Corporation Mobile LPC Interface Controller (rev 03)
Subsystem: Acer Incorporated [ALI] Unknown device 011f
Flags: bus master, medium devsel, latency 0

00:1f.1 IDE interface: Intel Corporation Mobile IDE Controller (rev 03) (prog-if 8a [Master SecP PriP])
Subsystem: Acer Incorporated [ALI] Unknown device 011f
Flags: bus master, medium devsel, latency 0, IRQ 23
I/O ports at 01f0 [size=8]
I/O ports at 03f4 [size=1]
I/O ports at 0170 [size=8]
I/O ports at 0374 [size=1]
I/O ports at 1810 [size=16]

00:1f.2 SATA controller: Intel Corporation Mobile SATA AHCI Controller (rev 03) (prog-if 01 [AHCI 1.0])
Subsystem: Acer Incorporated [ALI] Unknown device 011f
Flags: bus master, 66MHz, medium devsel, latency 0, IRQ 220
I/O ports at 1c00 [size=8]
I/O ports at 18d4 [size=4]
I/O ports at 18d8 [size=8]
I/O ports at 18d0 [size=4]
I/O ports at 18e0 [size=32]
Memory at fc504000 (32-bit, non-prefetchable) [size=2K]

00:1f.3 SMBus: Intel Corporation 82801H (ICH8 Family) SMBus Controller (rev 03)
Subsystem: Acer Incorporated [ALI] Unknown device 011f
Flags: medium devsel, IRQ 23
Memory at 34000000 (32-bit, non-prefetchable) [size=256]
I/O ports at 1c20 [size=32]

02:00.0 Ethernet controller: Broadcom Corporation NetLink BCM5787M Gigabit Ethernet PCI Express (rev 02)
Subsystem: Acer Incorporated [ALI] Unknown device 011c
Flags: bus master, fast devsel, latency 0, IRQ 219
Memory at f6000000 (64-bit, non-prefetchable) [size=64K]

04:00.0 Network controller: Broadcom Corporation Dell Wireless 1390 WLAN Mini-PCI Card (rev 01)
Subsystem: AMBIT Microsystem Corp. Unknown device 0422
Flags: bus master, fast devsel, latency 0, IRQ 17
Memory at f8000000 (32-bit, non-prefetchable) [size=16K]

0f:06.0 CardBus bridge: Texas Instruments PCIxx12 Cardbus Controller
Subsystem: Acer Incorporated [ALI] Unknown device 011f
Flags: bus master, medium devsel, latency 168, IRQ 19
Memory at fc204000 (32-bit, non-prefetchable) [size=4K]
Bus: primary=0f, secondary=10, subordinate=13, sec-latency=176
Memory window 0: 30000000-33fff000 (prefetchable)
Memory window 1: 38000000-3bfff000
I/O window 0: 00005000-000050ff
I/O window 1: 00005400-000054ff
16-bit legacy interface ports at 0001

0f:06.1 FireWire (IEEE 1394): Texas Instruments PCIxx12 OHCI Compliant IEEE 1394 Host Controller (prog-if 10 [OHCI])
Subsystem: Acer Incorporated [ALI] Unknown device 011f
Flags: bus master, medium devsel, latency 32, IRQ 19
Memory at fc206000 (32-bit, non-prefetchable) [size=2K]
Memory at fc200000 (32-bit, non-prefetchable) [size=16K]

0f:06.2 Mass storage controller: Texas Instruments 5-in-1 Multimedia Card Reader (SD/MMC/MS/MS PRO/xD)
Subsystem: Acer Incorporated [ALI] Unknown device 011f
Flags: bus master, medium devsel, latency 57, IRQ 19
Memory at fc205000 (32-bit, non-prefetchable) [size=4K]

0f:06.3 Generic system peripheral [0805]: Texas Instruments PCIxx12 SDA Standard Compliant SD Host Controller
Subsystem: Acer Incorporated [ALI] Unknown device 011f
Flags: bus master, medium devsel, latency 57, IRQ 19
Memory at fc206800 (32-bit, non-prefetchable) [size=256]

xorg.conf


# /etc/X11/xorg.conf (xorg X Window System server configuration file)
#
# This file was generated by dexconf, the Debian X Configuration tool, using
# values from the debconf database.
#
# Edit this file with caution, and see the /etc/X11/xorg.conf manual page.
# (Type "man /etc/X11/xorg.conf" at the shell prompt.)
#
# This file is automatically updated on xserver-xorg package upgrades *only*
# if it has not been modified since the last upgrade of the xserver-xorg
# package.
#
# If you have edited this file but would like it to be automatically updated
# again, run the following command:
# sudo dpkg-reconfigure -phigh xserver-xorg

Section "Files"
FontPath "/usr/share/fonts/X11/misc"
FontPath "/usr/X11R6/lib/X11/fonts/misc"
FontPath "/usr/share/fonts/X11/cyrillic"
FontPath "/usr/X11R6/lib/X11/fonts/cyrillic"
FontPath "/usr/share/fonts/X11/100dpi/:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/100dpi/:unscaled"
FontPath "/usr/share/fonts/X11/75dpi/:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi/:unscaled"
FontPath "/usr/share/fonts/X11/Type1"
FontPath "/usr/X11R6/lib/X11/fonts/Type1"
FontPath "/usr/share/fonts/X11/100dpi"
FontPath "/usr/X11R6/lib/X11/fonts/100dpi"
FontPath "/usr/share/fonts/X11/75dpi"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi"
# path to defoma fonts
FontPath "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType"
EndSection

Section "Module"
Load "i2c"
Load "bitmap"
Load "ddc"
Load "dri"
Load "extmod"
Load "freetype"
Load "glx"
Load "int10"
Load "vbe"
EndSection

Section "InputDevice"
Identifier "Generic Keyboard"
Driver "kbd"
Option "CoreKeyboard"
Option "XkbRules" "xorg"
Option "XkbModel" "pc105"
Option "XkbLayout" "de"
Option "XkbVariant" "nodeadkeys"
EndSection

Section "InputDevice"
Identifier "Configured Mouse"
Driver "mouse"
Option "CorePointer"
Option "Device" "/dev/input/mice"
Option "Protocol" "ImPS/2"
Option "Emulate3Buttons" "true"
EndSection

Section "InputDevice"
Identifier "Synaptics Touchpad"
Driver "synaptics"
Option "SendCoreEvents" "true"
Option "Device" "/dev/psaux"
Option "Protocol" "auto-dev"
Option "HorizScrollDelta" "0"
EndSection

Section "Device"
Identifier "Standardgrafikkarte"
# Driver "vesa"
Driver "i810"
BusID "PCI:0:2:0"
EndSection

Section "Monitor"
Identifier "Standardbildschirm"
Option "DPMS"
EndSection

Section "Screen"
Identifier "Default Screen"
Device "Standardgrafikkarte"
Monitor "Standardbildschirm"
DefaultDepth 24
SubSection "Display"
Depth 1
Modes "1280x1024" "1024x768" "800x600" "640x480"
EndSubSection
SubSection "Display"
Depth 4
Modes "1280x1024" "1024x768" "800x600" "640x480"
EndSubSection
SubSection "Display"
Depth 8
Modes "1280x1024" "1024x768" "800x600" "640x480"
EndSubSection
SubSection "Display"
Depth 15
Modes "1280x1024" "1024x768" "800x600" "640x480"
EndSubSection
SubSection "Display"
Depth 16
Modes "1280x1024" "1024x768" "800x600" "640x480"
EndSubSection
SubSection "Display"
Depth 24
Modes "1280x1024" "1024x768" "800x600" "640x480"
EndSubSection
EndSection

Section "ServerLayout"
Identifier "Default Layout"
Screen "Default Screen"
InputDevice "Generic Keyboard"
InputDevice "Configured Mouse"
InputDevice "Synaptics Touchpad"
EndSection

Section "DRI"
Mode 0666
EndSection
 
Google+