воскресенье, 28 ноября 2010 г.

Идентификатор добавленной записи mysql в java

Для его получения надо сделать так:

statement.executeUpdate(query,Statement.RETURN_GENERATED_KEYS);

//Получаем идентификатор только что добавленной записи
resultSet = statement.getGeneratedKeys();
resultSet.next();
int id = resultSet.getInt(1);

В результате id будет хранить в себе идентификатор последней добавленной записи.

суббота, 13 ноября 2010 г.

Внешняя память админа: Обучаем SpamAssassin

Внешняя память админа: Обучаем SpamAssassin: "Как и обещал в этом посте, рассказываю как научить SpamAssasssin уму-разуму. Начнем с того, что для меня, как системного администратора, хра..."

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

Spamassassin и CentOS

Недавно столкнулся с проблемой запуска демона spamassassin в CentOS. При попытке запустить демон, вылазила ошибка:

child process [5201] exited or timed out without signaling production of a PID file: exit 255 at /usr/bin/spamd line 2588.

Как оказалось (путем запуска spamd отдельным процессом), надо было запустить команду sa-update для инициализации правил sa. После запуска sa-update проблема была решена.

вторник, 2 ноября 2010 г.

Ускорение Firefox

Иногда я встречаюсь с проблемой длительного поиска домена Firefox'ом (Сообщение "поиск www.domain_name.com (lookup www.domain_name.com)" в статусной строке). Немного поугуглив на эту тему, я нашел решение проблемы:

  • Открываем страницу about:config
  • Ищем свойство network.dns.disableIPv6
  • Ставим значение в true

Проблема была в том, что Firefox сначала пытался найти ipv6 адрес сайта, а лишь затем искал ipv4. Но так как большинство сайтов сейчас не имеют ipv6 адресов, происходила задержка в несколько секунд.

Установка свежего boost на CentOS 5.5

Для этого необходимо:

cd /usr/local/src/
wget http://sourceforge.net/projects/boost/files/boost/1.43.0/boost_1_43_0.tar.gz/download
tar xvzf boost_1_43_0.tar.gz
cd boost_1_43_0
./bootstrap.sh
./bjam install

вторник, 26 октября 2010 г.

Массовое конвертирование файлов

Чтобы не забыть.

#!/bin/bash
for file in `ls *.ext`
do
iconv -f cp1251 -t UTF-8 -o "new_$file" "$file"
done

и потом, собственно, создаем новую директорию, копируем туда все файлы new*.ext, выполняем

#!/bin/bash
for file in `ls`
do
mv $file ${file:4}
done

вторник, 5 октября 2010 г.

Redmine

Пару недель назад внедрил redmine для управления небольшим проектом и учетом багов. Пока всё очень нравится - "из коробки" руссифицированный интерфейс, тикеты создаются понятным для простых людей способом. Неплохие инструменты для администрирования. Единственный минус - redmine на ruby, который я знаю чуть-менее, чем никак. Поэтому возможности по расширению минимальны.

среда, 11 августа 2010 г.

Debian Squeeze sources.list

Вдруг кому пригодится:


#Основные зеркала
deb http://mirror.yandex.ru/debian/ squeeze main
deb-src http://mirror.yandex.ru/debian/ squeeze main

deb http://security.debian.org/ squeeze/updates main contrib non-free
deb-src http://security.debian.org/ squeeze/updates main contrib non-free

deb http://volatile.debian.org/debian-volatile/ squeeze/volatile main
deb http://http.us.debian.org/debian/ squeeze main contrib non-free
deb-src http://http.us.debian.org/debian/ squeeze main contrib non-free
deb http://http.us.debian.org/debian/ squeeze-proposed-updates contrib non-free main
deb-src http://http.us.debian.org/debian/ squeeze-proposed-updates contrib non-free main

# Репозиторий Backports.org
deb http://www.backports.org/debian/ squeeze-backports main contrib non-free

#Репозиторий Wine
deb http://www.lamaresh.net/apt sid main

#Multimedia (Кодеки и пр.)
deb http://www.debian-multimedia.org squeeze main non-free

среда, 4 августа 2010 г.

Шаблоны проектирования java

Нашел неплохую книжку по шаблонам проектирования (патернам) с примерами на java.
Название: Применение шаблонов java
Авторы: Стив Стелтинг, Олав Маасен.
ISBN:5-8459-0339-4

воскресенье, 18 июля 2010 г.

Debian Network Manager

Для того, чтобы Network Manager смог управлять интерфейсом, необходимо закоментировать все строки, связанные с этим интерфейсом в /etc/network/interfaces.

суббота, 19 июня 2010 г.

Оптимизация таблиц MySQL

Сегодня решил еще раз посмотреть на запрос в электронном офисе, выполняющийся пару минут. Решил посмотреть профилировщиком, что же там так долго выполняется. В общем, вспомнил я что-то про индексы. Сделав столбцы, используемые при выборке (WHERE XXX или LEFT XXX ON XXX.Y = YYY.Z) индексными, я получил прирост более 9000% производительности. Если раньше запрос выполнялся 84.68 сек. на моем Core 2 Quad, то теперь он выполняется всего 0.22 сек!

После этого случая я подумал, что надо будет всё-таки посмотреть пару книжек о MySQL. )

PS. Еще я наконец-то почти портировал его на Linux (Осталось сделать работу выгрузки файлов).

понедельник, 7 июня 2010 г.

воскресенье, 2 мая 2010 г.

четверг, 29 апреля 2010 г.

Быстрая проверка доступности порта

Реально быстрая команда для проверки открытости любого порта:
nc -z ftp.server 21 && echo Up || echo Down
Работает дейтсвительно быстро!

среда, 28 апреля 2010 г.

Steam для Linux

В этой теме на ЛОРе доступна ссылка и установочный скрипт для steam4linux. В данный момент при запуске steam ругается на библиотеку steamui.so. Ждем продолжения!

понедельник, 26 апреля 2010 г.

Tomcat 6 Ubuntu

Решил, наконец, поставить на Ubuntu (раньше приходилось использовать виртуалку с XP) электронный офис, для облегчения разработки и портирования его на GNU/Linux. Проблем возникло всего несколько:

  • Логи начали писаться через SYSLOG. Хоть это, может, и хорошо, но мне не очень удобно осуществлять просмотр логов SYSLOG. Поэтому, первое, что я сделал - перенаправил вывод логов в обычный текстовый файл. Это легко делает в файле /etc/init.d/tomcat6 , в строке, где запускается $DAEMON (контроллер JVM). Необходимо всего-лишь поправить параметр --out-file.
  • Из-за того, что ЕО разрабатывался еще под 5-й tomcat, а водрузил я его на 6-й, он начал сыпать в лог ошибками:  org.apache.jasper.JasperException: /pageDispetcher.jsp(216,22) Attribute value  (String)request.getSession().getAttribute("forwardURL")  is quoted with " which must be escaped when used within the value. Как оказалось, в новом стандарте теги jsp должны заключать значения параметров не в двойные ("), а в одинарные (') кавычки. Для решения этой проблемы необходимо всё в том-же файле /etc/init.d/tomcat6 найти первое JAVA_OPTS и добавть к нему в конце "-Dorg.apache.jasper.compiler.Parser.STRICT_QUOTE_ESCAPING=false".
  • Ну и третья проблема - установка безопасности, из-за которой без предварительной настройки апплет не может получить доступ к базе данных: необходимо отключить TOMCAT6_SECURITY. Всё в том=же файле /etc/init.d/tomcat6 изменяем значение TOMCAT6_SECURITY с yes на no - и всё работает :) По крайней мере у меня.

вторник, 20 апреля 2010 г.

Монитор использования сети

Сегодня наткнулся на монитор использования сети nethogs. Давно искал нечто подобное, но, видно, не очень активно )

понедельник, 19 апреля 2010 г.

Гидроизоляция и стройматериалы

ООО «ИЗОАРТ» является одним из ведущих производителей гидроизоляционных материалов на российском рынке. Производство «ИЗОАРТ» основано в 2000 году и известна под маркой IZOART. За это время наша продукция получила широкое распространение на территории Российской Федерации. Наша фирма также является официальным дилером и поставщиком строительных материалов от ведущих Российских и Европейских производителей. 

Компания предлагает гидроизоляционные материалы, строительные материалы и материалы для теплоизоляции. Также на сайте расположена информация и технические характеристики для гидроизоляционных, а также теплоизоляционных материалов. 

Продажа оптом по низким ценам - http://www.izo-art.ru/

четверг, 15 апреля 2010 г.

sshfs

Недавно вспомнил, что давненько хотел посмотреть на sshfs. Первое что попалось - этот мануал. Собственно, оказалось, что sshfs прост в установке и импользовании. Испытав это чудо, решил, что больше не вернусь к Filezilla :)

Обратная сортировка TreeMap в java

Недавно столкнулся с необходимостью сортировать элементы в некоторых TreeMap в обратном порядке.

descendingMap появился только в Java EE 6, для Java EE 5 такого нет. Поэтому по-быстрому изобрел небольшой костыль :


Comparator < String > reverse = Collections.reverseOrder();
//Создаем компаратор и инициализируем его компаратором из Collections
TreeMap rJR = new TreeMap(reverse);
//Создаем TreeMap с обратным порядком. reverse в конструкторе - выше созданный компаратор с обратным порядком
rJR.putAll(zakJournalRows);
//Добавляем требуемый TreeMap с обычной сортировкой в недавно созданный TreeMap с обратной сортировкой.

суббота, 10 апреля 2010 г.

Решил посмотреть jQuery

Это - великолепно и невероятно! Я познал истинное счастье в javaScript`инге :) Простота создания всяких динамических элементов, удобство их выбора для последующего манипулирования с помощью CSS селекторов, а также множество других изумительных плюшек поджидало меня в этот вечер.

Но нашел я и один недостаток, на который, к счастью, нашелся костыль. Это невозможность выбора элемента DOM через CSS селекторы после динамической загрузки содержимого. Спас упомянутый выше костыль - плагин Live Query .Он позволяет обойти это ограничение с помощью своего обработчика событий.

Итогом сегодняшнего (уже вчерашнего) вечера стало написание маленького чятика с поддержкой AJAX.

понедельник, 22 марта 2010 г.

Решил в очередной раз помочь FOSS сообществу

Сделал перевод для замечательной программы Tucan на русский язык.

Описание программы : софт для автоматического скачивания файлов с обменников (рапида, мегааплоад и др.). Имеет мощный API и неплохую документацию для создания плагинов.

PS. Оказалось, что перевод уже есть для последней версии. Так что ждем появления в репозиториях.

воскресенье, 21 марта 2010 г.

Ограничение скорости загрузки в wget


О том, что wget является очень полезным менеджером закачек в консоле думаю рассказывать не прийдется. И сегодня я обнаружил еще одну очень полезную опцию/ключ, такой как ограничение канала загрузки –limit-rate=значение в кб.
На примере это выглядит так:
wget --limit-rate=50k http://www....
Это приведет к тому, что скорость загрузки не будет превышать указанных в примере пятидесяти килобайт/сек, а это сможет позволить не забивать полностью канал и дальше использовать интернет для любых нужд.

среда, 17 марта 2010 г.

Скрипт для скачивания репозитория из-под Windows

Данный скрипт позволяет скачивать репозиторий любого deb дистрибутива из-под Windows.

Сам скрипт версии 0.5.1
Форум на котором этот скрипт выложен

Это - нормально? О_о

Сабж.

Слабонервным не смотреть )

Упал со стула



╨Я╤А╨╕╨▓╨╡╤В ╨Ч╨╡╨╝╨╗╤П╨╜╨░╨╝!!!

Репозитории Chromium для Ubuntu 9.10

/etc/apt/sources.list :
deb http://ppa.launchpad.net/chromium-daily/ppa/ubuntu karmic main
deb-src http://ppa.launchpad.net/chromium-daily/ppa/ubuntu karmic main
Ключ репозитория :
sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xfbef0d696de1c72ba5a835fe5a9bf3bb4e5e17b5

вторник, 16 марта 2010 г.

Нашел отличную RSS читалку для WinMobile

После некоторого времени поисков нашел отличный rss клиент для Windows Mobile девайсов.

pRSSreader - OpenSource читалка RSS. Что очень понравилось - поддержка WM 2003. Также есть куча вкусностей, таких как поддержка импорта из Google Reader, настройка подключения к интернету, настройка кеширования и пр.

Сайт проекта