Archive for the 'Technology' Category

If you follow me on Twitter, you might have noticed that I’ve been retweeting an account called @DrunkBuzzFeed (formerly @BuzzfeedEBooks) fairly frequently. As with most tweets that most people send, there’s a good chance you ignored it, or didn’t think twice about it.

Well, you’re reading this blog post, so maybe now you’re interested: @DrunkBuzzFeed is a robot I made that takes a beginning, middle and end from 3 different randomly selected Buzzfeed headlines, and sends them out as a mashed together tweet. Sometimes the results make perfect sense, and sometimes they don’t. Here are some examples:

For me, the best part of these tweets is that I run the account, and I have no idea what they are going to be. They make me laugh out loud somewhat regularly. If you’re curious about how I made the bot, read this blog post. It’s long, and a little technical. But not very difficult. If you have a Mac, I think you could build one yourself.

So that’s that. The next thing you might ask me is…

Why did I make @DrunkBuzzfeed?

@DrunkBuzzFeed was born out of two things: First off, months, or maybe even years of conversation with a few friends about how frustrating the articles we see shared around the web are. It’s a common bit around the office to mockingly come up with Buzzfeed-esque headlines to describe mundane situations we’re in.

With these two things in mind, my friend Cameron and I came up with the idea of building a bot that tweets fake Buzzfeed headlines. The project had numerous false-starts and dead ends, and probably was built over the course of a couple months. If you followed my blog post now, you could probably set up your own in two hours. With the combination of our inspirations in mind, the project was originally named @BuzzfeedEbooks

We were hoping that the twitter account would have some viral success of its own with the help of a few retweets, but it was an absolute failure in that regard. We discussed, though never went through with, buying fake followers, and eventually tried rebranding it a couple times. @DrunkBuzzFeed is what we’ve settled on for now.

As of earlier today, the account had 11 followers, most of whom I had told personally about the account. The account has been a failure, in all ways but one: I think it’s funny, and a couple I’ve told about it think it’s funny. My hope is that explaining it here, a few more people will think it’s funny.

Even though it brings laughter to me, and I hope it brings laughter to you, I’d like to stand up on my very small soapbox for a moment.

I got a communications degree with a focus in New Media/Journalism, and I am much more on the New Media side of that spectrum. I spend my time working at boom. reactive. doing social media management for companies in the St. Louis area. Yeah, I sit on Facebook all day.

One of my least favorite things about being on Facebook all day is seeing the links to “news stories” my friends are sharing. I didn’t put the word friends in quotes, because I mean it. Many of the people who share crappy links on Facebook are people who I respect a lot, and who I think are otherwise good folks. I did put “news stories” in quotes, because most of the things shared aren’t news.

Buzzfeed, ViralNova, UpWorthy, UpRoxx and more popping up weekly it seems like. These are sites that make The Huffington Post look like The Wall Street Journal/New York Times – whichever one of those you view the most favorably.

Here are seven screenshots I just have sitting around:

Why do any of these things even exist? Clearly they aren’t news, so what about their value as entertainment?

These sites are the reality TV of the internet: lowest possible budget & lowest common denominator. Beyond that, the larger of these sites like Buzzfeed make loads of money selling advertisements on content written by unpaid writers. And much of the content is stolen without credit or payment from elsewhere on the internet.

Throw in an endless opportunity for confirmation bias, an insistence on EXPERIENCING HEIGHTENED EMOTIONS AT ALL TIMES (“You’ll be shocked”, “you won’t believe”, “This will change everything”), and headlines that offer no clue about what’s inside. It all just drives me nuts

And I click on it, you click on it. We all do, and they make money because of it. Meanwhile, sites and services that strive to create real content of value are struggling & failing regularly.

So, what’s the solution? How many people even believe it’s a problem? I’m not advocating endless support for dead-tree companies that are doing a crappy job transitioning to the modern age. I’m not telling anyone to stop clicking on these stories, though I would encourage you to think before sharing them.

The internet is an endless source of proverbial junk food, and it’s fine if you enjoy some occasionally. But every now and then, it might be nice to eat a healthy meal.

@DrunkBuzzFeed is an semi-automated Twitter bot that I built. I break up a bunch of headlines from Buzzfeed into 3 parts, and put them in a Google Drive spreadsheet. Through a variety of automation services, the headline parts are strung together and tweeted out 9 times a day. Using this guide, you should be able to make something similar (or even identical) yourself. I encourage you to do so.

No coding is required. The only thing you need to have to start this tutorial is a computer running OS X. This tutorial was made using 10.9 Mavericks, but it would probably work with older versions as well. It would be to your benefit if you were able to leave this computer on all the time, with persistent internet access but this (probably?) isn’t required for operation.

Follow this guide, look at the screenshots (click on them to see them full size), and don’t give up. Good luck!

1. Get a new Google account, Make sure Dropbox is installed on your computer, get a new Twitter account.

If you’ve already got a Dropbox account and the Dropbox OS X app is already installed on your computer, move along to the next paragraph. If you don’t already have a Dropbox account (what’s wrong with you?), click here to sign up for one. If you don’t have the app installed on your computer, go here and install it.

Finally, sign up for a new Twitter account. This will be where your automated tweets are posted from. Sign up with the email address you just created to keep things straight.

2. Collect content

For @DrunkBuzzFeed, the content is made up of parts of Buzzfeed headlines. Since I hate Buzzfeed, I didn’t want to go there and collect the content myself, so I made the automator service IFTTT (If This Then That) do it.

Even if your content isn’t Buzzfeed headlines, sign up for an account because you’ll need it later. If you already have an account, it’s fine to use that one.

IFTTT calls their automations “recipes”. I made a set of recipes that collect new headlines from every Buzzfeed category, and puts them in the same Google Drive document. You’ll have to connect your Google Drive to your IFTTT to use this recipe, but they’ll walk you through that.

Here’s a sample recipe. I made one of these for each Buzzfeed headline category, but they all end up in the same document.

3. Break up content

When I’m ready to add new content to @DrunkBuzzFeed, I select all the headlines (command+a), cut them (command+x) and paste them (command+v) into a new TextEdit document. TextEdit’s a program that’s already on your computer.

Once I’ve got the contents pasted into TextEdit, I turn the document into plain text (command+shift+t) but that’s personal preference. Then I start breaking the content up with the tab key. I break each headline into 3 parts, so that means I’ll put 2 tab breaks in each headline. It should look something like this:

Once you get everything set up, this step and the next one will be the only thing you do to keep your bot fresh. It’s also the only place you have any kind of creative control. Have some fun with it!

4. Input content

Copy all of your newly separated headlines (command+a, command+c). Head back to Google Drive, and make a new spreadsheet. Name it something you’ll remember

On Sheet 2 (trust me) of your spreadsheet, paste (command+v) all of your headlines. BAM! All your Tabs have turned into new cells.

5. Randomize content to create a piece of new content

So now you’ve got all the parts in place, and here’s where the real automation magic comes into play. For ease of organization, make a Sheet 3, and do this step there.

Next, Follow this guide which does a great job of explaining spreadsheet formulas. Change things as they apply to you. Here’s what mine looks like

As you can see, @DrunkBuzzFeed is chosen from 3 columns of 298 choices. That gives it a possible output over 25,000,000 tweets, assuming each cell was unique.

At this point, you should have a cell that puts together 1 choice from each column, forming something new in a single cell. Now, make Sheet 4 and make cell A1 point to that end product. It might be something like “=Sheet3!A3”. If you’re doing it right, it should display the same thing as your end product on Sheet 3. This is what mine looks like:

6. Get the tweet out of Google Drive and format it

A couple last things before we can get out of Google Drive. First, make your spreadsheet public. I don’t know 100% if this is necessary, but you’re going to be calling on it from another service later, so it can’t hurt. To do this, click the blue “share” button at the top left of the window, and select this option:

Finally, in your spreadsheet, go to File > Publish To Web. For your settings, if you’ve followed all my advice, “Sheets to Publish” should be set to Sheet 4, Automatically Republish when changes are made should be checked, Get a link to published data should be “TXT (Plain Text)” and your cells should be set to A1. I didn’t follow all my advise, so here’s what mine looks like:

Copy and paste that link at the bottom into a new browser window. You should also save it somewhere for later. If you’ve done your job right, SpreadSheetName.tsv should download. Here, try mine. Open that with text edit, and it should be one line that’s a combination of 3 Buzzfeed headlines. Now how do you turn that into a Tweet? This is the part that had me stumped for the longest time. We’re going to turn to an OS X app you’ve probably never used before called Automator. It should be in your Applications folder. If you can’t find it, bring up spotlight (command+space) and search for it.

Open Automator, and navigate to File > New > Application. Yeah, you’re making your own application. Heads up: we’re going to be using the app’s search bar a lot to work quickly. We’re going to do 5 easy tasks.

Task 1: Get Specified URL

Find the “Get Specified URL” task with the search bar. Make the only URL in there the one that comes from your Google Drive spreadsheet. It should look like this

Task 2: Download URLs

This is going to allow you to save that file into a folder of your choosing. The folder you choose should in your public Dropbox folder, and should be used only for this purpose. Here’s what mine looks like:

Tasks 3, 4 & 5: Rename Finder Items: Add Date or Time

Now, we want to make sure each file has a unique name by date stamping it. First, we’re going to rename the finder item as such: Add date or time > Created > Hour Minute > After name > Dash > Space. Then we’re going to rename the finder item Add Date or Time > Created > Month Day Year > After Name > Forward Slash > Space. These two tasks should look like this:

The last Rename Finder Items tab is to change the file extension. So it will go Replace Text > Find tsv in > Full Name (ignore case checked) > Replace: txt. Mine looks like this

Now, run it. Ignore the warning. You should see 6 green checkmarks at the bottom that everything has run correctly. And if you navigate to your specified folder, you should have a new file:

Save your file as something you’ll remember in the same folder that your tweets will be outputting to. Close Automator. Double click on your new application, and ignore any warnings and let it run. The file should create itself without Automator opening at this point.

7. Make tweet readable by IFTTT

IFTTT is the program we’re eventually going to use to send the Tweet, but it can’t read the content of plain text documents. Fortunately, there’s another Automator service called Zapier that can. You probably don’t have a Zapier account, so create one here.

Now, Zapier COULD turn this .txt file into a tweet ALL BY ITSELF in 1 step, BUT we’re not going to go that route. You see, Zapier only allows 100 free actions a month, and so we limit the load on Zapier and put as much of it as possible on IFTTT which allows unlimited free actions a month.

For @DrunkBuzzFeed which sends 9 tweets a day (around 270 a month), I have 3 different Zapier accounts do the work to keep it free for me. With 1 Zapier account, you can do up to 3 a day every month.

The only service you need to connect to your Zapier account is Dropbox. Do so. Then we’re going to create a new Zap. (Zapier Zaps = IFTTT Recipes). My Zap can be found here, but I’ll walk you through how to make your own.

Click “Make A Zap” and make both your trigger and action services Dropbox. Make the trigger “New File In Directory” and make the Action “Create New Text File”. Click “continue” and use the same dropbox account for both your trigger and your action.

For “Only trigger a “New File in Directory” from Dropbox when…” go choose your directory and make it where you just made your Automator task. This is a dumb process and it takes a long time to drill it down. Be patient. Don’t add any custom filters, just click “continue”

Now have it output to A DIFFERENT FOLDER. Make one in your Dropbox Public folder first in Finder, then drill down again just like you did last time to find it.

For “Name of New File” insert “File Text”. You can do the same for File Content. It should look like this:

Test it. You should end up with a new file in your output dropbox folder that’s called “(whatever the body of your old document used to be).txt”. Deep breath. We’re almost there.

8. Send the Tweet

We’re heading back to IFTTT for steps 8 and 9. This first one is going to take your output from Zapier and send it to Twitter. You’ll need to connect your Dropbox and Twitter accounts, but it will walk you through that. Here’s the recipe I used, but I’ll show you how to make it on your own .

Click create, then: If > Dropbox > New File In Your Public Folder > Subfolder Name wherever you have your Zapier output going > Then > Twitter > Post A Tweet > FileNameNoExt… and that’s it. You’re now to a point where if you run the Automator application you created, within 30 minutes, a tweet will show up. I say within 30 minutes, because Zapier and IFTTT aren’t checking all the time, they do it on 15 or so minute intervals. We’re not done with IFTTT yet though!

9. Make New Tweets

We can’t just send the same tweet over and over again. Fortunately, you may have noticed, your randomly generated tweet changes every time you make a change to the spreadsheet. And fortunately, IFTTT can make changes to the spreadsheet for you! Here’s my recipe that does that, but once again I’ll walk you through it.

If > Date and Time > Every Hour At > Doesn’t Matter Minutes Past the Hour > Then > Google Drive > Add Row to Spread Sheet > Spreadsheet Name “Whatever you called your spreadsheet all the way back in step 4” > Put anything in the row. It doesn’t matter what you put, just something> Get rid of Drive Folder Path if it’s in your main Drive folder and Create Action.

Now you’ll be generating a new thing every hour, whether you use it or not.

10. Schedule Tweets to run forever

You don’t want to have to run your application every time you want a new tweet published. This last step will allow you to schedule them forever, so they’ll run when you’re away from your computer (if you’re computer’s on), or while you’re at your computer and you don’t want to think about sending new tweets

Open up Calendar for OS X. Go to File > New Calendar > On My Mac. Call it “Tweet Schedule” or whatever you want.

Right click on a time that’s like 15 minutes from now. Make a “New Event” Make sure your new event is on the calendar “Tweet Schedule” Call the event whatever you want. Make the event time short, maybe 10 minutes long. Set Alert > Custom > Open file > THE APP YOU MADE” Make it repeat every day, if you want. It should look like this: (but with Repeat on “every day”)

Now… wait for the event time. When it comes, your app will run in the background. You won’t see it. What you should see is a new file in your designated Dropbox folder. In 15 minutes or less, Zapier will take that file and rename it. 15 minutes or less after that, IFTTT will take that renamed file and tweet it. If you set this calendar event to repeat every day, you’ve created an automated twitter bot!

With 1 free Zapier account, you can send 3 tweets/day. Create 2 other additional recurring events. For every additional Zapier account you make, you’ll be able to schedule 3 more tweets/day, but you’ll have to duplicate your Automator setup into a new folder. And if everything works, that’s it!

Tips, tricks and thanks

Automator uses Safari, and for whatever reason you need to be logged in to a Google account (any Google account) on Safari for your app to work. Every 2 weeks or so, Safari/Google will sign you out of your account, and you’ll have to sign back in for your tweets to start working again.

Clean out your Google Document collecting new headlines and your Google Spreadsheet that IFTTT is adding to. Do this somewhat regularly (weekly?. They get unruly when they are too large.

I hate Buzzfeed so much

Thanks to @CameronBanga who also hates Buzzfeed for helping me come up with this idea. I wouldn’t have done it without him.

Please if this guide has helped you out at all, contact me on Twitter @mangosquash and let me know. I’ll also answer questions there. Also, I’d love it if you followed my bot. I think the results are funny

I’m almost certain that if Apple only made iPods, they’d still have more profit than Amazon over their most recent reported quarters.

Here’s some rough guessing math. In Apple’s most recent quarter, they made $13.1b in profit on $54.5 B in revenue. That’s a total operating profit margin of 24%. According to their numbers, they sold 12.7m iPods resulting in $2.143b in revenue. That’s an average of $1.68.74/iPod.

If the iPod carries a 24% profit margin (which I don’t think is unreasonable), that would mean Apple made $514.32m in profit on the iPod last quarter.

Amazon posted $405m in operating income last quarter and $97m in “net income gain”. I’m not sure what those numbers mean, but for Apple to match them with iPod profit, it’s margins would have to be 18.8% and 4.5% respectively.

So, in terms of profit, I think it’s pretty safe to say that the iPod had a better quarter than Amazon.

Here’s what I don’t like: Getting hundreds of stupid emails from Twitter for no reason. I swear that I deselect all of the email boxes every time I sign up for a new Twitter profile, especially the ones in the “Updates from Twitter” section. But somehow, when I go back into these accounts, some boxes are checked. How does this happen?

My best guess (and It’s just a guess) is that sometimes they add options and you’re opted into them automatically. You then have to log into Twitter.com (something I try never to do) and opt out. When you’ve got 7 accounts, this process is kind of daunting – I understand that this is my fault, but it’s not something I think I should have to do.

The worst kind of email I get on a weekly basis from almost all of my accounts are “Do you know ‘X’ on Twitter?”

Think about that sentence. What does that mean? If I knew someone, I would know them. I wouldn’t know them on Twitter. If I had met someone through Twitter and that was my only point of reference with that person, I’d know them through Twitter. I wouldn’t know them on Twitter. Either I know someone or I don’t. Twitter has nothing to do with it. AND If I accept the terminology and I know someone on Twitter I’d already be following them.

After the subject line, it posits “Some people you may know on Twitter” which is still nonsense. What they mean here is “Some people you may know who are on Twitter”

Here are some better suggestions for subject lines:
Do you know ‘X’? They’re on Twitter!
‘X’: some Twitter users we think you might know
Follow your friends: Do you know ‘X’?

This post really could be called “All Apple Cloud Services: Work Better”, but I don’t have time to write that right now.

So iTunes 11 is allegedly coming out soon and before I upgraded, I wanted to get my iTunes library under iTunes Match’s 25,000 song limit so that everything would be working properly again. This is something that I have to do about every month. It sucks and it seems completely unnecessary. It also is never as easy as just deleting songs and pressing “Update iTunes Match”. I have to come up with wacky workarounds every time to make it work. Workarounds such as:

These solutions suck. This system sucks. Here’s what should happen: iTunes should say “You’ve exceeded your 25,000 song limit. Would you like to purchase an additional 25,000 songs of space for an additional $20/year?” I’d click yes, and I’d pay $40/year instead of $20/year and I’d never have to worry about the problem again.

Instead, I end up with these stupid problems and spend hours finding songs to delete and Googling how to fix my problems.

Of course there are alternatives: Google Music, Amazon Music, Dropbox. I use all of these things. But they don’t make sense for me. Here’s why iTunes Match is the best solution for my problems, and why I need it to work better:

1) My Macbook Air: It only has 120 GB of storage. My iTunes Library currently runs me at around 138GB. iTunes Match (theoretically) allows me access to all of my music and all of my playlists for none of the space within the iTunes client. While iTunes isn’t the best software, even on a Mac, it is still better than any browser-based solution I’ve used

2) My iPad and my iPhone: Kind of like the Macbook Air scenario, but replace 120 GB with 16 GB. And the browser/app alternatives are even worse in this scenario. Also my car stereo has built in USB integration which allows me to navigate my iPhone/iPad music libraries from the dashboard. I can’t do that if I’m using an alternative software.

So anyway, to end this serious “I feel entitled to services I can’t comprehend or understand” rant, I just want to say: I’ve considered the alternatives. They don’t work for me. I want iTunes Match to work better.

Virgin Wireless Cheap: $1,369

In a world when all carriers are created equal (they certainly aren’t), my money would still be with the Sprint cheap plan. For those who like using their phone to make phone calls more, seems like Cricket’s got the best deal on the market.

Problem:

I work from home in an old house that we are too cheap to heat properly. My desk is near 80 year old windows. My hands get cold and my fingers have trouble typing at full speed.

Solution:

The most obvious solution to this problem is a space heater. However, as my hands are really the only part of me that gets cold, a space heater seemed a little excessive for my needs. Also, they use a lot of electricity and as I mentioned before, we are cheap.

Enter: "Crust Be Dreaming USB Hand Warmers", clearly these are not marketed to men.

I wouldn’t have even thought that something like this existed if it hadn’t been brought to my attention by attention on Twitter by two friends(who I would have linked to but they both have protected accounts, boo!). But I saw them, I bought them, and now I’m wearing them.

My primary concerns before I got them is that they would get in the way of my computer using. I am happy to report that they do not (for the most part). That’s not to say that it didn’t take some getting used to. It’s taken some trial and error.

First off these things are comfortable (even off). They are made out of really solt plush material and fit well on my normal-sized hands. There is even a velcro strap if you need additional tightening (though for me, it is a minor nuisance.)

Velcro strap: Good for some? Not for me.

I have a desktop computer with an old-ish Apple Keyboard that has USB ports on both sides of it and I figured that these would be where I would plug my hand warmers in. I plugged them in and selected the lower of the two settings. (The packaging says they have 3 settings, but this is only if you count “Off” as a setting.) After about 10 minutes of use, it didn’t feel like they were any warmer than if I was just wearing gloves over my hands. I turned it up to high. Same general problem.

I was a little bummed out, but I thought the problem may be that the outlets on my keyboard (which is plugged into my monitor) weren’t provided enough power to warm the mittens. Fortunately, the mittens come with a long USB cable (4 feet maybe?) that allowed me to plug it directly into my tower without any problem. After I did that, they warmed up rather quickly.

Even from here though, Low was not the setting for me. I’ve had my warmers on high for over an hour now and my hands are pleasantly warm (though not hot). I’ve gone through my regular work day (typing, photoshopping, drinking coffee, etc…) and found that I can accomplish everything that I normally do, more comfortably than I normally would, with the help of my Crust Be Dreaming USB Hand Warmers.

I bought them for $34.99 (a little under $40 including shipping) from ModCloth, and had them in less than 4 days. When researching this article however, I found them for $24.99 on ThinkGeek. I don’t know what their shipping prices are though. Either way though, assuming these things keep working, they are worth $40 to me. If you have a problem that is similar to mine, this is a good solution. Buy them.

I am an UI armchair quarterback at best, but two things about this Messages icon bother me:

1) Aqua (and these blue stripes in particular) is on the way out. What is it doing here?

2) The ‌ellipsis (. . .) In the smaller bubble is misleading. In iOS iMessage AND OS X iChat before it, ellipsis indicate that someone is typing. It’s the precursor to a notification. When people see it, the user has an expectation that something is coming soon in that application. By putting an ellipsis in a static icon, the user is misled.