Показаны сообщения с ярлыком linux. Показать все сообщения
Показаны сообщения с ярлыком linux. Показать все сообщения

суббота, 1 мая 2010 г.

Просмотр новостей из Google Reader без доступа в Интернет

Я тут недавно поменял работу, и если раньше она была в 15 минутах ходьбы от дома, то теперь придется каждый день ездить в Москву. Соответственно, встал резонный вопрос, как потратить проведенное в электричке время с пользой (а времени на дорогу туда-обратно уйдет немало). Обычно такое время я заполняю подкастами и чтением Google Reader'а и бумажных книг. С подкастами и книгами никаких проблем нет, но вот с Google Reader все очень грустно - мало того, что 3G в Подмосковье пока что не особо собирается, так еще и при движении электрички ужасно медленное EDGE-соединение рвется чуть ли не каждую минуту, что делает чтение даже мобильной версии Google Reader настоящей пыткой.

Меня, естественно, такая ситуация не устраивала, и я начал искать программу, которая позволяла бы просматривать новости из Google Reader будучи offline. Подобные программы есть, но обладают огромным недостатком - они скачивают для офлайнового просмотра только описание новости из RSS и больше ничего. Все самое интересное (полный текст новости, изображения и сама страница с комментариями, на которую ссылается эта новость) остается в онлайне. Мне же хотелось, чтобы работа с такой программой в офлайне имела минимум отличий от работы с Google Reader в онлайне: чтобы я мог видеть описание новости, все изображения, присутствующие в нем, мог просматривать страницу, на которую ссылается новость (также со всеми изображениями, стилями и т. п.), ну и, конечно, чтобы была возможность помечать новости как прочитанные, star'ить, расшаривать и впоследствии синхронизировать с Google Reader.

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

четверг, 19 ноября 2009 г.

StarDict: пропадание всплывающего окна с переводом

Всем хорош StarDict, но есть одна мелочь, которая порой раздражает. Выделяю какое-либо слово, нажимаю горячую клавишу - появляется плавающее окошко с переводом этого слова. Если теперь слегка отодвинуть мышку в сторону, то плавающее окошко пропадет и больше не появится до тех пор, пока я не выделю другое слово, несмотря на последующие нажатия горячей клавиши.

Мне это надоело, и я не поленился залезть в исходники StarDict, чтобы сделать так, как мне хочется. :)

воскресенье, 8 ноября 2009 г.

Автоматическое скачивание субтитров

Недавно, скачивая субтитры к очередной серии Lie To Me, я задумался, нельзя ли как-нибудь автоматизировать эти довольно нудные действия (поиск субтитров для конкретной серии конкретного сериала, скачивание и переименование, чтобы файл с субтитрами имел такое же имя, как и видеофайл). Оказалось, что можно.

вторник, 26 мая 2009 г.

Просмотр одновременно нескольких субтитров при проигрывании фильма

Недавно решил попробовать подтянуть свои знания английского языка общеизвестным методом просмотра зарубежных сериалов в оригинальной озвучке с английскими и русскими субтитрами. Полез в Synaptic и стал искать там подходящий для этого плеер. Собственно что хотелось:
  • Возможность одновременного просмотра нескольких субтитров на разных языках;
  • Возможность выделять текст субтитров, чтобы вставить его в словарь.

К моему удивлению, ничего подходящего мне найти не удалось. Да, есть, например, gnome-subtitles, который позволяет это сделать, но почему-то разработчики не добавили в него такую вроде-бы совершенно необходимую функциональность, как прокручивание текста субтитров при воспроизведении фильма. Т. е. в gnome-subtitles следить за тем, какие субтитры должны быть активны в данный момент, приходится самому.

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

воскресенье, 29 марта 2009 г.

Flush 0.4 released (GTK-based BitTorrent клиент)

Несколько месяцев назад я писал о выходе первой (0.1) версии своего BitTorrent клиента. С тех пор Flush дорос до версии 0.4. Т. к. первую версию, скорее всего, поставить решится далеко не каждый, да и в ней могло не быть каких-либо функций, отсутствие которых помешало бы использовать Flush, я решил, что настало время еще раз напомнить о существовании данного BitTorrent клиента. Я использую его с первой версии и сделал таким, каким, как я считаю, должен быть BitTorrent клиент. Если ваши предпочтения совпадают с моими, то, возможно, он вам придется по душе.

Причины, которые заставили меня написать собственный BitTorrent клиент, я изложил здесь, так что повторяться не буду. Думаю, лучше всего будет привести список изменений по сравнению с Flush 0.1 и скриншоты, которые зачастую могут сказать гораздо больше, чем любой Changelog. :)

вторник, 17 марта 2009 г.

Что почитать UNIX C/C++ программисту

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

воскресенье, 18 января 2009 г.

QGtkStyle - заставляем Qt4 приложения использовать оформление GTK

Оказывается, можно заставить Qt (>= 4.4) приложения выглядеть так же, как и GTK, причем сделать для этого нужно совсем немного:
svn co svn://labs.trolltech.com/svn/styles/gtkstyle
cd gtkstyle/
qmake-qt4 && make
sudo make install
Далее запускаем, к примеру, systemsettings и выбираем в Appearance->Style стиль GTK.

В результате Qt4 приложения примут примерно следующий вид:

четверг, 15 января 2009 г.

Интересный способ передачи файлов с одного компьютера на другой

Вот за что я всегда любил Linux, так это за то, что он предоставляет возможность решать возникающие задачи невообразимым количеством различных и зачастую очень интересных способов. Я понимаю, что не открыл ничего нового, наверняка данный способ многим известен (особенно среди системных администраторов), но я почему-то о нем ни разу не слышал.

Недавно мне потребовалось передать по локальной сети репозиторий Ubuntu 8.10 с одного компьютера на другой. 44000 файлов и папок - это довольно много. Заливать их, к примеру, по FTP - очень долго, т. к. для каждого файла будет открываться новое соединение. scp и rsync тоже, насколько я знаю, довольно медленно работают с большим количеством файлов.

И я уже начал запаковывать его в tar архив, чтобы передать по FTP, как вспомнил, что есть такая вещь как netcat. Раньше я им никогда не пользовался - просто где-то слышал о нем и запомнил о его существовании, т. к. он может очень пригодиться при написании скриптов.

суббота, 3 января 2009 г.

Flush - еще один GTK-based BitTorrent клиент

Вступление

Единственный BitTorrent клиент под Linux, который пришелся мне по душе - это KTorrent. Не скажу, что он меня полностью устраивал, но при его использовании я не испытывал особых неудобств.

Хотя некоторого функционала мне в нем все же не хватало. Что-то я реализовал скриптами, что-то продолжал делать руками... Вообщем нужного мне уровня автоматизма, которого я пытаюсь добиться со всеми приложениями, которые использую более или менее регулярно, и которые время от времени требуют выполнения каких-либо рутинных операций, мне достичь не удалось.

На самом деле мне не так уж и много надо. Мне не нужен огромный комбайн, который умеет, например, читать RSS, поддерживать надстройки в виде плагинов и т. п.

Попробую объяснить, что мне нужно от BitTorrent клиента, и зачем мне это нужно...

вторник, 19 августа 2008 г.

PyVSB - простая в использовании система бэкапа данных

Меня давно привлекал язык программирования Python - по-моему все мнения о нем, которые мне доводилось слышать, были исключительно положительными, да и в последнее время при работе в Linux я стал замечать, что все больше и больше программ, которыми я пользуюсь, написаны на Python'е. Прочитав Python tutorial и просмотрев Python Library Reference, я понял, что совершенно не зря он стал так популярен в последнее время - это просто замечательный язык, который отлично подойдет как web-разработчику так и разработчику настольных программ, особенно если скорость написания программы для него имеет решающее значение.

После прочтения документации к Python, я стал думать, как бы мне закрепить полученные знания на практике. Идеальным вариантом было бы написание относительно небольшой программы, которая использует как можно больше возможностей библиотеки Python, и которая пригодилась бы мне впоследствии, чтобы не "писать программу, ради написания программы". Попытавшись вспомнить, каких программ мне не хватает, я пришел в тупик - оказалось, что в Linux я нашел для себя все, что мне было необходимо. Однако, я вспомнил, что уже довольно давно для бэкапа использую самописные скрипты, которые хоть и сжимают сохраненные данные, но не обеспечивают инкрементального бэкапа. Поставить какую-нибудь bacula и читать целый том документации к ней мне не хотелось - для "домашнего" бэкапа ее возможности совершенно не нужны. До поиска каких-нибудь более простых систем бэкапа у меня как-то не доходили руки.

Тут то я и нашел, на чем мне можно получить практический опыт программирования на Python - нужно написать относительно простую систему для "домашнего" бэкапа, которая будет иметь только необходимые функции и минимум настроек в конфигурационном файле.

Необходимые для меня функции - это:
  • Инкрементальный бэкап
  • Сжатие сохраняемых данных
  • Отправка уведомлений на email
  • Возможность запуска собственных скриптов до и после бэкапа
  • Фильтрация файлов, подлежащих резервному копированию, по регулярным выражениям

Вот что у меня получилось (взято из Readme файла к программе):

вторник, 12 августа 2008 г.

Ctrl+H и другие Emacs (Bash) клавиши в GTK

Работая в Vim и Bash, я очень сильно привык к комбинации Ctrl+H, которая служит аналогом Backspace, т. к. при слепом методе набора текста на нее нажимать гораздо удобнее, нежели на Backspace. Результатом данной привычки явилось всевозрастающее неудобство при работе с GTK приложениями, которые данную комбинацию клавиш не поддерживали, хотя Qt приложения обрабатывали ее так, как надо. После довольно непродолжительных поисков в интернете нашлось решение данной проблемы.

суббота, 26 июля 2008 г.

Очередной HowTo по Vim

Ранее я уже выкладывал небольшой HowTo по Vim. Тогда я только начинал свое знакомство с ним и решил, что на начальном этапе изучения лучше руководствоваться различными tutorial'ами и HowTo, а официальную документацию пока оставить в стороне. Почему? А потому, что если вы только начинаете изучать Vim, то вы еще не знаете, что вам от него нужно - необходим определенный опыт работы, чтобы при чтении документации вы смогли бы наиболее точно оценить, какие функции будут вам полезны, а о каких можно забыть. Все команды вы все равно не запомните - уж слишком их много, поэтому приходится отсеивать только те, которыми вы действительно будете пользоваться.

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

Подобные HowTo просто подарок судьбы для начинающих пользователей Vim'a, т. к., прочитав их и скопипастив строчки из чужих конфигов в свои, они уже смогут работать в нем, не испытывая при этом особого дискомфорта. Данный HowTo предполагает, что вы уже знаете Vim в объеме Vim Tutor. Опытные пользователи, которые не смогли найти время для прочтения документации, также, возможно, найдут что-то полезное для себя в этой статье - я, например, к своему стыду, о командах gj и gk узнал именно из документации, но сколько же я без них мучился... :)

четверг, 10 июля 2008 г.

Недокументированные возможности IceWM

Если вы используете IceWM уже довольно давно, то наверняка не раз замечали, что в документации перечислены не все опции, с помощью которых его можно настроить. Я с этим сталкивался не раз, но до недавнего времени мне хватало всех тех опций, которые были мне известны.

Когда же я захотел, чтобы при запуске определенное приложение разворачивалось на весь экран (Fullscreen), то обнаружил, что в документации к ~/.icewm/winoptions нет опции, позволяющей сделать это.

Не поверив, что разработчики не реализовали подобную возможность, я полез в интернет. Не найдя в интернете решения моей проблемы, я решил посмотреть исходники IceWM. Как я и предполагал, разработчики реализовали нужную мне опцию ~/.icewm/winoptions, но не отразили это в документации. Там же я нашел еще несколько опций, о которых в ней не упоминалось. Так как имена опций и их описание находились в коде недалеко друг от друга, то, составив несколько action'ов в Vim'е, я получил из исходных текстов список с парами "имя опции - описание", которым и решил с вами поделиться - вдруг кто-нибудь найдет в нем опцию, которой ему очень не хватало. Описание в коде присутствовало не для всех опций, поэтому и в моем списке они не все документированы, но по их именам в большинстве случаев совсем не сложно догадаться, что они означают.

пятница, 13 июня 2008 г.

Установка и настройка Ubuntu 8.04 на ASUS Eee PC


Когда я покупал себе ASUS Eee PC, я совершенно не думал о том, какую операционную систему установлю на нем - однозначно это будет Ubuntu Linux. Во-первых, потому, что Ubuntu у меня стоит и дома и на работе, во-вторых, потому, что и дома и на работе у меня есть локальное зеркало репозитория Ubuntu, а в-третьих просто потому, что данный дистрибутив меня всем устраивает.

После покупки я сразу же полез в Интернет в поисках различных HowTo по установке Ubuntu 8.04 на Eee PC. Результат меня несколько удивил. Несмотря на огромный ажиотаж вокруг Eee PC, этих самых HowTo в сети не так уж и много + большинство из них нацелены на Ubuntu 7.10 и предлагают запустить некий скрипт, который заменит системные конфигурационные файлы своими, заточенными под Eee PC.

На эти скрипты я даже и смотреть не стал, т. к. они предназначены для Ubuntu 7.10, и их запуск на Ubuntu 8.04 может привести к нехорошим последствиям. Поэтому во время поиска необходимой информации в сети я обращал внимание только на те статьи, в которых описывается, как можно настроить Ubuntu под Eee PC "своими руками". Найти такой HowTo, в котором содержались бы ответы на все встающие передо мной вопросы, мне не удалось, поэтому я решил систематизировать собранную мной информацию и слить ее в одну статью. Сейчас моя система уже настроена, поэтому я постараюсь вспомнить все действия, которые я производил над ней, дабы все заработало так, как мне хочется. Надеюсь, я ничего не упущу. :)

понедельник, 5 мая 2008 г.

Скрипт для помощи в разрешении конфликтов CVS

Время от времени, когда вы заливаете в CVS только что отредактированный файл, она выдает вам следующее сообщение:
cvs commit: Up-to-date check failed for `main.c'
cvs [commit aborted]: correct above errors first!
которое означает, что кто-то уже успел отредактировать этот файл и залить его в CVS раньше вас.

Встает проблема разрешения конфликта. Что делать? Выполнить cvs update и доверить разрешение конфликта CVS? Нет, я кроме себя никому не доверяю. :)

суббота, 5 апреля 2008 г.

RSS для LinuxForum.ru

Я очень дорожу своим временем и поэтому предпочитаю получать всю необходимую мне информацию из интернета только в формате RSS. Это как минимум позволяет мне узнавать обо всем новом, вообще не заходя на сайты, а также при помощи Google Reader читать новости не только дома, когда можно заниматься более продуктивными делами, но и в транспорте с мобильного телефона или КПК.

Вот только даже сегодня, в эпоху Web 2.0 далеко не все сайты предоставляют качественный экспорт информации в RSS. Так, к примеру, на LinuxForum.ru мне сильно не хватает RSS ленты, которая выдавала бы мне все последние темы, появляющиеся в интересующем меня форуме. Ради справедливости можно сказать, что движок форума позволяет подписаться на новые темы по e-mail, но мне электронную почту для чтения подобной информации использовать очень неудобно. Я уже спрашивал на форуме, можно ли забирать эту информацию по RSS, на что получил отрицательный ответ.

В итоге пришлось решать эту проблему своими силами. С помощью Yahoo Pipes я создал pipe, который выдает все последние темы указанного в параметрах pipe'а форума. По правде сказать, раньше я с Yahoo Pipes никогда не работал и его возможности меня сильно удивили - это действительно очень мощный инструмент, который замечательно справляется со своей задачей. Так что всячески вам его рекомендую.

четверг, 20 марта 2008 г.

ПСПЛ: Полезные Советы По Linux

Пару дней назад, когда я в очередной раз просматривал в Google Reader свои RSS ленты, в графе "Top Recommendations" он предложил мне почитать RSS ленту сайта ПСПЛ: Полезные Советы По Linux.

До настоящего момента Google Reader мне еще ни разу не советовал ни одной ленты, которая бы мне действительно понравилась, и я бы решил подписаться на нее. Этот же сайт оказался действительно интересным, поэтому я хочу вам его порекомендовать. Как можно догадаться из названия, он является сборником наиболее ценных советов относительно Linux.

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

понедельник, 10 марта 2008 г.

Управление KTorrent'ом при изменении сетевой активности браузера

По сегодняшним меркам у меня довольно медленное соединение с Интернетом - 150 Кбит/с днем и 300 Кбит/с ночью. Компьютер работает круглосуточно. Ночью для локальной сети зеркалируются репозитории Ubuntu 7.10 и 8.04, и все время включен KTorrent, который постоянно что-то раздает и довольно часто что-то качает. В итоге получается, что мой канал забит практически круглосуточно.

Зеркалирование мне никак не мешает, т. к. работает ночью. А вот ходить по Интернету при работающем KTorrent'e, который качает в несколько потоков, занятие не из приятных. Вручную останавливать/запускать закачки/раздачи - не выход.

Ранее в небольшой заметке я упоминал, как можно управлять KTorrent'ом из консоли. Теперь же я хочу показать вам, как у меня это реализовано на практике в виде небольшого Bash скрипта.

вторник, 26 февраля 2008 г.

Запоминание позиции воспроизведения файла в MPlayer

Думаю, многим знакома следующая ситуация. Вы запускаете свой любимый MPlayer, чтобы посмотреть какой-нибудь фильм, смотрите, но до конца досмотреть не успеваете, т. к. вам нужно куда-нибудь уходить. Вы закрываете MPlayer, выключаете компьютер и идете по своим делам. Вернувшись, вы решаете досмотреть фильм. Вот только где же вы остановились? Что делать? "Проматывать", пока не наткнетесь на тот момент, который не видели? Записывать время остановки на бумажке? :) Нет, это не наш метод...

воскресенье, 17 февраля 2008 г.

Подсветка текста в терминале

В этой статье я дам два небольших совета, которые, на мой взгляд, могут сделать работу с консолью слегка комфортнее. Повышать комфорт будем путем подсветки информации, выводимой на терминал.