rss_parser 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,10 @@
1
+ README.rdoc
2
+ Rakefile
3
+ features/rss_parsing.feature
4
+ features/steps/rss_steps.rb
5
+ lib/rss_parser.rb
6
+ rss_parser.gemspec
7
+ spec/rss_spec.rb
8
+ spec/sample_feed.xml
9
+ spec/spec_helper.rb
10
+ Manifest
@@ -0,0 +1,24 @@
1
+ = About
2
+ This is a very simple RSS parser that supports feeds protected by HTTP Basic Authentication.
3
+
4
+ = Installation
5
+ sudo gem install jankubr-rss_parser
6
+
7
+ = Usage
8
+ require 'rss_parser'
9
+
10
+ @entries = RssParser.parse('http://twitter.com/statuses/friends_timeline/16901911.rss', 'jankubr', 'fake').items
11
+
12
+ <% @entries.each do |entry| %>
13
+ <%= link_to entry.title, entry.link %>:
14
+ <%= entry.description %>
15
+ <% end %>
16
+
17
+ = License
18
+ Copyright © 2008 Jan Kubr
19
+
20
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
21
+
22
+ The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
23
+
24
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,24 @@
1
+ $:.unshift(File.join(File.dirname(__FILE__), 'lib'))
2
+
3
+ require 'rubygems'
4
+ require 'rake'
5
+ require 'echoe'
6
+
7
+ Echoe.new('rss_parser', '0.1.0') do |p|
8
+ p.description = "Simple RSS parser that supports feeds with HTTP Basic Authentication"
9
+ p.url = "http://github.com/honza/rss_parser"
10
+ p.author = "Jan Kubr"
11
+ p.email = "jan.kubr@gmail.com"
12
+ p.ignore_pattern = ["tmp/*", "script/*"]
13
+ p.runtime_dependencies = ['nokogiri']
14
+ p.development_dependencies = ['cucumber', 'rspec', 'mocha', 'simple-rss']
15
+ end
16
+
17
+ Dir["#{File.dirname(__FILE__)}/tasks/*.rake"].sort.each { |ext| load ext }
18
+
19
+
20
+ require 'cucumber/rake/task'
21
+ Cucumber::Rake::Task.new do |t|
22
+ t.cucumber_opts = "--format pretty"
23
+ end
24
+
@@ -0,0 +1,9 @@
1
+ Feature: RSS feeds parsing
2
+ In order to display my blog posts on another web page
3
+ I want to be able to parse RSS feeds
4
+
5
+ Scenario: Parse an RSS feed that does not require authentication
6
+ Given the RSS feed on address "http://jan.flempo.com/feed"
7
+ When the feed is retrieved and parsed
8
+ Then the title of the first item should be the same as when parsed with the Simple RSS library
9
+ And the link of the second item should be the same as when parsed with the Simple RSS library
@@ -0,0 +1,20 @@
1
+ require "#{File.dirname(__FILE__)}/../../lib/rss_parser"
2
+ require 'spec'
3
+ require 'simple-rss'
4
+ require 'open-uri'
5
+
6
+ Given /^the RSS feed on address "(.*)"$/ do |url|
7
+ @url = url
8
+ end
9
+
10
+ When /the feed is retrieved and parsed/ do
11
+ @feed = RssParser.parse(@url)
12
+ end
13
+
14
+ Then /^the title of the first item should be the same as when parsed with the Simple RSS library$/ do
15
+ SimpleRSS.parse(open(@url)).entries.first.title.should == @feed.items.first.title
16
+ end
17
+
18
+ Then /^the link of the second item should be the same as when parsed with the Simple RSS library$/ do
19
+ SimpleRSS.parse(open(@url)).entries[1].title == @feed.items[1].link
20
+ end
@@ -0,0 +1,97 @@
1
+ require 'net/http'
2
+ require 'uri'
3
+ require 'ostruct'
4
+ require 'time'
5
+
6
+ require 'nokogiri'
7
+
8
+ class Feed
9
+ attr_accessor :items
10
+ attr_accessor :title, :link, :description, :generator, :language
11
+
12
+ def initialize(title, link, description)
13
+ @title = title
14
+ @link = link
15
+ @description = description
16
+ @items = []
17
+ end
18
+
19
+ def item(params)
20
+ @items << OpenStruct.new(params)
21
+ end
22
+ end
23
+
24
+ class RssParser
25
+ attr_accessor :feed
26
+
27
+ def self.parse(url, user = nil, password = nil)
28
+ rss = new(url, user, password)
29
+ rss.process
30
+ rss.feed
31
+ end
32
+
33
+ def initialize(url, user, password)
34
+ @url = URI.parse(url)
35
+ @user = user
36
+ @password = password
37
+ end
38
+
39
+ def process
40
+ Net::HTTP.start(@url.host, @url.port) do |http|
41
+ # FIXME (Did): handle url like "http://www.example.com/?feed=rss2" used by Wordpress for instance
42
+ path = @url.path
43
+ path << "?#{@url.query}" if @url.query
44
+
45
+ data = get_data(http, prepare_request(path))
46
+ @feed = parse(data)
47
+ end
48
+ end
49
+
50
+ private
51
+
52
+ def get_data(http, request, limit = 10)
53
+ raise "Too many redirects" if limit == 0
54
+ response = http.request(request)
55
+ case response
56
+ when Net::HTTPSuccess
57
+ response.body
58
+ when Net::HTTPRedirection
59
+ get_data(http, prepare_request(response['location']), limit - 1)
60
+ else
61
+ response.error!
62
+ end
63
+ end
64
+
65
+ def prepare_request(path)
66
+ request = Net::HTTP::Get.new(path)
67
+ request.basic_auth(@user, @password) if @user
68
+ request
69
+ end
70
+
71
+ def parse(xml)
72
+ # puts xml.inspect
73
+
74
+ doc = Nokogiri::XML(xml)
75
+
76
+ # puts doc.inspect
77
+
78
+ title = sub_element(doc, 'rss/channel/title')
79
+ link = sub_element(doc, 'rss/channel/link')
80
+ description = sub_element(doc, 'rss/channel/description')
81
+ feed = Feed.new(title, link, description)
82
+ doc.xpath('//rss/channel[1]//item').each do |item|
83
+ title = sub_element(item, 'title')
84
+ link = sub_element(item, 'link')
85
+ description = sub_element(item, 'description')
86
+ pub_date = Time.parse(sub_element(item, 'pubDate'))
87
+ feed.item(:title => title, :description => description,
88
+ :link => link, :pub_date => pub_date)
89
+ end
90
+ feed
91
+ end
92
+
93
+ def sub_element(element, name)
94
+ element.xpath("#{name}[1]").first.content
95
+ end
96
+ end
97
+
@@ -0,0 +1,45 @@
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ Gem::Specification.new do |s|
4
+ s.name = %q{rss_parser}
5
+ s.version = "0.1.0"
6
+
7
+ s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
8
+ s.authors = ["Jan Kubr"]
9
+ s.date = %q{2010-03-15}
10
+ s.description = %q{Simple RSS parser that supports feeds with HTTP Basic Authentication}
11
+ s.email = %q{jan.kubr@gmail.com}
12
+ s.extra_rdoc_files = ["README.rdoc", "lib/rss_parser.rb"]
13
+ s.files = ["README.rdoc", "Rakefile", "features/rss_parsing.feature", "features/steps/rss_steps.rb", "lib/rss_parser.rb", "rss_parser.gemspec", "spec/rss_spec.rb", "spec/sample_feed.xml", "spec/spec_helper.rb", "Manifest"]
14
+ s.homepage = %q{http://github.com/honza/rss_parser}
15
+ s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Rss_parser", "--main", "README.rdoc"]
16
+ s.require_paths = ["lib"]
17
+ s.rubyforge_project = %q{rss_parser}
18
+ s.rubygems_version = %q{1.3.5}
19
+ s.summary = %q{Simple RSS parser that supports feeds with HTTP Basic Authentication}
20
+
21
+ if s.respond_to? :specification_version then
22
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
23
+ s.specification_version = 3
24
+
25
+ if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
26
+ s.add_runtime_dependency(%q<nokogiri>, [">= 0"])
27
+ s.add_development_dependency(%q<cucumber>, [">= 0"])
28
+ s.add_development_dependency(%q<rspec>, [">= 0"])
29
+ s.add_development_dependency(%q<mocha>, [">= 0"])
30
+ s.add_development_dependency(%q<simple-rss>, [">= 0"])
31
+ else
32
+ s.add_dependency(%q<nokogiri>, [">= 0"])
33
+ s.add_dependency(%q<cucumber>, [">= 0"])
34
+ s.add_dependency(%q<rspec>, [">= 0"])
35
+ s.add_dependency(%q<mocha>, [">= 0"])
36
+ s.add_dependency(%q<simple-rss>, [">= 0"])
37
+ end
38
+ else
39
+ s.add_dependency(%q<nokogiri>, [">= 0"])
40
+ s.add_dependency(%q<cucumber>, [">= 0"])
41
+ s.add_dependency(%q<rspec>, [">= 0"])
42
+ s.add_dependency(%q<mocha>, [">= 0"])
43
+ s.add_dependency(%q<simple-rss>, [">= 0"])
44
+ end
45
+ end
@@ -0,0 +1,59 @@
1
+ require File.join(File.dirname(__FILE__), 'spec_helper')
2
+
3
+ describe RssParser do
4
+ it "should parse feeds that require authentication" do
5
+ #should start request
6
+ http = stub
7
+ Net::HTTP.expects(:start).yields(http)
8
+ #response should be success and return sample XML with feed
9
+ response = Net::HTTPSuccess.new('', '', '')
10
+ response.expects(:body).returns(sample_feed_content)
11
+ http.expects(:request).returns(response)
12
+ #should do basic HTTP authorization
13
+ request = stub
14
+ Net::HTTP::Get.expects(:new).returns(request)
15
+ request.expects(:basic_auth).with('user', 'password')
16
+
17
+ feed = RssParser.parse('url', 'user', 'password')
18
+
19
+ feed.items.first.title.should == 'A book read: My Startup Life by Ben Casnocha'
20
+ feed.items[1].link.should == 'http://jan.flempo.com/2008/12/17/focus-on-incremental-improvements/'
21
+ end
22
+
23
+ it "should parse feeds that redirect" do
24
+ #should start request
25
+ http = stub
26
+ Net::HTTP.expects(:start).yields(http)
27
+ #first response should be redirect
28
+ response = Net::HTTPRedirection.new('', '', '')
29
+ #second response should be success and return sample XML with feed
30
+ second_response = Net::HTTPSuccess.new('', '', '')
31
+ second_response.expects(:body).returns(sample_feed_content)
32
+ response.expects(:[]).with('location').returns('url2')
33
+ http.expects(:request).times(2).returns(response).then.returns(second_response)
34
+
35
+ feed = RssParser.parse('url')
36
+
37
+ feed.items.first.title.should == 'A book read: My Startup Life by Ben Casnocha'
38
+ feed.items[1].link.should == 'http://jan.flempo.com/2008/12/17/focus-on-incremental-improvements/'
39
+ end
40
+
41
+ it "should use url with queries" do
42
+ #should start request
43
+ http = stub
44
+ Net::HTTP.expects(:start).yields(http)
45
+ #response should be success and return sample XML with feed
46
+ response = Net::HTTPSuccess.new('', '', '')
47
+ response.expects(:body).returns(sample_feed_content)
48
+ http.expects(:request).returns(response)
49
+
50
+ RssParser.any_instance.expects(:prepare_request).with('/?feed=rss2')
51
+ RssParser.parse('http://www.wordpress/?feed=rss2')
52
+ end
53
+
54
+ def sample_feed_content
55
+ return @xml if @xml
56
+ File.open(File.join(File.dirname(__FILE__), 'sample_feed.xml')) {|f| @xml = f.read}
57
+ @xml
58
+ end
59
+ end
@@ -0,0 +1,357 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <rss version="2.0"
3
+ xmlns:content="http://purl.org/rss/1.0/modules/content/"
4
+ xmlns:wfw="http://wellformedweb.org/CommentAPI/"
5
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
6
+ xmlns:atom="http://www.w3.org/2005/Atom"
7
+ xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
8
+ xmlns:media="http://search.yahoo.com/mrss/"
9
+ >
10
+
11
+ <channel>
12
+ <title>on freedom</title>
13
+ <atom:link href="http://jan.flempo.com/feed/" rel="self" type="application/rss+xml" />
14
+ <link>http://jan.flempo.com</link>
15
+ <description></description>
16
+ <pubDate>Wed, 24 Dec 2008 10:19:14 +0000</pubDate>
17
+
18
+ <generator>http://wordpress.org/?v=MU</generator>
19
+ <language>en</language>
20
+ <sy:updatePeriod>hourly</sy:updatePeriod>
21
+ <sy:updateFrequency>1</sy:updateFrequency>
22
+ <image>
23
+ <url>http://www.gravatar.com/blavatar/e6844f03975112fad4fc43bbe0dd041e?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
24
+
25
+ <title>on freedom</title>
26
+ <link>http://jan.flempo.com</link>
27
+ </image>
28
+ <item>
29
+ <title>A book read: My Startup Life by Ben Casnocha</title>
30
+ <link>http://jan.flempo.com/2008/12/18/a-book-read-my-startup-life-by-ben-casnocha/</link>
31
+ <comments>http://jan.flempo.com/2008/12/18/a-book-read-my-startup-life-by-ben-casnocha/#comments</comments>
32
+
33
+ <pubDate>Thu, 18 Dec 2008 09:19:50 +0000</pubDate>
34
+ <dc:creator>Jan Kubr</dc:creator>
35
+
36
+ <category><![CDATA[Uncategorized]]></category>
37
+
38
+ <category><![CDATA[ben casnocha]]></category>
39
+
40
+ <category><![CDATA[book]]></category>
41
+
42
+ <category><![CDATA[comcate]]></category>
43
+
44
+ <category><![CDATA[entrepreneurship]]></category>
45
+
46
+ <category><![CDATA[feedback]]></category>
47
+
48
+ <category><![CDATA[my startup life]]></category>
49
+
50
+ <category><![CDATA[software]]></category>
51
+
52
+ <category><![CDATA[startup]]></category>
53
+
54
+ <guid isPermaLink="false">http://jan.flempo.com/?p=182</guid>
55
+
56
+ <description><![CDATA[This book is a story about Ben Casnocha&#8217;s experiences with starting a software startup. He was very young when he started it (13), but that is not at all why you should read this book. It is full of valuable advice on how to get a company off the ground and is especially valuable for [...]]]></description>
57
+ <content:encoded><![CDATA[<div class='snap_preview'><br /><p>This book is a story about <a title="Ben Casnocha's blog" href="http://ben.casnocha.com/" target="_blank">Ben Casnocha</a>&#8217;s experiences with starting a software startup. He was very young when he started it (13), but that is not at all why you should read this book. It is full of valuable advice on how to get a company off the ground and is especially valuable for someone who is more on the technical side of things - like me.</p>
58
+ <h2>What to build</h2>
59
+ <p>How do you choose what to build? Ben has an interesting observation:</p>
60
+ <p><em>&#8220;Some problems require &#8216;vitamins&#8217; - that is, a product that&#8217;s &#8216;nice to have.&#8217; Some issues require &#8216;antibiotics&#8217; which means they&#8217;re mission-critical problems. Most profitable businesses solve mission-critical problems, or the &#8216;must-haves&#8217;.&#8221;</em></p>
61
+ <h2>Sell, sell, sell</h2>
62
+ <p>Ben focused on selling their product from almost the day one, although it was only a &#8220;beta&#8221; written by a cheap programmer. He didn&#8217;t want to wait until the product was &#8220;perfect.&#8221; If it provides good value to its customers, try to sell it to as many people as possible. Generate revenue that you can then invest back to the product to make it better.</p>
63
+ <p>Sounds cheesy. But many people are ashamed of early versions of their product and don&#8217;t want to offer it to customers (or to charge them for it) until they finish <em>this</em> feature. When that&#8217;s done, there is <em>another</em> <em>crucial</em> <em>piece</em> of functionality that needs to be added. And that goes on until the company disappears because there is no money to keep it alive. Sell what is good enough and make it better over time. In Ben&#8217;s words:</p>
64
+ <p><em>&#8220;Isn&#8217;t developing software the core competency of the business? It&#8217;s actually not that simple. In the early goings, it can be better to ship less-than-perfect software and focus on selling, selling, selling, rather than making perfect software.&#8221;</em></p>
65
+ <p><em>&#8220;Good enough is a key principle in entrepreneurship. If your aim is &#8216;perfect,&#8217; the future is so far away it may be hard to get going.&#8221; </em></p>
66
+ <p>However, you can&#8217;t be only &#8220;good enough&#8221; in everything, then you end up being mediocre. The trick is to choose in what you need to be great and where &#8220;good enough&#8221; is - well - good enough! Making these decisions will also help you decide when to save money and buy something cheap (maybe a desk) and when demand fine quality (business cards, chairs for programmers).</p>
67
+ <h2>Good programmers are hard to find</h2>
68
+ <p>Creating a software product is everything but easy. As Ben noticed, <em>&#8220;Do you want it cheap, fast, or good? Choose two, says the old engineering adage.&#8221;</em> And a related observation: <em>&#8220;Technology start-ups take note: when a programmer isn&#8217;t on the founding team, it is difficult to find engineers who are both high quality and affordable.&#8221;</em></p>
69
+ <h2>What to charge?</h2>
70
+ <p>How much to charge your customers? Think about how much the customer&#8217;s problems you are solving are costing. If you replace one person&#8217;s week of work, then her salary for that week is about what you should charge.</p>
71
+ <h2>B-plan or not?</h2>
72
+ <p>Should you write a business plan even you don&#8217;t need it for any investors? Interesting observation by Ben: <em>&#8220;The best business plans do more for you than for others by clarifying your own thinking.&#8221;</em></p>
73
+ <h2>Get out of your office!</h2>
74
+ <p>Ben says it is critical to get face time with (potential) customers, especially in the beginning. You need to learn as much as you can about your customers&#8217; problems and generally about the market you are in. Also they will trust you more if they see you in person. He encourages you to get out of your office and talk to people! (And by the way: <em>&#8220;The two best moments to receive high-quality feedback from people are when they are hired and fired.&#8221;</em>) But beware: <em>&#8220;True innovation rarely sprouts from customer feedback, but good products must be informed by it.&#8221;</em></p>
75
+ <h2>How to become better</h2>
76
+ <p>And what Ben thinks you can do as a person to become (more) successful with your company?</p>
77
+ <p><em>&#8220;People who get stuff done think about the short-term feature. (&#8230;) People who get stuff done &#8216;dream&#8217; and &#8216;talk&#8217; as much as the next guy, but they share these dreams and ideas with others. (&#8230;) People who get stuff done begin. Taking that first step can be the hardest. Act now! (&#8230;) Do you want to be known as a doer or a talker? Do you want to start businesses or just talk about starting businesses?&#8221;</em></p>
78
+ <p>Don&#8217;t let failures stop you:</p>
79
+ <p><em>&#8220;Ups and downs are the definitive indication that you are doing something entrepreneurial. If your records is spotless, then you haven&#8217;t been an entrepreneur. If the only mistakes you&#8217;ve made are on school papers or in mishandling a report in a big corporation, those aren&#8217;t spots. It&#8217;s the spots from the school of hard knocks that matter. (&#8230;) With practice you&#8217;ll learn to see failure as just feedback for improvement.&#8221;</em></p>
80
+ <p>Maximize luck by exposing yourself to randomness:</p>
81
+ <p><em>&#8220;Attend conferences no one else is attending. Read books no one else is reading. Talk to people no one else is talking to.&#8221;</em></p>
82
+ <p>Trick yourself:</p>
83
+ <p><em>&#8220;Self-deception is essential for high self-esteem. It&#8217;s OK to take more credit than you deserve, in you own mind, for successes. It&#8217;s OK to think that you can outwork and outpassion anyone who competes with you. It&#8217;s OK to attribute soaring victories to a tireless work ethic. It&#8217;s OK if these are slight exaggerations. After all, how many people attribute &#8216;good luck&#8217; to their wins? Far fewer than those who attribute &#8216;bad luck&#8217; to their losses! Stay humble, especially on the outside, but consider yourself (privately) as unstoppable.&#8221;</em></p>
84
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/flempo.wordpress.com/182/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/flempo.wordpress.com/182/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/flempo.wordpress.com/182/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/flempo.wordpress.com/182/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/flempo.wordpress.com/182/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/flempo.wordpress.com/182/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/flempo.wordpress.com/182/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/flempo.wordpress.com/182/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/flempo.wordpress.com/182/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/flempo.wordpress.com/182/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jan.flempo.com&blog=976303&post=182&subd=flempo&ref=&feed=1" /></div>]]></content:encoded>
85
+ <wfw:commentRss>http://jan.flempo.com/2008/12/18/a-book-read-my-startup-life-by-ben-casnocha/feed/</wfw:commentRss>
86
+
87
+ <media:content url="http://www.gravatar.com/avatar/ea875673199ca2e6b6ba0eeda0e7e009?s=96&#38;d=identicon" medium="image">
88
+ <media:title type="html">Jan Kubr</media:title>
89
+ </media:content>
90
+ </item>
91
+ <item>
92
+
93
+ <title>Focus on incremental improvements</title>
94
+ <link>http://jan.flempo.com/2008/12/17/focus-on-incremental-improvements/</link>
95
+ <comments>http://jan.flempo.com/2008/12/17/focus-on-incremental-improvements/#comments</comments>
96
+ <pubDate>Wed, 17 Dec 2008 10:30:17 +0000</pubDate>
97
+ <dc:creator>Jan Kubr</dc:creator>
98
+
99
+ <category><![CDATA[Uncategorized]]></category>
100
+
101
+ <category><![CDATA[goals]]></category>
102
+
103
+ <category><![CDATA[incremental improvements]]></category>
104
+
105
+ <guid isPermaLink="false">http://jan.flempo.com/?p=180</guid>
106
+ <description><![CDATA[There will be no breakthrough that will suddenly fulfil your goal for you. There are only many small steps that take you closer to completion. And no one will walk that path for you. Focus on incremental improvements; don&#8217;t forget about your end goal, but learn to improve the status quo gradually. Don&#8217;t skip steps.
107
+ &#160;&#160;&#160;&#160;&#160;&#160; [...]]]></description>
108
+ <content:encoded><![CDATA[<div class='snap_preview'><br /><p>There will be no breakthrough that will suddenly fulfil your goal for you. There are only many small steps that take you closer to completion. And no one will walk that path for you. Focus on incremental improvements; don&#8217;t forget about your end goal, but learn to improve the status quo gradually. Don&#8217;t skip steps.</p>
109
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/flempo.wordpress.com/180/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/flempo.wordpress.com/180/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/flempo.wordpress.com/180/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/flempo.wordpress.com/180/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/flempo.wordpress.com/180/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/flempo.wordpress.com/180/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/flempo.wordpress.com/180/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/flempo.wordpress.com/180/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/flempo.wordpress.com/180/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/flempo.wordpress.com/180/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jan.flempo.com&blog=976303&post=180&subd=flempo&ref=&feed=1" /></div>]]></content:encoded>
110
+ <wfw:commentRss>http://jan.flempo.com/2008/12/17/focus-on-incremental-improvements/feed/</wfw:commentRss>
111
+
112
+
113
+ <media:content url="http://www.gravatar.com/avatar/ea875673199ca2e6b6ba0eeda0e7e009?s=96&#38;d=identicon" medium="image">
114
+ <media:title type="html">Jan Kubr</media:title>
115
+ </media:content>
116
+ </item>
117
+ <item>
118
+ <title>My last week&#8217;s best and worst pieces of entertainment</title>
119
+ <link>http://jan.flempo.com/2008/11/24/my-last-weeks-best-and-worst-pieces-of-entertainment/</link>
120
+
121
+ <comments>http://jan.flempo.com/2008/11/24/my-last-weeks-best-and-worst-pieces-of-entertainment/#comments</comments>
122
+ <pubDate>Mon, 24 Nov 2008 08:19:43 +0000</pubDate>
123
+ <dc:creator>Jan Kubr</dc:creator>
124
+
125
+ <category><![CDATA[Uncategorized]]></category>
126
+
127
+ <category><![CDATA[jeff stewart]]></category>
128
+
129
+ <category><![CDATA[Michel Houellebecq]]></category>
130
+
131
+ <category><![CDATA[movie]]></category>
132
+
133
+ <category><![CDATA[The Possibility of an Island]]></category>
134
+
135
+ <category><![CDATA[venture voice]]></category>
136
+
137
+ <guid isPermaLink="false">http://flempo.wordpress.com/?p=177</guid>
138
+ <description><![CDATA[You already know from me that Venture Voice is the best podcast on Earth (on entrepreneurship, at least), but you don&#8217;t know yet that its latest episode with Jeff Stewart is the best episode so far (quote: &#8220;The way you create wealth is by creating wealth for everybody.&#8221;). This might be the first and last [...]]]></description>
139
+ <content:encoded><![CDATA[<div class='snap_preview'><br /><p>You already know from me that <a href="http://venturevoice.com" target="_blank">Venture Voice</a> is the best podcast on Earth (on entrepreneurship, at least), but you don&#8217;t know yet that its latest <a href="http://www.venturevoice.com/2008/11/vv_show_51_jeff_stewart_of_mim.html" target="_blank">episode with Jeff Stewart</a> is the best episode so far (quote: &#8220;The way you create wealth is by creating wealth for everybody.&#8221;). This might be the first and last episode of any podcast I&#8217;ll ever listen to more than once.</p>
140
+ <p>I&#8217;ve written about <a href="http://jan.flempo.com/2008/07/20/a-book-read-the-possibility-of-an-island-by-michel-houellebecq/" target="_blank">Michel Houellebecq&#8217;s book The Possibility of an Island</a> before and although I wasn&#8217;t too excited about it, I think it&#8217;s worth spending the time to read it. But if you ever ever come across the movie that is based on this book, don&#8217;t even think about wasting your time watching it. It is by far the worst movie I&#8217;ve ever seen. Although I read the book, I have no idea what the movie is supposed to be about; it has no plot and no ending. Even though this is a 2008 movie, it&#8217;s full of boring long shots as if you were watching a movie from the seventies. Eh, to make it short, watch something else or read the book.</p>
141
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/flempo.wordpress.com/177/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/flempo.wordpress.com/177/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/flempo.wordpress.com/177/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/flempo.wordpress.com/177/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/flempo.wordpress.com/177/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/flempo.wordpress.com/177/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/flempo.wordpress.com/177/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/flempo.wordpress.com/177/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/flempo.wordpress.com/177/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/flempo.wordpress.com/177/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jan.flempo.com&blog=976303&post=177&subd=flempo&ref=&feed=1" /></div>]]></content:encoded>
142
+
143
+ <wfw:commentRss>http://jan.flempo.com/2008/11/24/my-last-weeks-best-and-worst-pieces-of-entertainment/feed/</wfw:commentRss>
144
+
145
+ <media:content url="http://www.gravatar.com/avatar/ea875673199ca2e6b6ba0eeda0e7e009?s=96&#38;d=identicon" medium="image">
146
+ <media:title type="html">Jan Kubr</media:title>
147
+ </media:content>
148
+ </item>
149
+ <item>
150
+ <title>Learning is annoying</title>
151
+
152
+ <link>http://jan.flempo.com/2008/11/12/learning-is-annoying/</link>
153
+ <comments>http://jan.flempo.com/2008/11/12/learning-is-annoying/#comments</comments>
154
+ <pubDate>Wed, 12 Nov 2008 08:13:39 +0000</pubDate>
155
+ <dc:creator>Jan Kubr</dc:creator>
156
+
157
+ <category><![CDATA[Uncategorized]]></category>
158
+
159
+ <category><![CDATA[annoying]]></category>
160
+
161
+ <category><![CDATA[learning]]></category>
162
+
163
+ <guid isPermaLink="false">http://flempo.wordpress.com/?p=174</guid>
164
+ <description><![CDATA[It is so uncomfortable not knowing something and not pretending you don&#8217;t need or want to know it. You are like a kid again, you are not this i-know-everything adult. You&#8217;re not an expert anymore, you are one of the newbies you sometimes laugh about.
165
+ You need to start over. With the technology you&#8217;ve worked with [...]]]></description>
166
+ <content:encoded><![CDATA[<div class='snap_preview'><br /><p>It is so uncomfortable not knowing something and not pretending you don&#8217;t need or want to know it. You are like a kid again, you are not this i-know-everything adult. You&#8217;re not an expert anymore, you are one of the newbies you sometimes laugh about.</p>
167
+ <p>You need to start over. With the technology you&#8217;ve worked with for the past three years, you need to read very little to get on top of the new stuff. You don&#8217;t need to read a whole book about it because most of its content is already something you know. With the new technology though, you need to read not only books, but also every shitty blog post that comes along. Just to cover the field. You need to try and fail and try again. Everything takes longer than you were used to.</p>
168
+ <p>It can be annoying and painful, but certainly not boring. And it is the single most important thing in your professional life. Without learning you can just die now.</p>
169
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/flempo.wordpress.com/174/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/flempo.wordpress.com/174/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/flempo.wordpress.com/174/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/flempo.wordpress.com/174/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/flempo.wordpress.com/174/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/flempo.wordpress.com/174/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/flempo.wordpress.com/174/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/flempo.wordpress.com/174/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/flempo.wordpress.com/174/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/flempo.wordpress.com/174/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jan.flempo.com&blog=976303&post=174&subd=flempo&ref=&feed=1" /></div>]]></content:encoded>
170
+ <wfw:commentRss>http://jan.flempo.com/2008/11/12/learning-is-annoying/feed/</wfw:commentRss>
171
+
172
+ <media:content url="http://www.gravatar.com/avatar/ea875673199ca2e6b6ba0eeda0e7e009?s=96&#38;d=identicon" medium="image">
173
+ <media:title type="html">Jan Kubr</media:title>
174
+
175
+ </media:content>
176
+ </item>
177
+ <item>
178
+ <title>Simple tip on how to be awesome in anything</title>
179
+ <link>http://jan.flempo.com/2008/11/11/simple-tip-on-how-to-be-awesome-in-anything/</link>
180
+ <comments>http://jan.flempo.com/2008/11/11/simple-tip-on-how-to-be-awesome-in-anything/#comments</comments>
181
+ <pubDate>Tue, 11 Nov 2008 10:19:27 +0000</pubDate>
182
+
183
+ <dc:creator>Jan Kubr</dc:creator>
184
+
185
+ <category><![CDATA[Uncategorized]]></category>
186
+
187
+ <category><![CDATA[anything]]></category>
188
+
189
+ <category><![CDATA[awesome]]></category>
190
+
191
+ <guid isPermaLink="false">http://flempo.wordpress.com/?p=170</guid>
192
+ <description><![CDATA[10,000 hours of practice will get you anywhere.
193
+ &#160;&#160;&#160;&#160;&#160;&#160; ]]></description>
194
+
195
+ <content:encoded><![CDATA[<div class='snap_preview'><br /><p><a href="http://gilesbowkett.blogspot.com/2008/11/how-to-be-fucking-awesome.html" target="_blank">10,000 hours of practice</a> will get you anywhere.</p>
196
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/flempo.wordpress.com/170/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/flempo.wordpress.com/170/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/flempo.wordpress.com/170/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/flempo.wordpress.com/170/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/flempo.wordpress.com/170/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/flempo.wordpress.com/170/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/flempo.wordpress.com/170/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/flempo.wordpress.com/170/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/flempo.wordpress.com/170/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/flempo.wordpress.com/170/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jan.flempo.com&blog=976303&post=170&subd=flempo&ref=&feed=1" /></div>]]></content:encoded>
197
+ <wfw:commentRss>http://jan.flempo.com/2008/11/11/simple-tip-on-how-to-be-awesome-in-anything/feed/</wfw:commentRss>
198
+
199
+ <media:content url="http://www.gravatar.com/avatar/ea875673199ca2e6b6ba0eeda0e7e009?s=96&#38;d=identicon" medium="image">
200
+ <media:title type="html">Jan Kubr</media:title>
201
+ </media:content>
202
+ </item>
203
+ <item>
204
+ <title>What building web apps is all about</title>
205
+
206
+ <link>http://jan.flempo.com/2008/11/07/what-is-building-web-apps-all-about/</link>
207
+ <comments>http://jan.flempo.com/2008/11/07/what-is-building-web-apps-all-about/#comments</comments>
208
+ <pubDate>Fri, 07 Nov 2008 13:43:32 +0000</pubDate>
209
+ <dc:creator>Jan Kubr</dc:creator>
210
+
211
+ <category><![CDATA[Uncategorized]]></category>
212
+
213
+ <category><![CDATA[webapps]]></category>
214
+
215
+ <guid isPermaLink="false">http://flempo.wordpress.com/?p=168</guid>
216
+ <description><![CDATA[Building web applications is all about these five things:
217
+
218
+ Usefulness
219
+ Usability
220
+ Efficiency
221
+ Security
222
+ Balance
223
+
224
+ &#160;&#160;&#160;&#160;&#160;&#160; ]]></description>
225
+ <content:encoded><![CDATA[<div class='snap_preview'><br /><p>Building web applications is all about these five things:</p>
226
+ <ol>
227
+ <li>Usefulness</li>
228
+ <li>Usability</li>
229
+ <li>Efficiency</li>
230
+ <li>Security</li>
231
+ <li>Balance</li>
232
+ </ol>
233
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/flempo.wordpress.com/168/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/flempo.wordpress.com/168/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/flempo.wordpress.com/168/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/flempo.wordpress.com/168/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/flempo.wordpress.com/168/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/flempo.wordpress.com/168/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/flempo.wordpress.com/168/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/flempo.wordpress.com/168/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/flempo.wordpress.com/168/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/flempo.wordpress.com/168/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jan.flempo.com&blog=976303&post=168&subd=flempo&ref=&feed=1" /></div>]]></content:encoded>
234
+ <wfw:commentRss>http://jan.flempo.com/2008/11/07/what-is-building-web-apps-all-about/feed/</wfw:commentRss>
235
+
236
+ <media:content url="http://www.gravatar.com/avatar/ea875673199ca2e6b6ba0eeda0e7e009?s=96&#38;d=identicon" medium="image">
237
+ <media:title type="html">Jan Kubr</media:title>
238
+ </media:content>
239
+
240
+ </item>
241
+ <item>
242
+ <title>SEO is bullshit</title>
243
+ <link>http://jan.flempo.com/2008/11/01/seo-is-bullshit/</link>
244
+ <comments>http://jan.flempo.com/2008/11/01/seo-is-bullshit/#comments</comments>
245
+ <pubDate>Sat, 01 Nov 2008 21:45:50 +0000</pubDate>
246
+ <dc:creator>Jan Kubr</dc:creator>
247
+
248
+
249
+ <category><![CDATA[Uncategorized]]></category>
250
+
251
+ <category><![CDATA[bullshit]]></category>
252
+
253
+ <category><![CDATA[seo]]></category>
254
+
255
+ <guid isPermaLink="false">http://flempo.wordpress.com/?p=166</guid>
256
+ <description><![CDATA[SEO is using deodorant instead of washing.
257
+ &#160;&#160;&#160;&#160;&#160;&#160; ]]></description>
258
+ <content:encoded><![CDATA[<div class='snap_preview'><br /><p><a title="SEO is bullshit" href="http://www.contrast.ie/blog/seo-is-bullshit/" target="_blank">SEO</a><a title="SEO is bullshit" href="http://www.contrast.ie/blog/seo-is-bullshit/" target="_blank"> is using deodorant instead of washing</a>.</p>
259
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/flempo.wordpress.com/166/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/flempo.wordpress.com/166/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/flempo.wordpress.com/166/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/flempo.wordpress.com/166/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/flempo.wordpress.com/166/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/flempo.wordpress.com/166/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/flempo.wordpress.com/166/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/flempo.wordpress.com/166/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/flempo.wordpress.com/166/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/flempo.wordpress.com/166/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jan.flempo.com&blog=976303&post=166&subd=flempo&ref=&feed=1" /></div>]]></content:encoded>
260
+ <wfw:commentRss>http://jan.flempo.com/2008/11/01/seo-is-bullshit/feed/</wfw:commentRss>
261
+
262
+
263
+ <media:content url="http://www.gravatar.com/avatar/ea875673199ca2e6b6ba0eeda0e7e009?s=96&#38;d=identicon" medium="image">
264
+ <media:title type="html">Jan Kubr</media:title>
265
+ </media:content>
266
+ </item>
267
+ <item>
268
+ <title>A book read: A Whole New Mind by Daniel H. Pink</title>
269
+ <link>http://jan.flempo.com/2008/10/27/a-book-read-a-whole-new-mind-by-daniel-h-pink/</link>
270
+
271
+ <comments>http://jan.flempo.com/2008/10/27/a-book-read-a-whole-new-mind-by-daniel-h-pink/#comments</comments>
272
+ <pubDate>Mon, 27 Oct 2008 21:16:01 +0000</pubDate>
273
+ <dc:creator>Jan Kubr</dc:creator>
274
+
275
+ <category><![CDATA[Uncategorized]]></category>
276
+
277
+ <category><![CDATA[a whole new mind]]></category>
278
+
279
+ <category><![CDATA[daniel h. pink]]></category>
280
+
281
+ <category><![CDATA[jill taylor]]></category>
282
+
283
+ <guid isPermaLink="false">http://flempo.wordpress.com/?p=160</guid>
284
+ <description><![CDATA[I usually don&#8217;t skip pages. Usually.
285
+ In the beginning of this book Daniel explains the difference about the two hemispheres of our brains as scientists see them today. I know you know it, but you still can watch this video about Jill Bolte Taylor&#8217;s stroke; it will fill the gaps.
286
+ Then he explains how skills driven by [...]]]></description>
287
+ <content:encoded><![CDATA[<div class='snap_preview'><br /><p>I usually don&#8217;t skip pages. Usually.</p>
288
+ <p>In the beginning of this book Daniel explains the difference about the two hemispheres of our brains as scientists see them today. I know you know it, but you still can watch this <a title="Jill Bolte Taylor's powerful stroke" href="http://www.ted.com/index.php/talks/jill_bolte_taylor_s_powerful_stroke_of_insight.html" target="_blank">video about Jill Bolte Taylor&#8217;s stroke</a>; it will fill the gaps.</p>
289
+ <p>Then he explains how skills driven by the right hemisphere (design, story-telling, synthesis, empathy, play, and [deeper] meaning) will be more appreciated that those controlled by the left one since they can be easily automated or cheaply outsourced.</p>
290
+ <p>Is there anything surprising in this book? No. Is there any reason you should pick this book over <a title="The World Is Flat" href="http://jan.flempo.com/2007/08/13/the-east-is-working-while-the-west/" target="_blank">Friedman&#8217;s The World Is Flat</a>? No. Do I have the slightest idea why Seth Godin recommended this book? Hell no.</p>
291
+ <p>Fortunately I am reading a very interesting book now; stay tuned for the next review.</p>
292
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/flempo.wordpress.com/160/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/flempo.wordpress.com/160/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/flempo.wordpress.com/160/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/flempo.wordpress.com/160/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/flempo.wordpress.com/160/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/flempo.wordpress.com/160/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/flempo.wordpress.com/160/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/flempo.wordpress.com/160/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/flempo.wordpress.com/160/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/flempo.wordpress.com/160/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jan.flempo.com&blog=976303&post=160&subd=flempo&ref=&feed=1" /></div>]]></content:encoded>
293
+ <wfw:commentRss>http://jan.flempo.com/2008/10/27/a-book-read-a-whole-new-mind-by-daniel-h-pink/feed/</wfw:commentRss>
294
+
295
+ <media:content url="http://www.gravatar.com/avatar/ea875673199ca2e6b6ba0eeda0e7e009?s=96&#38;d=identicon" medium="image">
296
+ <media:title type="html">Jan Kubr</media:title>
297
+
298
+ </media:content>
299
+ </item>
300
+ <item>
301
+ <title>Personal development education 2.0</title>
302
+ <link>http://jan.flempo.com/2008/10/16/personal-development-education-20/</link>
303
+ <comments>http://jan.flempo.com/2008/10/16/personal-development-education-20/#comments</comments>
304
+ <pubDate>Thu, 16 Oct 2008 13:52:29 +0000</pubDate>
305
+
306
+ <dc:creator>Jan Kubr</dc:creator>
307
+
308
+ <category><![CDATA[Uncategorized]]></category>
309
+
310
+ <category><![CDATA[coach tv]]></category>
311
+
312
+ <category><![CDATA[personal development]]></category>
313
+
314
+ <guid isPermaLink="false">http://flempo.wordpress.com/?p=162</guid>
315
+ <description><![CDATA[I sort of stopped reading books about personal development. Now Coach TV is my self development education. Try to watch a few videos, you might like it.
316
+ &#160;&#160;&#160;&#160;&#160;&#160; ]]></description>
317
+
318
+ <content:encoded><![CDATA[<div class='snap_preview'><br /><p>I sort of <a href="http://jan.flempo.com/2007/05/13/personal-development/" target="_blank">stopped reading books about personal development</a>. Now <a title="Coach TV" href="http://coachtvblog.com/" target="_blank">Coach TV</a> is my self development education. Try to watch a few videos, you might like it.</p>
319
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/flempo.wordpress.com/162/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/flempo.wordpress.com/162/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/flempo.wordpress.com/162/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/flempo.wordpress.com/162/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/flempo.wordpress.com/162/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/flempo.wordpress.com/162/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/flempo.wordpress.com/162/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/flempo.wordpress.com/162/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/flempo.wordpress.com/162/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/flempo.wordpress.com/162/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jan.flempo.com&blog=976303&post=162&subd=flempo&ref=&feed=1" /></div>]]></content:encoded>
320
+ <wfw:commentRss>http://jan.flempo.com/2008/10/16/personal-development-education-20/feed/</wfw:commentRss>
321
+
322
+ <media:content url="http://www.gravatar.com/avatar/ea875673199ca2e6b6ba0eeda0e7e009?s=96&#38;d=identicon" medium="image">
323
+ <media:title type="html">Jan Kubr</media:title>
324
+ </media:content>
325
+ </item>
326
+ <item>
327
+ <title>Telfa in the final of the Startup Show contest!</title>
328
+
329
+ <link>http://jan.flempo.com/2008/10/12/telfa-in-the-final-of-the-startup-show-contest/</link>
330
+ <comments>http://jan.flempo.com/2008/10/12/telfa-in-the-final-of-the-startup-show-contest/#comments</comments>
331
+ <pubDate>Sun, 12 Oct 2008 11:59:51 +0000</pubDate>
332
+ <dc:creator>Jan Kubr</dc:creator>
333
+
334
+ <category><![CDATA[Uncategorized]]></category>
335
+
336
+ <category><![CDATA[startup show]]></category>
337
+
338
+ <category><![CDATA[telfa]]></category>
339
+
340
+ <category><![CDATA[webexpo]]></category>
341
+
342
+ <guid isPermaLink="false">http://flempo.wordpress.com/?p=156</guid>
343
+ <description><![CDATA[Telfa (our telephone exchange / call center solution) is in the final of Startup Show! Startup Show is a contest being held as part of WebExpo, a Prague&#8217;s conference about web technologies.
344
+ I&#8217;m far from overestimating this thing, but being able to present the product to a room (hopefully not too empty one..) of web enthusiasts [...]]]></description>
345
+ <content:encoded><![CDATA[<div class='snap_preview'><br /><p><a title="telephone exchange" href="http://telfa.cz" target="_blank">Telfa</a> (<a title="Livispace" href="http://livispace.cz" target="_blank">our</a> telephone exchange / call center solution) is in the final of <a title="Startup Show" href="http://webexpo.cz/souteze/#switch-startup-show" target="_blank">Startup Show</a>! Startup Show is a contest being held as part of <a title="WebExpo Prague 2008 " href="http://webexpo.cz/" target="_blank">WebExpo</a>, a Prague&#8217;s conference about web technologies.</p>
346
+ <p>I&#8217;m far from overestimating this thing, but being able to present the product to a room (hopefully not too empty one..) of web enthusiasts is better than.. well, not to do it.. Feedback is important and this is a way how to get it for free. Not to mention it is free advertising as well. Now imagine we even meet some new customers..</p>
347
+ <p>I just can&#8217;t find any cons here apart from the fact that we&#8217;ll need to work even harder on this the next week.. Pretty amazing stuff.</p>
348
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/flempo.wordpress.com/156/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/flempo.wordpress.com/156/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/flempo.wordpress.com/156/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/flempo.wordpress.com/156/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/flempo.wordpress.com/156/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/flempo.wordpress.com/156/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/flempo.wordpress.com/156/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/flempo.wordpress.com/156/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/flempo.wordpress.com/156/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/flempo.wordpress.com/156/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jan.flempo.com&blog=976303&post=156&subd=flempo&ref=&feed=1" /></div>]]></content:encoded>
349
+ <wfw:commentRss>http://jan.flempo.com/2008/10/12/telfa-in-the-final-of-the-startup-show-contest/feed/</wfw:commentRss>
350
+
351
+
352
+ <media:content url="http://www.gravatar.com/avatar/ea875673199ca2e6b6ba0eeda0e7e009?s=96&#38;d=identicon" medium="image">
353
+ <media:title type="html">Jan Kubr</media:title>
354
+ </media:content>
355
+ </item>
356
+ </channel>
357
+ </rss>
@@ -0,0 +1,8 @@
1
+ require 'rubygems'
2
+ require 'spec'
3
+ Spec::Runner.configure do |config|
4
+ config.mock_with :mocha
5
+ end
6
+
7
+ $:.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
8
+ require 'rss_parser'
metadata ADDED
@@ -0,0 +1,119 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rss_parser
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Jan Kubr
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2010-03-15 00:00:00 +01:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: nokogiri
17
+ type: :runtime
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: "0"
24
+ version:
25
+ - !ruby/object:Gem::Dependency
26
+ name: cucumber
27
+ type: :development
28
+ version_requirement:
29
+ version_requirements: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: "0"
34
+ version:
35
+ - !ruby/object:Gem::Dependency
36
+ name: rspec
37
+ type: :development
38
+ version_requirement:
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ version: "0"
44
+ version:
45
+ - !ruby/object:Gem::Dependency
46
+ name: mocha
47
+ type: :development
48
+ version_requirement:
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: "0"
54
+ version:
55
+ - !ruby/object:Gem::Dependency
56
+ name: simple-rss
57
+ type: :development
58
+ version_requirement:
59
+ version_requirements: !ruby/object:Gem::Requirement
60
+ requirements:
61
+ - - ">="
62
+ - !ruby/object:Gem::Version
63
+ version: "0"
64
+ version:
65
+ description: Simple RSS parser that supports feeds with HTTP Basic Authentication
66
+ email: jan.kubr@gmail.com
67
+ executables: []
68
+
69
+ extensions: []
70
+
71
+ extra_rdoc_files:
72
+ - README.rdoc
73
+ - lib/rss_parser.rb
74
+ files:
75
+ - README.rdoc
76
+ - Rakefile
77
+ - features/rss_parsing.feature
78
+ - features/steps/rss_steps.rb
79
+ - lib/rss_parser.rb
80
+ - rss_parser.gemspec
81
+ - spec/rss_spec.rb
82
+ - spec/sample_feed.xml
83
+ - spec/spec_helper.rb
84
+ - Manifest
85
+ has_rdoc: true
86
+ homepage: http://github.com/honza/rss_parser
87
+ licenses: []
88
+
89
+ post_install_message:
90
+ rdoc_options:
91
+ - --line-numbers
92
+ - --inline-source
93
+ - --title
94
+ - Rss_parser
95
+ - --main
96
+ - README.rdoc
97
+ require_paths:
98
+ - lib
99
+ required_ruby_version: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: "0"
104
+ version:
105
+ required_rubygems_version: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - ">="
108
+ - !ruby/object:Gem::Version
109
+ version: "1.2"
110
+ version:
111
+ requirements: []
112
+
113
+ rubyforge_project: rss_parser
114
+ rubygems_version: 1.3.5
115
+ signing_key:
116
+ specification_version: 3
117
+ summary: Simple RSS parser that supports feeds with HTTP Basic Authentication
118
+ test_files: []
119
+