АБТФ, поиск и вызов книг, работа с книжным аппаратом

2016-10-06

И снова про plain text. Про то, что переходить по ссылкам из текстовых заметок я уже писал. Несколько позже выяснилось, что ваш покорный слуга изобрел велосипед — у vim’а есть свой netrw с хоткеем gx. Он тоже позволяет ходить по ссылкам из текста, плюс понимает запуск файлов по ссылке (то есть если в файле есть что-то типа ~/gifs/my-pic.jpg — можно стать на эту ссылку, набрать gx — и запустится графический просмотрщик, который по дефолту обрабатывает эту ссылку).

Я часто конспектирую книги — как по работе, так и просто что-то читая. Моя книжная папка часто перетасовывается — появляются новые книги, старые уходят в Глубокие Архивы, разделы пересматриваются. Прямая ссылка на книгу очень быстро стареет — а работая с книгой хочется, чтобы она открывалась прямо из файла. Тут нужен другой механизм. Читать далее…


К годовщие Firefox или почему у мозиллы может получиться

2015-11-23

Если говорить о десктопе, то я почти всегда предпочитаю оффлайновое (десктопное) приложение онлайновому. То есть читать почту из thunderbird’а, а не из веб-интерфейса. Читаю книги с диска, а не из онлайновой библиотеки (только одно исключение — когда нужно оперативно найти цитату). Смотрю кино оффлайновым плейером, а не из тытруба. И так далее, и тому подобное.

Со смартфоном ситуация строго обратная. Какое-то время я ставил разные приложения типа прогноза погоды с wunderground’а, фейсбук мессенджера и т.д. и т.п. Потом открыл для себя такую чудесную штуку, как «страница -> добавить на домашний экран» в андроидном firefox. Эта штука добавляет на рабочий экран иконку, которая является закладкой на нужную страницу. То есть вместо огромного фейсбук мессенджера можно оставить иконку на страничку с сообщениями (а еще на страничку новостей, на страничку мероприятий) — и сэкономить этим пространство и время. Все равно без интернета мессенджер бесполезен, а с интернетом — с равным успехом можно сидеть и через браузер. Дальше последовали иконки-ярлыки на погодные сайты, на твиттер, на ЖЖ, на наиболее интересные для меня сайты и я проникся системой целиком.

Разница в функционале практически незаметна. При этом я имею **длинный список приложений** по цене одного firefox, который все равно стоит у меня по дефолту. Это не только экономия пространства — это позволяет:

— не качать каждый раз мегабайты апгрейдов и обновлений, когда выходит новая версия софта

— не думать про пароли и логины. firefox синхронизирует их с десктопной версией — и необходимость каждый раз при сбое вводить все заново здорово раздражает

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

— last but not least: полный контроль за поведением софта. если вам знакома ситуация, когда вы выходя в интернеты чтобы посмотреть прогноз погоды получаете сообщение из мессенджера (или почту от шефа, например) — и залипаете на час — вы меня понимаете. а у того же мессенджера есть мерзкая привычка включаться в онлайн каждый раз, когда этот онлайн появляется.

Словом ярлык на сайт, с моей скромной точки зрения, сильно лучше, чем андроидное приложение для оного сайта.

И оценивая это, я начинаю понимать, что FirefoxOS это не такая уж и плохая идея, как принято думать.


Проклятье калькулятора

2015-08-26

Когда ваш покорный слуга работал в что-то-там-внештрансе, там еще в советские времена была внедрена информационная система на основе Страшной и Ужасной Pick System. Я как-то пробовал погуглить наглоязычные форумы — и был весьма впечатлен тем какой ужас и почтение вызывает эта система у народа (и заодно является предметом холиваров — умерла система 1965 года выпуска или все еще живее всех живых). Внедрена она была на совесть — вся документация шла внутрь, ядро эту документацию пережевывало и вывдавало исходящие документы в виде распечаток (зарплатные ведомости в бухгалтерию, например) или уеб-сайтов и отчетов для руководства и планового отдела.

Система работала отлично — даже по современным меркам (аналогичная система с надстройкой SB+, если не ошибаюсь до сих пор стоит на терминалах укрзализныци и вы имеете счастье ее видеть, когда покупаете билеты), была внедрена по всем правилам и стандартам правильно. Если честно, я до сих пор удивляюсь, насколько хорошо тогда все было организовано (хотя, неудивительно — если внедрение шло еще при Империи Зла).

За одним исключением.

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

Каждый раз, когда я сталкиваюсь с электронными системами документооборота, мне вспоминается этот злополучный калькулятор. Sapienti sat.


Cleanup is automatic

2015-06-24

Еще немного о информационной перегрузке и о работе с информацией. Больше двух лет назад (в ноябре 2012-го) я натолкнулся на совет — делать большую часть временных вещей в папке /tmp. Эта папка доступна отовсюду, к ней удобно доступаться из командной строки и — самое главное — она очищается при перезагрузке машины. Я последовал совету и настроил /tmp, как дефолтную папку для загрузки файлов из firefox. Сначала меня одолевали сомнения — как это так, компьютер будет удалять мои загрузки без моего ведома, кто в конце концов тут хозяин — человек или машина? И так далее и тому подобное. После первых пары дней практики я изменил свое мнение.

Оказалось это — не только чертовски удобно, но и меняет подход к проблеме. До этого мне приходилось ежемесячно расчищать завалы в папке ~/Downloads — времязатратное, выматывающее занятие. Если кто-то расчищал подобный хлам — он меня поймет. Теперь же приходилось принимать решение сразу — если загруженный файл не скопировать куда-нибудь еще — при перезагрузке система его сотрет. Когда начинаешь копировать файл — решение о том, куда его определить приходит само и файл ложится не в папку «посмотреть_позже_когда_нибудь_в_долгом_ящике_с_котом_за_хвост», а строго на отведенное ему место. Кроме того, как оказалось, в 90% случаев файл загружается не для того, чтобы его куда-то сохранить, а для того, чтобы его просмотреть или прослушать. Если раньше при разборе таких файлов у меня срабатывал «Внутренний хомяк» («может стоит оставить его на всякий случай, а вдруг эта накладная еще пригодится… в будущем… моим потомкам»), то в этом случае проще предоставить файл самому себе и очищающей перезагрузке.

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

Max Tabs, который я себе поставил, работает аналогичным образом. Лимит на количество открытых вкладок заставляет сразу принимать решение — чтобы открыть одиннадцатую вкладку, какую-то из десяти нужно закрыть. Просто закрыть? Добавить в закладки? Сохранить для чтения? Словом тот же подход — «решай или закрывай». Дополнительным бонусом — быстрая работа браузера.
Вот еще бы было расширение, которое бы очищало «неподшитые закладки» скажем раз в месяц — было бы совсем здорово.


Max Tabs и концентрация

2015-06-23

Заметил, что очень много энергии в последнее время тратится на соцсети и политику. В порядке эксперимента поставил себе Max Tabs и оставил дефолтные десять вкладок (может быть потом сокращу или расширю — практика покажет). Так же хочу поэкспериментировать с Личблоком — он у меня стоит давно, но толком я его не настраивал.

Об этом всем я подумывал давно — сейчас после статьи Почему мы больше не можем читать? решил заняться информационной гигиеной вплотную. После этой же статьи выкачал себе «The Organized Mind» Дэниэла Левитина. Штудирую. Плюс к этому (как-то оно все сходится, когда начинаешь изучать вопрос) — хороший обзор Никласа Карра у Москалюка (хотя с «разоблачениями» Талеба и Гладуэлла я не согласен :) и — заметка на австралийском Лайфхакере зачем ограничивать количество вкладок.

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


АБТФ, Evernote или «Первая доза бесплатно»

2014-11-20

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

Сейчас потихоньку начали просачиваться новости о том, что систему переводят в небесплатный режим и вообще. Что хуже — btsync тоже начал двигаться в сторону коммэрции, хотя с ним есть надежда, что они будут монетизировать только хранилище, а саму утилиту так и продолжат распространять бесплатно. С другой стороны — уже есть Pulse ну и rsync с unison’ом еще никто не отменял.

Словом история повторяется снова и снова:


…подсадить как можно больше пользователей, стать монополистом на рынке и закрыть систему — все равно уже никто и никуда не побежит. Дальше начинается монетизация.

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


«Опыт показывает, что такие учреждения обречены. Совершенство убьет их. Им некуда пустить корни. Они не могут расти, так как уже выросли. Они и цвести не могут, а плодоносить — тем более. Когда мы встречаем такой случай — например, здание ООН, — мы умудренно и печально качаем головой, прикрываем простыней труп и неслышно выходим на воздух»

(c) Сирил Норкот Паркинсон

Пока лекарство одно — открытые форматы хранения и open source софт. Это требует некоторого ума и некоторого приложения сил (трудности обычно сильно преувеличены), зато потом окупается сторицей — можно быть уверенным, что после «часа $» мои данные не превратятся в труху, а софт — в тыкву.


Еще об идеальных рюкзаках

2013-12-13

Приятно, найти на лайфхакере статью How to Create a Modular «Go Bag» System That Fits Every Need — и узнать в ней идею, к которой пришел сам года два назад (см Идеальный рюкзак) — если коротко, то рюкзаки со встроенными отделениями неудобны и лучше иметь систему вкладывающихся модулей, которая позволяет комплектовать все по своему вкусу. В статье меня заинтересовала тема самоделок — и особенно мелочей, которые хранятся в файле в папке.


Фолдинг Большого Текстового Файла в Vim

2012-11-24

Чем больше эксплуатирую АБТФ и markdown-файлы, тем сильнее убеждаюсь, что главным для работы со структурой (которая маркируется шарпами в начале строки) является простая генерация содержания. У меня есть удобный инструмент в виде Малой Карты, а сегодня обнаружилось тоже удобное и, на удивление, быстрое решение в виде выражения для фолдинга по заголовкам маркдауна. Я его слегка допилил до своего случая — вместо автозагрузки в примере сделал вызов по нажатию ,mf

" быстрый фолдинг для маркдауна
" http://stackoverflow.com/questions/3828606/vim-markdown-folding

function! MarkdownLevel() 
    let h = matchstr(getline(v:lnum), '^#\+') 
    if empty(h) 
        return "=" 
    else 
        return ">" . len(h) 
    endif 
endfunction

function! MarkFold()
    setlocal foldexpr=MarkdownLevel()  
    setlocal foldmethod=expr  
endfunction

nnoremap ,mf :call MarkFold()<CR>

На моем главном файле в почти 7млн символов длиной с полутора тысячью заголовков работает шустро — благодаря тому, что используется fold-expr вместо очень медленного фолдинга по регулярным выражениям. Очень рекомендую.


Курощение прав на запись внешнего диска WD My Passport

2012-10-20

Какое-то время назад разжился внешним винтом WD MyPassport на 1Тб — в основном для бэкапа документов, скриптов и фотографий. Все хорошо, но под GNU Linux Debian он упорно монтировался с правами рута на чтение (при попытке работать с диском из-под обычного пользователя — жаловался, что у него нет прав и все такое прочее).

Первый поиск дал совершенно странные результаты — куча разных решений от манипуляций с /etc/fstab до изменения политик udev. Udev для меня темный лес, в fstab лезть не хотелось, поэтому просто отложил винт до лучших времен — точнее до желания/времени.

Сегодня забрался на CrunchBang’овский форум и за несколько кликов нашел решение, которое у меня сработало (см по ссылке)

Ларчик открывался просто — раз дело в правах, то нужно поменять владельца точки монтирования с рута на себя любимого (в смысле на тот аккаунт под которым вы обычно работаете в системе). В современных linux-системах, внешние подключения монтируются в папку /media, поэтому смотрим куда именно монтируется винт — в моем случае это /media/wd_01, а пользователь — vik — то есть я. Дальше все просто. Подключаем винт, ждем когда он смонтируется системой, потом:

 Читать далее...

Гугл, который всегда с тобой

2012-09-14


«Мозг, хорошо устроенный, стоит больше, чем мозг, хорошо наполненный»

(с) Мишель де Монтень

Статья о том, почему в Линуксе не нужны словари была для меня одной из самых полезных. Заинтересовавшись, скомплектовал небольшую подборку из текстовых справочников. Через некоторое время выяснилось, что набрать что-то типа grep 'ШУШПАН' dal.txt намного быстрее, чем лезть за результатами в интернет (да и попробуй найди все что можно получить по набору, такого, например, «заклинания» grep ' [^ ]*опа ' dal.txt -o | sort | uniq). Еще интереснее оказалось для меня то, что информации которая есть в (списком): энциклопедическом словаре, словаре Даля, толковых словарях Ушакова и Ожегова, Библии, англо-русском словаре Мюллера, орфографическом словаре и еще нескольких справочниках, хватает с головой — во всяком случае для начального поиска. При этом за счет того, что поиск идет по «чистой информации», за счет того, что искать можно в консоли без необходимости запускать браузер — все летает. При этом все работает даже в отсутствие интернета.
Читать далее…


Сортировка файлов для китайского плейера

2012-07-20

Для полевых условий я пользуюсь дешевыми китайскими плейерами — в наглоязычном интернете такие плейера иронично называют чайподами — chinese ipod — chipod. Для полевых условий чайподы подходят идеально: дешевы, не жалко потерять-разбить-утопить и к тому же всегда можно найти модель работающую от батареек (незыблемое правило — все что в городе должно заряжаться от usb, все что в поле — работать на батарейках). Один из основных недостатков таких моделей (особенно тех, у которых нет дисплея) это то, что они играют музыку так как Бог на душу положит — точнее в том порядке, в котором файлы писались на карточку. А это далеко не всегда, точнее почти всегда не совпадает с алфавитным порядком.

В принципе из командной строки можно писать файлы и в алфавитном порядке. Это можно сделать, например, так:
Читать далее…


киндловарство

2012-02-11

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

Пока я пользовался палмом — я привык к тому, что у него есть WeaselReader, к которому идет коммандлайновая утилита makeztxt — которой достаточно прописать регэксп для поиска содержания — и она сама расставит заголовки.

Читать далее…


Простые вещи: идеальный рюкзак.

2011-11-28

Современные городские рюкзаки большей частью шьются со множеством секций, карманов, кармашков и карманчиков — под ручки, блокноты и прочие мелочи, отдельный «наспинный» карман для бумаг, защищенная емкость под ноут и так далее и тому подобное. Такой рюкзак больше напоминает разгрузочный жилет «коммандос», чем рюкзак.

Чем больше пользуешься такими рюкзаками — тем сильнее ощущение их нерациональности. Сегодня ручки и мелочи хорошо разложились по кармашкам — плейер лег туда, ручки — сюда, часть бумаг — туда, блокнот — сюда и так далее. Завтра я решил отправиться налегке и взял более легкую сумку — в итоге каждую ручку пришлось вытаскивать из ее кармашка и перекладывать в другой кармашек. Кроме того, нужно некоторое время, чтобы в такой многокарманной системе каждая вещь нашла свое место, а когда ты к этому привыкаешь — рюкзак уже успевает износится и его нужно менять. А у другого рюкзака схема почти такая же, но за счет этого «почти» снова нужно искать порядок раскладки. Еще забавнее, когда число кармашков не совпадает с нужным комплектом вещей — флешки, кабели, «селедка» под наушники, нож, расческа — не везде для этого предусмотрено отдельное «парковочное» место.
Читать далее…


Разбирая заметки

2011-11-23

2011-03-09 10:31

(... лакуна ...) 

…есть ощущение, что высказывая свои мысли так или иначе — надиктовывая их в диктофон, записывая на бумаге, набивая в файл или в палм, обсуждая со знакомыми, человек получает обратную связь от себя самого. Может быть и «эффект исповеди» хотя бы частично опирается на подобный принцип.

Что мешает заниматься этим регулярно? У меня есть два варианта ответа. Первый: потребление информации дается значительно проще ее обработки, второй: мы приучены к неправильной системе записей… третий: мне жалко того, что мои неструктурированные мысли исчезают в ворохе данных. Касательно третьего могу сразу успокоить — мои мысли не нуждаются в изначальной классификации. Во-первых, есть греп, во-вторых есть «позднее связывание» — то есть только то, что мне понадобится еще раз будет найдено повторон и затэжжено. Остальное — пусть лежит в долговременной памяти. Второй — это действительно проблема. Не столько заниматься конспектированием книг, сколько записью своих мыслей по ним.

Например, мне жутко интересно, когда возникла Польша. Кто ее основатель и как получилась сначала Речь Посполита, а потом она развалилась на Польшу, Литву и Украину. Я только помню из Кагарлицкого, что Польша конкурировала с Россией сначала на торговом, потом на зерновом рынках, потом не выдержала темпа модернизации (в то время как в России появился Петр I), отстала в развитии и в итоге была «съедена».

Сумбурно про Польшу


rss и вредлента — откровения К.О.

2011-07-27

Живой журнал все еще лежит (будем надеяться временно) люди начали расползаться по разным платформам и запасным аэродромам. Ситуация когда у меня столько-то френдов используют google buzz, столько-то — diary.ru, столько-то — dreamwidth.org (или lj.rossia.org), столько-то — wordpress, столько-то — blogspot.com, а еще кто-то пишет в твиттер и прочие тамблеры становится стандартной. У каждого из нас разные запросы и при наличии выбора люди распределяются по тем платформам, которые им по душе.

Что можно сделать, чтобы читать их всех скопом в одном потоке? Решение напрашивается само — RSS.

Читать далее…


Малая Карта для АБТФ — теперь и в bash

2011-05-27

Малая Карта. Позволяет открывать в боковом меню «карту»-содержание большого текстового файла (заголовками считаются все строки, которые начинаются с #). Карта открывается по ,mm. По <Enter> на любом из заголовков, файл в главном окне прокручивается на нужный заголовок. По <Esc> меню с картой закрывается.

Использую этот скрипт примерно полгода уже год — и не могу нарадоваться. Он очень упрощает работу с АБТФ и используется намного шире, чем я предполагал в самом начале. Практически любой текст, который размечен через # можно открыть в виде содержания и быстро найти нужный раздел.

Если поставить себе расширение Vim Outliner, то содержание будет выводиться компактнее — в виде аутлайна, который «схлопывает» разделы.
Читать далее…


Жизнь в информационном океане

2011-04-14

Я уже писал о Барри Шварце и о том, что изобилие выборов как это ни странно может приводить к ситуации разочарования. Во всяком случае это было верно для меня до некоторой точки — я очень хорошо помню тот момент, когда у меня начал появляться широкополосный интернет с необъятными файлохранилищами. Желание «слить это все к себе на винт» проходит очень быстро. После чего ты оказываешься наедине перед несколькими тысячами (если не десятками или сотнями тысяч) вариантов выбора, которые возникают при ответе на вопрос «а что мне послушать (посмотреть, почитать) сегодня вечером?».

В доинтернтетные времена вопрос решался очень просто — смотрелось-слушалось-читалось все, что приносили. Это работало одновременно как «социальный фильтр» и как источник общения — я мог ходить к одному приятелю за музыкой, к другому — за фильмами и к третьему за книгами. Сейчас все изменилось. Мне очень хорошо запомнился один дождливый день, когда я сидел дома перед ооочень длинным списком анимэ, рядом с которым был открыт (тогда еще) world-art и не мог решить чего именно мне хочется смотреть.

Если не паниковать и немного пожить с этим чувством, то постепенно начинают вырабатываться стратегии, которые позволяют не утонуть в океане информации, а при необходимости — поймать попутный ветер. У меня пока не сложилось никаких общих принципов — поэтому просто перечислю то, что придет на ум. Точнее, я хотел это сделать. Когда я начал перечислять свои инструменты поиска нового в сети — я понял, что 99% моих «новых стратегий» — это хорошо забытое старое. У меня они свелись к четырем категориям — которые я условно назвал «социальный фильтр», «копать вглубь», «довериться случаю», «искать алмазы на обочине» и «думать руками».
Читать далее…


АБТФ: как работать с тегами

2011-02-21

Я наконец научился эффективно работать с тегами :) Для этого можно и нужно использовать grep, плюс пару трюков из документации.

Ключевой момент — правильная расстановка тегов, а именно:

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

Как искать по тегам? Через грепы.

Первоначальный поиск можно организовать так:

:tabnew

Это откроет новую вкладку.

Дальше:

:r! grep -nH "=реца" main.txt

Ключи:

-n - нумеровать строки
-H - выводить имя файла

Получается примерно такое:

main.txt:62944:Мартин Ли "Странная сага телохранителя Гитлера" =книги =реца =мысли =ТретийРейх =с4 =СВК =Драконы =ГСП =ТротиловаяВойна =ПланЯшма =ЛепесткиХризантемы
main.txt:63963:Уэстлейк "Полицейские И Воры" =книги =реца
main.txt:84493:Хоблит "Перелом" =фильм =реца
main.txt:85088:Стон Черной Змеи =фильм =блюз =реца
main.txt:85148:Широкорад = "Россия и Китай: Конфликты и сотрудничество" (серия Военные Тайны XX века) =книги =авторы =реца
main.txt:86783:Степан Бандера 1909-1959 =линк =Украина =история =фильм =реца =разгрести =Бандера =2048
main.txt:91279:Шекли "Дипломатический иммунитет" =книги =авторы =Шекли =реца
main.txt:91423:Андреев "Худловары" =книги =авторы =реца
main.txt:105676:Ложная слепота Уоттса =реца =мысли =контр =конспект =пост
main.txt:107481:Ложная слепота Уоттса = 2 =реца =мысли =контр =конспект =пост =холд
main.txt:109647:Смотрю ГИГ ака GitS SAC второй сезон. Вторая серия (мечтатель) - это четкая реминисценция на Таксиста =реца

Это уже готовые ссылки на статьи в блоге. Достаточно стать на «main.txt» нужной строки и набрать gF — и vim откроет файл в нужном месте. Ctrl+O вернет вас назад по истории переходов, Ctrl+I — вперед. То есть имея такую поисковую выборку можно нырять туда-обратно в основной файл или даже в комплект файлов.

Можно добавить в один файл несколько результатов грепа сразу — просто набрать подряд несколько грепов по разным тегам.

например:

Последовательно набрав:

r!grep =реца main.txt =nH
r!grep =рецензия main.txt =nH
r!grep =конспект main.txt =nH

Получим:

main.txt:62874:Камедиклаб Просто Радио =реца
main.txt:62944:Мартин Ли "Странная сага телохранителя Гитлера" =книги =реца =мысли =ТретийРейх =с4 =СВК =Драконы =ГСП =ТротиловаяВойна =ПланЯшма =ЛепесткиХризантемы
main.txt:63963:Уэстлейк "Полицейские И Воры" =книги =реца
main.txt:84493:Хоблит "Перелом" =фильм =реца
main.txt:85088:Стон Черной Змеи =фильм =блюз =реца
main.txt:85148:Широкорад - "Россия и Китай: Конфликты и сотрудничество" (серия Военные Тайны XX века) =книги =авторы =реца
main.txt:86783:Степан Бандера 1909-1959 =линк =Украина =история =фильм =реца =разгрести =Бандера =2048
main.txt:91279:Шекли "Дипломатический иммунитет" =книги =авторы =Шекли =реца
main.txt:91423:Андреев "Худловары" =книги =авторы =реца
main.txt:105676:Ложная слепота Уоттса =реца =мысли =контр =конспект =пост
main.txt:107481:Ложная слепота Уоттса = 2 =реца =мысли =контр =конспект =пост =холд
main.txt:109647:Смотрю ГИГ ака GitS SAC второй сезон. Вторая серия (мечтатель) - это четкая реминисценция на Таксиста =реца
main.txt:91444:Андреев - не-гуманитарий. Все не-гуманитарии заканчивают тем, что упираются в философскую проблему (чему равен синус-от-сердца?) и на этом для них все заканчивается. =книги =авторы =рецензия
main.txt:103027:Детектив Ди Жэньцзе =фильм =рецензия =пост
main.txt:109500:Кургинян "Суть времени" =конспект =рецензия
main.txt:83279:=конспект =мысли =контрманипуляция Турбо=Суслик
main.txt:83415:=конспект =мысли =контрманипуляция Турбо=Суслик продолжение
main.txt:84950:Осваиваюсь в философии. Сегодня благодаря дтв-атласу и Балашову начал укладывать в голове общую схему развития. Получается неплохо. Дальше идет большая-большая схема. =философия =мысли =конспект =заметки
main.txt:92683:Сейчас читаю "Я прав - вы заблуждаетесь" Де Боно. В один момент начало казаться, что у человека просто высосанные из пальца концепции - то есть примеры в его книге не блещут разнообразием (кстати, у Франкла я замечал подобное), но когда вчитался внимательнее - понял что человек похоже один из немногих, кто правильно разобрался в том, как работает наше мышление. =ДеБоно =конспект =книга =автор =мысли
main.txt:105676:Ложная слепота Уоттса =реца =мысли =контр =конспект =пост
main.txt:105919:Периферийная Империя Кагарлицкий и Кондратьев =конспект =сфи =идеи =с4 =смвк =хронология
main.txt:106058:Барри Шварц =конспект =палм =мысли =пост
main.txt:106290:Начал читать Айкидо =оуе =заметки =конспект
main.txt:107481:Ложная слепота Уоттса = 2 =реца =мысли =контр =конспект =пост =холд
main.txt:109500:Кургинян "Суть времени" =конспект =рецензия
main.txt:109520:Кагарлицкий Периферийная Империя скелет конспекта =конспект

Результаты поиска можно фильровать — выделить текст и пропустить его фильтром через тот же греп, при этом совсем не обязательно задавать тег — можно задать ключевое слово:

ggVG!

и в поисковой строке набрать (:'<,'>! Vim подставит сам):

:'<,'>!grep "фильм"

в итоге останется:

main.txt:84493:Хоблит "Перелом" =фильм =реца
main.txt:85088:Стон Черной Змеи =фильм =блюз =реца
main.txt:86783:Степан Бандера 1909=1959 =линк =Украина =история =фильм =реца =разгрести =Бандера =2048
main.txt:103027:Детектив Ди Жэньцзе =фильм =рецензия =пост

(номера могут меняться — поскольку я пишу эту инструкцию в том же файле, который грепаю :)

Пример номер два. Здесь не используются теги, зато показано, как работает «прямой поиск» — то что я называю «сам себе гугл» :)

Когда я беседовал с уважаемым ОллиКатом мне понадобилось найти ссылки на репорты по DVCS разработчиков Питона и Гугла. Поиск по mercurial не выдал ничего внятного:

:tabnew
:r!grep -nHI mercurial main.txt

Получил следующее:

main.txt:20844: evince djview4 evince markdown mercurial makeztxt
main.txt:20987:mercurial
main.txt:27044:Конспект и освоение mercurial.
main.txt:27046:http://blgo.ru/blog/category/mercurial/
main.txt:27050:http://www.selenic.com/mercurial/hg.1.html
main.txt:27053:mercurial (hg) - unixforum.org
main.txt:27055:mercurial - Поиск в Google
main.txt:27058:http://mercurial.selenic.com/wiki/TipsAndTricks
main.txt:27066:http://hgbook.red-bean.com/read/a-tour-of-mercurial-the-basics.html
main.txt:27068:http://hgbook.red-bean.com/read/a-tour-of-mercurial-merging-work.html
main.txt:27072:http://hgbook.red-bean.com/read/mercurial-in-daily-use.html
...
main.txt:107671:http://antonym.org/2010/04/25-tips-for-intermediate-mercurial-users.html
main.txt:107826:http://mercurial.selenic.com/wiki/MergingWithVim
main.txt:107842:http://stackoverflow.com/questions/1869040/what-are-the-best-and-must-have-hg-mercurial-extensions
main.txt:107843:What are the best and must-have hg / mercurial extensions? - Stack Overflow
main.txt:109737:http://blgo.ru/blog/tag/mercurial/

(всего получилось 57 результатов)

Сортировка по фильтрам grep python и grep google ничего не дала.

Я зашел с другого конца, вспомнив что первый отчет был с python.org, второй с codes.google.

Очистил окно:

ggdG
:r!grep -nHI code.google main.txt

В ответ получил такую простынь:

main.txt:17060:http://code.google.com/p/amv-codec-tools/wiki/HowToConvertToAMV
main.txt:19745: # Generated by tintwizard (http://code.google.com/p/tintwizard/)
main.txt:19746: # For information on manually configuring tint2 see http://code.google.com/p/tint2/wiki/Configure
main.txt:86060:http://code.google.com/p/vimwiki/
main.txt:88384:http://code.google.com/p/key-mon/
main.txt:95839:http://code.google.com/p/amv-codec-tools/wiki/HowToConvertToAMV
main.txt:102627:http://code.google.com/p/vimming/source/checkout
main.txt:102840:http://code.google.com/p/vimming/source/checkout
main.txt:109744:http://code.google.com/p/support/wiki/DVCSAnalysis

Ага. Вот последняя строка и есть нужная мне ссылка. Встав на main.txt и набрав gF (обратите внимание — F, а не fgf просто переходит к файлу, gF переходит к файлу и переставляет курсор на нужную строку — см :h gF. Отчет по Питону нашелся рядом, но для наглядности я могу показать и его.

ggdG
:r!grep -nH python.org main.txt

Получаем:

main.txt:4843:http://wiki.python.org/moin/RssLibraries
main.txt:69207:http://www.python.org/doc/faq/windows/
main.txt:79215:http://docs.python.org/library/md5.html
main.txt:88242:http://docs.python.org/library/optparse.html
main.txt:88563:http://mail.python.org/pipermail/tutor/2003-June/023434.html
main.txt:88600:http://mail.python.org/pipermail/tutor/2004-November/033333.html
main.txt:88603:http://mail.python.org/pipermail/tutor/2002-April/013989.html
main.txt:88606:http://mail.python.org/pipermail/tutor/2002-November/018528.html
main.txt:92596:http://www.python.org/dev/peps/pep-0374/#svn
main.txt:109741:http://www.python.org/dev/peps/pep-0374/#patch-review

Последняя ссылка и есть искомая (если заметите — на самом деле у меня их две).

Можно инвертировать поиск (-v ключ для grep’а), можно делать многотеговые поиски по нескольким файлам или сразу по всему блогу. В общем — есть где развернуться. Наверное, позже я просто сделаю бинды на хоткеи, но пока такой системы хватает с головой. Можно еще написать раскраску для такого файла (чтобы имя-файла, номер строки и возможные теги подсвечивались разными цветами, можно написать правильный хоткей для перехода (чтобы ходить по gf, а не по gF).

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

Еще бы сделать автоматическую простановку тегов (в виде вываливающейся менюшки по хоткею) и получится весьма и весьма мощная система работы с заметками. Гугл, который всегда с тобой :)

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

Если копнуть глубже, оказывается, что quickfix window использует ту же схему. Только оно как по мне менее удобно — как минимум тем, что на него сложно наложить дополнительные фильтры, как в примерах выше. Собственно, первоначальную идею мне именно quickfix и подсказал — я забил в поиск по :vimgrep тег и получил список результатов. Поскольку на тот момент времени теги у меня были отдельно — это был просто список типа:

main.txt:89560:=бег =МК
main.txt:89595:=бег =МК
main.txt:89743:=бег =МК
main.txt:89763:=бег =МК
main.txt:89855:=бег =СМК
main.txt:90025:=бег =МК
main.txt:90059:=бег =МК
main.txt:90498:=бег =СК
main.txt:90525:=бег =МК
main.txt:90630:=бег =СК
main.txt:90997:=бег =СК
main.txt:91137:=бег =СК
main.txt:91268:=бег =СМК

Отсюда и напрашивался вывод: чтобы работа с тегами была эффективной, теги должны стоять в одной строке с каким-то ключевым пояснением — заголовком, ключевым абзацем или просто на первой строке, чтобы из результата было понятно куда именно мне прыгать — см правило с которого я начал этот пост.


Subversion vs Mercurial

2011-02-16

Кажется, я немного поспешил с переходом на mercurial. У меня существует необходимость держать под контролем в том числе и бинарники — самых разнообразных форматов.

Как выяснилось, лучше всего с этим справляется SVN, так что эту систему еще рано списывать на свалку истории. Поскольку я уже перевел большинство своих текстовых файлов в mercurial, то теперь буду держать две системы в работе — mercurial для контроля текстовых файлов и svn — для контроля бинарников и файлов, завязанных на них.


Развертывание openbox

2011-01-16

Добавил в руководства шпаргалку по развертыванию своей системы. В ней описывается установка и настройка openbox под ubuntu. Шпаргалка неполная, вывешена скорее для ознакомления, чем как инструкция к действию.


%d такие блоггеры, как: