вторник, 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.