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

суббота, 4 декабря 2010 г.

Ubuntu удаляем ненужные ядра.

Накопилось у меня целая толпа разных ядер.
$ dpkg -l |grep ii|grep -E 'linux-headers|linux-image'          
ii  linux-headers-2.6.32-21              2.6.32-21.32                                          Header files related to Linux kernel version 2.6.32
ii  linux-headers-2.6.32-21-generic      2.6.32-21.32                                          Linux kernel headers for version 2.6.32 on x86/x86_64
ii  linux-headers-2.6.32-24              2.6.32-24.43                                          Header files related to Linux kernel version 2.6.32
ii  linux-headers-2.6.32-24-generic      2.6.32-24.43                                          Linux kernel headers for version 2.6.32 on x86/x86_64
ii  linux-headers-2.6.32-25              2.6.32-25.45                                          Header files related to Linux kernel version 2.6.32
ii  linux-headers-2.6.32-25-generic      2.6.32-25.45                                          Linux kernel headers for version 2.6.32 on x86/x86_64
ii  linux-headers-2.6.32-26              2.6.32-26.48                                          Header files related to Linux kernel version 2.6.32
ii  linux-headers-2.6.32-26-generic      2.6.32-26.48                                          Linux kernel headers for version 2.6.32 on x86/x86_64
ii  linux-headers-generic                2.6.32.26.28                                          Generic Linux kernel headers
ii  linux-image-2.6.32-21-generic        2.6.32-21.32                                          Linux kernel image for version 2.6.32 on x86/x86_64
ii  linux-image-2.6.32-24-generic        2.6.32-24.43                                          Linux kernel image for version 2.6.32 on x86/x86_64
ii  linux-image-2.6.32-25-generic        2.6.32-25.45                                          Linux kernel image for version 2.6.32 on x86/x86_64
ii  linux-image-2.6.32-26-generic        2.6.32-26.48                                          Linux kernel image for version 2.6.32 on x86/x86_64
ii  linux-image-generic                  2.6.32.26.28                                          Generic Linux kernel image
И решил я их подчистить, тоесть удалить все кроме текущего
$ uname -r                                                                                                                                                     
2.6.32-26-generic
можно конечно руками в synaptic или каждый копипастить, но "мы не ищем простых путей - нам лень"(c) поэтому вот небольшой скрипт, который можно скопировать в командную строку и выполнить, на каждую операцию удаления спросит подтверждения
$ VERSION=$(uname -r|sed -r "s|-[^-]*$||;s|-|.|"); PACKAGES=$(dpkg -l |grep ii|grep -E 'linux-headers|linux-image' |grep -rv "$VERSION" | awk '{print $2}'); for i in  $PACKAGES;do sudo apt-get remove $i;done

Если у кого есть более красивый вариант, предлагайте :), буду рад.

вторник, 26 октября 2010 г.

Anki English Irregular verbs + Russian translate

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

Работает следующим образом.
создаем в папке 3 файла v1,v2,v3 соответственно Infinitive, Simple Past, Past Participle. (в том же порядке, тоесть слову из n-й строчки соответствуют слова из n-й строчки 2го и 3го файла)
далее выкачиваем скрипт в эту же папку

$ wget https://sites.google.com/site/nicloaynidvoray/filelist/ivdeckgen

даем права на выполнение

$ chmod a+x ivdeckgen

запускаем

$ ./ivdeckgen

по завершению импортируем result/anki_deck в анки
копируем все из папки result/sound в ~/.anki/decks/DECK_NAME.media (где DECK_NAME имя которое дали деке)
Запускаем checkDB в анки. (tools->advanced->check media database) и все

вот так это выглядит



Скачать готовую деу можно жимкнув на
вот эту подчеркнуют надпись :)

воскресенье, 17 октября 2010 г.

Anki phrasal verbs

И так, кто не в курсе что это за "phrasal verbs", это важная часть английского языка, так как народ у них там ленивый, они используют как можно меньше слов в своей речи и различные комбинации часто употребляемых слов и есть "phrasal verbs" что то типа нашего "дать по тыкве".

Началось все как обычно с гугления списка этих глаголов. Сначала мне казалось что придется мержить списки с нескольких сайтов. но вот попался http://www.cad.ntu-kpi.kiev.ua/~demch/friends/esl4rus/pvlist.html список из целых 450 phrasal verbs, думаю этого с головой для обычного смертного вроде меня.

Вот и прорисовалась наша миссия, импортировать эту таблицу в anki


1. Можно конечно было бы распарсить html, но мы пойдем более простым путем, скопируем таблицу в OoO Calc. и каждую колонку сохраним в отдельный файлы verbs1, verbs2, verbs3

2. Ну вот.. самая сложная часть работы позади :) осталось взять по каждой строчке из файла и в нужном порядке положить в файл. Для этого выполним серию комманд, прямо из терминала
$ COUNT=$(cat verbs1|wc -l);for i in $(seq 1 $COUNT);do \
echo -e $(cat verbs1|sed -n $i'p') \
"\t"$(cat verbs2|sed -n $i'p') \
"<br /><br /><span style='font-style:italic;'>" \
$(cat verbs3|sed -n $i'p')"</span>" >>anki_deck; \
echo -e $(cat verbs2|sed -n $i'p') \
"\t"$(cat verbs1|sed -n $i'p') \
"<br /><br /><span style='font-style:italic;'>" \
$(cat verbs3|sed -n $i'p')"</span>" >>anki_deck; \
done

3. В итоге мы получили файл anki_deck, который мы должны импортировать в anki. в процессе импорта, получил несколько ошибок.

Importing complete. 895 facts imported from anki_deck.
Log of import:
Fact is missing field 'Front': , hand over <br /><br /><span style='font-style:italic;'> </span>
Fact has duplicate 'Front': review / study thoroughly for a short time , brush up on (inseparable) <br /><br /><span style='font-style:italic;'> If you're going to travel to Peru, you'd better brush up on your Spanish.</span>
Fact has duplicate 'Front': distribute , pass out (2. separable) <br /><br /><span style='font-style:italic;'> Everyone in the room needs one of these information sheets. Who will help me pass them out?</span>
Fact has duplicate 'Front': return something to the proper place , put back (separable) <br /><br /><span style='font-style:italic;'> I've finished with these books. Do you want me to put them back on the shelves?</span>
Fact has duplicate 'Front': return something to the proper place , put up (1. separable) <br /><br /><span style='font-style:italic;'> Your toys are all over the floor, Timmy. Please put them up.</span>
Fact has duplicate 'Front': discard; put in the garbage , throw out (1. separable) <br /><br /><span style='font-style:italic;'> This food smells bad. You'd better throw it out.</span>
Fact has duplicate 'Front': turn out , come to a meeting or to form a crowd <br /><br /><span style='font-style:italic;'> Thousands of fans turned out to welcome the team.</span>

что говорит 'duplicate' вроде понятно., идем в файлы (verbs1,verbs2,verbs3), ищем там дубликаты строчки и добавляем им индексы (1) (2) и т.п., так же видим что "hand over" остался сиротой, без описания и примера., восполним это результатом из переводчика

4. Так как мы получили ошибки, и подправили файлы. удаляем файл anki_deck, и переходим к пункту 2, получаем красивый результат
Importing complete. 900 facts imported from anki_deck.
что говорит что все ок. жимкаем Ctrl-S (выбираем куда сохранить) и вуаля.. - дека готова

выглядит очень красиво :).
а главное полезно :).

для ленивых товарищей, готовую деку можно скачать жмакнув сюда, либо посмотреть shared deck в интерфейсе анки

понедельник, 4 октября 2010 г.

Gnome tile windows. Или наводим порядок из окошек.

Вот наконецто я получил монитор, и первым делом вспомнил свою давнюю проблему, упорядочивание окошек. Ставить Compiz или подобное не совсем хотелось из за проблем совместимости с моими горячими кнопками, производительностью системы и лагами в java. Но проблема была серьезная и выход был найден.
Гугл нам выдал утилиту для управления окнами wmctrl простенький интерфейс, ничего лишнего. но забегая вперед скажу что есть недостатки
1. Через эту утилиту так и не смог добится стабильности в свертывании окон
2. В списке не видно минимального и максимального размера окна.
Из этого вытекли 2 проблемы (когда я считаю окошки, то в расчет идут свернутые) Когда я делаю ресайз, то такие приложения как например evolution, имеют минимальный размер окошка, поэтому результат не всегда красивый.


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

как все это чудо заставить работать
1. Качаем wmctrl
$ sudo apt-get install wmctrl

2. Качаем скрипт
$ wget -O walign https://sites.google.com/site/nicloaynidvoray/filelist/walign?attredirects=0&d=1

3. Смотрим (на всякий случай :) ) на эту красоту, а то веть сейчас будем копировать с правами sudo.
$ cat walign

4. Если никакого криминала, то идем дальше (если хотите чтоб эта фича была доступна для всех юзеров, то логично положить скрипт в /usr/local/bin если же нет, то можно оставить в текущей папке
двигаем скрипт в /usr/local/bin
$ sudo mv walign /usr/local/bin/

5 Даем права на выполнение
$ sudo chmod a+x /usr/local/bin/walign

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

идем в шоткаты.

7 Жмем кнопку Add

и добавляем запуск нашего скрипта (если всетаки вас мучают паронаидальные настроения и вы не решились двигать этот скрипт в /usr/local/bin то тут нужно будет вместо walign прописать полный путь к скрипту)

8 Ну и осталось самое простое- нажать напротив команды кнопку и выжать горячую комбинацию клавиш (я себе сделал ctrl-alt-A)


И вуаля!, вот оно :) по нажатию ctrl-alt-A у нас теперь окошки выстраиваются в различные комбинации :), единственное что могу сказать - на монитора с не традиционной ориентацие (portrait) данный скрипт загнется. если сильно будет нужно - починю, сейчас пока в лом.