Обнаружил элементарный opds-сервер для домашнего использования: https://tinyopds.codeplex.com/
Есть все что нужно, настраивать ничего не нужно. Класс!
пятница, 17 мая 2013 г.
четверг, 4 апреля 2013 г.
Oracle Xe. ORA-28001: the password has expired
Внезапно на машине разработчика возникла сия проблема (ORA-28001: the password has expired) при попытке соединения через JDBC.
Решается просто. Соединяемся через sqlplus как sysdba (sys as sysdba например) и выполняем:
Теперь все работает как прежде.
Решается просто. Соединяемся через sqlplus как sysdba (sys as sysdba например) и выполняем:
ALTER USER имя_пользователя_например_SYSTEM IDENTIFIED BY тут_ваш_пароль_можно_тот_который_был ACCOUNT UNLOCK;
Теперь все работает как прежде.
понедельник, 11 февраля 2013 г.
Зарезервированные слова Oracle
Если возникла такая необходимость, то зарезервированные слова в Oracle можно посмотреть так:
На сейчас там 1846 слов...
select * from v$reserved_words order by keyword
На сейчас там 1846 слов...
среда, 16 января 2013 г.
Конвертация bzr в hg - проблема с множеством branch
После конвертации репозитория bzr в hg можно наблюдать наличие большого числа branch в новеньком репозитории hg, хотя никаких веток в bzr как бы и не было. Возникает это от того, что bzr считает названием ветки (сюрприз!) имя каталога проекта в момент комита. И если кто-то сделал себе checkout в каталог с именем, отличающимся от имени проекта, он сделал ветку. И наличие этих веток никак не посмотреть в bzr. Или я просто не нашел среди обилия команд как это сделать.
Как решить? Очень просто. Делаем первоначальную конвертацию bzr->hg:
Выясняем, какие ветки у нас получились в hg:
Создаем простой текстовый файл и устанавливаем в нем соответствие между левыми ветками и веткой default:
Теперь делаем окончательную конвертацию, указав дополнительно только что созданный файл в опции branchmap:
Теперь в новеньком репозитории hg должна быть только одна ветка default.
Как решить? Очень просто. Делаем первоначальную конвертацию bzr->hg:
hg convert -s bzr project1 project1-hg
Выясняем, какие ветки у нас получились в hg:
hg branches
Создаем простой текстовый файл и устанавливаем в нем соответствие между левыми ветками и веткой default:
project1 default project-1 default
Теперь делаем окончательную конвертацию, указав дополнительно только что созданный файл в опции branchmap:
hg convert -s bzr project1 project1-hg --branchmap bz1
Теперь в новеньком репозитории hg должна быть только одна ветка default.
четверг, 10 июня 2010 г.
Sphinx и русский язык. Нюанс
Для тех, кто не в курсе: Sphinx - это система генерации документации на (и для) python.
Что бы добиться правильного русского текста в генерируемом html, нужно исходные rst-тексты оформлять в кодировке utf8 и не трогать настройки кодировки в conf.py. В частности не стоит раскоментировать строку source_encoding:
# The encoding of source files. # source_encoding = 'utf8'Раскоментирование этой строки дает неприятный нюанс: если файл начинается с utf-префикса, то символы utf-префикса (0xEF 0xBB 0xBF) будут считаться обычными символами, в результате чего sphinx начинает неправильно обрабатывать визуально вроде правильный синтаксис rts. Например, если в самом начале файла есть текст:
Заголовок =========то перед "
Заголовок" присутствуют еще 3 символа (невидимых), в итоге sphinx ругается, что "Заголовок" короче, чем "=========".
вторник, 8 июня 2010 г.
Запуск тестов в pydev через nose
Я пользуюсь nose для запуска тестов и мне все нравится, за исключением того, что pydev (ide на eclipse для python) не умеет запускать тесты через nose, а нужно. Оказывается достаточно легко его этому научить. Для этого нужно подправить файл из поставки pydev:
plugins\org.python.pydev.debug_1.5.7.2010050621\pysrc\runfiles.py.
Ищем в нем метод def run_tests(self), который собственно говоря запускает тесты, и изменяем его на свой вкус, например так:
def run_tests(self):
files = self.find_import_files()
sys.argv=['NOSETESTS', '-s', '-v']
for f in files:
for t in self.tests:
sys.argv.append(f+':'+t)
import nose
nose.run()
return
Поясню:
files- имена (полные) файлов с тестами (обычно - один)self.tests- имена тестов, которые Вы выбрали, когда запускали тесты через Ctrl+F9sys.argv.append(f+':'+t)- добавление в командную строку запуска имени файла и имени теста, как хочет nose
вторник, 25 августа 2009 г.
Как получить реальное имя таблицы в Grails
Если нужно получить реальное имя таблицы в базе данных, то это можно сделать так:
def ctx = ApplicationHolder.getApplication().getMainContext()
def hiberConf = ctx.getBean('&sessionFactory').getConfiguration()
def clsMapping = hiberConf.getClassMapping(DOMAINCLASS.name)
def tableName = clsMapping.getTable().getName()
Подписаться на:
Сообщения (Atom)