понедельник, декабря 21

Linux & Windows

Чем дольше "сижу" в линухе, тем больше понимаю что винда фигня... не... не совсем конечно фигня... для "начинающих" самый то... но...

Чем больше читаешь статей в инете про сравнения на всякого рода "хороших" и "умных" онлайн-журналах, тем больше понимаешь, что ЗАКАЗУХА...

вот например последняя статья с PCWeek отдаёт такой желтизной и заказухой...
вот например вырезка:
"Возвращение Microsoft к использованию командной строки с помощью PowerShell не имеет прямого аналога в мире Linux."
или
"Problem Steps Recorder представляет собой неплохой инструмент для выявления неисправностей, входящий в состав Windows 7. Если и существует что-то подобное для Linux, то нам не удалось его найти."

абидна

четверг, декабря 17

Подключение по JDBC к DB2 из Java-агента Lotus Domino

Для Universal JDBC доступа к DB2 серверу из Java-агента Lotus Domino понадобится:

Скопировать на сервер библиотеки драйвера:
Копируем в каталог "%DOMINO_DIR%/jvm/lib/ext" файлы db2jcc.jar и db2jcc_license_cu.jar. Взять их можно с самого сервера DB2 из каталога "%DB2%\SQLLIB\java"
Перезагружаем сервер Lotus Domino, дабы JRE оного сервера "подхватила" новые библиотеки

написать Java-библиотеку DBFactory:
Создаём Java Library для класса DBFactory. Я не буду здесь расписывать вариант с несколькими подключениями и пропишу "жесткие" параметры подключения через private-аттрибуты url, user и password.


Исходный код библиотеки:
public class DBFactory {
private static final String url = "jdbc:db2://SERVER_NAME:SERVER_PORT/DATABASE";
private static final String user = "USERNAME";
private static final String password = "PASSWORD";

private Connection con;
private Statement stmt;

public DBFactory() {
try{
Class.forName("com.ibm.db2.jcc.DB2Driver").newInstance();
con = DriverManager.getConnection(url, user, password);
stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}

public Statement getStatement(){
return stmt;
}
}


произвести само подключение, используя DBFactory:
Создаём Java-агента с Security="Allow restricted operations", к которому подключаем нашу библиотеку DBFactory

после чего в агенте можно создать подключение к серверу:
Statement stmt = (new DBFactory()).getStatement();

теперь нам доступен объект Statement, позволяющий организовывать SQL запросы к серверу.

понедельник, декабря 14

линукс и принтеры...

Но вот раскопал ресурс (да, позор - ресурс лежал на поверхности, а я его не видел), в котором есть "справка" по установке в линуксе практически любого принтера...
Нашлись там и те принтеры, с которыми я сталкивался...

Последовательность поиска очень простая:

  • Переходим в раздел Printers

  • в первой строке выбираем производителя принтера (ВНИМАНИЕ - НЕ НАЖИМАЙТЕ СРАЗУ кнопку "Show")

  • В списке правее выбираем модель принтера

  • вот теперь можно нажимать на кнопку "Show", что в первой строке. (Для принтера Xerox WorkCentre M128, что у меня настраивался, это будет вот эта страница)

  • переводим, читаем, вникаем и устанавливаем



ЗЫ: Для openSUSE потребуется предварительно установить пакет lsb

суббота, декабря 12

проверка

Пробую написать пост через блок-клиента на тулбаре гнома... :)


Простенький конечно редактор... ну да ежели что такое быстренько написать - почему бы им не воспользоваться?

понедельник, декабря 7

Работа с FLAC (Часть 1. Разбивка на треки)

Понадобилось мне тут "порезать" большой flac на "множество треков...
Происки по инету дали следующие результаты:
1) треба использовать утилиты из пакетов cuetools и shntools
2) для openSUSE требуется подключить доп. репозитарии, дабы не ставить "ручками" и иметь возможность автоматического обновления

Посему, себе на память и ищущим для облегчения:

процедура раз (установка требуемого ПО):
1) в openSUSE требуется добавить репозитарии "Multimedia:Apps" и "Multimedia:Libs" для своей версии ОС
2) установить озвученные пакеты (из командной строки): sudo zypper in cuetools shntool (прим.: в openSUSE пакет shntools "сокращён" до shntool)

Процедура два (собственно, процесс разбиения flac на треки):
1) (опционально) Перекодирование русских названий треков в треклисте из Windows-кодировки: iconv --from-code=CP1251 --to-code=UTF-8 --output=CDImageUTF8.cue CDImage.cue
2) разбиение на треки: cuebreakpoints CDImage.cue | shnsplit -o flac CDImage.flac (прим.: если выполнялся пункт (1), то CDImage.cue заменить на CDImageUTF8.cue)
3) Заполнение тегами: cuetag CDImage.cue split-track*.flac

воскресенье, апреля 26

PHP __autoload

Попалась тут задачка...
есть несколько вариантов написания библиотек с классами... почему так? потому что разные источники и у каждого свои исторически сложившиеся наименования...

В частности их было 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 . '"');
}
}

NetBeans

Решил попробовать NetBeans вместо Eclipse для кодинга...

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

такие как сворачивание блоков происходит ПОЛНОСТЬЮ и норовит это сделать постоянно... разве что не на тех блоках, которые ты сейчас правишь - это радует немного...

Цвето-шрифтовая схема какая-то малость неприятная... но менять пока времени особо нет - долго сидеть разбираться и ковыряться в настройках... но чуть позже к этому я явно вернусь - как совсем достанет...

Радует хорошая интеграция с AJAX библиотеками... а так же нашёл модуль, добавляющий поддержку Smarty-шаблонов для PHP проектов.

воскресенье, апреля 5

Ладо, ладно! Уже выхожу...

Решил я тут значит в консольке поработать да пакеты всякие понаставить...
а тут Zypper возьми да подвисни что-то...

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


----------------
Now playing on Last.fm: Leftfield - Space Shanty
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:

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