суббота, 12 декабря 2009 г.
Как "умный" BIOS мне диск сломал.
вторник, 29 сентября 2009 г.
Облом с личным поисковиком
Хотел обустроить себе личный поисковик такой, чтобы:
умел индексировать сайты и потом искать по ним.
умел спрашивать результаты у других поисковиков, объединять и показывать мне.
умел представлять результаты поиска в виде пригодном для скармливания другому поисковику.
пятница, 21 августа 2009 г.
О ценности денег или "деньги - время"
Так уж сложилось, что я привык свысока относиться к деньгам. Выражение “время — деньги” меня никогда особо не трогало. Подумаешь деньги, их ведь можно заработать. То ли дело время, оно проходит и его уже не вернешь.
воскресенье, 16 августа 2009 г.
Python Paste и PyBlosxom
Связка Apache2 + mod_wsgi оказалась мало пригодной для web разработки. Когда приложение отлажено и стабильно работает, претензий нет, а вот отладка и переключение между разными экспериментальными ветками крайне не удобны. Пока конфиги исправишь, уже забыл чего хотел делать. К сожалению, дневник на PyBlosxom как раз этот случай.
суббота, 1 августа 2009 г.
Самовосстановление зрения по методу Шичко-Бейтса
Давно собирался заняться восстановлением зрения, наконец занялся — прошел курсы по самовосстановлению зрения по методу Шичко-Бейтса. Не ожидал, что подобное есть у нас в городе, однако, ошибся. Курсы есть (http://www.gorsvt.ru) и занятия проводятся раз в месяц с декабря прошлого года. Конечно, до тех же лекций В.Г Жданова им далеко, но свою функцию начального пинка выполняют хорошо. К тому же, приятно чувствовать, что ты не одинок и восстановлением зрения интересуются и занимается кто-то еще.
Чуда, конечно, не произошло и совсем отказаться от очков за неделю у меня не получилось, но, по субъективным ощущениям некоторые улучшения заметны. По крайней мере я отказался от очков в быту и сейчас вполне нормально обхожусь без них. Единственное, когда я их одеваю, это при работе за компьютером и то, они на полторы диоптрии слабее, чем нужно, и ,вроде, со временем изображение становитя четче.
понедельник, 13 июля 2009 г.
Осваиваю OpenID
Потихоньку обживаюсь в Интернете. Бесит необходимость регистрироваться, где ни попадя и кем попало. Поди потом упомни, все свои личины... Так и раздвоение личности схлопотать недолго. И не дай бог, пароли решишь поменять, на неделю можно увязнуть. Надоело. Даешь единообразие! Буду осваивать OpenID.
Мудрить сильно не стал. На первое время, сойдет и делегация. Тут главное, что домен мой, а провайдера при необходимости сменить можно. Первым провайдером назначил OpenID сервер Яндекса (из патриотических соображений: говорят по нашему, версию OpenID Authentification 2.0 поддерживают, а еще мне нравится как Иван Сагалаев пишет).
Инструкция по настройке делегации на сайте порадовала. Ума много не надо, только хостинг (за него отдельное спасибо администрации freeos.ru).
Некоторые сложности возникли с проверкой работы. "Официальной" песочницы для этого я не нашел, пришлось импровизировать. Доверять логин кому не попадя желания нет никакого, поэтому выбирал из известных сайтов. Приглянулся http://www.livejournal.com.
Логин прошел на ура, а вот профиль не подтянуло - вместо имени URL пишет. Ну и пусть, может это особенности сайта. Главное вход работает. Можно начинать избавляться от лишних учеток. Посмотрим, что из этого выйдет.
четверг, 9 июля 2009 г.
Pyblosxom: переход на следующую/предыдущую запись
--- a/pyentrynavi.py    Mon Jul 06 14:59:19 2009 +0600
+++ b/pyentrynavi.py    Thu Jul 09 14:54:35 2009 +0600
@@ -44,7 +44,7 @@
from Pyblosxom import tools, entries
import time
-import re
+import os.path
def verify_installation(request):
    config = request.getConfiguration()
@@ -53,11 +53,6 @@
        return 0
    return 1
-def translate_file_to_link(filename, datadir, base_url, flavour):
-    datadir = datadir.rstrip('/')
-    basename = filename[len(datadir):]
-    return base_url+basename[:(basename.rfind('.')+1)]+flavour
-
def cb_prepare(args):
    request = args['request']
    data = request.getData()
@@ -66,14 +61,13 @@
    entry = data['entry_list']
    flavour = data['flavour']
-    filename = entry[0]['filename']
+    filename = os.path.normpath(entry[0]['filename'])
    config = request.getConfiguration()
    datadir = config['datadir']
    base_url = config['base_url']
-    r = re.compile('(.*\.txt$)')
-    allentries = tools.Walk(request, datadir, pattern=r)
+    allentries = tools.walk(request, datadir)
#    cur_time = time.localtime()
@@ -94,19 +88,22 @@
    except ValueError:
        return
+    def entry_url(e):
+        # FIXME: flavour is not the same as entry extension
+        return "%s/%s.%s" % (base_url, e["file_path"], flavour)
+
    navi_str = ''
    if num != (len(entrylist)-1):
        fname = entrylist[num+1]
        e = entries.fileentry.FileEntry(request, fname, datadir)
-        prev_link = translate_file_to_link(fname, datadir,base_url, flavour)
+        prev_link = entry_url(e)
        navi_str += '< <a href="http://www.blogger.com/%s">%s</a> '%(prev_link,e['title'])
    navi_str += '| <a href="http://www.blogger.com/%s">MAIN</a> |'%base_url
-
    if num:
        fname = entrylist[num-1]
        e = entries.fileentry.FileEntry(request, fname, datadir)
-        next_link = translate_file_to_link(fname, datadir, base_url, flavour)
+        next_link = entry_url(e)
        navi_str += ' <a href="http://www.blogger.com/%s">%s</a> >'%(next_link,e['title'])
    data['entry_navi'] = navi_str
понедельник, 15 июня 2009 г.
Переключения раскладки в Windows
c:\opt\bin\lswitch.exe 20
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\IMM]
"LoadIMM"=dword:00000000
;; Unified language switching hack for Windows and Emacs ;; http://dima-exe.ru/2007/4/win32-emacs-and-change-language ;; ;; Run lswitch.exe 20 on windows startup. ;; Define default-input-method variable in your .emacs. ;; Use CAPSLOCK to switch input language. (setq default-input-method "russian-computer") (defvar safe-language-change-flag nil) (defun safe-language-change () (interactive) (setq safe-language-change-flag (not safe-language-change-flag)) (when safe-language-change-flag (toggle-input-method) (w32-toggle-lock-key 'capslock))) (global-unset-key (kbd "C-\\")) (global-set-key (kbd "<language-change>") 'safe-language-change)