<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Bappoy&#039;s blog &#187; bookmarklets</title>
	<atom:link href="http://bappoy.pp.ru/tag/bookmarklets/feed" rel="self" type="application/rss+xml" />
	<link>http://bappoy.pp.ru</link>
	<description>Линуксоид на велосипеде с моторчиком</description>
	<lastBuildDate>Mon, 06 Sep 2010 14:00:02 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Firefox: генератор букмарклетов, которые принимают несколько аргументов</title>
		<link>http://bappoy.pp.ru/2007/10/10/firefox-multiple-keywords-bookmarklet-generator.html</link>
		<comments>http://bappoy.pp.ru/2007/10/10/firefox-multiple-keywords-bookmarklet-generator.html#comments</comments>
		<pubDate>Wed, 10 Oct 2007 15:10:33 +0000</pubDate>
		<dc:creator>bappoy</dc:creator>
				<category><![CDATA[firefox]]></category>
		<category><![CDATA[Ссылки]]></category>
		<category><![CDATA[bookmarklets]]></category>
		<category><![CDATA[советы]]></category>

		<guid isPermaLink="false">http://goodvin.pp.ru/?p=202</guid>
		<description><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;"><a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fbappoy.pp.ru%2F2007%2F10%2F10%2Ffirefox-multiple-keywords-bookmarklet-generator.html"><img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fbappoy.pp.ru%2F2007%2F10%2F10%2Ffirefox-multiple-keywords-bookmarklet-generator.html" height="61" width="51" /></a></div><p>В продолжение темы firefox&#8217;овых штучек (<a href="http://goodvin.pp.ru/?p=200" title="фокусы с Firefox: замена поисковой системы, расширение функциональности ключевых слов">1</a>, <a href="http://goodvin.pp.ru/?p=201" title="Фокусы с Firefox, часть 2: автоматизация жж с помощью ключевых слов">2</a>): <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=124237#c19">букмарклет</a>, создающий другие букмарклеты, на которые можно назначить ключевое слово и вызывать их с несколькими аргументами (а не только с одним, как обычно). На странице <a href="http://kb.mozillazine.org/Multiple_parameter_keyword_searches">Multiple parameter keyword searches</a>, откуда я попал на вышеуказанную страницу, приведены два примера использования такого букмарклета: для сервиса <a href="http://googlefight.com">Googlefight</a> (сравнение популярности двух слов по выдаче google) и сравнение графиков котировок нескольких акций.</p>
]]></description>
		<wfw:commentRss>http://bappoy.pp.ru/2007/10/10/firefox-multiple-keywords-bookmarklet-generator.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Фокусы с Firefox, часть 2: автоматизация жж с помощью ключевых слов</title>
		<link>http://bappoy.pp.ru/2007/10/09/firefox-lj-automatization-with-keywords.html</link>
		<comments>http://bappoy.pp.ru/2007/10/09/firefox-lj-automatization-with-keywords.html#comments</comments>
		<pubDate>Tue, 09 Oct 2007 17:09:35 +0000</pubDate>
		<dc:creator>bappoy</dc:creator>
				<category><![CDATA[firefox]]></category>
		<category><![CDATA[lifehack]]></category>
		<category><![CDATA[bookmarklets]]></category>
		<category><![CDATA[советы]]></category>

		<guid isPermaLink="false">http://goodvin.pp.ru/?p=201</guid>
		<description><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;"><a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fbappoy.pp.ru%2F2007%2F10%2F09%2Ffirefox-lj-automatization-with-keywords.html"><img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fbappoy.pp.ru%2F2007%2F10%2F09%2Ffirefox-lj-automatization-with-keywords.html" height="61" width="51" /></a></div><p>В <a href="http://goodvin.pp.ru/?p=200">предыдущей заметке</a> было рассказано, как можно использовать ключевые слова в Firefox более оптимально. Сейчас постараюсь продемонстрировать практическое применение.</p>
<p>В своё время <a href='http://dolboeb.livejournal.com/profile'><img src='http://stat.livejournal.com/img/userinfo.gif' alt='[info]' width='17' height='17' style='vertical-align: bottom; border: 0; padding-right: 1px;' /></a><a href='http://dolboeb.livejournal.com/'><b>dolboeb</b></a> <a href="http://dolboeb.livejournal.com/920671.html">познакомил</a> массы с возможностью быстрого перехода на некоторые полезные сайты (к которым жж тоже относится, хе-хе) с помощью задания ключевых слов и параметров к ним. Немного поколдовав над javascript&#8217;ом и покурив соответствующие мануалы, я соорудил вот такой букмарклет:<br />
<!--more--></p>
<div align="center" style="font-size:150%;font-variant:sans-serif;font-weight:bold;"><a href="javascript:me=&quot;goodvin&quot;;t=&#39;%s&#39;;/* Idea &amp; realisation (c) goodvin, see http://goodvin.pp.ru/?p=201 for details */ arr=t.split(/%20+/); url=&quot;http://www.livejournal.com&quot;; if(arr.length==2) { user=arr[0]; switch(arr[1]){ case &quot;ff&quot;: url=&quot;http://users.livejournal.com/&quot;+user+&quot;/friends&quot;;break; case &quot;ii&quot;: url=&quot;http://users.livejournal.com/&quot;+user+&quot;/profile&quot;;break; case &quot;cc&quot;: url=&quot;http://users.livejournal.com/&quot;+user+&quot;/calendar&quot;;break; default: url=&quot;http://users.livejournal.com/&quot;+user+&quot;/&quot;; } } else if(arr.length==1){ switch(arr[0]){ case &quot;ff&quot;: url=&quot;http://users.livejournal.com/&quot;+me+&quot;/friends&quot;;break; case &quot;new&quot;: url=&quot;http://www.livejournal.com/update.bml&quot;;break; case &quot;cc&quot;: url=&quot;http://users.livejournal.com/&quot;+me+&quot;/calendar&quot;;break; case &quot;last&quot;: url=&quot;http://www.livejournal.com/editjournal.bml&quot;;break; case &quot;login&quot;: url=&quot;http://www.livejournal.com/login.bml&quot;;break; case String.fromCharCode(37,115): url=&quot;http://www.livejournal.com&quot;;break; default: url=&quot;http://users.livejournal.com/&quot;+arr[0]; } } location.href=url;">жежешечка</a></div>
<p>Чтобы попробовать букмарклет в деле, необходимо взяться за ссылку &laquo;жежешечка&raquo; мышкой, перетащить на панель закладок и отпустить. Затем нажать на появившуюся закладку правой клавишей мыши, открыть свойства и, во-первых, изменить ключевое слово на lj или ;; (точка с запятой два раза, &laquo;жж&raquo; в латинской раскладке); во-вторых, заменить никнейм вашего покорного слуги (<a href='http://goodvin.livejournal.com/profile'><img src='http://stat.livejournal.com/img/userinfo.gif' alt='[info]' width='17' height='17' style='vertical-align: bottom; border: 0; padding-right: 1px;' /></a><a href='http://goodvin.livejournal.com/119223.html'><b>goodvin</b></a>)  на что-нибудь более подходящее, например, на свой юзернейм или название модерируемого community. После этого сохранить закладку и при вводе в строку адреса нижеперечисленных команд все будет работать :)</p>
<p>Условимся, что вы назначили для закладки ключевое слово &laquo;lj&raquo;:</p>
<table border="0" cellpadding="1" cellspacing="1">
<tr valign="top">
<td><code>lj&nbsp;username</code></td>
<td rowspan=9 width="5%">&nbsp;</td>
<td>жж <a href='http://username.livejournal.com/profile'><img src='http://stat.livejournal.com/img/userinfo.gif' alt='[info]' width='17' height='17' style='vertical-align: bottom; border: 0; padding-right: 1px;' /></a><a href='http://username.livejournal.com/'><b>username</b></a></td>
</tr>
<tr valign="top">
<td><code>lj&nbsp;new</code></td>
<td>новый пост</td>
</tr>
<tr valign="top">
<td><code>lj&nbsp;ff</code></td>
<td>Ваша френдлента</td>
</tr>
<tr valign="top">
<td><code>lj&nbsp;cc</code></td>
<td>Ваш календарь</td>
</tr>
<tr valign="top">
<td><code>lj&nbsp;last</code></td>
<td><a href="http://www.livejournal.com/editjournal.bml">страница редактирования жж</a></td>
</tr>
<tr valign="top">
<td><code>lj&nbsp;login</code></td>
<td><a href="http://www.livejournal.com/login.bml">страница входа в жж</a>, на случай, если выкинуло (IP-адрес поменялся или пустили брата за компьютер)</td>
</tr>
<tr valign="top">
<td colspan=2>&nbsp;</td>
</tr>
<tr valign="top">
<td><code>lj&nbsp;username&nbsp;ff</code></td>
<td>френдлента пользователя <a href='http://username.livejournal.com/profile'><img src='http://stat.livejournal.com/img/userinfo.gif' alt='[info]' width='17' height='17' style='vertical-align: bottom; border: 0; padding-right: 1px;' /></a><a href='http://username.livejournal.com/'><b>username</b></a></td>
</tr>
<tr valign="top">
<td><code>lj&nbsp;username&nbsp;cc</code></td>
<td>календарь пользователя <a href='http://username.livejournal.com/profile'><img src='http://stat.livejournal.com/img/userinfo.gif' alt='[info]' width='17' height='17' style='vertical-align: bottom; border: 0; padding-right: 1px;' /></a><a href='http://username.livejournal.com/'><b>username</b></a></td>
</tr>
<tr valign="top">
<td><code>lj&nbsp;username&nbsp;ii</code></td>
<td>профиль пользователя <a href='http://username.livejournal.com/profile'><img src='http://stat.livejournal.com/img/userinfo.gif' alt='[info]' width='17' height='17' style='vertical-align: bottom; border: 0; padding-right: 1px;' /></a><a href='http://username.livejournal.com/'><b>username</b></a></td>
</tr>
</table>
<p>Данная фича проверялась в Firefox 2.0.0.7, должна работать в более ранних версиях. По слухам, Опера тоже так умеет. Как это работает, описывается в <a ref="http://goodvin.pp.ru/?p=200">предыдущей заметке</a>. Если Вы хотите что-то изменить (например, чтобы по команде <code>lj</code> открывалась по умолчанию не главная страница ЖЖ, а, например, френдлента &#8212; меняйте :) Разрешается распространение данного букмарклета без каких-либо ограничений; <a href="http://goodvin.pp.ru/">ссылку</a> на автора сохранять желательно, но не обязательно.</p>
]]></description>
		<wfw:commentRss>http://bappoy.pp.ru/2007/10/09/firefox-lj-automatization-with-keywords.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>фокусы с Firefox: замена поисковой системы, расширение функциональности ключевых слов</title>
		<link>http://bappoy.pp.ru/2007/10/08/firefox-replacing-search-engine-and-advanced-keywords.html</link>
		<comments>http://bappoy.pp.ru/2007/10/08/firefox-replacing-search-engine-and-advanced-keywords.html#comments</comments>
		<pubDate>Mon, 08 Oct 2007 13:33:15 +0000</pubDate>
		<dc:creator>bappoy</dc:creator>
				<category><![CDATA[firefox]]></category>
		<category><![CDATA[lifehack]]></category>
		<category><![CDATA[work]]></category>
		<category><![CDATA[bookmarklets]]></category>
		<category><![CDATA[советы]]></category>

		<guid isPermaLink="false">http://goodvin.pp.ru/?p=200</guid>
		<description><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;"><a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fbappoy.pp.ru%2F2007%2F10%2F08%2Ffirefox-replacing-search-engine-and-advanced-keywords.html"><img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fbappoy.pp.ru%2F2007%2F10%2F08%2Ffirefox-replacing-search-engine-and-advanced-keywords.html" height="61" width="51" /></a></div><p>на Хабрахабре <a href="http://www.habrahabr.ru/blog/browsers/26207.html">опубликовали</a> статью с многочисленными примерами про то, какие в FireFox&#8217;е и Опере есть прекрасные ключевые слова (рекомендуется ознакомиться со статьей перед тем, как читать дальше). Статья действительно очень и очень хорошая, поскольку наверняка сподвигнет не одну сотню читателей ХХ на дальнейшие исследования своих браузеров. Но там не упоминаются две немаловажные особенности, о которых и попробую сейчас рассказать.</p>
<p><strong>Фокус первый</strong>. Лично мне надоел Яндекс как поисковая система &#8212; в большинстве случаев результаты поиска замусорены оптимизаторским спамом и дорвеями. Зато очень нравится <a href="http://ajax.nigma.ru">Нигма</a>, тем более, что от них мне скоро придёт бесплатная книжка :) Но пальцы всё помнят, и, получив от мозга команду &laquo;набрать адрес поисковика&raquo;, пишут &laquo;ya.ru&raquo; и жмут enter. Чтобы написать &laquo;nigma.ru&raquo;, надо приложить дополнительное мозговое усилие и послать пальцам команду &laquo;набрать nigma.ru&raquo;.</p>
<p>Достаточно создать две закладки для адреса <a href="http://ajax.nigma.ru">http://ajax.nigma.ru</a>, назначить им ключевые слова &laquo;ya.ru&raquo; и &laquo;www.ya.ru&raquo; и вуаля! &#8212; яндекс открывается гораздо реже.</p>
<p>Используя тот же принцип, можно пошутить над соседом по работе &#8212; создать глубоко в меню закладку на какой-нибудь gay.ru и назначить этой закладке адрес его любимого сайта (auto.ru там или еще что-нибудь). Товарищ будет долго недоумевать :)</p>
<p><strong>Фокус второй</strong>.<!--more--> Наши программисты написали систему работы с запросами, называется sustainer, работает через веб-интерфейс. Каждому CR (Change Request, запрос на изменение функциональности) назначается свой персональный номер и к нему можно обратиться по адресу http://sustainer/reqXXX. Можно просматривать списки запросов, отсортированные и отфильтрованные по разным параметрам &#8212; по ответственному за исполнение, приоритету, программному продукту, к которому может относиться запрос, и т.д. Думаю, подобная система используется во многих более-менее серьезных программистских фирмах. Это была преамбула :)</p>
<p>Теперь амбула. Для того, чтобы открыть реквест с известным номером, рядовой сотрудник, вооруженный до зубов Internet Explorer&#8217;ом, запустит этот недобраузер, ткнет на закладку &laquo;sustainer&raquo; (если он ещё не прописан в качестве домашней страницы), ткнёт на первый попавшийся реквест, ткнёт в строку адреса, сотрет всю строку после &laquo;http://sustainer/req&raquo; (при переходе на реквест по ссылке из списка передаётся куча параметров), при этом рискуя стереть лишнего, напишет нужные ему цифры и только после этого попадёт в свой реквест. </p>
<p>Естественным решением было бы сделать закладку на http://sustainer/req%s и попадать в реквесты, набирая в адресной строке req 123. И это действительно работало, но по прошествии какого-то времени у этого подхода обнаружился серьёзный недостаток: очень часто хочется просто написать req и попасть на главную страницу нашего сустейнера. А вместо этого открывается страница http://sustainer/req%s с сообщением о том, что реквест с таким номером отсутствует.</p>
<p>Правильное решение было найдено <a href="http://forums.mozillazine.org/viewtopic.php?t=333466">здесь</a>. Оно базируется на двух китах:<br />
1. в строке адреса можно <a href="javascript:window.alert('preved!');">использовать javascript</a> :) Напишите в строке адреса: javascript:window.alert(&#39;Preved!&#39;); и вы будете приятно удивлены. На этом же базируются многочисленные букмарклеты, гугл вам в помощь.<br />
2. если указано ключевое слово, но не указан параметр, то %s и передаётся.</p>
<p>На основе вышеуказанных условий можно сформулировать техническое задание: если то, что написано после ключевого слова, совпадает с %s, то показать страницу по умолчанию (список запросов). Если не совпадает &#8212; конкретный запрос с прибавлением того, что написано.</p>
<p>Реализация этого ТЗ на javascript выглядит так:</p>
<blockquote><p><code>javascript:if(&#39;%s&#39;==String.fromCharCode(37,115))<br />
&nbsp;&nbsp;&nbsp;&nbsp;location.href=&#39;http://sustainer/?assigned=me&#038;module=www&#39;;<br />
else<br />
&nbsp;&nbsp;&nbsp;&nbsp;location.href=&#39;http://sustainer/req%s&#39;;</code></p></blockquote>
<p>Ст&oacute;ит записать это в одну строчку, и по ключевому слову req будет открываться нужная страница, содержащая список запросов, относящихся к модулю &laquo;www&raquo; и назначенных на авторизированного в системе пользователя:</p>
<input type="text" name="ex1" size="80" onFocus="javascript:this.select();" value="javascript:if(&#39;%s&#39;==String.fromCharCode(37,115)) location.href=&#39;http://sustainer/?assigned=me&#038;module=www&#39;;else location.href=&#39;http://sustainer/req%s&#39;;" />
<p>Казалось бы, все удовлетворены. Но&#8230; нет в жизни совершенства! Следующая итерация:</p>
<blockquote><p><code>javascript:if(&#39;%s&#39;==String.fromCharCode(37,115))<br />
&nbsp;&nbsp;&nbsp;&nbsp;location.href=&#39;http://sustainer/?assigned=me&#038;module=www&#39;;<br />
else if (&#39;%s&#39;==&#39;new&#39;)<br />
&nbsp;&nbsp;&nbsp;&nbsp;location.href=&#39;http://sustainer/new&#39;;<br />
else<br />
&nbsp;&nbsp;&nbsp;&nbsp;location.href=&#39;http://sustainer/req%s&#39;;</code>
</p></blockquote>
<p>В одну строчку:</p>
<input type="text" name="ex2" size="80" onFocus="javascript:this.select();" value="javascript:if(&#39;%s&#39;==String.fromCharCode(37,115)) location.href=&#39;http://sustainer/?assigned=me&#038;module=www&#39;; else if (&#39;%s&#39;==&#39;new&#39;) location.href=&#39;http://sustainer/new&#39;;else location.href=&#39;http://sustainer/req%s&#39;;" />
<p>Теперь, если ввести в строке адреса &laquo;req new&raquo;, то откроется форма добавления нового запроса.</p>
<p>Расширять функциональность ключевых слов в сторону придания им сходства с командами можно бесконечно: в поле ввода адреса можно вписать мегабайты кода!</p>
<p>Думаю, основная идея понятна. Дальнейшие исследования можно проводить, отталкиваясь от этой заметки и от <a href="http://kb.mozillazine.org/Using_keyword_searches">оригинальной статьи</a> на <a href="http://kb.mozillazine.org">kb.mozillazine.org</a></p>
<p><strong>Update.<br />В <a href="http://goodvin.pp.ru/?p=201">следующей заметке</a> описывается использование данной технологии для более удобного доступа к ЖЖ.</strong></p>
]]></description>
		<wfw:commentRss>http://bappoy.pp.ru/2007/10/08/firefox-replacing-search-engine-and-advanced-keywords.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
