Howdy!
I’d like to officially state (for the record) that it is my intent to apply to become a Debian Developer within the next $TIMEFRAME.
Currently soliciting advice and opinions before nm.d.o comes back online :)
It’s a big step, but it’s a natural one.
Gametime?
In playing with some tools I’ve run into at $work, I’ve tried loading in some Ubuntu datasets in some fun and interesting ways.
Today, I’ve chosen to map all Ubuntu Members with a public lat/lon, sized by Karma.
The sizes relate to if the Karma is greater then:
1: 10
2: 50
3: 100
4: 500
5: 1000
6: 2000
7: 7000
8: 15000
9: 25000
10: 50000
So, without further adieu, here’re some maps!






I’ve spent a few days during work, after work and on the weekend working on python-sunlight, a unified API implementation of a few Sunlight services.
This is very unstable, and not released yet (so please don’t rely on it yet), but it will be shortly.
Be sure to sign up for an API Key, and dump the key to ~/.sunlight.key — there’s a simple script to help with some of this in bin/, but nothing solid yet.
I do, however, encourage you to use it and play around with it, and report your bugs.
Contributions (in the form of code) are also very welcome, so please do fork the project and play around with it.
Just to give everyone a taste of how cool this is — this will pull up a list of twitter IDs of people who mention “free market” more then anyone else according to the congressional record:
from sunlight import capitolwords
from sunlight import congress
for person in capitolwords.phrases_by_entity(
"legislator",
phrase="free market",
sort="count",
):
n = congress.legislators( bioguide_id=person['legislator'],
all_legislators="true" )
if len(n) >= 1:
n = n[0]
if n['twitter_id'] != "":
print n['twitter_id']
And the output:
RepRonPaul
stevekingia
SenSherrodBrown
JacksonLeeTX18
SenatorLeahy
ChuckGrassley
SenJohnMcCain
OrrinHatch
DanaRohrabacher
JudgeTedPoe
McConnellPress
edtowns
SenatorDurbin
SenatorSessions
SenatorHarkin
SenChrisDodd
russfeingold
RosLehtinen
sencarllevin
senjonkyl
Dennis_Kucinich
senatorsanders
SenatorReid
RepDanBurton
RepMikePence
SenSamBrownback
joebiden
FrankPallone
ToddAkin
senatorboxer
RepTrentFranks
JohnCornyn
Have fun!
Show off what’cha got, and please let me know if you do something cool!

npr’s site is using some OpenStates data, the project I’m currently working on at sunlight labs.
If you feel like affecting change in US politics, and know Python, we could use some help (it’s a F/OSS project!) over on github
Keep being awesome!
For the sake of anyone else who’s fighting their screens, I’ve got a script that will do this (but very very slowly)
setup script
xrandr --output VGA1 --auto
xrandr --output LVDS1 --auto
xrandr --output VGA1 --rotate left
eval "`monconf`"
monoconf script
#!/usr/bin/env python
import subprocess
output = subprocess.check_output(["/home/tag/.bin/mon.ls"])
output = [ item.split() for item in output.split("\n") ]
mons = {}
for mon in output:
if len(mon) > 0:
if mon[1] == "connected":
res=mon[2]
res=res.split("x")
for item in res[1].split("+"):
res.append(item)
res.pop(1)
mons[mon[0]] = res
BOTTOM_LEFT = "LVDS1"
TOP_RIGHT="VGA1"
LEFT_WIDTH = mons[BOTTOM_LEFT][0]
LEFT_HEIGHT = mons[BOTTOM_LEFT][1]
RIGHT_WIDTH = mons[TOP_RIGHT][0]
RIGHT_HEIGHT = mons[TOP_RIGHT][1]
print "xrandr --output %s --pos 0x%s" % (
BOTTOM_LEFT,
(int(RIGHT_HEIGHT) - int(LEFT_HEIGHT)))
print "xrandr --output %s --pos %sx0" % (
TOP_RIGHT,
int(LEFT_WIDTH)
)
and the mon.ls command
xrandr -q | grep "^[^\ ].*" | grep -v Screen
All of this is super hacky, but it works.
Use vim? Check out some sweet vim exrc stuff for editing one-line JSON files:
autocmd BufRead,BufNewFile *.json set filetype=json
command Js silent %!jp
command Jc silent %!jcompress
autocmd FileType json Js
Hello, World!
Today’s hacks come remotely, on the first day of my long trek to Cleveland. As many debian readers know, debian URLs are usually transmitted over IRC or email with some snappy abbreviations. Usually, you’ll see something like:
Feel free to check out information about frob at wiki.d.o/Frob
or something like:
I have uploaded package bar onto mentors.d.n for review
What bugs me most about this is that I have to expand URLs by hand. Which is lame. Enter libolla (a fitting name as well as a graceful nod to my alma mater John Carroll University’s crest).
When LD_PRELOAD’d, it’ll intercept and expand calls to getaddrinfo transparently. It seems to work fine on SSH, and chrome (but I can’t test well, since I’m not on a real line).
This was all hacked up in a few hours I had to spare, and without any sort of internet love, so I’m willing to bet there are some bits that can be cleaned up (after all, the name of the blog is “Peace, Love and C++”, not “Peace, Love and C” - I don’t clam to be a c expert ;) )
So, feel free to fork the project on github (or as I can now do - http://g.c/paultag/libolla)
Now, I just need to find a way to globally pre-load this for apps that I start in my DE. Should be easy enough fiddling with some env-var files.
A while back I wrote some nodejs that mish-moshed email and web 2.0 long-poll action into a very ugly, but fairly up-to-date showing of debian changes. That is over on my server here.
The code’s fairly simple, so I also wrote a python consumer here.
Since it’s so simple, I’ve pasted it below, too.
Feel free to use (but please not abuse) my server :)
#!/usr/bin/env python
import time
import urllib
import json
service = "http://pault.ag:8080/tail"
lastts = 0
def loop():
global lastts
while True:
f = urllib.urlopen("%s?since=%s" % (service, str(lastts)))
msgs = json.loads(f.read())
for x in msgs['messages']:
print x['text']
if lastts < x['timestamp']:
lastts = x['timestamp']
loop()
Package uploaded to Debian, and a few oneiric builds into my PPA
Get it while it’s hot - report your bugs!
Hello, World!
I’m considering going for my Debian Maintainer-ship in Debian-land. If you’ve worked with me and feel like you’d like to advocate me, I’d be really thankful.
I’ve not applied yet, but I’ll post again when I do. I need to get my new 4096R key signed, since I figured out (just now) that my old 1024D key was a bit too weak.
One love, Paul