eddieroger.com

Always fluxing.

CouchDB for Mac Installation

| Comments

One of the things I wanted to do when I very destructively changed my blog to Octopress was better document the things I do with my computer so that I can find it in the future. A recent project has lead me down a rabbit hole towards CouchDB, and since I do my development on a Mac, I need a local instance. For the record, installation on Ubuntu, like what my servers run, is super-duper easy:

Ubuntu Installation
1
apt-get install couchdb

Mac installation, however, wasn’t quite as easy, but it was close. I’m using Homebrew as my package manager since I’ve had a sordid past with MacPorts. After installing Homebrew, I just needed to have it install CouchDB. Here’s all the code I ran:

Mac Installation
1
2
3
4
5
# Install Homebrew - only need to do this once
/usr/bin/ruby -e "$(curl -fsSL https://raw.github.com/gist/323731)"

# Install CouchDB and dependencies 
brew install couchdb -v

I added the -v flag because I wanted to make sure it wasn’t locking up, since my first attempt at an install didn’t go so well. However, attempt #2 went swimmingly, and I’m installing it on my MacPro right now. So far, so good.

Update Always run on verbose! Turns out I’m having a problem downloading one of the dependent files, so it’s halting. Rerunning the brew install step will eventually fix it by finally getting the whole file. Sounds hacky, is hacky.

Because I want to have CouchDB running when the machine is and not think about it, I needed to add a launchd script to my startup. I was guided how to do so by running “brew info couchdb”, but for posterity, here’s my transcript:

Launch on Login Configuration
1
2
3
4
5
6
7
# To get the help
brew info couchdb
[...]

mkdir -p ~/Library/LaunchAgents
cp /usr/local/Cellar/couchdb/1.1.1/Library/LaunchDaemons/org.apache.couchdb.plist ~/Library/LaunchAgents/
launchctl load -w ~/Library/LaunchAgents/org.apache.couchdb.plist

That’s it! I now have a working installation of CouchDB on my Macs! If you’re playing along with the home game, here’s a link to the admin console.

Welcome to the Admin Party!

Switching to Uverse

| Comments

My parents are by no means afraid of technology. We were one of the first families I knew with a computer, early on the broadband bandwagon, and they both now have smartphones. However, my parents have always been extremely deliberate with their technology choices. Voicemail didn’t have a long life at my house, since the answering machine kept working, and was a much simpler path between missed call and message. We also never made the jump to put Caller ID on the line because answering the phone was just as pragmatic. And the computers that we had early were only upgraded when they stopped doing the things the needed to do, which often included incrememntal internal upgrades. My parents fall right at the top of the Gartner Hype Cycle.

Given this, I was a little surprised when my dad called me up the other day and said that they were seriously considering switching their Comcast cable and Internet service over to Uverse. I’ve been using Uverse since I moved back to Indianapolis, and it is easily the only AT&T service I’ve been impressed with in the last ten years. The plan my parents picked will save them money (pragmatic!) and result in a pretty big upgrade in technology for them. Whole house DVR, on-screen Caller ID (finally), and boxes on all the televisions - surprisingly progressive. Through the duration of the call, I gave my dad some notes to tell the installer (no wireless boxes unless necessarily, use the existing coax, place the gateway in the family room where the router is), and let the process happen.

The installer came when I was away for the evening, so I was phone-only support. My mom handled it like a champ. The installer left something to be desired, but she had already got her computer back on the new Internet and had Grandma’s halfway set up. I had to do some of the more specific configurations I have in place - namely, reprogramming the Harmony remotes and replacing the lazy installer’s coax from the box with HDMI - but they all took right to it. I’ve taugh them so well.

A few days in, and so far, so good. I’m taking the “no news is good news” approach - I haven’t been called about any big issues, and after I swap out a few more HDMI cables for coax, they’ll be all set. My dad is amazed by remote scheduling via his Nexus S and seems to really be enjoying DVR. Mom and Grandma are less than thrilled about the lack of The Hallmark Channel, but they move on. And I’m happy that they’re finally taking advantage of HDTV on the sets they’ve got.

All in all, a good change. Welcome to the bleeding edge.

Resolutions

| Comments

Happy New Year.

Resolutions are a big part of New Years, but I’ve never really got it. I mean, I do on a superficial level - nothing says opportunity to start something new like a brand new year - but I’ve never needed a prompt like that to begin something fresh. Now, I will usually start new things on a Sunday for similar reasons, but I get 52 of those a year instead of just one. What’s more, my birthday is right around the corner from New Year’s, so why not use that?

That said, there are plenty of things I have on my list to accomplish in 2012. Some are worth sharing and may get their own blog post, some are fairly personal and probably won’t. But, Internet, have no fear - blogging more is high up on the list, because I love you. For now, just take this as a sign of good faith - 2012 won’t necessarily be a year of change (because isn’t every?), but it will be a year of accomplishments. So, here’s to it.

So Long GoDaddy, and So Can You

| Comments

Unless you don’t use the Internet or haven’t seen the news in a while, you should be mildly familiar with the Stop Online Piracy Act, nicknamed (and #hashtagged) SOPA. Essentially, the Government is trying to put in to place measures that will allow a ISPs to block a domain at will - gross oversimplification, of course, but this isn’t an article about SOPA.

Since it’s inception, GoDaddy has been a strong supporter (and recent contributor) to the wording and legislation around SOPA. To me, these are acts that I can’t support, so I’m taking my business elsewhere. I’ve registered a few domains with them over the year as well as purchased an SSL certificate, and pending right now, I’m moving them over to Namecheap. They came strongly recommended by the hivemind at reddit, publicly display their disapproval and stance on SOPA, and even had a promotion - byebyegd - for anyone leaving GoDaddy (or anyone at all).

Will a measly 10 domains make a difference to GoDaddy? Probably not, but as of yesterday, they had lost 70,000+. And isn’t the basic idea behind capitalism the ability to vote with my dollar? They probably won’t close their virtual doors because of this, but they will be shy a few dollars every year come renewal.

The nice thing for me is that I am finally consolidating my domains and taking a solid inventory of the mess I’ve made of my domains and web presence over the last few years. As of a few days from now, all of my domains will have the same renewal date, and I will have a solid list of which domain is where. I may even come up with a Mac app out of this to manage it all going forward. Wouldn’t that be something?

Oh yeah, Merry Christmas and Happy Hanukkah!

Here We Go Again

| Comments

Not again.

For a long time, my site had the subtitle, “Another Day, Another Platform.” Well, I’m afraid that’s, true again. If memory serves, in the nearly 10 years of this website’s existence, I’ve moved platforms at least five times. Clearly memory isn’t serving or that would be an actual number. I’ve been with Blogger using iFrames, Movable Type to generate static HTML (heh, more on this later), WordPress and WordPress and WordPress, and my own incarnation once or twice in there.

On Being an Adult Male at a Gym Meet

| Comments

There’s been a lot of talk in the press recently about some of the disgusting things that have been happening at Penn State. Not the cover up business, but the terrible allegations against Sandusky and what he may have done to those poor children. This isn’t a story about him.

We live in a world where it is now weird for adult men to be alone with children. Single fathers aren’t the norm. Men walking through a park a little too slowly will trigger a call to the cops. Kids can’t be outside too far from home or too long for fear of being snatched.

This past weekend I got to (finally!) go to my cousin’s gym meet at a local middle school. Being the avid amateur photographer I pretend to be, I took my camera. As my dad and I were walking in, I had a strange cringe of what people would think about two adult men (we drove separate from my aunt and cousin) walking in to a building of little girls with our cameras. I made sure we were sitting obviously with my aunt before actually pulling out my cam and zoom lens, but I couldn’t share the fear that people would be concerned. After her first event, I let it go, but I can’t shake the feeling.

I don’t intend on diving in to a “how did we get here” type blog post, nor is this a social commentary. I have come to rationalization that I would rather people eye me funny if I take my cousins out for lunch or something than risk a stranger harming them and no one taking action. But it is a shame that this is the case.

For the record, my cousin swept the event and scored highest all around for age group. She’s just that great - no big deal.

Rails and Django, Round 2

| Comments

A lot time ago, I played around with Rails a lot. At the time, it was something I could believe in, and I wanted to love it. For a short while, I did, I just never had a practical usage for it. Shame, I guess, because you can only write so many blog applications before the magic runs out.

Then one day I heard about Django. I started playing with it, and I love it. Free Eddie panels, python, who could ask for more? I feel in deep. And I had a reason this time to write an app. So I did. And it was magic.

This weekend I was playing with Gitorious to slap a pretty front end on my repos, and I found out it was written mostly in Rails. After delving in to the code for a long time to get the dumb thing running (and it doesn’t yet), I sparked - “Hey, Rails! Let’s go look at that again.”

I Googled, I made yet another blog, then I accidentally Googled “Django Rails.” Comparison. The holy war of the Internet world. You may have heard of Mac versus PC, vi versus emacs. Turns out, they’re just as furious about Django and Rails.

For me, what it came back to was that I would rather spend time writing Javascript and CSS not for free in exchange for free Eddie and authentication. I don’t understand how you can have an application meant to be on the Internet these days that doesn’t include free - albeit basic - user authentication. I’m not saying that the state of Django’s Eddie is what I want in a big app, but it gets me from zero to 40mph with the option to swap it out later. I also get free, segregated Eddie. I can be dropping data in to an app within minutes of creating my project, and I love this fact.

All in all, these downsides are enough to keep me in Django. The grass is greaner, but this time I’m staying till.

For now, anyway.

Django Development on the iPad

| Comments

Alright, maybe that title is misleading. A better one would be “any development on the iPad.”

I’m setting out on an experiment. For a long time, I’ve said that I’m a command line guy. A modern green screener. A relic, willing to trade my mouse for a permanent keyboard, any day of the week. In theory, this means I should be able to do some serious development with just an SSH terminal and a keyboard. As it happens, my iPad has just that.

I’m tossing between two SSH apps right now - iSSH and a new player, prompt. I don’t know much about iSSH other than it fell squarely in the “just works” category - point it at a server, enter some credentials, and it just worked. Prompt is from Panic, a company that makes software good enough I want to buy (namely Unison and Transmit). It’s version 1.0, and thus not without faults. Namely, the thing goes three minutes and hangs unexpectedly. Between the two, though, an SSH client is acquired and runs.

Next up - environment. I have an account on my web server that I can log in to for running the thing, so I’ve made a directory for local development. Now my SSH client has somewhere to go. A few virtualenvs and git inits later and I had a place to work.

For a quick test, I spun up a very basic Django project and kicked off it’s internal server. After remembering to let it listen on all IPs, I was able to get to it from Mobile Safari. A rousing success.

So that’s where I am. I have a kludgey but functional ultra mobile development environment. I’m going to let this go for a bit and see if it’s feasible. Clearly a gap is anything graphic, but that’s what my big Mac rocks at doing. For quick, ugly code work, this should do nicely. I guess we’ll see.

Tables, DIVs and the Future

| Comments

I’m coding again, and that will also mean I’m writing again. I want to write about what I’m doing, and I think what I’m doing is exciting, so maybe this blog will return to that, too. Or not. We’ll see.

When I first started web design, everything with rigid formatting was done in tables. We didn’t have CSS yet, so if you wanted positions, you made a table. If you were graphically inclined, you drew your tables in Photoshop (or Fireworks, or Illustrator) and sliced it up, repeating portions that were worth repeating. It was fun, but it was tedious. Most importantly, it worked.

With the rise of CSS (except in IE6, still a problem), the Internet Hivemind commanded we stop doing that. Instead, we switched to DIVs. Everywhere. Tables were only useful now for tabular data, as the name would rightly suggest. Frameworks sprung up (I’m fond of Blueprint, myself) to make it easier, and that’s how we went. Hacks existing to do special things, but you made a semantic DIV to encapsulate content. It’s good, readable code, and tedious to write.

What’s next then? I have no idea. HTML5 was rumored to bring semantic sections (header, footer, navigation, content), but it’s not adopted. I’m working on a new layout for a site - not this one, sorry - and I’m finding that I’m four divs in before getting to content. It’s absurd, but it works. I supposed if I was really troubled I could lobby the W3C, but it’s not worthwhile. I’d rather fuss. At least I write moderately reusable code that I leverage (read: cut and paste) to new projects.

Oh, and I blog at midnight. That never helps me not-complain.

Yet Another Epic Gap in Writing

| Comments

I was so sure that having WordPress on my phone would make me blog more. Sure, it yielded a few neat photographs from “the field,” but nothing really came of it. Sad I guess, and I apologize, even though I’m not sure to whom I’m apologizing since it’s unlikely anyone stuck around when the entries ended.

I guess it comes down to having nothing interesting to say. I half-wrote a social media post in the spirit of my epic Twitter farewell, but it never got realized in a form I liked. Work has certainly provided me with a of insight in to what I think of SM in general, and it comes down to “who cares?” I mean, I know people do care of it wouldn’t be an industry, but part of me can’t get past the fact that I think it’s only important because we as a people say it is. Think about it - why do you want to be friends with a company? Do you think they’re really following you back?

Maybe it’s my inner nihilist coming out to play, but I feel the same way about this blog to an extent - I like the idea that one day I’m going to look back and be able to loosely piece together my life, but right now I’m questioning the value in it.

On another topic altogether, I’ve started learning to code for iPhone and Android. It’s really funny to be learning about both of them at the same time, but I think that’s a series of posts better saved for their own entries.