понеділок, 20 грудня 2010 р.

Зайцы, кошки и собаки...

Всякое дорогу перебегало перед машиной, но такое..

Еду как-то я раз по трассе вдоль Днепра (за Днепродзержинском), леса там отличные.
Дело было ночью, поэтому видимость — сами знаете какая.
Замечаю я, что на левом краю дороги стоит какая-то собака. Подъезжаю чуть ближе и понимаю, что собака какая-то странная — слишком крупная и форма не совсем собачья. И эта "собака" начинает так флегматично переходить дорогу передо мной. "Дальний" свет её не волнует, а скорость-то у меня — обычные 110!
У меня уже давно рефлекс ногу переносить на тормоз при виде кошки или собаки и, естественно, это меня и спасло тогда.
Ибо никакая это не собака была. Самый натуральный кабан!
Оттормаживался я весело, со 110 до полной остановки, хорошо, что ещё льда никакого не было. Остановился я за пару метров до зверя.
А зверь этот флегматично пошёл дальше. А мне пришлось немного отдышаться. Ибо кабанчик был явно 70-80кг и помялся бы я изрядно, случись удар.

PS: кстати, есть подозрение, что в Фиесте есть тоже сигнализация аварийного торможения — мне кажется, что поворотники мигали. Но честно говоря не уверен, уж очень мне было не до них в тот момент.

вівторок, 7 грудня 2010 р.

Немного о чае!

Данька пока нас не сильно балует разнообразием слов, поэтому одного хватает на много вещей.

К примеру: "чай"! Чай у него — это любая жидкость: вода, чай, компот (кстати, компот почему-то "сини чай").
Более того, повторюсь,— любая(!) жидкость! Море — это тоже чай...
;)

phpbrowscap

С недавних пор мне начали сыпаться ошибки из серии:

exception 'Browscap_Exception' with message 'Bad datetime format from http://updates.browserproject.com/version-date.asp' in .../phpbrowscap/browscap/Browscap.php:485


Как выяснилось, file_get_contents не умеет обрабатывать redirect (302) и URL теперь нужно использовать другой: https://browsers.garykeith.com/versions/version-date.asp (ну или попробовать использовать CURL)

четвер, 4 листопада 2010 р.

эм-ве-квадрат...

Размещу-ка и у себя ссылку:
Вес машины и безопасность на дороге

В комментариях понравилось:

Кашкаров П.К. (препод с физфака) попал в аварию, разбил машину но сам чудом уцелел. Вылазит и бормочет "Хорошо, что пополам.. хорошо, что пополам". Его спрашивают "Что пополам?" Он - "Эм-ве-квадрат пополам"

Камень-ножницы-бумага..

Мне кажется, что я не тем занимаюсь ;)
Ссылка на YouTube

середа, 6 жовтня 2010 р.

Сказка про DiSEqC

В очередной раз я столкнулся с ситуацией, когда htpc перестал переключаться между спутниками. Dreambox может, а этот — нет! :(
Если выключаю дрим — htpc прекрасно переключает каналы. Думал, что виноваты DiSEqC-ы, перебрал просто их дикое количество. Ничего не помогало.
Так я и жил без дрима.
Как-то раз включил дрим - всё вроде бы работает, но при попытке проиграть запись на дриме тот сразу же уходил в перегрузку. Спустя неделю-две опять перестал переключать DiSEqC, но в тот же момент начал пищать дрим. Дрим умер?!?!

Я уже совсем опечалился, но всё же повёз дрим в ремонт. Но оказалось, что в очередной раз умер БП дрима. Купил новый и... о, чудо! Всё работает! Дрим работает, не пищит, и записи с htpc показывает. HTPC работает, спутники переключает и вообще всё хорошо!

Мораль — не всегда дело в DiSEqC!

PS: А после этого я в спальне доукомплектовал комп, спаял (спасибо Олегу!) ИК-приёмник и подключил его в COM1 (идея уже обкатана на HTPC), настроил WinLIRC и пульт (вот тут были проблемы: почему-то WinLIRC не мог нормально обучиться всем пультам, что я перепробовал; тогда я просто использовал пульт, на который уже был конфигурационный файл тут), немножко подхимичил, чтоб только одна копия WinLIRC запускалась, и чтоб можно было запустить MediaPortal с пульта (и, естественно, только одна копия) и.. voi-la, ещё одна мультимедийная станция готова! ТВ, записи, фильмы (в том числе и HD), фотки и т.д. ;)

PPS: Вот бы ещё усилитель выклюлся сам при выключении компа?

вівторок, 5 жовтня 2010 р.

iGO FAQ

Сохраню-ка я у себя в ссылочках вот это:
FAQ по iGO

Очень много полезной информации, к примеру меня давно мучил вопрос, как убрать фразу "перепроложить" во время изменения маршрута?

Для владельцев GSmart S1200 скажу, что приемник GPS доступен на 7-м порту (автопоиск замечательно нашёл).

четвер, 9 вересня 2010 р.

Закатные фото

Их конечно много в сети, но вот эти две мне очень понравились (это я почитываю новый сайтик fishmonger-а):

Закат
Костер

середа, 8 вересня 2010 р.

x11vnc

Неплохая и внятная статья о том, как обеспечить vnc сервер, отображающий реальную консоль, на Debian/Ubuntu.

krfb жуткий тормоз, а из виндовых клиентов больше понравился UltraVNC.

Прекрасное далёко

Чего-то меня сегодня коротнуло и... короче, я нашёл треки из фильма "Гостья из будущего", сижу вот, слушаю, и даже на телефон заливаю! ;)

Просто послушать можно тут, а скачать - тут или тут

Массаж.. ягодиц

Просто шикарное видео! ;)



Как говорится, всё смотрел бы и смотрел бы ;)

четвер, 2 вересня 2010 р.

Одна из любимых песен ;)

Этой песне уже очень много лет, но всё так же согревает душу и сердце!
Есть минутка и желание? Споём?

Музыка: М.Табачников
Слова: С.Кирсанов
Исполнитель: Л.Утесов

Есть город, который я вижу во сне.
О, если б вы знали, как дорог
У Черного моря открывшийся мне
В цветущих акациях город
У Черного моря!

Есть море, в котором я плыл и тонул,
На берег бык вытащен, к счастью,
Есть воздух, который я в детстве вдохнул,
И вдоволь не мог надышаться
У Черного моря!

Вовек не забуду бульвар и маяк,
Огни пароходов живые,
Скамейку где мы, дорогая моя,
В глаза посмотрели впервые
У Черного моря!

Родная земля, где мой друг - одессит
Лежал, обжигаемый боем.
Недаром венок ему Родиной свит,
И назван мой город героем
У Черного моря!

А жизнь остается прекрасной всегда,
Xоть старишься ты или молод,
Но каждой весной так тянет меня
В Одессу - мой солнечный город,
У Черного Моря.


Нормальную mp3 что-то найти не могу :(

понеділок, 23 серпня 2010 р.

svn diff + vim

Ха, а ларчик просто открывался: очень легко можно настроить svn использовать vimdiff для отображения изменений в конкретном файле:

— Создать файлик (к примеру svnvimdiff) с содержимым:

#!/bin/sh
vimdiff "$6" "$7"


— Настроить svn (файлик ~/.subversion.config):

[helpers]
diff-cmd = svnvimdiff


Ну или
svn diff --diff-cmd svnvimdff file...


Содрано отсюда

Бобро поржаловать!


На севере французов нет! Там живут одни ржики! И говорят они на суржике! Француржики!


Очень душевный фильм, и (что очень важно!) очень качественный перевод.
Если вдруг попадётся фильм без дубляжа (одноголосье, закадровый или что-то ещё) - смело выбрасывайте. Ибо это надо приложить очень много знаний и умений, чтоб так качественно перевести и обыграть весь этот суржик.

Однозначно рекомендую, а себе в коллекцию запишу ;)

Ну и как обычно сошлюсь на Экслера

четвер, 19 серпня 2010 р.

Умка

Сейчас на Даньку колыбельные уже не действуют, но когда-то было дело, напевал вот это:

муз. Е.Крылатова
сл. Ю.Яковлева

Ложкой снег мешая,
Ночь идет большая,
Что же ты, глупышка, не спишь?
Спят твои соседи -
Белые медведи,
Спи скорей и ты, малыш.

Мы плывем на льдине,
Как на бригантине,
По седым, суровым морям.
И всю ночь соседи,
Звездные медведи
Светят дальним кораблям.

;)

PS: Кстати, автор сценария и текста песни — Юрий Яковлев, но это немножко другой Яковлев

How to Enable CTRL+V Paste in the Windows Command Prompt (+Far)

Некоторые исправляния к первоначальному скрипту: поломалась вставка из буфера обмена в Far.

Поэтому вначале скрипта объявляем группу (все cmd за исключением Far):
GroupAdd, cmd, ahk_class ConsoleWindowClass,,, Far


(обычно до первого определения клавиш, убедитесь в логе AutoHotKey, что группа объявлена)

А затем уже привязка к группе:

#IfWinActive, ahk_group Cmd
^V::
+Insert::
SendInput {Raw}%clipboard%
return
#IfWinActive

середа, 18 серпня 2010 р.

вівторок, 17 серпня 2010 р.

How to Enable CTRL+V Paste in the Windows Command Prompt

Ванятка нашёл, за что ему большое спасибо.
CMD я не так часто пользуюсь, всё равно Far намного удобнее ;)

И всё же, если есть удобный и простой способ сделать жизнь проще, почему бы и нет?
Вот он, этот скриптик, единственное — я добавил ещё и комбинацию Shift-Insert:

#IfWinActive ahk_class ConsoleWindowClass
^V::
+Insert::
SendInput {Raw}%clipboard%
return
#IfWinActive

четвер, 12 серпня 2010 р.

AutoHotKey

Ну буду разводить полемику на тему большего количества настроек интерфейса в X-ах по-сравнению с Windows, а расскажу об одной небольшой, но очень полезной программке, которая как раз и позволяет мне иметь дополнительные возможности в интерфейсе Windows.
Сия чудная програмка называется AutoHotKey.
При запуске она радостно прячется в трей и вообще не мешает, но реагирует на определённые события от мыши или клавиатуры и выполняет какие-либо действия.
Вот об этих событиях и действиях далее и пойдёт речь.

Проще всего привести свой конфигурационный файлик и описать, что каждая из строчек делает.

Итак, поехали!
Начало (в принципе тут ничего существенного: константы, мелкие настройки):


WS_EX_APPWINDOW = 0x40000
WS_EX_TOOLWINDOW = 0x80
GW_OWNER = 4

SetTitleMatchMode RegEx
DetectHiddenWindows, On
SetWinDelay,2


Далее идут события от клавиатуры, Win-Z минимизирует окно:


#z::PostMessage, 0x112, 0xF020,,,A ; 0x112 = WM_SYSCOMMAND, 0xF020 = SC_MINIMIZE


Win-X максимизирует окно:


#x::
WinGet MX, MinMax, A
If MX
WinRestore, A
Else
WinMaximize, A
return


Win-minus (-) закроет приложение:

#-::WinClose, A


Win-PgDown добавить прозрачности окну (заглянуть под окно), но я этой функцией не пользуюсь, да и под Win7, похоже, не совсем работает:

#PgDn::
WinGet, list, List
loop, %list%
{
wid := list%A_Index%
WinGet, es, ExStyle, ahk_id %wid%
if ( ( ! DllCall( "GetWindow", "uint", wid, "uint", GW_OWNER ) and ! ( es & WS_EX_TOOLWINDOW ) )
or ( es & WS_EX_APPWINDOW ) )
WinSet, Transparent, 10, ahk_id %wid%
}
return


Win-PgUp, соответственно, уберёт прозрачность:

#PgUp::
WinGet, list, List
loop, %list%
{
wid := list%A_Index%
WinGet, es, ExStyle, ahk_id %wid%
if ( ( ! DllCall( "GetWindow", "uint", wid, "uint", GW_OWNER ) and ! ( es & WS_EX_TOOLWINDOW ) )
or ( es & WS_EX_APPWINDOW ) )
WinSet, Transparent, 255, ahk_id %wid%
}
return


Объявляем пару функций:

WMove(dx, dy) {
WinGetPos, X, Y, , , A
WinMove, A, , (X + dx), (Y + dy)
}

WResize(dw, dh) {
WinGetPos, , , W, H, A
WinMove, A, , , , (W + dw), (H + dh)
}


Следующие сочетания клавиш перемещают или изменяют размер окна, к примеру Win-Up подвинет окно вверх на 50 пикселей, Shift-Right увеличит ширину на 50 пикселей (модификаторы: # — Win, + &mdash Shift, ^ — Control), не работает с putty (но с ним ничего не работает — он полностью сам управляет окном и перекрывает системные события):

+^#Up::WResize(0, -10)
+^#Down::WResize(0, 10)
+^#Left::WResize(-10, 0)
+^#Right::WResize(10, 0)
+#Up::WResize(0, -50)
+#Down::WResize(0, 50)
+#Left::WResize(-50, 0)
+#Right::WResize(50, 0)
^#Up::WMove(0, -10)
^#Down::WMove(0, 10)
^#Left::WMove(-10, 0)
^#Right::WMove(10, 0)
#Up::WMove(0, -50)
#Down::WMove(0, 50)
#Left::WMove(-50, 0)
#Right::WMove(50, 0)


Как оказалось для меня, управление окнами с клавиатуры — очень полезная вещь!

Далее запуск приложений: Win-S — Far Manager и т.д.

#s::Run, "C:\home\share\quicklaunch\FAR manager.lnk"
#v::Run, gvim.exe
#j::Run, c:\home\bin\eject.exe
#c::Run, c:\windows\system32\calc.exe


В давние времена я пользовался Thunderbird:

#m::
SetTitleMatchMode, 2
Process, Exist, Thunderbird.exe
if %ErrorLevel% = 0
{
Run, c:\usr\thunderbird\thunderbird.exe
WinWait, Thunderbird
WinShow, Thunderbird
}
;#WinActivateForce
IfWinNotActive, Thunderbird
{
WinActivate, Thunderbird,
;WinWaitActive, Thunderbird,
;WinActivateBottom, Thunderbird
;WinWaitActive, .* - Thunderbird
}
return


.. и Оперой:

#w::
IfWinExist, Opera
WinActivate
else
Run, c:\Program Files\Opera\opera.exe
return


Запуск Outlook (или из трея вытащить), плюс Win-Ctrl-t покажет окно для ввода новой задачи:

#o::
IfWinExist, .* - Microsoft Outlook
WinActivate
else
Run, "C:\Program Files\Microsoft Office\Office12\OUTLOOK.EXE"
return
^#t::Run, "C:\Program Files\Microsoft Office\Office12\OUTLOOK.EXE" -c ipm.task


Win-y запустит (или вытащит — грубо, но работает) Skype из трея (хотя сам Skype клавиатурой практически не управляется):

#y::Run, C:\Program Files\Skype\Phone\Skype.exe


Для размонтирования флешек или внешних винтов использую USB Disk Eject (Win-u)

#u::
Process, Exist, USB_Disk_Eject.exe
if %ErrorLevel% = 0
{
Run, C:\usr\USB-disk-eject\USB_Disk_Eject.exe
WinWait, Safely Remove USB Disks
WinShow, Safely Remove USB Disks
}
IfWinNotActive, Safely Remove USB Disks
{
WinActivate, Safely Remove USB Disks
}
return


Который теперь спокойно закрывается по Escape (а не Alt-F4):

~Escape::
IfWinActive, Safely Remove USB Disks
WinClose
return


Работа в X-Window быстро меня приучила к использованию Caps-Lock для переключения раскладок, и стандартные Alt-Shift или Ctrl-Shift в Windows меня абсолютно не привлекают. Далее код, который переключает состояние Caps Lock по нажатию Shift-CapsLock, а раскладки переключает просто по CapsLock:

;; Toggle CapsLock state on Shift-CapsLock
+CapsLock::
state := GetKeyState("Capslock", "T")
if state
SetCapsLockState, Off
else
SetCapsLockState, On
return

;; Switch language on CapsLock
CapsLock::
SetStoreCapslockMode, Off
Send {LAlt down}{Shift}{LAlt up}
return


Опять же, работа в X-Window также приучила к тому, что намного быстрее перетащить окно, если зажать Alt, а затем левую кнопку мыши, если курсор внутри этого окна, чем пытаться навести курсор мыши на заголовок окна, а также Alt плюс правая кнопка мыши будет менять размер этого окна:

; http://www.autohotkey.com/docs/scripts/EasyWindowDrag_(KDE).htm

CoordMode,Mouse
return

!LButton::
CoordMode, Mouse ; Switch to screen/absolute coordinates.
MouseGetPos, EWD_MouseStartX, EWD_MouseStartY, EWD_MouseWin
WinGetPos, EWD_OriginalPosX, EWD_OriginalPosY,,, ahk_id %EWD_MouseWin%
SetTimer, EWD_WatchMouse, 10 ; Track the mouse as the user drags it.
return

EWD_WatchMouse:
GetKeyState, EWD_LButtonState, LButton, P
if EWD_LButtonState = U ; Button has been released, so drag is complete.
{
SetTimer, EWD_WatchMouse, off
return
}
GetKeyState, EWD_EscapeState, Escape, P
if EWD_EscapeState = D ; Escape has been pressed, so drag is cancelled.
{
SetTimer, EWD_WatchMouse, off
WinMove, ahk_id %EWD_MouseWin%,, %EWD_OriginalPosX%, %EWD_OriginalPosY%
return
}
; Otherwise, reposition the window to match the change in mouse coordinates
; caused by the user having dragged the mouse:
CoordMode, Mouse
MouseGetPos, EWD_MouseX, EWD_MouseY
WinGetPos, EWD_WinX, EWD_WinY,,, ahk_id %EWD_MouseWin%
SetWinDelay, -1 ; Makes the below move faster/smoother.
WinMove, ahk_id %EWD_MouseWin%,, EWD_WinX + EWD_MouseX - EWD_MouseStartX, EWD_WinY + EWD_MouseY - EWD_MouseStartY
EWD_MouseStartX := EWD_MouseX ; Update for the next timer-call to this subroutine.
EWD_MouseStartY := EWD_MouseY
return

!RButton::
CoordMode, Mouse
MouseGetPos, Resize_PrevX, Resize_PrevY, Resize_Win
WinGetPos, Resize_OrigX, Resize_OrigY, Resize_OrigW, Resize_OrigH, ahk_id %Resize_Win%
SetTimer, Resize_Watch, 10
return

Resize_Watch:
GetKeyState, Resize_RB, RButton, P
if Resize_RB = U
{
SetTimer, Resize_Watch, off
return
}
GetKeyState, Resize_Esc, Escape, P
if Resize_Esc = D
{
SetTimer, Resize_Watch, off
WinMove, ahk_id %Resize_Win%,, %Resize_OrigX%, %Resize_OrigY%, %Resize_OrigW%, %Resize_OrigH%
return
}
CoordMode, Mouse
MouseGetPos, Resize_MouseX, Resize_MouseY
WinGetPos, ,, Resize_WinW, Resize_WinH, ahk_id %Resize_Win%
SetWinDelay, -1
WinMove, ahk_id %Resize_Win%,, Resize_OrigX, Resize_OrigY, Resize_WinW + Resize_MouseX - Resize_PrevX, Resize_WinH + Resize_MouseY - Resize_PrevY
Resize_PrevX := Resize_MouseX
Resize_PrevY := Resize_MouseY
return


Вот собственно и всё ;)
Очень много полезных скриптов можно найти в интернете — дерзайте!

середа, 11 серпня 2010 р.

Шаманство

Каждые выходные шаманил, заклинал: машину мыл!
Не зря — наконец-то грозааааааа! ;)

Имбирный эль

Где-то у vovas-а вроде пробегала эта информация, но что-то найти оригинала не могу. Ну ок, выкладываю рецепт так, как он у меня записался:


Для страдающих от жары предлагаю рецепт имбирного эля. Делаю регулярно - освежает отлично. И никакой химии.
1. Берем 2-х литровую бутылку из-под сильногазированных напитков (типа колы).
2. Насыпаем в неё стакан сахару. Лучше через воронку, а то много отходов будет :)
3. Насыпаем туда четверть чайной ложки сухих дрожжей. Я купил в магазине первые попавшиеся.
4. Все это дело хорошенько встряхиваем чтобы смешались дрожжи с сахаром.
5. Натираем на тёрке имбирь. Тёрка нужна как можно мельче, а имбирь как можно свежее :) Натертого имбиря должно получиться на две столовые ложки.
6. Выжимаем один лимон прямо в имбирь.
7. Смешиваем имбирь с лимонным соком чтобы получилась кашица.
8. Выливаем имбирь с лимоном в бутылку. Тоже через воронку.
9. Заливаем все это водой комнатной температуры. Желательно кипячёной, но кто как любит :) Воды должно быть почти по горлышко (1,5-2 см не доходя до верха).
10. Закручиваем крышкой и трясём, пока сахар не растворится. Оставляем в комнате на 1-2 дня. У меня обычно готово через 1,5 дня.
11. Готовность контролируем нажатием на бутылку. Как только бутылка перестанет прожиматься пальцем - суём в холодильник. Не упустите момент, а то придётся отмывать кухню.

Как остынет - можно пить, но лучше еще день подождать - ядрёней будет. Содержание спирта - как в квасе.

Будьте внимательны, никогда не используйте стеклянную посуду!



Замечательная вещь - рекомендую, хотя я не сильно поклонник имбиря.

пʼятниця, 6 серпня 2010 р.

Трёхколёсный... мотоцикл

Смотрели тут давеча кино "Удар бутылкой" (Bottle Shock), и в ходе фильма замечаю, что Густаво ездит на трёхколёсном мотоцикле. И стало мне интересно — а неужели в штатах такие мотоциклы вообще были в ходу? Не знаю, но помню, как было весело, когда в одном из кадров на мотоцикле заметил табличку "Ural" ;)

А фильм, кстати, очень приятный, рекомендую.
И Экслер вроде хвалил.

середа, 21 липня 2010 р.

Ubuntu updates

Нынешняя Ubuntu радостно пишет о доступных обновлениях, когда входишь в систему, но для серверов это не совсем удобно.

А вот и решение — apticron.

понеділок, 19 липня 2010 р.

редактирование реестра запрещено администратором системы

Бывает такая ситуация, когда на Windows XP Home всплывает такое сообщение при попытке запуска редактора реестра.
Помогло вот это решение (gpedit.msc в Home версии недоступен):
— Task Manager:
REG add HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System /v DisableRegistryTools /t REG_DWORD /d 0 /f


— Registry Editor
REG add HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System /v DisableRegistryTools /t REG_DWORD /d 0 /f


Вышеперечисленный код нужно просто выполнить (Start -> Run или Win-R).

четвер, 15 липня 2010 р.

Партенит

Май, море, Партенит! Ох и хорошо там отдохнули!
Из впечатлений:

  • раньше считал, что Партенит — пара домов и три сарая; ан нет! оказалось всё наоборот, весьма большой посёлок, есть даже прямые, широкие и сравнительно плоские улицы ;) Гурзуф в таком случае — очень маленький и очень вертлявый!

  • чисто и ухожено всё, есть детские площадки (подозреваю, что никакой чистоты под конец сезона уже нет, но всё равно было приятно), даже в речке Партенитке мусора практически не встречал (вспомни тот же Гурзуф :( )

  • если тут в Днепре пивные бутылки валяются, то там я видел пару винных — Крым ведь

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

  • на территории санатория "Крым" очень большой, если не сказать огромный парк, но днём (до 16:00) туда за просто так не пускают, а только за 20грн с носа (что как по мне, очень немало), вечером уже вход свободный. Так что мы утром на городском, потом Данька отсыпался (я, кстати, тоже, ибо Даньку я там на руках-плечах ох как наносился), а вечером уже в санаторий ходили

  • парк в санатории очень большой и судя по всему мы и половины не исходили, там же есть дельфинарий, но я не уверен, работает ли?

  • инфраструктура вполне развита: есть и гостиницы, и рестораны, и кафе, и санатории, и весьма большой магазин, и базарчик, и молоко свежее и т.д. и т.п



Очень приятно отдохнули! ;) Немного фоток у Ольки.

Машинку видел..

Как-то раз на выезде из Мелитополя (ну конечно, где б ещё такое увидеть можно?) встретили мы машинку, всё бы ничего, но вот эти факты у меня в голове как-то слабо вяжутся:
— машина разукрашена под свадьбу и в ней молодая пара (ну тут понятно, сбежали в свадебное путешествие прямо со свадьбы ;))
— а руль-то справа! (точно не помню, но регион вроде бы 150 — Google подсказывает, что Московская область, а вроде правый руль обычно за Уралом в ходу)

середа, 7 липня 2010 р.

Визит к Минотавру

Попалась на глаза газетка-телепрограмма (совсем желтая), наткнулся на краткие описания к фильмам, от которых становится жутко, к примеру "Визит к Минотавру" — "Скрипач, не желая быть вторым или третьим, занялся изучением змей. Прошло много лет."

Зачем нам карманы? ;)

вівторок, 6 липня 2010 р.

середа, 30 червня 2010 р.

пʼятниця, 25 червня 2010 р.

понеділок, 21 червня 2010 р.

Ubuntu 10.04 и PHP 5.2

Обновил один из живых серверов с Ubuntu до 10.04 — радостно обновился PHP до 5.3.
В следствие чего кучу сайтов, основанных на старом PHP (Joomla, CiviCRM и т.д.) отказались работать. Попытался поиграться с настройками PHP, но старый CiviCRM упорно отказывался дружить с новым PHP.

В итоге остановился на компромисном варианте — подключил репозиторий со старым PHP, но скомпилированным с текущими системными библиотеками. За подробностями сюда (вариант 3).

Как обычно, список не полон, некоторых пакетов не хватает. Связался с автором репозитария, ждём ответа.

середа, 16 червня 2010 р.

Про Исландию

Вовас выложил красивый пост про Исландию, а я решил у себя продублировать ссылку на веб-камеры — занятное зрелище! ;)

понеділок, 14 червня 2010 р.

Что-нибудь сказочное, на ночь

Ольке захотелось на вечер посмотреть чего-нибудь сказочного, романтичного..
Просматриваю список, вижу что-то новое непросмотренное, пытаюсь вспомнить о чём фильм.. Моё незнание немецкого пытается в названии Die Wolke вычитать слово "Волк", наверное что-то сказочное...

А оказалась совсем не сказка :(

PS: А посмотреть стоит.

пʼятниця, 4 червня 2010 р.

И снова румба!

Тут картинку мне подбросили знатную:



Ну лично я обычно румбу пущаю, когда ухожу из дому с Данькой гулять или еду куда, но вот как она паркуется на док-станцию — это можно смотреть и смотреть ;)

Домашний майонез

Как-то раз зашёл разговор, про домашний майонез. Я помню, в юношеские годы дома делали: масло прокаливали, возились и всё такое.

А тут быстрый поиск по youtube — и ты уже специалист за 5 минут ;)
Домашний майонез:



Майонез от Цептер (Zepter) качество



В последнем ролике есть очень важное замечание - чем больше масла, тем гуще получается майонез. И это факт, мы когда-то пытались делать совсем чуть-чуть майонеза (на одну заправку для салата) и ничего не получалось. А если стандартные 200мл, то всё получается просто отлично.

Приятного аппетита ;)

четвер, 3 червня 2010 р.

субота, 22 травня 2010 р.

Long live WM 6.5!

В начале года поставил поиграться WM 6.5 себе на енота (Eten X600). Выглядит красиво, пальчиками управлять удобно и всё такое..

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

Поэтому решил всё же откатиться назад на 6.1.
Из кандидатов были:
- [Неоф.] Прошивки для X650 X600 от yury_z (WM6.1Pro), часть 2, Light
- Новая Лайт прошивка для Х600 от Holeryk
- X600 6.1 билд 21055

Как говорится: "победила молодость", посему решил остановиться на самой последней. Прошил, восстанавливаю софт, посмотрим, как оно будет дальше.

пʼятниця, 21 травня 2010 р.

Даёшь рекорд!

Утром решил взвеситься и сказал "ой.." — 103,2кг!

ЗЫЖ А ещё я на кухонных взвесил свой ноут (Dell XPS M1330), практически совпало с производителем: 1,9кг. Вроде немного, но если каждый день туда-сюда тягать, тяжеловат получается.

понеділок, 10 травня 2010 р.

Дети и машины

Тяжкое это сочетание. Особенно, если дети оставлены одни, без присмотра.

Из последних — дитё засунуло 3 (три!) компакт-диска в магнитолу в машине. Хорошо, хоть магнитола смогла худо-бедно эти все диски выплюнуть.

субота, 1 травня 2010 р.

TinyMCE и Firefox

Столкнулись тут с одной весёлой проблемкой - tinymce на контенте вида:
<p>&nbsp;</p>

радостно падал и на любое действие выводил нечто вида:
Index or size is negative or greater than the allowed amount

Более того, даже от вида простого пустого параграфа ему тоже становилось плохо.
При этом шалил только Firefox, Chrome и даже IE8 молча и добросовестно выполняли свою работу.

Долго ковырялись, но решение оказалось вот таким:

tinyMCE.init({
cleanup_on_startup: true

четвер, 29 квітня 2010 р.

Папа, пи!

Словарь пополнился ещё одним словом, которое имеет несколько значений.
Но прежде всего это не то, что вы подумали ;)
А либо что-то где-то пищит, либо (самое главное!) — "дай мне нажать вот на ту кнопку!"

Выходим из дому гулять:
- берёт ключи и помогает закрывать квартиру, затем дверь в тамбуре (причём прекрасно различает куда какие ключи и более того, из двух одинаковых по форме выберет именно тот, который нужен!
- требует, чтоб его подняли и он нажал кнопку вызова лифта; если вдруг лифт без его участия — это настоящая трагедия!
- аналогично в самом лифте требует поднять, чтоб нажал кнопку, но тут пока ещё не сильно различает какой этаж наш
- по дороге домой "папа, пи!" — "давай ключи с таблеткой, я открою дверь подъезда"
- аналогично "папа, пи!" — машину открывать уже сам тоже умеет

ну и т.д. ;)

пʼятниця, 23 квітня 2010 р.

Мама, ты где?

В принципе 22-е число можно считать датой первого осмысленного предложения у Даньки ;)

Я прекрасно понимаю, что потом будет словесный понос и всё такое, но ведь классно-то! Это так же, как и первые шаги, а ещё и первое "агу" ;)

четвер, 15 квітня 2010 р.

iframe и прозрачность

Столкнулся я сегодня с одной проблемкой - понадобилось мне фон области редактора TinyMCE сделать прозрачным. Довольно легко и просто добился стилями в Chrome/Firefox, но как обычно Internet Explorer (даже 8-й) решил пошалить. Шалил он где-то час, пока я не нашёл вот эту статью. Но даже и с таким оружием он (IE8) не сдавался могучему jQuery. Оказалось, что регистр атрибута важен и выглядит результат вот так:


if ($.browser.msie)
$('#banner_box_ifr').attr('allowTransparency', true);

пʼятниця, 26 березня 2010 р.

Трамвай

Вот подумалось, а есть ли у трамвая дальний свет?

- Ну что Вы так кричите, Бэримор!

Похмельная сцена (так же, как и весь фильм "Собака Баскервилей") — шедевральна!
Бросил вчера все дела, сел и наслаждался фильмом! ;)

Bésame Mucho и Music Radio

Похоже, на Music Radio решили найти все возможные кавер-версии Bésame Mucho и каждое утро по одной. Вчера мне особенно понравилось, что-то в стиле Zdob shi Zdub.

понеділок, 22 березня 2010 р.

Разливы Орели

В субботу проезжал вот тут и был удивлён, как Орель разлилась (простите за качество фоток, снимал на покет):


Разливы Орели



Разливы Орели


Ну и совсем немножко видео:



Давно уже наводнений не видел.

пʼятниця, 19 березня 2010 р.

Румба, домой!

Сегодня утром поставил эксперимент.
Включил румбу и поставил маячок (на полную мощность) в дверях кухни (всё согласно инструкции).

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

Супер! ;)

Fatal error: Class 'Debug' not found..

В какой-то момент сайт на основе SilverStripe вдруг перестал работать.
В конце страницы появляется вот такой текст (FF в таком случае вообще перестаёт отображать страницу, IE и Chrome более дружелюбнее):
<br /> 
<b>Fatal error</b>: Class 'Debug' not found in <b>/var/www/bamba/public_html/sapphire/dev/Debug.php</b> on line <b>676</b><br />


Google мне не помог совершенно, форум пестрит сообщениями на эту тему без единого решения (кроме вот этого, но мне кажется, что оно не имеет отношения к этой проблеме).

error_log нам в руки! Причина ошибки оказалась весьма банальна:


/usr/local/etc/php.ini:session.save_path = "/tmp/php"


А каталога-то этого и нет!
Решения два:
- исправить на системном уровне
- прописать в .htaccess:


php_value session.save_path '..../public_html/sessions'

вівторок, 16 березня 2010 р.

Вкусно с Биллом

На канале К2 по выходным утром транслировалась передача "Вкусно с Биллом".
Похоже, что всё, больше не транслируется :(

понеділок, 15 березня 2010 р.

Неожиданно!

Как-то неожиданно на улице началась зима :(

PS: неожиданно потому, что я себе енота перепрошиваю, софта практически нет и прогноз погоды не смотрел.

iRobot Roomba — первые впечатления

Игрушка занятная, я бы даже сказал — очень ;)
В первый раз ходил за ней сам и всё поглядывал, как она бегает.

А теперь конкретно:
- понятие "комната" у неё нет, просто носится по всей квартире
- "комната" определяется маячками (точнее, предполагается, что, там где маячки, — там и двери), соответственно если комната проходная, то маячки (или стены) ставить надо в обеих точках
- без маячков румба на базу не возвращается (может быть, если рядом база, но у меня такого не было, подбирали выдохшуюся в дальней комнате)
- в принципе мне с головой хватает уборки и без маячков, но есть мысль отсекать пару комнат для уборки, на следующий раз уже убранную пару отсекать
- и действительно после первой же уборки говоришь: "откуда у нас столько мусора?" вроде квартира свежеубранная, просто решили запустить-посмотреть, а выгребли потом стооолько..

В итоге очень доволен покупкой, а Олька даже собралась обычный пылесос уже отвозить.

Ну и напоследок немного занятного ;)







Roomba 560 vs Злобная гадюка. Кто победит?

PS: огромное спасибо Женьке Борохову, который помог в приобретении сего чуда техники!

БП для iRobot Roomba

К сожалению, штатовские модели комплектуются блоками питания, которые рассчитаны исключительно на 110В. Довольно быстро нашёл описание, как переделать оный на 220В.

Копию сохраню у себя:


Адаптация блоков питания роботов пылесосов iRobot Roomba 500 серии очень проста!
Для адаптации под сеть ~220В необходимо:
1. Заменить электролитический конденсатор «C1» с 47uF200V на 47uF400V соблюдая правильную полярность (полоска на конденсаторе со стороны закрашенной части кружка на плате);
2. Выпаять варистор «RV1» с маркировкой VDR 10D271K. Желательно вместо него впаять варистор на 390В (маркировка 10-391);
3. Заменить американскую вилку на евро, или воспользоваться переходником.

До и после

Для того, чтобы вскрыть блок питания нужно раскрутить четыре винта под ножками корпуса. Вытаскиваем плату и выпаиваем Конденсатор «С1» и варистор «RV1».

Обычно конденсатор на 47uF400V имеет большие габариты и не помещается в корпусе в вертикальном положении. Поэтому он удобно располагается горизонтально между радиатором и катушкой:

Конденсатор

Полезные советы:
• Удобно впаивать конденсатор следующим образом: вставляем ножки в отверстия платы. Припаиваем кончик ножки “-”. Укладываем конденсатор на место, при этом вторая ножка играет на плате и втягивается до кончика. После того, как конденсатор уложен на своё место, припаиваем вторую ножку.
• Изоляцию шнура питания, которая останется после зачистки провода для замены вилки, можно использовать для изоляции ножек конденсатора.


Вот собственно и всё ;)

середа, 10 березня 2010 р.

24"

Я не представляю, как за такой простынёй работать можно!?
В смысле - столько всего можно разместить на экране, что просто глаза разбегаются.
Сейчас буду киношку ради интересу погоняю ;)

понеділок, 8 березня 2010 р.

Первый автомобильный

Первый автомобильный появился на Sirius 4.8E, открыто ;)

Правда, Интер+ закодировался (зачем это ему? вроде ж международный).

----

Поборол, даже оба! Подробности на satsat.info ;) (просто лишние ключики надо было выбросить и все)

четвер, 4 березня 2010 р.

И опять лампочки :(

Опять сгорела лампочка в правой фаре.
Попробуем теперь Philips +30%, хотя понятно, что у всех плюсов ресурс ниже.

неділя, 28 лютого 2010 р.

вота-вота!

Утром как-то бегаем-крутимся, дитё пытаемся кормить, себя тоже..
И вот в процессе суматохи я замечаю, что Данька видит конфеты на столе, залазит на стул, затем на стол, протягивает руку и произносит - вота-вота!

вівторок, 2 лютого 2010 р.

Зимушка-зима

Давно в наших краях не было снежной и в то же время, такой переменчивой зимы. То плюс, то минус, и снова по кругу.

Вот сейчас потеплело и сложно сказать, лучше ли стало: с одной стороны дороги стали чище и ровнее, с другой — появилось много морей и луж вокруг.

По пути домой с работы у меня в такую погоду обычно три лужи:
- яма на перекрёстке Осенней и Винокурова
- большая лужа на развилке возле автобазара
- небольшая лужа за последним изгибом дороги перед переездом

Последняя коварна тем, что её проезжать надо только по прямой, строго по своей полосе. Шаг вправо или влево и машина одной стороной падает с бетонных плит и аккуратно садится на пузо/рычаги подвески (это так, к сведению).

А первые две лужи обычно ничего страшного не представляют, но не в этот сезон!
Впервые сталкиваюсь с тем, что вода по ступицы, при движении на первой передаче перед капотом маячит горб воды высотой 10см!

четвер, 28 січня 2010 р.

Форматирование исходного кода

Рылся по инету, нашёл интересную ссылку для форматирования исходного кода при вставке в блог:

http://formatmysourcecode.blogspot.com/

vsetv.com ;)

И всё же "я знаю кунг-фу!" ;)

Вначале надеялся, что Searches отрабатывают до парсинга, но оказалось — нет. Вначале разбирается шаблон, а затем уже отрабатывают Searches.

Отсюда родилась идея добавить небольшой код, который будет перемалывать входящий файл и приводить его в нужную структуру. Как я уже говорил, нынче vsetv.com отдаёт просто набор div-ов, и div-ы с описаниями могут или быть, или не быть, каждая запись никак не группируется (например родительский div, в котором есть и время + название, и опционально описание передачи).

Поэтому перед разбором шаблона этот код обрабатывает набор подстановок, которые приводят содержимое к одной и той же структуре — всегда подряд 3 div-а.

В результате имеем набор правил для обработки (точнее, ниже весь www_vsetv_com.xml):

<?xml version="1.0" encoding="utf-8"?>
<Grabber>
<Info availableDays="7" timezone="E. Europe Standard Time" version="2.0" />
<Channels>
<Channel id="ort@www.vsetv.com" siteId="21" />
</Channels>
<Listing type="Html">
<Site url="http://www.vsetv.com/schedule_channel_[ID]_day_[YYYY]-[MM]-[DD]_print_wd.html" post="" external="false" encoding="" />
<Html>
<Template name="default" start="&lt;div class=&quot;time&quot;" end="&lt;/div&gt;&lt;div class=&quot;clear">
<PreProcess>
<Subst match="&lt;/div&gt;&lt;div id=&quot;schedule_container&quot;[^&gt;]*&gt;" to="" />
<Subst match="(&lt;div .*?class=&quot;prdesc&quot;&gt;)(&lt;/div&gt;)" to="$1&lt;div class=&quot;desc&quot;&gt;$2$2" />
<Subst match="(?&lt;=.+)(?&lt;!&lt;/div&gt;&lt;/div&gt;)(&lt;div class=&quot;time&quot;)" to="&lt;div class=&quot;prdesc&quot;&gt;&lt;div class=&quot;desc&quot;&gt;&lt;/div&gt;&lt;/div&gt;$1" />
<Subst match="(?!&lt;!&lt;/div&gt;&lt;/div&gt;)$" to="&lt;div class=&quot;prdesc&quot;&gt;&lt;div class=&quot;desc&quot;&gt;&lt;/div&gt;&lt;/div&gt;" />
<Subst match="&lt;div class=&quot;desc&quot;&gt;(.+?)&lt;/div&gt;" to="$1" />
</PreProcess>
<SectionTemplate tags="D">
<TemplateText>
&lt;div&gt;&lt;#START&gt;&lt;/div&gt;
&lt;div&gt;&lt;#TITLE&gt;&lt;/div&gt;
&lt;div&gt;&lt;#DESCRIPTION&gt;&lt;/div&gt;
</TemplateText>
</SectionTemplate>
</Template>
</Html>
</Listing>
</Grabber>
<!--
vim: enc=utf-8
-->



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

diff -Nru Release 1.0.2.orig\MediaPortal\Utils\Utils.csproj Release 1.0.2\MediaPortal\Utils\Utils.csproj
--- Release 1.0.2.orig\MediaPortal\Utils\Utils.csproj Sat May 09 00:27:10 2009
+++ Release 1.0.2\MediaPortal\Utils\Utils.csproj Wed Jan 27 23:28:39 2010
@@ -174,6 +174,7 @@
<Compile Include="Web\http\IHttpAuthentication.cs" />
<Compile Include="Web\http\SiteStatistics.cs" />
<Compile Include="Web\Parser\HtmlSectionMatch.cs" />
+ <Compile Include="Web\Parser\HtmlSectionSubst.cs" />
<Compile Include="Web\Parser\HtmlSectionTemplate.cs" />
<Compile Include="Web\Parser\HtmlParserTemplate.cs" />
<Compile Include="Web\Parser\HtmlParser.cs" />
diff -Nru Release 1.0.2.orig\MediaPortal\Utils\Web\Parser\HtmlParser.cs Release 1.0.2\MediaPortal\Utils\Web\Parser\HtmlParser.cs
--- Release 1.0.2.orig\MediaPortal\Utils\Web\Parser\HtmlParser.cs Sat May 09 00:27:10 2009
+++ Release 1.0.2\MediaPortal\Utils\Web\Parser\HtmlParser.cs Thu Jan 28 12:06:07 2010
@@ -99,11 +99,22 @@
}
//log error?
}
+
+ if (startIndex != 0 || endIndex != pageSource.Length)
+ pageSource = pageSource.Substring(startIndex, endIndex - startIndex);
+
+ foreach (HtmlSectionSubst subst in _template.SubstList) {
+ RegexOptions opts = RegexOptions.None;
+ if (subst.ignoreCase)
+ opts |= RegexOptions.IgnoreCase;
+ Regex re = new Regex(subst.match, opts);
+ pageSource = re.Replace(pageSource, subst.to);
+ }

int count = 0;
if (pageSource != null)
{
- count = _profiler.MatchCount(pageSource.Substring(startIndex, endIndex - startIndex));
+ count = _profiler.MatchCount(pageSource);
}

return count;
diff -Nru Release 1.0.2.orig\MediaPortal\Utils\Web\Parser\HtmlParserTemplate.cs Release 1.0.2\MediaPortal\Utils\Web\Parser\HtmlParserTemplate.cs
--- Release 1.0.2.orig\MediaPortal\Utils\Web\Parser\HtmlParserTemplate.cs Sat May 09 00:27:10 2009
+++ Release 1.0.2\MediaPortal\Utils\Web\Parser\HtmlParserTemplate.cs Thu Jan 28 00:11:51 2010
@@ -24,6 +24,7 @@
#endregion

using System;
+using System.Collections.Generic;
using System.Xml.Serialization;

namespace MediaPortal.Utils.Web
@@ -39,6 +40,7 @@
[XmlAttribute("name")] public string Name;
[XmlAttribute("start")] public string Start;
[XmlAttribute("end")] public string End;
+ [XmlArray("PreProcess")] [XmlArrayItem("Subst")] public List<HtmlSectionSubst> SubstList;
[XmlElement("SectionTemplate")] public HtmlSectionTemplate SectionTemplate;

#endregion
diff -Nru Release 1.0.2.orig\MediaPortal\Utils\Web\Parser\HtmlSectionSubst.cs Release 1.0.2\MediaPortal\Utils\Web\Parser\HtmlSectionSubst.cs
--- Release 1.0.2.orig\MediaPortal\Utils\Web\Parser\HtmlSectionSubst.cs Thu Jan 01 02:00:00 1970
+++ Release 1.0.2\MediaPortal\Utils\Web\Parser\HtmlSectionSubst.cs Wed Jan 27 23:46:01 2010
@@ -0,0 +1,45 @@
+п»ї#region Copyright (C) 2005-2009 Team MediaPortal
+
+/*
+ * Copyright (C) 2005-2009 Team MediaPortal
+ * http://www.team-mediaportal.com
+ *
+ * This Program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2, or (at your option)
+ * any later version.
+ *
+ * This Program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with GNU Make; see the file COPYING. If not, write to
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ */
+
+#endregion
+
+using System;
+using System.Xml.Serialization;
+
+namespace MediaPortal.Utils.Web
+{
+ /// <summary>
+ /// Xml Serializable Class for Section Subst data.
+ /// </summary>
+ [Serializable]
+ public class HtmlSectionSubst
+ {
+ #region Variables
+
+ [XmlAttribute("match")] public string match;
+ [XmlAttribute("to")] public string to;
+ [XmlAttribute("ignoreCase")] public bool ignoreCase;
+
+ #endregion
+ }
+}



Либо свяжитесь, вышлю Utils.dll для релиза 1.0.2.

середа, 27 січня 2010 р.

Samsung HD103SJ - вибрации

Решил я тут себе добавить свободы немножко (а то качать всякое уже некогда, а удалять всё подряд рука, как обычно, не поднимается).

Долго лазил по ixbt.com, читал-перечитывал — остановил выбор на Samsung HD103SJ. Ок, вроде по нему претензий нет (на SI жаловались на периодические вибрации).

Установил и... оп-па! Вибрирует, да ещё и как! Мало того, что просто вибрации сильные, так ещё и периодически усиливаются (период 1–2 секунды).

Сказать, что я был расстроен — ничего не сказать. Уже собирался напрягать людей насчёт замены.

Порылся в интернете и наткнулся на статью (жалко, картинки уже недоступны), решил попробовать.

Бинт Мартенса (цена вопроса 15грн или около того), немного возни (вначале одна из резинок порвалась, плюс немного проклеил стыки крышки и корпуса) и... тишина ;)

пʼятниця, 15 січня 2010 р.

Inter+

Пропала у меня программа передач канала Inter+. Долго и добросовестно отдавал мне её tv.ukr.net. Начал проверять остальные сайты — аналогично! (такое впечатление, что, что у кого-то на праздниках поломался парсер).

Есть только на vsetv.com, но у них контент практически не парсится

Что делать?

Как вариант — написать прокси, который будет приводить содержимое в чувство.




Черт! Я знаю кунг-фу!

Буквально с разбегу удалось разобраться, как получить программу по конкретным датам на родном сайте (вместо .../Monday.html и т.п.), и результат довольно быстро засунул в WebEPG.

Аналогично довольно быстро получилось и с RTG TV (раньше я его с vsetv.com вытаскивал, но как я уже говорил, этот сайт нынче невозможно простыми силами разобрать).

Вуа-ля! ;)




Не, нифига не кунг-фу :(
Как выяснилось, по конкретным датам получить программу-то можно, но только в виде для печати, который разобрать совершенно невозможно.

Затем мне удалось подправить исходники WebEPG и добиться поддержки дней недели в нижнем регистре (monday.html), но последующий анализ показал, что моя привязка к тегу <a>..</a> не подходит:


<a class=tvevening href=/ru/programs/vernisazh_illi_reznika/>18:15&nbsp;Концерт &quot;Песенный вернисаж Ильи Резника&"</a><br>
19:45 Ночь выборов<br>


Как видно, часть передач не обёрнута в <a>..</a> и соответственно просто теряются (WebEPG не поддерживает <br />).

Единственный выход я вижу — добиться результатов от vsetv.com

середа, 6 січня 2010 р.

Словарь Эллочки..

не, я про Даньку. Словарь потихоньку начинает пополняться.
Мама, папа, баба, дед (наконец-то) и даже дядя — это уже пройденный этап.
Нынче у нас после многократного просмотра "Ну, погоди!" появлось слово волк (точне - "воук") и шарик (произности как среднее между "карь" и "кари"), а кот определяется словом "мау".

Иногда мне хочется, чтоб Данька быстрее вырос, а потом я себя останавливаю тем, что Данька вырастет и таким, как сейчас — уже не будет! И не будет тех волнующих моментов, когда Данька осваивает какое-то новое слово. Это же классно! ;)

Всё бывает в первый раз..

и с машиной тоже ;) Итак, впервые за 3,5 года:
- проколол ДВА колеса по левой стороне (интервал - несколько дней)
- залез в снег и не смог выехать
- и соответственно впервые воспользовался лопаткой (а то всё лежит и лежит в багажнике)