<?xml version="1.0" encoding="UTF-8"?><feed
  xmlns="http://www.w3.org/2005/Atom"
  xmlns:thr="http://purl.org/syndication/thread/1.0"
  xml:lang="en"
  xml:base="http://sci-blog.com/wp-atom.php"
   >
	<title type="text">Alex Mikhalev blog</title>
	<subtitle type="text">Blog about science and technology</subtitle>

	<updated>2011-10-15T20:36:27Z</updated>

	<link rel="alternate" type="text/html" href="http://sci-blog.com" />
	<id>http://sci-blog.com/feed/atom/</id>
	<link rel="self" type="application/atom+xml" href="http://sci-blog.com/feed/atom/" />

	<generator uri="http://wordpress.org/" version="3.0.1">WordPress</generator>
		<entry>
		<author>
			<name>alex</name>
						<uri>http://www.sci-blog.com</uri>
					</author>
		<title type="html"><![CDATA[Change of database: Percona Mysql to Postrgres for django]]></title>
		<link rel="alternate" type="text/html" href="http://sci-blog.com/2011/10/change-of-database-percona-mysql-to-postrgres-for-django/" />
		<id>http://sci-blog.com/?p=224</id>
		<updated>2011-10-15T20:36:27Z</updated>
		<published>2011-10-15T20:36:27Z</published>
		<category scheme="http://sci-blog.com" term="cloud" /><category scheme="http://sci-blog.com" term="django" /><category scheme="http://sci-blog.com" term="MySQL" /><category scheme="http://sci-blog.com" term="percona" /><category scheme="http://sci-blog.com" term="postgres" />		<summary type="html"><![CDATA[Colleague of mine came with strange bug: 1. * i am opening python shell, and sending request User.objects.all() It returns valid information * then i&#8217;m adding user via web site * then i send request User.objects.all() again and new user is missing. If i will reopen shell then everything will be ok when i&#8217;m running [...]]]></summary>
		<content type="html" xml:base="http://sci-blog.com/2011/10/change-of-database-percona-mysql-to-postrgres-for-django/"><![CDATA[<p>Colleague of mine came with strange bug:
1. 
* i am opening python shell, and sending request User.objects.all()
It returns valid information
*   then i&#8217;m adding user via web site
* then i send request User.objects.all() again and new user is missing. If i will reopen shell then everything will be ok</p>

<ol>
<li>when i&#8217;m running &#8220;python manage.py test name_of_application&#8221; creating and deleting database takes too long 
Percona Server version: 5.5.15-55 Percona Server (GPL), Release 21.0
We decided that Postgres will be better and switched to it</li>
</ol>

	Tags: <a href="http://sci-blog.com/tag/django/" title="django" rel="tag">django</a>, <a href="http://sci-blog.com/tag/mysql/" title="MySQL" rel="tag">MySQL</a>, <a href="http://sci-blog.com/tag/percona/" title="percona" rel="tag">percona</a>, <a href="http://sci-blog.com/tag/postgres/" title="postgres" rel="tag">postgres</a><br />
]]></content>
		<link rel="replies" type="text/html" href="http://sci-blog.com/2011/10/change-of-database-percona-mysql-to-postrgres-for-django/#comments" thr:count="0"/>
		<link rel="replies" type="application/atom+xml" href="http://sci-blog.com/2011/10/change-of-database-percona-mysql-to-postrgres-for-django/feed/atom/" thr:count="0"/>
		<thr:total>0</thr:total>
	</entry>
		<entry>
		<author>
			<name>alex</name>
						<uri>http://www.sci-blog.com</uri>
					</author>
		<title type="html"><![CDATA[Monitoring rabbitmq server 2.5.1.  with monit]]></title>
		<link rel="alternate" type="text/html" href="http://sci-blog.com/2011/07/monitoring-rabbitmq-server-2-5-1-with-monit/" />
		<id>http://sci-blog.com/?p=219</id>
		<updated>2011-07-15T18:20:17Z</updated>
		<published>2011-07-15T18:20:17Z</published>
		<category scheme="http://sci-blog.com" term="cloud" /><category scheme="http://sci-blog.com" term="linux" /><category scheme="http://sci-blog.com" term="monit" /><category scheme="http://sci-blog.com" term="monitoring" /><category scheme="http://sci-blog.com" term="rabbitmq" /><category scheme="http://sci-blog.com" term="rabbitmq-server" />		<summary type="html"><![CDATA[Simple task like setting up monitoring with monit for rabbit mq include two parts]]></summary>
		<content type="html" xml:base="http://sci-blog.com/2011/07/monitoring-rabbitmq-server-2-5-1-with-monit/"><![CDATA[<p>Simple task like setting up monitoring with monit for rabbit mq include two parts:
1) As discussed <a href="http://groups.google.com/group/rabbitmq-discuss/browse_thread/thread/b6bd0f50e962e43">here</a> Modify /etc/init.d/rabbitmq-server</p>

<div class="geshi no bash"><ol><li class="li1"><div class="de1">The following are added to the start <span class="kw1">function</span>: </div></li>
<li class="li1"><div class="de1">&nbsp; <span class="re2">pid=</span>`<span class="sy0">/</span>usr<span class="sy0">/</span>sbin<span class="sy0">/</span>rabbitmqctl status <span class="sy0">|</span> <span class="kw2">perl</span> -n -e<span class="st0">&#39;/{pid,(<span class="es0">\d</span>+)/ &amp;&amp; print </span></div></li>
<li class="li1"><div class="de1"><span class="st0">$1&#39;</span>` </div></li>
<li class="li1"><div class="de1">&nbsp; <span class="kw3">echo</span> <span class="re1">$pid</span> <span class="sy0">&gt;</span> <span class="sy0">/</span>var<span class="sy0">/</span>run<span class="sy0">/</span>rabbitmq.pid </div></li>
<li class="li1"><div class="de1">Right before: </div></li>
<li class="li1"><div class="de1">&nbsp; <span class="kw3">echo</span> SUCCESS </div></li>
<li class="li1"><div class="de1">The pid <span class="kw2">file</span> is deleted within the stop <span class="kw1">function</span>: </div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="kw2">rm</span> <span class="sy0">/</span>var<span class="sy0">/</span>run<span class="sy0">/</span>rabbitmq.pid </div></li>
<li class="li1"><div class="de1">right after, </div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="kw1">if</span> <span class="br0">&#91;</span> <span class="re1">$RETVAL</span> = <span class="nu0">0</span> <span class="br0">&#93;</span> ; <span class="kw1">then</span></div></li></ol></div>

<p>2) Add this to monit configuration file:</p>

<div class="geshi no bash"><ol><li class="li1"><div class="de1"><span class="co0">### rabbitmq-server</span></div></li>
<li class="li1"><div class="de1">check process rabbitmq-server with pidfile <span class="sy0">/</span>var<span class="sy0">/</span>run<span class="sy0">/</span>rabbitmq.pid</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp;group rabbitmq</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp;start program <span class="st0">&quot;/etc/init.d/rabbitmq-server start&quot;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp;stop program <span class="st0">&quot;/etc/init.d/rabbitmq-server stop&quot;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp;<span class="kw1">if</span> failed port <span class="nu0">5672</span> <span class="kw3">type</span> tcp <span class="kw1">then</span> restart</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp;<span class="kw1">if</span> <span class="nu0">3</span> restarts within <span class="nu0">3</span> cycles <span class="kw1">then</span> timeout</div></li></ol></div>

	Tags: <a href="http://sci-blog.com/tag/monit/" title="monit" rel="tag">monit</a>, <a href="http://sci-blog.com/tag/monitoring/" title="monitoring" rel="tag">monitoring</a>, <a href="http://sci-blog.com/tag/rabbitmq/" title="rabbitmq" rel="tag">rabbitmq</a>, <a href="http://sci-blog.com/tag/rabbitmq-server/" title="rabbitmq-server" rel="tag">rabbitmq-server</a><br />
]]></content>
		<link rel="replies" type="text/html" href="http://sci-blog.com/2011/07/monitoring-rabbitmq-server-2-5-1-with-monit/#comments" thr:count="2"/>
		<link rel="replies" type="application/atom+xml" href="http://sci-blog.com/2011/07/monitoring-rabbitmq-server-2-5-1-with-monit/feed/atom/" thr:count="2"/>
		<thr:total>2</thr:total>
	</entry>
		<entry>
		<author>
			<name>alex</name>
						<uri>http://www.sci-blog.com</uri>
					</author>
		<title type="html"><![CDATA[Django optimisation in production]]></title>
		<link rel="alternate" type="text/html" href="http://sci-blog.com/2011/07/django-optimisation-in-production/" />
		<id>http://sci-blog.com/2011/07/django-optimisation-in-production/</id>
		<updated>2011-07-11T11:03:06Z</updated>
		<published>2011-07-10T20:08:49Z</published>
		<category scheme="http://sci-blog.com" term="cloud" /><category scheme="http://sci-blog.com" term="python" /><category scheme="http://sci-blog.com" term="web" />		<summary type="html"><![CDATA[Few days ago I realised that my django installation in production started producing too many memory errors - thanks to monit memory alerts were filling my mailbox without any serious service interruption. But hundreds email messages daily annoyed me enough to look deeper into trouble.]]></summary>
		<content type="html" xml:base="http://sci-blog.com/2011/07/django-optimisation-in-production/"><![CDATA[<p>Few days ago I realised that my django installation in production started producing too many memory errors &#8211; thanks to monit memory alerts were filling my mailbox without any serious service interruption. But hundreds email messages daily annoyed me enough to look deeper into trouble.</p>

<p><span id="more-218"></span>
1) I switched on django debug true, noticed a large delay on SQL request. Also enabled in my.cnf slow-log part with number 5.<br />
Solution one: Added db_index=True to the model.py to the fields used in where clauses. Indexes which I created with help of ./manage sqlindexes didn&#8217;t work, so I had to login into dbshell and perform EXPLAIN and CREATE INDEX manually.</p>

<p>2) Added distinct() to most of my queries &#8211; I didn&#8217;t bother to filter duplicate queries, because values() was doing it for me.</p>

<p>3) Added db.reset_queries() to the top of my view.py, because I deploy django via fcgi with nginx frontend, django was tracking queries for a &#8220;session&#8221; which is never ended.</p>

<p>4) I didn&#8217;t notice any significant performance improvement until I decided to create a cache of sql requests, put /manage.py createcachetable my_cache_table and then went to settings.py.<br />
OMG:</p>

<div class="geshi no python"><ol><li class="li1"><div class="de1">CACHE_BACKEND = <span class="st0">&quot;locmem:///?max_entries=3000&quot;</span></div></li></ol></div>

<p>which is the worst cache settings you can have for django in production. 
changing it to</p>

<div class="geshi no python"><ol><li class="li1"><div class="de1">&nbsp;CACHE_BACKEND = <span class="st0">&quot;db://my_cache_table&quot;</span></div></li></ol></div>

<p>produced serious performance improvement. (Yes, I can put memcached or redis if I need it, but I don&#8217;t think I need it at the moment &#8211; my traffic is google bot.)</p>
No tags for this post.]]></content>
		<link rel="replies" type="text/html" href="http://sci-blog.com/2011/07/django-optimisation-in-production/#comments" thr:count="1"/>
		<link rel="replies" type="application/atom+xml" href="http://sci-blog.com/2011/07/django-optimisation-in-production/feed/atom/" thr:count="1"/>
		<thr:total>1</thr:total>
	</entry>
		<entry>
		<author>
			<name>alex</name>
						<uri>http://www.sci-blog.com</uri>
					</author>
		<title type="html"><![CDATA[Secure Riak installation using n2n VPN]]></title>
		<link rel="alternate" type="text/html" href="http://sci-blog.com/2011/07/secure-riak-installation-using-n2n-vpn/" />
		<id>http://sci-blog.com/?p=209</id>
		<updated>2011-07-08T09:22:21Z</updated>
		<published>2011-07-08T09:22:21Z</published>
		<category scheme="http://sci-blog.com" term="cloud" /><category scheme="http://sci-blog.com" term="linux" /><category scheme="http://sci-blog.com" term="web" /><category scheme="http://sci-blog.com" term="Mac OS" /><category scheme="http://sci-blog.com" term="Mac OS X Leopard" /><category scheme="http://sci-blog.com" term="nosql" /><category scheme="http://sci-blog.com" term="p2p" /><category scheme="http://sci-blog.com" term="p2p network" /><category scheme="http://sci-blog.com" term="riak" /><category scheme="http://sci-blog.com" term="secure" /><category scheme="http://sci-blog.com" term="security" /><category scheme="http://sci-blog.com" term="Ubuntu" /><category scheme="http://sci-blog.com" term="Virtual private network" /><category scheme="http://sci-blog.com" term="VPN" />		<summary type="html"><![CDATA[Recently, I decided to have a closer look at <a href="http://www.basho.com/products_riak_overview.php">Riak</a> non-sql database, but found out that unlike CouchDB riak doesn't have a HTTP basic auth implemented, or any other way of defining secure access to database.

I have three servers to build a cluster, but I feel very uneasy leaving open ports and full access to database to everyone in the world. The best practice guide <a href="http://wiki.basho.com/Network-Security-and-Firewall-Configurations.html">here</a> lists all ports necessary to secure riak installation, but messing with iptables didn't feel like compelling idea.

So I decided to set up a VPN and only make riak nodes available on internal network inside VPN. Again, system administration is my hobby rather than the main job, so VPN installation should be straightforward and simple.]]></summary>
		<content type="html" xml:base="http://sci-blog.com/2011/07/secure-riak-installation-using-n2n-vpn/"><![CDATA[<p>Recently, I decided to have a closer look at <a href="http://www.basho.com/products_riak_overview.php">Riak</a> non-sql database, but found out that unlike CouchDB riak doesn&#8217;t have a HTTP basic auth implemented, or any other way of defining secure access to database.</p>

<p>I have three servers to build a cluster, but I feel very uneasy leaving open ports and full access to database to everyone in the world. The best practice guide <a href="http://wiki.basho.com/Network-Security-and-Firewall-Configurations.html">here</a> lists all ports necessary to secure riak installation, but messing with iptables didn&#8217;t feel like compelling idea.</p>

<p>So I decided to set up a VPN and only make riak nodes available on internal network inside VPN. Again, system administration is my hobby rather than the main job, so VPN installation should be straightforward and simple.</p>

<p>That&#8217;s how I found absolutely amazing product &#8211; <a href="http://www.ntop.org/n2n/">n2n</a> &#8211; Peer-to-Peer VPN network. 
I used svn version, but it is in standard ubuntu repos. I suggest install n2n network first, then configure cluster later(obviously I did it other way around,but you don&#8217;t have to repeat my mistakes). I successfully installed n2n on 3 Ubuntu Lucid 10.04.2 and Mac OS X Leopard and Snow Leopard.</p>

<p>1) Step 1. Prepare supernode (Linux):
<pre lang=bash>
sudo aptitude install uml-utilities #user mode utils
sudo tunctl -t tun0 # create tun0 interface
sudo aptitude install quilt libssl-dev #necessary libraries
svn co https://svn.ntop.org/svn/ntop/trunk/n2n #checkout trunk
cd n2n/n2n_v1/
make
</pre></p>

<p>So far everything straightforward.</p>

<p>Step2. Start supernode:
<pre lang=bash>./supernode -l 1222 -v
</pre> 
&#8220;-v&#8221; indicate verbose output, supernode is a daemon, so no need to nhop etc.</p>

<p>Step3. On any other machine (not supernode), for linux follow step 1, create tun0 interface, then</p>

<div class="geshi no bash"><ol><li class="li1"><div class="de1"><span class="kw2">sudo</span> .<span class="sy0">/</span>edge -d tun0 -a new_node_internal_ip -c myVNPnetwork -k secretkey -l supernode_ip:<span class="nu0">1222</span> -v</div></li></ol></div>

<p>For linux client &#8220;-d&#8221; is compulsory and should pass already created tun0 interface after that. 
new_node_internal_ip &#8211; new internal IP, my for example in range 10.0.<em>.</em>.</p>

<p>&#8220;-k secretkey&#8221; &#8211; you network encryption key. Should be common between nodes.</p>

<p>Then most important part &#8211; wait. Looking at verbose output of supernode and edge, edge should have:
<pre>
"Registering with supernode"
Received REGISTER_ACK from remote peer [ip=*:1222]
</pre>
for successful registration.
 Every time when you shutdown/restart edge or supernode it takes some time to re-register. Depending on the network it can take from few seconds to a few minutes. If you shutdown supernode, all clients should re-register, which can take up to 5 minutes.</p>

<p>Next repeat step 1 and 3 for other linux client for example. Do not try to install edge client on supernode until you have at least two other nodes and you can ping each other on internal ip. Replace &#8220;-v&#8221; with &#8220;-f&#8221; once configuration is fully functional.</p>

<p>If you want to add Mac OS X client,  install tun/tap driver for mac os first from <a href="http://tuntaposx.sourceforge.net/">here</a>, then 
<pre lang=bash>
sudo ./edge  -a new_node_internal_ip -c myVNPnetwork -k secretkey -l supernode_ip:1222 -v
</pre></p>

<p>no need to pass parameter &#8220;-d&#8221;.</p>

<p>Now, assuming you have successfully installed at least two clients and have pinged each other over internal network, adding supernode computer as a node edge:</p>

<div class="geshi no bash"><ol><li class="li1"><div class="de1"><span class="kw2">sudo</span> .<span class="sy0">/</span>edge -d tun0 -a new_node_internal_ip -c myVNPnetwork -k secretkey -l supernode_ip:<span class="nu0">1222</span> -v -r</div></li></ol></div>

<p>&#8220;-r Enable packet forwarding through n2n community&#8221;  is important parameter here and that was the only way how I manage to add edge on supernode computer. 
This is enforces all packets to go via supernode ( Usually supernode acts only as an information exchange for other nodes, and encrypted connection formed between two edges directly ( remember it&#8217;s p2p network), but  routing becomes messy if you connect edge node on same computer which runs supernode &#8211; other edge clients can&#8217;t see edge installed on supernode directly).</p>

<p>Supernode also acts as a router for a nodes behind NAT firewall.</p>

<p>All nodes should be fine and talking, we can go to <a href="http://wiki.basho.com/Basic-Cluster-Setup.html">Basic Cluster setup</a>. 
For linux:</p>

<div class="geshi no bash"><ol><li class="li1"><div class="de1"><span class="kw2">wget</span> http:<span class="sy0">//</span>downloads.basho.com<span class="sy0">/</span>riak<span class="sy0">/</span>CURRENT<span class="sy0">/</span>riak_0<span class="nu0">.14</span><span class="nu0">.2</span>-1_amd64.deb</div></li>
<li class="li1"><div class="de1">dpkg -i riak_0<span class="nu0">.14</span><span class="nu0">.2</span>-1_amd64.deb </div></li>
<li class="li1"><div class="de1"><span class="kw2">sudo</span> dpkg -i riak_0<span class="nu0">.14</span><span class="nu0">.2</span>-1_amd64.deb</div></li></ol></div>

<p>Then edit &#8220;/etc/riak/app.config&#8221; and &#8220;/etc/riak/vm.args&#8221;, put new (internal) IP addresses in appropriate places. 
If you already had riak installation,</p>

<div class="geshi no bash"><ol><li class="li1"><div class="de1"><span class="kw2">sudo</span> riak-admin reip riak<span class="sy0">@</span>old_ip riak<span class="sy0">@</span>new_ip</div></li>
<li class="li1"><div class="de1"><span class="kw2">sudo</span> riak-admin remove riak<span class="sy0">@</span><span class="nu0">127.0</span><span class="nu0">.0</span><span class="nu0">.1</span></div></li></ol></div>

<p>and on other new riak nodes:</p>

<div class="geshi no bash"><ol><li class="li1"><div class="de1">.<span class="sy0">/</span>bin<span class="sy0">/</span>riak-admin <span class="kw2">join</span> riak<span class="sy0">@</span><span class="nu0">10.0</span>.<span class="sy0">*</span>.<span class="nu0">2</span></div></li></ol></div>

<p>Now you should have a secure riak cluster and in my case it is also spread across two datacenters and home. But you still may want to for <a href="http://info.basho.com/freetrial.html">a trial of Enterprise Riak</a> if you are serious about deploying riak in production.</p>

	Tags: <a href="http://sci-blog.com/tag/linux/" title="linux" rel="tag">linux</a>, <a href="http://sci-blog.com/tag/mac-os/" title="Mac OS" rel="tag">Mac OS</a>, <a href="http://sci-blog.com/tag/mac-os-x-leopard/" title="Mac OS X Leopard" rel="tag">Mac OS X Leopard</a>, <a href="http://sci-blog.com/tag/nosql/" title="nosql" rel="tag">nosql</a>, <a href="http://sci-blog.com/tag/p2p/" title="p2p" rel="tag">p2p</a>, <a href="http://sci-blog.com/tag/p2p-network/" title="p2p network" rel="tag">p2p network</a>, <a href="http://sci-blog.com/tag/riak/" title="riak" rel="tag">riak</a>, <a href="http://sci-blog.com/tag/secure/" title="secure" rel="tag">secure</a>, <a href="http://sci-blog.com/tag/security/" title="security" rel="tag">security</a>, <a href="http://sci-blog.com/tag/ubuntu/" title="Ubuntu" rel="tag">Ubuntu</a>, <a href="http://sci-blog.com/tag/virtual-private-network/" title="Virtual private network" rel="tag">Virtual private network</a>, <a href="http://sci-blog.com/tag/vpn/" title="VPN" rel="tag">VPN</a><br />
]]></content>
		<link rel="replies" type="text/html" href="http://sci-blog.com/2011/07/secure-riak-installation-using-n2n-vpn/#comments" thr:count="0"/>
		<link rel="replies" type="application/atom+xml" href="http://sci-blog.com/2011/07/secure-riak-installation-using-n2n-vpn/feed/atom/" thr:count="0"/>
		<thr:total>0</thr:total>
	</entry>
		<entry>
		<author>
			<name>alex</name>
						<uri>http://www.sci-blog.com</uri>
					</author>
		<title type="html"><![CDATA[Selecting mac ports python on mac (Leopard)]]></title>
		<link rel="alternate" type="text/html" href="http://sci-blog.com/2011/06/selecting-mac-ports-python-on-mac-leopard/" />
		<id>http://sci-blog.com/?p=206</id>
		<updated>2011-06-25T10:35:56Z</updated>
		<published>2011-06-25T10:35:56Z</published>
		<category scheme="http://sci-blog.com" term="cloud" /><category scheme="http://sci-blog.com" term="darwin" /><category scheme="http://sci-blog.com" term="leopard" /><category scheme="http://sci-blog.com" term="macports" /><category scheme="http://sci-blog.com" term="python" />		<summary type="html"><![CDATA[Selecting python installed from mac ports on leopard works now like this: sudo port select &#8211;set python python26 Took some time to figure it out as most of the hints on the web don&#8217;t work Tags: darwin, leopard, macports, python]]></summary>
		<content type="html" xml:base="http://sci-blog.com/2011/06/selecting-mac-ports-python-on-mac-leopard/"><![CDATA[<p>Selecting python installed from mac ports on leopard works now like this:</p>

<div class="geshi no bash"><ol><li class="li1"><div class="de1"><span class="kw2">sudo</span> port <span class="kw1">select</span> &#8211;<span class="kw1">set</span> python python26</div></li></ol></div>

<p>Took some time to figure it out as most of the hints on the web don&#8217;t work</p>

	Tags: <a href="http://sci-blog.com/tag/darwin/" title="darwin" rel="tag">darwin</a>, <a href="http://sci-blog.com/tag/leopard/" title="leopard" rel="tag">leopard</a>, <a href="http://sci-blog.com/tag/macports/" title="macports" rel="tag">macports</a>, <a href="http://sci-blog.com/tag/python/" title="python" rel="tag">python</a><br />
]]></content>
		<link rel="replies" type="text/html" href="http://sci-blog.com/2011/06/selecting-mac-ports-python-on-mac-leopard/#comments" thr:count="0"/>
		<link rel="replies" type="application/atom+xml" href="http://sci-blog.com/2011/06/selecting-mac-ports-python-on-mac-leopard/feed/atom/" thr:count="0"/>
		<thr:total>0</thr:total>
	</entry>
		<entry>
		<author>
			<name>alex</name>
						<uri>http://www.sci-blog.com</uri>
					</author>
		<title type="html"><![CDATA[Useful JavaScript one-liner for couchdb]]></title>
		<link rel="alternate" type="text/html" href="http://sci-blog.com/2011/06/useful-javascript-one-liner-for-couchdb/" />
		<id>http://sci-blog.com/?p=203</id>
		<updated>2011-06-01T16:35:57Z</updated>
		<published>2011-06-01T16:35:57Z</published>
		<category scheme="http://sci-blog.com" term="cloud" /><category scheme="http://sci-blog.com" term="web" /><category scheme="http://sci-blog.com" term="ajax" /><category scheme="http://sci-blog.com" term="couchdb" /><category scheme="http://sci-blog.com" term="Database" /><category scheme="http://sci-blog.com" term="javascript" /><category scheme="http://sci-blog.com" term="json" /><category scheme="http://sci-blog.com" term="parse" /><category scheme="http://sci-blog.com" term="uuid" />		<summary type="html"><![CDATA[I found myself using more and more of this one-liner for working with couchdb database: var getNewDatabusUUID = JSON.parse&#40;$.ajax&#40;&#123; type: &#34;GET&#34;, url: &#34;/_uuids/&#34;, &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; async: false &#125;&#41;.responseText&#41;; &#160;$.log&#40;&#34;New uuid generated &#34; + getNewDatabusUUID.uuids&#41;; this example retrieves new uuids from couchdb, but I was using it to retrieve _rev [...]]]></summary>
		<content type="html" xml:base="http://sci-blog.com/2011/06/useful-javascript-one-liner-for-couchdb/"><![CDATA[<p>I found myself using more and more of this one-liner for working with couchdb database:</p>

<div class="geshi no javascript"><ol><li class="li1"><div class="de1"><span class="kw2">var</span> getNewDatabusUUID = JSON.<span class="me1">parse</span><span class="br0">&#40;</span>$.<span class="me1">ajax</span><span class="br0">&#40;</span><span class="br0">&#123;</span> type: <span class="st0">&quot;GET&quot;</span>, url: <span class="st0">&quot;/_uuids/&quot;</span>,</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; async: <span class="kw2">false</span> <span class="br0">&#125;</span><span class="br0">&#41;</span>.<span class="me1">responseText</span><span class="br0">&#41;</span>; </div></li>
<li class="li1"><div class="de1">&nbsp;$.<span class="me1">log</span><span class="br0">&#40;</span><span class="st0">&quot;New uuid generated &quot;</span> + getNewDatabusUUID.<span class="me1">uuids</span><span class="br0">&#41;</span>;</div></li></ol></div>

<p>this example retrieves new uuids from couchdb, but I was using it to retrieve _rev of the document before deletion and similar one-off problems.</p>

	Tags: <a href="http://sci-blog.com/tag/ajax/" title="ajax" rel="tag">ajax</a>, <a href="http://sci-blog.com/tag/couchdb/" title="couchdb" rel="tag">couchdb</a>, <a href="http://sci-blog.com/tag/database/" title="Database" rel="tag">Database</a>, <a href="http://sci-blog.com/tag/javascript/" title="javascript" rel="tag">javascript</a>, <a href="http://sci-blog.com/tag/json/" title="json" rel="tag">json</a>, <a href="http://sci-blog.com/tag/parse/" title="parse" rel="tag">parse</a>, <a href="http://sci-blog.com/tag/uuid/" title="uuid" rel="tag">uuid</a><br />
]]></content>
		<link rel="replies" type="text/html" href="http://sci-blog.com/2011/06/useful-javascript-one-liner-for-couchdb/#comments" thr:count="1"/>
		<link rel="replies" type="application/atom+xml" href="http://sci-blog.com/2011/06/useful-javascript-one-liner-for-couchdb/feed/atom/" thr:count="1"/>
		<thr:total>1</thr:total>
	</entry>
		<entry>
		<author>
			<name>alex</name>
						<uri>http://www.sci-blog.com</uri>
					</author>
		<title type="html"><![CDATA[Speeding up javascript: listing of elements from couchdb using jQuery mobile]]></title>
		<link rel="alternate" type="text/html" href="http://sci-blog.com/2011/05/speeding-up-javascript-listing-of-elements-from-couchdb-using-jquery-mobile/" />
		<id>http://sci-blog.com/?p=197</id>
		<updated>2011-05-15T19:39:44Z</updated>
		<published>2011-05-15T19:39:44Z</published>
		<category scheme="http://sci-blog.com" term="web" /><category scheme="http://sci-blog.com" term="couchdb" /><category scheme="http://sci-blog.com" term="javascript" /><category scheme="http://sci-blog.com" term="jQuery" /><category scheme="http://sci-blog.com" term="jQuery mobile" /><category scheme="http://sci-blog.com" term="Programming" /><category scheme="http://sci-blog.com" term="speed" />		<summary type="html"><![CDATA[As I mentioned in my <a href="http://sci-blog.com/2011/04/checkbox-and-select-elements-in-couch-db/#more-196">previous post </a>I was using <a href="http://custardbelly.com/blog/?p=244">this tutorial</a> as a basic for CRUD application for couchdb. 
But I found that listing of "albums" is very slow.  I modified code using for loop examples from the book "High Performance Javascript"  and results of the JS <a href="http://gaperton.livejournal.com/55094.html">tests from gaperton livejournal</a>.]]></summary>
		<content type="html" xml:base="http://sci-blog.com/2011/05/speeding-up-javascript-listing-of-elements-from-couchdb-using-jquery-mobile/"><![CDATA[<p>As I mentioned in my <a href="http://sci-blog.com/2011/04/checkbox-and-select-elements-in-couch-db/#more-196">previous post </a>I was using <a href="http://custardbelly.com/blog/?p=244">this tutorial</a> as a basic for CRUD application for couchdb. 
But I found that listing of &#8220;albums&#8221; is very slow.  I modified code using for loop examples from the book &#8220;High Performance Javascript&#8221;  and results of the JS <a href="http://gaperton.livejournal.com/55094.html">tests from gaperton livejournal</a>. 
A lot of words for three line change:
<span id="more-197"></span>
<code></p>

<div class="geshi no javascript"><ol><li class="li1"><div class="de1"><span class="kw2">function</span> refreshAlbums<span class="br0">&#40;</span><span class="br0">&#41;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span><span class="sy0">*</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $<span class="br0">&#40;</span><span class="st0">&quot;#albums&quot;</span><span class="br0">&#41;</span>.<span class="me1">empty</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$db.<span class="me1">view</span><span class="br0">&#40;</span><span class="st0">&quot;albums/albums&quot;</span>,<span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; success: <span class="kw2">function</span><span class="br0">&#40;</span> data <span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; </div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> listItem;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> header;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> albumLink;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; data.<span class="me1">rows</span>.<span class="me1">reverse</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw1">for</span> <span class="br0">&#40;</span> <span class="kw2">var</span> i=data.<span class="me1">rows</span>.<span class="me1">length</span>;i--;<span class="br0">&#41;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; album = data.<span class="me1">rows</span><span class="br0">&#91;</span>i<span class="br0">&#93;</span>.<span class="me1">value</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; artist = album.<span class="me1">artist</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; title = album.<span class="me1">title</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; description = album.<span class="me1">description</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; listItem =listItem+ &nbsp;<span class="st0">&quot;&lt;li&gt;&quot;</span> +</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&quot;&lt;h2 class=<span class="es0">\&quot;</span>artist<span class="es0">\&quot;</span>&gt;&quot;</span> + artist + <span class="st0">&quot;&lt;<span class="es0">\/</span>h2&gt;&quot;</span> +</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&quot;&lt;p class=<span class="es0">\&quot;</span>title<span class="es0">\&quot;</span>&gt;&quot;</span> + title + <span class="st0">&quot;&lt;<span class="es0">\/</span>p&gt;&quot;</span> +</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&quot;&lt;p class=<span class="es0">\&quot;</span>description<span class="es0">\&quot;</span>&gt;&quot;</span> + description + <span class="st0">&quot;&lt;<span class="es0">\/</span>p&gt;&quot;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span> &nbsp; </div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; $<span class="br0">&#40;</span><span class="st0">&quot;#albums&quot;</span><span class="br0">&#41;</span>.<span class="me1">html</span><span class="br0">&#40;</span> listItem <span class="br0">&#41;</span>; </div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $<span class="br0">&#40;</span><span class="st0">&quot;#albums&quot;</span><span class="br0">&#41;</span>.<span class="me1">listview</span><span class="br0">&#40;</span> <span class="st0">&quot;refresh&quot;</span> <span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $.<span class="me1">fixedToolbars</span>.<span class="me1">show</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; $<span class="br0">&#40;</span>document<span class="br0">&#41;</span>.<span class="me1">ready</span><span class="br0">&#40;</span> handleDocumentReady <span class="br0">&#41;</span>;</div></li></ol></div>

<p></code></p>

<p>Also, if you update jquery.mobile to jquery.mobile-1.0a4.1, path in scripts in template/partials should look like:</p>

<div class="geshi no javascript"><ol><li class="li1"><div class="de1"><span class="sy0">&lt;</span>script src=<span class="st0">&quot;/databasename/_design/databasename/script/album-page.js&quot;</span><span class="sy0">&gt;&lt;/</span>script<span class="sy0">&gt;</span></div></li></ol></div>

	Tags: <a href="http://sci-blog.com/tag/couchdb/" title="couchdb" rel="tag">couchdb</a>, <a href="http://sci-blog.com/tag/javascript/" title="javascript" rel="tag">javascript</a>, <a href="http://sci-blog.com/tag/jquery/" title="jQuery" rel="tag">jQuery</a>, <a href="http://sci-blog.com/tag/jquery-mobile/" title="jQuery mobile" rel="tag">jQuery mobile</a>, <a href="http://sci-blog.com/tag/programming/" title="Programming" rel="tag">Programming</a>, <a href="http://sci-blog.com/tag/speed/" title="speed" rel="tag">speed</a><br />
]]></content>
		<link rel="replies" type="text/html" href="http://sci-blog.com/2011/05/speeding-up-javascript-listing-of-elements-from-couchdb-using-jquery-mobile/#comments" thr:count="2"/>
		<link rel="replies" type="application/atom+xml" href="http://sci-blog.com/2011/05/speeding-up-javascript-listing-of-elements-from-couchdb-using-jquery-mobile/feed/atom/" thr:count="2"/>
		<thr:total>2</thr:total>
	</entry>
		<entry>
		<author>
			<name>alex</name>
						<uri>http://www.sci-blog.com</uri>
					</author>
		<title type="html"><![CDATA[Checkbox and select elements in couch db]]></title>
		<link rel="alternate" type="text/html" href="http://sci-blog.com/2011/04/checkbox-and-select-elements-in-couch-db/" />
		<id>http://sci-blog.com/2011/04/checkbox-and-select-elements-in-couch-db/</id>
		<updated>2011-04-04T11:15:46Z</updated>
		<published>2011-04-04T11:15:46Z</published>
		<category scheme="http://sci-blog.com" term="cloud" />		<summary type="html"><![CDATA[If you wanted to make a select or checkbox element using mustache in couch db and trying to find example, here it is: I am using couchdb so in shows, album-edit.js, I want a dropdown menu for group variable in couchdb. &#160;var Mustache = require&#40;&#34;vendor/couchapp/lib/mustache&#34;&#41;; &#160;var label=&#91;&#93;; &#160; &#160; var selected=null; &#160; &#160; for &#40;i=1;i&#60;=5;i++&#41;&#123; [...]]]></summary>
		<content type="html" xml:base="http://sci-blog.com/2011/04/checkbox-and-select-elements-in-couch-db/"><![CDATA[<p>If you wanted to make a select or checkbox element using mustache in couch db and trying to find example, here it is:</p>

<p><span id="more-196"></span>
I am using couchdb so in shows, album-edit.js, I want a dropdown menu for group variable in couchdb.</p>

<div class="geshi no javascript"><ol><li class="li1"><div class="de1">&nbsp;<span class="kw2">var</span> Mustache = require<span class="br0">&#40;</span><span class="st0">&quot;vendor/couchapp/lib/mustache&quot;</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp;<span class="kw2">var</span> label=<span class="br0">&#91;</span><span class="br0">&#93;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="kw2">var</span> selected=<span class="kw2">null</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="kw1">for</span> <span class="br0">&#40;</span>i=<span class="nu0">1</span>;i<span class="sy0">&lt;</span>=<span class="nu0">5</span>;i++<span class="br0">&#41;</span><span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp;group_label=<span class="st0">&quot;Level &quot;</span>+i;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp;selected=<span class="br0">&#40;</span>i==doc.<span class="me1">group</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp;label.<span class="me1">push</span><span class="br0">&#40;</span><span class="br0">&#123;</span>label:group_label,value:i,selected:selected<span class="br0">&#125;</span><span class="br0">&#41;</span>; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span> </div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1">&nbsp; &#8230;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; </div></li>
<li class="li1"><div class="de1">&nbsp; <span class="kw1">return</span> Mustache.<span class="me1">to_html</span><span class="br0">&#40;</span><span class="kw1">this</span>.<span class="me1">templates</span>.<span class="me1">albumedit</span>, stash, <span class="kw1">this</span>.<span class="me1">templates</span>.<span class="me1">partials</span>.<span class="me1">albumedit</span><span class="br0">&#41;</span>;</div></li></ol></div>

<p>In templates albumedit.html add</p>

<div class="geshi no html"><ol><li class="li1"><div class="de1">&nbsp; &lt;label for=&quot;group&quot;&gt;Group&lt;/label&gt;</div></li>
<li class="li1"><div class="de1">&nbsp; &lt;select id=&quot;SystemLevelField&quot; name=&quot;group&quot;&gt; </div></li>
<li class="li1"><div class="de1">&nbsp;{{%IMPLICIT-ITERATOR iterator=label}}</div></li>
<li class="li1"><div class="de1">&nbsp;{{#labels}} &nbsp; &nbsp;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &lt;option value=&quot;{{value}}&quot;{{#selected}} selected {{/selected}}&gt;{{label}}&lt;/option&gt;</div></li>
<li class="li1"><div class="de1">&nbsp;{{/labels}} </div></li>
<li class="li1"><div class="de1">&nbsp; &lt;/select&gt;</div></li></ol></div>

<p>That&#8217;s it. I was using <a href="http://custardbelly.com/blog/?p=244">tutorial</a> as a basis for my CRUD with couchdb.</p>
No tags for this post.]]></content>
		<link rel="replies" type="text/html" href="http://sci-blog.com/2011/04/checkbox-and-select-elements-in-couch-db/#comments" thr:count="1"/>
		<link rel="replies" type="application/atom+xml" href="http://sci-blog.com/2011/04/checkbox-and-select-elements-in-couch-db/feed/atom/" thr:count="1"/>
		<thr:total>1</thr:total>
	</entry>
		<entry>
		<author>
			<name>alex</name>
						<uri>http://www.sci-blog.com</uri>
					</author>
		<title type="html"><![CDATA[Amazing examples of misuse of data mining in finance]]></title>
		<link rel="alternate" type="text/html" href="http://sci-blog.com/2011/03/amazing-examples-of-misuse-of-data-mining-in-finance/" />
		<id>http://sci-blog.com/2011/03/amazing-examples-of-misuse-of-data-mining-in-finance/</id>
		<updated>2011-04-03T20:25:37Z</updated>
		<published>2011-03-26T12:14:34Z</published>
		<category scheme="http://sci-blog.com" term="general" /><category scheme="http://sci-blog.com" term="science" /><category scheme="http://sci-blog.com" term="web" /><category scheme="http://sci-blog.com" term="Business" /><category scheme="http://sci-blog.com" term="Data mining" /><category scheme="http://sci-blog.com" term="Investing" /><category scheme="http://sci-blog.com" term="S&amp;P 500" />		<summary type="html"><![CDATA[From stupid Data Mining Tricks: Overfitting S&#38;P 500: &#8220;Norman Bloom, no doubt a champion of all data miners, went beyond trying to predict the stock market. Instead, he used the stock market, along with baseball scores, particularly those involving the New York Yankees, to “read the mind of God.” I offer a small sample of [...]]]></summary>
		<content type="html" xml:base="http://sci-blog.com/2011/03/amazing-examples-of-misuse-of-data-mining-in-finance/"><![CDATA[<p>From stupid Data Mining Tricks: Overfitting S&amp;P 500:
&#8220;Norman Bloom, no doubt a champion of all data miners, went beyond trying to predict the stock market. Instead, he used the stock market, along with baseball scores, particularly those involving the New York Yankees, to “read the mind of God.”</p>

<p>I offer a small sample of Bloom, in the original punctuation, here: “THE INSTRUMENT GOD HAS SHAPED TO BRIG PROOF HE HAS THE POWER TO SHAPE THE PHYSICAL ACTIONS OF MANKIND&#8211;is organized athletics, and particularly BASEBALL. THE SECOND INSTRUMENT shaped by the ONE GOD, as the means to bring PROOF HE IS THE ONE God concerned with the Mental and business aspects of mankind and his civilization is the STOCK market—and particularly the greatest and most famous of all these – ie THE NEW YORK STOCK EXCHANGE.&#8221;</p>

<p>Full article <a target="_blank" href="http://nerdsonwallstreet.typepad.com/my_weblog/files/dataminejune_2000.pdf">here</a></p>

<ul>
<li>Posted using BlogPress from my iPad</li>
</ul>

	Tags: <a href="http://sci-blog.com/tag/business/" title="Business" rel="tag">Business</a>, <a href="http://sci-blog.com/tag/data-mining/" title="Data mining" rel="tag">Data mining</a>, <a href="http://sci-blog.com/tag/investing/" title="Investing" rel="tag">Investing</a>, <a href="http://sci-blog.com/tag/sp-500/" title="S&amp;P 500" rel="tag">S&amp;P 500</a><br />
]]></content>
		<link rel="replies" type="text/html" href="http://sci-blog.com/2011/03/amazing-examples-of-misuse-of-data-mining-in-finance/#comments" thr:count="0"/>
		<link rel="replies" type="application/atom+xml" href="http://sci-blog.com/2011/03/amazing-examples-of-misuse-of-data-mining-in-finance/feed/atom/" thr:count="0"/>
		<thr:total>0</thr:total>
	</entry>
		<entry>
		<author>
			<name>alex</name>
						<uri>http://www.sci-blog.com</uri>
					</author>
		<title type="html"><![CDATA[Pingfire updated to work with Firefox 4]]></title>
		<link rel="alternate" type="text/html" href="http://sci-blog.com/2011/03/pingfire-updated-to-work-with-firefox-4/" />
		<id>http://sci-blog.com/?p=182</id>
		<updated>2011-03-24T15:30:03Z</updated>
		<published>2011-03-24T15:29:31Z</published>
		<category scheme="http://sci-blog.com" term="firefox" /><category scheme="http://sci-blog.com" term="general" /><category scheme="http://sci-blog.com" term="web" /><category scheme="http://sci-blog.com" term="addon" /><category scheme="http://sci-blog.com" term="extension" /><category scheme="http://sci-blog.com" term="firefox 4" /><category scheme="http://sci-blog.com" term="pingfire" />		<summary type="html"><![CDATA[I spent some time trying to get pingfire extension working with FF4 seems to be fine.]]></summary>
		<content type="html" xml:base="http://sci-blog.com/2011/03/pingfire-updated-to-work-with-firefox-4/"><![CDATA[<p>I put firefox 4 on my wifes mac mini, so I spent some time trying to get pingfire extension working with FF4. 
Seems to be fine, drop me a comment or email and I may be will fix it <img src='http://sci-blog.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> 
<a href="http://sci-blog.com/wp-content/uploads/s3temp/pingfire.xpi">Install pingfire</a></p>

	Tags: <a href="http://sci-blog.com/tag/addon/" title="addon" rel="tag">addon</a>, <a href="http://sci-blog.com/tag/extension/" title="extension" rel="tag">extension</a>, <a href="http://sci-blog.com/tag/firefox-4/" title="firefox 4" rel="tag">firefox 4</a>, <a href="http://sci-blog.com/tag/pingfire/" title="pingfire" rel="tag">pingfire</a><br />
]]></content>
		<link rel="replies" type="text/html" href="http://sci-blog.com/2011/03/pingfire-updated-to-work-with-firefox-4/#comments" thr:count="1"/>
		<link rel="replies" type="application/atom+xml" href="http://sci-blog.com/2011/03/pingfire-updated-to-work-with-firefox-4/feed/atom/" thr:count="1"/>
		<thr:total>1</thr:total>
	</entry>
	</feed>

<!-- Dynamic page generated in 1.275 seconds. -->
<!-- Cached page generated by WP-Super-Cache on 2012-12-13 15:15:14 -->
