Thursday, January 12, 2012

How to delete posts from Google Reader

I'm pretty sure you know that if anyone reads your feeds in google reader then a feed of every single post that you've ever made is available from Google Reader. This is a great resource. I'm a firm believer that a lot of my social content should be ephemeral and only last a few weeks before it is obliterated from the corpus. That's why I wrote feedfixer.py which marks feeds as private and also replaces old posts with tombstones. In a tombstone post the subject and body of the feed item is blanked out, Google dutifully replaces the contact with this blank content and thus the original content is erased. My Feed-App also tombstones posts from old private blogger feeds and feeds created by forwarding email to it.

This tombstone idea is great for deleting posts and especially useful for those cases where you publish an item and then immediately delete it in blogger. I think the delete post button in blogger should have a big huge warning that you're only deleting it from your site and that a copy of this post likely lives in many feed aggregators, especially Google Reader. Alternatively the delete button in blogger should also make a tombstone for the post in the feed. But it doesn't, so oftentimes you post a post, delete it and then end up seeing the post in your rss reader anyway because the moment you posted, something pinged something else (perhaps via pubsubhubbub) and bam your content was fetched via rss/atom.

O.K. that was a long winded statement of the problem, hopefully it had enough keywords to catch the searchers out there. Here's how you delete a post from Google Reader, first the theory, then the tool to make it easier.

You can get a feed directly from Google Reader with a URL like this. Just URL escape the feed location and add it to the end.
http://www.google.com/reader/public/atom/feed/http%3A//googleblog.blogspot.com/atom.xml

Inside that feed is an element like this:


can page further back by taking the gr:continuation value in the

response and adding it as a ?c= query parameter.

http://www.google.com/reader/public/atom/feed/http%3A//googleblog.blogspot.com/atom.xml?c= CZZZZq83akC

downloadfeed.py

is a program that will fetch ALL the feeds just give it a feed URL

if you're looking to obliterate a secret from your blog....

(fgrep -l secret *.[0-9][0-9][0-9].xml | while read fil; do xmllint -format $fil | egrep 'original-id|secret' ; done) | less

then make a new feed with those guids and an empty (I use a single space) subject/body/link

tah dah.

Tuesday, December 27, 2011

Home Made Sliding Car Game

My sister got me addicted to the game Rush Hour on my iPhone (try the limited free version, or if you're on android here's the official one, or a free imitation). When I visited her this summer I saw she had a real physical version too. When I went to find it to buy it was $20 which was way too much for some plastic! So I decided to build my own and my daughter helped me. I thought about rolling wheels and other fancy stuff but for the first version I decided to keep it simple. In the end the wood for this version cost around $13.
 I got poplar wood because I was looking for a hard wood that would hold its edge for the sliders. You need to make 16 cars to fill the board (you only really need 15 cars since a full board is useless), I used 7' of 3x2 for the cars, 5' of 1x2 for the side of the board and 1' of 12x1 for the base.

First I cut a groove along the bottom of the 3x2 for the cars, I don't have a dado bit so I just cut it in my table saw, cut the other side and then moved the fence 2mm and then did it all over again until the whole of the middle was cut away.

I did the same for the base too, it took a long time, but came out pretty good. I chipped away the corners of the squares that were left with a chisel to allow the cars to move between them more easily.

I started cutting the cars with a orbital jigsaw but it was just too wobbly and didn't cut through even. Then I just cut close to car shapes on the table saw and that worked out pretty well.
I clamped my belt sander in my workbench and used that as a sanding station to smooth everything out on the cars.

The mitred 1x2 sides were cut with biscuit holes and fit well with the base and clamped for a few hours with some glue. I should have spent a bit more time on this, one of my joints is pretty gappy.

We painted it all with spray paints which ended up pretty expensive and I'm not sure I'm thrilled with the look, but it plays well.
I took screenshots of the board games from my phone and then used imagemagick to make some sheets of 6x6 board games. There's over 2500 levels so that's enough to keep my daughter happy for a good long time.

Here's the imagemagick commands to rotate and crop the images and then put them in a montage with 36 per sheet.

for fil in *.PNG; do echo $fil; convert $fil +distort SRT 270 -crop 640x640+160+80 fixed/$fil; done


montage fixed/*.PNG -tile 6x6 +adjoin output/multi_%d.png

Any time I get to use my power tools and still have all my fingers is a good time!

More pictures in the Gallery.

Saturday, December 24, 2011

How to transfer a domain away from godaddy

With the recent elephant hunting and godaddy supporting SOPA, it was time for me to take my business elsewhere. I've learned a lot about transferring domains, I don't remember it being this hard when I moved from joker.com to godaddy, but I'm not surprised they make it hard.

IMPORTANT: If you don't want any downtime with your domain make sure you have your DNS somewhere else other than godaddy.

So to transfer your domain to you need to:
  • make sure it's not locked
  • get the EPP (authorization code)
  • make sure it's not privacy protected. (turn off domains by proxy)
These are all easy to do as long as the email address domains by proxy has is accurate and still works. if not, you need to submit a proof of ID to them and request a new email address.

If you bought your domain though google apps for your domain (GAFYD) it's a little harder, you need to log into domains by proxy to turn off that feature. Luckily I found this forum post how to turn off privacy for godaddy via domainsbyproxy.com. Steps to do it are:
  • Go to domainsbyproxy.com and click login
  • Click 'Forgot your login information?' and then Retrieve your customer number.
  • Get an email with your customer number, then 
  • Reset your password and then login and cancel the service.
  • https://www.google.com/a/cpanel/EXAMPLE.COM/DomainSettingsAdvancedDns
  • Log into godaddy with the login username/password displayed on the page at the aboive URL.
  • Unlock the domain and request that they email you an authorization code. This is what everyone else calls an EPP code.
  • Make sure the domain is unlocked.
More on DNS: The moment the transfer starts godaddy'll shut down any DNS they were serving for you and those old dns server settings will transfer to your new registrar and you'll have to wait until everything is set up at your new registrar before you can update them. I used to use everydns but they're no longer around, I just ended up running bind on my linux box at home and putting a hole in the firewall, it's only for a few days.

I moved my domains to namecheap.com which is part of enom, I used coupon code SOPASUCKS. There's also a coupon of byebyegd but it's not as good. I was also looking at gandi.net (turned off by the no bullshit tagline) and I think I would have preferred hover.com I hear they have a coupon of SOPA for now. I was a bit sad that it took 12 hours after my domains transferred for them to show up in my admin console, They said they were having unusually high load of transfers right now ;)

Turns out they'd really like namecheap to be the best hit when you search for Domain Registration. I'll play along. They were super helpful and responsive during my transfers and I'm very happy with them.

Tuesday, May 24, 2011

mac setup

This post will grow with all the stuff I change on a mac when I get it.

  • Install XQuartz and then run this to make it start up running gnu screen in an xterm:
  • defaults write org.macosforge.xquartz.X11 app_to_run "xterm -e screen -xRR"
  • StartupSound.prefPane
  • Inconsolata ttf font
  • MagiCal
  • skitch
  • Google Notifier
  • GoogleVoiceAndVideo
  • Chrome (with multiple profiles)
  • Emacs
  • Facetime
  • ComicLife
  • Adium
  • PicasawebAlbumUploaders
  • MacPorts
  • VLC (Videolan)
  • Handbrake

so far that's it, but if I think of more I'll add it here.

Thursday, March 17, 2011

The ultimate computer power cord?

Will someone please start a power cord breeding farm and cross pollinate a right angle power cord with a flat plug power cord.

Or tell me where I can buy one?

Yes, I know about the Ziotek Power Strip Liberator.

UPDATE: Found some: 3ft, 6ft, 12ft and this one!

Wednesday, March 16, 2011

pro-tip finding the right circuit breaker

We just moved into a new house. I've done a bit of electrical work and no matter how well labeled the electrical panel is, sometimes it's hard to find the right breaker to turn off. Here's my pro tip: I called my wife's iPhone with FaceTime (you can likely call your laptop or something), set the phone looking at the light I wanted to turn off and then went and flipped breakers until the light went out (always double check, you might only be switching your wireless router off!).

Thursday, March 03, 2011

linux screen capture to picasaweb

on my mac I use skitch, it's awesome. on my Linux desktop I use something more ghetto but it's been working well for me.

with your picasaweb account click on settings. It should take you to the picasaweb settings page. if you haven't yet, type in a secret word and note the email address. When you email things to this address they'll end up in your 'Drop Box' album. It'll make one if you don't have one. You can get fancy by using a subject and it'll make an album with the subject I think.

then you just need a line like this in your window manager menu file. I use fluxbox, your syntax might be different

  [exec] (Screen Cap to Picasa) {O=/tmp/cap-$(date +%F-%R).png; /usr/bin/import $O; echo | /usr/bin/mutt -a $O -- picasawebusername.secretword@picasaweb.com; /bin/rm $O } <>

tah dah, a nice menu that allows you to grab some screen and then upload it to picasaweb in one go. You'll need to install imagemagick and mutt of course.