Popurls Replacement

I’ve got a subversion repository full of projects that are essentially ‘proof of concept’ hacks and I’m fucking tired of seeing them in there. Lots of them were ideas I have while doing systems administration. Some of them are goddamned atricous (but functional!) perl programs I wrote for graphing NetFlow statistics, and for visualizing BGP routing. They all worked but I kept them to myself and they were forgotten.

One proof of concept hack I’m going to flesh out is this quick rails app, that with some initial groundwork laid out by Anis, is essentially another RSS reader. Actually its just an unapologetic Popurls ripoff, but I had a good reason for doing it. I like the popurls layout and the concept: Being able to see all the latest ‘buzz’ in one spot. The issue is that none of that information is at all important, but for some reason hitting refresh is really pleasurable. Who cares what the people on Digg and Reddit are saying. Fuck you. I want to know more about Cloud Computing, Cooking, and Sailing, and I want to be able to digest that information with a glance – not browse through it site by site, category by category. Bah! (Its still a long way off from what I *really* want but more on that later)

Anyway, here’s a screenshot. Once I’ve setup OMPL imports, User Accounts and fixed the Background Processing chunk I’ll release version 0.0.1 to the public.

Note: I acknowledge the total uselessness of Slashdot, and I don’t read Al Jazzera – I was just seeing if it would work. I dont know what those words are.

Update: I’ve checked some rudimentary code into GitHub.

blog comments powered by Disqus

google.load("language", "1"); var curstate = 0; var hasloaded = 0; function bnc_show_translated() { if (hasloaded == 0) { bnc_lang_callback(); hasloaded = 1; } for (i = 0; i < 0; i++) { var elem = $("bnc_original_" + i); if (elem) { if (curstate) { elem.show(); } else { elem.hide(); } } } for (i = 0; i < 0; i++) { var elem = $("bnc_trans_" + i); if (elem) { if (curstate) { elem.hide(); } else { elem.show(); } } } if (curstate) { $("bnc_trans_state1").show(); $("bnc_trans_state2").hide(); curstate = 0; } else { $("bnc_trans_state1").hide(); $("bnc_trans_state2").show(); curstate = 1; } } function bnc_detect_div(div_id) { var text = document.getElementById(div_id); if (text) { text = text.innerHTML; if (text.length > 0) { google.language.detect(text, function(result) { if (!result.error) { if (result.language != "en") { if (result.confidence > 0.25) { $("bnc_translating").show(); bnc_xlate_div(result.language, div_id, "en"); } } } } ); } } } function bnc_xlate_div(src_lang,div_id,o_lang) { var text = document.getElementById(div_id); if (text) { text = text.innerHTML; google.language.translate(text, src_lang, o_lang, function(result) { var translated = document.getElementById(div_id); if (result.translation) { translated.innerHTML = result.translation; } }); } } function bnc_lang_callback() { } function bnc_startup() { bnc_xlate_div("en", "bnc_translate_info", "en"); bnc_xlate_div("en", "bnc_translate_info2", "en"); } google.setOnLoadCallback(bnc_startup);