Качалка в довесок к предыдущему
Feb. 25th, 2014 05:13 pmВ дополнение к предыдущему посту функция для скачивания выбранных треков из плейлиста EMMS. Чтобы в плейлисте можно было отмечать треки, надо нажать M-x emms-mark-mode. Кнопка m выделяет треки, кнопка w (от wget) скачивает выбранные песни в папку emms-source-file-default-directory.
(defun my-wget-track (track) (start-process "wget" (get-buffer-create "my-wget-output") "wget" (cdr (assoc 'name track)) "--progress=dot" "-O" (expand-file-name (format "%s - %s.mp3" (cdr (assoc 'info-artist track)) (cdr (assoc 'info-title track))) emms-source-file-default-directory))) (defun my-emms-download () (interactive) (if (emms-mark-has-markedp) (let ((tracks (emms-mark-mapcar-marked-track 'emms-tag-editor-track-at t))) (dolist (track tracks) (my-wget-track track))) (my-wget-track (emms-tag-editor-track-at)))) (define-key emms-playlist-mode-map "w" 'my-emms-download)
Emacs и Вконтактик
Feb. 19th, 2014 10:04 pmЧего бы не делать, лишь бы не работать!
Читал Хабр, наткнулся на пост про ВК и решил поиграться.
В результате написал две функции для Emacs - заслать текущий буфер на стену и получить плейлист из вконтактика в EMMS (Подробнее тут).
Код ниже, прежде, чем пользоваться, надо сходить по адресу и скопировать из адресной строки значение параметра access_token. Потом это значение надо вписать в переменную vk-auth-token, а в переменную vk-user-id - свой id. Можно использовать M-x customize-variable vk-auth-token и M-x customize-variable vk-user-id.
Читал Хабр, наткнулся на пост про ВК и решил поиграться.
В результате написал две функции для Emacs - заслать текущий буфер на стену и получить плейлист из вконтактика в EMMS (Подробнее тут).
Код ниже, прежде, чем пользоваться, надо сходить по адресу и скопировать из адресной строки значение параметра access_token. Потом это значение надо вписать в переменную vk-auth-token, а в переменную vk-user-id - свой id. Можно использовать M-x customize-variable vk-auth-token и M-x customize-variable vk-user-id.
(defcustom vk-auth-token "YOUR-TOKEN" "VK API auth token" :type 'string) (defcustom vk-user-id YOUR-ID "VK User Id" :type 'number) (defun vk-post () (interactive) (url-retrieve-synchronously (format "https://api.vk.com/method/wall.post?owner_id=%d&message=%s&v=5.0&access_token=%s" vk-user-id (url-hexify-string (buffer-string)) vk-auth-token))) (defun vk-get-audio (&optional arg) (interactive "PUser id:") (let ((id (if arg arg vk-user-id))) (set-buffer (url-retrieve-synchronously (format "https://api.vk.com/method/audio.get?owner_id=%d&need_user=0&v=5.10&access_token=%s" id vk-auth-token) 't 't)) (set-buffer-multibyte 't) (search-forward "{") (backward-char) (let* ( (json-array-type 'list) (items (cdadar (json-read))) (vk-emms-buffer (emms-playlist-new))) (set-buffer vk-emms-buffer) (dolist (item items) (let ((track (emms-track 'url (cdr (assoc 'url item))))) (emms-track-set track 'info-title (cdr (assoc 'title item))) (emms-track-set track 'info-artist (cdr (assoc 'artist item))) (emms-playlist-insert-track track))) (switch-to-buffer vk-emms-buffer))))
Mendeley, zotero и простые решения
Apr. 11th, 2013 08:17 amПрочитал новость о том, что Mendeley куплен страшным Elseveir-ом и вспомнил, что надо бы что-то сделать с завалом статей в Dropbox-е.
Попробовал Zotero, но мне не понравилось. Надо файлы вручную в zotero перетаскивать, а метаданные для многих статей из arXiv-а все равно не загружаются.
В итоге решил немножко автоматизировать бардак из файлов в Dropbox-е и библиографии в BibTeX-е. Идея в следующем - скрипт следит за состоянием папки Dropbox, если там появляется новый файл с именем, содержащим идентификатор статьи в arXiv, то в bib-файл дописывается соответствующая запись, а файл переименовывается путем добавления автора и названия.
То есть если я браузером сохраняю файл http://arxiv.org/pdf/0806.4520 в папку Dropbox, то в файле listing.bib появляется следующая запись:
( ... )
Попробовал Zotero, но мне не понравилось. Надо файлы вручную в zotero перетаскивать, а метаданные для многих статей из arXiv-а все равно не загружаются.
В итоге решил немножко автоматизировать бардак из файлов в Dropbox-е и библиографии в BibTeX-е. Идея в следующем - скрипт следит за состоянием папки Dropbox, если там появляется новый файл с именем, содержащим идентификатор статьи в arXiv, то в bib-файл дописывается соответствующая запись, а файл переименовывается путем добавления автора и названия.
То есть если я браузером сохраняю файл http://arxiv.org/pdf/0806.4520 в папку Dropbox, то в файле listing.bib появляется следующая запись:
( ... )
На смерть Гугл-ридера
Mar. 17th, 2013 07:45 amЯ начинал пользоваться гуглоридером еще на своей первой программистской работе, когда он только появился в 2005 году. Потом был большой перерыв, когда я использовал aKregator и разные rss-читалки в emacs и в консоли. Но несколько месяцев назад я пришел к чтению новых препринтов на arXiv с книжки программой gReader. Естественно, с синхронизацией через Google Reader.
Поэтому новость о закрытии Google Reader меня опечалила. Разработчики gReader, конечно, обещают продолжить работу и сделать синхронизацию с другим сервисом.
Читая всякие новости и советы я, от нечего делать, поставил на сервер tt-rss, а на книжку неофициальный клиент для Android. Официальный не заработал.
Вроде все работает.
Вам интересны технические подробности настройки и установки?
Поэтому новость о закрытии Google Reader меня опечалила. Разработчики gReader, конечно, обещают продолжить работу и сделать синхронизацию с другим сервисом.
Читая всякие новости и советы я, от нечего делать, поставил на сервер tt-rss, а на книжку неофициальный клиент для Android. Официальный не заработал.
Вроде все работает.
Вам интересны технические подробности настройки и установки?
Хозяйке на заметку
Mar. 8th, 2013 12:15 amЕсли вы используете оконный менеджер вроде dwm или xmonad, то вам может пригодится следующий трюк.
В .emacs добавить
В .bashrc
А в ~/bin/myemacsclient
Теперь при нажатии C-x C-e в окне терминала произойдет переключение на первое рабочее место, где у вас висит emacs, а после завершения редактирования командной строки - обратное переключение на окно терминала. Ну и в .conkerorrc можно добавить
В .emacs добавить
(defun my-server-edit (&optional arg) (interactive) (server-edit arg) (start-process "switch" nil shell-file-name shell-command-switch "xdotool key \"super+Tab\"")) (global-set-key "\C-x#" 'my-server-edit)
В .bashrc
export EDITOR=myemacsclient
А в ~/bin/myemacsclient
#! /bin/bash xdotool key 'super+1' emacsclient "$@"
Теперь при нажатии C-x C-e в окне терминала произойдет переключение на первое рабочее место, где у вас висит emacs, а после завершения редактирования командной строки - обратное переключение на окно терминала. Ну и в .conkerorrc можно добавить
editor_shell_command="myemacsclient";
Высокие технологии
Aug. 4th, 2012 02:23 pmХраните данные в облаке, пользуйтесь продуктами Apple: http://www.emptyage.com/post/28679875595/yes-i-was-hacked-hard
Про то, как все плохо в науке
Jul. 27th, 2012 06:58 pmЖанр жалобной песни о развале науки и образования пользуется заслуженной популярностью в России. Однако и на западе творческая жизнь бьет ключом. Предлагаю собрать самые любимые произведения данного жанра, натравить на них какую-нибудь систему контент-анализа и сравнить содержание жалоб из разных стран.
Примеры текстов:
http://www.snob.ru/selected/entry/40187#entry_40187/group_51/from_390559/to_392222
http://cs.unm.edu/~terran/academic_blog/?p=113 ( http://news.ycombinator.com/item?id=4287604 )
Старенькое:
http://www.lambdassociates.org/Blog/decline.htm
Кидайте свои ссылки в комментарии и рекламируйте идею друзьям =)
Примеры текстов:
http://www.snob.ru/selected/entry/40187#entry_40187/group_51/from_390559/to_392222
http://cs.unm.edu/~terran/academic_blog/?p=113 ( http://news.ycombinator.com/item?id=4287604 )
Старенькое:
http://www.lambdassociates.org/Blog/decline.htm
Кидайте свои ссылки в комментарии и рекламируйте идею друзьям =)
Про вконтактик
Jul. 21st, 2012 02:50 pmМне тут напомнили про скриптик для скачивания музыки.
Оказывается, он перестал работать из-за переезда Вконтактика на vk.com.
Обновил скрипт, вроде теперь должно работать.
Заодно тот же скрипт в виде интерактивной функции для Conkeror: https://gist.github.com/3155384
Код надо скопировать в .conkerorrc, на любой страничке Контакт можно нажать M-x vk-audio и появятся кнопки для скачивания песен.
Ну и бонус: http://vk.com/write?email=antonnaz@gmail.com
Письма, естественно, отправляются gmail-ом прямиком в спам. И аттачменты можно только отправлять, но не получать. Своя почта прямо, все как у больших =)
Оказывается, он перестал работать из-за переезда Вконтактика на vk.com.
Обновил скрипт, вроде теперь должно работать.
Заодно тот же скрипт в виде интерактивной функции для Conkeror: https://gist.github.com/3155384
Код надо скопировать в .conkerorrc, на любой страничке Контакт можно нажать M-x vk-audio и появятся кнопки для скачивания песен.
Ну и бонус: http://vk.com/write?email=antonnaz@gmail.com
Письма, естественно, отправляются gmail-ом прямиком в спам. И аттачменты можно только отправлять, но не получать. Своя почта прямо, все как у больших =)
Фильм "Iron sky"
Jul. 2nd, 2012 01:25 amПосмотрел фильм "Iron sky".
Мне очень понравилось, хотя критики и ругают.
У меня "Iron sky" ассоциируется с "Dr. Strangelove or: How I Learned to Stop Worrying and Love the Bomb" и "Wag the Dog". А еще вспоминается "Plan 9 from Outer Space".
Мне очень понравилось, хотя критики и ругают.
У меня "Iron sky" ассоциируется с "Dr. Strangelove or: How I Learned to Stop Worrying and Love the Bomb" и "Wag the Dog". А еще вспоминается "Plan 9 from Outer Space".
Мне тут рассказали, что мой журнал я веду на пару с андроидом.
Эта ссылка точно от андроида:
http://www.linusakesson.net/programming/tty/
Все, что вы хотели узнать о консоли в Unix/Linux.
Пример - эмуляция работы через телетайп, символ # обозначает удаление, @ - зачеркивание всей строки:
Эта ссылка точно от андроида:
http://www.linusakesson.net/programming/tty/
Все, что вы хотели узнать о консоли в Unix/Linux.
Пример - эмуляция работы через телетайп, символ # обозначает удаление, @ - зачеркивание всей строки:
nazarov@nazarov-HP:~$ sh $ stty erase \# kill @ -crterase -echok $ ls @wc -l /etvc##c/passwd 31 /etc/passwd $ ls^?# bin books Desktop distr doc News pictures science sdcard.tar.gz #tt.txt# $ /^?s##stty sane sh: /stty: not found $ stty sane
PHP error 2 in C:\erarta3v\kernel\common\libs\files_utils.php line 417: unlink(./../kernel/var/c_tmpl/Museum/Main/scripts.tmpl) [function.unlink]: Permission denied 1. error: line 24 from C:\erarta3v\kernel\engine.php 2. forSiter_ErrorHandler: line from 3. unlink: line 417 from C:\erarta3v\kernel\common\libs\files_utils.php 4. fs_setFileContent: line 181 from C:\erarta3v\kernel\include\Template.inc 5. _compileWrite: line 213 from C:\erarta3v\kernel\include\Template.inc 6. _compileTmpl: line 354 from C:\erarta3v\kernel\include\Template.inc 7. _includeTmpl: line 3 from C:\erarta3v\kernel\include\Template.inc(371) : eval()'d code 8. eval: line 371 from C:\erarta3v\kernel\include\Template.inc 9. _includeTmpl: line 1 from C:\erarta3v\kernel\include\Template.inc(371) : eval()'d code 10. eval: line 371 from C:\erarta3v\kernel\include\Template.inc 11. _includeTmpl: line 1 from C:\erarta3v\kernel\include\Template.inc(371) : eval()'d code 12. eval: line 371 from C:\erarta3v\kernel\include\Template.inc 13. _includeTmpl: line 614 from C:\erarta3v\kernel\include\Template.inc 14. parser: line 819 from C:\erarta3v\kernel\include\Kernel.inc 15. parseTmpl: line 1051 from C:\erarta3v\kernel\include\Kernel.inc 16. init: line 96 from C:\erarta3v\kernel\engine.php 17. startEngine: line 20 from C:\erarta3v\www\index.php DEBUG OUTPUT END
В стране счастливой детства
Apr. 17th, 2012 11:01 pmhttp://www.bombjack.org/commodore/books-generic.htm
Ну и заодно http://www.z80.info/
А вот по этой книжке я в детстве изучал ассемблер:

Ну и заодно http://www.z80.info/
А вот по этой книжке я в детстве изучал ассемблер:

@naa: *fun *geek *linux
Feb. 15th, 2012 01:55 am01:42 15.02.2012
@naa: *fun *geek *linux
Leet hacking skilz: Maxima (maxima.sf.net) работает на Nook Simple Touch
@naa: *fun *geek *linux
Leet hacking skilz: Maxima (maxima.sf.net) работает на Nook Simple Touch
Happy Happy Joy Joy
Jan. 9th, 2012 12:39 pmВчера у моего братца был день рождения и я купил ему в подарок такую игрушечку:
Игрушечкой можно управлять с iPhone или Android при помощи передатчика, вставляющегося в разъем для наушников (Ага!). Из устройств с андроидом у нас под рукой был только планшетный компьютер Acer и программа на нем почему-то вылетала после нескольких нажатий на кнопки. Причем робот на эти нажатия не реагировал. Однако при вытащенном передатчике нажатия приводили к писку )
"Наверное, это неспроста!" - подумали мы.
( Конец немного предсказуем... )
Игрушечкой можно управлять с iPhone или Android при помощи передатчика, вставляющегося в разъем для наушников (Ага!). Из устройств с андроидом у нас под рукой был только планшетный компьютер Acer и программа на нем почему-то вылетала после нескольких нажатий на кнопки. Причем робот на эти нажатия не реагировал. Однако при вытащенном передатчике нажатия приводили к писку )
"Наверное, это неспроста!" - подумали мы.
( Конец немного предсказуем... )
@naa: *geek *jabber *emacs *google
Aug. 22nd, 2011 11:22 am10:55 22.08.2011
@naa: *geek *jabber *emacs *google
Гугл недавно поменял формат, в котором googletalk отдает список контактов. В результате jabber.el не мог его отобразить. Вот здесь описано решение этой проблемы: sourceforge.net
@naa: *geek *jabber *emacs *google
Гугл недавно поменял формат, в котором googletalk отдает список контактов. В результате jabber.el не мог его отобразить. Вот здесь описано решение этой проблемы: sourceforge.net