<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-US">
  <title>Hash Train - Home</title>
  <id>tag:www.hashtrain.com,2009:mephisto/</id>
  <generator uri="http://mephistoblog.com" version="0.8.0">Mephisto Drax</generator>
  
  <link href="http://www.hashtrain.com/" rel="alternate" type="text/html" />
  <updated>2008-08-06T06:27:29Z</updated>
  <link rel="self" href="http://feeds.feedburner.com/hash-train" type="application/atom+xml" /><entry xml:base="http://www.hashtrain.com/">
    <author>
      <name>soulim</name>
    </author>
    <id>tag:www.hashtrain.com,2008-08-05:9</id>
    <published>2008-08-05T10:03:00Z</published>
    <updated>2008-08-06T06:27:29Z</updated>
    <category term="Blog" />
    <link href="http://www.hashtrain.com/2008/8/5/why-we-create-teaser-1-2-3" rel="alternate" type="text/html" />
    <title>Why we create Teaser 1-2-3</title>
<summary type="html">&lt;p&gt;Our service is working openly only two days. As we expected, the project is getting different attention— somebody greets, somebody doesn’t trust. So, why have we done &lt;a href="http://teaser123.net"&gt;Teaser 1-2-3&lt;/a&gt;?&lt;/p&gt;</summary><content type="html">
            &lt;p&gt;Our service is working openly only two days. As we expected, the project is getting different attention— somebody greets, somebody doesn’t trust. So, why have we done &lt;a href="http://teaser123.net"&gt;Teaser 1-2-3&lt;/a&gt;?&lt;/p&gt;
&lt;p&gt;As we said in previous article, we’ve done it for our own needs, exactly for a one of our projects: &lt;a href="http://estatehq.ru"&gt;EstateHQ&lt;/a&gt; (Estate headquarters).&lt;/p&gt;


	&lt;p&gt;The true is that The Headquarters is not only project we planned, so, there will be other “teaser” projects. And it was a good idea to take out the teaser page code into individual service. The service with comfortable interface makes “teaser routine”.&lt;/p&gt;


	&lt;p&gt;The principle of &lt;a href="http://teaser123.net"&gt;Teaser 1-2-3&lt;/a&gt; allows using a &lt;span class="caps"&gt;HTML&lt;/span&gt; support only on server with teaser page :) You make minimally two pages: the first one with the form of registration generated by &lt;a href="http://teaser123.net"&gt;Teaser 1-2-3&lt;/a&gt;, and the second one welcomes user after his successful registration— with your thanks for passed e-mail. This technical feature could be useful for you if your project server is not fully set up yet.&lt;/p&gt;


	&lt;p&gt;So, then we decided to share the service with other developers for free.&lt;/p&gt;


	&lt;p&gt;Ask your questions and exchange experiences at the support group, it’s address &lt;a href="http://groups.google.com/group/teaser123"&gt;http://groups.google.com/group/teaser123&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://teaser123.net"&gt;Teaser 1-2-3&lt;/a&gt; is absolutely free. Your respect, if our service helps you economize your time and concentrate on your project, is the only payment for us.&lt;/p&gt;


	&lt;p&gt;Have a nice work!&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://www.hashtrain.com/">
    <author>
      <name>soulim</name>
    </author>
    <id>tag:www.hashtrain.com,2008-08-05:8</id>
    <published>2008-08-05T09:56:00Z</published>
    <updated>2008-08-07T12:05:37Z</updated>
    <category term="Blog" />
    <link href="http://www.hashtrain.com/2008/8/5/teaser-1-2-3-free-service-for-developers-2" rel="alternate" type="text/html" />
    <title>Teaser 1-2-3. Free service for web-developers</title>
<summary type="html">&lt;p&gt;The creation of any new project is some stages way, and one of the stages is announcing of the project with help of teaser page— you just lift the veil of mystery and declare forthcoming opening of a new service.&lt;/p&gt;


	&lt;p&gt;So, collecting of e-mails on the teaser page is a classic way. You can and had to tell all that persons about every stage of development, to invite them for the opening; their interest is very important thing for you, as a matter of fact they are your first and probably the most loyal users!&lt;/p&gt;</summary><content type="html">
            &lt;p&gt;The creation of any new project is some stages way, and one of the stages is announcing of the project with help of teaser page— you just lift the veil of mystery and declare forthcoming opening of a new service.&lt;/p&gt;


	&lt;p&gt;So, collecting of e-mails on the teaser page is a classic way. You can and had to tell all that persons about every stage of development, to invite them for the opening; their interest is very important thing for you, as a matter of fact they are your first and probably the most loyal users!&lt;/p&gt;
&lt;h2&gt;Background&lt;/h2&gt;


	&lt;p&gt;Have you read &lt;a href="http://gettingreal.37signals.com/"&gt;Getting Real&lt;/a&gt;? There was mention about stage of the collecting of e-mails on the teaser page.&lt;/p&gt;


	&lt;p&gt;So, this is not a problem. But it could be a technical problem if you planning one or more new projects. We made this product for our own needs— to solve this task (collecting of e-mails and comfortable work with it). Then we decided to share it with other developers, and &lt;a href="http://teaser123.net"&gt;Teaser 1-2-3&lt;/a&gt; was created.&lt;/p&gt;


	&lt;h2&gt;Features&lt;/h2&gt;


	&lt;p&gt;The main function— collecting and management of e-mails of all persons registered on a teaser page. &lt;a href="http://teaser123.net"&gt;Teaser 1-2-3&lt;/a&gt; allows generation of a special code for placing it on the teaser page to get a registration form.&lt;/p&gt;


	&lt;p&gt;When user fill the form and sent you e-mail, &lt;a href="http://teaser123.net"&gt;Teaser 1-2-3&lt;/a&gt; save this e-mail and redirect the user to the page “Thank you for your registration” (the page address you point at your profile).&lt;/p&gt;


	&lt;p&gt;Besides, after saving of e-mail &lt;a href="http://teaser123.net"&gt;Teaser 1-2-3&lt;/a&gt; sends “welcome” letter, with text made by your own.&lt;/p&gt;


	&lt;p&gt;At the user profile &lt;a href="http://teaser123.net"&gt;Teaser 1-2-3&lt;/a&gt; you can manage e-mails list; after “teaser” stage you can export this list into &lt;span class="caps"&gt;CSV&lt;/span&gt; format to use it in future.&lt;/p&gt;


	&lt;p&gt;Pleasant detail— &lt;a href="http://teaser123.net"&gt;Teaser 1-2-3&lt;/a&gt; remember address, where is user came to your teaser page from.&lt;/p&gt;


	&lt;h2&gt;Resume&lt;/h2&gt;


	&lt;p&gt;Keep an eye on our blog, to know all renovations of the &lt;a href="http://teaser123.net"&gt;Teaser 1-2-3&lt;/a&gt;. The most comfortable way is to do it by &lt;a href="http://feeds.feedburner.com/hash-train"&gt;feed&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;Ask your questions at &lt;a href="http://groups.google.com/group/teaser123"&gt;support group&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;Have a pleasant work!&lt;/p&gt;


&lt;div class="right-text"&gt;
&lt;/div&gt;
          </content>  </entry>
  <entry xml:base="http://www.hashtrain.com/">
    <author>
      <name>shaliko</name>
    </author>
    <id>tag:www.hashtrain.com,2008-04-27:2</id>
    <published>2008-04-27T12:41:00Z</published>
    <updated>2008-08-14T10:05:15Z</updated>
    <category term="Blog" />
    <link href="http://www.hashtrain.com/2008/4/27/2" rel="alternate" type="text/html" />
    <title>Rails and SSL</title>
<summary type="html">&lt;p&gt;Sometimes it’s necessary to encrypt traffic from some parts of site. Thereto you had to use &lt;span class="caps"&gt;HTTPS&lt;/span&gt; protocol. &lt;span class="caps"&gt;HTTPS&lt;/span&gt; is widely used all over the &lt;span class="caps"&gt;WEB&lt;/span&gt; world in applications demanding safe connecting, for example, in payment systems.&lt;/p&gt;


	&lt;p&gt;Rails developers confront by some problem: Mongrel and Webrick are not support &lt;span class="caps"&gt;SSL&lt;/span&gt; encription.&lt;/p&gt;</summary><content type="html">
            &lt;p&gt;Sometimes it’s necessary to encrypt traffic from some parts of site. Thereto you had to use &lt;span class="caps"&gt;HTTPS&lt;/span&gt; protocol. &lt;span class="caps"&gt;HTTPS&lt;/span&gt; is widely used all over the &lt;span class="caps"&gt;WEB&lt;/span&gt; world in applications demanding safe connecting, for example, in payment systems.&lt;/p&gt;


	&lt;p&gt;Rails developers confront by some problem: Mongrel and Webrick are not support &lt;span class="caps"&gt;SSL&lt;/span&gt; encription.&lt;/p&gt;
&lt;p&gt;A quotation from Mongrel &lt;span class="caps"&gt;FAQ&lt;/span&gt;:&lt;/p&gt;


	&lt;blockquote&gt;
		&lt;p&gt;Does Mongrel support &lt;span class="caps"&gt;SSL&lt;/span&gt;?
No, it isn’t efficiently to make &lt;span class="caps"&gt;SSL&lt;/span&gt; encription support in Ruby web-server because you can use any of popular web-servers, if would work faster.&lt;/p&gt;
	&lt;/blockquote&gt;


	&lt;h2&gt;Web-server setup&lt;/h2&gt;


	&lt;h3&gt;Apache&lt;/h3&gt;


&lt;pre&gt;&lt;code class="html"&gt;&amp;lt;VirtualHost *:80&amp;gt;
   ServerName localhost
   ServerAlias 127.0.0.1

   ProxyPass / http://localhost:3000/
   ProxyPassReverse / http://localhost:3000
   ProxyPreserveHost on
&amp;lt;/VirtualHost&amp;gt;

&amp;lt;VirtualHost *:443&amp;gt;
    SSLEngine On
    ServerName localhost
    ServerAlias 127.0.0.1

    ProxyPass / http://localhost:3000/
    ProxyPassReverse / http://localhost:3000
    ProxyPreserveHost on

    SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
    SSLCertificateFile &amp;quot;/etc/httpd/ssl/mysite.crt&amp;quot;
    SSLCertificateKeyFile &amp;quot;/etc/httpd/ssl/mysite.key&amp;quot;

    # Установите X-FORWARDED_PROTO для работы с ssl_requirement плагином
    RequestHeader set X_FORWARDED_PROTO 'https'
&amp;lt;/VirtualHost&amp;gt;&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;&lt;em&gt;&lt;strong&gt;Our advice:&lt;/strong&gt; Use Apache 2.x.x and higher to avoid great number of problems.&lt;/em&gt;&lt;/p&gt;


	&lt;h3&gt;nginx&lt;/h3&gt;


&lt;pre&gt;&lt;code class="html"&gt;server {
  listen 443;
  ssl on;

  # ssl сертификат
  ssl_certificate /etc/nginx/certs/server.crt; 
  # ssl ключ
  ssl_certificate_key /etc/nginx/certs/server.key; 

  location / {
     # Установите X-FORWARDED_PROTO для работы с ssl_requirement плагином
     proxy_set_header X-FORWARDED_PROTO https;
  }
}&lt;/code&gt;&lt;/pre&gt;

	&lt;h2&gt;Plugin&lt;/h2&gt;


	&lt;p&gt;Use plugin &lt;a href="http://dev.rubyonrails.org/svn/rails/plugins/ssl_requirement/"&gt;&lt;span class="caps"&gt;SSL&lt;/span&gt; Requirement&lt;/a&gt; for comfortable work with &lt;span class="caps"&gt;HTTPS&lt;/span&gt; connection.&lt;/p&gt;


&amp;gt;&lt;pre&gt;&lt;code class="ruby"&gt;class ApplicationController &amp;lt; ActiveRecord::Base
    include SslRequirement
end&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code class="ruby"&gt;class AccountController &amp;lt; ApplicationController
    ssl_required :signup, :payment
    ssl_allowed :index

    def signup
      # Non-SSL access will be redirected to SSL
    end

    def payment
      # Non-SSL access will be redirected to SSL
    end

    def index
      # This action will work either with or without SSL
    end

    def other
      # SSL access will be redirected to non-SSL
    end
  end&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;Have a nice work!&lt;/p&gt;
          </content>  </entry>
</feed>
