Skip to content

Instantly share code, notes, and snippets.

@getflourish
getflourish / devex_news_lab.md
Last active May 23, 2016 17:07 — forked from dsager/devex_news_lab.md
The Devex NewsLab: Using Google Docs as a CMS

The Devex NewsLab: Using Google Docs as a CMS

Note: This post was originally published on the Devex Tech Blog

This article describes our current content management solution and gives some insight on the parts of the implementation we think are interesting.

As you might know a big part of our website is dedicated to News content covering various aspects of international development. At Devex we usually publish around 10 articles per day which are sometimes planned and worked on several days or even weeks in advance. There are different people involved in the process including both internal and external writers, editors, researchers or marketing folks. Some of them contribute to the article's content while others just need to be aware what is going on to coordinate their own work like social media campaigns.

@getflourish
getflourish / index.html
Last active August 29, 2015 14:22 — forked from enjalot/index.html
D3 PieChart
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
<title>Testing Pie Chart</title>
<script type="text/javascript" src="http://mbostock.github.com/d3/d3.js?2.1.3"></script>
<script type="text/javascript" src="http://mbostock.github.com/d3/d3.geom.js?2.1.3"></script>
<script type="text/javascript" src="http://mbostock.github.com/d3/d3.layout.js?2.1.3"></script>
<style type="text/css">
@getflourish
getflourish / speaker.js
Last active August 29, 2015 14:17 — forked from jeffehobbs/speaker.js
Bookmarklet to scrub and speak current URL via SpeechSynthesisUtterance. (Please use your own Readability API token). Added chunking.
javascript:(function(e,a,g,h,f,c,b,d){if(!(f=e.jQuery)||g>f.fn.jquery||h(f)){c=a.createElement("script");c.type="text/javascript";c.src="http://ajax.googleapis.com/ajax/libs/jquery/"+g+"/jquery.min.js";c.onload=c.onreadystatechange=function(){if(!b&&(!(d=this.readyState)||d=="loaded"||d=="complete")){h((f=e.jQuery).noConflict(1),b=1);f(c).remove()}};a.documentElement.childNodes[0].appendChild(c)}})(window,document,"2.0.3",function($,L){
// speak current webpage
// jhobbs 2013
// chunking by getflourish 2015
function stop(){
speechSynthesis.cancel();