5909374787_714b466dff_m

Scraping Tricks: Obfuscated ‘cfemail’ addresses

Many websites try to obfuscate any email addresses they display, so that spammers don’t harvest […]

14775493373_6f8c9c3e91_m

Scraping Tricks: Nodes between other nodes

When writing scrapers, I often need to find all the elements between two others — e.g. […]

5585023341_40d6cce411_m

Sinatra-based Stance viewer

Stancer is deliberately built in a way that should make it easy to integrate with […]

2291975007_d2fed5013d_m

Last Week in VoteIt

In keeping with the idea that each Poplus Component should provide regular updates on what’s […]

2748100598_48bd1672c2_m

Sorting by generated value

I finally worked out a way to get Jekyll/Liquid to sort by a generated value […]

19373631369_a0c408d2e8_m

Count of Party Members

It generally isn’t very interesting to simply show a list of Parties in a page, […]

3522380814_1314779db9_m

Github Pages + Popolo

One of the oddities of Github Pages is that they can natively deal with JSON […]

14800190661_894ae9565b_m

Harnessing Self-Interest

Late last year I gave a presentation at Ignite Berlin. Due to a technical glitch, […]

14873466953_c6d70783cb_m

Eduskunta Votes

Yesterday, I had hoped to work with Juha on trying to transform Eduskunta voting information […]

19372186308_2e1834e8d5_m

PopIt Coalitions

This morning I finally got around to adding some historic Coalition data to the Eduskunta […]