evernote_link_extractor 0.1.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +10 -0
- data/.rspec +2 -0
- data/.travis.yml +4 -0
- data/CODE_OF_CONDUCT.md +13 -0
- data/Gemfile +4 -0
- data/README.md +62 -0
- data/Rakefile +6 -0
- data/bin/console +14 -0
- data/bin/evernote_link_extractor +27 -0
- data/bin/setup +7 -0
- data/evernote_link_export_1441461770.csv +218 -0
- data/evernote_link_export_1441462721.csv +218 -0
- data/evernote_link_export_1441463723.csv +2 -0
- data/evernote_link_export_1441463860.csv +2 -0
- data/evernote_link_export_1441464002.csv +2 -0
- data/evernote_link_extractor.gemspec +27 -0
- data/lib/evernote_link_extractor.rb +16 -0
- data/lib/evernote_link_extractor/csv_builder.rb +22 -0
- data/lib/evernote_link_extractor/file_list.rb +59 -0
- data/lib/evernote_link_extractor/helper.rb +19 -0
- data/lib/evernote_link_extractor/link_list.rb +50 -0
- data/lib/evernote_link_extractor/runner.rb +53 -0
- data/lib/evernote_link_extractor/version.rb +3 -0
- metadata +141 -0
@@ -0,0 +1,2 @@
|
|
1
|
+
title,link
|
2
|
+
"[""#279 Understanding the Asset Pipeline - RailsCasts"", ""http://railscasts.com/episodes/279-understanding-the-asset-pipeline""]","[""$ cheat rvm"", ""http://cheat.errtheblog.com/s/rvm/""]","[""14 Customer Feedback Tools for Small Business | Practical eCommerce"", ""http://www.practicalecommerce.com/articles/2827-14-Customer-Feedback-Tools-for-Small-Business""]","[""30 Handy Bash Shell Aliases For Linux / Unix / Mac OS X"", ""http://www.cyberciti.biz/tips/bash-aliases-mac-centos-linux-unix.html""]","[""30 Shredders In One Solo Lesson"", ""http://www.guitarmasterclass.net/ls/30-Shredders-In-One-Solo/""]","[""30 Shredders In One Solo! - YouTube"", ""https://www.youtube.com/watch?NR=1&v=iaAkWy55V3A""]","[""500 - Internal Server Error | Flickr - Photo Sharing!"", ""http://www.flickr.com/photos/girliemac/6509400855/in/set-72157628409467125/""]","[""7 Ways to Decompose Fat ActiveRecord Models - Code Climate Blog"", ""http://blog.codeclimate.com/blog/2012/10/17/7-ways-to-decompose-fat-activerecord-models/""]","[""A programmer’s guide to JavaScript by Dr. Axel Rauschmayer"", ""http://jsguide.org/""]","[nil, ""http://www.csee.umbc.edu/about/""]","[""Acorn: yet another JavaScript parser"", ""http://marijnhaverbeke.nl/blog/acorn.html""]","[""acorn/acorn.js at master · marijnh/acorn · GitHub"", ""https://github.com/marijnh/acorn/blob/master/acorn.js""]","[""afterRender() callback in Backbone.js Views"", ""http://fahad19.tumblr.com/post/28158699664/afterrender-callback-in-backbone-js-views""]","[""All you need to know about CSS Transitions | Alex MacCaw"", ""http://blog.alexmaccaw.com/css-transitions?utm_source=html5weekly&utm_medium=email""]","[nil, ""http://rethinkdb.com/docs/install""]","[""AngularJS: Tutorial"", ""http://docs.angularjs.org/tutorial/""]","[nil, ""https://id.apache.org/""]","[nil, ""https://translate.apache.org/de/CouchDB/""]","[nil, ""https://blogs.apache.org/roller-ui/login.rol""]","[nil, ""http://wilderness.apache.org/archives/""]","[""aziz/PlainTasks · GitHub"", ""https://github.com/aziz/PlainTasks""]","[""Backbone.js Tutorials"", ""http://backbonetutorials.com/""]","[""Backbone.js"", ""http://backbonejs.org/""]","[""Backbone.js: Getting The Model For A Clicked Element | ThoughtStream.new :derick_bailey"", ""http://lostechies.com/derickbailey/2011/10/11/backbone-js-getting-the-model-for-a-clicked-element/""]","[""backbonetutorials/examples/modular-backbone at gh-pages · thomasdavis/backbonetutorials"", ""https://github.com/thomasdavis/backbonetutorials/tree/gh-pages/examples/modular-backbone""]","[""BASH Programming - Introduction HOW-TO"", ""http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO.html""]","[""Beginning Ember.js on Rails: Part 1 :: Cerebris"", ""http://www.cerebris.com/blog/2012/01/24/beginning-ember-js-on-rails-part-1/""]","[""Beginning Ember.js on Rails: Part 2 :: Cerebris"", ""http://www.cerebris.com/blog/2012/01/26/beginning-ember-js-on-rails-part-2/""]","[""Beginning Ember.js on Rails: Part 3 :: Cerebris"", ""http://www.cerebris.com/blog/2012/01/31/beginning-ember-js-on-rails-part-3/""]","[""Beginning Ember.js on Rails: Part 3 :: Cerebris"", ""http://www.cerebris.com/blog/2012/01/31/beginning-ember-js-on-rails-part-3/""]","[""BELBIN®: The home of Belbin Team Roles"", ""http://www.belbin.com/""]","[""bestiejs/lodash"", ""https://github.com/bestiejs/lodash""]","[""Border-radius: create rounded corners with CSS! - CSS3 . Info"", ""http://www.css3.info/preview/rounded-border/""]","[""Bottle: Python Web Framework — Bottle 0.12-dev documentation"", ""http://bottlepy.org/docs/dev/""]","[""BSON - Binary JSON"", ""http://bsonspec.org/#/specification""]","[""Bundesgesetzblatt online"", ""http://www.bgbl.de/Xaver/start.xav?startbk=Bundesanzeiger_BGBl""]","[""Camping, a Microframework"", ""http://camping.io/""]","[""Capistrano recipes: deploy"", ""http://capitate.rubyforge.org/recipes/deploy.html""]","[""Check_MK - The Official Documentation"", ""http://mathias-kettner.de/checkmk.html""]","[""Chrome 26 Beta: Verbesserte Rechtschreibkorrektur und Template-Unterstützung - Golem.de"", ""http://www.golem.de/news/chrome-26-beta-verbesserte-rechtschreibkorrektur-und-template-unterstuetzung-1302-97855.html""]","[""CodeKata: Code Kata"", ""http://codekata.pragprog.com/2007/01/code_kata_backg.html#more""]","[""CoffeeScript Cookbook » Home"", ""http://coffeescriptcookbook.com/""]","[""CoffeeScript Cookbook » Testing Every Element"", ""http://coffeescriptcookbook.com/chapters/arrays/testing-every-element""]","[""CoffeeScript Love: Testing CoffeeScript in Rails"", ""http://www.coffeescriptlove.com/2012/03/testing-coffeescript-in-rails.html?utm_source=rubyweekly&utm_medium=email""]","[""Color Output on Bash Scripts | Linux Tidbits"", ""http://linuxtidbits.wordpress.com/2008/08/11/output-color-on-bash-scripts/""]","[nil, ""http://people.apache.org/foaf/foafamatic.html""]","[nil, ""https://blogs.apache.org/couchdb/""]","[""create node.js web-services in one line - — blog.nodejitsu.com"", ""https://blog.nodejitsu.com/create-nodejs-web-services-in-one-line""]","[""CSS Architecture | Appfolio Engineering"", ""http://engineering.appfolio.com/2012/11/16/css-architecture/""]","[""CSS Button Generator - Imageless css buttons simplified"", ""http://www.cssbuttongenerator.com/""]","[""Cuba"", ""http://cuba.is/""]","[""DailyJS: Backbone.js Tutorial: Build Environment"", ""http://dailyjs.com/2012/11/29/backbone-tutorial-1/""]","[nil, ""http://ci.couchdb.org:8888/""]","[""DataFart"", ""http://datafart.com/""]","[""DataMapper - Documentation"", ""http://datamapper.org/docs/""]","[""Deploying a Rails app on Nginx/Puma with Capistrano | Tommy Chheng : Shortest Path Programming"", ""http://tommy.chheng.com/2013/01/23/deploying-a-rails-app-on-nginxpuma-with-capistrano/?utm_source=rubyweekly&utm_medium=email""]","[""Designing Better JavaScript APIs | Smashing Coding"", ""http://coding.smashingmagazine.com/2012/10/09/designing-javascript-apis-usability/?utm_source=javascriptweekly&utm_medium=email""]","[""DevDocs/DOM Events/fullscreenchange"", ""http://devdocs.io/dom_events/fullscreenchange""]","[""Developing Backbone.js Applications -"", ""http://addyosmani.github.com/backbone-fundamentals/""]","[""DOM Enlightenment - Exploring the relationship between JavaScript and the modern HTML DOM"", ""http://domenlightenment.com/""]","[""draft-ietf-httpbis-http2-02 - Hypertext Transfer Protocol version 2.0"", ""http://tools.ietf.org/html/draft-ietf-httpbis-http2-02""]","[""Einstein, Albert. 1920. Relativity: The Special and General Theory"", ""http://www.bartleby.com/173/""]","[""Elastic tire demo"", ""http://www.slideshare.net/greeneggs614/elastic-tire-demo""]","[""ElasticSearch with Tire"", ""http://www.slideshare.net/abookyun/elasticsearch-with-tire""]","[nil, ""https://www.eff.org/""]","[""Eloquent JavaScript: A Modern Introduction to Programming"", ""http://eloquentjavascript.net/""]","[""Ember.js - About"", ""http://emberjs.com/""]","[""erlang-bookmarks/ErlangBookmarks.md at master · 0xAX/erlang-bookmarks"", ""https://github.com/0xAX/erlang-bookmarks/blob/master/ErlangBookmarks.md""]","[""erlang-bookmarks/ErlangBookmarks.md at master · 0xAX/erlang-bookmarks"", ""https://github.com/0xAX/erlang-bookmarks/blob/master/ErlangBookmarks.md""]","[nil, ""http://www.petekeen.net/essential-tools-for-starting-a-rails-app-in-2013""]","[""Evan Hahn"", ""http://evanhahn.com/""]","[nil, ""https://speakerdeck.com/bartoszopka/everything-you-never-wanted-to-know-about-javascript-numbers""]","[nil, ""https://speakerdeck.com/bartoszopka/everything-you-never-wanted-to-know-about-javascript-numbers""]","[nil, ""https://speakerdeck.com/bartoszopka/everything-you-never-wanted-to-know-about-javascript-numbers""]","[""Faster Websites: Crash Course on Web Performance - igvita.com"", ""http://www.igvita.com/2013/01/15/faster-websites-crash-course-on-web-performance/""]","[nil, ""http://travis-ci.org/rspec/rspec-expectations""]","[""File: SASS_REFERENCE"", ""http://sass-lang.com/docs/yardoc/file.SASS_REFERENCE.html""]","[""Getting Started With Express Checkout | X.commerce"", ""https://www.x.com/developers/paypal/documentation-tools/express-checkout/integration-guide/ECGettingStarted""]","[nil, ""http://gavinmiller.io/categories/activerecord/""]","[""GIN – Just A Kind Of Index › Cybertec - The PostgreSQL Database Company"", ""http://www.cybertec.at/gin-just-an-index-type/""]","[""GitHub does dotfiles - dotfiles.github.com"", ""http://dotfiles.github.com/""]","[""good coders code, great reuse"", ""http://www.catonmat.net/""]","[""Gutmann method - Wikipedia, the free encyclopedia"", ""http://en.wikipedia.org/wiki/Gutmann_method""]","[""Harmony of Dreams Come True | Brendan Eich"", ""https://brendaneich.com/2012/10/harmony-of-dreams-come-true/?utm_source=javascriptweekly&utm_medium=email""]","[""Headius: Finding Leaks in Ruby Apps with Eclipse Memory Analyzer"", ""http://blog.headius.com/2010/07/finding-leaks-in-ruby-apps-with-eclipse.html""]","[""Hello Backbone.js Tutorial"", ""http://arturadib.com/hello-backbonejs/""]","[""High Performance Networking in Google Chrome - igvita.com"", ""http://www.igvita.com/posa/high-performance-networking-in-google-chrome/""]","[""Home page of Evan Miller"", ""http://www.evanmiller.org/""]","[""How to Create One-Time Payments Using Express Checkout | X.commerce"", ""https://www.x.com/developers/paypal/documentation-tools/express-checkout/how-to/ht_ec-singleItemPayment-curl-etc""]","[""How to make Chrome understand the SASS/SCSS in your rails app | fonicmonkey"", ""http://fonicmonkey.net/2013/03/25/native-sass-scss-source-map-support-in-chrome-and-rails/?utm_source=rubyweekly&utm_medium=email""]","[""How to play Zopfli with Nginx - Google Drive"", ""https://docs.google.com/document/d/1kpfGrYda1BNhWUx-cGfc6Sv3dFaw8DgKnRIE8yHpqIY/edit""]","[nil, ""http://www.rubymotion.com/""]","[""How to secure an Ubuntu 12.04 LTS server - Part 1 The Basics | How To | The Fan Club | dynamic design solutions"", ""http://www.thefanclub.co.za/how-to/how-secure-ubuntu-1204-lts-server-part-1-basics""]","[""How to send email from the Linux command line - Simple Help"", ""http://www.simplehelp.net/2008/12/01/how-to-send-email-from-the-linux-command-line/""]","[""How to take Automatic SQL Database Backup using pgAgent | PostgreSQL"", ""http://technobytz.com/automatic-sql-database-backup-postgres.html""]","[""HTML5 Pyramid"", ""http://helgri.github.com/HTML5-Pyramid/""]","[""HTML_CodeSniffer"", ""http://squizlabs.github.com/HTML_CodeSniffer/?utm_source=html5weekly&utm_medium=email""]","[""igrigorik/em-synchrony"", ""https://github.com/igrigorik/em-synchrony""]","[""7th March"", ""http://mwholt.blogspot.com/2013/03/install-nginxphpmysql-on-os-x-mountain.html""]","[""Interactive Smooth CoffeeScript"", ""http://autotelicum.github.com/Smooth-CoffeeScript/interactive/interactive-coffeescript.html""]","[""Interface testing: Creating a Diablo 3 bot using jRuby and Sikuli UI - Rodrigo Franco - Ruby Conference 2012"", ""http://www.confreaks.com/videos/1309-rubyconf2012-interface-testing-creating-a-diablo-3-bot-using-jruby-and-sikuli-ui""]","[""Internet Census 2012"", ""http://internetcensus2012.bitbucket.org/paper.html""]","[""Internet protocol suite - Wikipedia, the free encyclopedia"", ""http://en.wikipedia.org/wiki/Internet_protocol_suite""]","[""Introducing the Rails API Project - Literate Programming"", ""http://blog.steveklabnik.com/posts/2012-11-22-introducing-the-rails-api-project?utm_source=hackernewsletter&utm_medium=email""]","[""Jade - Template Engine"", ""http://jade-lang.com/""]","[""jamiew/heroku-static-site"", ""https://github.com/jamiew/heroku-static-site""]","[""javascript - How do I get started with Node.js - Stack Overflow"", ""http://stackoverflow.com/questions/2353818/how-do-i-get-started-with-node-js""]","[""jedtoolkit"", ""https://github.com/jedtoolkit""]","[""jimweirich/rspec-given"", ""https://github.com/jimweirich/rspec-given?utm_source=rubyweekly&utm_medium=email""]","[""JSConf EU: A novel, efficient approach to JavaScript loading - Google Drive"", ""https://docs.google.com/presentation/d/1Q44eWLI2qvZnmCF5oD2jCw-FFql9dYg36FE5CpbMlw4/preview#slide=id.p19""]","[""JW Player: Overview | LongTail Video | Home of the JW Player"", ""http://www.longtailvideo.com/players/""]","[""Knockout : Home"", ""http://knockoutjs.com/""]","[""KnockoutJS Validations Screencast - Art Of Programming"", ""http://approache.com/blog/knockoutjs-validations-video/""]","[""Labrador"", ""http://chrismccord.github.com/labrador/?utm_source=rubyweekly&utm_medium=email""]","[""LaTeX Editor ShareLaTeX - ShareLaTeX.com"", ""https://www.sharelatex.com/""]","[""Learning JavaScript Design Patterns"", ""http://addyosmani.com/resources/essentialjsdesignpatterns/book/""]","[""Let's Write a Gem: Part 2 - Rake Routes"", ""http://rakeroutes.com/blog/lets-write-a-gem-part-two/""]","[""Linux: HowTo Encrypt And Decrypt Files With A Password"", ""http://www.cyberciti.biz/tips/linux-how-to-encrypt-and-decrypt-files-with-a-password.html""]","[""List of Chromium Command Line Switches « Peter Beverloo"", ""http://peter.sh/experiments/chromium-command-line-switches/?utm_source=html5weekly&utm_medium=email""]","[""M101_MongoDB/ruby at master · samnang/M101_MongoDB · GitHub"", ""https://github.com/samnang/M101_MongoDB/tree/master/ruby""]","[""Man-Computer Symbiosis"", ""http://groups.csail.mit.edu/medg/people/psz/Licklider.html""]","[""mary rose cook"", ""http://maryrosecook.com/""]","[""Memory footprint of objects in Ruby 1.8, EE, 1.9, and OCaml"", ""http://web.archive.org/web/20100918225809/http://eigenclass.org/R2/writings/object-size-ruby-ocaml""]","[""Metaprogramming in Ruby: It’s All About the Self « Katz Got Your Tongue?"", ""http://yehudakatz.com/2009/11/15/metaprogramming-in-ruby-its-all-about-the-self/""]","[""Michal Budzynski: JavaScript: The less known parts. Bitwise Operators."", ""http://michalbe.blogspot.de/2013/03/javascript-less-known-parts-bitwise.html""]","[""Modern Garbage Collectors under the Hood - General Programming - Articles - Articles - GameDev.net"", ""http://www.gamedev.net/page/resources/_/technical/general-programming/modern-garbage-collectors-under-the-hood-r2995?utm_source=statuscode&utm_medium=email""]","[""MongoDB Manual Contents — MongoDB Manual"", ""http://docs.mongodb.org/manual/contents/""]","[""MongoDB"", ""http://www.mongodb.org/""]","[""Mongoid: Home"", ""http://mongoid.org/en/mongoid/index.html""]","[""mozilla-b2g/gaia · GitHub"", ""https://github.com/mozilla-b2g/gaia""]","[""Multicast in Ruby: Building a Peer-to-Peer Chat System :: tx.pignata.com"", ""http://tx.pignata.com/2012/11/multicast-in-ruby-building-a-peer-to-peer-chat-system.html""]","[""My First 5 Minutes On A Server; Or, Essential Security for Linux Servers | Bryan Kennedy"", ""http://plusbryan.com/my-first-5-minutes-on-a-server-or-essential-security-for-linux-servers""]","[""My first SSL Web Server - Google Drive"", ""https://docs.google.com/document/d/1ej91CoXwtq6cuPoWQa1X6bVXsbkKoLZhY-37X3k5JRg/edit""]","[""MYO - The Gesture Control Armband"", ""https://getmyo.com/""]","[nil, ""http://www.sitepoint.com/author/jthacker/""]","[""ndbroadbent/turbo-sprockets-rails3"", ""https://github.com/ndbroadbent/turbo-sprockets-rails3?utm_source=rubyweekly&utm_medium=email""]","[""NVD3.js :: re-usable charts for d3.js"", ""http://nvd3.org/""]","[""Object.hasOwnProperty.com || Find My Property"", ""http://object.hasownproperty.com/""]","[""Olark | Live chat with your customers for sales and support"", ""http://www.olark.com/""]","[""One Div Zero: A Brief, Incomplete, and Mostly Wrong History of Programming Languages"", ""http://james-iry.blogspot.com.br/2009/05/brief-incomplete-and-mostly-wrong.html""]","[""Opal: Ruby to Javascript compiler"", ""http://opalrb.org/?utm_source=hackernewsletter&utm_medium=email""]","[""Our First Node.js App: Backbone on the Client and Server - Airbnb Engineering"", ""http://nerds.airbnb.com/weve-launched-our-first-nodejs-app-to-product?utm_source=javascriptweekly&utm_medium=email""]","[""Parleys.com - Faster Websites: Crash Course on Frontend Performance (Part 1/2)"", ""http://parleys.com/#st=5&id=3648&sl=8""]","[""Pass Command Line Arguments To a Bash Alias Command"", ""http://www.cyberciti.biz/faq/linux-unix-pass-argument-to-alias-command/""]","[nil, ""http://www.paterva.com/web6/""]","[""Performance Calendar » 2012"", ""http://calendar.perfplanet.com/2012/""]","[""Performance Calendar » Moving beyond window.onload()"", ""http://calendar.perfplanet.com/2012/moving-beyond-window-onload/""]","[""Phusion Passenger users guide, Nginx version"", ""http://www.modrails.com/documentation/Users%20guide%20Nginx.html#rubygems_generic_install""]","[""Powerful Command Line Tools For Developers | Smashing Coding"", ""http://coding.smashingmagazine.com/2012/10/29/powerful-command-line-tools-developers/?utm_source=statuscode&utm_medium=email""]","[""Probability | Khan Academy"", ""http://www.khanacademy.org/math/probability""]","[""Pub: Getting Started | Dart: Structured web apps"", ""http://www.dartlang.org/docs/pub-package-manager/""]","[""Punch Reloaded | LakTEK"", ""http://laktek.com/2012/09/18/punch-reloaded/?utm_source=rubyweekly&utm_medium=email""]","[""Ratgeber: Verschlüsselung unter OS X 10.8 Mountain Lion - Interne Laufwerke mit Filevault verschlüsseln - Mac-OS X - MACWELT"", ""http://www.macwelt.de/ratgeber/Ratgeber-Verschluesselung-unter-OS-X-10-8-Mountain-Lion-Interne-Laufwerke-mit-Filevault-verschluesseln-6703357.html""]","[""REST-Webservices mit Node.js, Teil 1: Connect als Fundament | heise Developer"", ""http://www.heise.de/developer/artikel/REST-Webservices-mit-Node-js-Teil-1-Connect-als-Fundament-1802258.html""]","[""REST-Webservices mit Node.js, Teil 2: Express als Anwendungsserver | heise Developer"", ""http://www.heise.de/developer/artikel/REST-Webservices-mit-Node-js-Teil-2-Express-als-Anwendungsserver-1803626.html""]","[""Ruby and Rails Special Topics - Jumpstart Lab Curriculum"", ""http://tutorials.jumpstartlab.com/topics/""]","[""Ruby on Rails Screencasts - RailsCasts"", ""http://railscasts.com/episodes?utf8=%E2%9C%93&search=paypal""]","[""Ruby on Rails Tutorial: Learn Rails by Example book and screencasts by Michael Hartl"", ""http://ruby.railstutorial.org/ruby-on-rails-tutorial-book?version=3.2""]","[""Ruby Programming/Syntax/Classes - Wikibooks, open books for an open world"", ""https://en.wikibooks.org/wiki/Ruby_Programming/Syntax/Classes#Mixing_in_Modules""]","[nil, ""https://gist.github.com/mattdipasquale/571405""]","[""Ruby Trick Shots: A Video of 24 Ruby Tips and Tricks"", ""http://rubyreloaded.com/trickshots/""]","[""Ruby Under a Microscope - Pat Shaughnessy"", ""http://patshaughnessy.net/ruby-under-a-microscope""]","[""RubyJS | Home"", ""http://rubyjs.org/""]","[""Comment on Design Patterns in Ruby: Observer, Singleton"", ""http://rubysource.com/design-patterns-in-ruby-observer-singleton/#comments""]","[""View all posts in Outside Ruby"", ""http://rubysource.com/category/outside-ruby/""]","[nil, ""http://api.rubyonrails.org/classes/ActionController/Caching/Pages.html""]","[""RubySource | Simple Background Jobs with Sucker PunchRubySource"", ""http://rubysource.com/simple-background-jobs-with-sucker-punch/?utm_medium=email&utm_campaign=Rubysource%2020120528&utm_content=Rubysource%2020120528+CID_93079a7cbc8a9c4b538c87e6d0983d28&utm_source=Newsletter&utm_term=More""]","[""Comment on State Machines in Ruby"", ""http://rubysource.com/state-machines-in-ruby/#comments""]","[""RubySource | Working with RefineryRubySource"", ""http://rubysource.com/working-with-refinery/?utm_medium=email&utm_campaign=Rubysource+Newsletter+20121002&utm_content=Rubysource+Newsletter+20121002+CID_4ef1fdb2d08c027e3dff17884118bcc0&utm_source=Newsletter&utm_term=CMS%20Spotlight%20Refinery""]","[""Running Bash Commands From Ruby | Ruby For System Administrators"", ""http://ruby.elevatedintel.com/blog/running-bash-commands-from-ruby/?utm_source=rubyweekly&utm_medium=email""]","[""Sam Dutton"", ""http://www.samdutton.com/""]","[""Secrets of Awesome JavaScript API Design - Web Standards Sherpa"", ""http://webstandardssherpa.com/reviews/secrets-of-awesome-javascript-api-design/""]","[""Self-publish your in-progress book for great royalties on Leanpub"", ""https://leanpub.com/""]","[""Setting up a PHP development environment with Nginx on Ubuntu 11.04"", ""http://www.zalas.eu/setting-up-a-php-development-environment-with-nginx-on-ubuntu-1104""]","[nil, ""http://conqueringthecommandline.com/book/frontmatter#foreword""]","[""SPDY and the Road Towards HTTP 2.0 - YouTube"", ""http://www.youtube.com/watch?v=SWQdSEferz8""]","[""SSH/OpenSSH/Keys - Community Ubuntu Documentation"", ""https://help.ubuntu.com/community/SSH/OpenSSH/Keys""]","[""stps - create and share awesome step by step guides"", ""http://stps.co/""]","[""Streak - CRM in your Inbox"", ""http://www.streak.com/""]","[""Stuart Memo"", ""http://stuartmemo.com/""]","[""Sublimewebinspector"", ""http://sokolovstas.github.com/SublimeWebInspector/""]","[""Subtle Patterns | Free textures for your next web project"", ""http://subtlepatterns.com/""]","[""Telefon-Hacking: Das bewegte Leben des Captain Crunch - Golem.de"", ""http://www.golem.de/news/telefon-hacking-das-bewegte-leben-des-captain-crunch-1210-94815.html""]","[""Ten Things You Didn't Know You Could Do by James Edward Gray II - YouTube"", ""http://www.youtube.com/watch?v=aBgnlBoIkVM""]","[nil, ""http://theory.so/pg/2013/10/23/testing-nested-hstore/""]","[""TexPaste - Pastebin for Mathematicians using LaTeX"", ""http://www.texpaste.com/""]","[""The MongoDB NoSQL Database Blog, MongoDB Text Search: Experimental Feature in MongoDB 2.4"", ""http://blog.mongodb.org/post/40513621310/mongodb-text-search-experimental-feature-in-mongodb""]","[""The Myers & Briggs Foundation"", ""http://myersbriggs.org/""]","[""The Twelve-Factor App"", ""http://12factor.net/""]","[""The Ultimate Guide to Learning Ruby for Free: Resources, Tools and Tips - Lesson in Programming"", ""http://lurnq.com/lesson/The-Ultimate-Guide-to-Learning-Ruby-for-Free-Resources-Tools-and-Tips/""]","[""Thomas Davis"", ""http://thomasdavis.github.com/2011/02/01/backbone-introduction.html""]","[""TodoMVC"", ""http://todomvc.com/""]","[""Try mruby TodayRubySource"", ""http://rubysource.com/try-mruby-today/?utm_medium=email&utm_campaign=RubySource+Newsletter+20121030&utm_content=RubySource+Newsletter+20121030+Version+A+CID_279679335def9cd340cb088738729cd8&utm_source=Newsletter&utm_term=MRuby%20Small%20Implementation%20Big%20Results""]","[nil, ""http://lists.nyphp.org/pipermail/talk/2004-April/009170.html""]","[""Tuts+ Premium Course: Perfect Workflow in Sublime Text 2"", ""https://tutsplus.com/course/improve-workflow-in-sublime-text-2/""]","[""UFW - Community Ubuntu Documentation"", ""https://help.ubuntu.com/community/UFW""]","[""Ultimate CSS Gradient Generator - ColorZilla.com"", ""http://www.colorzilla.com/gradient-editor/""]","[""Understanding C by learning assembly - Blog - Hacker School"", ""https://www.hackerschool.com/blog/7-understanding-c-by-learning-assembly?utm_source=statuscode&utm_medium=email""]","[""Understanding method lookup in Ruby 2.0 - Tech.Pro"", ""http://tech.pro/tutorial/1149/understanding-method-lookup-in-ruby-20?utm_source=rubyweekly&utm_medium=email""]","[""Unobtrusive JavaScript"", ""http://blog.socialcast.com/unobtrusive-javascript-2/?utm_source=javascriptweekly&utm_medium=email""]","[nil, ""https://people.apache.org/keys/committer/andywenk.asc""]","[""Upton: A Web Scraping Framework - ProPublica"", ""http://www.propublica.org/nerds/item/upton-a-web-scraping-framework?utm_source=rubyweekly&utm_medium=email""]","[""URI.js - URLs in Javascript"", ""http://medialize.github.com/URI.js/""]","[""UseResponse | Customer Feedback Software & Support System"", ""http://www.useresponse.com/""]","[""Using Pandoc to Build Your ePub eBook - Story Hack"", ""http://www.storyhack.com/2012/07/10/using-pandoc-to-build-your-epub-ebook/""]","[""Using Ruby's gsub with a block - (think)"", ""http://batsov.com/articles/2013/08/30/using-gsub-with-a-block/?utm_source=rubyweekly&utm_medium=email""]","[""visionmedia/jade · GitHub"", ""https://github.com/visionmedia/jade#a6-2""]","[""Wait, DevTools could do THAT?"", ""http://www.igvita.com/slides/2012/devtools-tips-and-tricks/?utm_source=html5weekly&utm_medium=email#1""]","[""Watch movies online for free movie download at movie2k.to"", ""http://www.movie2k.to/index.php?lang=us""]","[""Why Google Went Offline Today and a Bit about How the Internet Works - CloudFlare blog"", ""http://blog.cloudflare.com/why-google-went-offline-today-and-a-bit-about?utm_source=hackernewsletter&utm_medium=email""]","[""Working with Local Applications in VisualVM — Java.net"", ""http://visualvm.java.net/applications_local.html""]","[""www.ietf.org/rfc/rfc2616.txt"", ""http://www.ietf.org/rfc/rfc2616.txt""]","[""www.ietf.org/rfc/rfc791.txt"", ""http://www.ietf.org/rfc/rfc791.txt""]","[""www.ietf.org/rfc/rfc792.txt"", ""http://www.ietf.org/rfc/rfc792.txt""]","[""www.ietf.org/rfc/rfc793.txt"", ""http://www.ietf.org/rfc/rfc793.txt""]","[""Yeti Media"", ""http://yetimedia.tumblr.com/post/33320732456/moving-forward-with-the-rails-asset-pipeline?utm_source=rubyweekly&utm_medium=email""]","[""Łukasz Lipiński Portfolio"", ""http://www.uzza.pl/home.html""]"
|
@@ -0,0 +1,2 @@
|
|
1
|
+
title,link
|
2
|
+
"[""#279 Understanding the Asset Pipeline - RailsCasts"", ""http://railscasts.com/episodes/279-understanding-the-asset-pipeline""]","[""$ cheat rvm"", ""http://cheat.errtheblog.com/s/rvm/""]","[""14 Customer Feedback Tools for Small Business | Practical eCommerce"", ""http://www.practicalecommerce.com/articles/2827-14-Customer-Feedback-Tools-for-Small-Business""]","[""30 Handy Bash Shell Aliases For Linux / Unix / Mac OS X"", ""http://www.cyberciti.biz/tips/bash-aliases-mac-centos-linux-unix.html""]","[""30 Shredders In One Solo Lesson"", ""http://www.guitarmasterclass.net/ls/30-Shredders-In-One-Solo/""]","[""30 Shredders In One Solo! - YouTube"", ""https://www.youtube.com/watch?NR=1&v=iaAkWy55V3A""]","[""500 - Internal Server Error | Flickr - Photo Sharing!"", ""http://www.flickr.com/photos/girliemac/6509400855/in/set-72157628409467125/""]","[""7 Ways to Decompose Fat ActiveRecord Models - Code Climate Blog"", ""http://blog.codeclimate.com/blog/2012/10/17/7-ways-to-decompose-fat-activerecord-models/""]","[""A programmer’s guide to JavaScript by Dr. Axel Rauschmayer"", ""http://jsguide.org/""]","[nil, ""http://www.csee.umbc.edu/about/""]","[""Acorn: yet another JavaScript parser"", ""http://marijnhaverbeke.nl/blog/acorn.html""]","[""acorn/acorn.js at master · marijnh/acorn · GitHub"", ""https://github.com/marijnh/acorn/blob/master/acorn.js""]","[""afterRender() callback in Backbone.js Views"", ""http://fahad19.tumblr.com/post/28158699664/afterrender-callback-in-backbone-js-views""]","[""All you need to know about CSS Transitions | Alex MacCaw"", ""http://blog.alexmaccaw.com/css-transitions?utm_source=html5weekly&utm_medium=email""]","[nil, ""http://rethinkdb.com/docs/install""]","[""AngularJS: Tutorial"", ""http://docs.angularjs.org/tutorial/""]","[nil, ""https://id.apache.org/""]","[nil, ""https://translate.apache.org/de/CouchDB/""]","[nil, ""https://blogs.apache.org/roller-ui/login.rol""]","[nil, ""http://wilderness.apache.org/archives/""]","[""aziz/PlainTasks · GitHub"", ""https://github.com/aziz/PlainTasks""]","[""Backbone.js Tutorials"", ""http://backbonetutorials.com/""]","[""Backbone.js"", ""http://backbonejs.org/""]","[""Backbone.js: Getting The Model For A Clicked Element | ThoughtStream.new :derick_bailey"", ""http://lostechies.com/derickbailey/2011/10/11/backbone-js-getting-the-model-for-a-clicked-element/""]","[""backbonetutorials/examples/modular-backbone at gh-pages · thomasdavis/backbonetutorials"", ""https://github.com/thomasdavis/backbonetutorials/tree/gh-pages/examples/modular-backbone""]","[""BASH Programming - Introduction HOW-TO"", ""http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO.html""]","[""Beginning Ember.js on Rails: Part 1 :: Cerebris"", ""http://www.cerebris.com/blog/2012/01/24/beginning-ember-js-on-rails-part-1/""]","[""Beginning Ember.js on Rails: Part 2 :: Cerebris"", ""http://www.cerebris.com/blog/2012/01/26/beginning-ember-js-on-rails-part-2/""]","[""Beginning Ember.js on Rails: Part 3 :: Cerebris"", ""http://www.cerebris.com/blog/2012/01/31/beginning-ember-js-on-rails-part-3/""]","[""Beginning Ember.js on Rails: Part 3 :: Cerebris"", ""http://www.cerebris.com/blog/2012/01/31/beginning-ember-js-on-rails-part-3/""]","[""BELBIN®: The home of Belbin Team Roles"", ""http://www.belbin.com/""]","[""bestiejs/lodash"", ""https://github.com/bestiejs/lodash""]","[""Border-radius: create rounded corners with CSS! - CSS3 . Info"", ""http://www.css3.info/preview/rounded-border/""]","[""Bottle: Python Web Framework — Bottle 0.12-dev documentation"", ""http://bottlepy.org/docs/dev/""]","[""BSON - Binary JSON"", ""http://bsonspec.org/#/specification""]","[""Bundesgesetzblatt online"", ""http://www.bgbl.de/Xaver/start.xav?startbk=Bundesanzeiger_BGBl""]","[""Camping, a Microframework"", ""http://camping.io/""]","[""Capistrano recipes: deploy"", ""http://capitate.rubyforge.org/recipes/deploy.html""]","[""Check_MK - The Official Documentation"", ""http://mathias-kettner.de/checkmk.html""]","[""Chrome 26 Beta: Verbesserte Rechtschreibkorrektur und Template-Unterstützung - Golem.de"", ""http://www.golem.de/news/chrome-26-beta-verbesserte-rechtschreibkorrektur-und-template-unterstuetzung-1302-97855.html""]","[""CodeKata: Code Kata"", ""http://codekata.pragprog.com/2007/01/code_kata_backg.html#more""]","[""CoffeeScript Cookbook » Home"", ""http://coffeescriptcookbook.com/""]","[""CoffeeScript Cookbook » Testing Every Element"", ""http://coffeescriptcookbook.com/chapters/arrays/testing-every-element""]","[""CoffeeScript Love: Testing CoffeeScript in Rails"", ""http://www.coffeescriptlove.com/2012/03/testing-coffeescript-in-rails.html?utm_source=rubyweekly&utm_medium=email""]","[""Color Output on Bash Scripts | Linux Tidbits"", ""http://linuxtidbits.wordpress.com/2008/08/11/output-color-on-bash-scripts/""]","[nil, ""http://people.apache.org/foaf/foafamatic.html""]","[nil, ""https://blogs.apache.org/couchdb/""]","[""create node.js web-services in one line - — blog.nodejitsu.com"", ""https://blog.nodejitsu.com/create-nodejs-web-services-in-one-line""]","[""CSS Architecture | Appfolio Engineering"", ""http://engineering.appfolio.com/2012/11/16/css-architecture/""]","[""CSS Button Generator - Imageless css buttons simplified"", ""http://www.cssbuttongenerator.com/""]","[""Cuba"", ""http://cuba.is/""]","[""DailyJS: Backbone.js Tutorial: Build Environment"", ""http://dailyjs.com/2012/11/29/backbone-tutorial-1/""]","[nil, ""http://ci.couchdb.org:8888/""]","[""DataFart"", ""http://datafart.com/""]","[""DataMapper - Documentation"", ""http://datamapper.org/docs/""]","[""Deploying a Rails app on Nginx/Puma with Capistrano | Tommy Chheng : Shortest Path Programming"", ""http://tommy.chheng.com/2013/01/23/deploying-a-rails-app-on-nginxpuma-with-capistrano/?utm_source=rubyweekly&utm_medium=email""]","[""Designing Better JavaScript APIs | Smashing Coding"", ""http://coding.smashingmagazine.com/2012/10/09/designing-javascript-apis-usability/?utm_source=javascriptweekly&utm_medium=email""]","[""DevDocs/DOM Events/fullscreenchange"", ""http://devdocs.io/dom_events/fullscreenchange""]","[""Developing Backbone.js Applications -"", ""http://addyosmani.github.com/backbone-fundamentals/""]","[""DOM Enlightenment - Exploring the relationship between JavaScript and the modern HTML DOM"", ""http://domenlightenment.com/""]","[""draft-ietf-httpbis-http2-02 - Hypertext Transfer Protocol version 2.0"", ""http://tools.ietf.org/html/draft-ietf-httpbis-http2-02""]","[""Einstein, Albert. 1920. Relativity: The Special and General Theory"", ""http://www.bartleby.com/173/""]","[""Elastic tire demo"", ""http://www.slideshare.net/greeneggs614/elastic-tire-demo""]","[""ElasticSearch with Tire"", ""http://www.slideshare.net/abookyun/elasticsearch-with-tire""]","[nil, ""https://www.eff.org/""]","[""Eloquent JavaScript: A Modern Introduction to Programming"", ""http://eloquentjavascript.net/""]","[""Ember.js - About"", ""http://emberjs.com/""]","[""erlang-bookmarks/ErlangBookmarks.md at master · 0xAX/erlang-bookmarks"", ""https://github.com/0xAX/erlang-bookmarks/blob/master/ErlangBookmarks.md""]","[""erlang-bookmarks/ErlangBookmarks.md at master · 0xAX/erlang-bookmarks"", ""https://github.com/0xAX/erlang-bookmarks/blob/master/ErlangBookmarks.md""]","[nil, ""http://www.petekeen.net/essential-tools-for-starting-a-rails-app-in-2013""]","[""Evan Hahn"", ""http://evanhahn.com/""]","[nil, ""https://speakerdeck.com/bartoszopka/everything-you-never-wanted-to-know-about-javascript-numbers""]","[nil, ""https://speakerdeck.com/bartoszopka/everything-you-never-wanted-to-know-about-javascript-numbers""]","[nil, ""https://speakerdeck.com/bartoszopka/everything-you-never-wanted-to-know-about-javascript-numbers""]","[""Faster Websites: Crash Course on Web Performance - igvita.com"", ""http://www.igvita.com/2013/01/15/faster-websites-crash-course-on-web-performance/""]","[nil, ""http://travis-ci.org/rspec/rspec-expectations""]","[""File: SASS_REFERENCE"", ""http://sass-lang.com/docs/yardoc/file.SASS_REFERENCE.html""]","[""Getting Started With Express Checkout | X.commerce"", ""https://www.x.com/developers/paypal/documentation-tools/express-checkout/integration-guide/ECGettingStarted""]","[nil, ""http://gavinmiller.io/categories/activerecord/""]","[""GIN – Just A Kind Of Index › Cybertec - The PostgreSQL Database Company"", ""http://www.cybertec.at/gin-just-an-index-type/""]","[""GitHub does dotfiles - dotfiles.github.com"", ""http://dotfiles.github.com/""]","[""good coders code, great reuse"", ""http://www.catonmat.net/""]","[""Gutmann method - Wikipedia, the free encyclopedia"", ""http://en.wikipedia.org/wiki/Gutmann_method""]","[""Harmony of Dreams Come True | Brendan Eich"", ""https://brendaneich.com/2012/10/harmony-of-dreams-come-true/?utm_source=javascriptweekly&utm_medium=email""]","[""Headius: Finding Leaks in Ruby Apps with Eclipse Memory Analyzer"", ""http://blog.headius.com/2010/07/finding-leaks-in-ruby-apps-with-eclipse.html""]","[""Hello Backbone.js Tutorial"", ""http://arturadib.com/hello-backbonejs/""]","[""High Performance Networking in Google Chrome - igvita.com"", ""http://www.igvita.com/posa/high-performance-networking-in-google-chrome/""]","[""Home page of Evan Miller"", ""http://www.evanmiller.org/""]","[""How to Create One-Time Payments Using Express Checkout | X.commerce"", ""https://www.x.com/developers/paypal/documentation-tools/express-checkout/how-to/ht_ec-singleItemPayment-curl-etc""]","[""How to make Chrome understand the SASS/SCSS in your rails app | fonicmonkey"", ""http://fonicmonkey.net/2013/03/25/native-sass-scss-source-map-support-in-chrome-and-rails/?utm_source=rubyweekly&utm_medium=email""]","[""How to play Zopfli with Nginx - Google Drive"", ""https://docs.google.com/document/d/1kpfGrYda1BNhWUx-cGfc6Sv3dFaw8DgKnRIE8yHpqIY/edit""]","[nil, ""http://www.rubymotion.com/""]","[""How to secure an Ubuntu 12.04 LTS server - Part 1 The Basics | How To | The Fan Club | dynamic design solutions"", ""http://www.thefanclub.co.za/how-to/how-secure-ubuntu-1204-lts-server-part-1-basics""]","[""How to send email from the Linux command line - Simple Help"", ""http://www.simplehelp.net/2008/12/01/how-to-send-email-from-the-linux-command-line/""]","[""How to take Automatic SQL Database Backup using pgAgent | PostgreSQL"", ""http://technobytz.com/automatic-sql-database-backup-postgres.html""]","[""HTML5 Pyramid"", ""http://helgri.github.com/HTML5-Pyramid/""]","[""HTML_CodeSniffer"", ""http://squizlabs.github.com/HTML_CodeSniffer/?utm_source=html5weekly&utm_medium=email""]","[""igrigorik/em-synchrony"", ""https://github.com/igrigorik/em-synchrony""]","[""7th March"", ""http://mwholt.blogspot.com/2013/03/install-nginxphpmysql-on-os-x-mountain.html""]","[""Interactive Smooth CoffeeScript"", ""http://autotelicum.github.com/Smooth-CoffeeScript/interactive/interactive-coffeescript.html""]","[""Interface testing: Creating a Diablo 3 bot using jRuby and Sikuli UI - Rodrigo Franco - Ruby Conference 2012"", ""http://www.confreaks.com/videos/1309-rubyconf2012-interface-testing-creating-a-diablo-3-bot-using-jruby-and-sikuli-ui""]","[""Internet Census 2012"", ""http://internetcensus2012.bitbucket.org/paper.html""]","[""Internet protocol suite - Wikipedia, the free encyclopedia"", ""http://en.wikipedia.org/wiki/Internet_protocol_suite""]","[""Introducing the Rails API Project - Literate Programming"", ""http://blog.steveklabnik.com/posts/2012-11-22-introducing-the-rails-api-project?utm_source=hackernewsletter&utm_medium=email""]","[""Jade - Template Engine"", ""http://jade-lang.com/""]","[""jamiew/heroku-static-site"", ""https://github.com/jamiew/heroku-static-site""]","[""javascript - How do I get started with Node.js - Stack Overflow"", ""http://stackoverflow.com/questions/2353818/how-do-i-get-started-with-node-js""]","[""jedtoolkit"", ""https://github.com/jedtoolkit""]","[""jimweirich/rspec-given"", ""https://github.com/jimweirich/rspec-given?utm_source=rubyweekly&utm_medium=email""]","[""JSConf EU: A novel, efficient approach to JavaScript loading - Google Drive"", ""https://docs.google.com/presentation/d/1Q44eWLI2qvZnmCF5oD2jCw-FFql9dYg36FE5CpbMlw4/preview#slide=id.p19""]","[""JW Player: Overview | LongTail Video | Home of the JW Player"", ""http://www.longtailvideo.com/players/""]","[""Knockout : Home"", ""http://knockoutjs.com/""]","[""KnockoutJS Validations Screencast - Art Of Programming"", ""http://approache.com/blog/knockoutjs-validations-video/""]","[""Labrador"", ""http://chrismccord.github.com/labrador/?utm_source=rubyweekly&utm_medium=email""]","[""LaTeX Editor ShareLaTeX - ShareLaTeX.com"", ""https://www.sharelatex.com/""]","[""Learning JavaScript Design Patterns"", ""http://addyosmani.com/resources/essentialjsdesignpatterns/book/""]","[""Let's Write a Gem: Part 2 - Rake Routes"", ""http://rakeroutes.com/blog/lets-write-a-gem-part-two/""]","[""Linux: HowTo Encrypt And Decrypt Files With A Password"", ""http://www.cyberciti.biz/tips/linux-how-to-encrypt-and-decrypt-files-with-a-password.html""]","[""List of Chromium Command Line Switches « Peter Beverloo"", ""http://peter.sh/experiments/chromium-command-line-switches/?utm_source=html5weekly&utm_medium=email""]","[""M101_MongoDB/ruby at master · samnang/M101_MongoDB · GitHub"", ""https://github.com/samnang/M101_MongoDB/tree/master/ruby""]","[""Man-Computer Symbiosis"", ""http://groups.csail.mit.edu/medg/people/psz/Licklider.html""]","[""mary rose cook"", ""http://maryrosecook.com/""]","[""Memory footprint of objects in Ruby 1.8, EE, 1.9, and OCaml"", ""http://web.archive.org/web/20100918225809/http://eigenclass.org/R2/writings/object-size-ruby-ocaml""]","[""Metaprogramming in Ruby: It’s All About the Self « Katz Got Your Tongue?"", ""http://yehudakatz.com/2009/11/15/metaprogramming-in-ruby-its-all-about-the-self/""]","[""Michal Budzynski: JavaScript: The less known parts. Bitwise Operators."", ""http://michalbe.blogspot.de/2013/03/javascript-less-known-parts-bitwise.html""]","[""Modern Garbage Collectors under the Hood - General Programming - Articles - Articles - GameDev.net"", ""http://www.gamedev.net/page/resources/_/technical/general-programming/modern-garbage-collectors-under-the-hood-r2995?utm_source=statuscode&utm_medium=email""]","[""MongoDB Manual Contents — MongoDB Manual"", ""http://docs.mongodb.org/manual/contents/""]","[""MongoDB"", ""http://www.mongodb.org/""]","[""Mongoid: Home"", ""http://mongoid.org/en/mongoid/index.html""]","[""mozilla-b2g/gaia · GitHub"", ""https://github.com/mozilla-b2g/gaia""]","[""Multicast in Ruby: Building a Peer-to-Peer Chat System :: tx.pignata.com"", ""http://tx.pignata.com/2012/11/multicast-in-ruby-building-a-peer-to-peer-chat-system.html""]","[""My First 5 Minutes On A Server; Or, Essential Security for Linux Servers | Bryan Kennedy"", ""http://plusbryan.com/my-first-5-minutes-on-a-server-or-essential-security-for-linux-servers""]","[""My first SSL Web Server - Google Drive"", ""https://docs.google.com/document/d/1ej91CoXwtq6cuPoWQa1X6bVXsbkKoLZhY-37X3k5JRg/edit""]","[""MYO - The Gesture Control Armband"", ""https://getmyo.com/""]","[nil, ""http://www.sitepoint.com/author/jthacker/""]","[""ndbroadbent/turbo-sprockets-rails3"", ""https://github.com/ndbroadbent/turbo-sprockets-rails3?utm_source=rubyweekly&utm_medium=email""]","[""NVD3.js :: re-usable charts for d3.js"", ""http://nvd3.org/""]","[""Object.hasOwnProperty.com || Find My Property"", ""http://object.hasownproperty.com/""]","[""Olark | Live chat with your customers for sales and support"", ""http://www.olark.com/""]","[""One Div Zero: A Brief, Incomplete, and Mostly Wrong History of Programming Languages"", ""http://james-iry.blogspot.com.br/2009/05/brief-incomplete-and-mostly-wrong.html""]","[""Opal: Ruby to Javascript compiler"", ""http://opalrb.org/?utm_source=hackernewsletter&utm_medium=email""]","[""Our First Node.js App: Backbone on the Client and Server - Airbnb Engineering"", ""http://nerds.airbnb.com/weve-launched-our-first-nodejs-app-to-product?utm_source=javascriptweekly&utm_medium=email""]","[""Parleys.com - Faster Websites: Crash Course on Frontend Performance (Part 1/2)"", ""http://parleys.com/#st=5&id=3648&sl=8""]","[""Pass Command Line Arguments To a Bash Alias Command"", ""http://www.cyberciti.biz/faq/linux-unix-pass-argument-to-alias-command/""]","[nil, ""http://www.paterva.com/web6/""]","[""Performance Calendar » 2012"", ""http://calendar.perfplanet.com/2012/""]","[""Performance Calendar » Moving beyond window.onload()"", ""http://calendar.perfplanet.com/2012/moving-beyond-window-onload/""]","[""Phusion Passenger users guide, Nginx version"", ""http://www.modrails.com/documentation/Users%20guide%20Nginx.html#rubygems_generic_install""]","[""Powerful Command Line Tools For Developers | Smashing Coding"", ""http://coding.smashingmagazine.com/2012/10/29/powerful-command-line-tools-developers/?utm_source=statuscode&utm_medium=email""]","[""Probability | Khan Academy"", ""http://www.khanacademy.org/math/probability""]","[""Pub: Getting Started | Dart: Structured web apps"", ""http://www.dartlang.org/docs/pub-package-manager/""]","[""Punch Reloaded | LakTEK"", ""http://laktek.com/2012/09/18/punch-reloaded/?utm_source=rubyweekly&utm_medium=email""]","[""Ratgeber: Verschlüsselung unter OS X 10.8 Mountain Lion - Interne Laufwerke mit Filevault verschlüsseln - Mac-OS X - MACWELT"", ""http://www.macwelt.de/ratgeber/Ratgeber-Verschluesselung-unter-OS-X-10-8-Mountain-Lion-Interne-Laufwerke-mit-Filevault-verschluesseln-6703357.html""]","[""REST-Webservices mit Node.js, Teil 1: Connect als Fundament | heise Developer"", ""http://www.heise.de/developer/artikel/REST-Webservices-mit-Node-js-Teil-1-Connect-als-Fundament-1802258.html""]","[""REST-Webservices mit Node.js, Teil 2: Express als Anwendungsserver | heise Developer"", ""http://www.heise.de/developer/artikel/REST-Webservices-mit-Node-js-Teil-2-Express-als-Anwendungsserver-1803626.html""]","[""Ruby and Rails Special Topics - Jumpstart Lab Curriculum"", ""http://tutorials.jumpstartlab.com/topics/""]","[""Ruby on Rails Screencasts - RailsCasts"", ""http://railscasts.com/episodes?utf8=%E2%9C%93&search=paypal""]","[""Ruby on Rails Tutorial: Learn Rails by Example book and screencasts by Michael Hartl"", ""http://ruby.railstutorial.org/ruby-on-rails-tutorial-book?version=3.2""]","[""Ruby Programming/Syntax/Classes - Wikibooks, open books for an open world"", ""https://en.wikibooks.org/wiki/Ruby_Programming/Syntax/Classes#Mixing_in_Modules""]","[nil, ""https://gist.github.com/mattdipasquale/571405""]","[""Ruby Trick Shots: A Video of 24 Ruby Tips and Tricks"", ""http://rubyreloaded.com/trickshots/""]","[""Ruby Under a Microscope - Pat Shaughnessy"", ""http://patshaughnessy.net/ruby-under-a-microscope""]","[""RubyJS | Home"", ""http://rubyjs.org/""]","[""Comment on Design Patterns in Ruby: Observer, Singleton"", ""http://rubysource.com/design-patterns-in-ruby-observer-singleton/#comments""]","[""View all posts in Outside Ruby"", ""http://rubysource.com/category/outside-ruby/""]","[nil, ""http://api.rubyonrails.org/classes/ActionController/Caching/Pages.html""]","[""RubySource | Simple Background Jobs with Sucker PunchRubySource"", ""http://rubysource.com/simple-background-jobs-with-sucker-punch/?utm_medium=email&utm_campaign=Rubysource%2020120528&utm_content=Rubysource%2020120528+CID_93079a7cbc8a9c4b538c87e6d0983d28&utm_source=Newsletter&utm_term=More""]","[""Comment on State Machines in Ruby"", ""http://rubysource.com/state-machines-in-ruby/#comments""]","[""RubySource | Working with RefineryRubySource"", ""http://rubysource.com/working-with-refinery/?utm_medium=email&utm_campaign=Rubysource+Newsletter+20121002&utm_content=Rubysource+Newsletter+20121002+CID_4ef1fdb2d08c027e3dff17884118bcc0&utm_source=Newsletter&utm_term=CMS%20Spotlight%20Refinery""]","[""Running Bash Commands From Ruby | Ruby For System Administrators"", ""http://ruby.elevatedintel.com/blog/running-bash-commands-from-ruby/?utm_source=rubyweekly&utm_medium=email""]","[""Sam Dutton"", ""http://www.samdutton.com/""]","[""Secrets of Awesome JavaScript API Design - Web Standards Sherpa"", ""http://webstandardssherpa.com/reviews/secrets-of-awesome-javascript-api-design/""]","[""Self-publish your in-progress book for great royalties on Leanpub"", ""https://leanpub.com/""]","[""Setting up a PHP development environment with Nginx on Ubuntu 11.04"", ""http://www.zalas.eu/setting-up-a-php-development-environment-with-nginx-on-ubuntu-1104""]","[nil, ""http://conqueringthecommandline.com/book/frontmatter#foreword""]","[""SPDY and the Road Towards HTTP 2.0 - YouTube"", ""http://www.youtube.com/watch?v=SWQdSEferz8""]","[""SSH/OpenSSH/Keys - Community Ubuntu Documentation"", ""https://help.ubuntu.com/community/SSH/OpenSSH/Keys""]","[""stps - create and share awesome step by step guides"", ""http://stps.co/""]","[""Streak - CRM in your Inbox"", ""http://www.streak.com/""]","[""Stuart Memo"", ""http://stuartmemo.com/""]","[""Sublimewebinspector"", ""http://sokolovstas.github.com/SublimeWebInspector/""]","[""Subtle Patterns | Free textures for your next web project"", ""http://subtlepatterns.com/""]","[""Telefon-Hacking: Das bewegte Leben des Captain Crunch - Golem.de"", ""http://www.golem.de/news/telefon-hacking-das-bewegte-leben-des-captain-crunch-1210-94815.html""]","[""Ten Things You Didn't Know You Could Do by James Edward Gray II - YouTube"", ""http://www.youtube.com/watch?v=aBgnlBoIkVM""]","[nil, ""http://theory.so/pg/2013/10/23/testing-nested-hstore/""]","[""TexPaste - Pastebin for Mathematicians using LaTeX"", ""http://www.texpaste.com/""]","[""The MongoDB NoSQL Database Blog, MongoDB Text Search: Experimental Feature in MongoDB 2.4"", ""http://blog.mongodb.org/post/40513621310/mongodb-text-search-experimental-feature-in-mongodb""]","[""The Myers & Briggs Foundation"", ""http://myersbriggs.org/""]","[""The Twelve-Factor App"", ""http://12factor.net/""]","[""The Ultimate Guide to Learning Ruby for Free: Resources, Tools and Tips - Lesson in Programming"", ""http://lurnq.com/lesson/The-Ultimate-Guide-to-Learning-Ruby-for-Free-Resources-Tools-and-Tips/""]","[""Thomas Davis"", ""http://thomasdavis.github.com/2011/02/01/backbone-introduction.html""]","[""TodoMVC"", ""http://todomvc.com/""]","[""Try mruby TodayRubySource"", ""http://rubysource.com/try-mruby-today/?utm_medium=email&utm_campaign=RubySource+Newsletter+20121030&utm_content=RubySource+Newsletter+20121030+Version+A+CID_279679335def9cd340cb088738729cd8&utm_source=Newsletter&utm_term=MRuby%20Small%20Implementation%20Big%20Results""]","[nil, ""http://lists.nyphp.org/pipermail/talk/2004-April/009170.html""]","[""Tuts+ Premium Course: Perfect Workflow in Sublime Text 2"", ""https://tutsplus.com/course/improve-workflow-in-sublime-text-2/""]","[""UFW - Community Ubuntu Documentation"", ""https://help.ubuntu.com/community/UFW""]","[""Ultimate CSS Gradient Generator - ColorZilla.com"", ""http://www.colorzilla.com/gradient-editor/""]","[""Understanding C by learning assembly - Blog - Hacker School"", ""https://www.hackerschool.com/blog/7-understanding-c-by-learning-assembly?utm_source=statuscode&utm_medium=email""]","[""Understanding method lookup in Ruby 2.0 - Tech.Pro"", ""http://tech.pro/tutorial/1149/understanding-method-lookup-in-ruby-20?utm_source=rubyweekly&utm_medium=email""]","[""Unobtrusive JavaScript"", ""http://blog.socialcast.com/unobtrusive-javascript-2/?utm_source=javascriptweekly&utm_medium=email""]","[nil, ""https://people.apache.org/keys/committer/andywenk.asc""]","[""Upton: A Web Scraping Framework - ProPublica"", ""http://www.propublica.org/nerds/item/upton-a-web-scraping-framework?utm_source=rubyweekly&utm_medium=email""]","[""URI.js - URLs in Javascript"", ""http://medialize.github.com/URI.js/""]","[""UseResponse | Customer Feedback Software & Support System"", ""http://www.useresponse.com/""]","[""Using Pandoc to Build Your ePub eBook - Story Hack"", ""http://www.storyhack.com/2012/07/10/using-pandoc-to-build-your-epub-ebook/""]","[""Using Ruby's gsub with a block - (think)"", ""http://batsov.com/articles/2013/08/30/using-gsub-with-a-block/?utm_source=rubyweekly&utm_medium=email""]","[""visionmedia/jade · GitHub"", ""https://github.com/visionmedia/jade#a6-2""]","[""Wait, DevTools could do THAT?"", ""http://www.igvita.com/slides/2012/devtools-tips-and-tricks/?utm_source=html5weekly&utm_medium=email#1""]","[""Watch movies online for free movie download at movie2k.to"", ""http://www.movie2k.to/index.php?lang=us""]","[""Why Google Went Offline Today and a Bit about How the Internet Works - CloudFlare blog"", ""http://blog.cloudflare.com/why-google-went-offline-today-and-a-bit-about?utm_source=hackernewsletter&utm_medium=email""]","[""Working with Local Applications in VisualVM — Java.net"", ""http://visualvm.java.net/applications_local.html""]","[""www.ietf.org/rfc/rfc2616.txt"", ""http://www.ietf.org/rfc/rfc2616.txt""]","[""www.ietf.org/rfc/rfc791.txt"", ""http://www.ietf.org/rfc/rfc791.txt""]","[""www.ietf.org/rfc/rfc792.txt"", ""http://www.ietf.org/rfc/rfc792.txt""]","[""www.ietf.org/rfc/rfc793.txt"", ""http://www.ietf.org/rfc/rfc793.txt""]","[""Yeti Media"", ""http://yetimedia.tumblr.com/post/33320732456/moving-forward-with-the-rails-asset-pipeline?utm_source=rubyweekly&utm_medium=email""]","[""Łukasz Lipiński Portfolio"", ""http://www.uzza.pl/home.html""]"
|
@@ -0,0 +1,2 @@
|
|
1
|
+
title,link
|
2
|
+
"[""#279 Understanding the Asset Pipeline - RailsCasts"", ""http://railscasts.com/episodes/279-understanding-the-asset-pipeline""]","[""$ cheat rvm"", ""http://cheat.errtheblog.com/s/rvm/""]","[""14 Customer Feedback Tools for Small Business | Practical eCommerce"", ""http://www.practicalecommerce.com/articles/2827-14-Customer-Feedback-Tools-for-Small-Business""]","[""30 Handy Bash Shell Aliases For Linux / Unix / Mac OS X"", ""http://www.cyberciti.biz/tips/bash-aliases-mac-centos-linux-unix.html""]","[""30 Shredders In One Solo Lesson"", ""http://www.guitarmasterclass.net/ls/30-Shredders-In-One-Solo/""]","[""30 Shredders In One Solo! - YouTube"", ""https://www.youtube.com/watch?NR=1&v=iaAkWy55V3A""]","[""500 - Internal Server Error | Flickr - Photo Sharing!"", ""http://www.flickr.com/photos/girliemac/6509400855/in/set-72157628409467125/""]","[""7 Ways to Decompose Fat ActiveRecord Models - Code Climate Blog"", ""http://blog.codeclimate.com/blog/2012/10/17/7-ways-to-decompose-fat-activerecord-models/""]","[""A programmer’s guide to JavaScript by Dr. Axel Rauschmayer"", ""http://jsguide.org/""]","[nil, ""http://www.csee.umbc.edu/about/""]","[""Acorn: yet another JavaScript parser"", ""http://marijnhaverbeke.nl/blog/acorn.html""]","[""acorn/acorn.js at master · marijnh/acorn · GitHub"", ""https://github.com/marijnh/acorn/blob/master/acorn.js""]","[""afterRender() callback in Backbone.js Views"", ""http://fahad19.tumblr.com/post/28158699664/afterrender-callback-in-backbone-js-views""]","[""All you need to know about CSS Transitions | Alex MacCaw"", ""http://blog.alexmaccaw.com/css-transitions?utm_source=html5weekly&utm_medium=email""]","[nil, ""http://rethinkdb.com/docs/install""]","[""AngularJS: Tutorial"", ""http://docs.angularjs.org/tutorial/""]","[nil, ""https://id.apache.org/""]","[nil, ""https://translate.apache.org/de/CouchDB/""]","[nil, ""https://blogs.apache.org/roller-ui/login.rol""]","[nil, ""http://wilderness.apache.org/archives/""]","[""aziz/PlainTasks · GitHub"", ""https://github.com/aziz/PlainTasks""]","[""Backbone.js Tutorials"", ""http://backbonetutorials.com/""]","[""Backbone.js"", ""http://backbonejs.org/""]","[""Backbone.js: Getting The Model For A Clicked Element | ThoughtStream.new :derick_bailey"", ""http://lostechies.com/derickbailey/2011/10/11/backbone-js-getting-the-model-for-a-clicked-element/""]","[""backbonetutorials/examples/modular-backbone at gh-pages · thomasdavis/backbonetutorials"", ""https://github.com/thomasdavis/backbonetutorials/tree/gh-pages/examples/modular-backbone""]","[""BASH Programming - Introduction HOW-TO"", ""http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO.html""]","[""Beginning Ember.js on Rails: Part 1 :: Cerebris"", ""http://www.cerebris.com/blog/2012/01/24/beginning-ember-js-on-rails-part-1/""]","[""Beginning Ember.js on Rails: Part 2 :: Cerebris"", ""http://www.cerebris.com/blog/2012/01/26/beginning-ember-js-on-rails-part-2/""]","[""Beginning Ember.js on Rails: Part 3 :: Cerebris"", ""http://www.cerebris.com/blog/2012/01/31/beginning-ember-js-on-rails-part-3/""]","[""Beginning Ember.js on Rails: Part 3 :: Cerebris"", ""http://www.cerebris.com/blog/2012/01/31/beginning-ember-js-on-rails-part-3/""]","[""BELBIN®: The home of Belbin Team Roles"", ""http://www.belbin.com/""]","[""bestiejs/lodash"", ""https://github.com/bestiejs/lodash""]","[""Border-radius: create rounded corners with CSS! - CSS3 . Info"", ""http://www.css3.info/preview/rounded-border/""]","[""Bottle: Python Web Framework — Bottle 0.12-dev documentation"", ""http://bottlepy.org/docs/dev/""]","[""BSON - Binary JSON"", ""http://bsonspec.org/#/specification""]","[""Bundesgesetzblatt online"", ""http://www.bgbl.de/Xaver/start.xav?startbk=Bundesanzeiger_BGBl""]","[""Camping, a Microframework"", ""http://camping.io/""]","[""Capistrano recipes: deploy"", ""http://capitate.rubyforge.org/recipes/deploy.html""]","[""Check_MK - The Official Documentation"", ""http://mathias-kettner.de/checkmk.html""]","[""Chrome 26 Beta: Verbesserte Rechtschreibkorrektur und Template-Unterstützung - Golem.de"", ""http://www.golem.de/news/chrome-26-beta-verbesserte-rechtschreibkorrektur-und-template-unterstuetzung-1302-97855.html""]","[""CodeKata: Code Kata"", ""http://codekata.pragprog.com/2007/01/code_kata_backg.html#more""]","[""CoffeeScript Cookbook » Home"", ""http://coffeescriptcookbook.com/""]","[""CoffeeScript Cookbook » Testing Every Element"", ""http://coffeescriptcookbook.com/chapters/arrays/testing-every-element""]","[""CoffeeScript Love: Testing CoffeeScript in Rails"", ""http://www.coffeescriptlove.com/2012/03/testing-coffeescript-in-rails.html?utm_source=rubyweekly&utm_medium=email""]","[""Color Output on Bash Scripts | Linux Tidbits"", ""http://linuxtidbits.wordpress.com/2008/08/11/output-color-on-bash-scripts/""]","[nil, ""http://people.apache.org/foaf/foafamatic.html""]","[nil, ""https://blogs.apache.org/couchdb/""]","[""create node.js web-services in one line - — blog.nodejitsu.com"", ""https://blog.nodejitsu.com/create-nodejs-web-services-in-one-line""]","[""CSS Architecture | Appfolio Engineering"", ""http://engineering.appfolio.com/2012/11/16/css-architecture/""]","[""CSS Button Generator - Imageless css buttons simplified"", ""http://www.cssbuttongenerator.com/""]","[""Cuba"", ""http://cuba.is/""]","[""DailyJS: Backbone.js Tutorial: Build Environment"", ""http://dailyjs.com/2012/11/29/backbone-tutorial-1/""]","[nil, ""http://ci.couchdb.org:8888/""]","[""DataFart"", ""http://datafart.com/""]","[""DataMapper - Documentation"", ""http://datamapper.org/docs/""]","[""Deploying a Rails app on Nginx/Puma with Capistrano | Tommy Chheng : Shortest Path Programming"", ""http://tommy.chheng.com/2013/01/23/deploying-a-rails-app-on-nginxpuma-with-capistrano/?utm_source=rubyweekly&utm_medium=email""]","[""Designing Better JavaScript APIs | Smashing Coding"", ""http://coding.smashingmagazine.com/2012/10/09/designing-javascript-apis-usability/?utm_source=javascriptweekly&utm_medium=email""]","[""DevDocs/DOM Events/fullscreenchange"", ""http://devdocs.io/dom_events/fullscreenchange""]","[""Developing Backbone.js Applications -"", ""http://addyosmani.github.com/backbone-fundamentals/""]","[""DOM Enlightenment - Exploring the relationship between JavaScript and the modern HTML DOM"", ""http://domenlightenment.com/""]","[""draft-ietf-httpbis-http2-02 - Hypertext Transfer Protocol version 2.0"", ""http://tools.ietf.org/html/draft-ietf-httpbis-http2-02""]","[""Einstein, Albert. 1920. Relativity: The Special and General Theory"", ""http://www.bartleby.com/173/""]","[""Elastic tire demo"", ""http://www.slideshare.net/greeneggs614/elastic-tire-demo""]","[""ElasticSearch with Tire"", ""http://www.slideshare.net/abookyun/elasticsearch-with-tire""]","[nil, ""https://www.eff.org/""]","[""Eloquent JavaScript: A Modern Introduction to Programming"", ""http://eloquentjavascript.net/""]","[""Ember.js - About"", ""http://emberjs.com/""]","[""erlang-bookmarks/ErlangBookmarks.md at master · 0xAX/erlang-bookmarks"", ""https://github.com/0xAX/erlang-bookmarks/blob/master/ErlangBookmarks.md""]","[""erlang-bookmarks/ErlangBookmarks.md at master · 0xAX/erlang-bookmarks"", ""https://github.com/0xAX/erlang-bookmarks/blob/master/ErlangBookmarks.md""]","[nil, ""http://www.petekeen.net/essential-tools-for-starting-a-rails-app-in-2013""]","[""Evan Hahn"", ""http://evanhahn.com/""]","[nil, ""https://speakerdeck.com/bartoszopka/everything-you-never-wanted-to-know-about-javascript-numbers""]","[nil, ""https://speakerdeck.com/bartoszopka/everything-you-never-wanted-to-know-about-javascript-numbers""]","[nil, ""https://speakerdeck.com/bartoszopka/everything-you-never-wanted-to-know-about-javascript-numbers""]","[""Faster Websites: Crash Course on Web Performance - igvita.com"", ""http://www.igvita.com/2013/01/15/faster-websites-crash-course-on-web-performance/""]","[nil, ""http://travis-ci.org/rspec/rspec-expectations""]","[""File: SASS_REFERENCE"", ""http://sass-lang.com/docs/yardoc/file.SASS_REFERENCE.html""]","[""Getting Started With Express Checkout | X.commerce"", ""https://www.x.com/developers/paypal/documentation-tools/express-checkout/integration-guide/ECGettingStarted""]","[nil, ""http://gavinmiller.io/categories/activerecord/""]","[""GIN – Just A Kind Of Index › Cybertec - The PostgreSQL Database Company"", ""http://www.cybertec.at/gin-just-an-index-type/""]","[""GitHub does dotfiles - dotfiles.github.com"", ""http://dotfiles.github.com/""]","[""good coders code, great reuse"", ""http://www.catonmat.net/""]","[""Gutmann method - Wikipedia, the free encyclopedia"", ""http://en.wikipedia.org/wiki/Gutmann_method""]","[""Harmony of Dreams Come True | Brendan Eich"", ""https://brendaneich.com/2012/10/harmony-of-dreams-come-true/?utm_source=javascriptweekly&utm_medium=email""]","[""Headius: Finding Leaks in Ruby Apps with Eclipse Memory Analyzer"", ""http://blog.headius.com/2010/07/finding-leaks-in-ruby-apps-with-eclipse.html""]","[""Hello Backbone.js Tutorial"", ""http://arturadib.com/hello-backbonejs/""]","[""High Performance Networking in Google Chrome - igvita.com"", ""http://www.igvita.com/posa/high-performance-networking-in-google-chrome/""]","[""Home page of Evan Miller"", ""http://www.evanmiller.org/""]","[""How to Create One-Time Payments Using Express Checkout | X.commerce"", ""https://www.x.com/developers/paypal/documentation-tools/express-checkout/how-to/ht_ec-singleItemPayment-curl-etc""]","[""How to make Chrome understand the SASS/SCSS in your rails app | fonicmonkey"", ""http://fonicmonkey.net/2013/03/25/native-sass-scss-source-map-support-in-chrome-and-rails/?utm_source=rubyweekly&utm_medium=email""]","[""How to play Zopfli with Nginx - Google Drive"", ""https://docs.google.com/document/d/1kpfGrYda1BNhWUx-cGfc6Sv3dFaw8DgKnRIE8yHpqIY/edit""]","[nil, ""http://www.rubymotion.com/""]","[""How to secure an Ubuntu 12.04 LTS server - Part 1 The Basics | How To | The Fan Club | dynamic design solutions"", ""http://www.thefanclub.co.za/how-to/how-secure-ubuntu-1204-lts-server-part-1-basics""]","[""How to send email from the Linux command line - Simple Help"", ""http://www.simplehelp.net/2008/12/01/how-to-send-email-from-the-linux-command-line/""]","[""How to take Automatic SQL Database Backup using pgAgent | PostgreSQL"", ""http://technobytz.com/automatic-sql-database-backup-postgres.html""]","[""HTML5 Pyramid"", ""http://helgri.github.com/HTML5-Pyramid/""]","[""HTML_CodeSniffer"", ""http://squizlabs.github.com/HTML_CodeSniffer/?utm_source=html5weekly&utm_medium=email""]","[""igrigorik/em-synchrony"", ""https://github.com/igrigorik/em-synchrony""]","[""7th March"", ""http://mwholt.blogspot.com/2013/03/install-nginxphpmysql-on-os-x-mountain.html""]","[""Interactive Smooth CoffeeScript"", ""http://autotelicum.github.com/Smooth-CoffeeScript/interactive/interactive-coffeescript.html""]","[""Interface testing: Creating a Diablo 3 bot using jRuby and Sikuli UI - Rodrigo Franco - Ruby Conference 2012"", ""http://www.confreaks.com/videos/1309-rubyconf2012-interface-testing-creating-a-diablo-3-bot-using-jruby-and-sikuli-ui""]","[""Internet Census 2012"", ""http://internetcensus2012.bitbucket.org/paper.html""]","[""Internet protocol suite - Wikipedia, the free encyclopedia"", ""http://en.wikipedia.org/wiki/Internet_protocol_suite""]","[""Introducing the Rails API Project - Literate Programming"", ""http://blog.steveklabnik.com/posts/2012-11-22-introducing-the-rails-api-project?utm_source=hackernewsletter&utm_medium=email""]","[""Jade - Template Engine"", ""http://jade-lang.com/""]","[""jamiew/heroku-static-site"", ""https://github.com/jamiew/heroku-static-site""]","[""javascript - How do I get started with Node.js - Stack Overflow"", ""http://stackoverflow.com/questions/2353818/how-do-i-get-started-with-node-js""]","[""jedtoolkit"", ""https://github.com/jedtoolkit""]","[""jimweirich/rspec-given"", ""https://github.com/jimweirich/rspec-given?utm_source=rubyweekly&utm_medium=email""]","[""JSConf EU: A novel, efficient approach to JavaScript loading - Google Drive"", ""https://docs.google.com/presentation/d/1Q44eWLI2qvZnmCF5oD2jCw-FFql9dYg36FE5CpbMlw4/preview#slide=id.p19""]","[""JW Player: Overview | LongTail Video | Home of the JW Player"", ""http://www.longtailvideo.com/players/""]","[""Knockout : Home"", ""http://knockoutjs.com/""]","[""KnockoutJS Validations Screencast - Art Of Programming"", ""http://approache.com/blog/knockoutjs-validations-video/""]","[""Labrador"", ""http://chrismccord.github.com/labrador/?utm_source=rubyweekly&utm_medium=email""]","[""LaTeX Editor ShareLaTeX - ShareLaTeX.com"", ""https://www.sharelatex.com/""]","[""Learning JavaScript Design Patterns"", ""http://addyosmani.com/resources/essentialjsdesignpatterns/book/""]","[""Let's Write a Gem: Part 2 - Rake Routes"", ""http://rakeroutes.com/blog/lets-write-a-gem-part-two/""]","[""Linux: HowTo Encrypt And Decrypt Files With A Password"", ""http://www.cyberciti.biz/tips/linux-how-to-encrypt-and-decrypt-files-with-a-password.html""]","[""List of Chromium Command Line Switches « Peter Beverloo"", ""http://peter.sh/experiments/chromium-command-line-switches/?utm_source=html5weekly&utm_medium=email""]","[""M101_MongoDB/ruby at master · samnang/M101_MongoDB · GitHub"", ""https://github.com/samnang/M101_MongoDB/tree/master/ruby""]","[""Man-Computer Symbiosis"", ""http://groups.csail.mit.edu/medg/people/psz/Licklider.html""]","[""mary rose cook"", ""http://maryrosecook.com/""]","[""Memory footprint of objects in Ruby 1.8, EE, 1.9, and OCaml"", ""http://web.archive.org/web/20100918225809/http://eigenclass.org/R2/writings/object-size-ruby-ocaml""]","[""Metaprogramming in Ruby: It’s All About the Self « Katz Got Your Tongue?"", ""http://yehudakatz.com/2009/11/15/metaprogramming-in-ruby-its-all-about-the-self/""]","[""Michal Budzynski: JavaScript: The less known parts. Bitwise Operators."", ""http://michalbe.blogspot.de/2013/03/javascript-less-known-parts-bitwise.html""]","[""Modern Garbage Collectors under the Hood - General Programming - Articles - Articles - GameDev.net"", ""http://www.gamedev.net/page/resources/_/technical/general-programming/modern-garbage-collectors-under-the-hood-r2995?utm_source=statuscode&utm_medium=email""]","[""MongoDB Manual Contents — MongoDB Manual"", ""http://docs.mongodb.org/manual/contents/""]","[""MongoDB"", ""http://www.mongodb.org/""]","[""Mongoid: Home"", ""http://mongoid.org/en/mongoid/index.html""]","[""mozilla-b2g/gaia · GitHub"", ""https://github.com/mozilla-b2g/gaia""]","[""Multicast in Ruby: Building a Peer-to-Peer Chat System :: tx.pignata.com"", ""http://tx.pignata.com/2012/11/multicast-in-ruby-building-a-peer-to-peer-chat-system.html""]","[""My First 5 Minutes On A Server; Or, Essential Security for Linux Servers | Bryan Kennedy"", ""http://plusbryan.com/my-first-5-minutes-on-a-server-or-essential-security-for-linux-servers""]","[""My first SSL Web Server - Google Drive"", ""https://docs.google.com/document/d/1ej91CoXwtq6cuPoWQa1X6bVXsbkKoLZhY-37X3k5JRg/edit""]","[""MYO - The Gesture Control Armband"", ""https://getmyo.com/""]","[nil, ""http://www.sitepoint.com/author/jthacker/""]","[""ndbroadbent/turbo-sprockets-rails3"", ""https://github.com/ndbroadbent/turbo-sprockets-rails3?utm_source=rubyweekly&utm_medium=email""]","[""NVD3.js :: re-usable charts for d3.js"", ""http://nvd3.org/""]","[""Object.hasOwnProperty.com || Find My Property"", ""http://object.hasownproperty.com/""]","[""Olark | Live chat with your customers for sales and support"", ""http://www.olark.com/""]","[""One Div Zero: A Brief, Incomplete, and Mostly Wrong History of Programming Languages"", ""http://james-iry.blogspot.com.br/2009/05/brief-incomplete-and-mostly-wrong.html""]","[""Opal: Ruby to Javascript compiler"", ""http://opalrb.org/?utm_source=hackernewsletter&utm_medium=email""]","[""Our First Node.js App: Backbone on the Client and Server - Airbnb Engineering"", ""http://nerds.airbnb.com/weve-launched-our-first-nodejs-app-to-product?utm_source=javascriptweekly&utm_medium=email""]","[""Parleys.com - Faster Websites: Crash Course on Frontend Performance (Part 1/2)"", ""http://parleys.com/#st=5&id=3648&sl=8""]","[""Pass Command Line Arguments To a Bash Alias Command"", ""http://www.cyberciti.biz/faq/linux-unix-pass-argument-to-alias-command/""]","[nil, ""http://www.paterva.com/web6/""]","[""Performance Calendar » 2012"", ""http://calendar.perfplanet.com/2012/""]","[""Performance Calendar » Moving beyond window.onload()"", ""http://calendar.perfplanet.com/2012/moving-beyond-window-onload/""]","[""Phusion Passenger users guide, Nginx version"", ""http://www.modrails.com/documentation/Users%20guide%20Nginx.html#rubygems_generic_install""]","[""Powerful Command Line Tools For Developers | Smashing Coding"", ""http://coding.smashingmagazine.com/2012/10/29/powerful-command-line-tools-developers/?utm_source=statuscode&utm_medium=email""]","[""Probability | Khan Academy"", ""http://www.khanacademy.org/math/probability""]","[""Pub: Getting Started | Dart: Structured web apps"", ""http://www.dartlang.org/docs/pub-package-manager/""]","[""Punch Reloaded | LakTEK"", ""http://laktek.com/2012/09/18/punch-reloaded/?utm_source=rubyweekly&utm_medium=email""]","[""Ratgeber: Verschlüsselung unter OS X 10.8 Mountain Lion - Interne Laufwerke mit Filevault verschlüsseln - Mac-OS X - MACWELT"", ""http://www.macwelt.de/ratgeber/Ratgeber-Verschluesselung-unter-OS-X-10-8-Mountain-Lion-Interne-Laufwerke-mit-Filevault-verschluesseln-6703357.html""]","[""REST-Webservices mit Node.js, Teil 1: Connect als Fundament | heise Developer"", ""http://www.heise.de/developer/artikel/REST-Webservices-mit-Node-js-Teil-1-Connect-als-Fundament-1802258.html""]","[""REST-Webservices mit Node.js, Teil 2: Express als Anwendungsserver | heise Developer"", ""http://www.heise.de/developer/artikel/REST-Webservices-mit-Node-js-Teil-2-Express-als-Anwendungsserver-1803626.html""]","[""Ruby and Rails Special Topics - Jumpstart Lab Curriculum"", ""http://tutorials.jumpstartlab.com/topics/""]","[""Ruby on Rails Screencasts - RailsCasts"", ""http://railscasts.com/episodes?utf8=%E2%9C%93&search=paypal""]","[""Ruby on Rails Tutorial: Learn Rails by Example book and screencasts by Michael Hartl"", ""http://ruby.railstutorial.org/ruby-on-rails-tutorial-book?version=3.2""]","[""Ruby Programming/Syntax/Classes - Wikibooks, open books for an open world"", ""https://en.wikibooks.org/wiki/Ruby_Programming/Syntax/Classes#Mixing_in_Modules""]","[nil, ""https://gist.github.com/mattdipasquale/571405""]","[""Ruby Trick Shots: A Video of 24 Ruby Tips and Tricks"", ""http://rubyreloaded.com/trickshots/""]","[""Ruby Under a Microscope - Pat Shaughnessy"", ""http://patshaughnessy.net/ruby-under-a-microscope""]","[""RubyJS | Home"", ""http://rubyjs.org/""]","[""Comment on Design Patterns in Ruby: Observer, Singleton"", ""http://rubysource.com/design-patterns-in-ruby-observer-singleton/#comments""]","[""View all posts in Outside Ruby"", ""http://rubysource.com/category/outside-ruby/""]","[nil, ""http://api.rubyonrails.org/classes/ActionController/Caching/Pages.html""]","[""RubySource | Simple Background Jobs with Sucker PunchRubySource"", ""http://rubysource.com/simple-background-jobs-with-sucker-punch/?utm_medium=email&utm_campaign=Rubysource%2020120528&utm_content=Rubysource%2020120528+CID_93079a7cbc8a9c4b538c87e6d0983d28&utm_source=Newsletter&utm_term=More""]","[""Comment on State Machines in Ruby"", ""http://rubysource.com/state-machines-in-ruby/#comments""]","[""RubySource | Working with RefineryRubySource"", ""http://rubysource.com/working-with-refinery/?utm_medium=email&utm_campaign=Rubysource+Newsletter+20121002&utm_content=Rubysource+Newsletter+20121002+CID_4ef1fdb2d08c027e3dff17884118bcc0&utm_source=Newsletter&utm_term=CMS%20Spotlight%20Refinery""]","[""Running Bash Commands From Ruby | Ruby For System Administrators"", ""http://ruby.elevatedintel.com/blog/running-bash-commands-from-ruby/?utm_source=rubyweekly&utm_medium=email""]","[""Sam Dutton"", ""http://www.samdutton.com/""]","[""Secrets of Awesome JavaScript API Design - Web Standards Sherpa"", ""http://webstandardssherpa.com/reviews/secrets-of-awesome-javascript-api-design/""]","[""Self-publish your in-progress book for great royalties on Leanpub"", ""https://leanpub.com/""]","[""Setting up a PHP development environment with Nginx on Ubuntu 11.04"", ""http://www.zalas.eu/setting-up-a-php-development-environment-with-nginx-on-ubuntu-1104""]","[nil, ""http://conqueringthecommandline.com/book/frontmatter#foreword""]","[""SPDY and the Road Towards HTTP 2.0 - YouTube"", ""http://www.youtube.com/watch?v=SWQdSEferz8""]","[""SSH/OpenSSH/Keys - Community Ubuntu Documentation"", ""https://help.ubuntu.com/community/SSH/OpenSSH/Keys""]","[""stps - create and share awesome step by step guides"", ""http://stps.co/""]","[""Streak - CRM in your Inbox"", ""http://www.streak.com/""]","[""Stuart Memo"", ""http://stuartmemo.com/""]","[""Sublimewebinspector"", ""http://sokolovstas.github.com/SublimeWebInspector/""]","[""Subtle Patterns | Free textures for your next web project"", ""http://subtlepatterns.com/""]","[""Telefon-Hacking: Das bewegte Leben des Captain Crunch - Golem.de"", ""http://www.golem.de/news/telefon-hacking-das-bewegte-leben-des-captain-crunch-1210-94815.html""]","[""Ten Things You Didn't Know You Could Do by James Edward Gray II - YouTube"", ""http://www.youtube.com/watch?v=aBgnlBoIkVM""]","[nil, ""http://theory.so/pg/2013/10/23/testing-nested-hstore/""]","[""TexPaste - Pastebin for Mathematicians using LaTeX"", ""http://www.texpaste.com/""]","[""The MongoDB NoSQL Database Blog, MongoDB Text Search: Experimental Feature in MongoDB 2.4"", ""http://blog.mongodb.org/post/40513621310/mongodb-text-search-experimental-feature-in-mongodb""]","[""The Myers & Briggs Foundation"", ""http://myersbriggs.org/""]","[""The Twelve-Factor App"", ""http://12factor.net/""]","[""The Ultimate Guide to Learning Ruby for Free: Resources, Tools and Tips - Lesson in Programming"", ""http://lurnq.com/lesson/The-Ultimate-Guide-to-Learning-Ruby-for-Free-Resources-Tools-and-Tips/""]","[""Thomas Davis"", ""http://thomasdavis.github.com/2011/02/01/backbone-introduction.html""]","[""TodoMVC"", ""http://todomvc.com/""]","[""Try mruby TodayRubySource"", ""http://rubysource.com/try-mruby-today/?utm_medium=email&utm_campaign=RubySource+Newsletter+20121030&utm_content=RubySource+Newsletter+20121030+Version+A+CID_279679335def9cd340cb088738729cd8&utm_source=Newsletter&utm_term=MRuby%20Small%20Implementation%20Big%20Results""]","[nil, ""http://lists.nyphp.org/pipermail/talk/2004-April/009170.html""]","[""Tuts+ Premium Course: Perfect Workflow in Sublime Text 2"", ""https://tutsplus.com/course/improve-workflow-in-sublime-text-2/""]","[""UFW - Community Ubuntu Documentation"", ""https://help.ubuntu.com/community/UFW""]","[""Ultimate CSS Gradient Generator - ColorZilla.com"", ""http://www.colorzilla.com/gradient-editor/""]","[""Understanding C by learning assembly - Blog - Hacker School"", ""https://www.hackerschool.com/blog/7-understanding-c-by-learning-assembly?utm_source=statuscode&utm_medium=email""]","[""Understanding method lookup in Ruby 2.0 - Tech.Pro"", ""http://tech.pro/tutorial/1149/understanding-method-lookup-in-ruby-20?utm_source=rubyweekly&utm_medium=email""]","[""Unobtrusive JavaScript"", ""http://blog.socialcast.com/unobtrusive-javascript-2/?utm_source=javascriptweekly&utm_medium=email""]","[nil, ""https://people.apache.org/keys/committer/andywenk.asc""]","[""Upton: A Web Scraping Framework - ProPublica"", ""http://www.propublica.org/nerds/item/upton-a-web-scraping-framework?utm_source=rubyweekly&utm_medium=email""]","[""URI.js - URLs in Javascript"", ""http://medialize.github.com/URI.js/""]","[""UseResponse | Customer Feedback Software & Support System"", ""http://www.useresponse.com/""]","[""Using Pandoc to Build Your ePub eBook - Story Hack"", ""http://www.storyhack.com/2012/07/10/using-pandoc-to-build-your-epub-ebook/""]","[""Using Ruby's gsub with a block - (think)"", ""http://batsov.com/articles/2013/08/30/using-gsub-with-a-block/?utm_source=rubyweekly&utm_medium=email""]","[""visionmedia/jade · GitHub"", ""https://github.com/visionmedia/jade#a6-2""]","[""Wait, DevTools could do THAT?"", ""http://www.igvita.com/slides/2012/devtools-tips-and-tricks/?utm_source=html5weekly&utm_medium=email#1""]","[""Watch movies online for free movie download at movie2k.to"", ""http://www.movie2k.to/index.php?lang=us""]","[""Why Google Went Offline Today and a Bit about How the Internet Works - CloudFlare blog"", ""http://blog.cloudflare.com/why-google-went-offline-today-and-a-bit-about?utm_source=hackernewsletter&utm_medium=email""]","[""Working with Local Applications in VisualVM — Java.net"", ""http://visualvm.java.net/applications_local.html""]","[""www.ietf.org/rfc/rfc2616.txt"", ""http://www.ietf.org/rfc/rfc2616.txt""]","[""www.ietf.org/rfc/rfc791.txt"", ""http://www.ietf.org/rfc/rfc791.txt""]","[""www.ietf.org/rfc/rfc792.txt"", ""http://www.ietf.org/rfc/rfc792.txt""]","[""www.ietf.org/rfc/rfc793.txt"", ""http://www.ietf.org/rfc/rfc793.txt""]","[""Yeti Media"", ""http://yetimedia.tumblr.com/post/33320732456/moving-forward-with-the-rails-asset-pipeline?utm_source=rubyweekly&utm_medium=email""]","[""Łukasz Lipiński Portfolio"", ""http://www.uzza.pl/home.html""]"
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'evernote_link_extractor/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "evernote_link_extractor"
|
8
|
+
spec.version = EvernoteLinkExtractor::VERSION
|
9
|
+
spec.authors = ["Andy Wenk"]
|
10
|
+
spec.email = ["andy@nms.de"]
|
11
|
+
|
12
|
+
spec.summary = %q{Extract links from your exported Evernote notes}
|
13
|
+
spec.description = %q{This gem creates a CSV file with links from your exported Evernote notes in HTML files.}
|
14
|
+
spec.homepage = "https://github.com/andywenk/evernote_link_extractor"
|
15
|
+
|
16
|
+
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
17
|
+
spec.bindir = "bin"
|
18
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
19
|
+
spec.require_paths = ["lib"]
|
20
|
+
|
21
|
+
spec.add_dependency "nokogiri"
|
22
|
+
|
23
|
+
spec.add_development_dependency "bundler", "~> 1.10"
|
24
|
+
spec.add_development_dependency "rake", "~> 10.0"
|
25
|
+
spec.add_development_dependency "rspec"
|
26
|
+
spec.add_development_dependency "pry"
|
27
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require "evernote_link_extractor/version"
|
2
|
+
require 'evernote_link_extractor/helper'
|
3
|
+
require 'evernote_link_extractor/file_list'
|
4
|
+
require 'evernote_link_extractor/link_list'
|
5
|
+
require 'evernote_link_extractor/csv_builder'
|
6
|
+
require "evernote_link_extractor/runner"
|
7
|
+
|
8
|
+
|
9
|
+
# Main Module
|
10
|
+
module EvernoteLinkExtractor
|
11
|
+
|
12
|
+
# run the whole job
|
13
|
+
def self.run
|
14
|
+
Runner.new.run
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module EvernoteLinkExtractor
|
2
|
+
class CsvBuilder
|
3
|
+
|
4
|
+
def self.create(link_list)
|
5
|
+
CSV.open("evernote_link_export_#{Time.now.to_i}.csv", 'w', :write_headers=> true, :headers => csv_headers) do |csv|
|
6
|
+
csv << rows(link_list)
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
private
|
11
|
+
|
12
|
+
def self.csv_headers
|
13
|
+
%W(title link)
|
14
|
+
end
|
15
|
+
|
16
|
+
def self.rows(link_list)
|
17
|
+
link_list.map do |link|
|
18
|
+
[link[:title], link[:href]]
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,59 @@
|
|
1
|
+
module EvernoteLinkExtractor
|
2
|
+
class FileList
|
3
|
+
|
4
|
+
attr_reader :user_home, :directory, :file_list
|
5
|
+
|
6
|
+
def initialize
|
7
|
+
@user_home = ENV['HOME']
|
8
|
+
@file_list = []
|
9
|
+
end
|
10
|
+
|
11
|
+
def create
|
12
|
+
directory_to_scan
|
13
|
+
scan_directory
|
14
|
+
check_if_files_exist
|
15
|
+
file_list
|
16
|
+
end
|
17
|
+
|
18
|
+
private
|
19
|
+
|
20
|
+
# ask which directory has to be scanned
|
21
|
+
def directory_to_scan
|
22
|
+
print 'What is the path to your .enex directory? (e.g.: ~/Documents/my_evernote.enex): '
|
23
|
+
@directory = full_path_to_directory(gets.chomp)
|
24
|
+
|
25
|
+
if does_directory_exist?
|
26
|
+
@directory = Pathname.new([@directory, '**/*'].join('/'))
|
27
|
+
else
|
28
|
+
puts 'The directory does not exist ...'
|
29
|
+
Helper.exit?
|
30
|
+
directory_to_scan
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
def scan_directory
|
35
|
+
puts "scanning #{directory} ...\n"
|
36
|
+
|
37
|
+
Dir.glob(directory).each do |filename|
|
38
|
+
next if File.directory?(filename)
|
39
|
+
next unless File.fnmatch('**.html', filename)
|
40
|
+
@file_list << filename
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
def check_if_files_exist
|
45
|
+
return unless file_list.empty?
|
46
|
+
puts "There are no files in the directory ..."
|
47
|
+
Helper.exit?
|
48
|
+
directory_to_scan
|
49
|
+
end
|
50
|
+
|
51
|
+
def does_directory_exist?
|
52
|
+
File.directory?(directory)
|
53
|
+
end
|
54
|
+
|
55
|
+
def full_path_to_directory(directory)
|
56
|
+
directory.gsub(/~/, user_home)
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module EvernoteLinkExtractor
|
2
|
+
# some helper methods
|
3
|
+
class Helper
|
4
|
+
class << self
|
5
|
+
|
6
|
+
# exit the whole program?
|
7
|
+
def exit?
|
8
|
+
print 'Exit? (yes|no): '
|
9
|
+
close if gets.chomp == 'yes'
|
10
|
+
end
|
11
|
+
|
12
|
+
# close the program
|
13
|
+
def close
|
14
|
+
puts 'Closing. Have a nice day.'
|
15
|
+
exit(0)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
module EvernoteLinkExtractor
|
2
|
+
class LinkList
|
3
|
+
|
4
|
+
attr_reader :link_list, :file_list
|
5
|
+
attr_accessor :failures
|
6
|
+
|
7
|
+
def initialize
|
8
|
+
@link_list = []
|
9
|
+
@failures = 0
|
10
|
+
end
|
11
|
+
|
12
|
+
def create(file_list)
|
13
|
+
@file_list = file_list
|
14
|
+
create_link_list
|
15
|
+
end
|
16
|
+
|
17
|
+
private
|
18
|
+
|
19
|
+
def create_link_list
|
20
|
+
link_list = file_list.map do |file|
|
21
|
+
h = {}
|
22
|
+
f = File.open(file, 'r')
|
23
|
+
next if File.directory?(f)
|
24
|
+
link_and_title_from_file(f)
|
25
|
+
end
|
26
|
+
@link_list = link_list.compact
|
27
|
+
end
|
28
|
+
|
29
|
+
def link_and_title_from_file(file)
|
30
|
+
a_attr = extract_a_attribute(parse_html(file))
|
31
|
+
if a_attr.nil?
|
32
|
+
@failures += 1
|
33
|
+
return
|
34
|
+
end
|
35
|
+
{
|
36
|
+
title: a_attr[:title],
|
37
|
+
href: a_attr[:href]
|
38
|
+
}
|
39
|
+
end
|
40
|
+
|
41
|
+
def extract_a_attribute(html_body)
|
42
|
+
html_body.css('a').first
|
43
|
+
end
|
44
|
+
|
45
|
+
def parse_html(file)
|
46
|
+
html = file.readlines
|
47
|
+
::Nokogiri::HTML.parse(html[2])
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
require 'pathname'
|
2
|
+
require 'nokogiri'
|
3
|
+
require 'csv'
|
4
|
+
|
5
|
+
module EvernoteLinkExtractor
|
6
|
+
|
7
|
+
# This is the main class and is doing the whole job ... atm
|
8
|
+
class Runner
|
9
|
+
attr_reader :file_list, :link_list
|
10
|
+
|
11
|
+
# initializer with setting up some instance variables
|
12
|
+
def initialize
|
13
|
+
@file_list = []
|
14
|
+
@link_list = []
|
15
|
+
@fl = FileList.new
|
16
|
+
@ll = LinkList.new
|
17
|
+
end
|
18
|
+
|
19
|
+
# this is the only public method to be called
|
20
|
+
def run
|
21
|
+
print 'Do you want to create a CSV file now (yes|no)?: '
|
22
|
+
action = gets.chomp
|
23
|
+
|
24
|
+
case action
|
25
|
+
when 'no'
|
26
|
+
Helper.close
|
27
|
+
when 'yes'
|
28
|
+
puts 'Starting to create the CSV file ...'
|
29
|
+
execute
|
30
|
+
else
|
31
|
+
print 'please type yes or no: '
|
32
|
+
run
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
private
|
37
|
+
|
38
|
+
# execute all the needed steps
|
39
|
+
def execute
|
40
|
+
@file_list = @fl.create
|
41
|
+
@link_list = @ll.create(file_list)
|
42
|
+
CsvBuilder.create(link_list)
|
43
|
+
show_summary
|
44
|
+
end
|
45
|
+
|
46
|
+
def show_summary
|
47
|
+
puts " +++ Summary +++"
|
48
|
+
puts "files found in directory: #{file_list.length}"
|
49
|
+
puts "extracted links: #{link_list.length}"
|
50
|
+
puts "failures: #{@ll.failures}"
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
metadata
ADDED
@@ -0,0 +1,141 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: evernote_link_extractor
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.8
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Andy Wenk
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2015-09-05 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: nokogiri
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: bundler
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '1.10'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '1.10'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rake
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '10.0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '10.0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rspec
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: pry
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
description: This gem creates a CSV file with links from your exported Evernote notes
|
84
|
+
in HTML files.
|
85
|
+
email:
|
86
|
+
- andy@nms.de
|
87
|
+
executables:
|
88
|
+
- console
|
89
|
+
- evernote_link_extractor
|
90
|
+
- setup
|
91
|
+
extensions: []
|
92
|
+
extra_rdoc_files: []
|
93
|
+
files:
|
94
|
+
- ".gitignore"
|
95
|
+
- ".rspec"
|
96
|
+
- ".travis.yml"
|
97
|
+
- CODE_OF_CONDUCT.md
|
98
|
+
- Gemfile
|
99
|
+
- README.md
|
100
|
+
- Rakefile
|
101
|
+
- bin/console
|
102
|
+
- bin/evernote_link_extractor
|
103
|
+
- bin/setup
|
104
|
+
- evernote_link_export_1441461770.csv
|
105
|
+
- evernote_link_export_1441462721.csv
|
106
|
+
- evernote_link_export_1441463723.csv
|
107
|
+
- evernote_link_export_1441463860.csv
|
108
|
+
- evernote_link_export_1441464002.csv
|
109
|
+
- evernote_link_extractor.gemspec
|
110
|
+
- lib/evernote_link_extractor.rb
|
111
|
+
- lib/evernote_link_extractor/csv_builder.rb
|
112
|
+
- lib/evernote_link_extractor/file_list.rb
|
113
|
+
- lib/evernote_link_extractor/helper.rb
|
114
|
+
- lib/evernote_link_extractor/link_list.rb
|
115
|
+
- lib/evernote_link_extractor/runner.rb
|
116
|
+
- lib/evernote_link_extractor/version.rb
|
117
|
+
homepage: https://github.com/andywenk/evernote_link_extractor
|
118
|
+
licenses: []
|
119
|
+
metadata: {}
|
120
|
+
post_install_message:
|
121
|
+
rdoc_options: []
|
122
|
+
require_paths:
|
123
|
+
- lib
|
124
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
125
|
+
requirements:
|
126
|
+
- - ">="
|
127
|
+
- !ruby/object:Gem::Version
|
128
|
+
version: '0'
|
129
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
130
|
+
requirements:
|
131
|
+
- - ">="
|
132
|
+
- !ruby/object:Gem::Version
|
133
|
+
version: '0'
|
134
|
+
requirements: []
|
135
|
+
rubyforge_project:
|
136
|
+
rubygems_version: 2.4.5
|
137
|
+
signing_key:
|
138
|
+
specification_version: 4
|
139
|
+
summary: Extract links from your exported Evernote notes
|
140
|
+
test_files: []
|
141
|
+
has_rdoc:
|