<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0' version='2.0'><channel><atom:id>tag:blogger.com,1999:blog-4838020467593866100</atom:id><lastBuildDate>Fri, 18 May 2012 20:31:39 +0000</lastBuildDate><category>ruby</category><category>pubget</category><category>ImageMagick</category><category>first post</category><category>office</category><category>welcome</category><category>mysql</category><category>rails</category><category>deployment</category><category>coffee</category><category>github</category><category>osx</category><category>continuous build</category><category>hardware</category><title>Pubget Tech Blog</title><description></description><link>http://tech.pubget.com/</link><managingEditor>noreply@blogger.com (Ahmed Abdalla)</managingEditor><generator>Blogger</generator><openSearch:totalResults>9</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-4838020467593866100.post-6933364629951065086</guid><pubDate>Tue, 20 Dec 2011 20:59:00 +0000</pubDate><atom:updated>2011-12-20T14:47:34.337-08:00</atom:updated><title>Getting more out of GitHub with Pubget’s Chrome Extension</title><description>At Pubget we host our code base on GitHub because of its simplicity, reliability, and great web interface. The extent to which we depend on GitHub is far more than as a convenience, but as the backbone of our engineering team.&lt;br /&gt;&lt;br /&gt;Consequently, when GitHub doesn’t have all of the features we need to do our work as efficiently as possible, it’s not just an annoyance, but a source of friction for the entire organization. To grease the wheels of our daily workflow, we’ve begun building a suite of “GitHub Extras” in the form of a Chrome Extension (we've also used the API to &lt;a href="http://tech.pubget.com/2011/11/how-to-notify-github-issues-when-you.html"&gt;add tags&lt;/a&gt; when we deploy!). Our focus thus far has been on the Issues tool provided by the web interface, upon which we have now added the ability to upload attachments or include a screenshot  from any open tab.&lt;br /&gt;&lt;br /&gt;What does this mean for our organization? When our product team completes a new feature spec, it’s a simple one-click to upload the Word doc to a new issue for the dev team.  While testing internally and a page renders incorrectly on Internet Explorer, it’s a two-second task for the QA team to grab a snapshot of the offending site and create an issue for it. &lt;br /&gt;&lt;br /&gt;As we say, “time saved is time spent coding,” and we love to code!&lt;br /&gt;&lt;br /&gt;Download the extension &lt;a href="https://chrome.google.com/webstore/detail/kameeinbjnhfgamlnaofmcicajelchjn"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Learn more about our dev team workflow &lt;a href="http://tech.pubget.com/2011/11/how-to-notify-github-issues-when-you.html"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-cbePPJeHuYk/TvD12FMFROI/AAAAAAAAAC4/6opH6e9Beeo/s1600/github%2Bissue%2Bsubmitter%2Bss.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 200px;" src="http://4.bp.blogspot.com/-cbePPJeHuYk/TvD12FMFROI/AAAAAAAAAC4/6opH6e9Beeo/s320/github%2Bissue%2Bsubmitter%2Bss.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5688316638823531746" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-wZLsjxZwcdU/TvD16ruxEcI/AAAAAAAAADE/Srx0_vyhkEI/s1600/ss1.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 200px;" src="http://2.bp.blogspot.com/-wZLsjxZwcdU/TvD16ruxEcI/AAAAAAAAADE/Srx0_vyhkEI/s320/ss1.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5688316717889032642" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4838020467593866100-6933364629951065086?l=tech.pubget.com' alt='' /&gt;&lt;/div&gt;</description><link>http://tech.pubget.com/2011/12/getting-more-out-of-github-with-pubgets.html</link><author>noreply@blogger.com (Mike Anderson)</author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-cbePPJeHuYk/TvD12FMFROI/AAAAAAAAAC4/6opH6e9Beeo/s72-c/github%2Bissue%2Bsubmitter%2Bss.png' height='72' width='72'/><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-4838020467593866100.post-6808299696720959288</guid><pubDate>Tue, 29 Nov 2011 21:10:00 +0000</pubDate><atom:updated>2011-11-30T13:06:48.126-08:00</atom:updated><title>Pubget's automated builds</title><description>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div style="margin-left: 1em; margin-right: 1em;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;As a small team, we don't have the luxury of dedicated release engineers and thus need to automate our build as much as possible. To do this we use git branches, CruiseControl.rb and some nifty shell scripts to keep new code flowing. Coupled with the automation, we also have a weekly build master rotation where one member of the dev team shields the rest from tracking down build failures.&lt;br /&gt;&lt;br /&gt;Ok, a picture is worth a thousand words so here's our code flow (everything green is automated):&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://docs.google.com/drawings/pub?id=1bQtdeL9xE6s6Q-vPNEgvVNKMDmMfX3TJhaEvi28mMzc&amp;amp;w=960&amp;amp;h=720" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img src="https://docs.google.com/drawings/pub?id=1bQtdeL9xE6s6Q-vPNEgvVNKMDmMfX3TJhaEvi28mMzc&amp;amp;w=960&amp;amp;h=720" width="400" border="0" height="300" /&gt;&lt;/a&gt;&lt;/div&gt;Developers will typically workout out of the &lt;span style="font-weight: bold;"&gt;DEVELOPMENT&lt;/span&gt; branch so this is where new code begins flowing through the system. We find that it's good practice to link submissions to GitHub issues for management &amp;amp; &lt;a href="http://tech.pubget.com/2011/11/how-to-notify-github-issues-when-you.html"&gt;deploy tracking&lt;/a&gt;. The changes then get pulled into &lt;span style="font-weight: bold;"&gt;STAGING&lt;/span&gt; which is the continuous build branch for automated testing. We like CruiseControl.rb because it's light weight &amp;amp; low maintenance. If tests fail, the build master is notified and he can track down the right person to fix the failing test in staging. Once the build is green, the qualified code gets pushed to &lt;span style="font-weight: bold;"&gt;MASTER&lt;/span&gt; which is the production branch behind &lt;a href="http://pubget.com/"&gt;pubget.com&lt;/a&gt;. Since the master branch is considered the healthiest, it feeds down into development and any other project branches that may exist. At this point every branch now has that latest code change and the process begins again.&lt;br /&gt;&lt;br /&gt;Too many words? Here's the short flow:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;  devs submit to development&lt;/li&gt;&lt;li&gt;changes are tested in staging&lt;/li&gt;&lt;li&gt;qualified changes get pushed to master&lt;/li&gt;&lt;li&gt;development &amp;amp; special project branches stay close to shore through master&lt;/li&gt;&lt;/ol&gt;It's definitely worth mentioning that when test failures happen in staging, the automation pauses. Nothing is pulled from development into staging and nothing is pushed from staging into master. This ensures that only healthy code makes its way into production and only the developer that broke the build needs to fix staging. Other developers can continue merging changes into development knowing they will be tested once staging is working again.&lt;br /&gt;&lt;br /&gt;This process has helped in a bunch of ways:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;developers submit code and trust that it will be qualified, deployed &amp;amp; propagated to all branches&lt;/li&gt;&lt;li&gt;developers stay productive even when the build is broken&lt;/li&gt;&lt;li&gt;we have a production branch where we can quickly apply a hotfix if needed&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4838020467593866100-6808299696720959288?l=tech.pubget.com' alt='' /&gt;&lt;/div&gt;</description><link>http://tech.pubget.com/2011/11/pubgets-automated-builds.html</link><author>noreply@blogger.com (Ian Connor)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-4838020467593866100.post-6402865459400136363</guid><pubDate>Fri, 04 Nov 2011 20:06:00 +0000</pubDate><atom:updated>2011-11-04T14:17:31.382-07:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>deployment</category><category domain='http://www.blogger.com/atom/ns#'>continuous build</category><category domain='http://www.blogger.com/atom/ns#'>github</category><title>How to notify github issues when you deploy</title><description>A common problem in any production application is that there is a natural delay between submitting a fix and the fix being deployed. Even with an awesome continuous build process that uses &lt;a href="http://tech.pubget.com/2011/07/faster-tests-for-rails.html"&gt;fast parallel testing&lt;/a&gt;, it can be hours or a day before the production site sees the fix.&lt;br /&gt;&lt;br /&gt;This means the customer service folks either have to continously check the production site or the deployment logs and then know how to test or match the fix numbers with the deployments. This is a hard problem that either solved with labor or customers get notified something is fixed before they can test the fix.&lt;br /&gt;&lt;br /&gt;At Pubget, we use github and rake for deployments (to passenger apache servers). So, we decided to solve this problem with code. Essentially, when a fix or number of fixes are deployed, we use the github API to comment on each issue when it is deployed. This allows the customer service folks who are participating in the issues to get automatically notified when their fixes make their way through the build process.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;To do this, we call this from the deployment rake task: &lt;a href="https://gist.github.com/1340400"&gt;&lt;img style="margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 242px;" src="http://2.bp.blogspot.com/-2jd2a1pq-1w/TrRVi52IyeI/AAAAAAAAAD0/2ftGCIYiExU/s320/Screen%2BShot%2B2011-11-04%2Bat%2B5.13.05%2BPM.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5671251888898099682" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This looks for fixes that have made its way to the master branch, through our build process and that have our deploy tag and update them with a comment when the fix was deployed.&lt;br /&gt;&lt;br /&gt;Now the customer service folks know exactly when their fixes are on the production site and don't need to monitor or ask developers when they can connect with the customer to give them the good news that their bugs have been fixed.&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 320px; height: 217px;" src="http://3.bp.blogspot.com/-Z4W5Kk4-0-o/TrRWEzQpKEI/AAAAAAAAAEA/7I5jurvbdiE/s320/Screen%2BShot%2B2011-11-04%2Bat%2B5.15.34%2BPM.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5671252471245776962" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4838020467593866100-6402865459400136363?l=tech.pubget.com' alt='' /&gt;&lt;/div&gt;</description><link>http://tech.pubget.com/2011/11/how-to-notify-github-issues-when-you.html</link><author>noreply@blogger.com (Ian Connor)</author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-2jd2a1pq-1w/TrRVi52IyeI/AAAAAAAAAD0/2ftGCIYiExU/s72-c/Screen%2BShot%2B2011-11-04%2Bat%2B5.13.05%2BPM.png' height='72' width='72'/><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-4838020467593866100.post-8132503434039866260</guid><pubDate>Thu, 20 Oct 2011 21:56:00 +0000</pubDate><atom:updated>2011-10-20T15:00:35.973-07:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>pubget</category><category domain='http://www.blogger.com/atom/ns#'>coffee</category><category domain='http://www.blogger.com/atom/ns#'>office</category><title>How many coffees does it take to make Pubget?</title><description>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-PeqdpmyYi4M/TqCZ2tOsq1I/AAAAAAAAABQ/knw2ityzTgo/s1600/IMG_0820.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 200px; height: 150px;" src="http://1.bp.blogspot.com/-PeqdpmyYi4M/TqCZ2tOsq1I/AAAAAAAAABQ/knw2ityzTgo/s200/IMG_0820.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5665697496365312850" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;About 50 business days ago we got a new coffee machine. It has a neat feature that it actually counts all the coffees it makes. The number today was 1483. This means, it takes about 30 coffees a day!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4838020467593866100-8132503434039866260?l=tech.pubget.com' alt='' /&gt;&lt;/div&gt;</description><link>http://tech.pubget.com/2011/10/how-many-coffees-does-it-take-to-make.html</link><author>noreply@blogger.com (Ian Connor)</author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-PeqdpmyYi4M/TqCZ2tOsq1I/AAAAAAAAABQ/knw2ityzTgo/s72-c/IMG_0820.JPG' height='72' width='72'/><thr:total>1</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-4838020467593866100.post-8132774041545808303</guid><pubDate>Sat, 20 Aug 2011 16:39:00 +0000</pubDate><atom:updated>2011-08-20T09:41:55.873-07:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>hardware</category><title>New hardware is installed and ready to go!</title><description>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-30o69Kt2YiU/Tk_jY0i7-JI/AAAAAAAAAA8/n3A2R5Qi704/s1600/IMG_0744.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 238px; height: 320px;" src="http://4.bp.blogspot.com/-30o69Kt2YiU/Tk_jY0i7-JI/AAAAAAAAAA8/n3A2R5Qi704/s320/IMG_0744.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5642978873680066706" /&gt;&lt;/a&gt;&lt;br /&gt;Now that the hardware is in place, our new Hadoop/HBase cluster is almost ready for the team to use!&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4838020467593866100-8132774041545808303?l=tech.pubget.com' alt='' /&gt;&lt;/div&gt;</description><link>http://tech.pubget.com/2011/08/new-hardware-is-installed-and-ready-to.html</link><author>noreply@blogger.com (Ian Connor)</author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-30o69Kt2YiU/Tk_jY0i7-JI/AAAAAAAAAA8/n3A2R5Qi704/s72-c/IMG_0744.JPG' height='72' width='72'/><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-4838020467593866100.post-6870766591883022073</guid><pubDate>Thu, 21 Jul 2011 17:41:00 +0000</pubDate><atom:updated>2011-07-21T11:31:25.787-07:00</atom:updated><title>Faster tests for Rails</title><description>We have a lot of tests. Everytime there is a problem on pubget.com, we try to turn this into a test. This has added up over the last 3 years to 2 hours of functional and unit tests (we have others but not for the pubget.com build process).&lt;br /&gt;&lt;br /&gt;Recently we lost one of our testing servers due hardware failure. This in itself was not problem as all the tests and database configuration is easily reproduced. However, waiting 2 hours between starting a test and checking if it worked was too long to wait.&lt;br /&gt;&lt;br /&gt;We also noticed the server was not taxed at all. The CPU was not busy, HDD hardly getting much use and the memory was plentiful. The problem was just everying was single threaded and not using the 4 cores available.&lt;br /&gt;&lt;br /&gt;As a result, we looked into a multi process solution to this. Thanks to the good work at &lt;a href="http://ruby-toolbox.com/"&gt;http://ruby-toolbox.com/&lt;/a&gt;, we started with &lt;br /&gt;&lt;a href="https://github.com/grosser/parallel_tests"&gt;Parallel Tests&lt;/a&gt; and found it 100% compatible with &lt;a href="https://github.com/pubget/cruisecontrol.rb"&gt;our fork of CruiseControl.rb&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;We had to manually create the pubget_test1, pubget_test2, etc databases because our rails user does not have database create permissions but the rest of the instructions in their README worked perfectly.&lt;br /&gt;&lt;br /&gt;If you want to save time in your tests and have more than one core or processor - I would encourage parallel testing. The next step is probably multi-box testing but this was such an easy win to double performance it was irresistible to include when we rebuilt the server.&lt;br /&gt;&lt;br /&gt;* We also now have a hot spare for the build server thanks to &lt;a href="http://www.cis.upenn.edu/~bcpierce/unison/"&gt;unison&lt;/a&gt; for making a hot spare very easy to maintain.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4838020467593866100-6870766591883022073?l=tech.pubget.com' alt='' /&gt;&lt;/div&gt;</description><link>http://tech.pubget.com/2011/07/faster-tests-for-rails.html</link><author>noreply@blogger.com (Ian Connor)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-4838020467593866100.post-3267896163193943355</guid><pubDate>Sat, 02 Jul 2011 17:09:00 +0000</pubDate><atom:updated>2011-07-02T10:15:19.381-07:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>ruby</category><category domain='http://www.blogger.com/atom/ns#'>ImageMagick</category><category domain='http://www.blogger.com/atom/ns#'>osx</category><title>Installing ImageMagick on OS X Leopard</title><description>In the past, getting image magick to work in ruby on rails for OSX was near impossible.&lt;br /&gt;&lt;br /&gt;Even if you went down the macports route, you would still run into problems. However, it looks like if you have the latest xcode and leopard, things are a lot easier.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;cd /tmp&lt;br /&gt;curl -O http://www.ijg.org/files/jpegsrc.v7.tar.gz&lt;br /&gt;tar -zxf jpegsrc.v7.tar.gz&lt;br /&gt;cd jpeg-7/&lt;br /&gt;ln -s `which glibtool` ./libtool&lt;br /&gt;./configure --enable-shared --prefix=/usr/local&lt;br /&gt;make&lt;br /&gt;sudo make install&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;then&lt;br /&gt;&lt;pre&gt;cd /tmp&lt;br /&gt;curl -O ftp://ftp.imagemagick.org/pub/ImageMagick/ImageMagick.tar.gz&lt;br /&gt;tar -zxf ImageMagick.tar.gz&lt;br /&gt;cd ImageMagick-*/&lt;br /&gt;./configure --prefix=/usr/local&lt;br /&gt;make&lt;br /&gt;sudo make install&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;which then only leaves the gem&lt;br /&gt;&lt;pre&gt;sudo gem install rmagick&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Thanks to all that made this easy to install and &lt;a href="http://matschaffer.com/2009/05/installing-imagemagick-on-os-x-leopard/"&gt;this link&lt;/a&gt; for the code.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4838020467593866100-3267896163193943355?l=tech.pubget.com' alt='' /&gt;&lt;/div&gt;</description><link>http://tech.pubget.com/2011/07/installing-imagemagick-on-os-x-leopard.html</link><author>noreply@blogger.com (Ian Connor)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-4838020467593866100.post-6745865486999320394</guid><pubDate>Sat, 11 Jun 2011 22:33:00 +0000</pubDate><atom:updated>2011-06-11T15:40:40.035-07:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>mysql</category><category domain='http://www.blogger.com/atom/ns#'>rails</category><title>Quick Ruby on Rails, MySQL gem on OSX tip</title><description>After having some new engineers join (&lt;a href="http://corporate.pubget.com/about/jobs"&gt;we are still hiring&lt;/a&gt;) and having the same problem popup, I wanted to share a quick tip on getting your MySQL gem up and running on the latest OSX software/hardware.&lt;br /&gt;&lt;h3&gt;Install MySQL and the mysql gem on OSX 10.6&lt;br /&gt;&lt;/h3&gt;  &lt;p&gt;First grab &lt;a href="http://dev.mysql.com/downloads/mysql/5.1.html" title="mysql-server 5.1"&gt;mysql-server 5.1&lt;/a&gt;. For Mac OS 10.6, make sure you get the 64-bit DMG.&lt;/p&gt;  &lt;p&gt;Ensure you have &lt;a href="http://developer.apple.com/xcode/"&gt;xcode&lt;/a&gt; installed from the extra CD that comes in the box. Now install the mysql gem. You'll need to specify both that it's 64-bit and the location of the config file.&lt;/p&gt;&lt;code&gt;&lt;br /&gt;sudo env ARCHFLAGS="-arch x86_64" gem install mysql -v 2.7 -- --with-mysql-config=/usr/local/mysql/bin/mysql_config&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;It should install then without any complaints. If you see native compilation errors it either means you have the 32bit version installed or MySQL 5.5.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4838020467593866100-6745865486999320394?l=tech.pubget.com' alt='' /&gt;&lt;/div&gt;</description><link>http://tech.pubget.com/2011/06/quick-ruby-on-rails-mysql-gem-on-osx.html</link><author>noreply@blogger.com (Ian Connor)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-4838020467593866100.post-3753965635204869700</guid><pubDate>Sat, 04 Jun 2011 19:40:00 +0000</pubDate><atom:updated>2011-06-04T12:47:42.001-07:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>first post</category><category domain='http://www.blogger.com/atom/ns#'>welcome</category><title>Hello World</title><description>Welcome to the Pubget Tech blog.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;We will be be posting links and commentary on various big data topics we run into everyday at &lt;a href="http://pubget.com"&gt;Pubget&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So, please subscribe and keep a look out for technical information around &lt;a href="http://lucene.apache.org/solr/"&gt;Solr&lt;/a&gt;/&lt;a href="http://lucene.apache.org/"&gt;Lucene&lt;/a&gt;, &lt;a href="http://rubyonrails.org/"&gt;Ruby on Rails&lt;/a&gt;, &lt;a href="http://dev.mysql.com/"&gt;MySQL&lt;/a&gt;, &lt;a href="http://hadoop.apache.org/"&gt;Hadoop&lt;/a&gt;/&lt;a href="http://hbase.apache.org/"&gt;HBase&lt;/a&gt; and &lt;a href="http://en.wikipedia.org/wiki/Cloud_computing"&gt;Cloud Computing&lt;/a&gt;.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4838020467593866100-3753965635204869700?l=tech.pubget.com' alt='' /&gt;&lt;/div&gt;</description><link>http://tech.pubget.com/2011/06/hello-world.html</link><author>noreply@blogger.com (Ian Connor)</author><thr:total>0</thr:total></item></channel></rss>
