Permalink
Browse files

Created gh-pages branch via GitHub

  • Loading branch information...
jcxplorer committed Apr 8, 2012
0 parents commit 0c1731d8c210b32bfe2c41acb6021c77d25177eb
Showing with 486 additions and 0 deletions.
  1. +144 −0 index.html
  2. +17 −0 javascripts/scale.fix.js
  3. +1 −0 params.json
  4. +69 −0 stylesheets/pygment_trac.css
  5. +255 −0 stylesheets/styles.css
@@ -0,0 +1,144 @@
+<!doctype html>
+<html>
+ <head>
+ <meta charset="utf-8">
+ <meta http-equiv="X-UA-Compatible" content="chrome=1">
+ <title>Snowfinch by jcxplorer</title>
+
+ <link rel="stylesheet" href="stylesheets/styles.css">
+ <link rel="stylesheet" href="stylesheets/pygment_trac.css">
+ <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
+ <!--[if lt IE 9]>
+ <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+ <![endif]-->
+ </head>
+ <body>
+ <div class="wrapper">
+ <header>
+ <h1>Snowfinch</h1>
+ <p>Realtime web analytics</p>
+ <p class="view"><a href="https://github.com/jcxplorer/snowfinch">View the Project on GitHub <small>jcxplorer/snowfinch</small></a></p>
+ <ul>
+ <li><a href="https://github.com/jcxplorer/snowfinch/zipball/master">Download <strong>ZIP File</strong></a></li>
+ <li><a href="https://github.com/jcxplorer/snowfinch/tarball/master">Download <strong>TAR Ball</strong></a></li>
+ <li><a href="https://github.com/jcxplorer/snowfinch">Fork On <strong>GitHub</strong></a></li>
+ </ul>
+ </header>
+ <section>
+ <h1>Snowfinch</h1>
+
+<p>Snowfinch is a realtime web analytics application written in Ruby, and
+using MongoDB. It provides everything you need to track and visualize
+analytics from multiple sites. While it may not be as full featured as
+commercial alternatives, it is free and released under the MIT license.</p>
+
+<p>Currently, Snowfinch supports: tracking of pageviews, active visits, and
+visitors for a site; pageviews and active visitors for a given page;
+monitoring based on a URI query key-value pair, or based on any given
+number of referrers (think campaigns or tracking the number of visits
+from social media sites). It's not much, but this is only the beginning.<br>
+Take a look at the Roadmap section to see what's coming.</p>
+
+<h2>Getting started</h2>
+
+<p>You will need recent versions of Ruby (1.9.2 recommended) and MongoDB.</p>
+
+<p>If you don't have Bundler installed, install it with:</p>
+
+<pre><code>gem install bundler
+</code></pre>
+
+<p>Clone the repository:</p>
+
+<pre><code>git clone <a href="https://github.com/jcxplorer/snowfinch.git">https://github.com/jcxplorer/snowfinch.git</a>
+</code></pre>
+
+<p>Edit the following files to suit your needs:</p>
+
+<ul>
+<li><code>config/database.yml</code></li>
+<li><code>config/snowfinch.yml</code></li>
+</ul><p>Some information is stored in a relational database, so you can use any
+that is supported by Rails. By default it will use PostgreSQL. Edit the
+<code>config/database.yml</code> and <code>Gemfile</code> files accordingly if you want to use
+a different database.</p>
+
+<p>Install the application dependencies by running <code>bundle</code> in the
+application directory.</p>
+
+<p>Run <code>rake db:setup</code> to create a database and an initial user.</p>
+
+<p>You are now ready to launch the application using your favorite Ruby
+application server such as Passenger or Unicorn. Sign in with the email
+address <em>user@snowfinch.net</em> and password <em>snowfinch</em>. Don't forget to
+change those credentials on your account page!</p>
+
+<h2>High performance and scaling</h2>
+
+<p>Are the pages you are tracking getting too many hits? Good for you!<br>
+Fortunately you don't need to deploy entire instances of Snowfinch in
+multiple hosts. All data collection and storing is a done by a Rack
+application available as a gem. Just install the <code>snowfinch-collector</code>
+gem, and deploy using a <code>config.ru</code> file similar to the following
+example:</p>
+
+<pre><code>require "snowfinch/collector"
+Snowfinch::Collector.db = Mongo::Connection.new.db("snowfinch")
+run Snowfinch::Collector
+</code></pre>
+
+<p>Now you can deploy that on several hosts and get the web scale fix you
+were looking for. Throw some MongoDB shards at it as needed.</p>
+
+<p>By default <code>snowfinch-collector</code> is mounted in the Rails application at
+"/collector" for easier deployment. If you run your own instance,
+remember to make sure that the MongoDB database is the same that the
+Rails application is using, and configure the URI to the collector in
+<code>config/snowfinch.yml</code>.</p>
+
+<p>Just running one separate instance of <code>snowfinch-collector</code> will perform
+better than when mounted in the Rails application, as there will be no
+overhead from the Rails router and middleware.</p>
+
+<h2>Roadmap</h2>
+
+<ul>
+<li>Display data for any given period of time (currently the past 2 days).</li>
+<li>Collect and display referrer information.</li>
+<li>Custom visitor tagging.</li>
+<li>Geographic location of visitors.</li>
+<li>Filter by custom page metadata (e.g. for A/B testing).</li>
+<li>Asynchronous data collector.</li>
+</ul><h2>Reporting bugs</h2>
+
+<p>If you think you found a bug, please file an issue on GitHub. Please try
+your best to provide steps on how to reproduce the issue you are
+experiencing. Failing tests are highly appreciated!</p>
+
+<h2>Contributing</h2>
+
+<p>If you want to contribute, fork away and send a pull request. If you
+want to be sure something will be merged before spending time on it,
+feel free to contact me. Don't worry, hard work won't be thrown away.</p>
+
+<p>Always try to provide tests with your pull requests. If you're not sure
+on how to test something, mention it on the pull request so that you can
+get some help.</p>
+
+<p>I appreciate if you try to stick to the existing coding style, but I can
+always refactor later on. If you can stick to 80 characters a line,
+please do. If you don't yet, try it. It makes you write better code.</p>
+
+<h2>Copyright and licensing</h2>
+
+<p>Copyright 2011, João Cardoso. Snowfinch is released under the MIT
+license.</p>
+ </section>
+ <footer>
+ <p>This project is maintained by <a href="https://github.com/jcxplorer">jcxplorer</a></p>
+ <p><small>Hosted on GitHub Pages &mdash; Theme by <a href="https://github.com/orderedlist">orderedlist</a></small></p>
+ </footer>
+ </div>
+ <script src="javascripts/scale.fix.js"></script>
+ </body>
+</html>
@@ -0,0 +1,17 @@
+var metas = document.getElementsByTagName('meta');
+var i;
+if (navigator.userAgent.match(/iPhone/i)) {
+ for (i=0; i<metas.length; i++) {
+ if (metas[i].name == "viewport") {
+ metas[i].content = "width=device-width, minimum-scale=1.0, maximum-scale=1.0";
+ }
+ }
+ document.addEventListener("gesturestart", gestureStart, false);
+}
+function gestureStart() {
+ for (i=0; i<metas.length; i++) {
+ if (metas[i].name == "viewport") {
+ metas[i].content = "width=device-width, minimum-scale=0.25, maximum-scale=1.6";
+ }
+ }
+}
@@ -0,0 +1 @@
+{"name":"Snowfinch","body":"Snowfinch\r\n=========\r\n\r\nSnowfinch is a realtime web analytics application written in Ruby, and \r\nusing MongoDB. It provides everything you need to track and visualize \r\nanalytics from multiple sites. While it may not be as full featured as \r\ncommercial alternatives, it is free and released under the MIT license.\r\n\r\nCurrently, Snowfinch supports: tracking of pageviews, active visits, and \r\nvisitors for a site; pageviews and active visitors for a given page; \r\nmonitoring based on a URI query key-value pair, or based on any given \r\nnumber of referrers (think campaigns or tracking the number of visits \r\nfrom social media sites). It's not much, but this is only the beginning. \r\nTake a look at the Roadmap section to see what's coming.\r\n\r\n\r\nGetting started\r\n---------------\r\n\r\nYou will need recent versions of Ruby (1.9.2 recommended) and MongoDB.\r\n\r\nIf you don't have Bundler installed, install it with:\r\n\r\n gem install bundler\r\n\r\nClone the repository:\r\n\r\n git clone https://github.com/jcxplorer/snowfinch.git\r\n\r\nEdit the following files to suit your needs:\r\n\r\n* `config/database.yml`\r\n* `config/snowfinch.yml`\r\n\r\nSome information is stored in a relational database, so you can use any \r\nthat is supported by Rails. By default it will use PostgreSQL. Edit the \r\n`config/database.yml` and `Gemfile` files accordingly if you want to use \r\na different database.\r\n\r\nInstall the application dependencies by running `bundle` in the \r\napplication directory.\r\n\r\nRun `rake db:setup` to create a database and an initial user.\r\n\r\nYou are now ready to launch the application using your favorite Ruby \r\napplication server such as Passenger or Unicorn. Sign in with the email \r\naddress _user@snowfinch.net_ and password _snowfinch_. Don't forget to \r\nchange those credentials on your account page!\r\n\r\n\r\nHigh performance and scaling\r\n----------------------------\r\n\r\nAre the pages you are tracking getting too many hits? Good for you! \r\nFortunately you don't need to deploy entire instances of Snowfinch in \r\nmultiple hosts. All data collection and storing is a done by a Rack \r\napplication available as a gem. Just install the `snowfinch-collector` \r\ngem, and deploy using a `config.ru` file similar to the following \r\nexample:\r\n\r\n require \"snowfinch/collector\"\r\n Snowfinch::Collector.db = Mongo::Connection.new.db(\"snowfinch\")\r\n run Snowfinch::Collector\r\n\r\nNow you can deploy that on several hosts and get the web scale fix you \r\nwere looking for. Throw some MongoDB shards at it as needed.\r\n\r\nBy default `snowfinch-collector` is mounted in the Rails application at \r\n\"/collector\" for easier deployment. If you run your own instance, \r\nremember to make sure that the MongoDB database is the same that the \r\nRails application is using, and configure the URI to the collector in \r\n`config/snowfinch.yml`.\r\n\r\nJust running one separate instance of `snowfinch-collector` will perform \r\nbetter than when mounted in the Rails application, as there will be no \r\noverhead from the Rails router and middleware.\r\n\r\n\r\nRoadmap\r\n-------\r\n\r\n* Display data for any given period of time (currently the past 2 days).\r\n* Collect and display referrer information.\r\n* Custom visitor tagging.\r\n* Geographic location of visitors.\r\n* Filter by custom page metadata (e.g. for A/B testing).\r\n* Asynchronous data collector.\r\n\r\n\r\nReporting bugs\r\n--------------\r\n\r\nIf you think you found a bug, please file an issue on GitHub. Please try \r\nyour best to provide steps on how to reproduce the issue you are \r\nexperiencing. Failing tests are highly appreciated!\r\n\r\n\r\nContributing\r\n------------\r\n\r\nIf you want to contribute, fork away and send a pull request. If you \r\nwant to be sure something will be merged before spending time on it, \r\nfeel free to contact me. Don't worry, hard work won't be thrown away.\r\n\r\nAlways try to provide tests with your pull requests. If you're not sure \r\non how to test something, mention it on the pull request so that you can \r\nget some help.\r\n\r\nI appreciate if you try to stick to the existing coding style, but I can \r\nalways refactor later on. If you can stick to 80 characters a line, \r\nplease do. If you don't yet, try it. It makes you write better code.\r\n\r\n\r\nCopyright and licensing\r\n-----------------------\r\n\r\nCopyright 2011, João Cardoso. Snowfinch is released under the MIT \r\nlicense.","tagline":"Realtime web analytics","google":"","note":"Don't delete this file! It's used internally to help with page regeneration."}
@@ -0,0 +1,69 @@
+.highlight { background: #ffffff; }
+.highlight .c { color: #999988; font-style: italic } /* Comment */
+.highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */
+.highlight .k { font-weight: bold } /* Keyword */
+.highlight .o { font-weight: bold } /* Operator */
+.highlight .cm { color: #999988; font-style: italic } /* Comment.Multiline */
+.highlight .cp { color: #999999; font-weight: bold } /* Comment.Preproc */
+.highlight .c1 { color: #999988; font-style: italic } /* Comment.Single */
+.highlight .cs { color: #999999; font-weight: bold; font-style: italic } /* Comment.Special */
+.highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */
+.highlight .gd .x { color: #000000; background-color: #ffaaaa } /* Generic.Deleted.Specific */
+.highlight .ge { font-style: italic } /* Generic.Emph */
+.highlight .gr { color: #aa0000 } /* Generic.Error */
+.highlight .gh { color: #999999 } /* Generic.Heading */
+.highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */
+.highlight .gi .x { color: #000000; background-color: #aaffaa } /* Generic.Inserted.Specific */
+.highlight .go { color: #888888 } /* Generic.Output */
+.highlight .gp { color: #555555 } /* Generic.Prompt */
+.highlight .gs { font-weight: bold } /* Generic.Strong */
+.highlight .gu { color: #800080; font-weight: bold; } /* Generic.Subheading */
+.highlight .gt { color: #aa0000 } /* Generic.Traceback */
+.highlight .kc { font-weight: bold } /* Keyword.Constant */
+.highlight .kd { font-weight: bold } /* Keyword.Declaration */
+.highlight .kn { font-weight: bold } /* Keyword.Namespace */
+.highlight .kp { font-weight: bold } /* Keyword.Pseudo */
+.highlight .kr { font-weight: bold } /* Keyword.Reserved */
+.highlight .kt { color: #445588; font-weight: bold } /* Keyword.Type */
+.highlight .m { color: #009999 } /* Literal.Number */
+.highlight .s { color: #d14 } /* Literal.String */
+.highlight .na { color: #008080 } /* Name.Attribute */
+.highlight .nb { color: #0086B3 } /* Name.Builtin */
+.highlight .nc { color: #445588; font-weight: bold } /* Name.Class */
+.highlight .no { color: #008080 } /* Name.Constant */
+.highlight .ni { color: #800080 } /* Name.Entity */
+.highlight .ne { color: #990000; font-weight: bold } /* Name.Exception */
+.highlight .nf { color: #990000; font-weight: bold } /* Name.Function */
+.highlight .nn { color: #555555 } /* Name.Namespace */
+.highlight .nt { color: #000080 } /* Name.Tag */
+.highlight .nv { color: #008080 } /* Name.Variable */
+.highlight .ow { font-weight: bold } /* Operator.Word */
+.highlight .w { color: #bbbbbb } /* Text.Whitespace */
+.highlight .mf { color: #009999 } /* Literal.Number.Float */
+.highlight .mh { color: #009999 } /* Literal.Number.Hex */
+.highlight .mi { color: #009999 } /* Literal.Number.Integer */
+.highlight .mo { color: #009999 } /* Literal.Number.Oct */
+.highlight .sb { color: #d14 } /* Literal.String.Backtick */
+.highlight .sc { color: #d14 } /* Literal.String.Char */
+.highlight .sd { color: #d14 } /* Literal.String.Doc */
+.highlight .s2 { color: #d14 } /* Literal.String.Double */
+.highlight .se { color: #d14 } /* Literal.String.Escape */
+.highlight .sh { color: #d14 } /* Literal.String.Heredoc */
+.highlight .si { color: #d14 } /* Literal.String.Interpol */
+.highlight .sx { color: #d14 } /* Literal.String.Other */
+.highlight .sr { color: #009926 } /* Literal.String.Regex */
+.highlight .s1 { color: #d14 } /* Literal.String.Single */
+.highlight .ss { color: #990073 } /* Literal.String.Symbol */
+.highlight .bp { color: #999999 } /* Name.Builtin.Pseudo */
+.highlight .vc { color: #008080 } /* Name.Variable.Class */
+.highlight .vg { color: #008080 } /* Name.Variable.Global */
+.highlight .vi { color: #008080 } /* Name.Variable.Instance */
+.highlight .il { color: #009999 } /* Literal.Number.Integer.Long */
+
+.type-csharp .highlight .k { color: #0000FF }
+.type-csharp .highlight .kt { color: #0000FF }
+.type-csharp .highlight .nf { color: #000000; font-weight: normal }
+.type-csharp .highlight .nc { color: #2B91AF }
+.type-csharp .highlight .nn { color: #000000 }
+.type-csharp .highlight .s { color: #A31515 }
+.type-csharp .highlight .sc { color: #A31515 }
Oops, something went wrong.

0 comments on commit 0c1731d

Please sign in to comment.