понедельник, 30 мая 2011 г.

+1 Linux

Добавил ещё один линукс себе в копилку - телефон. Купил Huawei u8500 от MTC-а в рассрочку. Решил, раз уж девальвация прошлась по ценам, а тут осталась старая, то можно и взять. Да и за год много ещё всяких девальваций может случиться, так что брал практически не глядя. Ну так, полистал обзоры, понял, что особых звёзд через этот телефон не отхватишь, но в целом ничего.

Купил. Заодно подключил по акции 3 гига трафика на 6 месцев. Бесплатно. Первый транш на 500 метров надо использовать до 1 июня :) Спешу, качаю всё не глядя. Похоже как раз за 2 дня управлюсь.

Процессор слабоват, это я понял после того, как скачал Angry Birds. Играть можно, но не комфортно. Ладно, на моём старичке 6630 и такого нельзя было.

Что особенно приятно - скорость запуска приложений(опять таки сравнивая с моим старым, ушастым Nokia 6630). Там чтоб запустить секундомер надо было потратить около 10 секунд. Тут секунды 2-3.

Что не радует, так это экран - мажется сильно, приходится постоянно протирать.

Интересно по ssh в него зати можно?... :)

понедельник, 23 мая 2011 г.

Полёт навигатора

Пару минут назад кот как-то ухитрился просочится через приоткрытое окно на балконе и сигануть со второго этажа. :( Попутно звучно шмякнулся об отлив первого этажа.

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

воскресенье, 15 мая 2011 г.

Прокатился #2

Сегодня решил съездить на рынок(Ждановичи). Сел за комп, составил план-карту поездки по неизведанным местам и поехал.

Результат:


Где-то на 19 км я ошибся с поворотом и уехал в ебе неизвестном направлении. К сожалению на телефоне именно этот кусок карты отсутствовал, поэтому GPS не помог. Долго пытался сопоставить бумажную карту с картой на телефоне, но в конце концов заблудился :)

В конце концов обнаружил, что еду по Орловской улице, прямо в Минске :) А потом позвонила жена с мрачным погодным прогнозом, испугала меня и я, не доехав до Ждановичей, завернул обратно.

Поскольку дождя я так и не дождался, то дополнительно проехался по велодорожке.

Итого 55 км, и боль в мягком месте.

Дорога кстати, не очень понравилась - с 7 по 15 километры пришлось пилить по дороге в неприятном соседствии с машинами. Нужно поискать другую.

воскресенье, 8 мая 2011 г.

Прокатился

Решил, что погнутый шатун не помеха прокатиться по округе. Недалеко. По Боровлянам поколесить.

В результате уехал в Озерище какими-то неизведанными тропками:



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

вторник, 3 мая 2011 г.

Слежение за просмотренными фильмами

Люблю, знаете-ли смотреть разные сериалы. А ещё люблю смотреть их пачками по 5-10 серий - пару месяцев не смотришь, а потом серий на 5 как засядешь...

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

Ну и вот:
#!/bin/bash

if [[ $1 == '-q' ]]; then

        cd ~/.track-movies

        for d in *; do
                if [[ $2 != "" ]]; then
                        fgrep -i $2 $d/path > /dev/null 2>&1
                        [[ $? != 0 ]] && continue
                fi

                # calc view time
                CURT=0
                SUM=0
                for t in $(cat $d/times); do
                        DIFF=$(( ($t - $CURT) / 60 ))
                        CURT=$t
                        [[ $DIFF -gt 10 ]] && continue 
                        SUM=$(( $SUM + $DIFF ))
                done
                printf "%s      %4d min\n" "$(cat $d/path)" $SUM
        done

        exit


        ALL=$(find ~/.track-movies/ -name path | xargs cat)

        if [[ $2 == "" ]]; then
                echo "$ALL"
        else
                echo "$ALL" | grep -i --color=auto $2
        fi

        exit
fi


PLAYER_PIDS=$(ps ax --format %c\|%p\|%a | grep ^mplayer | sed -re 's/.*\|[ ]*([0-9]+)\|.*/\1/')

function get_movies
{
        for pid in ${PLAYER_PIDS}; do
                lsof -p $pid | sed -nre 's/[^\/]*(\/.*\.(avi|mkv|mpg|mpeg))$/\1/ p'
        done | sort | uniq
}

MOVIES=$(get_movies)

[[ $MOVIES == "" ]] && exit

IFS='
'

[[ ! -d ~/.track-movies ]] && mkdir ~/.track-movies
cd ~/.track-movies

for m in $MOVIES; do
        HASH=$(echo $m | md5sum | cut -d' ' -f 1)
        if [[ ! -d $HASH ]]; then
                mkdir $HASH
                echo $m > $HASH/path
                echo > $HASH/times
        fi
        date +%s >> $HASH/times
done

В целом всё просто. При запуске скрипта без параметров:
1. находим все PID mplayer (я только им пользуюсь, но можно добавить и другие плееры)
2. берём вcе файлы открытые процессом, фильтруем по расширению, сортируем, убираем дубликаты (smplayer зачем-то запускает 2 копии mplayer)
3. Для каждого пути вычисляем хеш, это будет директория, где будем хранить инфу о фильме
4. Сохраняем полный путь к фильму, если надо
5. Сохраняем текущее время.

Дальше запихиваем скрипт в крон, каждые 5 минут:
*/5 * * * * /home/sazarkevich/bin/track-movies.sh

Ну и всё. Теперь все ходы записываются, ладью мы не потеряем.

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

# track-movies.sh -q bang | sort
/home/torrents/The Big Bang Theory, Season 4/The.Big.Bang.Theory.S04E01.mkv 20 min
/home/torrents/The Big Bang Theory, Season 4/The.Big.Bang.Theory.S04E02.mkv 20 min
/home/torrents/The Big Bang Theory, Season 4/The.Big.Bang.Theory.S04E03.mkv 20 min
/home/torrents/The Big Bang Theory, Season 4/The.Big.Bang.Theory.S04E04.mkv 5 min
Ну, теперь всё ясно. Последняя полностью просмотренная серия - 3, а 4-ую я смотрел всего 5 минут.

Вот только печалька... Раньше телевизор я подключал вместо монитора и запускал фильмы на компе, но сразу же как я написал этот скрипт, пришлось переключить комп с телевизора на монитор. Теперь смотрим всё на телевизоре напрямую(с флешки), и скрипт получается не нужен :( Как бы его всунуть на телек....