
Mel and I made coq au vin using a white and this easy recipe on Bee Sweet.
January 3, 2011
Coq au vin blanc
Labels: food
December 12, 2010
Favorite Songs of 2010
- The Diamond Church Street Choir - The Gaslight Anthem
- Folk Bloodbath - Josh Ritter
Hype Machine - Let Go - JJ
- In the Dirt - S. Carey
- Thistled Spring - Horse Feathers
Hype Machine - Rome - Yeasayer
- Fuck You - Cee Lo Green
- Location - Freelance Whales
- The Golden Vanity - Crooked Still
Hype Machine - Come Talk To Me (Peter Gabriel) - Bon Iver
- Soft Skin - Mountain Man
- Sorry To Interrupt - Theophilus London
Hype Machine - Romance is Boring - Los Campesinos!
- Swim - Surfer Blood
- I Was Thinking... - Gauntlet Hair
Hype Machine - Heartbeat - Nneka
- Ever With Us - Bodies of Water
GvB - Daisy - Fang Island
- Round and Round - Ariel Pink's Haunted Graffiti
Hype Machine - Illuminata - ceo
Hype Machine - Do You Remember - Ra Ra Riot
- Real Life - Tanlines
Hype Machine - Do Ya Like - Childish Gambino
Artist - C/U - Fol Chen
Hype Machine - Rill Rill - Sleigh Bells
- Dancing On My Own - Robyn
- Heaven's On Fire - The Radio Dept.
- All Delighted People (Original Version) - Sufjan Stevens
Hype Machine - We Used to Wait - Arcade Fire
The Wilderness Downtown - Thousand Ways - The Tallest Man on Earth
Labels: commentary, music
March 13, 2010
3G Data Usage and a Thought on Pay-Per-Use
From my perspective, the end of unlimited data access from our internet service providers is near. First, Apple announced that the iPad would have an optional, 250 MB cap data plan. Second, Gizmodo referenced recent statements from Verizon and AT&T executives that indicate they're already planning to roll out pay-per-use plans to everybody.
My first my response to these events was to wonder: "How much data do I use each month on my iPhone?" In what eerily seems like expectation of that question from a lot of customers, AT&T has created a section in their online account management called "Billing History". Using this data, which only goes back to November of last year, and manually reading the rest of my usage from my bills dating back to when I got my iPhone 3G (it didn't save my bills from my first-gen iPhone) I put together the following chart.
Ignoring my tethering during holiday travel last year, I averaged around the 250 MB level AT&T offers as the budget plan for iPad users. To me, this means when these plans are finally announced for smartphones, they'll start at much less than 250 MB/month, and I'll be one of the few forced to pay for either a higher cap or unlimited—likely more than the $30/month we all pay today.
So are bandwidth cap plans a terrible thing for consumers? There's still a lot of unknowns that will influence that answer. I was definitely encouraged while reading the details of the iPad service plan. Some of the points I liked:
- No contract
- Upgrade to a higher plan mid-cycle
- The unlimited option hasn't been eliminated
It feels like a departure from the days where the service providers based their profits on charging overage fees. Could the recent legislation targeted at ending similarly anti-consumer practices by credit card companies be having a larger effect in other verticals?
March 4, 2010
Transition
I was listening to my Best of 2006 mix (from, uh, 2006) and remembered how much I liked the transition between Neko Case's "A Widow's Toast" and the Decemberists' "The Crane Wife 3".
Labels: music
February 28, 2010
Barely humanize
During my time working on Brewmance, I've been using a flavor of Django on Google AppEngine. In general, it's been a rocky but not impossible experience. However, I often miss the conveniences provided to front-end developers by the Rails platform I use during my nine-to-five.
Tonight in particular I was looking for a worthy match for the Rails date helper "timeago" which converts the difference between two dates (one usually being the current time) and prints them in a very human readable format. Django has a built-in filter set called "humanize" that does something similar. It can take a date and print either "yesterday", "today", "tomorrow", or "February 26, 2010". There's another built-in tag called "timesince" that can take a date and print "1 day, 8 hours". The depth of user experience either provides is as thin as the ice in Vancouver right now.
Web users expect to see natural language in their applications thanks to Facebook and many others. (If you've ever used the old Facebook news story template API, you'd know how much work they put into translating data into perfect pronoun and plurality agreement).
Anyway, the point of this diatribe is that I decided to do a rough port of the Rails "timeago" to a Django template filter.
Check it out on github!
December 18, 2009
Favorite Songs of 2009
The annual favorite albums list is coming soon, but I thought I'd break the songs & albums apart this year. Digital download sales continue to rise while physical media sales continue to fall, and (maybe it's just me) but it seems like so many new artists are focusing less on the album and more on the single that might rise to the top of the hypemachine charts. I do want to say I'm not a fan of "cloud-based" music services due to their sub-par audio bit rate, but they're so damn convenient for a list like this!
This list is pretty easy to make, as a quick iTunes smart playlist returns the obvious candidates. Enjoy, and be sure to check back in the next week for my traditional and more in-depth best albums list.
Related links
Labels: commentary, music
November 15, 2009
The Music of 2009
Each year these lists get harder to write. Instant gratification blog aggregation means any new band with a catchy hook can explode days after recording and months before ever going on their first tour. Best of the year lists are coming out in November, and each competes to be more pretentious than the last. It's hard to find balance between music everybody's already heard of (because it's good) and music obscure enough to create a unique discovery for the reader. I've decided to scale back the ranked list to only 10 albums this year and leave the rest of the post for discussion.
Standard disclaimer: If you think James Blunt should be on this list, go soak your head. If you have any other opinion, leave a comment!
Top 10 albums
- The xx "xx"
Moody and sparse synth-rock with a great male-female duet front. Similar, but not as good as, the Canadian group Stars.
Islands, Heart Skipped a Beat - Passion Pit "Manners"
Passion Pit mastered the hook in their explosive first full-length. And the power of the hook should not be ignored - they went from unknown to SXSW to Lollapallooza to a Palm Pre commercial all in one year. Thank the bloggers for their success and inevitable backlash; a story which continues to repeat itself. While my experience seeing Passion Pit was full of energy and dance, I was occasionally annoyed by the off-key vocals of singer Michael Angelakos.
The Reeling, Little Secrets - Phoenix "Wolfgang Amadeus Phoenix"
Phoenix broke into Top 40 radio in a big way with the singles "1901" and "Lisztomania" this year. The album is a nice extension of the two hits and has great replay value.
Lisztomania, Girlfriend - Andrew Bird "Noble Beast"
Andrew Bird is on his own level when it comes to small-label music, and I believe he outdid himself again on this album. Bird's sound is always rich and deep - during both violin solos and orchestral arrangements.
Anonanimal, Tenuousness - Miike Snow "Miike Snow"
Great electro-pop with more maturity and depth than Passion Pit.
Song For No One, Silvia - Grizzly Bear "Veckatimest"
Grizzly Bear turned a lot of heads with the full-length completion of the Two Weeks single that began spinning at the end of last year. They've really found a good mix of their signature dream-prog sound with pop hooks sure catch the masses ears.
While You Wait for the Others, Two Weeks - M Ward "Hold Time"
Matt Ward has a hold on Indie Americana and his solo records should be the envy and blueprint of every upcoming folk artist. "Hold Time" isn't the record that will expand his audience (that's what Monsters of Folk is for) but it's one his fans will enjoy.
One Hundred Million Years, Never Had Nobody Like You (Featuring Zooey Deschanel) - Dirty Projectors "Bitte Orca"
After hearing the chaotically-precise harmonies and instrumentation of the first single "Stillness is the move" I was incredibly curious on how it would sound live. I got that wish during a free show with Sea and Cake early in the summer and was astounded by the precision I heard. Dirty Projectors put out a refreshing, progressive sound at a time when Indie Rock is homogenizing like crazy.
No Intention, Stillness is the Move - Various Artists "Dark Was The Night (Red Hot Compilation)"
Indie charity compilations are pretty common of late, but this 2-disc set of timeless covers, star-power collaborations, and fresh new material for the (RED) organization is the strongest I've ever seen.
Blood Pt 2, Knotty Pine - The Decemberists "The Hazards of Love"
This was a satisfying album and I had the privilege to see it performed live twice last year. In the words of Melissa Johnson:
"following the success of their first major label album (The crane wife, 2006), curiosity surrounded the indie giant's sophomore album with Capitol. Lead singer Colin Meloy started with a title track and built the rest of the album around that song, weaving a dark tale of love and danger. This style is not unfamiliar to The Decemberists, I.e. The Crane Wife parts 1-3 and The Tain EP, but the album manages to avoid a campy quality, instead seducing the listener with it's seamless movements from one tragic song to the next. Always intriguing, Meloy's artful lyrics found a perfect counterpart in guest singer Shara Worden ( My Brightest Diamond). As the voice of the forest queen, Worden embodies a character both frightening and fascinating, which qualities were especially impressive to hear live."
The Hazards of Love 2 (Wager All), The Wanting Comes In Waves / Repaid
Notable Mixes
Related links
Labels: commentary, music
May 31, 2009
Malloc Misunderstandings
I have been pulling my hair out lately with iPhone development memory management techniques in Objective-C, and I thought I'd share one of my recent understandings.
#import "CustomHeaderViewController.h"
@interface CustomTableView : UITableViewController {
CustomHeaderViewController *tableHeader;
}
@property (nonatomic, retain) CustomHeaderViewController *tableHeader;
@implementation CustomTableView
@synthesize tableHeader;
- (void)viewDidLoad {
[super viewDidLoad];
// initialize my table header here.
}
- (void)dealloc {
[tableHeader release];
tableHeader = nil;
[super dealloc];
}
Here's where my mistake began. I know that the UITableView has a setTableHeaderView method, so I used it, directly allocating my new CustomHeaderViewController as I did it.
- (void)viewDidLoad {
[super viewDidLoad];
self.tableHeader = [[CompanyTableViewHeader alloc] init];
[self.tableView setTableHeaderView: tableHeader.view];
}
My project builds correctly, and everything seems to work fine, but there's a memory leak. To see this, let's look at the retain counts in my code now:
- (void)viewDidLoad {
[super viewDidLoad];
// [tableHeader retainCount] == 0
self.tableHeader = [[CustomHeaderViewController alloc] init];
// [tableHeader retainCount] == 2
[self.tableView setTableHeaderView: tableHeader.view];
// [tableHeader retainCount] == 2
}
- (void)dealloc {
// [tableHeader retainCount] == 2
[tableHeader release];
// [tableHeader retainCount] == 1
tableHeader = nil;
[super dealloc];
}
So when my UITableViewController is deallocated, the CustomHeaderViewController instance still has a retain count of 1. The problem lied in the line where I first allocated the instance (creating a retainCount of 1), and immediately assigned it to the to the tableHeader pointer (bumping the retainCount to 2). I can do two things to remedy this. First, I could change my tableHeader setter to only assign instead of retain:
@property (nonatomic, assign) CustomHeaderViewController *tableHeader;
The preferred way, however, would be to allocate the CustomHeaderViewController to a temporary pointer, then release it when done.
- (void)viewDidLoad {
[super viewDidLoad];
CustomHeaderViewController *header = [[CustomHeaderViewController alloc] init];
self.tableHeader = header;
[header release];
[self.tableView setTableHeaderView: tableHeader.view];
}
There you go. I hope this post saves someone the hour of debugging I've already lost!
P.S.: I apologize for the styles of the code snippets, I have never posted code on this blog before. If you have recommendations on how to improve formatting when copy-pasting from Xcode to the Blogger WYSIWYG editor, let me know!
Labels: geek, iPhone, n00b, objective-c
[[Updates alloc] init]
I haven't updated this blog in a long time, as I've been so busy with other projects. Since I'm no longer halfway around the world from many of those who would care to hear about my day-to-days, and I have fewer causes to champion since Barack Obama became Mr. President, I'm not sure where this blog quite fits in.
Here's what I'm up to now:
Labels: geek
January 18, 2009
Thoughts on a U2 song
With the impending holiday and the inauguration of Hope, I decided to queue up "MLK" by U2. I'm feeling really self-conscious giving any attention to a band who has had all too much, but this is a great song and an old song, so please withhold your judgement.
After one play through (a short 2:32) I played it again. And a third, and fourth time. Then I opened Wikipedia. The article had some important tidbits, including that it was the original selection for the closing sequence of Donnie Darko, but factoids can't begin to describe the feelings invoked by a song like this. So here's my attempt.
The long, quiet streets of Chicago are parabolically lit by yellow street lamps, a poor excuse for a sun long set. You can follow their path from north to south and ask yourself why there is such a contrasting divide in development, in income, in color. "It's an injustice!" I cry, when others listen, but I will never move south of 35th. I can sleep soundly because I have seen my dreams come true with little effort. I do not lie awake and ponder how my ancestors loosed the chains from the arms of a people but did not grasp their hands. I do not wonder why though my ancestors relented to share their drinking fountains, they are slow to fix the water mains of New Orleans. I do not ask these questions because I know the answers, and I know that I am just as selfish as the men I wish to condemn. May it be your children who sleep soundly, Dr. King. May their dreams be realized, even at my expense. Especially at my expense.
Sleep
Sleep tonight
And may your dreams
Be realized
If the thunder cloud
Passes rain
So let it rain
Rain down on him
Mmm...mmm...mmm...
So let it be
Mmm...mmm...mmm...
So let it be
Sleep
Sleep tonight
And may your dreams
Be realized
If the thundercloud
Passes rain
So let it rain
Let it rain
Rain on him
Labels: music




