<?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>Helion-Prime Solutions blog &#187; internet</title>
	<atom:link href="http://blogs.helion-prime.com/category/internet/feed" rel="self" type="application/rss+xml" />
	<link>http://blogs.helion-prime.com</link>
	<description>Just another WordPress weblog</description>
	<lastBuildDate>Mon, 10 May 2010 17:51:32 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>New google design</title>
		<link>http://blogs.helion-prime.com/2010/03/15/new-google-design.html</link>
		<comments>http://blogs.helion-prime.com/2010/03/15/new-google-design.html#comments</comments>
		<pubDate>Mon, 15 Mar 2010 18:12:19 +0000</pubDate>
		<dc:creator>vasiliy.kiryanov</dc:creator>
				<category><![CDATA[design]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[google]]></category>

		<guid isPermaLink="false">http://blogs.helion-prime.com/?p=703</guid>
		<description><![CDATA[One of our developers had enough luck to see new Google design which is pretty simple and clean.
Sure he made few screen-shots and we glad to share it now with All World.
main screen:


search results screen:


And surely we hope Google will approve it for mass use and tomorrow we will see it on almost any browser [...]]]></description>
			<content:encoded><![CDATA[<p>One of our developers had enough luck to see new Google design which is pretty simple and clean.<br />
Sure he made few screen-shots and we glad to share it now with All World.</p>
<h2>main screen:</h2>
<p><img class="alignnone size-full wp-image-704" title="google main screen" src="http://blogs.helion-prime.com/wp-content/uploads/2010/03/main_screen.png" alt="SILK audio codec" width="640" height="392" /><br />
<br/></p>
<h2>search results screen:</h2>
<p><img class="alignnone size-full wp-image-705" title="results screen" src="http://blogs.helion-prime.com/wp-content/uploads/2010/03/results_screen.png" alt="new google design results screen" width="640" height="400" /></p>
<p><br/><br />
And surely we hope Google will approve it for mass use and tomorrow we will see it on almost any browser in the World.<br />
Comments are welcome! </p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.helion-prime.com/2010/03/15/new-google-design.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Multi-domain applications in Ruby on Rails</title>
		<link>http://blogs.helion-prime.com/2009/09/03/multi-domain-applications-in-ruby-on-rails.html</link>
		<comments>http://blogs.helion-prime.com/2009/09/03/multi-domain-applications-in-ruby-on-rails.html#comments</comments>
		<pubDate>Thu, 03 Sep 2009 14:34:58 +0000</pubDate>
		<dc:creator>alex.shapovalov</dc:creator>
				<category><![CDATA[internet]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[web-development]]></category>

		<guid isPermaLink="false">http://blogs.helion-prime.com/?p=566</guid>
		<description><![CDATA[preamble
Ruby on Rails is a great framework that still luck some common features, among them: multi-domain support.
Here I will describe fast solution that doesn&#8217;t work for every browser and another one that do the work.
Ok, you did your homework and google something like &#8216;ruby on rails multi-domain&#8217;.
Very often provided solution:
edit environment.rb
1config.action_controller.session = &#123;:domain =&#62; '.mydomain.com'&#125;
With [...]]]></description>
			<content:encoded><![CDATA[<h2>preamble</h2>
<p>Ruby on Rails is a great framework that still luck some common features, among them: multi-domain support.<br />
Here I will describe fast solution that doesn&#8217;t work for every browser and another one that do the work.</p>
<p>Ok, you did your homework and google something like &#8216;ruby on rails multi-domain&#8217;.<br />
Very often provided solution:</p>
<p>edit environment.rb</p>
<div class="codecolorer-container ruby mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="ruby codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">config.<span style="color:#9900CC;">action_controller</span>.<span style="color:#9900CC;">session</span> = <span style="color:#006600; font-weight:bold;">&#123;</span>:domain <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#996600;">'.mydomain.com'</span><span style="color:#006600; font-weight:bold;">&#125;</span></div></td></tr></tbody></table></div>
<p>With that parameter Rails always read cookies from same domain. In real some browsers forbid for applications to read cookies from other domain due to insecurity of that operation. And as Mozilla Firefox in set of browsers that forbid that we just need another solution.</p>
<p>Now it&#8217;s clear that we should implement necessary functionality other way. </p>
<h2>Here we go:</h2>
<h3>1. will store session ID in the database(by default Rails2 store it in cookies)</h3>
<p>environment.rb:</p>
<div class="codecolorer-container ruby mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="ruby codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">config.<span style="color:#9900CC;">action_controller</span>.<span style="color:#9900CC;">session_store</span> = <span style="color:#ff3333; font-weight:bold;">:active_record_store</span></div></td></tr></tbody></table></div>
<p>and then execute rake task that create necessary DB migration:</p>
<div class="codecolorer-container ruby mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="ruby codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">rake db:sessions:create</div></td></tr></tbody></table></div>
<p>Apply it with:  rake db:migrate.</p>
<h3>2. setup session parameters</h3>
<p>environment.rb:</p>
<div class="codecolorer-container ruby mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br /></div></td><td><div class="ruby codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color:#CC0066; font-weight:bold;">require</span> <span style="color:#996600;">&quot;rubygems&quot;</span><br />
<span style="color:#CC0066; font-weight:bold;">require</span> <span style="color:#996600;">&quot;active_support&quot;</span><br />
<br />
config.<span style="color:#9900CC;">action_controller</span>.<span style="color:#9900CC;">session</span> = <span style="color:#006600; font-weight:bold;">&#123;</span><br />
&nbsp; &nbsp;<span style="color:#ff3333; font-weight:bold;">:session_key</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#996600;">'_myapp_session_id'</span>, &nbsp; &nbsp;<span style="color:#008000; font-style:italic;"># session identification key</span><br />
&nbsp; &nbsp;<span style="color:#ff3333; font-weight:bold;">:secret</span> &nbsp; &nbsp; &nbsp;<span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#996600;">'89sHslddfsd98klasdKd'</span>, <span style="color:#008000; font-style:italic;"># hash code of session generator(make it random and longer)</span><br />
&nbsp; &nbsp;<span style="color:#ff3333; font-weight:bold;">:cookie_only</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#0000FF; font-weight:bold;">false</span>,<br />
&nbsp; &nbsp;<span style="color:#ff3333; font-weight:bold;">:expire_after</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#006666;">1</span>.<span style="color:#9900CC;">week</span>, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color:#008000; font-style:italic;"># TTL (time to live)</span><br />
<span style="color:#006600; font-weight:bold;">&#125;</span></div></td></tr></tbody></table></div>
<h3>3. let&#8217;s create session creation handler</h3>
<p>application_controller.rb:</p>
<div class="codecolorer-container ruby mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br /></div></td><td><div class="ruby codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">before_filter <span style="color:#006600; font-weight:bold;">&#123;</span> <span style="color:#006600; font-weight:bold;">|</span>controller<span style="color:#006600; font-weight:bold;">|</span><br />
&nbsp; &nbsp;opts = controller.<span style="color:#9900CC;">request</span>.<span style="color:#9900CC;">session_options</span><br />
&nbsp; &nbsp;key = opts<span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#ff3333; font-weight:bold;">:key</span><span style="color:#006600; font-weight:bold;">&#93;</span><br />
<br />
&nbsp; &nbsp;<span style="color:#008000; font-style:italic;"># use session ID if it's passed</span><br />
&nbsp; &nbsp;<span style="color:#9966CC; font-weight:bold;">if</span> controller.<span style="color:#9900CC;">params</span><span style="color:#006600; font-weight:bold;">&#91;</span>key<span style="color:#006600; font-weight:bold;">&#93;</span>&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; <span style="color:#008000; font-style:italic;"># session initialization with old ID</span><br />
&nbsp; &nbsp; &nbsp; controller.<span style="color:#9900CC;">session</span><span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#ff3333; font-weight:bold;">:nothing</span><span style="color:#006600; font-weight:bold;">&#93;</span><br />
<br />
&nbsp; &nbsp; &nbsp; opts<span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#ff3333; font-weight:bold;">:id</span><span style="color:#006600; font-weight:bold;">&#93;</span> = controller.<span style="color:#9900CC;">params</span><span style="color:#006600; font-weight:bold;">&#91;</span>key<span style="color:#006600; font-weight:bold;">&#93;</span><br />
&nbsp; &nbsp; &nbsp; controller.<span style="color:#9900CC;">request</span>.<span style="color:#9900CC;">session_options</span> = opts<br />
&nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; <span style="color:#008000; font-style:italic;"># session initialization with new ID</span><br />
&nbsp; &nbsp; &nbsp; controller.<span style="color:#9900CC;">session</span><span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#ff3333; font-weight:bold;">:nothing</span><span style="color:#006600; font-weight:bold;">&#93;</span><br />
&nbsp; &nbsp;<span style="color:#9966CC; font-weight:bold;">end</span><br />
<span style="color:#006600; font-weight:bold;">&#125;</span></div></td></tr></tbody></table></div>
<h3>4. session pass</h3>
<p>We need to pass session ID as parameter when user change domain name, and within domain we still use cookie.</p>
<div class="codecolorer-container text mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">“#{request.session_options[:key]}” =&gt; request.session_options[:id]</div></td></tr></tbody></table></div>
<p>It&#8217;s wise to use session initialization before request.session_options[:id]  invocation due to Rails use lazy loading, and session can be uninitialized.<br />
Use something like: session[:nothing].</p>
<p>Pay attention that information that Rails get from cookie has bigger priority, and so if you have some parameter  in cookie Rails will use it firstly.</p>
<p><b>Note:</b><br />
An attacker can still steal you session ID by sniffing the network, or exploiting javascript, he/she gets the value from the cookie itself. If you care about security so much just use HTTPS.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.helion-prime.com/2009/09/03/multi-domain-applications-in-ruby-on-rails.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Advices for customer as part of project</title>
		<link>http://blogs.helion-prime.com/2009/08/26/advices-for-customer-as-part-of-project.html</link>
		<comments>http://blogs.helion-prime.com/2009/08/26/advices-for-customer-as-part-of-project.html#comments</comments>
		<pubDate>Wed, 26 Aug 2009 13:49:45 +0000</pubDate>
		<dc:creator>vasiliy.kiryanov</dc:creator>
				<category><![CDATA[be smart]]></category>
		<category><![CDATA[business]]></category>
		<category><![CDATA[internet]]></category>

		<guid isPermaLink="false">http://blogs.helion-prime.com/?p=555</guid>
		<description><![CDATA[Today even great application can die alone .. world has too many great applications. me
Do you know what software development company sell?
Not just some abstract peace of software but application that can solve customer&#8217;s problems .. we should understand what customer wants from the application, what tasks he/she wants to solve with application.
We provide to [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>Today even great application can die alone .. world has too many great applications. <br/>me</p></blockquote>
<p>Do you know what software development company sell?<br />
Not just some abstract peace of software but application that can solve customer&#8217;s problems .. we should understand what customer wants from the application, what tasks he/she wants to solve with application.</p>
<p>We provide to customer our vision and suggest technology/platform/approach, customer provide ideas/plans/limitations .. together we will end with some satisfied result.  But what then?<br />
Then as usual we get our money and leave customer alone with his application. </p>
<h2>What else we can give to them?</h2>
<p>We should give business advices that can bring closer customer&#8217;s target.<br />
Client can take them or not but part of our work is to give ones. Customers see that we care, that help to build better relationship and get great satisfaction .. we make great applications that work!</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.helion-prime.com/2009/08/26/advices-for-customer-as-part-of-project.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Fast scalability of Ruby on Rails with mongrel under OpenBSD</title>
		<link>http://blogs.helion-prime.com/2009/08/12/fast-scalability-of-ruby-on-rails-with-mongrel-under-openbsd.html</link>
		<comments>http://blogs.helion-prime.com/2009/08/12/fast-scalability-of-ruby-on-rails-with-mongrel-under-openbsd.html#comments</comments>
		<pubDate>Wed, 12 Aug 2009 15:00:30 +0000</pubDate>
		<dc:creator>alex.shapovalov</dc:creator>
				<category><![CDATA[internet]]></category>
		<category><![CDATA[openBSD]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[web-development]]></category>

		<guid isPermaLink="false">http://blogs.helion-prime.com/?p=546</guid>
		<description><![CDATA[preamble
Everybody who works with ruby on rails more then month knows at least 2 things:
it&#8217;s great framework, but can&#8217;t handle multiple requests simultaneously due to it still doesn&#8217;t use threads.
fast start
As scalability is common issue, rubyonrails site wiki provides full set of solutions:
[http://wiki.rubyonrails.org/#deployment_stacks]
But we as fast solution will use great OpenBSD pf (Packet Filter) that [...]]]></description>
			<content:encoded><![CDATA[<h2>preamble</h2>
<p>Everybody who works with ruby on rails more then month knows at least 2 things:<br />
it&#8217;s great framework, but can&#8217;t handle multiple requests simultaneously due to it still doesn&#8217;t use threads.</p>
<h2>fast start</h2>
<p>As scalability is common issue, rubyonrails site wiki provides full set of solutions:<br />
[<a href="http://wiki.rubyonrails.org/#deployment_stacks">http://wiki.rubyonrails.org/#deployment_stacks</a>]</p>
<p>But we as fast solution will use great OpenBSD pf (Packet Filter) that capable to do many cool things.<br />
First issue is standard mongrail cluster that can start several instances of mongrail can only create them on one IP with different ports, and pf can&#8217;t distribute requests among different ports on same IP.</p>
<p>Here we can create 2 simple scripts that start and destroy server instances:<br />
# cat start.sh</p>
<div class="codecolorer-container bash mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #007800;">count</span>=<span style="color: #000000;">1</span><br />
<span style="color: #000000; font-weight: bold;">for</span> ip <span style="color: #000000; font-weight: bold;">in</span> 10.0.0.1 10.0.0.2 10.0.0.3 10.0.0.4 10.0.0.5<br />
<span style="color: #000000; font-weight: bold;">do</span><br />
mongrel_rails start <span style="color: #660033;">-e</span> production <span style="color: #660033;">-d</span> <span style="color: #660033;">--user</span> myapp <span style="color: #660033;">--group</span> myapp <span style="color: #660033;">--chdir</span> <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>www<span style="color: #000000; font-weight: bold;">/</span>railsdocs<span style="color: #000000; font-weight: bold;">/</span>myapp \<br />
<span style="color: #660033;">--address</span> <span style="color: #800000;">${ip}</span> \<br />
<span style="color: #660033;">--pid</span> <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>www<span style="color: #000000; font-weight: bold;">/</span>railsdocs<span style="color: #000000; font-weight: bold;">/</span>myapp<span style="color: #000000; font-weight: bold;">/</span>tmp<span style="color: #000000; font-weight: bold;">/</span>pids<span style="color: #000000; font-weight: bold;">/</span>mongrel.<span style="color: #800000;">${count}</span>.pid \<br />
<span style="color: #660033;">--log</span> <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>www<span style="color: #000000; font-weight: bold;">/</span>railsdocs<span style="color: #000000; font-weight: bold;">/</span>myapp<span style="color: #000000; font-weight: bold;">/</span>log<span style="color: #000000; font-weight: bold;">/</span>mongrel.<span style="color: #800000;">${count}</span>.log<br />
<br />
<span style="color: #007800;">count</span>=$<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #007800;">$count</span> + <span style="color: #000000;">1</span><span style="color: #7a0874; font-weight: bold;">&#41;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span><br />
<span style="color: #000000; font-weight: bold;">done</span></div></td></tr></tbody></table></div>
<p># cat stop.sh</p>
<div class="codecolorer-container bash mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">for</span> instance <span style="color: #000000; font-weight: bold;">in</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span><span style="color: #000000;">1</span>..5<span style="color: #7a0874; font-weight: bold;">&#125;</span><br />
<span style="color: #000000; font-weight: bold;">do</span><br />
mongrel_rails stop <span style="color: #660033;">--wait</span> <span style="color: #000000;">3</span> <span style="color: #660033;">--chdir</span> <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>www<span style="color: #000000; font-weight: bold;">/</span>railsdocs<span style="color: #000000; font-weight: bold;">/</span>myapp \<br />
<span style="color: #660033;">--pid</span> <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>www<span style="color: #000000; font-weight: bold;">/</span>railsdocs<span style="color: #000000; font-weight: bold;">/</span>myapp<span style="color: #000000; font-weight: bold;">/</span>tmp<span style="color: #000000; font-weight: bold;">/</span>pids<span style="color: #000000; font-weight: bold;">/</span>mongrel.<span style="color: #800000;">${instance}</span>.pid<br />
end</div></td></tr></tbody></table></div>
<p>And we need to enable pf:<br />
#/etc/rc.conf.local</p>
<div class="codecolorer-container bash mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #007800;">pf</span>=YES<br />
<span style="color: #666666; font-style: italic;">#pflogd_flags= &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; # add more flags, ie. &quot;-s 256&quot;</span></div></td></tr></tbody></table></div>
<p>add one string to configuration file for load distribution:<br />
#/etc/pf.conf</p>
<div class="codecolorer-container bash mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">rdr pass log on re0 proto tcp from any to SOME_IP port <span style="color: #000000;">80</span> -<span style="color: #000000; font-weight: bold;">&gt;</span><br />
<span style="color: #7a0874; font-weight: bold;">&#123;</span>10.0.0.1, 10.0.0.2, 10.0.0.3, 10.0.0.4, 10.0.0.5 <span style="color: #7a0874; font-weight: bold;">&#125;</span> port <span style="color: #000000;">3000</span> round-robin</div></td></tr></tbody></table></div>
<p>check work with:<br />
# pfctl -s nat</p>
<p>monitor with:<br />
tcpdump -n -e -ttt -i pflog0</p>
<p>for more info on pf:<br />
<a href="http://www.openbsd.org/faq/pf/">http://www.openbsd.org/faq/pf/</a><br />
man pf.conf (especially &#8216;TRANSLATION&#8217; and &#8216;POOL OPTIONS&#8217; sections)</p>
<p>Then when you see you need more advanced solution for load distribution you can install haproxy.<br />
Check it with [<a href="http://www.openbsd.org/4.5_packages/i386/haproxy-1.3.15.7.tgz-long.html">http://www.openbsd.org/4.5_packages/i386/haproxy-1.3.15.7.tgz-long.html</a>]</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.helion-prime.com/2009/08/12/fast-scalability-of-ruby-on-rails-with-mongrel-under-openbsd.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Twitter directory: our look on how it should work</title>
		<link>http://blogs.helion-prime.com/2009/07/06/twitter-directory-our-look-on-how-it-should-work.html</link>
		<comments>http://blogs.helion-prime.com/2009/07/06/twitter-directory-our-look-on-how-it-should-work.html#comments</comments>
		<pubDate>Mon, 06 Jul 2009 13:32:34 +0000</pubDate>
		<dc:creator>vasiliy.kiryanov</dc:creator>
				<category><![CDATA[internet]]></category>
		<category><![CDATA[web-development]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[twitwho]]></category>

		<guid isPermaLink="false">http://blogs.helion-prime.com/?p=500</guid>
		<description><![CDATA[“Be the change you want to see in the world.”
Mahatma Gandhi, Indian political and spiritual leader (1869 – 1948)
There are a lot of twitter directories on Internet today. Here I would want to check few most popular ones and provide our look on good directory.
Structure of directory
1. plain list of categories
There is a number of [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>“Be the change you want to see in the world.”<br />
Mahatma Gandhi, Indian political and spiritual leader (1869 – 1948)</p></blockquote>
<p>There are a lot of twitter directories on Internet today. Here I would want to check few most popular ones and provide our look on good directory.</p>
<h2>Structure of directory</h2>
<p><strong>1. plain list of categories</strong><br />
There is a number of categories on top page, user select one category, and browse all members in that category.</p>
<p><img class="alignnone size-full wp-image-514" title="justtweetit" src="http://blogs.helion-prime.com/wp-content/uploads/2009/07/justtweetit.png" alt="justtweetit" width="538" height="380" /><br />
example from: [<a href="http://justtweetit.com/">http://justtweetit.com/</a>]</p>
<p>disadvantages:<br />
a. enormous list of categories on main page.<br />
b. cutting the list of categories creates too broad categories where too many entries are placed.</p>
<p><strong>2. tags for naming of entries</strong><br />
For every entry user can provide number of tags, then users can select appropriate tag.<br />
In theory user has ability to select most narrow meaning and thereby limit number of entries.</p>
<p><img class="alignnone size-full wp-image-513" title="wefollow" src="http://blogs.helion-prime.com/wp-content/uploads/2009/07/wefollow.png" alt="wefollow" width="681" height="246" /><br />
example from: [<a href="http://wefollow.com/twitter/tags/">http://wefollow.com/twitter/tags/</a>]</p>
<p>disadvantages:<br />
a. there are still too broad tags like &#8216;celebrity&#8217; with enormous amount of entries.<br />
b. number of tags, so it is hard for user to select most narrow tag.</p>
<p><strong>3.  search engine style</strong><br />
Like in search engine user provides search term, and system search for similar entries.</p>
<p><img class="alignnone size-full wp-image-523" title="twitdir" src="http://blogs.helion-prime.com/wp-content/uploads/2009/07/twitdir.png" alt="twitdir" width="709" height="240" /><br />
example from: [<a href="http://twitdir.com/">http://twitdir.com/</a>]</p>
<p>disadvantages:<br />
a. user should know twitter name.<br />
And if so user can use build-in twitter search [<a href="http://search.twitter.com">http://search.twitter.com</a>]. But what if he/she wants to find for example pop style singer? Then user needs directory again!</p>
<h2>Administration of directory</h2>
<p>All current directories provide possibility to any user to add himself/herself and so suffer from spammers and common(uninterested) users. There should be some quality criteria and some administrators that ensure continues quality of twitter IDs and correctness of provided information.</p>
<p>As it is money consuming tactic directory should make some money to cover costs or use open-source model where authorized users can check entities as it works in DMOZ directory [<a href="http://www.dmoz.org/help/become.html">http://www.dmoz.org/help/become.html</a>]</p>
<h2>Will follow Gandhi&#8217;s idea</h2>
<p>After some discussions within our company we have decided finally to create our own directory of twitter users.<br />
We are taking into account disadvantages of current directories, and so our directory:<br />
*has tree structure to reduce complexity, and size of categories<br />
*uses moderators that ensure quality of twitter IDs before they add them.</p>
<p>Start exploration at: [<a href="http://twitwho.net">http://twitwho.net</a>].</p>
<p>Of course there is unlimited ways to improve everything, and so we are open to any suggestions and complains:<br />
helion-prime&#8217;s twitter: [<a href="http://twitter.com/helionprime">http://twitter.com/helionprime</a>]<br />
twitwhohq&#8217;s twitter: [<a href="http://twitter.com/twitwhohq">http://twitter.com/twitwhohq</a>]</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.helion-prime.com/2009/07/06/twitter-directory-our-look-on-how-it-should-work.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
