<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>That Puerto Rican Rubyist</title>
	
	<link>http://www.dennmart.com</link>
	<description>Official Blog of Dennis Martinez</description>
	<lastBuildDate>Mon, 18 Mar 2013 18:17:32 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/ThePuertoRicanRailsDude" /><feedburner:info uri="thepuertoricanrailsdude" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>My first RubyGem: wanikani</title>
		<link>http://feedproxy.google.com/~r/ThePuertoRicanRailsDude/~3/u5fXp2s_x4g/</link>
		<comments>http://www.dennmart.com/2013/01/01/my-first-rubygem-wanikani/#comments</comments>
		<pubDate>Wed, 02 Jan 2013 03:08:14 +0000</pubDate>
		<dc:creator>Dennis Martinez</dc:creator>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://www.dennmart.com/?p=252</guid>
		<description><![CDATA[I&#8217;ve been studying Japanese for quite some time now. The Japanese language, as you might expect, is pretty deep. Besides all the gairaigo (borrowed words from English and other languages), just about everything is different, from the grammar to the writing. As such, there are a ton of websites I go to just about every [...]]]></description>
				<content:encoded><![CDATA[<p>I&#8217;ve been <a href="http://www.dennmart.com/2011/08/18/how-the-gym-and-japanese-made-me-a-better-developer/">studying Japanese</a> for quite some time now. The Japanese language, as you might expect, is pretty deep. Besides all the <em>gairaigo</em> (borrowed words from English and other languages), just about everything is different, from the grammar to the writing. As such, there are a ton of websites I go to just about every day to study different aspects of the language.</p>
<p>One of my current favorites is <a href="http://www.wanikani.com/">WaniKani</a>, a web app that helps learning Japanese Kanji and vocabulary using <a href="http://en.wikipedia.org/wiki/Spaced_repetition">spaced repetition</a>. I&#8217;ve been using WaniKani for a handful of months, but it has already helped me in different aspects of the language, especially when I was in Japan on vacation a few months ago.</p>
<p>Recently, they released an API for accessing their content. I got a few ideas on some small projects to do, particularly with a spare Raspberry Pi I have (more on that some other time). Since I&#8217;m a Ruby developer, I thought this would be a perfect time to finally create my first publicly accessible RubyGem.</p>
<p>With that came the birth of the <a href="https://github.com/dennmart/wanikani-gem">wanikani gem</a>. It&#8217;s a small gem to make it easy to call WaniKani&#8217;s API functions in any Ruby project. I have a few private RubyGems in some of my work projects, but those have never seen the light of day as a public repo, so I wanted to share the love somehow. It also serves as a learning experience. Hopefully someone finds the project useful and helps out with pull requests or critiques so I can continue learning. I&#8217;ll definitely try to do more and share some more open-source to help others as many people have helped me with their projects.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dennmart.com/2013/01/01/my-first-rubygem-wanikani/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.dennmart.com/2013/01/01/my-first-rubygem-wanikani/</feedburner:origLink></item>
		<item>
		<title>Diving Back To Linux</title>
		<link>http://feedproxy.google.com/~r/ThePuertoRicanRailsDude/~3/GgHyFau-3JY/</link>
		<comments>http://www.dennmart.com/2012/06/19/diving-back-to-linux/#comments</comments>
		<pubDate>Wed, 20 Jun 2012 03:46:46 +0000</pubDate>
		<dc:creator>Dennis Martinez</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.dennmart.com/?p=245</guid>
		<description><![CDATA[The current laptop I use for work is a Macbook Pro I bought back in 2009. To be honest, I bought this laptop because I was insanely jealous of TextMate. Also, this was a period when it seemed all the cool Rubyists were developing on the Mac, and I sort of felt like I had [...]]]></description>
				<content:encoded><![CDATA[<p>The current laptop I use for work is a Macbook Pro I bought back in 2009. To be honest, I bought this laptop because I was insanely jealous of <a href="http://macromates.com/">TextMate</a>. Also, this was a period when it seemed all the cool Rubyists were developing on the Mac, and I sort of felt like I had to keep up with everyone else. But I haven&#8217;t regretted my purchase at all. I&#8217;ve never had a single problem with this laptop in the 3+ years I&#8217;ve owned it. As its age has been showing, I&#8217;ve tried to keep it running as smoothly as possible with a myriad of upgrades, from an SSD drive to adding the maximum of 8 GB of RAM, and even an additional hard drive with the excellent <a href="http://www.mcetech.com/optibay/">OptiBay drive kit</a>. However, there&#8217;s just so much that I can do, and I think I&#8217;ve maxed out all the power I can out of this laptop.</p>
<p>I&#8217;ve been thinking for a while about getting a new Macbook Pro, and with last week&#8217;s announcement of a new lineup, including the sexy Macbook Pro with Retina display, I&#8217;ve been dangerously close to heading to the nearest Apple Store (and thanks to living in the Bay Area, I have about a billion stores in less than a 30-minute drive in any direction) and just blindly giving my credit card to whoever has a blue shirt. However, a recent purchase I made about a month ago has made me reconsider this option.</p>
<p>For a while now, I had the urge to tinker with Linux as a desktop again and had been looking for a low-cost way to do so. Fry&#8217;s Electronics had a sale on a cheap laptop last month &#8211; an Acer Aspire laptop for about $270 plus tax, so I decided to spring for it. As evidenced by the price, it&#8217;s a current low-end system (Dual-Core Pentium B940, 4 GB of RAM, slow 500 GB hard drive). For the time being, I also purchased 8 gigs of memory for $30, so it turned out to be a cheap investment in technology.</p>
<p>The last time I tinkered with Linux as a desktop system was when <a href="http://www.ubuntu.com/">Ubuntu</a> unveiled its <a href="http://unity.ubuntu.com/">Unity interface</a>, and I didn&#8217;t have a good experience with it back then, particularly since I was testing it on an underpowered PC. Since the laptop I purchased was a low-end one, I decided to skip Ubuntu entirely and try something different. I almost decided on <a href="http://linuxmint.com/">Linux Mint</a>, since it&#8217;s already based on Ubuntu and Debian, which is what I was most comfortable with. But lately, I had been hearing quite a bit of fanfare about <a href="http://www.archlinux.org/">Arch Linux</a>.</p>
<p>Arch Linux is touted as being one of the more flexible Linux distros out there. The secret of its flexibility is due to keeping everything very simple &#8211; installation only includes a minimal working system (essentially just the shell), giving you the choice to install whatever you&#8217;d like. The caveat is that this distribution is not for beginners. You&#8217;re expected to know a bit about Linux and the command line, and especially not be afraid of tinkering around with files in the /etc directory. Having very fond memories of playing around with <a href="http://www.slackware.com/">Slackware</a> back in my college days, I thought it would be fun to try it out.</p>
<p>After installing Arch Linux to my laptop, I was greeted with a command line prompt and not much else. I had no idea what to do next. Thankfully, there&#8217;s a rather large and active community for Arch Linux, and the <a href="https://wiki.archlinux.org/">wiki</a> is full of useful information, especially for <a href="https://wiki.archlinux.org/index.php/Beginners%27_Guide">newbies to the Arch Linux world</a>, like myself. After getting familiar with <a href="https://wiki.archlinux.org/index.php/Pacman">Pacman</a>, the Arch Linux package manager, I was well on my way to getting my desktop environment installed. While I did stumble a bit along the way, especially with my wireless connection (which has always been one of the main issues with most Linux distributions anyway), I was able to get a shiny new <a href="http://www.gnome.org/">Gnome 3.4</a> desktop set up. With very little tweaking all my hardware seemed to be up and running. I think it was a relatively smooth process to what I expected, since I read a lot of warnings about needing to spend some time tinkering around to get things right.</p>
<p>It&#8217;s been a few weeks since I&#8217;ve been using Linux as my after-work hacking environment. While it takes some time getting used to the new desktop environment, and I&#8217;m sort of missing some of the polish and small things from Mac OS X that I apparently take for granted, I&#8217;m liking the Linux setup a lot for my development work. Since I do mostly Ruby and Javascript work, this system handles it all perfectly. I honestly don&#8217;t think that I would miss the Mac development environment much if I had a full-time Linux machine. That&#8217;s what I think I&#8217;m going to do for my next laptop. Instead of spending at least $1500 on a Mac with decent specs, I&#8217;m sure I&#8217;d be able to get a high-end work laptop for about $1000, install Linux on it, and be perfectly happy with it. It&#8217;s good to be back where I was so many years ago.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dennmart.com/2012/06/19/diving-back-to-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.dennmart.com/2012/06/19/diving-back-to-linux/</feedburner:origLink></item>
		<item>
		<title>Thoughts on my first ‘Weekend Hackathon’</title>
		<link>http://feedproxy.google.com/~r/ThePuertoRicanRailsDude/~3/0BmjMMrwgtU/</link>
		<comments>http://www.dennmart.com/2012/03/01/thoughts-on-my-first-weekend-hackathon/#comments</comments>
		<pubDate>Thu, 01 Mar 2012 22:27:45 +0000</pubDate>
		<dc:creator>Dennis Martinez</dc:creator>
				<category><![CDATA[Opinion]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.dennmart.com/?p=239</guid>
		<description><![CDATA[I&#8217;ve been living in the Bay Area for two years now. One of the main reasons why I wanted to move over here is the large population of tech people that exist in this area. From Computer Science students in U.C. Berkeley, to developers in San Francisco who are working on the latest website / [...]]]></description>
				<content:encoded><![CDATA[<p>I&#8217;ve been living in the Bay Area for two years now. One of the main reasons why I wanted to move over here is the large population of tech people that exist in this area. From Computer Science students in U.C. Berkeley, to developers in San Francisco who are working on the latest website / app that everyone will be using a year from now, to the super-smart engineers who work on some of the world&#8217;s largest companies in Silicon Valley, there&#8217;s a lot of people who are just like me.</p>
<p>Of course, it&#8217;s pretty cool to be able to meet people who are like-minded and enthusiastic (sometimes <em>too</em> enthusiastic, but that&#8217;s another story for another day), with a broad range of tech interests. It&#8217;s fun to hear what others do for a living, and most tech people just love to tell you all about what they&#8217;re working on. I have learned so much in my two years living in California than I had for the rest of my 29 years living elsewhere, which is pretty awesome.</p>
<p>However, something became apparent to me in my first few months living here &#8211; I really didn&#8217;t want to hang out with tech people all the time. Not that most of people I met were dull or socially awkward (usually, I always think that&#8217;s what people think about me when they meet me). But I&#8217;m the type of person who enjoys the company of people who think very differently than I do. It sort of gives me a chance to study others, if you will, and get a better sense of perspective in my life. Because of this, it had been quite a while since I hung out with others and talk tech, outside of work.</p>
<p>That brings me to a couple of weeks ago. A co-worker &#8211; who&#8217;s not a developer &#8211; told me that a few of his programmer buddies were getting together for a weekend of hacking up something in hopes of being able to get a working website or app out there in 48 hours. Although I&#8217;ve been in California for so long, I had never gotten together with anyone just to build something for fun. I wasn&#8217;t going to do anything that specific weekend, so I agreed. It was an interesting and really fun weekend, but since it was everyone&#8217;s first hackathon, there were a few things that we could have done better, which I wanted to write about.</p>
<p><strong>Have an idea before the weekend</strong></p>
<p>I was informed of the hackathon on the Sunday before we were going to build the app. The guys who were planning to participate had been shuffling emails back and forth with app ideas so we could decide on one to work on. By Friday evening, we had a list of a lot of solid ideas. So we decided to get together and pick one that was feasible to build in two days. We spent more than two hours on Friday night going through the ideas and by the end of it, we still had no idea. So on Saturday morning we went into the hackathon without knowing what to do.</p>
<p>I think this set us back at least 3-4 hours of real work that day. If we had picked an idea and decided to work on it before hand, we could have done a bit of work beforehand to get some stuff up and running, like setting up the services we were going to use and make sure everyone&#8217;s development environment was set up for whatever we were going to build (which surprisingly, for a few, it wasn&#8217;t).</p>
<p><strong>Clearly define what needs to be done, who will do it, and make it visible</strong></p>
<p>Because we had no idea what we were going to build going into the weekend, we didn&#8217;t really know what the scope of the project was going to be like. Our plan was to have a minimum viable product ready to go on Sunday evening. However, we only were able to define what would be the minimum amount of work on Saturday afternoon, so it was just a lot of broad strokes and nothing clearly defined. Everyone chose what they were most comfortable working on, or what they wanted to work on, and we took off.</p>
<p>The problem with this was that at any given point, I had no idea where everyone was at with their work, and that made it difficult to know what I should have been focusing on next. For example, I had been tasked with building classes on the back-end to connect to different APIs and pass that data on to the front-end. By the time I was done, I didn&#8217;t know if the front-end was ready to go or not. So I had to basically interrupt everyone and ask what they were doing and how far along they were, and also ask what needed to be done next. Had we defined our tasks earlier and more clearly, and people were good with updating the status of these tasks regularly, I think we could have wasted less time and done more.</p>
<p><strong>Bring more variety to the team</strong></p>
<p>At the end of Saturday night, I quickly realized what was going to be the part that held us back &#8211; the user interface. In our group, all of us were solid developers, but no one had any decent design chops. So that left us with one of the guys hacking together an interface that, in all honesty, didn&#8217;t look good at all. A lot of the back-end stuff that we planned to have was more or less wrapped up on Sunday, but the design was sorely lacking a ton of polish, meaning that we couldn&#8217;t release our app.</p>
<p>I thought that at least one person in the team would be able to slice and dice any layout into usable designs for development, but we didn&#8217;t have one. Next time, I&#8217;ll try to get a designer on board for this task only. And if not, there&#8217;s always places like <a href="http://themeforest.net/">Theme Forest</a> where we could get up and running rather quickly with a template, which we thought about too late.</p>
<p><strong>Have people who can be there</strong></p>
<p>One thing that really killed us was the fact that out of seven people who had agreed to be part of the weekend hackathon, five showed up on Saturday morning. And on Sunday, one of the five had to bail, leaving us at four people &#8211; one of them being my non-developer co-worker who couldn&#8217;t really do much outside of doing wireframes and helping with project management. And to top it off, everyone called it an early night both days because of prior engagements. All of this set us back quite a bit, for obvious reasons. I think we could have finished our app in a usable state had we been at full strength for both days, and we had hacked until the wee hours of the morning, which is what I expected. I mean, come on &#8211; it&#8217;s a hackathon! I was fully expecting to barely sleep during those 48 hours, but it wasn&#8217;t to be.</p>
<p>Despite some things not going as smoothly as planned, and that we technically &#8216;failed&#8217; reaching our goal, which was to release a working app by the time Sunday wrapped up, I personally considered it a success. Not only was I able to meet new people and expand my network (one of my goals in 2012), I also came out of that weekend reinvigorated, and with a very strong desire to spend more time developing and learning code in my spare time again. Since I had somewhat tired on tech and started filling my time with other non-technical interests, <a href="http://www.dennmart.com/2011/08/18/how-the-gym-and-japanese-made-me-a-better-developer/" title="How the gym and Japanese made me a better developer">as I wrote a few months ago</a>, I really hadn&#8217;t been doing any coding or learning more about the new hotness in my spare time. After the weekend hackathon, I&#8217;ve been wanting to code all night long after getting out of work. I even started planning another hackathon for another app I want to build, too.</p>
<p>It&#8217;s amazing how taking something you do on a daily basis and doing it in a different setting can reignite your passion once again.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dennmart.com/2012/03/01/thoughts-on-my-first-weekend-hackathon/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.dennmart.com/2012/03/01/thoughts-on-my-first-weekend-hackathon/</feedburner:origLink></item>
		<item>
		<title>How the gym and Japanese made me a better developer</title>
		<link>http://feedproxy.google.com/~r/ThePuertoRicanRailsDude/~3/gIx1ffj4OcY/</link>
		<comments>http://www.dennmart.com/2011/08/18/how-the-gym-and-japanese-made-me-a-better-developer/#comments</comments>
		<pubDate>Fri, 19 Aug 2011 05:17:51 +0000</pubDate>
		<dc:creator>Dennis Martinez</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[Opinion]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://www.dennmart.com/?p=232</guid>
		<description><![CDATA[For the past ten years or so, even before I graduated from college, a large chunk of my spare time has been dedicated to studying. More specifically, it&#8217;s been dedicated to studying technology. Everything from programming languages I&#8217;ve wanted to use to new frameworks that look shiny and new to electronics and Arduinos and everything [...]]]></description>
				<content:encoded><![CDATA[<p>For the past ten years or so, even before I graduated from college, a large chunk of my spare time has been dedicated to studying. More specifically, it&#8217;s been dedicated to studying technology. Everything from programming languages I&#8217;ve wanted to use to new frameworks that look shiny and new to electronics and Arduinos and everything in between. I&#8217;ve spent lots of time and money reading up on anything tech. It&#8217;s really my passion. That&#8217;s why I got into Computer Science to begin with. I love this.</p>
<p>But after all those years, I&#8217;ve been getting burned out doing this. There&#8217;s just a lot of little things that lead to me feeling this way. The biggest reason, however, is the following: I&#8217;ve read and studied about a lot of cool things that I never got to do at my current day job, making it impossible to retain anything long-term and making me eventually lose interest. This would then spiral into me feeling guilty on spending so much time on something and not use it. To compensate, I would jump to some other tech-related book or project that excited me, only to have the same thing happen again. It was a vicious cycle that I hated and was desperate to get out of. But I didn&#8217;t want to dump tech at all. I love this stuff.</p>
<p>Finally, I decided to just hold back on all the new learning. I stopped buying books and trying to jump on the bandwagon of the latest hotness out on the streets. But that made me even more miserable. I felt like I was getting left behind. Like a drug junkie, I yearned to get my fix, even though I knew it was slowly killing me inside. So I had to focus on something else, far away from the things I&#8217;ve been doing for the past ten years. And oddly enough, shifting my focus away from tech was just what I needed to get my focus back on tech.</p>
<p>First off, I finally decided to go to a gym. Before last year, I had never stepped into a gym before in my life. Outside of walking around town or visiting a new park from time to time, I never really made an attempt to make physical activity a part of my routine. So at age 29, my electronic scale at home read 298.8 pounds, and a recent blood test showed my cholesterol levels a bit on the high side. I knew I had to do something. Since my current office is located right next door, literally, to a gym, I signed up and started going.</p>
<p>Going to the gym and exercising regularly has been by far the best decision I&#8217;ve ever made in my life. Outside of weight loss and other physiological benefits, I never really believed the mental benefits of exercising, but they&#8217;re very, very true. I feel much more alert during the day, up to the point where I don&#8217;t need a caffeine boost during the day. I also got much better at retaining new things I&#8217;ve learned. Work seems to come out effortlessly, and I think the quality of my code has gone noticeably up in the last couple of months, since I&#8217;ve been going to the gym more often. Finally, I&#8217;ve noticed myself in a much better mood every single day, with rarely any &#8220;bad hair days&#8221;, as I used to have periodically. Seeing the benefits of the hard work put at the gym helps with that a lot: Yesterday I weighed myself using the same scale that mockingly showed 298.8 over a year ago, and now it ready &#8217;258.8&#8242;. Suck it, electronic scale.</p>
<p>Besides the gym, I wanted something else to focus on, but nothing related to technology. So I decided to take up learning a new language &#8211; a natural language, in particular, Japanese. I&#8217;m already fluent in English and Spanish, so I wanted to take something that was totally different, something not a Germanic or Romance language. I thought that Japanese was one of the most difficult languages outside of those groups, so I signed up for a class to feel challenged by something new. I&#8217;m about to finish my introductory class next week, and I loved it so much that I&#8217;m planning to stay at the language school for at least a full year, and then I&#8217;ll be taking a few weeks to actually visit Japan.</p>
<p>The thing is, since I&#8217;ve been spending a noticeable chunk of time with the gym and learning Japanese, I&#8217;ve noticed a surprising side-effect &#8211; I&#8217;ve been doing much better in the tech department. Taking time to study Japanese clears my mind and really energizes me, so when I go back to coding I put in a much better effort than I did before. And the physical and mental energy boost that the gym has given me helps me be able to learn and retain more than I ever did. It&#8217;s an awesome feeling, and I&#8217;m loving studying all over again.</p>
<p>As developers and engineers, our passion leads us to spend too much time on technology, but in the long haul that&#8217;s not sustainable. I&#8217;ve heard the phrase &#8220;sometimes we need to step back to be able to move forward&#8221; many, many times before. It&#8217;s totally true. Believe it.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dennmart.com/2011/08/18/how-the-gym-and-japanese-made-me-a-better-developer/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.dennmart.com/2011/08/18/how-the-gym-and-japanese-made-me-a-better-developer/</feedburner:origLink></item>
		<item>
		<title>My Quick Recap of MongoSF 2011</title>
		<link>http://feedproxy.google.com/~r/ThePuertoRicanRailsDude/~3/flCEk-DmYrA/</link>
		<comments>http://www.dennmart.com/2011/05/25/my-quick-recap-of-mongosf-2011/#comments</comments>
		<pubDate>Thu, 26 May 2011 03:47:31 +0000</pubDate>
		<dc:creator>Dennis Martinez</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[Conferences]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Opinion]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.dennmart.com/?p=225</guid>
		<description><![CDATA[Now that I live on the West Coast, I&#8217;ve been able to attend many of the wonderful tech conferences that are hosted in the Bay Area. Yesterday, I attended MongoSF in beautiful San Francisco. I&#8217;ve been using MongoDB for a while now, mostly for personal projects. I&#8217;ve written some projects on GitHub that uses MongoDB [...]]]></description>
				<content:encoded><![CDATA[<p>Now that I live on the West Coast, I&#8217;ve been able to attend many of the wonderful tech conferences that are hosted in the Bay Area. Yesterday, I attended <a href="http://www.10gen.com/conferences/mongosf2011">MongoSF</a> in beautiful San Francisco. I&#8217;ve been using <a href="http://www.mongodb.org/">MongoDB</a> for a while now, mostly for personal projects. I&#8217;ve written <a href="https://github.com/dennmart/mongoshort">some projects</a> on GitHub that uses MongoDB as the primary data store, and I have also migrated some existing MySQL tables in other projects to use MongoDB instead. Having read <a href="http://oreilly.com/catalog/0636920001096">MongoDB: The Definitive Guide</a> from front to back, and spending quite some time on the <a href="http://www.mongodb.org/display/DOCS/Home">MongoDB docs</a>, I feel like I have a good grasp on the tool. So I was pretty excited to go to this conference and discover some more things about my one of favorite pieces of tech.</p>
<p>There were multiple tracks in this conference, and unfortunately I still can&#8217;t clone myself in this day and age, so I&#8217;ll just briefly touch on those sessions that I was able to attend.</p>
<p><strong>Monitoring &#038; Queuing MongoDB:</strong> This talk, given by <a href="http://twitter.com/#!/davidmytton">David Mytton</a> from <a href="http://www.serverdensity.com/">Server Density</a> touched on some of the integrated monitoring tools and commands that MongoDB has baked in. He also showed a bit of Server Density&#8217;s <a href="http://www.serverdensity.com/mongodb-monitoring/">MongoDB monitoring system</a>, which looks to be incredibly useful. Overall, the talk was decent, but anyone who has MongoDB running in production should know most of this stuff already.</p>
<p><strong>Evolving from relational to document store:</strong> <a href="http://twitter.com/#!/tackers">Graham Tackley</a>, lead for the web development team over at the U.K.&#8217;s <a href="http://www.guardian.co.uk/">Guardian news site</a>, gave an interesting talk on how the site has evolved over time since the mid-90s (Lots of Perl / CGI goodness). Currently they are in the process of moving certain parts of the site to use MongoDB. Besides the history lesson on the site, he also mentioned how they are dealing with possible future changes in architecture, notably by building APIs around the site functionality. This talk got my gears running about some of my own projects, and how I might build any new projects I have in my mind.</p>
<p><strong>MongoDB Profiling and Tuning:</strong> This talk was given by <a href="http://twitter.com/#!/kennygorman">Kenny Gorman</a>, who works as a data architect at <a href="http://www.shutterfly.com/">Shutterfly</a>. Kenny went through some of the steps used to profile MongoDB, like using <a href="http://www.mongodb.org/display/DOCS/Optimization#Optimization-Explain">explain()</a> on your queries, and how to make things faster, not only on the software side, but also on hardware. He brought up Facebook&#8217;s Flashcache, and how it makes MongoDB speed up. I particularly enjoyed hearing the hardware side of things, as I feel like hardware is mostly overlooked by developers.</p>
<p><strong>MongoDB&#8217;s New Aggregation Features &#8211; A Sneak Peek:</strong> <a href="http://twitter.com/#!/cwestin63">Chris Westin</a> is a core MongoDB contributor, and he gave us a sneak peek at a new framework for aggregating records in MongoDB. This framework is really not meant to replace <a href="http://www.mongodb.org/display/DOCS/MapReduce">Map/Reduce</a>, which will still serve very well for massive data. But for people like me, who need to aggregate smaller amounts of data (thousands of documents instead of millions), this will be much easier and faster to deal with. Very cool stuff, and I can&#8217;t wait to use it.</p>
<p><strong>Lessons Learned from Migrating 2+ Billion Documents at Craigslist:</strong> Former Yahoo! and current Craigslist employee <a href="http://twitter.com/#!/jzawodn">Jeremy Zawodny</a> spoke about how Craigslist is using MongoDB for their posting archive, and the lessons learned along the way, like the usage of replica sets even in development, document encoding, and how important data types are when migrating collections. He had a similar talk at <a href="http://www.10gen.com/conferences/mongosv2010">MongoSV</a> a few months ago, so I didn&#8217;t feel like there wasn&#8217;t much new information here. Still, a good talk about migrating a large amount of data from MySQL to MongoDB &#8211; it can be done.</p>
<p><strong>Practical Scaling and Sharding:</strong> <a href="http://twitter.com/#!/eliothorowitz">Eliot Horowitz</a> is one of the main MongoDB contributors, and the CTO of the company that backs MongoDB, <a href="http://www.10gen.com/">10gen</a>. He went through the features and usage of Replica Sets and Sharding, with a few use cases and live examples. This seemed more like an introductory talk more than anything else, so there was nothing groundbreaking here.</p>
<p><strong>MongoDB at Foursquare:</strong> This talk was given by <a href="http://twitter.com/#!/jorgeortiz85">Jorge Ortiz</a>, an engineer at Foursquare, who proceeded to mention briefly how MongoDB was being used at Foursquare, some of the lessons they&#8217;ve learned throughout the years with MongoDB, and talked about their Scala library for querying MongoDB called <a href="https://github.com/foursquare/rogue">Rogue</a>. Frankly, I was disappointed with this talk, as Jorge didn&#8217;t give much insight outside of a few numbers and oft-repeated tips. I was expecting a more informative talk here.</p>
<p><strong>Indexing &#038; Query Optimization:</strong> <a href="http://twitter.com/#!/jonnyeight">Alvin Richards</a>, a West Coast 10gen employee, gave an in-depth talk about indexes in MongoDB. He went through everything, from basic indexes, to indexing order, to new indexing options in MongoDB 1.8 (<a href="http://www.mongodb.org/display/DOCS/Indexes#Indexes-SparseIndexes">sparse indexes</a> and <a href="http://www.mongodb.org/display/DOCS/Retrieving+a+Subset+of+Fields#RetrievingaSubsetofFields-CoveredIndexes">covered indexes</a>), to even showing representations of the internal B-Tree implementation. Very informative.</p>
<p><strong>Lightning Talks:</strong> This was divided in three shorter talks. First up was <a href="http://twitter.com/#!/mikegoff">Michael Goff</a>, who spoke about how his company, <a href="http://cocoafish.com/">Cocoafish</a> uses MongoDB to serve up data to mobile apps. Next was Chris Carrier (Is he on Twitter? I couldn&#8217;t find an account to link here) from Zuberance, speaking about how to create a reporting backend using MongoDB. Last, but not least, was <a href="http://twitter.com/#!/chadarimura">Chad Arimura</a>, who went through <a href="http://www.simpleworker.com/">SimpleWorker</a>, a cloud-based job scheduling service that uses MongoDB. These talks were short &#8211; which you might have figured out with &#8216;Lightning&#8217; in the title &#8211; and seemed to be mostly about the speakers&#8217; particular sites more than anything else.</p>
<p>At the end, Eliot Horowitz gave a quick rundown on the upcoming features for MongoDB 2.0, like TTL collections, online data compaction, faster Map/Reduce, etc. Surprisingly, this 2.0 release is scheduled for June 2011, as in next month. Seems like they&#8217;re going to be doing quicker iterations and getting new stuff out there as soon as possible, which can only lead to good stuff for users. There was an after-party, but when I swung by the place there was a massive line outside to get in, so I decided to head home instead. Unfortunately, this is the third time in as many conference after-parties that I&#8217;ve had to do this, so it seems like these after-parties don&#8217;t scale well.</p>
<p>Overall, while the conference was pretty good, and everything was organized very well, most of the times I felt like I was out of place or at the wrong talk. Judging from the few people I spoke to, and those that I overheard, it seems like most people at the conference hadn&#8217;t used MongoDB much (or at all), and many talked I went to touched on what I consider some of the basics of MongoDB. Even if they weren&#8217;t basic topics, like Replica Sets or Sharding, if you have read a recent MongoDB book, you knew what most of the speakers were talking about. Also, there was plenty of repeating of the same tips over and over again in a lot of the talks. For example, in the nine talks I went to, the speaker mentioned the &#8220;always keep indexes in memory&#8221; rule of thumb in at least five of those talks. Truth be told, MongoDB isn&#8217;t really a super-deep technology (even the aforementioned O&#8217;Reilly book clocks in at a bit north of 200 pages), so this can be the reason why. But I wanted to know more on the upcoming features in MongoDB (I only really saw one talk in the schedule like this, which was the new aggregation framework), and some more in-depth views of how companies are leveraging MongoDB in their technology stack instead of just pointing out how awesome MongoDB is &#8211; which we already know.</p>
<p>In any case, I had tons of fun, learned some new tips and tricks, and got some fresh inspiration to use in my own work soon. The best thing about these conferences is knowing that what you&#8217;re learning and using is valuable not just to you, but to many out there, and it just gives you motivation to keep on using those tools in familiar and new ways. Much props go out to 10gen for making this conference go smoothly, and hopefully there&#8217;s another one of these sometime next year.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dennmart.com/2011/05/25/my-quick-recap-of-mongosf-2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.dennmart.com/2011/05/25/my-quick-recap-of-mongosf-2011/</feedburner:origLink></item>
		<item>
		<title>How I’m Learning iOS Development</title>
		<link>http://feedproxy.google.com/~r/ThePuertoRicanRailsDude/~3/bfwJ8tKFwSo/</link>
		<comments>http://www.dennmart.com/2011/03/29/how-im-learning-ios-development/#comments</comments>
		<pubDate>Wed, 30 Mar 2011 03:59:58 +0000</pubDate>
		<dc:creator>Dennis Martinez</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.dennmart.com/?p=221</guid>
		<description><![CDATA[Lately, I&#8217;ve been on a hardcore iOS development learning phase. To be honest, I&#8217;ve been wanting to learn iOS development for a while (probably since I got my first iPhone two years ago). But I either never had the time to sit down and learn something new, or whenever I did try to take time [...]]]></description>
				<content:encoded><![CDATA[<p>Lately, I&#8217;ve been on a hardcore iOS development learning phase. To be honest, I&#8217;ve been wanting to learn iOS development for a while (probably since I got my first iPhone two years ago). But I either never had the time to sit down and learn something new, or whenever I did try to take time to learn, I&#8217;d get totally confused with something and felt like I was stuck. I don&#8217;t know if it was due to spending too much time on Ruby and vi, that Xcode, Objective-C and Interface Builder totally threw me off my game, but the learning curve initially seemed steep to me.</p>
<p>I finally decided to put my foot down and do whatever it takes it finally get a grasp of iOS development. And the dedication is finally paying off. I finally feel like I&#8217;m getting used to the development environment and most of the basics to actually get something done. It&#8217;s not like I have a million-dollar app I want to develop or anything, but seeing that mobile development is one of the hottest trends out there and will most likely be for the foreseeable future, I want to be a part of that wave while it&#8217;s still peaking.</p>
<p>I wanted to share some of the material that has been greatly helping me out during this journey. Note that there isn&#8217;t a lot of material updated with info on iOS 4 or Xcode 4, and although there are minor changes, like slightly different method names, for the most part the material is still very much useful.</p>
<p><strong><a href="http://apress.com/book/view/143023024X">Beginning iPhone 4 Development: Exploring the iOS SDK</a> by Apress</strong></p>
<p>Of all the books I&#8217;ve read on iPhone development, this seems to be the one that made it all click in my head. The writing feels a bit on the simplified side, which really made my brain be able to grasp and retain the concepts presented in it. The way the chapters progress is smooth, and doesn&#8217;t really overwhelm you with a lot of new concepts. I&#8217;ve noticed that a lot of books give you examples with a lot of new stuff that they haven&#8217;t covered yet, then proceed to say something like &#8220;trust us, ignore this for now and we&#8217;ll explain later&#8221;. This book doesn&#8217;t really do that much, besides when it&#8217;s apparently necessary to hold off.</p>
<p>This book also contains probably the most updated print material I&#8217;ve seen anywhere, as of this writing. If you were only to get a single book on iOS development, I would highly recommend this book above anything else.</p>
<p><strong>Peepcode Screencasts &#8211; <a href="http://peepcode.com/products/iphone-view-controllers-part-i">iPhone View Controllers, Part I</a>, <a href="http://peepcode.com/products/iphone-view-controllers-part-ii">iPhone View Controllers, Part II</a> and <a href="http://peepcode.com/products/iphone-views-i">iPhone Views I</a></strong></p>
<p>One of the most confusing things for me with iPhone development is the concept of view controllers. It was the one thing that tripped me up, despite trying to find as much info about it as possible. Although the previously mentioned book helped me the most to clarify a lot of these concepts, these Peepcode screencasts are also great for understanding how views work on iOS. It took me a couple of viewings of the first two parts (I haven&#8217;t purchased the most recent screencast) to really understand things like table views and cells and the different types of views available (Tab Bar, Navigation, etc.)</p>
<p><strong><a href="http://www.amazon.com/Programming-Objective-C-2-0-Stephen-Kochan/dp/0321566157">Programming in Objective-C 2.0 (2nd Edition)</a> by Stephen Kochan</strong></p>
<p>One of the mistakes I made early on in my Ruby career was the fact that I took the time to learn Ruby on Rails, but not the underlying language which is, of course, Ruby. Looking back now, that hindered my progress early on, since I knew the basics, but couldn&#8217;t really fully understand the real power behind Ruby, like metaprogramming. It limited what I could do. So instead of following that same path again with the Cocoa Touch framework, I decided to take the time to get deeper into its underlying language, Objective-C.</p>
<p>This book is definitely the definitive guide to Objective-C. It covers just about everything in the language &#8211; clocking in at almost 600 pages worth of material. While I don&#8217;t know if Objective-C should be someone&#8217;s very first programming language, it&#8217;s actually starts of with basic programming concepts like methods, classes, variables, looping, etc. But it gets deep pretty quickly, covering plenty of Apple&#8217;s Foundation Framework. It&#8217;s an excellent reference, and one I keep by my desk at all times.</p>
<p><strong><a href="http://developer.apple.com/library/ios/navigation/">Apple&#8217;s iOS Developer Library</a></strong></p>
<p>I was pleasantly surprised to see that Apple&#8217;s online documentation is really well put-together. It covers everything from basic Objective-C to more specific iOS functionality, like Push Notifications or the iAd Framework. A lot of the basics are available for free, but I believe there&#8217;s a lot more documentation for users that have registered to their $99-a-year iOS Developer Program.</p>
<p>These have been the top resources I&#8217;ve been using these past couple of weeks to get up to speed with my iOS development. With these resources, I&#8217;m getting very close to feeling confident enough to put together a simplistic app, maybe even publish it in the App Store for the hell of it.</p>
<p>If you&#8217;re curious to want to start iOS development, these books, videos and online documentation will help you a lot. Don&#8217;t feel overwhelmed by the amount of material out there. Just dive into it! There&#8217;s a ton of things that iOS devices can do. It&#8217;s just a matter of digging in and exploring further those parts that interest you, whether it&#8217;s a simple app with a table view or a full-blown OpenGL ES video game. Happy hacking!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dennmart.com/2011/03/29/how-im-learning-ios-development/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.dennmart.com/2011/03/29/how-im-learning-ios-development/</feedburner:origLink></item>
		<item>
		<title>Broken Tests… I Told You To ‘Save’</title>
		<link>http://feedproxy.google.com/~r/ThePuertoRicanRailsDude/~3/V8W3wTaXPIE/</link>
		<comments>http://www.dennmart.com/2010/12/07/broken-tests-i-told-you-to-save/#comments</comments>
		<pubDate>Tue, 07 Dec 2010 22:38:58 +0000</pubDate>
		<dc:creator>Dennis Martinez</dc:creator>
				<category><![CDATA[Funny Stuff]]></category>
		<category><![CDATA[Opinion]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.dennmart.com/?p=211</guid>
		<description><![CDATA[Failing tests are the worst, especially when caused by a silly cut / paste mistake (an instance variable had to be changed to be a local variable, but guess who forgot to remove the &#8216;@&#8217; sign&#8230;). While my tests run again to make sure it&#8217;s all good now, I thought I&#8217;d share a little routine [...]]]></description>
				<content:encoded><![CDATA[<p>Failing tests are the worst, especially when caused by a silly cut / paste mistake (an instance variable had to be changed to be a local variable, but guess who forgot to remove the &#8216;@&#8217; sign&#8230;). While my tests run again to make sure it&#8217;s all good now, I thought I&#8217;d share a little routine we do here at RepairPal when this happens.</p>
<p>In the spirit of getting feedback as quickly as possible after we commit our code changes, we have a continuous integration server (running <a href="http://www.hudson-ci.org/">Hudson</a>, which is very awesome). This, of course, will pull our code changes and run all tests we&#8217;ve written so far, letting us know when something failed along the way. But instead of being notified by emails, we decided to make things a bit more fun. We plugged in a pair of speakers to the CI server, and using the text-to-speech tool <a href="http://www.cstr.ed.ac.uk/projects/festival/download.html">Festival</a>, we&#8217;ll get a nice voice notification of who broke the build when tests fail. It&#8217;s a great way to get the instant feedback needed to fix things when they&#8217;re most fresh in our minds. The only drawback is the fact that one of our developers is in Romania, so he doesn&#8217;t get to hear our Hudson box yell at him. He does get notified via <a href="http://campfirenow.com/">Campfire</a>, though.</p>
<p>However, the fun doesn&#8217;t end there. I bought a cheap piggy bank that looks like a big keyboard key with the word &#8216;Save&#8217; on it:</p>
<p><center><img src="http://www.dennmart.com/wp-content/uploads/2010/12/save_key_bank.jpg" alt="" title="Save key piggy bank" width="520" height="333" class="alignnone size-full wp-image-212" /></center></p>
<p>Whenever someone commits code that breaks our test suite, not only do they have to suffer the embarrassment of having Hudson bark at them, but they also have to pay a dollar to our &#8216;Broken Tests&#8217; fund, and have the dreaded &#8216;Save&#8217; button sit at their desk as a reminder to save things before committing. The &#8216;Broken Tests&#8217; fund goes towards the bar downstairs, where us local developers spend the cash on beers for the team. Thankfully we don&#8217;t break the test suite often enough to get beer often. It&#8217;s a punishment, but it leads to a good thing, eventually.</p>
<p>Does your team have any sort of &#8216;punishments&#8217; when one of the developers breaks the build? We&#8217;re constantly thinking about different things to add to our little routine, just to keep things light around here.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dennmart.com/2010/12/07/broken-tests-i-told-you-to-save/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.dennmart.com/2010/12/07/broken-tests-i-told-you-to-save/</feedburner:origLink></item>
		<item>
		<title>Fail Notifier – Get Real-Time Notifications When Stuff Fails</title>
		<link>http://feedproxy.google.com/~r/ThePuertoRicanRailsDude/~3/LQH37K0kro8/</link>
		<comments>http://www.dennmart.com/2010/10/27/fail-notifier-get-real-time-notifications-when-stuff-fails/#comments</comments>
		<pubDate>Thu, 28 Oct 2010 05:05:52 +0000</pubDate>
		<dc:creator>Dennis Martinez</dc:creator>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Services]]></category>

		<guid isPermaLink="false">http://www.dennmart.com/?p=207</guid>
		<description><![CDATA[Last week, I was doing some routine maintenance on my VPS (which I should definitely do more often, as well as writing some more blog posts) and I noticed that one of my cron jobs that backed up some files to Tarsnap was incorrect and silently failing. Now, I could modify this simple Bash script [...]]]></description>
				<content:encoded><![CDATA[<p>Last week, I was doing some routine maintenance on my VPS (which I should definitely do more often, as well as writing some more blog posts) and I noticed that one of my cron jobs that backed up some files to <a href="http://www.tarsnap.com/">Tarsnap</a> was incorrect and silently failing. Now, I could modify this simple Bash script to shoot off an email to me whenever something happens. But I was feeling a bit creative and didn&#8217;t want to just write a few lines of Bash and be done with it.</p>
<p>As any software engineer is prone to do, I wanted to build something a bit more cool. That&#8217;s when I figured out that this would be the perfect chance to finally do something useful with <a href="http://notifo.com/">Notifo</a>. Notifo is an awesome service that provides real-time notifications to a number of devices, in particular to iPhones (although their list of supported devices seems to be rapidly expanding). I&#8217;ve been using Notifo just for setting up simple timed reminders and to get notified of replies and mentions from Twitter using <a href="http://push.ly/">push.ly</a>. Getting notifications in real-time of failures would be something great to have.</p>
<p>Using <a href="http://www.ruby-lang.org/en/">Ruby,</a>, <a href="http://www.sinatrarb.com/">Sinatra</a> and the <a href="http://github.com/jot/notifo">Notifo gem</a>, I quickly whipped up a small app called <a href="http://github.com/dennmart/fail_notifier">Fail Notifier</a>. Basically it&#8217;s a service where any application / server can make a simple HTTP POST to where Fail Notifier is running, and it will relay the message to the user in real-time using Notifo. Simple, but very useful. The best thing is that you can use it anywhere to notify you about anything from any app, programming language, server, or anything else that can make a simple HTTP request. For example, I have Fail Notifier installed on my VPS (<a href="http://wiki.nginx.org/Main">nginx</a> and the recently-released <a href="http://www.modrails.com/>Phusion Passenger 3.0.0</a>, for those who are curious) and configured my cron jobs to notify me via Bash / <a href="http://curl.haxx.se/">cURL</a> about some failures, and I also have some notifications for very important background tasks in a Rails app.</p>
<p>Of course, Fail Notifier is entirely open-source for you to do with it as you please. Feel free to <a href="http://github.com/dennmart/fail_notifier">fork the code on Github</a> and hack away to your hearts content.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dennmart.com/2010/10/27/fail-notifier-get-real-time-notifications-when-stuff-fails/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.dennmart.com/2010/10/27/fail-notifier-get-real-time-notifications-when-stuff-fails/</feedburner:origLink></item>
		<item>
		<title>Bye, Slicehost – Hello, Linode</title>
		<link>http://feedproxy.google.com/~r/ThePuertoRicanRailsDude/~3/vxC2gKgISGg/</link>
		<comments>http://www.dennmart.com/2010/07/26/bye-slicehost-hello-linode/#comments</comments>
		<pubDate>Mon, 26 Jul 2010 23:13:23 +0000</pubDate>
		<dc:creator>Dennis Martinez</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Opinion]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Ruby On Rails]]></category>
		<category><![CDATA[Services]]></category>

		<guid isPermaLink="false">http://www.dennmart.com/?p=191</guid>
		<description><![CDATA[It&#8217;s been a few months since my last post around these parts. I&#8217;ve mostly been keeping busy with fitting into the whole West Coast lifestyle and, of course, busy at the job. Although I do miss New York City from time to time, particularly while watching older episodes of How I Met Your Mother, I&#8217;ve [...]]]></description>
				<content:encoded><![CDATA[<p>It&#8217;s been a few months since my last post around these parts. I&#8217;ve mostly been keeping busy with fitting into the whole West Coast lifestyle and, of course, busy at the job. Although I do miss New York City from time to time, particularly while watching older episodes of <em>How I Met Your Mother</em>, I&#8217;ve really enjoyed my time in the Bay Area. People here are interesting, and tech is such a huge part of the culture. It&#8217;s been a fun ride.</p>
<p>This post, however, is not about the adventures of a Puerto Rican being thousands of miles from home (although it could certainly make for an interesting story for another day). This post is about me pulling the trigger on something I&#8217;ve wanted to do for a long time &#8211; switch my VPS (which is where this very blog is running) from <a href="http://www.slicehost.com/">Slicehost</a> to <a href="http://www.linode.com/">Linode</a>.</p>
<p>To begin, I wanted to state that Slicehost is very, very awesome. I&#8217;ve been a customer of theirs for more than two years, and never had any major issues with them. With the exception of some outages, their service ran smoothly for the most part. This is more than anyone can ask for. So, if Slicehost is so awesome, why didn&#8217;t I marry them? I was perfectly content in staying with them.</p>
<p>However, as I was experimenting more and more with Ruby, Rails, Python and other languages / frameworks, my VPS &#8211; which was the smallest slice available at 256 MB &#8211; was obviously starting to suffer under the memory constraints. Since these were mostly experiments, I didn&#8217;t want to splurge and pay almost double for a 512 MB slice. That&#8217;s when Linode <a href="http://blog.linode.com/2010/06/16/linode-turns-7-big-ram-increase/">announced</a> that they would be increasing the RAM sizes of all their slices. So it was either to stay with Slicehost and have my VPS struggle to keep up with my experiments (or pay more per month), or switch VPS providers. After reading all around the Internet about how good Linode was, I decided to go for it.</p>
<p>I opened an account with Linode and instantly had my sparkling new VPS running. I transferred all my files from the old Slicehost VPS and just had to point my domain names to the new Linode VPS. My main concern initially was that Slicehost had really spoiled me with their control panel, especially for DNS management. It was what had initially drawn me into their service to begin with, so leaving that behind was a bit scary. Thankfully, Linode has their own control panel that&#8217;s equally great to use. I was able to configure and point my domain names to the Linode VPS, and had everything working quickly.</p>
<p>As far as performance, I had been reading for years how Linode has faster I/O performance than Slicehost. Turns out that those tests seem to be true &#8211; The VPS as a whole feels much snappier, from logging in via SSH to serving up this very blog.</p>
<p>One of the major issues people had against Linode in the past was that they lacked any integrated backup system, a la Slicehost. They actually <a href="http://blog.linode.com/2010/05/04/introducing-the-linode-backup-service/">introduced backups</a> a few months ago. This wasn&#8217;t a major concern for me (I&#8217;m using <a href="http://www.tarsnap.com/">Tarsnap</a>, which deserves a blog post of its own), but for those who need this sort of service, know that they have you covered.</p>
<p>Like I mentioned, Slicehost is great, and I wouldn&#8217;t encourage people to not use their services. I just had different needs that Linode seems to be handling as well as I expected. It&#8217;s only been a couple of days, but I think I&#8217;ll be shutting down my Slicehost VPS for good.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dennmart.com/2010/07/26/bye-slicehost-hello-linode/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.dennmart.com/2010/07/26/bye-slicehost-hello-linode/</feedburner:origLink></item>
		<item>
		<title>My Arrival To The Bay Area</title>
		<link>http://feedproxy.google.com/~r/ThePuertoRicanRailsDude/~3/GacMFpfvfwg/</link>
		<comments>http://www.dennmart.com/2010/02/21/my-arrival-to-the-bay-area/#comments</comments>
		<pubDate>Mon, 22 Feb 2010 01:44:57 +0000</pubDate>
		<dc:creator>Dennis Martinez</dc:creator>
				<category><![CDATA[Opinion]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Ruby On Rails]]></category>

		<guid isPermaLink="false">http://www.dennmart.com/?p=183</guid>
		<description><![CDATA[Well, after writing in my last post a month ago that I was officially unemployed, I was blessed with acquiring a new full-time job just four days later. Best of all, it&#8217;s where I always wanted to be, the Bay Area! Tomorrow will officially be my first day as a Rails developer for RepairPal. I [...]]]></description>
				<content:encoded><![CDATA[<p>Well, after writing in my <a href="http://www.dennmart.com/2010/01/26/no-rest-for-the-unemployed/">last post</a> a month ago that I was officially unemployed, I was blessed with acquiring a new full-time job just four days later. Best of all, it&#8217;s where I <a href="http://www.dennmart.com/2007/04/28/san-francisco-here-i-come-hopefully/">always wanted to be</a>, the Bay Area!</p>
<p>Tomorrow will officially be my first day as a Rails developer for <a href="http://repairpal.com">RepairPal</a>. I was in their offices last week to meet them personally, and everyone seemed very friendly and the company seems to be doing some cool stuff, so I hope I&#8217;ll be a part of all the awesome stuff that&#8217;s to come. It&#8217;s really a dream come true for me to be where I&#8217;m at right now, at this very moment. It&#8217;s proof that if you really want something bad enough, and you work hard for it, whatever you want will come true.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dennmart.com/2010/02/21/my-arrival-to-the-bay-area/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.dennmart.com/2010/02/21/my-arrival-to-the-bay-area/</feedburner:origLink></item>
	</channel>
</rss><!-- Dynamic Page Served (once) in 0.164 seconds -->
