<?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" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:gd="http://schemas.google.com/g/2005" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;A08MQns4eyp7ImA9Wx5QEk4.&quot;"><id>tag:blogger.com,1999:blog-979336577915769193</id><updated>2010-08-31T00:31:23.533-07:00</updated><title>Huberry</title><subtitle type="html" /><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://huberry.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://huberry.blogspot.com/" /><author><name>Chris Cherry</name><uri>http://www.blogger.com/profile/09594951937445203992</uri><email>noreply@blogger.com</email></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>3</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/huberry" /><feedburner:info uri="huberry" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;DUUCRXo_cSp7ImA9WxJbEEs.&quot;"><id>tag:blogger.com,1999:blog-979336577915769193.post-7071744022069503182</id><published>2009-07-19T22:16:00.000-07:00</published><updated>2009-07-19T22:21:04.449-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-07-19T22:21:04.449-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="inquiry" /><category scheme="http://www.blogger.com/atom/ns#" term="applications" /><title>announcing Inquiry - FAQs for your apps</title><content type="html">&lt;a href="http://inquiryapp.com/"&gt;Inquiry&lt;/a&gt; is a web based application that hosts and manages Frequently Asked Questions for your projects.&lt;br /&gt;&lt;br /&gt;As developers, we have multiple applications that usually require some kind of light-weight help system. We have found that FAQs are often a good fit. A static list of FAQs was adequate at first, however, as our applications matured we often needed to manage and fine tune those FAQs which meant committing and redeploying an entire application for a simple FAQ update. At this point, we looked into building FAQ management systems into our applications but we soon realized that was not very DRY. This is where Inquiry came in. Having all of our FAQs in one centralized application proved to be a real time saver and enhanced the overall experience for our end-users.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://inquiryapp.com"&gt;Inquiry&lt;/a&gt; is being developed with the following features in mind:&lt;ul class="compact"&gt;&lt;li&gt;Manage FAQs across multiple projects&lt;/li&gt;&lt;li&gt;Create and sort FAQ categories&lt;/li&gt;&lt;li&gt;Customizable layouts for each project&lt;/li&gt;&lt;li&gt;Support for custom domains with CNAMES and proxies&lt;/li&gt;&lt;li&gt;"Was this helpful?" ratings for each FAQ&lt;/li&gt;&lt;li&gt;Embed media in FAQ answers&lt;/li&gt;&lt;li&gt;API access&lt;/li&gt;&lt;/ul&gt;&lt;a href="http://inquiryapp.com"&gt;Inquiry&lt;/a&gt; has just entered &lt;span style="font-weight:bold;"&gt;open beta&lt;/span&gt; so some features may be buggy or incomplete. We welcome all problems, comments, and suggestions.&lt;br /&gt;&lt;br /&gt;Head over to &lt;a href="http://inquiryapp.com/"&gt;http://inquiryapp.com&lt;/a&gt; and sign up for a free account!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/979336577915769193-7071744022069503182?l=huberry.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/huberry/~4/2k4LKEO-QDk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://huberry.blogspot.com/feeds/7071744022069503182/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=979336577915769193&amp;postID=7071744022069503182" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/979336577915769193/posts/default/7071744022069503182?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/979336577915769193/posts/default/7071744022069503182?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/huberry/~3/2k4LKEO-QDk/announcing-inquiry-faqs-for-your-apps.html" title="announcing Inquiry - FAQs for your apps" /><author><name>Sean Huber</name><uri>http://www.blogger.com/profile/04636356101530529540</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="08776164635558514848" /></author><thr:total>0</thr:total><feedburner:origLink>http://huberry.blogspot.com/2009/07/announcing-inquiry-faqs-for-your-apps.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUYCRng7eip7ImA9WxJWF08.&quot;"><id>tag:blogger.com,1999:blog-979336577915769193.post-5259503276949918668</id><published>2009-06-04T16:16:00.000-07:00</published><updated>2009-06-22T20:19:27.602-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-06-22T20:19:27.602-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ruby" /><category scheme="http://www.blogger.com/atom/ns#" term="plugins" /><category scheme="http://www.blogger.com/atom/ns#" term="rails" /><category scheme="http://www.blogger.com/atom/ns#" term="gems" /><title>multiple hosts/domains and proxied requests in rails</title><content type="html">&lt;p&gt;Imagine you have an invoicing application where each client has its own subdomain like http://huberry.ordersapp.com. You'd like to allow clients to use their own domains/uris to access your application like:&lt;/p&gt;&lt;pre name="code" class="bash"&gt;http://huberryorders.com&lt;br /&gt;http://orders.huberry.com&lt;br /&gt;http://huberry.com/orders&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;The &lt;a href="http://github.com/shuber/proxy"&gt;proxy gem/plugin&lt;/a&gt; solves this problem.&lt;/p&gt;&lt;pre name="code" class="bash"&gt;gem install shuber-proxy --source http://gems.github.com&lt;br /&gt;OR&lt;br /&gt;script/plugin install git://github.com/shuber/proxy.git&lt;/pre&gt;&lt;p&gt;The proxy gem/plugin detects forwarded host/uri headers and sets the session domain, default host, and relative url root. Now, any calls to url_for, named route helpers, and view url helpers will use the forwarded host/uri while still allowing you to specifically set the :host and :only_path options to override this behavior. The original session domain, default host, and relative url root are restored after each request.&lt;/p&gt;&lt;p&gt;The proxy gem/plugin also provides functionality to support clients that want to add CNAME or A records to their DNS instead of proxying their domain to your application. You can do something like:&lt;/p&gt;&lt;pre name="code" class="rails"&gt;# config/initializers/proxy.rb&lt;br /&gt;&lt;br /&gt;Proxy.replace_host_with do |request|&lt;br /&gt;  unless request.host =~ /(\.|^)ordersapp.com$/i&lt;br /&gt;    "#{Account.find_by_domain(request.host).try(:subdomain)}.ordersapp.com"&lt;br /&gt;  end&lt;br /&gt;end&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;This snippet of code will detect any hosts that aren't using your application's domain (which is the case for CNAME and A records) and replaces it with the account's subdomain combined with your application's host. This allows you to specify route conditions or any other logic using your application's real host and also overrides all the url generating helpers so that it still looks like the application is living on the client's domain.&lt;/p&gt;&lt;p&gt;Check out &lt;a href="http://github.com/shuber/proxy"&gt;http://github.com/shuber/proxy&lt;/a&gt; for more examples.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/979336577915769193-5259503276949918668?l=huberry.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/huberry/~4/ICk6lYP4F7c" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://huberry.blogspot.com/feeds/5259503276949918668/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=979336577915769193&amp;postID=5259503276949918668" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/979336577915769193/posts/default/5259503276949918668?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/979336577915769193/posts/default/5259503276949918668?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/huberry/~3/ICk6lYP4F7c/multiple-hostsdomains-and-proxied.html" title="multiple hosts/domains and proxied requests in rails" /><author><name>Sean Huber</name><uri>http://www.blogger.com/profile/04636356101530529540</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="08776164635558514848" /></author><thr:total>0</thr:total><feedburner:origLink>http://huberry.blogspot.com/2009/06/multiple-hostsdomains-and-proxied.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkcGRns-fSp7ImA9WxJXEk4.&quot;"><id>tag:blogger.com,1999:blog-979336577915769193.post-4698188779031630607</id><published>2009-03-05T12:35:00.000-08:00</published><updated>2009-06-05T13:33:47.555-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-06-05T13:33:47.555-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ruby" /><category scheme="http://www.blogger.com/atom/ns#" term="gems" /><category scheme="http://www.blogger.com/atom/ns#" term="subversion" /><category scheme="http://www.blogger.com/atom/ns#" term="svn" /><title>git style ignores with svn</title><content type="html">&lt;p&gt;Ignoring files with svn sucks. I love git's simple solution that allows you to have one file called &lt;code&gt;.gitignore&lt;/code&gt; with newline separated patterns that are parsed as ignore rules. Here's a sample &lt;code&gt;.gitignore&lt;/code&gt; file that I use with rails applications:&lt;/p&gt;&lt;pre name="code" class="bash"&gt;config/application_settings.yml&lt;br /&gt;config/database.yml&lt;br /&gt;db/*.sqlite3&lt;br /&gt;log/*.log&lt;br /&gt;tmp/*&lt;/pre&gt;&lt;p&gt;You can do something similar with svn by running a command like:&lt;/p&gt;&lt;pre name="code" class="bash"&gt;svn propset svn:ignore -f some_file.txt .&lt;/pre&gt;&lt;p&gt;but you can't specify rules on any nested directories like &lt;code&gt;tmp/*&lt;/code&gt;. In order to do that, you'd have to run another command:&lt;/p&gt;&lt;pre name="code" class="bash"&gt;svn propset svn:ignore '*' tmp/&lt;/pre&gt;&lt;p&gt;I got tired of all that nonsense and decided to make a script that can parse &lt;code&gt;.gitignore&lt;/code&gt; style files and properly set the correct subversion ignore rules for them. You can get the script and read more about it here: &lt;a href="http://github.com/shuber/svnignore"&gt;http://github.com/shuber/svnignore&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/979336577915769193-4698188779031630607?l=huberry.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/huberry/~4/5c_kjGtL0nM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://huberry.blogspot.com/feeds/4698188779031630607/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=979336577915769193&amp;postID=4698188779031630607" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/979336577915769193/posts/default/4698188779031630607?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/979336577915769193/posts/default/4698188779031630607?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/huberry/~3/5c_kjGtL0nM/git-style-ignores-with-svn.html" title="git style ignores with svn" /><author><name>Sean Huber</name><email>shuber@huberry.com</email></author><thr:total>0</thr:total><feedburner:origLink>http://huberry.blogspot.com/2009/03/git-style-ignores-with-svn.html</feedburner:origLink></entry></feed>
