Skip to content

Instantly share code, notes, and snippets.

@zealot128
Last active October 7, 2016 16:28
Show Gist options
  • Select an option

  • Save zealot128/fc4f15cbd22ccdfaaefdb757724a1d64 to your computer and use it in GitHub Desktop.

Select an option

Save zealot128/fc4f15cbd22ccdfaaefdb757724a1d64 to your computer and use it in GitHub Desktop.
Ruby blogs

Ruby Blogs

Based upon http://blog.honeypot.io/45-ruby-blogs/

  1. http://www.rubyist.net/~matz/index.rdf
  2. http://techblog.netflix.com/feeds/posts/default
  3. http://www.ultrasaurus.com/feed/
  4. http://www.virtuouscode.com/feed/
  5. http://www.sandimetz.com/blog?format=RSS
  6. ... no feed found (http://kytrinyx.com/talks/)
  7. http://tenderlovemaking.com/atom.xml
  8. http://www.mikeperham.com/feed.xml
  9. http://rubyweekly.com/rss/1n7andab
  10. https://robots.thoughtbot.com/rails/feed
  11. http://weblog.rubyonrails.org/feed/atom.xml
  12. https://feeds.feedburner.com/arkency.xml
  13. http://www.rubyflow.com/rss
  14. http://afreshcup.com/home/atom.xml
  15. http://feeds.feedburner.com/EverydayRails
  16. https://ruby5.codeschool.com/feed.rss
  17. http://www.blackbytes.info/feed
  18. https://www.rubytapas.com/feed/
  19. https://ruby.awsblog.com/blog/feed/recentPosts.rss
  20. http://railsware.com/blog/feed
  21. https://www.ruby-forum.com/feed/global
  22. https://railsforum.com/rss/forums/1-rails-forum/
  23. http://feeds.feedburner.com/AkitaOnRailsEnglish
  24. https://samurails.com/feed/
  25. http://blog.railsapps.org/rss
  26. http://feeds.feedburner.com/steveklabnik/words
  27. https://devchat.tv/feed
  28. http://feeds.feedburner.com/buckblog
  29. http://schneems.com/feed.xml
  30. http://feeds2.feedburner.com/patshaughnessy
  31. http://programmingzen.com/feed/
  32. http://chneukirchen.org/trivium/index.atom
  33. http://blog.josephwilk.net/atom.xml
  34. http://andycroll.com/index.xml
  35. http://www.martinfowler.com/feed.atom
  36. http://feeds.specificfeeds.com/wyeworks
  37. https://www.bignerdranch.com/rss.xml
  38. http://feeds.feedburner.com/fredwu
  39. http://collectiveidea.com/blog/feed/
  40. https://www.igvita.com/feed/
  41. http://squarism.com/feed
  42. http://culttt.com/feed
  43. https://ruby.libhunt.com/newsletter/feed
  44. http://brandonhilkert.com/atom.xml
  45. http://feeds.feedburner.com/chodounsky
<?xml version="1.0" encoding="utf-8"?>
<opml xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<body>
<outline title="Ruby-Blogs">
<outline title="www.rubyist.net/~matz/index.rdf" type="rss" xmlUrl="http://www.rubyist.net/~matz/index.rdf" />
<outline title="techblog.netflix.com/feeds/posts/default" type="rss" xmlUrl="http://techblog.netflix.com/feeds/posts/default" />
<outline title="www.ultrasaurus.com/feed/" type="rss" xmlUrl="http://www.ultrasaurus.com/feed/" />
<outline title="www.virtuouscode.com/feed/" type="rss" xmlUrl="http://www.virtuouscode.com/feed/" />
<outline title="www.sandimetz.com/blog?format=RSS" type="rss" xmlUrl="http://www.sandimetz.com/blog?format=RSS" />
<outline title="tenderlovemaking.com/atom.xml" type="rss" xmlUrl="http://tenderlovemaking.com/atom.xml" />
<outline title="www.mikeperham.com/feed.xml" type="rss" xmlUrl="http://www.mikeperham.com/feed.xml" />
<outline title="rubyweekly.com/rss/1n7andab" type="rss" xmlUrl="http://rubyweekly.com/rss/1n7andab" />
<outline title="robots.thoughtbot.com/rails/feed" type="rss" xmlUrl="https://robots.thoughtbot.com/rails/feed" />
<outline title="weblog.rubyonrails.org/feed/atom.xml" type="rss" xmlUrl="http://weblog.rubyonrails.org/feed/atom.xml" />
<outline title="feeds.feedburner.com/arkency.xml" type="rss" xmlUrl="https://feeds.feedburner.com/arkency.xml" />
<outline title="www.rubyflow.com/rss" type="rss" xmlUrl="http://www.rubyflow.com/rss" />
<outline title="afreshcup.com/home/atom.xml" type="rss" xmlUrl="http://afreshcup.com/home/atom.xml" />
<outline title="feeds.feedburner.com/EverydayRails" type="rss" xmlUrl="http://feeds.feedburner.com/EverydayRails" />
<outline title="ruby5.codeschool.com/feed.rss" type="rss" xmlUrl="https://ruby5.codeschool.com/feed.rss" />
<outline title="www.blackbytes.info/feed" type="rss" xmlUrl="http://www.blackbytes.info/feed" />
<outline title="www.rubytapas.com/feed/" type="rss" xmlUrl="https://www.rubytapas.com/feed/" />
<outline title="ruby.awsblog.com/blog/feed/recentPosts.rss" type="rss" xmlUrl="https://ruby.awsblog.com/blog/feed/recentPosts.rss" />
<outline title="railsware.com/blog/feed" type="rss" xmlUrl="http://railsware.com/blog/feed" />
<outline title="www.ruby-forum.com/feed/global" type="rss" xmlUrl="https://www.ruby-forum.com/feed/global" />
<outline title="railsforum.com/rss/forums/1-rails-forum/" type="rss" xmlUrl="https://railsforum.com/rss/forums/1-rails-forum/" />
<outline title="feeds.feedburner.com/AkitaOnRailsEnglish" type="rss" xmlUrl="http://feeds.feedburner.com/AkitaOnRailsEnglish" />
<outline title="samurails.com/feed/" type="rss" xmlUrl="https://samurails.com/feed/" />
<outline title="blog.railsapps.org/rss" type="rss" xmlUrl="http://blog.railsapps.org/rss" />
<outline title="feeds.feedburner.com/steveklabnik/words" type="rss" xmlUrl="http://feeds.feedburner.com/steveklabnik/words" />
<outline title="devchat.tv/feed" type="rss" xmlUrl="https://devchat.tv/feed" />
<outline title="feeds.feedburner.com/buckblog" type="rss" xmlUrl="http://feeds.feedburner.com/buckblog" />
<outline title="schneems.com/feed.xml" type="rss" xmlUrl="http://schneems.com/feed.xml" />
<outline title="feeds2.feedburner.com/patshaughnessy" type="rss" xmlUrl="http://feeds2.feedburner.com/patshaughnessy" />
<outline title="programmingzen.com/feed/" type="rss" xmlUrl="http://programmingzen.com/feed/" />
<outline title="chneukirchen.org/trivium/index.atom" type="rss" xmlUrl="http://chneukirchen.org/trivium/index.atom" />
<outline title="blog.josephwilk.net/atom.xml" type="rss" xmlUrl="http://blog.josephwilk.net/atom.xml" />
<outline title="andycroll.com/index.xml" type="rss" xmlUrl="http://andycroll.com/index.xml" />
<outline title="www.martinfowler.com/feed.atom" type="rss" xmlUrl="http://www.martinfowler.com/feed.atom" />
<outline title="feeds.specificfeeds.com/wyeworks" type="rss" xmlUrl="http://feeds.specificfeeds.com/wyeworks" />
<outline title="www.bignerdranch.com/rss.xml" type="rss" xmlUrl="https://www.bignerdranch.com/rss.xml" />
<outline title="feeds.feedburner.com/fredwu" type="rss" xmlUrl="http://feeds.feedburner.com/fredwu" />
<outline title="collectiveidea.com/blog/feed/" type="rss" xmlUrl="http://collectiveidea.com/blog/feed/" />
<outline title="www.igvita.com/feed/" type="rss" xmlUrl="https://www.igvita.com/feed/" />
<outline title="squarism.com/feed" type="rss" xmlUrl="http://squarism.com/feed" />
<outline title="culttt.com/feed" type="rss" xmlUrl="http://culttt.com/feed" />
<outline title="ruby.libhunt.com/newsletter/feed" type="rss" xmlUrl="https://ruby.libhunt.com/newsletter/feed" />
<outline title="brandonhilkert.com/atom.xml" type="rss" xmlUrl="http://brandonhilkert.com/atom.xml" />
<outline title="feeds.feedburner.com/chodounsky" type="rss" xmlUrl="http://feeds.feedburner.com/chodounsky" />
</outline>
</body>
</opml>
require 'typhoeus'
require 'pry'
def get(url)
Typhoeus.get(url, followlocation: true,
timeout: 30,
accept_encoding: "gzip",
cookiefile: "/dev/null",
cookiejar: "/dev/null",
headers: {
"User-Agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:36.0; Empfehlungsbund.de) Gecko/20100101 Firefox/36.0",
"Accept-Language" => "de-de,de,en-us,en",
"Accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
})
end
all_feeds = ["http://www.rubyist.net/~matz/","http://techblog.netflix.com/","http://www.ultrasaurus.com/","http://www.virtuouscode.com/","http://www.sandimetz.com/blog/","http://kytrinyx.com/talks/","http://tenderlovemaking.com/","http://www.mikeperham.com/","http://rubyweekly.com/","https://robots.thoughtbot.com/tags/rails","http://weblog.rubyonrails.org/","http://blog.arkency.com/","http://www.rubyflow.com/","http://afreshcup.com/","http://www.everydayrails.com/","https://ruby5.codeschool.com/","http://www.blackbytes.info/","https://www.rubytapas.com/","https://ruby.awsblog.com/","http://railsware.com/blog/","https://www.ruby-forum.com/forum/rails","https://railsforum.com/","http://www.akitaonrails.com/","https://samurails.com/","http://blog.railsapps.org/","http://words.steveklabnik.com/","https://devchat.tv/ruby-rogues","http://weblog.jamisbuck.org/","http://schneems.com/","http://patshaughnessy.net/","http://programmingzen.com/","http://chneukirchen.org/trivium/","http://blog.josephwilk.net/","http://andycroll.com/","http://www.martinfowler.com/","https://wyeworks.com/blog","https://www.bignerdranch.com/blog/","http://fredwu.me/","http://collectiveidea.com/blog/labels/rails/","https://www.igvita.com/","http://squarism.com/","http://culttt.com/","https://ruby.libhunt.com/newsletter","http://brandonhilkert.com/","https://chodounsky.net/"]
all_feeds.each_with_index do |url, i|
response = get(url)
done = ->(path_or_url) {
if path_or_url.starts_with?("//")
path_or_url = "https:" + path_or_url
elsif path_or_url.starts_with?("/")
path_or_url = URI.join(url, path_or_url).to_s
end
puts "#{i + 1}. #{path_or_url}"
}
doc = Nokogiri.parse(response.body)
feeds = doc.search('link[rel=alternate]').select{|i| i['type'].to_s[/rss|atom|xml/i] }.map{|i| [i['title'], i['href'] ]}
if feeds.length == 1
done.(feeds.first[1])
elsif feeds.length > 1
feed = feeds.find{|t,r| !t.to_s[/comment/i] } || feeds.first
done.(feed[1])
else
try = URI.join(url, 'feed').to_s
r2 = get(try)
if r2.success?
done.(try)
next
end
puts "#{i + 1}. ... no feed found (#{url})"
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment