Ранее я уже писал о том, как можно автоматически скачивать субтитры для сериалов при помощи Subdownloader. И все бы хорошо, но вот только субтитры он берет с www.opensubtitles.org, чьи серверы в последнее время работают очень нестабильно. Поэтому, получив в очередной раз от Subdownloader'а сообщение об ошибке, я понял, что мне это уже начинает порядком надоедать и решил поискать какую-нибудь альтернативу в виде скрипта для скачивания с www.TVsubtitles.net. Как это часто бывает, ничего дельного мне найти не удалось, поэтому пришлось писать самому. :)
Получился небольшой Python'овский скрипт, который принимает через опции командной строки список интересующих вас языков и путь к дирректории(ям) и/или файлу(ам), для которых необходимо скачать субтитры, поэтому можно настроить его запуск в cron и навсегда забыть о том, что субтитры, как правило, не скачиваются вместе с торрент-файлами. :) Поскольку это было совсем несложно, я также добавил и поддержку www.opensubtitles.org, но по-умолчанию скрипт его не использует, по вышеописанным причинам.
Вообщем, если кому-то нужно, то скачать его можно тут.
С Linux так всегда - сколько не копай вглубь и вширь, всегда найдется что-то новое...
суббота, 11 сентября 2010 г.
суббота, 1 мая 2010 г.
Просмотр новостей из Google Reader без доступа в Интернет
Я тут недавно поменял работу, и если раньше она была в 15 минутах ходьбы от дома, то теперь придется каждый день ездить в Москву. Соответственно, встал резонный вопрос, как потратить проведенное в электричке время с пользой (а времени на дорогу туда-обратно уйдет немало). Обычно такое время я заполняю подкастами и чтением Google Reader'а и бумажных книг. С подкастами и книгами никаких проблем нет, но вот с Google Reader все очень грустно - мало того, что 3G в Подмосковье пока что не особо собирается, так еще и при движении электрички ужасно медленное EDGE-соединение рвется чуть ли не каждую минуту, что делает чтение даже мобильной версии Google Reader настоящей пыткой.
Меня, естественно, такая ситуация не устраивала, и я начал искать программу, которая позволяла бы просматривать новости из Google Reader будучи offline. Подобные программы есть, но обладают огромным недостатком - они скачивают для офлайнового просмотра только описание новости из RSS и больше ничего. Все самое интересное (полный текст новости, изображения и сама страница с комментариями, на которую ссылается эта новость) остается в онлайне. Мне же хотелось, чтобы работа с такой программой в офлайне имела минимум отличий от работы с Google Reader в онлайне: чтобы я мог видеть описание новости, все изображения, присутствующие в нем, мог просматривать страницу, на которую ссылается новость (также со всеми изображениями, стилями и т. п.), ну и, конечно, чтобы была возможность помечать новости как прочитанные, star'ить, расшаривать и впоследствии синхронизировать с Google Reader.
Программы с такими возможностями мне найти не удалось - ну так не беда, напишем сами, ибо уже не впервой. :) А если учесть, что я в то время как раз изучал Qt и думал, что бы такое написать, чтобы попробовать ее в деле, то это был просто подарок судьбы. :)
Меня, естественно, такая ситуация не устраивала, и я начал искать программу, которая позволяла бы просматривать новости из Google Reader будучи offline. Подобные программы есть, но обладают огромным недостатком - они скачивают для офлайнового просмотра только описание новости из RSS и больше ничего. Все самое интересное (полный текст новости, изображения и сама страница с комментариями, на которую ссылается эта новость) остается в онлайне. Мне же хотелось, чтобы работа с такой программой в офлайне имела минимум отличий от работы с Google Reader в онлайне: чтобы я мог видеть описание новости, все изображения, присутствующие в нем, мог просматривать страницу, на которую ссылается новость (также со всеми изображениями, стилями и т. п.), ну и, конечно, чтобы была возможность помечать новости как прочитанные, star'ить, расшаривать и впоследствии синхронизировать с Google Reader.
Программы с такими возможностями мне найти не удалось - ну так не беда, напишем сами, ибо уже не впервой. :) А если учесть, что я в то время как раз изучал Qt и думал, что бы такое написать, чтобы попробовать ее в деле, то это был просто подарок судьбы. :)
Posted by
Dmitry Konishchev
19
comments
Tags:
google reader,
linux,
qt
Отправить по электронной почтеНаписать об этом в блогеПоделиться в XОпубликовать в FacebookПоделиться в Pinterest

воскресенье, 14 февраля 2010 г.
Восстановление позиции курсора при открытии файла в Vim
Не знаю, как я раньше жил без этого, но вот на днях залез в гугл, и оказалось, что настроить Vim так, чтобы при открытии файла он каждый раз восстанавливал позицию курсора, с которой файл был закрыт в прошлый раз, очень просто: для этого даже не надо ставить никакие плагины, достаточно прописать в ~/.vimrc следующие строки:
Update:
А еще лучше использовать следующий код:
if has("autocmd")
" When editing a file, always jump to the last known cursor position.
" Don't do it when the position is invalid or when inside an event
" handler (happens when dropping a file on gvim).
autocmd BufReadPost *
\ if line("'\"") > 0 && line("'\"") <= line("$") |
\ exe "normal g`\"" |
\ endif
endif
Update:
А еще лучше использовать следующий код:
if has("autocmd")Он помимо курсора еще и фолдинги восстанавливает (спасибо за подсказку lyn4ed).
set viewoptions=cursor,folds
au BufWinLeave * mkview
au BufWinEnter * silent loadview
endif
Posted by
Dmitry Konishchev
13
comments
Tags:
vim
Отправить по электронной почтеНаписать об этом в блогеПоделиться в XОпубликовать в FacebookПоделиться в Pinterest

вторник, 12 января 2010 г.
Что такое выравнивание, и как оно влияет на работу ваших программ
Как-то раз, обсуждая с одногруппницей тему ее диплома, я посоветовал ей отличную статью Data alignment: Straighten up and fly right, посвященную выравниванию данных в оперативной памяти. Т. к. с английским у нее дела обстоят не очень хорошо, она попросила меня перевести статью на русский язык. Переведя статью, я решил, что незачем добру пропадать, и поэтому с разрешения автора выкладываю сюда перевод. Перевод довольно вольный, но в то же время достаточно точный. Вообщем, буду рад, если кому-нибудь пригодится.
Выравнивание данных - очень важное понятие, которое должен принимать во внимание каждый программист, работающий с памятью напрямую. Выравнивание данных влияет на скорость выполнения ваших программ и на то, будут ли они вообще работать. Понимание основных принципов, заложенных в данном понятии, объясняет на первый взгляд странное поведение некоторых процессоров.
Гранулярность доступа к памяти
Программисты привыкли думать о памяти, как о простом массиве байтов. В языке C и его языках-наследникахchar*
всегда означало "блок данных", и даже в Java™ есть тип byte[]
для представления "сырых" данных в памяти.Рис. 1. Как программисты видят память

Однако, процессор в вашем компьютере считывает данные из памяти блоками размером отнюдь не в одни байт. Считывание данных производится блоками по 2, 4, 8, 16 или даже 32 байта. Далее размер таких блоков мы будем называть гранулярностью доступа к памяти.
Рис. 2. Как эту же память видят процессоры

Разница в том, как программисты видят память, и как процессоры на самом деле с ней работают, приводит к интересным последствиям, которым и посвящена данная статья.
Если вы не понимаете, какое влияние выравнивание данных способно оказать на ваше программное обеспечение, то возможно возникновение следующих проблем в работе вашего ПО (в порядке возрастания пагубного воздействия):
- Приложение будет работать медленнее.
- Приложение может "зависнуть".
- Операционная система может внезапно аварийно завершиться.
- Приложение будет работать непредсказуемо, что в итоге может привести к порче ваших данных.
Posted by
Dmitry Konishchev
19
comments
Tags:
выравнивание,
перевод,
c,
c++
Отправить по электронной почтеНаписать об этом в блогеПоделиться в XОпубликовать в FacebookПоделиться в Pinterest

Подписаться на:
Сообщения (Atom)