Pages

2.18.2014

I call BS...

A few weeks ago, I bought a pair of jeans from Sears at a local mall.  It has become common practice for retailers to email receipts to customers instead of printing four feet of paper.  Of course, in order to do this, they have to solicit your email address.  And when the cashier asked to my email address, I gave it to her.

In addition to receiving the receipt for my purchase, I was involuntarily signed up for spam.  Over a span of 11 days, I received 6 advertising emails from Sears.  The stupidest thing about the entire situation:  I unsubscribed after the second email.  Why do they keep sending me ads after I've told them I'm no longer interested?

A huge pile of shit
When I clicked the unsubscribe button on the website, I expected to see a message saying that I was unsubscribed and would no longer receive advertising emails.  Instead, Sears showed a popup saying that it would take 7 - 10 days to process my request.  If I weren't a computer science major, I might believe that.  In fact, any logical thinker could figure out that this is just a marketing tactic.

It's highly suspicious of them to quote "7-10 days" to unsubscribe, when it took them about 30 seconds to get me in the system in the first place.  Seriously, my phone was buzzing away with new emails before I reached my car.  I wonder, what about their system causes it to take 20,000 times longer to unsubscribe me for the list than it took to subscribe me in the first place?

Certainly, it's not a technical issue.  I don't know the exact workings of Sears email system, but it wouldn't be unreasonable to think that three or four SQL statements got me in the system.  Unsubscribing should be simpler: I'm thinking one SQL statement ought to drop me from the list.  The last time I checked, it didn't take 7 days to process a SQL command.  Unless they have to send a tech down to the data center to scrub my name off the hard drive with a Q-tip, this practice is inexcusable.

As I've deduced that there's not a technical factor at play here, the logical explanation is that the 7-10 day delay is simply a matter of policy.  This policy only serves one real purpose... to distribute more spam.  From the moment I click unsubscribe to when my name actually goes off the list is a window of opportunity to send me a few more emails.  Admittedly, this a great marketing tactic masquerading as a technical limitation.  It still doesn't make me hate spam any less though.  That four foot receipt might not be so bad after all.

2.08.2014

Making an endless list load smoothly in Android

In my latest Android app endeavor, I needed to create an endless list.  There's no built in class that does this, so I had to create something that would approximate one.  There are plenty of tutorials on the basic ideas behind endless lists, but none of them worked very well for my application.

My app is a viewer for interfacelift.com, which provides high quality wallpaper downloads.  The app displays a list of wallpapers in descending chronological order.  The user can continue scrolling indefinitely (until the site runs out of wallpapers).   The standard way of approaching the infinitely scrolling list tends to be glitchy when the next set of wallpapers loads.  I've come up with a simple solution to solve the glitchy-ness problem.

When the app loads a set of wallpapers, it adds them to an ArrayList, which is displayed by the ListView.  However, the list adapter doesn't know about the new wallpapers until it is explicitly told that the data set has changed with a call to notifyDataSetChanged().  When this happens, the list adapter is forced to update all of the views.  In my app's case, issuing a new view sets the ImageView's drawable to a placeholder, which is almost immediately replaced with the real image.  This causes the entire list to "jerk" when the existing images are updated.


Continue reading to see code solution.