Попалась тут задачка...
есть несколько вариантов написания библиотек с классами... почему так? потому что разные источники и у каждого свои исторически сложившиеся наименования...
В частности их было 3:
1) ClassName.class.php
2) ClassName.php
3) class/ClassName.php
где ClassName - имя вызываемого класса.
естественно, что решение с простым использованием include/require в функции __autoload в данном случае не подходил.
в итоге пришёл вот к такому коду:
function __autoload($className){
if (is_file('class/' . $className . '.php')) {
include_once ('class/' . $className . '.php');
} elseif (is_file($className . '.class.php')) {
include_once ($className . '.class.php');
} elseif (is_file($className . '.php')) {
include_once ($className . '.php');
} else {
throw new ErrorException('Не удаётся закрузить класс "' . $className . '"');
}
}
воскресенье, апреля 26
NetBeans
Решил попробовать NetBeans вместо Eclipse для кодинга...
хм... или мне пока только кажется, или в нём и правда получше будет... хотя есть некоторые "мелочи", которые несколько раздражают...
такие как сворачивание блоков происходит ПОЛНОСТЬЮ и норовит это сделать постоянно... разве что не на тех блоках, которые ты сейчас правишь - это радует немного...
Цвето-шрифтовая схема какая-то малость неприятная... но менять пока времени особо нет - долго сидеть разбираться и ковыряться в настройках... но чуть позже к этому я явно вернусь - как совсем достанет...
Радует хорошая интеграция с AJAX библиотеками... а так же нашёл модуль, добавляющий поддержку Smarty-шаблонов для PHP проектов.
хм... или мне пока только кажется, или в нём и правда получше будет... хотя есть некоторые "мелочи", которые несколько раздражают...
такие как сворачивание блоков происходит ПОЛНОСТЬЮ и норовит это сделать постоянно... разве что не на тех блоках, которые ты сейчас правишь - это радует немного...
Цвето-шрифтовая схема какая-то малость неприятная... но менять пока времени особо нет - долго сидеть разбираться и ковыряться в настройках... но чуть позже к этому я явно вернусь - как совсем достанет...
Радует хорошая интеграция с AJAX библиотеками... а так же нашёл модуль, добавляющий поддержку Smarty-шаблонов для PHP проектов.
воскресенье, апреля 5
Ладо, ладно! Уже выхожу...
Решил я тут значит в консольке поработать да пакеты всякие понаставить...
а тут Zypper возьми да подвисни что-то...
Ну дурное дело не хитрое - жму Ctrl+C, дабы прекратить работу...
тишина...
жму ещё раз... и чтоб вы думали? мне в ответ ещё и НУКАЮТ... :)
Да... весёлые разработчики Zypper видать...

----------------
Now playing on Last.fm: Leftfield - Space Shanty
via FoxyTunes
а тут Zypper возьми да подвисни что-то...
Ну дурное дело не хитрое - жму Ctrl+C, дабы прекратить работу...
тишина...
жму ещё раз... и чтоб вы думали? мне в ответ ещё и НУКАЮТ... :)
Да... весёлые разработчики Zypper видать...

----------------
Now playing on Last.fm: Leftfield - Space Shanty
via FoxyTunes
понедельник, марта 23
руководства к openOffice
на Инфра-Ресурс есть не только небольшой список руководств, но ещё сейчас нашёл и список поприличнее, да ещё и в 2-х форматах - в PDF и ODT.
----------------
Now playing on Last.fm: ...И Друг Мой Грузовик - Учительница
via FoxyTunes
----------------
Now playing on Last.fm: ...И Друг Мой Грузовик - Учительница
via FoxyTunes
вторник, марта 17
ноутбук ASUS Mk51Kr и openSUSE
Поставил себе openSUSE 11.1 на ноутбук.
После установки возникло несколько проблем:
1) проблема со звуком
2) У мышки пашут не все кнопки/колёсики
3) Расширение рабочего стола на внешний монитор
Первую проблему решил оставить на потом, ибо а) не критична и б) "заткнул" её подключением внешних USB колонок.
На вторую пока просто забил...
А вот вторая была для меня критичной - дома и на работе цепляю дополнительный монитор и хочется использовать его по полной :)
В общем проблема решилась довольно просто - через sax2 выставил монитор в VESA и поддерживаемые режимы до 1600x1200х75, а используемый режим в 1280x800 (ноут). При этом включать поддержку второго монитора не стал - предоставил это сделать xrandr.
После перезагрузки иксов (разлогинился и Ctrl+Alt+Backspace дважды) всё заработало как мне и хотелось: внешние мониторы пашут как нужно, помнят что подключались с таким-то разрешением (когда цепляешься к разным мониторам с различными диагоналями), перезагрузка X-сервера не требуется.
кусочек из xorg.conf:
После установки возникло несколько проблем:
1) проблема со звуком
2) У мышки пашут не все кнопки/колёсики
3) Расширение рабочего стола на внешний монитор
Первую проблему решил оставить на потом, ибо а) не критична и б) "заткнул" её подключением внешних USB колонок.
На вторую пока просто забил...
А вот вторая была для меня критичной - дома и на работе цепляю дополнительный монитор и хочется использовать его по полной :)
В общем проблема решилась довольно просто - через sax2 выставил монитор в VESA и поддерживаемые режимы до 1600x1200х75, а используемый режим в 1280x800 (ноут). При этом включать поддержку второго монитора не стал - предоставил это сделать xrandr.
После перезагрузки иксов (разлогинился и Ctrl+Alt+Backspace дважды) всё заработало как мне и хотелось: внешние мониторы пашут как нужно, помнят что подключались с таким-то разрешением (когда цепляешься к разным мониторам с различными диагоналями), перезагрузка X-сервера не требуется.
кусочек из xorg.conf:
Section "Monitor"
DisplaySize 331 207
HorizSync 31-93
Identifier "Monitor[0]"
ModelName "1600X1200@75HZ"
Option "PreferredMode" "1280x800"
VendorName "--> VESA"
VertRefresh 50-75
UseModes "Modes[0]"
EndSection
понедельник, марта 16
Eclipse
Дабы не забыть, напишу сюда плагины, что стоят в Eclipse.
PDT- ("ушел" с PHP на Java)- QuickREx
RSE (Remote System Explorer)- после решения потребностей через maven, перестал быть нужным- m2eclipse - шустрый малый. делает ровно столько, сколько мне нужно и когда его попросишь
Spring IDE- проект "умер" :(- JBoss Tools - монстр, хотя и немного неуклюжий, но много умеющий.
Eclipse IAM(мне не понрался в usability). использую m2eclipse- Linux Tools
- Checkstyle
Emonic- крайне редко, в виду ухода от .Net разработки под Mono
вторник, февраля 24
полезный софт
Сюда буду собирать "маленькие" и не очень софтины, которые я использую или НЕ использую, но как-нить буду.
1) GSQL - это интегрированная среда разработки баз данных для GNOME. Она разрабатывается русским программистом Тарасом Халтуриным и совсем недавно появилась на сайте gnomefiles.org, но уже удостоилась высоких оценок. GSQL вмещает в себе редактор SQL-запросов с различными режимами их исполнения и выводом сообщений от сервера СУБД. Все объекты базы данных отображены в виде дерева. В текущем релизе программа умеет работать только с двумя СУБД: MySQL и Oracle (в большей степени), но планируется поддержка PostgreSQL, Firebird и SQLite. Возможности GSQL можно дополнить с помощью расширений. В настоящий момент их всего три: терминал, экспорт в файл и периодическое выполнение запросов к базе данных. Надо полагать, что программу ждет большое будущее - конечно, если пыл разработчика не угаснет.
2) Bootchart - одна из лучших утилит для проверки производительности системы. После установки и перезагрузки bootchart создаст комплексный график всего, что запускается и потребляет ресурсы во время загрузки вашей системы
3) Evolution-RSS - собственно из названия понятно, что это модуль для Evolution, позволяющий подписываться на RSS-ленты.
ЗЫ: описания к программам не мои, а (с)тырены с просторов интернета. Когда буду вставлять свои описания, то они будут идти в виде ссылки на пост в блоге.
1) GSQL - это интегрированная среда разработки баз данных для GNOME. Она разрабатывается русским программистом Тарасом Халтуриным и совсем недавно появилась на сайте gnomefiles.org, но уже удостоилась высоких оценок. GSQL вмещает в себе редактор SQL-запросов с различными режимами их исполнения и выводом сообщений от сервера СУБД. Все объекты базы данных отображены в виде дерева. В текущем релизе программа умеет работать только с двумя СУБД: MySQL и Oracle (в большей степени), но планируется поддержка PostgreSQL, Firebird и SQLite. Возможности GSQL можно дополнить с помощью расширений. В настоящий момент их всего три: терминал, экспорт в файл и периодическое выполнение запросов к базе данных. Надо полагать, что программу ждет большое будущее - конечно, если пыл разработчика не угаснет.
2) Bootchart - одна из лучших утилит для проверки производительности системы. После установки и перезагрузки bootchart создаст комплексный график всего, что запускается и потребляет ресурсы во время загрузки вашей системы
3) Evolution-RSS - собственно из названия понятно, что это модуль для Evolution, позволяющий подписываться на RSS-ленты.
ЗЫ: описания к программам не мои, а (с)тырены с просторов интернета. Когда буду вставлять свои описания, то они будут идти в виде ссылки на пост в блоге.
понедельник, февраля 16
Синхронизация контактов Mozilla Thunderbird с Pocket PC (часть 2)
Ранее я уже написал как настроить серверную часть FinchSync на ББ.
Теперь настроим клиентскую часть на КПК.
Для этого скачаем cab-файл с сайт и перепишем его на КПК с помощью удобных и привычных для вас средств. А можно скачать сразу на КПК через встроенный в Windows Mobile броузер Internet Explorer или любой другой.
Собственно способ "доставки" cab-файла на КПК не имеет значения :) Главное, что его нужно запустить и установить.
Я лично устанавливал его не на встроенную память - программа не висит постоянно в памяти, а значит и нечего её делать в основной памяти.
После установки в списке программ появится ярлык для запуска FinchSync:

После запуска переходим в меню "Config > Server" для добавления сервера синхронизации. В окне указываем имя сервера, его IP адрес, порт по которому будет происходить синхронизация а так же логин и пароль (логин и пароль указываются на закладке "Clients" серверной части)

Проверить соединение с сервером можно по кнопке "Test" и в появившемся окне нажать "Connect". В случае корректного указания настроек подключения, должен появиться список АК для синхронизации.

Теперь можно сохранить настройки сервера и перейти к процессу синхронизации по кнопке "Sync it!":

Теперь настроим клиентскую часть на КПК.
Для этого скачаем cab-файл с сайт и перепишем его на КПК с помощью удобных и привычных для вас средств. А можно скачать сразу на КПК через встроенный в Windows Mobile броузер Internet Explorer или любой другой.
Собственно способ "доставки" cab-файла на КПК не имеет значения :) Главное, что его нужно запустить и установить.
Я лично устанавливал его не на встроенную память - программа не висит постоянно в памяти, а значит и нечего её делать в основной памяти.
После установки в списке программ появится ярлык для запуска FinchSync:
После запуска переходим в меню "Config > Server" для добавления сервера синхронизации. В окне указываем имя сервера, его IP адрес, порт по которому будет происходить синхронизация а так же логин и пароль (логин и пароль указываются на закладке "Clients" серверной части)
Проверить соединение с сервером можно по кнопке "Test" и в появившемся окне нажать "Connect". В случае корректного указания настроек подключения, должен появиться список АК для синхронизации.
Синхронизация контактов Mozilla Thunderbird с Pocket PC (часть 1)
Для синхронизации я использую FinchSync - написан на Java и потому кросплатформенный (проверял в Windows XP & openSUSE 11.1).
FinchSync состоит из двух частей: серверной (программа на "большом брате" (ББ), то бишь компьютере, установки не требует) и клиентской (на КПК, требуется установка).
Для закачки идёте сюда, соглашаетесь с лицензией и качаете что требуется.
Для ленивых а так же тех, кто не читает соглашений и сразу тыкает на "Accept", дам прямые ссылки:
ББ (сервер):FinchSync.jar (738 KB)
Pocket PC: FinchSync.cab (358 KB)
или в виде ZIP-архива: FinchSync_CAB.zip (115 KB)
SmartPhone: FinchSyncSP.cab (113 KB)
----------------
Настройка серверной части:
Скачиваем серверную часть и запускаем её (для запуска требуется наличие установленной JRE версии не ниже 1.5.0)
запуск сервера делается из командной строки "java -jar FinchSync.jar"
В меню "File -> Server configurations" можно настроить порт сервера и страницу просмотра статуса (последняя у меня не заработала - при открытии программа закрывалась):

Краткое описание закладок:
Activity: Активные клиенты, с которыми сейчас производится синхронизация
Sync Sources: Источники синхронизации (адресные книги, календари)
Clients: клиенты, которые могут синхронизироваться.
Закладка "Activity" не представляет большой нужности, если у вас, как и у меня, сервер запущен не постоянно и подключается к нему только 1 клиент - ваш КПК.
Закладка "Sync Sources" - с неё собственно и начинается настройка синхронизации.

Нажимаем кнопку "Add" для добавления адресной книги или календаря как источник синхронизации. Указываем имя источника синхронизации (в последующем имя будет использовано как название категирии в Адресной Книге (АК) на КПК). Нельзя использовать пробелы и дефисы. Так же не рекомендую использовать русские буквы - при синхронизации могут возникнуть проблемы с кодировками (сам не проверял).

жмём "Next" (Далее) и переходим к диалогу выбора адресной книги в качестве источника данных (адресные книги имеют расширение .mab). Если вы знаете точный путь, то можно нажать "Browse" и выбрать сразу. В противном случае можно сделать сканирование и выбрать из списка:

Преимущество сканирования - помимо имени файла АК видно и её название так, как вы назвали её в программе.
Подводные камни:
1) В Windows наблюдалась проблема с русскими именами АК - отображались в нечитаемой кодировке.
2) в Linux не происходит автоматический поиск в категории "~/.thunderbird". Подозреваю, что из-за точки в начале имени директории. Путь обхода - создание копии всех АК во временной директории, сканирование для узнавания связи имени АК и имени файла и ручной выбор АК с тем же именем файла из директории "~/.thunderbird"
Выбрав из списка или вручную файл АК, переходим к следующему диалогу, в котором мы можем указать, что данный источник подключается в режиме "только для чтения" - изменения с такими контактами/событиями на КПК не будут синхронизированы с ББ.

Таким образом добавляем столько источников, сколько у вас АК будут синхронизироваться.
Теперь можно перейти к следующей вкладке - "Clients"
На данной вкладке создаётся пользователь с указанием пароля авторизации и списком АК, которые через него будут синхронизироваться.

По нажатию кнопки "Add" показывается диалог добавления нового пользователя, для которого задаётся его имя, пароль и дабавляются источники синхронизации.

Настройка КПК и синхронизация будет описана по второй части.
FinchSync состоит из двух частей: серверной (программа на "большом брате" (ББ), то бишь компьютере, установки не требует) и клиентской (на КПК, требуется установка).
Для закачки идёте сюда, соглашаетесь с лицензией и качаете что требуется.
Для ленивых а так же тех, кто не читает соглашений и сразу тыкает на "Accept", дам прямые ссылки:
Version 0.80d
ББ (сервер):FinchSync.jar (738 KB)
Pocket PC: FinchSync.cab (358 KB)
или в виде ZIP-архива: FinchSync_CAB.zip (115 KB)
SmartPhone: FinchSyncSP.cab (113 KB)
----------------
Настройка серверной части:
Скачиваем серверную часть и запускаем её (для запуска требуется наличие установленной JRE версии не ниже 1.5.0)
запуск сервера делается из командной строки "java -jar FinchSync.jar"
в результате получаем следующее окно:

Краткое описание закладок:
Activity: Активные клиенты, с которыми сейчас производится синхронизация
Sync Sources: Источники синхронизации (адресные книги, календари)
Clients: клиенты, которые могут синхронизироваться.
Закладка "Activity" не представляет большой нужности, если у вас, как и у меня, сервер запущен не постоянно и подключается к нему только 1 клиент - ваш КПК.
Закладка "Sync Sources" - с неё собственно и начинается настройка синхронизации.
Нажимаем кнопку "Add" для добавления адресной книги или календаря как источник синхронизации. Указываем имя источника синхронизации (в последующем имя будет использовано как название категирии в Адресной Книге (АК) на КПК). Нельзя использовать пробелы и дефисы. Так же не рекомендую использовать русские буквы - при синхронизации могут возникнуть проблемы с кодировками (сам не проверял).
жмём "Next" (Далее) и переходим к диалогу выбора адресной книги в качестве источника данных (адресные книги имеют расширение .mab). Если вы знаете точный путь, то можно нажать "Browse" и выбрать сразу. В противном случае можно сделать сканирование и выбрать из списка:
Преимущество сканирования - помимо имени файла АК видно и её название так, как вы назвали её в программе.
Подводные камни:
1) В Windows наблюдалась проблема с русскими именами АК - отображались в нечитаемой кодировке.
2) в Linux не происходит автоматический поиск в категории "~/.thunderbird". Подозреваю, что из-за точки в начале имени директории. Путь обхода - создание копии всех АК во временной директории, сканирование для узнавания связи имени АК и имени файла и ручной выбор АК с тем же именем файла из директории "~/.thunderbird"
Выбрав из списка или вручную файл АК, переходим к следующему диалогу, в котором мы можем указать, что данный источник подключается в режиме "только для чтения" - изменения с такими контактами/событиями на КПК не будут синхронизированы с ББ.
Таким образом добавляем столько источников, сколько у вас АК будут синхронизироваться.
Теперь можно перейти к следующей вкладке - "Clients"
На данной вкладке создаётся пользователь с указанием пароля авторизации и списком АК, которые через него будут синхронизироваться.
По нажатию кнопки "Add" показывается диалог добавления нового пользователя, для которого задаётся его имя, пароль и дабавляются источники синхронизации.
Настройка КПК и синхронизация будет описана по второй части.
среда, февраля 4
и снова про аську...
Снова аська "накрылась" путём очередной смены протокола. Изгаляться с обновлениями клиентов не буду. Официальную ставить - изврат тот ещё. В общем протокол аськи у себя отрубаю жёстко. Кому надо - есть скайп, джаббер, эл. почта, сотовый, AIM. В общем - желающие всегда найдут как со мной связаться. Аська не панацея в этом "вопросе".
Нарыл тут в инете:
но это так... для "нагнетания" так сказать... :)
Нарыл тут в инете:
(цитата из пользовательского соглашения: http://www.icq.com/legal/policy.html)
"You agree that by posting any material or information anywhere on the ICQ Services and Information you surrender your copyright and any other proprietary right in the posted material or information. You further agree that ICQ Inc. is entitled to use at its own discretion any of the posted material or information in any manner it deems fit, including, but not limited to, publishing the material or distributing it."
Перевожу:
"Вы признаёте, что, пересылая любую информацию или иные материалы с помощью любого из сервисов ICQ вы теряете свой копирайт и любое другое проприетарное право на эту инфорацию или иные материалы. Вы также соглашаетесь, что ICQ Inc. получает право использовать Вашу информацию по своему усмотрению, включая, но не ограничиваясь, публикацию материалов или их распространение."
но это так... для "нагнетания" так сказать... :)
Подписаться на:
Сообщения (Atom)