<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><atom:link rel="hub" href="http://tumblr.superfeedr.com/" xmlns:atom="http://www.w3.org/2005/Atom"/><description>hey. i’m justinxreese and this is my blog about technology, web development, life tips and struggling with being healthy; all with a taste of incoherency. hope you find something useful.</description><title>i've noticed..</title><generator>Tumblr (3.0; @justinreese)</generator><link>http://dashdingo.org/</link><item><title>Social Nerds Track Twitter Followers with github</title><description>&lt;p&gt;&lt;strong&gt;Update: &lt;/strong&gt;&lt;em&gt;Be sure to check the updated source code. I wasn’t accounting for the paging mechanism in the Twitter API for followers. The old code won’t work with over 100 followers.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Recently, I logged into Github to find a notification for a new mention. When I went to check it out, I found that I was mentioned because someone was &lt;a title="Technoweenie Repo" href="https://github.com/technoweenie" target="_blank"&gt;logging all of their tweets&lt;/a&gt; with Github.&lt;/p&gt;
&lt;p&gt;Being as obsessive about my low follower count as I am, I thought it would be really cool to apply a similar tactic to Twitter followers. I was able to create a script to do everything I need to track my Twitter followers with Git (and optionally Github) in just a little over an hour.&lt;/p&gt;
&lt;p&gt;Before I began coding, I had to register a new application with Twitter and throw all of my keys/secrets into a config.yml. I also set up a git repository in directory with the script. This way, I didn’t have to worry about checking for a repository - my script can just assume it is there.&lt;/p&gt;
&lt;p&gt;Then the code… it’s pretty simple, so I’ll just paste it.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;span&gt;
&lt;pre&gt;require "yaml"
require "twitter"
require "git"

key_file = YAML.load_file('config.yml')
g = Git.init('.')

Twitter.configure do |config|
  config.consumer_key = key_file['consumer_key']
  config.consumer_secret = key_file['consumer_secret']
  config.oauth_token = key_file['oauth_token']
  config.oauth_token_secret = key_file['oauth_token_secret']
end

follower_file = File.open('followers','w')

cursor = -1 
followers = [] 
begin 
  response = Twitter.followers :cursor =&gt; cursor 
  followers += response.users 
  cursor = response.next_cursor 
end while cursor &gt; 0

followers = followers.sort{|x,y| x.id &lt;=&gt; y.id}.collect{|x| x.screen_name}
followers.each do |f|
  follower_file.puts f
end
follower_file.close

g.commit_all('Followers for '+Time.now.to_s)
g.push&lt;/pre&gt;
&lt;/span&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;That’s it. I set this up to run in a cron job twice a day, and now I have all kinds of green +’s and red -’s next to my follower list. It will fail if there hasn’t been any changes to your follower list, but that’s fine because there’s nothing worth writing home about.&lt;/p&gt;
&lt;p&gt;I may stop pushing to github, just to limit annoyances to my followers there, but I don’t think I need to worry about the list being up there because it’s not any thing that you can’t get by visiting (scraping if you’re a bot) my already public profile. One thing I really like about it being on GitHub is that I can use the RSS feed to passively keep tabs on when things change. I never have to visit that repository just to find out there are no changes.&lt;/p&gt;
&lt;p&gt;You can find the full project here: &lt;a title="justinxreese followers repo" href="https://github.com/justinxreese/justinxreese-followers" target="_blank"&gt;&lt;a href="https://github.com/justinxreese/justinxreese-followers" target="_blank"&gt;https://github.com/justinxreese/justinxreese-followers&lt;/a&gt;&lt;/a&gt;&lt;/p&gt;</description><link>http://dashdingo.org/post/8503788176</link><guid>http://dashdingo.org/post/8503788176</guid><pubDate>Fri, 05 Aug 2011 01:24:00 -0400</pubDate><category>github</category><category>twitter</category><category>ocd</category></item><item><title>You can now use images to search Google Images</title><description>&lt;img src="http://24.media.tumblr.com/tumblr_lnk127HuLl1qa75d0o1_500.png"/&gt;&lt;br/&gt; &lt;br/&gt;&lt;img src="http://30.media.tumblr.com/tumblr_lnk127HuLl1qa75d0o2_500.png"/&gt;&lt;br/&gt; &lt;br/&gt;&lt;img src="http://28.media.tumblr.com/tumblr_lnk127HuLl1qa75d0o5_r1_500.png"/&gt;&lt;br/&gt; &lt;br/&gt;&lt;p&gt;You can now use images to search Google Images&lt;/p&gt;</description><link>http://dashdingo.org/post/7043911080</link><guid>http://dashdingo.org/post/7043911080</guid><pubDate>Wed, 29 Jun 2011 09:49:00 -0400</pubDate><category>google</category><category>search</category></item><item><title>So... here's what I did tonight</title><description>&lt;p&gt;&lt;a title="Instaplaces" target="_self" href="http://instaplac.es"&gt;&lt;a href="http://instaplac.es" target="_blank"&gt;http://instaplac.es&lt;/a&gt;&lt;/a&gt; - I&lt;span&gt;nstaplaces is a tool for finding cool things around you that you may have never knew existed. By using your phone’s GPS or your computer’s location, I’ve listed below the places near you where people are taking pictures most frequently using the popular Instagram app.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;I was playing around with Instagram and noticed that there were locations for each picture, but seemingly no way to look at images taken at that location. So, instead of worrying about this missing feature… I built it.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;I don’t know what got to me, I don’t really have free time, but I really wanted to get this done because I’ll be moving to a new city in the next few weeks and will be looking to do all kinds of exploring. With Instaplaces, I can figure out what places are fun just by looking how many pictures are taken there and of what.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;There are a few issues - like a lot of pictures going un-tagged with a location and a limited amount of images, but Instamatic grows every day and hopefully this will encourage people to tag their photos with a location ;). I also noticed it didn’t work when I tested in Safari, but it works fine in Safari for iOS - so I’m just chalking that up to a gimmick for now.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Behind the scenes, Instaplaces is built with sintra and obviously powered by the Instagram API.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;img src="http://media.tumblr.com/tumblr_llqnu7qvG81qa2vxb.png"/&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;</description><link>http://dashdingo.org/post/5826926108</link><guid>http://dashdingo.org/post/5826926108</guid><pubDate>Wed, 25 May 2011 02:43:00 -0400</pubDate><category>apps</category><category>projects</category><category>ruby</category><category>sinatra</category><category>instagram</category></item><item><title>Live-Blogging the Rapture</title><description>&lt;p&gt;&lt;ul&gt;&lt;li&gt;Nothing yet&lt;/li&gt;
&lt;li&gt;9:43am - still nothing&lt;/li&gt;
&lt;li&gt;6:23pm - still nothing&lt;/li&gt;
&lt;/ul&gt;&lt;/p&gt;</description><link>http://dashdingo.org/post/5687697097</link><guid>http://dashdingo.org/post/5687697097</guid><pubDate>Sat, 21 May 2011 00:09:00 -0400</pubDate><category>rapture</category></item><item><title>Is Color’s founder Bill Nguyen one of the few leaving...</title><description>&lt;img src="http://26.media.tumblr.com/tumblr_lldr4zcd4T1qa75d0o1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;Is Color’s founder Bill Nguyen one of the few leaving positive (and kind of snarky) reviews for Color?&lt;/p&gt;</description><link>http://dashdingo.org/post/5601443642</link><guid>http://dashdingo.org/post/5601443642</guid><pubDate>Wed, 18 May 2011 03:21:15 -0400</pubDate><category>color</category></item><item><title>An Update on Self Compete</title><description>&lt;p&gt;I thought I was due for an update on Self Compete. This is almost a personal blog post, which (for me at least) is pretty strange. Luckily, it is a personal post hidden within a status update on something that may actually interest you so it doesn’t get sappy or anything obnoxious like that!&lt;/p&gt;

&lt;p&gt;Self Compete has come pretty far. The app functions well, with a few quirks, and the design is pretty solid, although not beautiful. The waiting list still grows every day. I had planned on sending out invites to participate in a beta during the past week but wasn’t able to get to it.&lt;/p&gt;

&lt;p&gt;I wasn’t able to get to it because I’ve taken an awesome new job at StatSheet. I love it already. I get to write Ruby on Rails code that presents sports content to users with a fun team of passionate developers who care about improving everything they do.&lt;/p&gt;

&lt;p&gt;One of the side effects of taking a new job was that I have virtually had two jobs for the past few weeks. Self Compete suffered a bit because of this, after all it is a one man show and with one man down that means no work gets done.&lt;/p&gt;

&lt;p&gt;So, for a few weeks while I adjust to my new job and move across state lines, updates to my personal ventures will come more slowly. They will come, however, because these projects are important to me.&lt;/p&gt;

&lt;p&gt;Beta invites will be going out some time over the next few weeks to some of Self Compete’s most eager followers and I will be using their input to determine when the app will be suitable for launch. If you want to participate in the beta, make sure you sign up for the waiting list over at &lt;a href="http://www.selfcompete.com" target="_blank"&gt;http://www.selfcompete.com&lt;/a&gt;&lt;/p&gt;</description><link>http://dashdingo.org/post/5600984499</link><guid>http://dashdingo.org/post/5600984499</guid><pubDate>Wed, 18 May 2011 02:48:17 -0400</pubDate><category>selfcompete</category><category>app</category><category>personal</category><category>webapp</category><category>statsheet</category></item><item><title>This is what happens when you add something to your cart with...</title><description>&lt;img src="http://28.media.tumblr.com/tumblr_lklenjCrCW1qa75d0o1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;This is what happens when you add something to your cart with the Zappos app&lt;/p&gt;</description><link>http://dashdingo.org/post/5145836750</link><guid>http://dashdingo.org/post/5145836750</guid><pubDate>Mon, 02 May 2011 19:58:45 -0400</pubDate><category>awesome</category><category>ux</category><category>zappos</category><category>cats</category></item><item><title>Man… that is just so cool. I love the internet.</title><description>&lt;img src="http://29.media.tumblr.com/tumblr_lkby0qW9aw1qa75d0o1_500.png"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;Man… that is just so cool. I love the internet.&lt;/p&gt;</description><link>http://dashdingo.org/post/4993228683</link><guid>http://dashdingo.org/post/4993228683</guid><pubDate>Wed, 27 Apr 2011 17:22:02 -0400</pubDate><category>oreilly</category><category>me</category><category>viral</category></item><item><title>Seriously, Use LaunchRock</title><description>&lt;p&gt;Seriously, if you are building any kind of web application, you should be using &lt;a title="LaunchRock" target="_blank" href="http://launchrock.com/"&gt;LaunchRock&lt;/a&gt;. LaunchRock is a service that creates a viral “Coming Soon” page that you can use to collect potential users. Sounds simple, right? Too simple? Actually… yeah. But the return on investment is just huge. Let me explain how it worked for me.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The Need&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I had gotten to a point in building &lt;a title="Self Compete" target="_blank" href="http://selfcompete.com/8ntmr"&gt;Self Compete&lt;/a&gt; where I was going to begin testing a feature that posted to Twitter and Facebook. This only way to test this feature (as in posting to Twitter and Facebook), is extremely public. If I was going to be doing testing that everyone was going to see, I better have something for them to look at. So I began to design a sign up page, hoping to turn the interest of these public tests into some sort of user base. I spent a few days designing something that I felt looked good and began working on a script to collect emails. Then I realized the headache that entails. “I have to convert this design to HTML”, “I’m going to need to pay for hosting to host a page”, “I’m going to have to write a script to store the emails that are entered”, “I’m going to write a script to display or send the emails that are stored”, “I’m going to have to market this page constantly”. For such a small page, with at most 2 fields, there is a lot of work to be done. That means a lot of time spent NOT working on my application which I need the sign up page for!&lt;/p&gt;
&lt;!-- more --&gt;
&lt;p&gt;&lt;strong&gt;The Solution&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The day I had finished my design, and was about to start coding, was the day that I received an invite to use LaunchRock. Instantly, 2 days of work (and then the continued marketing) was transformed into 2 hours of work for free. I signed up, changed some DNS settings, filled out a form and &lt;a title="Self Compete" target="_blank" href="http://selfcompete.com/8ntmr"&gt;&lt;a href="http://www.selfcompete.com" target="_blank"&gt;www.selfcompete.com&lt;/a&gt;&lt;/a&gt; was now a social media powered sign up page.&lt;/p&gt;
&lt;p&gt;Sure… a sign up page is easy stuff, but it has just gotten to the point where it is such an unnecessary burden on time that could be used better. This is like paying for food to be delivered so you can continue to work, instead of spending time cooking or leaving to get food. LaunchRock is your favorite pizza place.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Managing Your List&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Just being on LaunchRock is going to get you a fair share of sign ups. The best part of LaunchRock, however, is how it encourages the sign up of friends by giving each person a unique code to share. You’ll find that virality works in strange ways and your list will grow from unexpected places.&lt;/p&gt;
&lt;p&gt;The ease of using LaunchRock does come with a dangerous sense of complacency. There was a recent &lt;a href="http://news.ycombinator.com/item?id=2441828" target="_blank"&gt;discussion on Hacker News&lt;/a&gt; that actually inspired a change in how I will handle my email list. In a blog post, a LaunchRock signee railed against start ups for collecting email addresses and doing nothing with them. I hadn’t given the list much thought until I read the referenced blog post, I had just planned on letting the list sit and collect email addresses as I continued to do my thing working on Self Compete, but the author was completely right. I thought back to the times when I received an email from something I had supposedly signed up for and forgotten. Usually, when that happens, I don’t read the email. In the Hacker News thread, a poster referred to succinctly it as keeping the list “warm”. I’ve already gotten an email drafted that I plan on sending out this week, addressed to everyone that has signed up so far. If someone was interested enough to sign up for this list, they deserve to be updated on occasion and maybe even just a simple “Thank You, we’re still here”.&lt;/p&gt;</description><link>http://dashdingo.org/post/4702982664</link><guid>http://dashdingo.org/post/4702982664</guid><pubDate>Sun, 17 Apr 2011 19:41:19 -0400</pubDate><category>self compete</category><category>launchrock</category><category>apps</category><category>saas</category></item><item><title>How MealSnap Works</title><description>&lt;p&gt;If you’ve used DailyBurn’s new app, MealSnap, you’ve probably been mystified wondering how it works. MealSnap is an app that lets its user take a picture of the food they’re eating and, based on that image, will provide calorie information for that food.&lt;/p&gt;
&lt;p&gt;I’ve used app for about 6-7 meals now and I’ve been pretty amazed at the accuracy. So much so that I had to find out how they did it.&lt;/p&gt;
&lt;p&gt;There has been some speculation at how it works in articles, but I couldn’t find a solid answer. Is it image recognition? Do they have a team? Do they use Mechanical Turk? Well… one of those hypotheses is incredibly easy to test. &lt;/p&gt;
&lt;p&gt;I visited Mechanical Turk, typed in “food”, and ta-da! &lt;/p&gt;
&lt;p&gt;&lt;img src="http://media.tumblr.com/tumblr_lj8i5vnkhE1qa2vxb.png"/&gt;&lt;/p&gt;
&lt;p&gt;Well.. truth be told, I had to hit refresh because these HIT’s are moving fast and the first search turned up no results. Looks like they’re using Mechanical Turk to identify the foods at anywhere from $0.02-$0.05 per picture and then using the data returned from Mechanical Turk to search for calorie information in their already well established database of food.&lt;/p&gt;
&lt;p&gt;With a $2.99 price point for the app, DailyBurn would start losing money at around meal 60. By that point, however, Daily Burn has a loyal user that can easily be converted to the sale of another app in their family of products.&lt;/p&gt;
&lt;p&gt;It’s actually refreshing to see such a non-technical solution after apps like IntoNow, Shazaam, Google Goggles and Word Lens have amazed me with new breakthroughs in analyzing the real world. Sometimes the most simple solution gets the job done. Maybe I should use manual labor in &lt;a title="Self Compete" href="http://selfcompete.com/xppq4" target="_blank"&gt;Self Compete&lt;/a&gt;?&lt;/p&gt;</description><link>http://dashdingo.org/post/4391031302</link><guid>http://dashdingo.org/post/4391031302</guid><pubDate>Wed, 06 Apr 2011 10:47:00 -0400</pubDate><category>apps</category><category>mealsnap</category><category>investigation</category><category>mechanical turk</category></item><item><title>What is Self Compete?</title><description>&lt;p&gt;On the road here, to search for the new headquarters of Self Compete in beautiful Raleigh-Durham. Well, not exactly… I am on the road, headed toward Raleigh-Durham (which is beautiful), and Self Compete is a thing but it’s not a thing that’s ready for a headquarters. So… what exactly is &lt;a target="_blank" href="http://selfcompete.com/mrwmc"&gt;Self Compete&lt;/a&gt;? Self Compete is my entry into the wonderful world of web applications. The idea started as a personal motif - a mission for each day, to improve upon the day before. It felt good. It felt like personal growth. It improved self confidence because I was growing and able (and willing) to take on new things.&lt;/p&gt;
&lt;p&gt;This way of living wasn’t without its drawbacks. There was the risk of overdoing it and causing myself to degrade rather than improve. Also, it was difficult keeping track of where I had already been. I want to run further than the last time… but how far did I run last time? Around the time of realizing these issues, I was also a big fan of playing games on my iPhone. I would get 2 stars on Angry Birds and think to myself, “well I will definitely get 3 stars if I break 100,000.” That was the moment of realization - these high scores were what I needed for every day life.&lt;/p&gt;
&lt;p&gt;Self Compete is my solution to these problems. It is an application that creates a way to measure any goal, break new personal bests and even do a little bragging. Through measuring where I had been, I was able to set realistic goals that were both attainable and still an improvement. Through incremental and controlled improvement, I could get better without over doing it and risking degrading myself. Along with the ability to set goals, I gained an emotionally valuable understanding of myself.&lt;/p&gt;
&lt;p&gt;My newest goal is to bring those things to you and to make them fun. I’ve already begun to develop and hope to have something out very soon. In the meantime sign up for early access at &lt;a target="_blank" href="http://selfcompete.com/mrwmc"&gt;&lt;a href="http://www.selfcompete.com" target="_blank"&gt;www.selfcompete.com&lt;/a&gt;&lt;/a&gt; and I’ll post regular updates on this site. I’ll be listening for your feedback!&lt;/p&gt;</description><link>http://dashdingo.org/post/4273080092</link><guid>http://dashdingo.org/post/4273080092</guid><pubDate>Fri, 01 Apr 2011 22:26:00 -0400</pubDate><category>apps</category><category>projects</category><category>rails</category><category>web</category><category>goals</category></item><item><title>Convert Time to a Fraction</title><description>&lt;p&gt;If you come across the need to store time as a float in ruby (I won’t judge you), you can use this bit of code. It assumes that each subpart of the time string is 60 parts of the previous part. This works for hours, minutes and seconds, regardless of how it is entered, and will always use the first part as the base measurement.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;span&gt; &lt;/span&gt;j = 0 &lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;span&gt; &lt;/span&gt;timer = 0 &lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;span&gt; &lt;/span&gt;"12:40:30".split(':').each do |y| &lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;span&gt; &lt;/span&gt;timer += y.to_f / (60**j); j += 1; &lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;span&gt; &lt;/span&gt;end&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;In this example, the numbers 12, 0.66, and 0.008 are summed to give 12.6724 hours.&lt;/p&gt;</description><link>http://dashdingo.org/post/3574058347</link><guid>http://dashdingo.org/post/3574058347</guid><pubDate>Mon, 28 Feb 2011 20:47:00 -0500</pubDate><category>ruby</category><category>code</category></item><item><title>Quickly Add Album Art to iTunes</title><description>&lt;p&gt;If you’re obsessive about your iTunes collection, you may never get to this point. I, however, have left my library unattended to for quite some time and have found a few too many albums without artwork for my liking. I’d like to clean it up a bit and, as far as I’m concerned, necessity AND laziness are the mothers of invention.&lt;/p&gt;
&lt;p&gt;First, I created a Smart Playlist to find all of the albums that are missing artwork.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://media.tumblr.com/tumblr_lfhoorJGrj1qa2vxb.png"/&gt;&lt;/p&gt;
&lt;p&gt;That will give us a nice organized playlist.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://media.tumblr.com/tumblr_lfhoqzkYpT1qa2vxb.png"/&gt;&lt;/p&gt;
&lt;p&gt;Which we can do a Cmd+a (Select all) and then right click to “Get Album Artwork” from the iTunes store.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://media.tumblr.com/tumblr_lfhothdGIv1qa2vxb.png"/&gt;&lt;/p&gt;
&lt;p&gt;Which will, in all likelihood, clear out a majority of your playlist’s blank album art. You’ll find that a lot of what’s left is either a poorly labeled album or a track without an album. &lt;/p&gt;
&lt;p&gt;&lt;img src="http://media.tumblr.com/tumblr_lfhoz4axZr1qa2vxb.png"/&gt;&lt;/p&gt;
&lt;p&gt;Nothing groundbreaking here. Not comprehensive. I’m sure there are even programs that will do most of the work for you. This, however, is quick, easy and already installed on your computer if you are using iTunes… so, why not try it?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;… or this&lt;/p&gt;
&lt;p&gt;&lt;img src="http://media.tumblr.com/tumblr_lfue4iHJjt1qa2vxb.png"/&gt;&lt;/p&gt;</description><link>http://dashdingo.org/post/2895570984</link><guid>http://dashdingo.org/post/2895570984</guid><pubDate>Sun, 23 Jan 2011 14:10:00 -0500</pubDate><category>itunes</category><category>tip</category><category>music</category></item><item><title>A Very Brief Introduction to bing-location</title><description>&lt;p&gt;Over the weekend, I finally published my Ruby Gem bing-location. There isn’t much to it yet, but it is easily forked from the &lt;a title="bing-location rubygem" target="_blank" href="https://github.com/justinxreese/bing-location"&gt;github repository&lt;/a&gt; and I encourage contribution!&lt;/p&gt;
&lt;p&gt;Here’s a bit from &lt;a title="bing-location rubygem documentation" target="_blank" href="http://rubydoc.info/github/justinxreese/bing-location/master/frames"&gt;the documentation&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;span&gt;
&lt;p&gt;This class is a wrapper for the Bing Maps API that makes it easy to get more information about a location or create maps.&lt;/p&gt;
&lt;p&gt;Currently the class is built for dealing with one object (point on a map/location).&lt;/p&gt;
&lt;/span&gt;&lt;/p&gt;
&lt;/blockquote&gt;</description><link>http://dashdingo.org/post/2675879723</link><guid>http://dashdingo.org/post/2675879723</guid><pubDate>Sun, 09 Jan 2011 19:38:46 -0500</pubDate><category>ruby</category><category>gem</category><category>bing</category><category>maps</category><category>geolocation</category><category>web development</category></item><item><title>SQLite3::SQLException: table already exists</title><description>&lt;p&gt;Another installation of “Things that you can’t really find on Google!”&lt;/p&gt;
&lt;p&gt;When using rake db:migrate you may run into a problem if you have previously created a table in a migration and have not done a proper down migration. In my case, I completely forgot to do a migration between doing a `rails destroy scaffold` and recreating the scaffold with new properties.&lt;/p&gt;
&lt;p&gt;Doing so, caused the following error when I did `rake db:migrate` :&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;==  CreateTable_Names: migrating ================&lt;/p&gt;
&lt;p&gt;— create_table(:table_name)&lt;/p&gt;
&lt;p&gt;rake aborted!&lt;/p&gt;
&lt;p&gt;An error has occurred, this and all later migrations canceled:&lt;/p&gt;
&lt;p&gt;SQLite3::SQLException: table “table_name” already exists: CREATE TABLE “table_name” &lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Luckily, this is very easy to fix. There may, however, be an exclusion made by most of the problem solvers on the internet that won’t be assumed by the beginning Rails programmer. The solution is easy: drop the table. How to do the solution, especially for those with a MySQL background, can be tricky.&lt;/p&gt;
&lt;p&gt;From the command line, your first instinct will be to start sqlite and look for the table to drop. However, the proper way to do it is to go to your Rails application directory and run the following command to open the development database for your application:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;sqlite3 db/development.sqlite3 &lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Once you’ve started sqlite3 with the proper database, you probably know what to do:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;sqlite&gt; drop table table_name;&lt;/p&gt;
&lt;p&gt;sqlite&gt; .quit&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This is pretty simple, but old habits die hard and coming from MySQL leads you to follow the wrong steps so its worth sharing for the stranded Googler. Maybe just learning SQLite properly is the trick here.&lt;/p&gt;</description><link>http://dashdingo.org/post/1627307077</link><guid>http://dashdingo.org/post/1627307077</guid><pubDate>Sat, 20 Nov 2010 11:06:00 -0500</pubDate><category>sqlite</category><category>rails</category><category>rake</category><category>ttycrfog</category></item><item><title>Rails Attribute Types</title><description>&lt;p&gt;When you generate a model or scaffold in Rails, you can specify attributes along with their type. Using typed attributes is an incredibly useful tool in rails generator because it will generate the appropriate field types in your database and html in your views.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;$ rails generate scaffold Post name:string title:string content:text&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;More accurately, these are the types supported by ActiveRecord. The problem is, not a single rails tutorial will tell you the full list of types. I suppose you’re supposed to just guess and hope everything works.&lt;/p&gt;
&lt;p&gt;It is incredibly annoying to find these on Google, so I’m hoping to contribute to a few keyword searches by putting these here. (And this will serve as a personal reminder of sorts)&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Supported ActiveRecord Types:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;:string, :text, :integer, :float, :decimal, :datetime, &lt;/p&gt;
&lt;p&gt;:timestamp, :time, :date, :binary, :boolean&lt;/p&gt;
&lt;/blockquote&gt;</description><link>http://dashdingo.org/post/1626899014</link><guid>http://dashdingo.org/post/1626899014</guid><pubDate>Sat, 20 Nov 2010 09:54:42 -0500</pubDate><category>rails</category><category>activerecord</category><category>generate</category><category>scaffold</category></item><item><title>Whoops: Quit Chrome With Tabs Open</title><description>&lt;p&gt;I do this so frequently lately. But luckily this time, I realized that Cmd + Shift + t (which regularly performs an “Undo last tab close” action) will bring back your previously opened tabs if you inadvertently quit Chrome :)&lt;/p&gt;</description><link>http://dashdingo.org/post/1362807698</link><guid>http://dashdingo.org/post/1362807698</guid><pubDate>Wed, 20 Oct 2010 21:24:42 -0400</pubDate><category>Chrome</category><category>tips</category></item><item><title>Hotels.com Has a Skewed View of "Once a Week"</title><description>&lt;p&gt;I noticed that hotels.com had become one of the more prevalent spammers of my inbox as of late, so I finally made the effort to unsubscribe from their mailing list. I was disturbed to find the frequency setting to be listed as “about once a week”. &lt;/p&gt;
&lt;p&gt;&lt;img src="http://media.tumblr.com/tumblr_l8ufbszban1qa2vxb.png"/&gt;&lt;/p&gt;
&lt;p&gt;They must use “about” very loosely around the hotels.com office because I’ve received at least 3 emails a week, including one each of the past 3 days. The screenshot below even has a few emails cropped out &lt;/p&gt;
&lt;p&gt;&lt;img src="http://media.tumblr.com/tumblr_l8ufc0nPAh1qa2vxb.png"/&gt;&lt;/p&gt;
&lt;p&gt;Who goes on vacation as often as hotels.com would like me to? I wish I had that kind of free time and money to blow. When marketing with e-mail, you should really consider the likelihood of the target customer to use an offer, because overbearing amounts of e-mail are likely to cause them to unsubscribe. I am definitely not going to use multiple hotel discounts in a one week period. If I was going to book a hotel, however, and knew that I had received an e-mail from hotels.com in the past 2 weeks then I’d certainly look for it in my inbox.&lt;/p&gt;</description><link>http://dashdingo.org/post/1132110432</link><guid>http://dashdingo.org/post/1132110432</guid><pubDate>Thu, 16 Sep 2010 10:26:11 -0400</pubDate><category>annoyances</category><category>marketing</category></item><item><title>Back to normalcy</title><description>&lt;img src="http://30.media.tumblr.com/tumblr_l8j7v3Tp1F1qa75d0o1_500.png"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;Back to normalcy&lt;/p&gt;</description><link>http://dashdingo.org/post/1096994968</link><guid>http://dashdingo.org/post/1096994968</guid><pubDate>Fri, 10 Sep 2010 08:54:39 -0400</pubDate><category>lifehacker</category><category>gizmodo</category><category>analytics</category></item><item><title>Mute Mac OSX from Smartphone (More Simply)</title><description>&lt;p&gt;&lt;br/&gt;Don’t forget to &lt;strong&gt;&lt;a title="justin x reese" target="_blank" href="http://twitter.com/justinxreese"&gt;Follow Me on Twitter&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Thanks to some of the great comments I’ve received on the last post, I’ve found ways to simplify the setup and enhance the presentation of the Mute OSX script. I’ve even written the script for you this time around!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Install the script&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Head on over to &lt;a title="Mute Mac OSX Script" target="_blank" href="http://gist.github.com/570042"&gt;this link&lt;/a&gt; on github and download mute.php. All you need to do is place this file in the Sites directory in your home folder.&lt;/p&gt;
&lt;p&gt;Also, I’ve included an icon in the file. To use this, simply save the image bellow as “muteIcon.png” in the Sites directory.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://media.tumblr.com/tumblr_l8g6hexd5H1qa2vxb.png"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Note: You may need to enable PHP. I’ve found a good guide &lt;a title="Enable PHP in OSX" target="_blank" href="http://matthom.com/archive/2008/11/27/enable-php-on-mac-os-x"&gt;here&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Okay, the script is in place. How do you access them?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;First, you must make sure that you have Web Sharing enabled by opening the Sharing panel in System Preferences.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Sharing System Preferences panel" align="middle" src="http://media.tumblr.com/tumblr_l8byulEiCa1qa2vxb.png"/&gt;&lt;/p&gt;
&lt;p&gt;Once this is enabled and you are on the same network as your Mac, you will be able to access the script from your mobile phone by going to the following address in your web browser&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href="http://computer_name.home/~User/mute.php" target="_blank"&gt;http://computer_name.home/~User/mute.php&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;Here is the only “iPhone only” part of this post:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;You can then simply bookmark the page and add it to your homescreen and you have a “Mute My Mac” button on your iPhone!&lt;/p&gt;
&lt;p&gt;Any smartphone with a web browser will be able to run the script. Just bookmark the page for easy access.&lt;/p&gt;
&lt;p&gt;&lt;img width="60%" alt="Mute OSX from iPhone" align="middle" src="http://media.tumblr.com/tumblr_l8g6mjOHT91qa2vxb.png"/&gt;&lt;/p&gt;</description><link>http://dashdingo.org/post/1088155081</link><guid>http://dashdingo.org/post/1088155081</guid><pubDate>Wed, 08 Sep 2010 17:36:00 -0400</pubDate><category>Mac</category><category>OSX</category><category>iPhone</category><category>script</category><category>tips</category><category>Android</category></item></channel></rss>

