2048

May. 6th, 2014 08:40 pm
anton_nazarov: (Default)
Наконец написали 2048 для Emacs, а то я сам хотел, но ленился.
Зато я выложил свою версию для PalmOS, которую написал несколько недель назад.

anton_nazarov: (Default)
В дополнение к предыдущему посту функция для скачивания выбранных треков из плейлиста 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)
anton_nazarov: (Default)
Чего бы не делать, лишь бы не работать!

Читал Хабр, наткнулся на пост про ВК и решил поиграться.

В результате написал две функции для 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))))
anton_nazarov: (Default)
Прочитал новость о том, что Mendeley куплен страшным Elseveir-ом и вспомнил, что надо бы что-то сделать с завалом статей в Dropbox-е.
Попробовал Zotero, но мне не понравилось. Надо файлы вручную в zotero перетаскивать, а метаданные для многих статей из arXiv-а все равно не загружаются.

В итоге решил немножко автоматизировать бардак из файлов в Dropbox-е и библиографии в BibTeX-е. Идея в следующем - скрипт следит за состоянием папки Dropbox, если там появляется новый файл с именем, содержащим идентификатор статьи в arXiv, то в bib-файл дописывается соответствующая запись, а файл переименовывается путем добавления автора и названия.
То есть если я браузером сохраняю файл http://arxiv.org/pdf/0806.4520 в папку Dropbox, то в файле listing.bib появляется следующая запись:
... )
anton_nazarov: (Default)
Я начинал пользоваться гуглоридером еще на своей первой программистской работе, когда он только появился в 2005 году. Потом был большой перерыв, когда я использовал aKregator и разные rss-читалки в emacs и в консоли. Но несколько месяцев назад я пришел к чтению новых препринтов на arXiv с книжки программой gReader. Естественно, с синхронизацией через Google Reader.
Поэтому новость о закрытии Google Reader меня опечалила. Разработчики gReader, конечно, обещают продолжить работу и сделать синхронизацию с другим сервисом.

Читая всякие новости и советы я, от нечего делать, поставил на сервер tt-rss, а на книжку неофициальный клиент для Android. Официальный не заработал.

Вроде все работает.

Вам интересны технические подробности настройки и установки?
anton_nazarov: (Default)
Если вы используете оконный менеджер вроде dwm или xmonad, то вам может пригодится следующий трюк.

В .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";
anton_nazarov: (Default)
Храните данные в облаке, пользуйтесь продуктами Apple: http://www.emptyage.com/post/28679875595/yes-i-was-hacked-hard
anton_nazarov: (Default)
Жанр жалобной песни о развале науки и образования пользуется заслуженной популярностью в России. Однако и на западе творческая жизнь бьет ключом. Предлагаю собрать самые любимые произведения данного жанра, натравить на них какую-нибудь систему контент-анализа и сравнить содержание жалоб из разных стран.

Примеры текстов:
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

Кидайте свои ссылки в комментарии и рекламируйте идею друзьям =)
anton_nazarov: (Default)
Status
Fault: Machine Needs Attention 

Внимание нужно всем =)
anton_nazarov: (Default)
Мне тут напомнили про скриптик для скачивания музыки.
Оказывается, он перестал работать из-за переезда Вконтактика на vk.com.
Обновил скрипт, вроде теперь должно работать.

Заодно тот же скрипт в виде интерактивной функции для Conkeror: https://gist.github.com/3155384

Код надо скопировать в .conkerorrc, на любой страничке Контакт можно нажать M-x vk-audio и появятся кнопки для скачивания песен.

Ну и бонус: http://vk.com/write?email=antonnaz@gmail.com

Письма, естественно, отправляются gmail-ом прямиком в спам. И аттачменты можно только отправлять, но не получать. Своя почта прямо, все как у больших =)
anton_nazarov: (Default)
Посмотрел фильм "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".

Про TTY

Jun. 4th, 2012 05:14 pm
anton_nazarov: (Default)
Мне тут рассказали, что мой журнал я веду на пару с андроидом.
Эта ссылка точно от андроида:
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

ЫЫЫ

Apr. 24th, 2012 11:19 am
anton_nazarov: (Default)

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
anton_nazarov: (Default)
http://www.bombjack.org/commodore/books-generic.htm
Ну и заодно http://www.z80.info/

А вот по этой книжке я в детстве изучал ассемблер:
anton_nazarov: (Default)
01:42 15.02.2012
@naa: *fun *geek *linux
Leet hacking skilz: Maxima (maxima.sf.net) работает на Nook Simple Touch

read more at Anton Nazarov (naa) - Juick

anton_nazarov: (Default)
Вчера у моего братца был день рождения и я купил ему в подарок такую игрушечку:



Игрушечкой можно управлять с iPhone или Android при помощи передатчика, вставляющегося в разъем для наушников (Ага!). Из устройств с андроидом у нас под рукой был только планшетный компьютер Acer и программа на нем почему-то вылетала после нескольких нажатий на кнопки. Причем робот на эти нажатия не реагировал. Однако при вытащенном передатчике нажатия приводили к писку )

"Наверное, это неспроста!" - подумали мы.

Конец немного предсказуем... )
anton_nazarov: (Default)
А что, вконтактик раскрыл закрытую информацию пользователей?
Почему на моей удаленной страничке вдруг стал виден список аудиозаписей, друзей и статусы трехлетней давности?
Может быть в качестве компенсации сделали полноценное удаление?
Или через некоторое время всплывут и удаленные фотки?!
anton_nazarov: (Default)
10:55 22.08.2011
@naa: *geek *jabber *emacs *google
Гугл недавно поменял формат, в котором googletalk отдает список контактов. В результате jabber.el не мог его отобразить. Вот здесь описано решение этой проблемы: sourceforge.net

read more at Anton Nazarov (naa) - Juick

Profile

anton_nazarov: (Default)
anton_nazarov

September 2014

S M T W T F S
 123456
78910111213
14 151617181920
21222324252627
282930    

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 25th, 2017 06:47 pm
Powered by Dreamwidth Studios