loofah 2.3.1
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of loofah might be problematic. Click here for more details.
- checksums.yaml +7 -0
- data/.gemtest +0 -0
- data/CHANGELOG.md +336 -0
- data/Gemfile +22 -0
- data/MIT-LICENSE.txt +23 -0
- data/Manifest.txt +41 -0
- data/README.md +363 -0
- data/Rakefile +81 -0
- data/SECURITY.md +18 -0
- data/benchmark/benchmark.rb +149 -0
- data/benchmark/fragment.html +96 -0
- data/benchmark/helper.rb +73 -0
- data/benchmark/www.slashdot.com.html +2560 -0
- data/lib/loofah.rb +83 -0
- data/lib/loofah/elements.rb +92 -0
- data/lib/loofah/helpers.rb +103 -0
- data/lib/loofah/html/document.rb +18 -0
- data/lib/loofah/html/document_fragment.rb +40 -0
- data/lib/loofah/html5/libxml2_workarounds.rb +26 -0
- data/lib/loofah/html5/safelist.rb +796 -0
- data/lib/loofah/html5/scrub.rb +133 -0
- data/lib/loofah/instance_methods.rb +127 -0
- data/lib/loofah/metahelpers.rb +13 -0
- data/lib/loofah/scrubber.rb +133 -0
- data/lib/loofah/scrubbers.rb +297 -0
- data/lib/loofah/xml/document.rb +13 -0
- data/lib/loofah/xml/document_fragment.rb +23 -0
- data/test/assets/msword.html +63 -0
- data/test/assets/testdata_sanitizer_tests1.dat +502 -0
- data/test/helper.rb +18 -0
- data/test/html5/test_sanitizer.rb +401 -0
- data/test/html5/test_scrub.rb +10 -0
- data/test/integration/test_ad_hoc.rb +220 -0
- data/test/integration/test_helpers.rb +43 -0
- data/test/integration/test_html.rb +72 -0
- data/test/integration/test_scrubbers.rb +400 -0
- data/test/integration/test_xml.rb +55 -0
- data/test/unit/test_api.rb +142 -0
- data/test/unit/test_encoding.rb +20 -0
- data/test/unit/test_helpers.rb +62 -0
- data/test/unit/test_scrubber.rb +229 -0
- data/test/unit/test_scrubbers.rb +14 -0
- metadata +287 -0
data/Rakefile
ADDED
@@ -0,0 +1,81 @@
|
|
1
|
+
require "rubygems"
|
2
|
+
require "hoe"
|
3
|
+
require "concourse"
|
4
|
+
|
5
|
+
Hoe.plugin :git
|
6
|
+
Hoe.plugin :gemspec
|
7
|
+
Hoe.plugin :bundler
|
8
|
+
Hoe.plugin :debugging
|
9
|
+
|
10
|
+
Hoe.spec "loofah" do
|
11
|
+
developer "Mike Dalessio", "mike.dalessio@gmail.com"
|
12
|
+
developer "Bryan Helmkamp", "bryan@brynary.com"
|
13
|
+
|
14
|
+
self.extra_rdoc_files = FileList["*.md"]
|
15
|
+
self.history_file = "CHANGELOG.md"
|
16
|
+
self.readme_file = "README.md"
|
17
|
+
self.license "MIT"
|
18
|
+
|
19
|
+
extra_deps << ["nokogiri", ">=1.5.9"]
|
20
|
+
extra_deps << ["crass", "~> 1.0.2"]
|
21
|
+
|
22
|
+
extra_dev_deps << ["rake", "~> 12.3"]
|
23
|
+
extra_dev_deps << ["minitest", "~>2.2"]
|
24
|
+
extra_dev_deps << ["rr", "~>1.2.0"]
|
25
|
+
extra_dev_deps << ["json", "~> 2.2.0"]
|
26
|
+
extra_dev_deps << ["hoe-gemspec", "~> 1.0"]
|
27
|
+
extra_dev_deps << ["hoe-debugging", "~> 2.0"]
|
28
|
+
extra_dev_deps << ["hoe-bundler", "~> 1.5"]
|
29
|
+
extra_dev_deps << ["hoe-git", "~> 1.6"]
|
30
|
+
extra_dev_deps << ["concourse", ">=0.26.0"]
|
31
|
+
end
|
32
|
+
|
33
|
+
task :gemspec do
|
34
|
+
system %q(rake debug_gem | grep -v "^\(in " > loofah.gemspec)
|
35
|
+
end
|
36
|
+
|
37
|
+
task :redocs => :fix_css
|
38
|
+
task :docs => :fix_css
|
39
|
+
task :fix_css do
|
40
|
+
better_css = <<-EOT
|
41
|
+
.method-description pre {
|
42
|
+
margin : 1em 0 ;
|
43
|
+
}
|
44
|
+
|
45
|
+
.method-description ul {
|
46
|
+
padding : .5em 0 .5em 2em ;
|
47
|
+
}
|
48
|
+
|
49
|
+
.method-description p {
|
50
|
+
margin-top : .5em ;
|
51
|
+
}
|
52
|
+
|
53
|
+
#main ul, div#documentation ul {
|
54
|
+
list-style-type : disc ! IMPORTANT ;
|
55
|
+
list-style-position : inside ! IMPORTANT ;
|
56
|
+
}
|
57
|
+
|
58
|
+
h2 + ul {
|
59
|
+
margin-top : 1em;
|
60
|
+
}
|
61
|
+
EOT
|
62
|
+
puts "* fixing css"
|
63
|
+
File.open("doc/rdoc.css", "a") { |f| f.write better_css }
|
64
|
+
end
|
65
|
+
|
66
|
+
desc "generate and upload docs to rubyforge"
|
67
|
+
task :doc_upload_to_rubyforge => :docs do
|
68
|
+
Dir.chdir "doc" do
|
69
|
+
system "rsync -avz --delete * rubyforge.org:/var/www/gforge-projects/loofah/loofah"
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
desc "generate safelists from W3C specifications"
|
74
|
+
task :generate_safelists do
|
75
|
+
load "tasks/generate-safelists"
|
76
|
+
end
|
77
|
+
|
78
|
+
Concourse.new("loofah", fly_target: "ci") do |c|
|
79
|
+
c.add_pipeline "loofah", "loofah.yml"
|
80
|
+
c.add_pipeline "loofah-pr", "loofah-pr.yml"
|
81
|
+
end
|
data/SECURITY.md
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
# Security and Vulnerability Reporting
|
2
|
+
|
3
|
+
The Loofah core contributors take security very seriously and investigate all reported vulnerabilities.
|
4
|
+
|
5
|
+
If you would like to report a vulnerablity or have a security concern regarding Loofah, please [report it via HackerOne](https://hackerone.com/loofah/reports/new).
|
6
|
+
|
7
|
+
Your report will be acknowledged within 24 hours, and you'll receive a more detailed response within 72 hours indicating next steps in handling your report.
|
8
|
+
|
9
|
+
If you have not received a reply to your submission within 48 hours, there are a few steps you can take:
|
10
|
+
|
11
|
+
* Contact the current security coordinator (Mike Dalessio <mike.dalessio@gmail.com>)
|
12
|
+
* Email the Loofah user group at loofah-talk@googlegroups.com (archive at https://groups.google.com/forum/#!forum/loofah-talk)
|
13
|
+
|
14
|
+
Please note, the user group list is a public area. When escalating in that venue, please do not discuss your issue. Simply say that you're trying to get a hold of someone from the core team.
|
15
|
+
|
16
|
+
The information you share with the Loofah core contributors as part of this process will be kept confidential within the team, unless or until we need to share information upstream with our dependent libraries' core teams, at which point we will notify you.
|
17
|
+
|
18
|
+
If a vulnerability is first reported by you, we will credit you with the discovery in the public disclosure.
|
@@ -0,0 +1,149 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
require "#{File.dirname(__FILE__)}/helper.rb"
|
3
|
+
|
4
|
+
def compare_scrub_methods
|
5
|
+
snip = "<div>foo</div><foo>fuxx <b>quux</b></foo><script>i have a chair</script>"
|
6
|
+
puts "starting with:\n#{snip}"
|
7
|
+
puts
|
8
|
+
puts RailsSanitize.new.sanitize(snip) # => Rails.sanitize / scrub!(:prune).to_s
|
9
|
+
puts Loofah::Helpers.sanitize(snip)
|
10
|
+
puts "--"
|
11
|
+
puts RailsSanitize.new.strip_tags(snip) # => Rails.strip_tags / parse().text
|
12
|
+
puts Loofah::Helpers.strip_tags(snip)
|
13
|
+
puts "--"
|
14
|
+
puts Sanitize.clean(snip, Sanitize::Config::RELAXED) # => scrub!(:strip).to_s
|
15
|
+
puts Loofah.scrub_fragment(snip, :strip).to_s
|
16
|
+
puts "--"
|
17
|
+
puts HTML5libSanitize.new.sanitize(snip) # => scrub!(:escape).to_s
|
18
|
+
puts Loofah.scrub_fragment(snip, :escape).to_s
|
19
|
+
puts "--"
|
20
|
+
puts HTMLFilter.new.filter(snip)
|
21
|
+
puts Loofah.scrub_fragment(snip, :strip).to_s
|
22
|
+
puts
|
23
|
+
end
|
24
|
+
|
25
|
+
module TestSet
|
26
|
+
def test_set options={}
|
27
|
+
scale = options[:rehearse] ? 10 : 1
|
28
|
+
puts self.class.name
|
29
|
+
|
30
|
+
n = 100 / scale
|
31
|
+
puts " Large document, #{BIG_FILE.length} bytes (x#{n})"
|
32
|
+
bench BIG_FILE, n, false
|
33
|
+
puts
|
34
|
+
|
35
|
+
n = 1000 / scale
|
36
|
+
puts " Small fragment, #{FRAGMENT.length} bytes (x#{n})"
|
37
|
+
bench FRAGMENT, n, true
|
38
|
+
puts
|
39
|
+
|
40
|
+
n = 10_000 / scale
|
41
|
+
puts " Text snippet, #{SNIPPET.length} bytes (x#{n})"
|
42
|
+
bench SNIPPET, n, true
|
43
|
+
puts
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
class HeadToHead < Measure
|
48
|
+
end
|
49
|
+
|
50
|
+
class HeadToHeadRailsSanitize < Measure
|
51
|
+
include TestSet
|
52
|
+
def bench(content, ntimes, fragment_p)
|
53
|
+
clear_measure
|
54
|
+
|
55
|
+
measure "Loofah::Helpers.sanitize", ntimes do
|
56
|
+
Loofah::Helpers.sanitize content
|
57
|
+
end
|
58
|
+
|
59
|
+
sanitizer = RailsSanitize.new
|
60
|
+
measure "ActionView sanitize", ntimes do
|
61
|
+
sanitizer.sanitize(content)
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
class HeadToHeadRailsStripTags < Measure
|
67
|
+
include TestSet
|
68
|
+
def bench(content, ntimes, fragment_p)
|
69
|
+
clear_measure
|
70
|
+
|
71
|
+
measure "Loofah::Helpers.strip_tags", ntimes do
|
72
|
+
Loofah::Helpers.strip_tags content
|
73
|
+
end
|
74
|
+
|
75
|
+
sanitizer = RailsSanitize.new
|
76
|
+
measure "ActionView strip_tags", ntimes do
|
77
|
+
sanitizer.strip_tags(content)
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
class HeadToHeadSanitizerSanitize < Measure
|
83
|
+
include TestSet
|
84
|
+
def bench(content, ntimes, fragment_p)
|
85
|
+
clear_measure
|
86
|
+
|
87
|
+
measure "Loofah :strip", ntimes do
|
88
|
+
if fragment_p
|
89
|
+
Loofah.scrub_fragment(content, :strip).to_s
|
90
|
+
else
|
91
|
+
Loofah.scrub_document(content, :strip).to_s
|
92
|
+
end
|
93
|
+
end
|
94
|
+
|
95
|
+
measure "Sanitize.clean", ntimes do
|
96
|
+
Sanitize.clean(content, Sanitize::Config::RELAXED)
|
97
|
+
end
|
98
|
+
end
|
99
|
+
end
|
100
|
+
|
101
|
+
class HeadToHeadHtml5LibSanitize < Measure
|
102
|
+
include TestSet
|
103
|
+
def bench(content, ntimes, fragment_p)
|
104
|
+
clear_measure
|
105
|
+
|
106
|
+
measure "Loofah :escape", ntimes do
|
107
|
+
if fragment_p
|
108
|
+
Loofah.scrub_fragment(content, :escape).to_s
|
109
|
+
else
|
110
|
+
Loofah.scrub_document(content, :escape).to_s
|
111
|
+
end
|
112
|
+
end
|
113
|
+
|
114
|
+
html5_sanitizer = HTML5libSanitize.new
|
115
|
+
measure "HTML5lib.sanitize", ntimes do
|
116
|
+
html5_sanitizer.sanitize(content)
|
117
|
+
end
|
118
|
+
end
|
119
|
+
end
|
120
|
+
|
121
|
+
class HeadToHeadHTMLFilter < Measure
|
122
|
+
include TestSet
|
123
|
+
def bench(content, ntimes, fragment_p)
|
124
|
+
clear_measure
|
125
|
+
|
126
|
+
measure "Loofah::Helpers.sanitize", ntimes do
|
127
|
+
Loofah::Helpers.sanitize content
|
128
|
+
end
|
129
|
+
|
130
|
+
sanitizer = HTMLFilter.new
|
131
|
+
measure "HTMLFilter.filter", ntimes do
|
132
|
+
sanitizer.filter(content)
|
133
|
+
end
|
134
|
+
end
|
135
|
+
end
|
136
|
+
|
137
|
+
puts "Nokogiri version: #{Nokogiri::VERSION_INFO.inspect}"
|
138
|
+
puts "Loofah version: #{Loofah::VERSION.inspect}"
|
139
|
+
|
140
|
+
benches = []
|
141
|
+
benches << HeadToHeadRailsSanitize.new
|
142
|
+
benches << HeadToHeadRailsStripTags.new
|
143
|
+
benches << HeadToHeadSanitizerSanitize.new
|
144
|
+
benches << HeadToHeadHtml5LibSanitize.new
|
145
|
+
benches << HeadToHeadHTMLFilter.new
|
146
|
+
puts "---------- rehearsal ----------"
|
147
|
+
benches.each { |bench| bench.test_set :rehearse => true }
|
148
|
+
puts "---------- realsies ----------"
|
149
|
+
benches.each { |bench| bench.test_set }
|
@@ -0,0 +1,96 @@
|
|
1
|
+
<div id="top_parent"></div>
|
2
|
+
|
3
|
+
<div id="jump">
|
4
|
+
<a href="#main-articles">Stories</a>
|
5
|
+
<br>
|
6
|
+
<a href="#blocks">Slash Boxes</a>
|
7
|
+
<br>
|
8
|
+
<a href="#comments">Comments</a>
|
9
|
+
</div>
|
10
|
+
<a name="topothepage"></a>
|
11
|
+
<div id="doc3" class="yui-t6 index2 mainpage ac ">
|
12
|
+
<div id="hd" >
|
13
|
+
<div id="logo" >
|
14
|
+
|
15
|
+
|
16
|
+
|
17
|
+
<h1><a href="//slashdot.org"><span>Slashdot</span></a></h1>
|
18
|
+
<div id="slogan"><h2>News for nerds, stuff that matters</h2></div>
|
19
|
+
</div>
|
20
|
+
<a href="#articles" class="hidden">Jump to articles</a>
|
21
|
+
<div class="nav">
|
22
|
+
<ul>
|
23
|
+
|
24
|
+
|
25
|
+
|
26
|
+
<li><a href="//slashdot.org/submit.pl" title="Submit a story to Slashdot">Submit Story</a></li>
|
27
|
+
<li><a href="//slashdot.org/help" title="Frequently asked questions on Slashdot">Help</a></li>
|
28
|
+
<li><a href="//slashdot.org/login.pl" onclick="show_login_box(); return false;">Log In</a></li>
|
29
|
+
|
30
|
+
</ul>
|
31
|
+
</div>
|
32
|
+
|
33
|
+
|
34
|
+
|
35
|
+
|
36
|
+
|
37
|
+
<div id="fh_picker_search" style="display: block;">
|
38
|
+
<form method="get" action="//slashdot.org/index2.pl">
|
39
|
+
<fieldset class="mode-filter mode-anon">
|
40
|
+
<legend>Search</legend>
|
41
|
+
|
42
|
+
|
43
|
+
<input class="query" type="text" name="fhfilter" value="" id="searchquery"> <input type="button" class="setfhfilter" value="Filter" id="viewsearch" style="display:none"> <input type="submit" class="setsearchfilter" value="Search" id="fhsearch" style="display:none">
|
44
|
+
<noscript><input type="submit" class="setsearchfilter" value="Search"></noscript>
|
45
|
+
|
46
|
+
<script type="text/javascript">
|
47
|
+
var slash_search;
|
48
|
+
$(function(){
|
49
|
+
if (has_hose()) {
|
50
|
+
var $search_text = $any('searchquery'),
|
51
|
+
$panel = $search_text.closest('fieldset');
|
52
|
+
$search_buttons = $('#viewsearch,#fhsearch'),
|
53
|
+
ws = /\s+/;
|
54
|
+
|
55
|
+
|
56
|
+
|
57
|
+
// The search buttons set the firehose option named by their class.
|
58
|
+
$search_buttons.
|
59
|
+
click(function(){
|
60
|
+
var which=this.className;
|
61
|
+
$search_text.each(function(){
|
62
|
+
firehose_set_options(which, this.value);
|
63
|
+
});
|
64
|
+
return false;
|
65
|
+
});
|
66
|
+
|
67
|
+
// Provide a globally available function that does whatever clicking the search button would do.
|
68
|
+
slash_search = function( query ){
|
69
|
+
query!==undefined && $search_text.val(query);
|
70
|
+
$search_buttons.filter(':visible:first').click();
|
71
|
+
};
|
72
|
+
|
73
|
+
$search_text.
|
74
|
+
keydown(function( e ){ // ESCAPE restores the filter in-effect.
|
75
|
+
if ( e.which == $.ui.keyCode.ESCAPE ) {
|
76
|
+
$search_text.val(firehose_settings.fhfilter||'');
|
77
|
+
return true;
|
78
|
+
}
|
79
|
+
if ( e.which == $.ui.keyCode.ENTER ) {
|
80
|
+
slash_search();
|
81
|
+
return false;
|
82
|
+
}
|
83
|
+
});
|
84
|
+
|
85
|
+
$(document).
|
86
|
+
bind('firehose-setting-setfhfilter firehose-setting-setsearchfilter', function( e, new_query ){
|
87
|
+
$('fieldset input[type=text]').each(function(){
|
88
|
+
$(this).blur().val(new_query);
|
89
|
+
});
|
90
|
+
}).
|
91
|
+
bind('set-options.firehose', function( e, data ){
|
92
|
+
data.select_section && $panel.toggleClass('mode-filter', data.id!=='unsaved');
|
93
|
+
});
|
94
|
+
}
|
95
|
+
});
|
96
|
+
</script>
|
data/benchmark/helper.rb
ADDED
@@ -0,0 +1,73 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'open-uri'
|
3
|
+
require 'hpricot'
|
4
|
+
require File.expand_path(File.dirname(__FILE__) + "/../lib/loofah")
|
5
|
+
require 'benchmark'
|
6
|
+
require "action_view"
|
7
|
+
require "action_controller/vendor/html-scanner"
|
8
|
+
require "sanitize"
|
9
|
+
require 'hitimes'
|
10
|
+
require 'htmlfilter'
|
11
|
+
|
12
|
+
unless defined?(HTMLFilter)
|
13
|
+
HTMLFilter = HtmlFilter
|
14
|
+
end
|
15
|
+
|
16
|
+
class RailsSanitize
|
17
|
+
include ActionView::Helpers::SanitizeHelper
|
18
|
+
extend ActionView::Helpers::SanitizeHelper::ClassMethods
|
19
|
+
end
|
20
|
+
|
21
|
+
class HTML5libSanitize
|
22
|
+
require 'html5/html5parser'
|
23
|
+
require 'html5/liberalxmlparser'
|
24
|
+
require 'html5/treewalkers'
|
25
|
+
require 'html5/treebuilders'
|
26
|
+
require 'html5/serializer'
|
27
|
+
require 'html5/sanitizer'
|
28
|
+
|
29
|
+
include HTML5
|
30
|
+
|
31
|
+
def sanitize(html)
|
32
|
+
HTMLParser.parse_fragment(html, {
|
33
|
+
:tokenizer => HTMLSanitizer,
|
34
|
+
:encoding => 'utf-8',
|
35
|
+
:tree => TreeBuilders::REXML::TreeBuilder
|
36
|
+
}).to_s
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
BIG_FILE = File.read(File.join(File.dirname(__FILE__), "www.slashdot.com.html"))
|
41
|
+
FRAGMENT = File.read(File.join(File.dirname(__FILE__), "fragment.html"))
|
42
|
+
SNIPPET = "This is typical form field input in <b>length and content."
|
43
|
+
|
44
|
+
class Measure
|
45
|
+
def initialize
|
46
|
+
clear_measure
|
47
|
+
end
|
48
|
+
|
49
|
+
def clear_measure
|
50
|
+
@first_time = true
|
51
|
+
@baseline = nil
|
52
|
+
end
|
53
|
+
|
54
|
+
def measure(name, ntimes)
|
55
|
+
if @first_time
|
56
|
+
printf " %-30s %7s %8s %5s\n", "", "total", "single", "rel"
|
57
|
+
@first_time = false
|
58
|
+
end
|
59
|
+
timer = Hitimes::TimedMetric.new(name)
|
60
|
+
timer.start
|
61
|
+
ntimes.times do |j|
|
62
|
+
yield
|
63
|
+
end
|
64
|
+
timer.stop
|
65
|
+
if @baseline
|
66
|
+
printf " %30s %7.3f (%8.6f) %5.2fx\n", timer.name, timer.sum, timer.sum / ntimes, timer.sum / @baseline
|
67
|
+
else
|
68
|
+
@baseline = timer.sum
|
69
|
+
printf " %30s %7.3f (%8.6f) %5s\n", timer.name, timer.sum, timer.sum / ntimes, "-"
|
70
|
+
end
|
71
|
+
timer.sum
|
72
|
+
end
|
73
|
+
end
|
@@ -0,0 +1,2560 @@
|
|
1
|
+
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
|
2
|
+
"http://www.w3.org/TR/html4/strict.dtd">
|
3
|
+
<html>
|
4
|
+
<head>
|
5
|
+
<script id="before-content" type="text/javascript">
|
6
|
+
var pageload = {
|
7
|
+
pagemark: '202832641597314907',
|
8
|
+
before_content: (new Date).getTime()
|
9
|
+
};
|
10
|
+
function pageload_done( $, console, maybe ){
|
11
|
+
pageload.after_readycode = (new Date).getTime();
|
12
|
+
pageload.content_ready_time = pageload.content_ready - pageload.before_content;
|
13
|
+
pageload.script_ready_time = pageload.after_readycode - pageload.content_ready;
|
14
|
+
pageload.ready_time = pageload.after_readycode - pageload.before_content;
|
15
|
+
// Only report 1% of cases.
|
16
|
+
maybe || (Math.random()>0.01) || $.ajax({ data: {
|
17
|
+
op: 'page_profile',
|
18
|
+
pagemark: pageload.pagemark,
|
19
|
+
dom: pageload.content_ready_time,
|
20
|
+
js: pageload.script_ready_time
|
21
|
+
} });
|
22
|
+
}
|
23
|
+
</script>
|
24
|
+
|
25
|
+
<title>Slashdot - News for nerds, stuff that matters</title>
|
26
|
+
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
27
|
+
|
28
|
+
|
29
|
+
|
30
|
+
|
31
|
+
|
32
|
+
|
33
|
+
<link rel="stylesheet" rev="stylesheet" href="//c.fsdn.com/sd/idlecore-tidied.css?T_2_5_0_262b" media="screen">
|
34
|
+
|
35
|
+
|
36
|
+
|
37
|
+
<!-- -->
|
38
|
+
|
39
|
+
|
40
|
+
|
41
|
+
|
42
|
+
|
43
|
+
|
44
|
+
|
45
|
+
<!--[if IE 7]><link rel="stylesheet" type="text/css" media="screen" href="//c.fsdn.com/sd/ie7-idle.css?T_2_5_0_262b" /><![endif]-->
|
46
|
+
<!--[if lt IE 7]><link rel="stylesheet" type="text/css" media="screen" href="//c.fsdn.com/sd/ie6-idle.css?T_2_5_0_262b" /><![endif]-->
|
47
|
+
<!--[if gte IE 8]><link rel="stylesheet" type="text/css" media="screen" href="//c.fsdn.com/sd/ie8-idle.css?T_2_5_0_262b" /><![endif]-->
|
48
|
+
|
49
|
+
|
50
|
+
|
51
|
+
<script src="//c.fsdn.com/sd/all-minified.js?T_2_5_0_262b" type="text/javascript"></script>
|
52
|
+
<script id="after-jquery" type="text/javascript">
|
53
|
+
(function( $, pageload, pageload_done, console ){
|
54
|
+
$ && pageload && $(function(){
|
55
|
+
pageload.content_ready = (new Date).getTime();
|
56
|
+
pageload_done && $(function(){ pageload_done($, console, 'maybe'); });
|
57
|
+
});
|
58
|
+
})(window.jQuery, window.pageload, window.pageload_done, window.console);
|
59
|
+
</script>
|
60
|
+
<script type="text/javascript">
|
61
|
+
(function(){
|
62
|
+
var regexp=/^\s*(?:\d+|many)\s+more\s*$/i;
|
63
|
+
|
64
|
+
|
65
|
+
var auto_more_count = 2;
|
66
|
+
|
67
|
+
function auto_more(){
|
68
|
+
var $more_link = $('#more-experiment a');
|
69
|
+
$more_link.each(function(){
|
70
|
+
if ( Bounds.intersect(window, $('#firehoselist>div.fhitem:visible:last')) ) {
|
71
|
+
setFirehoseAction();
|
72
|
+
$more_link.click();
|
73
|
+
!--auto_more_count && (auto_more=undefined);
|
74
|
+
// don't allow a call till the next paginate gets built and |more_possible|
|
75
|
+
$(document).unbind('scroll', call_auto_more);
|
76
|
+
}
|
77
|
+
});
|
78
|
+
};
|
79
|
+
|
80
|
+
function call_auto_more(){ auto_more && auto_more(); }
|
81
|
+
|
82
|
+
|
83
|
+
|
84
|
+
|
85
|
+
|
86
|
+
|
87
|
+
$('#more-experiment a').
|
88
|
+
live('more-possible', function( event ){
|
89
|
+
var $more_link=$(this);
|
90
|
+
if ( regexp.test($more_link.text()) ) {
|
91
|
+
|
92
|
+
|
93
|
+
$(document).bind('scroll', call_auto_more);
|
94
|
+
} else {
|
95
|
+
$(document).unbind('scroll', call_auto_more);
|
96
|
+
|
97
|
+
}
|
98
|
+
});
|
99
|
+
})();
|
100
|
+
</script>
|
101
|
+
|
102
|
+
|
103
|
+
<script type="text/javascript">
|
104
|
+
var suggestions_for_context = {
|
105
|
+
nod: 'fresh funny insightful interesting maybe ',
|
106
|
+
nix: 'binspam dupe notthebest offtopic slownewsday stale stupid ',
|
107
|
+
|
108
|
+
feedback: 'typo dupe error',
|
109
|
+
metanod: 'insightful interesting informative funny underrated',
|
110
|
+
metanix: 'offtopic flamebait troll redundant overrated'
|
111
|
+
};
|
112
|
+
|
113
|
+
</script>
|
114
|
+
|
115
|
+
|
116
|
+
<script id="lazyload-script" type="text/javascript">
|
117
|
+
$(function() {
|
118
|
+
// $("img[src*='images.slashdot.org']").lazyload({ threshold : 150 });
|
119
|
+
});
|
120
|
+
</script>
|
121
|
+
<meta http-equiv="X-XRDS-Location" content="http://slashdot.org/slashdot.xrds"><link rel="top" title="News for nerds, stuff that matters" href="//slashdot.org/" >
|
122
|
+
<link rel="search" title="Search Slashdot" href="//slashdot.org/search.pl">
|
123
|
+
<link rel="alternate" title="Slashdot RSS" href="http://rss.slashdot.org/Slashdot/slashdot" type="application/rss+xml">
|
124
|
+
<link rel="shortcut icon" href="/favicon.ico" type="image/x-icon">
|
125
|
+
<!-- DoubleClick Random Number -->
|
126
|
+
<script type="text/javascript">
|
127
|
+
dfp_ord=Math.random()*10000000000000000;
|
128
|
+
dfp_tile = 1;
|
129
|
+
</script>
|
130
|
+
<!-- End DoubleClick Random Number -->
|
131
|
+
|
132
|
+
|
133
|
+
<script type="text/javascript">
|
134
|
+
var pageTracker = _gat._getTracker("UA-32013-5");
|
135
|
+
pageTracker._setDomainName("slashdot.org");
|
136
|
+
pageTracker._initData();
|
137
|
+
</script>
|
138
|
+
|
139
|
+
</head>
|
140
|
+
<body>
|
141
|
+
<div id="top_parent"></div>
|
142
|
+
|
143
|
+
<div id="jump">
|
144
|
+
<a href="#main-articles">Stories</a>
|
145
|
+
<br>
|
146
|
+
<a href="#blocks">Slash Boxes</a>
|
147
|
+
<br>
|
148
|
+
<a href="#comments">Comments</a>
|
149
|
+
</div>
|
150
|
+
<a name="topothepage"></a>
|
151
|
+
<div id="doc3" class="yui-t6 index2 mainpage ac ">
|
152
|
+
<div id="hd" >
|
153
|
+
<div id="logo" >
|
154
|
+
|
155
|
+
|
156
|
+
|
157
|
+
<h1><a href="//slashdot.org"><span>Slashdot</span></a></h1>
|
158
|
+
<div id="slogan"><h2>News for nerds, stuff that matters</h2></div>
|
159
|
+
</div>
|
160
|
+
<a href="#articles" class="hidden">Jump to articles</a>
|
161
|
+
<div class="nav">
|
162
|
+
<ul>
|
163
|
+
|
164
|
+
|
165
|
+
|
166
|
+
<li><a href="//slashdot.org/submit.pl" title="Submit a story to Slashdot">Submit Story</a></li>
|
167
|
+
<li><a href="//slashdot.org/help" title="Frequently asked questions on Slashdot">Help</a></li>
|
168
|
+
<li><a href="//slashdot.org/login.pl" onclick="show_login_box(); return false;">Log In</a></li>
|
169
|
+
|
170
|
+
</ul>
|
171
|
+
</div>
|
172
|
+
|
173
|
+
|
174
|
+
|
175
|
+
|
176
|
+
|
177
|
+
<div id="fh_picker_search" style="display: block;">
|
178
|
+
<form method="get" action="//slashdot.org/index2.pl">
|
179
|
+
<fieldset class="mode-filter mode-anon">
|
180
|
+
<legend>Search</legend>
|
181
|
+
|
182
|
+
|
183
|
+
<input class="query" type="text" name="fhfilter" value="" id="searchquery"> <input type="button" class="setfhfilter" value="Filter" id="viewsearch" style="display:none"> <input type="submit" class="setsearchfilter" value="Search" id="fhsearch" style="display:none">
|
184
|
+
<noscript><input type="submit" class="setsearchfilter" value="Search"></noscript>
|
185
|
+
|
186
|
+
<script type="text/javascript">
|
187
|
+
var slash_search;
|
188
|
+
$(function(){
|
189
|
+
if (has_hose()) {
|
190
|
+
var $search_text = $any('searchquery'),
|
191
|
+
$panel = $search_text.closest('fieldset');
|
192
|
+
$search_buttons = $('#viewsearch,#fhsearch'),
|
193
|
+
ws = /\s+/;
|
194
|
+
|
195
|
+
|
196
|
+
|
197
|
+
// The search buttons set the firehose option named by their class.
|
198
|
+
$search_buttons.
|
199
|
+
click(function(){
|
200
|
+
var which=this.className;
|
201
|
+
$search_text.each(function(){
|
202
|
+
firehose_set_options(which, this.value);
|
203
|
+
});
|
204
|
+
return false;
|
205
|
+
});
|
206
|
+
|
207
|
+
// Provide a globally available function that does whatever clicking the search button would do.
|
208
|
+
slash_search = function( query ){
|
209
|
+
query!==undefined && $search_text.val(query);
|
210
|
+
$search_buttons.filter(':visible:first').click();
|
211
|
+
};
|
212
|
+
|
213
|
+
$search_text.
|
214
|
+
keydown(function( e ){ // ESCAPE restores the filter in-effect.
|
215
|
+
if ( e.which == $.ui.keyCode.ESCAPE ) {
|
216
|
+
$search_text.val(firehose_settings.fhfilter||'');
|
217
|
+
return true;
|
218
|
+
}
|
219
|
+
if ( e.which == $.ui.keyCode.ENTER ) {
|
220
|
+
slash_search();
|
221
|
+
return false;
|
222
|
+
}
|
223
|
+
});
|
224
|
+
|
225
|
+
$(document).
|
226
|
+
bind('firehose-setting-setfhfilter firehose-setting-setsearchfilter', function( e, new_query ){
|
227
|
+
$('fieldset input[type=text]').each(function(){
|
228
|
+
$(this).blur().val(new_query);
|
229
|
+
});
|
230
|
+
}).
|
231
|
+
bind('set-options.firehose', function( e, data ){
|
232
|
+
data.select_section && $panel.toggleClass('mode-filter', data.id!=='unsaved');
|
233
|
+
});
|
234
|
+
}
|
235
|
+
});
|
236
|
+
</script>
|
237
|
+
|
238
|
+
</fieldset>
|
239
|
+
|
240
|
+
<script type="text/javascript">
|
241
|
+
$(document).
|
242
|
+
one('unsaved.firehose', function(){
|
243
|
+
$any('searchquery').closest('fieldset').removeClass('mode-anon');
|
244
|
+
});
|
245
|
+
</script>
|
246
|
+
|
247
|
+
</form>
|
248
|
+
</div>
|
249
|
+
|
250
|
+
</div>
|
251
|
+
<div id="bd" ><!-- body begin -->
|
252
|
+
|
253
|
+
|
254
|
+
|
255
|
+
|
256
|
+
|
257
|
+
|
258
|
+
|
259
|
+
|
260
|
+
|
261
|
+
|
262
|
+
|
263
|
+
|
264
|
+
<div class="nav">
|
265
|
+
<ul class="menu" id="fhtablist">
|
266
|
+
|
267
|
+
|
268
|
+
|
269
|
+
|
270
|
+
|
271
|
+
|
272
|
+
|
273
|
+
|
274
|
+
|
275
|
+
<li class="active Stories"><a href="//slashdot.org/stories" >Stories</a><span class="tab_rss"><a href="http://rss.slashdot.org/Slashdot/slashdot" title="RSS for stories">RSS</a></span></li>
|
276
|
+
|
277
|
+
|
278
|
+
|
279
|
+
|
280
|
+
|
281
|
+
<li ><a href="//slashdot.org/recent" >Recent</a></li>
|
282
|
+
|
283
|
+
|
284
|
+
|
285
|
+
|
286
|
+
|
287
|
+
<li ><a href="//slashdot.org/popular" >Popular</a></li>
|
288
|
+
|
289
|
+
|
290
|
+
|
291
|
+
|
292
|
+
|
293
|
+
<li ><a href="//slashdot.org/search" >Search</a></li>
|
294
|
+
|
295
|
+
|
296
|
+
</ul>
|
297
|
+
|
298
|
+
<script type="text/javascript">
|
299
|
+
$(function(){ // on document ready
|
300
|
+
|
301
|
+
$('input[id^=tab-input-]').
|
302
|
+
each(function(){
|
303
|
+
var tab_id = this.id.substr('tab-input-'.length);
|
304
|
+
$(this).
|
305
|
+
blur(function(){
|
306
|
+
firehose_save_tab(tab_id);
|
307
|
+
}).
|
308
|
+
keypress(function(event){
|
309
|
+
var RETURN=13, SPACE=32;
|
310
|
+
|
311
|
+
var $this = $(this);
|
312
|
+
switch ( event.which || event.keyCode ) {
|
313
|
+
case RETURN:
|
314
|
+
case SPACE:
|
315
|
+
firehose_save_tab(tab_id);
|
316
|
+
return false;
|
317
|
+
default:
|
318
|
+
return true;
|
319
|
+
}
|
320
|
+
});
|
321
|
+
})
|
322
|
+
|
323
|
+
});
|
324
|
+
</script>
|
325
|
+
<div id="fhupdatestatus">
|
326
|
+
<a href="//slashdot.org/login.pl?op=newuserform" title="">Create Account</a>
|
327
|
+
|
328
|
+
<span class="busy"><img src="//c.fsdn.com/sd/spinner_tr.gif" alt="*"></span>
|
329
|
+
<a id="local_last_update_time" href="//slashdot.org/faq/UI.shtml#ui700" onclick="firehose_more(1); return false;">21:58</a>
|
330
|
+
<a id="gmt_update_time" href="//slashdot.org/faq/UI.shtml#ui700" onclick="firehose_more(1); return false;"></a>
|
331
|
+
|
332
|
+
</div>
|
333
|
+
|
334
|
+
<div id="fhoptions" class="options">
|
335
|
+
|
336
|
+
|
337
|
+
|
338
|
+
|
339
|
+
<ul>
|
340
|
+
|
341
|
+
|
342
|
+
|
343
|
+
|
344
|
+
|
345
|
+
<li id="pref"><a href="//slashdot.org/faq/UI.shtml#ui700" onclick="show_login_box(); return false" title="Toggle preferences">Preferences</a></li>
|
346
|
+
|
347
|
+
|
348
|
+
|
349
|
+
<li id="slashboxen">
|
350
|
+
|
351
|
+
<script type="text/javascript">
|
352
|
+
$(function(){
|
353
|
+
$("#slashboxen a").click(function(){
|
354
|
+
var hide = $(this).setClass(applyMap('expanded', 'collapsed')).is('.collapsed');
|
355
|
+
|
356
|
+
$('div#yui-main div.yui-b, div#slashboxes, div#topfoot div.rightcontent, div#doc3 div.railad').toggleClass('hideslashboxes', hide);
|
357
|
+
firehose_set_options('noslashboxes', hide, 'global');
|
358
|
+
return false;
|
359
|
+
});
|
360
|
+
});
|
361
|
+
</script>
|
362
|
+
</li>
|
363
|
+
|
364
|
+
</ul>
|
365
|
+
|
366
|
+
</div>
|
367
|
+
</div>
|
368
|
+
|
369
|
+
|
370
|
+
<div class="ad1 advertisement"><!-- placeholder for ad position 1 --></div><div class="railad"><div class="ad6 advertisement"><!-- placeholder for ad position 6 --></div><div class="ad2 advertisement"><!-- ad position 2 -->
|
371
|
+
<!-- DoubleClick Ad Tag -->
|
372
|
+
|
373
|
+
<script type="text/javascript">
|
374
|
+
var ad6 = 'inactive';
|
375
|
+
</script>
|
376
|
+
|
377
|
+
<div id="fad2">
|
378
|
+
|
379
|
+
|
380
|
+
<script type="text/javascript">
|
381
|
+
//<![CDATA[
|
382
|
+
|
383
|
+
var hint = 'mainpage';
|
384
|
+
|
385
|
+
document.write('<script type="text/javascript" src="http://ad.doubleclick.net/adj/ostg.slashdot/mainpage_p2_sky;pg=index;logged_in=0;tile='+dfp_tile+';ord='+dfp_ord+'?"><\/script>');
|
386
|
+
dfp_tile++;
|
387
|
+
//]]>
|
388
|
+
</script>
|
389
|
+
|
390
|
+
</div>
|
391
|
+
<!-- End DoubleClick Ad Tag --></div></div>
|
392
|
+
|
393
|
+
<div id="yui-main">
|
394
|
+
|
395
|
+
<div class="yui-b">
|
396
|
+
|
397
|
+
|
398
|
+
|
399
|
+
<div class="yui-gf" style="position: relative">
|
400
|
+
<div class="yui-u first" id="links">
|
401
|
+
<div class="block" id="links-sections">
|
402
|
+
<div class="title" id="links-sections-title">
|
403
|
+
|
404
|
+
<h4 class='active'>
|
405
|
+
|
406
|
+
<a class="data-title" href="//slashdot.org" >Slashdot</a>
|
407
|
+
<a href="//slashdot.org/faq/UI.shtml#ui700" onclick="show_login_box(); return false;" class="links-sections-edit">[e]</a>
|
408
|
+
|
409
|
+
<script type="data">{ color: "", viewname: "stories", filter: "", name: "Main", id: 13 }</script>
|
410
|
+
|
411
|
+
|
412
|
+
</h4>
|
413
|
+
</div>
|
414
|
+
<div class="content" id="links-sections-content">
|
415
|
+
|
416
|
+
<ul id="firehose-sections">
|
417
|
+
<script type="data">{ active_id:13, default_id:1 }</script>
|
418
|
+
|
419
|
+
|
420
|
+
|
421
|
+
|
422
|
+
<li class="hide" id="fhsection-45">
|
423
|
+
<a id="fhsectiontitle-45" class="data-title" href="//amd.vendors.slashdot.org">AMD</a>
|
424
|
+
<a href="//slashdot.org/faq/UI.shtml#ui700" onclick="show_login_box(); return false;" class="links-sections-edit">[e]</a>
|
425
|
+
<script type="data">{ color: "", viewname: "stories", filter: "vendor_amd", name: "AMD", id: 45 }</script>
|
426
|
+
</li>
|
427
|
+
|
428
|
+
|
429
|
+
|
430
|
+
|
431
|
+
<li class="hide" id="fhsection-11">
|
432
|
+
<a id="fhsectiontitle-11" class="data-title" href="//apache.slashdot.org">Apache</a>
|
433
|
+
<a href="//slashdot.org/faq/UI.shtml#ui700" onclick="show_login_box(); return false;" class="links-sections-edit">[e]</a>
|
434
|
+
<script type="data">{ color: "", viewname: "stories", filter: "apache", name: "Apache", id: 11 }</script>
|
435
|
+
</li>
|
436
|
+
|
437
|
+
|
438
|
+
|
439
|
+
|
440
|
+
<li class="" id="fhsection-53">
|
441
|
+
<a id="fhsectiontitle-53" class="data-title" href="//apple.slashdot.org">Apple</a>
|
442
|
+
<a href="//slashdot.org/faq/UI.shtml#ui700" onclick="show_login_box(); return false;" class="links-sections-edit">[e]</a>
|
443
|
+
<script type="data">{ skin: "<link rel=\"alternate stylesheet\" type=\"text/css\" media=\"screen, projection\" href=\"//c.fsdn.com/sd/yui_apple.css?T_2_5_0_262b\" title=\"apple\">", color: "", viewname: "stories", filter: "apple", name: "Apple", id: 53 }</script>
|
444
|
+
</li>
|
445
|
+
|
446
|
+
|
447
|
+
|
448
|
+
|
449
|
+
<li class="" id="fhsection-63">
|
450
|
+
<a id="fhsectiontitle-63" class="data-title" href="//ask.slashdot.org">Ask Slashdot</a>
|
451
|
+
<a href="//slashdot.org/faq/UI.shtml#ui700" onclick="show_login_box(); return false;" class="links-sections-edit">[e]</a>
|
452
|
+
<script type="data">{ skin: "<link rel=\"alternate stylesheet\" type=\"text/css\" media=\"screen, projection\" href=\"//c.fsdn.com/sd/yui_askslashdot.css?T_2_5_0_262b\" title=\"askslashdot\">", color: "", viewname: "stories", filter: "askslashdot", name: "Ask Slashdot", id: 63 }</script>
|
453
|
+
</li>
|
454
|
+
|
455
|
+
|
456
|
+
|
457
|
+
|
458
|
+
<li class="hide" id="fhsection-31">
|
459
|
+
<a id="fhsectiontitle-31" class="data-title" href="//backslash.slashdot.org">Backslash</a>
|
460
|
+
<a href="//slashdot.org/faq/UI.shtml#ui700" onclick="show_login_box(); return false;" class="links-sections-edit">[e]</a>
|
461
|
+
<script type="data">{ color: "", viewname: "stories", filter: "backslash", name: "Backslash", id: 31 }</script>
|
462
|
+
</li>
|
463
|
+
|
464
|
+
|
465
|
+
|
466
|
+
|
467
|
+
<li class="" id="fhsection-49">
|
468
|
+
<a id="fhsectiontitle-49" class="data-title" href="//books.slashdot.org">Book Reviews</a>
|
469
|
+
<a href="//slashdot.org/faq/UI.shtml#ui700" onclick="show_login_box(); return false;" class="links-sections-edit">[e]</a>
|
470
|
+
<script type="data">{ color: "", viewname: "stories", filter: "books", name: "Book Reviews", id: 49 }</script>
|
471
|
+
</li>
|
472
|
+
|
473
|
+
|
474
|
+
|
475
|
+
|
476
|
+
<li class="hide" id="fhsection-5">
|
477
|
+
<a id="fhsectiontitle-5" class="data-title" href="//bsd.slashdot.org">BSD</a>
|
478
|
+
<a href="//slashdot.org/faq/UI.shtml#ui700" onclick="show_login_box(); return false;" class="links-sections-edit">[e]</a>
|
479
|
+
<script type="data">{ color: "", viewname: "stories", filter: "bsd", name: "BSD", id: 5 }</script>
|
480
|
+
</li>
|
481
|
+
|
482
|
+
|
483
|
+
|
484
|
+
|
485
|
+
<li class="hide" id="fhsection-61">
|
486
|
+
<a id="fhsectiontitle-61" class="data-title" href="//developers.slashdot.org">Developers</a>
|
487
|
+
<a href="//slashdot.org/faq/UI.shtml#ui700" onclick="show_login_box(); return false;" class="links-sections-edit">[e]</a>
|
488
|
+
<script type="data">{ skin: "<link rel=\"alternate stylesheet\" type=\"text/css\" media=\"screen, projection\" href=\"//c.fsdn.com/sd/yui_developers.css?T_2_5_0_262b\" title=\"developers\">", color: "", viewname: "stories", filter: "developers", name: "Developers", id: 61 }</script>
|
489
|
+
</li>
|
490
|
+
|
491
|
+
|
492
|
+
|
493
|
+
|
494
|
+
<li class="hide" id="fhsection-1">
|
495
|
+
<a id="fhsectiontitle-1" class="data-title" href="//entertainment.slashdot.org">Entertainment</a>
|
496
|
+
<a href="//slashdot.org/faq/UI.shtml#ui700" onclick="show_login_box(); return false;" class="links-sections-edit">[e]</a>
|
497
|
+
<script type="data">{ color: "", viewname: "stories", filter: "entertainment", name: "Entertainment", id: 1 }</script>
|
498
|
+
</li>
|
499
|
+
|
500
|
+
|
501
|
+
|
502
|
+
|
503
|
+
<li class="hide" id="fhsection-55">
|
504
|
+
<a id="fhsectiontitle-55" class="data-title" href="//features.slashdot.org">Features</a>
|
505
|
+
<a href="//slashdot.org/faq/UI.shtml#ui700" onclick="show_login_box(); return false;" class="links-sections-edit">[e]</a>
|
506
|
+
<script type="data">{ color: "", viewname: "stories", filter: "features", name: "Features", id: 55 }</script>
|
507
|
+
</li>
|
508
|
+
|
509
|
+
|
510
|
+
|
511
|
+
|
512
|
+
<li class="" id="fhsection-33">
|
513
|
+
<a id="fhsectiontitle-33" class="data-title" href="//games.slashdot.org">Games</a>
|
514
|
+
<a href="//slashdot.org/faq/UI.shtml#ui700" onclick="show_login_box(); return false;" class="links-sections-edit">[e]</a>
|
515
|
+
<script type="data">{ skin: "<link rel=\"alternate stylesheet\" type=\"text/css\" media=\"screen, projection\" href=\"//c.fsdn.com/sd/yui_games.css?T_2_5_0_262b\" title=\"games\">", color: "", viewname: "stories", filter: "games", name: "Games", id: 33 }</script>
|
516
|
+
</li>
|
517
|
+
|
518
|
+
|
519
|
+
|
520
|
+
|
521
|
+
<li class="hide" id="fhsection-43">
|
522
|
+
<a id="fhsectiontitle-43" class="data-title" href="//radio.slashdot.org">Geeks in Space</a>
|
523
|
+
<a href="//slashdot.org/faq/UI.shtml#ui700" onclick="show_login_box(); return false;" class="links-sections-edit">[e]</a>
|
524
|
+
<script type="data">{ color: "", viewname: "stories", filter: "radio", name: "Geeks in Space", id: 43 }</script>
|
525
|
+
</li>
|
526
|
+
|
527
|
+
|
528
|
+
|
529
|
+
|
530
|
+
<li class="" id="fhsection-3">
|
531
|
+
<a id="fhsectiontitle-3" class="data-title" href="//hardware.slashdot.org">Hardware</a>
|
532
|
+
<a href="//slashdot.org/faq/UI.shtml#ui700" onclick="show_login_box(); return false;" class="links-sections-edit">[e]</a>
|
533
|
+
<script type="data">{ skin: "<link rel=\"alternate stylesheet\" type=\"text/css\" media=\"screen, projection\" href=\"//c.fsdn.com/sd/yui_hardware.css?T_2_5_0_262b\" title=\"hardware\">", color: "", viewname: "stories", filter: "hardware", name: "Hardware", id: 3 }</script>
|
534
|
+
</li>
|
535
|
+
|
536
|
+
|
537
|
+
|
538
|
+
|
539
|
+
<li class="" id="fhsection-25">
|
540
|
+
<a id="fhsectiontitle-25" class="data-title" href="//idle.slashdot.org">Idle</a>
|
541
|
+
<a href="//slashdot.org/faq/UI.shtml#ui700" onclick="show_login_box(); return false;" class="links-sections-edit">[e]</a>
|
542
|
+
<script type="data">{ skin: "<link rel=\"alternate stylesheet\" type=\"text/css\" media=\"screen, projection\" href=\"//c.fsdn.com/sd/yui_idle.css?T_2_5_0_262b\" title=\"idle\">", color: "", viewname: "stories", filter: "idle", name: "Idle", id: 25 }</script>
|
543
|
+
</li>
|
544
|
+
|
545
|
+
|
546
|
+
|
547
|
+
|
548
|
+
<li class="hide" id="fhsection-7">
|
549
|
+
<a id="fhsectiontitle-7" class="data-title" href="//intel.vendors.slashdot.org">Intel</a>
|
550
|
+
<a href="//slashdot.org/faq/UI.shtml#ui700" onclick="show_login_box(); return false;" class="links-sections-edit">[e]</a>
|
551
|
+
<script type="data">{ color: "", viewname: "stories", filter: "vendor_intel", name: "Intel", id: 7 }</script>
|
552
|
+
</li>
|
553
|
+
|
554
|
+
|
555
|
+
|
556
|
+
|
557
|
+
<li class="" id="fhsection-39">
|
558
|
+
<a id="fhsectiontitle-39" class="data-title" href="//interviews.slashdot.org">Interviews</a>
|
559
|
+
<a href="//slashdot.org/faq/UI.shtml#ui700" onclick="show_login_box(); return false;" class="links-sections-edit">[e]</a>
|
560
|
+
<script type="data">{ color: "", viewname: "stories", filter: "interviews", name: "Interviews", id: 39 }</script>
|
561
|
+
</li>
|
562
|
+
|
563
|
+
|
564
|
+
|
565
|
+
|
566
|
+
<li class="hide" id="fhsection-15">
|
567
|
+
<a id="fhsectiontitle-15" class="data-title" href="//it.slashdot.org">IT</a>
|
568
|
+
<a href="//slashdot.org/faq/UI.shtml#ui700" onclick="show_login_box(); return false;" class="links-sections-edit">[e]</a>
|
569
|
+
<script type="data">{ skin: "<link rel=\"alternate stylesheet\" type=\"text/css\" media=\"screen, projection\" href=\"//c.fsdn.com/sd/yui_it.css?T_2_5_0_262b\" title=\"it\">", color: "", viewname: "stories", filter: "it", name: "IT", id: 15 }</script>
|
570
|
+
</li>
|
571
|
+
|
572
|
+
|
573
|
+
|
574
|
+
|
575
|
+
<li class="" id="fhsection-65">
|
576
|
+
<a id="fhsectiontitle-65" class="data-title" href="//linux.slashdot.org">Linux</a>
|
577
|
+
<a href="//slashdot.org/faq/UI.shtml#ui700" onclick="show_login_box(); return false;" class="links-sections-edit">[e]</a>
|
578
|
+
<script type="data">{ skin: "<link rel=\"alternate stylesheet\" type=\"text/css\" media=\"screen, projection\" href=\"//c.fsdn.com/sd/yui_linux.css?T_2_5_0_262b\" title=\"linux\">", color: "", viewname: "stories", filter: "linux", name: "Linux", id: 65 }</script>
|
579
|
+
</li>
|
580
|
+
|
581
|
+
|
582
|
+
|
583
|
+
|
584
|
+
<li class="hide" id="fhsection-21">
|
585
|
+
<a id="fhsectiontitle-21" class="data-title" href="//meta.slashdot.org">Meta</a>
|
586
|
+
<a href="//slashdot.org/faq/UI.shtml#ui700" onclick="show_login_box(); return false;" class="links-sections-edit">[e]</a>
|
587
|
+
<script type="data">{ color: "", viewname: "stories", filter: "meta", name: "Meta", id: 21 }</script>
|
588
|
+
</li>
|
589
|
+
|
590
|
+
|
591
|
+
|
592
|
+
|
593
|
+
<li class="" id="fhsection-47">
|
594
|
+
<a id="fhsectiontitle-47" class="data-title" href="//mobile.slashdot.org">Mobile</a>
|
595
|
+
<a href="//slashdot.org/faq/UI.shtml#ui700" onclick="show_login_box(); return false;" class="links-sections-edit">[e]</a>
|
596
|
+
<script type="data">{ skin: "<link rel=\"alternate stylesheet\" type=\"text/css\" media=\"screen, projection\" href=\"//c.fsdn.com/sd/yui_mobile.css?T_2_5_0_262b\" title=\"mobile\">", color: "", viewname: "stories", filter: "mobile", name: "Mobile", id: 47 }</script>
|
597
|
+
</li>
|
598
|
+
|
599
|
+
|
600
|
+
|
601
|
+
|
602
|
+
<li class="hide" id="fhsection-35">
|
603
|
+
<a id="fhsectiontitle-35" class="data-title" href="//news.slashdot.org">News</a>
|
604
|
+
<a href="//slashdot.org/faq/UI.shtml#ui700" onclick="show_login_box(); return false;" class="links-sections-edit">[e]</a>
|
605
|
+
<script type="data">{ color: "", viewname: "stories", filter: "news", name: "News", id: 35 }</script>
|
606
|
+
</li>
|
607
|
+
|
608
|
+
|
609
|
+
|
610
|
+
|
611
|
+
<li class="hide" id="fhsection-23">
|
612
|
+
<a id="fhsectiontitle-23" class="data-title" href="//oracle.vendors.slashdot.org">Oracle</a>
|
613
|
+
<a href="//slashdot.org/faq/UI.shtml#ui700" onclick="show_login_box(); return false;" class="links-sections-edit">[e]</a>
|
614
|
+
<script type="data">{ color: "", viewname: "stories", filter: "vendor_oracle", name: "Oracle", id: 23 }</script>
|
615
|
+
</li>
|
616
|
+
|
617
|
+
|
618
|
+
|
619
|
+
|
620
|
+
<li class="hide" id="fhsection-27">
|
621
|
+
<a id="fhsectiontitle-27" class="data-title" href="//politics.slashdot.org">Politics</a>
|
622
|
+
<a href="//slashdot.org/faq/UI.shtml#ui700" onclick="show_login_box(); return false;" class="links-sections-edit">[e]</a>
|
623
|
+
<script type="data">{ skin: "<link rel=\"alternate stylesheet\" type=\"text/css\" media=\"screen, projection\" href=\"//c.fsdn.com/sd/yui_politics.css?T_2_5_0_262b\" title=\"politics\">", color: "", viewname: "stories", filter: "politics", name: "Politics", id: 27 }</script>
|
624
|
+
</li>
|
625
|
+
|
626
|
+
|
627
|
+
|
628
|
+
|
629
|
+
<li class="hide" id="fhsection-57">
|
630
|
+
<a id="fhsectiontitle-57" class="data-title" href="//polls.slashdot.org">Polls</a>
|
631
|
+
<a href="//slashdot.org/faq/UI.shtml#ui700" onclick="show_login_box(); return false;" class="links-sections-edit">[e]</a>
|
632
|
+
<script type="data">{ color: "", viewname: "stories", filter: "polls", name: "Polls", id: 57 }</script>
|
633
|
+
</li>
|
634
|
+
|
635
|
+
|
636
|
+
|
637
|
+
|
638
|
+
<li class="" id="fhsection-29">
|
639
|
+
<a id="fhsectiontitle-29" class="data-title" href="//science.slashdot.org">Science</a>
|
640
|
+
<a href="//slashdot.org/faq/UI.shtml#ui700" onclick="show_login_box(); return false;" class="links-sections-edit">[e]</a>
|
641
|
+
<script type="data">{ color: "", viewname: "stories", filter: "science", name: "Science", id: 29 }</script>
|
642
|
+
</li>
|
643
|
+
|
644
|
+
|
645
|
+
|
646
|
+
|
647
|
+
<li class="hide" id="fhsection-59">
|
648
|
+
<a id="fhsectiontitle-59" class="data-title" href="//search.slashdot.org">Search</a>
|
649
|
+
<a href="//slashdot.org/faq/UI.shtml#ui700" onclick="show_login_box(); return false;" class="links-sections-edit">[e]</a>
|
650
|
+
<script type="data">{ color: "", viewname: "stories", filter: "search", name: "Search", id: 59 }</script>
|
651
|
+
</li>
|
652
|
+
|
653
|
+
|
654
|
+
|
655
|
+
|
656
|
+
<li class="hide" id="fhsection-37">
|
657
|
+
<a id="fhsectiontitle-37" class="data-title" href="slashdot.sourceforge.net">SF.net Auth</a>
|
658
|
+
<a href="//slashdot.org/faq/UI.shtml#ui700" onclick="show_login_box(); return false;" class="links-sections-edit">[e]</a>
|
659
|
+
<script type="data">{ color: "", viewname: "stories", filter: "sfauth", name: "SF.net Auth", id: 37 }</script>
|
660
|
+
</li>
|
661
|
+
|
662
|
+
|
663
|
+
|
664
|
+
|
665
|
+
<li class="hide" id="fhsection-19">
|
666
|
+
<a id="fhsectiontitle-19" class="data-title" href="//slashdot.org">Taco Hell</a>
|
667
|
+
<a href="//slashdot.org/faq/UI.shtml#ui700" onclick="show_login_box(); return false;" class="links-sections-edit">[e]</a>
|
668
|
+
<script type="data">{ color: "", viewname: "stories", filter: "tacohell", name: "Taco Hell", id: 19 }</script>
|
669
|
+
</li>
|
670
|
+
|
671
|
+
|
672
|
+
|
673
|
+
|
674
|
+
<li class="hide" id="fhsection-17">
|
675
|
+
<a id="fhsectiontitle-17" class="data-title" href="//tech.slashdot.org">Technology</a>
|
676
|
+
<a href="//slashdot.org/faq/UI.shtml#ui700" onclick="show_login_box(); return false;" class="links-sections-edit">[e]</a>
|
677
|
+
<script type="data">{ color: "", viewname: "stories", filter: "tech", name: "Technology", id: 17 }</script>
|
678
|
+
</li>
|
679
|
+
|
680
|
+
|
681
|
+
|
682
|
+
|
683
|
+
<li class="hide" id="fhsection-67">
|
684
|
+
<a id="fhsectiontitle-67" class="data-title" href="//slashdot.org">The 2000 Beanies</a>
|
685
|
+
<a href="//slashdot.org/faq/UI.shtml#ui700" onclick="show_login_box(); return false;" class="links-sections-edit">[e]</a>
|
686
|
+
<script type="data">{ color: "", viewname: "stories", filter: "awards", name: "The 2000 Beanies", id: 67 }</script>
|
687
|
+
</li>
|
688
|
+
|
689
|
+
|
690
|
+
|
691
|
+
|
692
|
+
<li class="hide" id="fhsection-51">
|
693
|
+
<a id="fhsectiontitle-51" class="data-title" href="//thinkgeek.shill.slashdot.org">ThinkGeek</a>
|
694
|
+
<a href="//slashdot.org/faq/UI.shtml#ui700" onclick="show_login_box(); return false;" class="links-sections-edit">[e]</a>
|
695
|
+
<script type="data">{ skin: "<link rel=\"alternate stylesheet\" type=\"text/css\" media=\"screen, projection\" href=\"//c.fsdn.com/sd/yui_thinkgeek.css?T_2_5_0_262b\" title=\"thinkgeek\">", color: "", viewname: "stories", filter: "thinkgeek", name: "ThinkGeek", id: 51 }</script>
|
696
|
+
</li>
|
697
|
+
|
698
|
+
|
699
|
+
|
700
|
+
|
701
|
+
<li class="hide" id="fhsection-41">
|
702
|
+
<a id="fhsectiontitle-41" class="data-title" href="//vendors.slashdot.org">Vendors</a>
|
703
|
+
<a href="//slashdot.org/faq/UI.shtml#ui700" onclick="show_login_box(); return false;" class="links-sections-edit">[e]</a>
|
704
|
+
<script type="data">{ color: "", viewname: "stories", filter: "vendors", name: "Vendors", id: 41 }</script>
|
705
|
+
</li>
|
706
|
+
|
707
|
+
|
708
|
+
|
709
|
+
|
710
|
+
<li class="" id="fhsection-9">
|
711
|
+
<a id="fhsectiontitle-9" class="data-title" href="//yro.slashdot.org">YRO</a>
|
712
|
+
<a href="//slashdot.org/faq/UI.shtml#ui700" onclick="show_login_box(); return false;" class="links-sections-edit">[e]</a>
|
713
|
+
<script type="data">{ skin: "<link rel=\"alternate stylesheet\" type=\"text/css\" media=\"screen, projection\" href=\"//c.fsdn.com/sd/yui_yro.css?T_2_5_0_262b\" title=\"yro\">", color: "", viewname: "stories", filter: "yro", name: "YRO", id: 9 }</script>
|
714
|
+
</li>
|
715
|
+
|
716
|
+
</ul>
|
717
|
+
<script type="text/javascript">
|
718
|
+
|
719
|
+
var firehose_delete_section, update_section;
|
720
|
+
|
721
|
+
(function(){
|
722
|
+
var $section_menu = $any('firehose-sections');
|
723
|
+
|
724
|
+
|
725
|
+
|
726
|
+
function save_menu(){
|
727
|
+
if ( !check_logged_in() ) { return false; }
|
728
|
+
|
729
|
+
// tell the server our current (ordered) list of sections
|
730
|
+
ajax_update({
|
731
|
+
op: 'firehose_save_section_menu',
|
732
|
+
reskey: reskey_static,
|
733
|
+
fsids: $section_menu.
|
734
|
+
children('li:not(#fhsection-unsaved)').
|
735
|
+
map(function(){ return this.id.slice(10); }).get().join(',')
|
736
|
+
});
|
737
|
+
}
|
738
|
+
|
739
|
+
|
740
|
+
function unsaved(){
|
741
|
+
var $unsaved = $any('fhsection-unsaved');
|
742
|
+
if ( !$unsaved.length ) {
|
743
|
+
($unsaved = $(unsaved.template).prependTo($section_menu)).metadata().id = 'unsaved';
|
744
|
+
}
|
745
|
+
return $unsaved;
|
746
|
+
}
|
747
|
+
|
748
|
+
var section_matching;
|
749
|
+
(function(){
|
750
|
+
var signatures={}, ids={}, ws=/\s+/, id_prefix=/^fhsection-/, default_color = {
|
751
|
+
stories: 'green',
|
752
|
+
recent: 'blue',
|
753
|
+
popular: 'green',
|
754
|
+
daddypants: 'indigo'
|
755
|
+
};
|
756
|
+
|
757
|
+
function init_metadata( el ){
|
758
|
+
var $el=$(el), result=$el.metadata({ type:'elem', name:'script' });
|
759
|
+
$el.find('script[type=data]').remove();
|
760
|
+
return result;
|
761
|
+
}
|
762
|
+
|
763
|
+
function signature( section ){
|
764
|
+
return section.viewname + ';'
|
765
|
+
+ (section.color||default_color[section.viewname]) + ';'
|
766
|
+
+ $.trim(section.filter).toLowerCase().split(ws).sort().join(' ');
|
767
|
+
}
|
768
|
+
|
769
|
+
section_matching = function( data ){
|
770
|
+
var have_id = $section_menu.metadata().active_id,
|
771
|
+
have = signatures[have_id],
|
772
|
+
want = signature(data),
|
773
|
+
want_id = (have_id==='unsaved'||want!==have) ? ids[want] : have_id,
|
774
|
+
$want = want_id && firehose_section_menu_item(want_id),
|
775
|
+
want_section = want_id && $want.length && $want.metadata();
|
776
|
+
|
777
|
+
|
778
|
+
|
779
|
+
|
780
|
+
return want_section;
|
781
|
+
};
|
782
|
+
|
783
|
+
update_section = function( el, update, opts ){
|
784
|
+
var section = init_metadata(el),
|
785
|
+
id = section.id, // assert(id);
|
786
|
+
oldsig = signatures[id],
|
787
|
+
newsig = signature($.extend(section,
|
788
|
+
// Make the color explicit.
|
789
|
+
!section.color && { color:default_color[section.viewname] },
|
790
|
+
// Roll-in the updated data, if any; but protect the id.
|
791
|
+
update, { id:id }
|
792
|
+
));
|
793
|
+
|
794
|
+
// Update the signatures that let us match properties to existing sections.
|
795
|
+
if ( id!=='unsaved' && newsig!==oldsig ) {
|
796
|
+
ids[ signatures[id]=newsig ] = id;
|
797
|
+
if ( oldsig ) {
|
798
|
+
delete ids[ oldsig ];
|
799
|
+
// Discard cached skin if the search has changed.
|
800
|
+
section.skin && oldsig.split(';')[2]!==newsig.split(';')[2] && delete section.skin;
|
801
|
+
|
802
|
+
// This must be a change to an existing menu item, so let's save the menu as a whole.
|
803
|
+
save_menu();
|
804
|
+
}
|
805
|
+
}
|
806
|
+
|
807
|
+
if ( opts ) {
|
808
|
+
opts.highlight && highlight_menu_item(id);
|
809
|
+
opts.make_default && ($section_menu.metadata().default_id=id);
|
810
|
+
}
|
811
|
+
};
|
812
|
+
|
813
|
+
// Force-initialize the metadata and build the section_matching map.
|
814
|
+
var $sections=$any('links-sections').find('div.title,li');
|
815
|
+
$sections.add($section_menu).each(function(){ init_metadata(this); });
|
816
|
+
$('#links-sections-title').metadata().name = "Slashdot";
|
817
|
+
$sections.each(function(){ update_section(this); });
|
818
|
+
})();
|
819
|
+
|
820
|
+
|
821
|
+
function highlight_menu_item( section_id ){
|
822
|
+
return firehose_section_menu_item(section_id).each(function(){
|
823
|
+
$('#links-sections .active').not(this).removeClass('active');
|
824
|
+
$( $('h4', this)[0] || this ).addClass('active');
|
825
|
+
$section_menu.metadata().active_id = section_id;
|
826
|
+
firehose_style_switch(section_id);
|
827
|
+
});
|
828
|
+
}
|
829
|
+
|
830
|
+
|
831
|
+
$any('links-sections').
|
832
|
+
mousedown(function( event ){ // "activate" a section (immediately) on mousedown in the section menu
|
833
|
+
$(event.originalTarget||event.target). // mouseDown was on this element...
|
834
|
+
closest('li,div.title').not('.active,:has(.active)').
|
835
|
+
each(function(){
|
836
|
+
var section = $(this).metadata();
|
837
|
+
if ( section.id !== 'unsaved' ) {
|
838
|
+
|
839
|
+
} else {
|
840
|
+
|
841
|
+
}
|
842
|
+
});
|
843
|
+
// allow other handlers to run (by not returning false)
|
844
|
+
}).
|
845
|
+
click(function( event ){ // edit only for a click in the edit button
|
846
|
+
var handled;
|
847
|
+
$(event.originalTarget||event.target). // mouseDown was on this element...
|
848
|
+
closest('a.links-sections-edit'). // ...in this edit icon (if any)
|
849
|
+
each(function(){
|
850
|
+
var id = $(this).closest('li,div.title').metadata().id;
|
851
|
+
id==='unsaved' && (id=void(0));
|
852
|
+
getModalPrefs('firehoseview', 'Save Custom Section', 0, { id: id });
|
853
|
+
handled = true;
|
854
|
+
});
|
855
|
+
return !handled;
|
856
|
+
});
|
857
|
+
|
858
|
+
|
859
|
+
// Drag items in the section-menu to reorder it permanently.
|
860
|
+
$section_menu.
|
861
|
+
sortable({
|
862
|
+
axis: 'y',
|
863
|
+
containment: '#links-sections',
|
864
|
+
opacity: 0.8,
|
865
|
+
update: save_menu
|
866
|
+
});
|
867
|
+
|
868
|
+
|
869
|
+
$(document).
|
870
|
+
bind('firehose-setting-section', function( e, section_id ){
|
871
|
+
// Request to change sections is on its way to the server; update the UI now (don't wait for response)
|
872
|
+
var section = highlight_menu_item(section_id).metadata();
|
873
|
+
$(document).
|
874
|
+
trigger('firehose-setting-setfhfilter', section.filter).
|
875
|
+
trigger('firehose-setting-view', section.viewname).
|
876
|
+
trigger('firehose-setting-color', section.color);
|
877
|
+
}).
|
878
|
+
bind('set-options.firehose', function( e, data ){
|
879
|
+
// Changing some option (possibly even the 'section' option)
|
880
|
+
if ( !data.select_section ) {
|
881
|
+
// OK, _not_ the 'section' option. Activate a section that matches the new options, or else "unsaved"
|
882
|
+
delete data.id;
|
883
|
+
|
884
|
+
data = section_matching(data)||data;
|
885
|
+
if ( !data.id ) {
|
886
|
+
var $unsaved = unsaved();
|
887
|
+
data = $.extend($unsaved.metadata(), data);
|
888
|
+
$(document).
|
889
|
+
one('update.firehose', function( e, updated ){
|
890
|
+
$unsaved.find('a span').text(updated.local_time);
|
891
|
+
if ( updated.skin ) {
|
892
|
+
data.skin = updated.skin;
|
893
|
+
firehose_style_switch('unsaved');
|
894
|
+
}
|
895
|
+
}).
|
896
|
+
trigger('unsaved.firehose', data);
|
897
|
+
}
|
898
|
+
}
|
899
|
+
highlight_menu_item(data.id);
|
900
|
+
});
|
901
|
+
|
902
|
+
unsaved.template = (
|
903
|
+
'<li id="fhsection-unsaved">'
|
904
|
+
+ '<a><i class="data-title">unsaved</i> <span></span></a>'
|
905
|
+
+ '<a href="//slashdot.org/faq/UI.shtml#ui700"'
|
906
|
+
+ ' onclick="show_login_box(); return false;"'
|
907
|
+
+ ' class="links-sections-edit">'
|
908
|
+
+ '[e]'
|
909
|
+
+ '</a>'
|
910
|
+
+ '</li>'
|
911
|
+
);
|
912
|
+
|
913
|
+
})();
|
914
|
+
</script>
|
915
|
+
|
916
|
+
</div>
|
917
|
+
|
918
|
+
</div>
|
919
|
+
<div class="block" id="links-help">
|
920
|
+
<div class="title" id="links-help-title">
|
921
|
+
<h4><a href="//slashdot.org/help">Site Info</a></h4>
|
922
|
+
</div>
|
923
|
+
<div class="content" id="links-help-content">
|
924
|
+
<ul>
|
925
|
+
<li><a href="//slashdot.org/faq/">FAQ</a></li>
|
926
|
+
<li><a href="http://sourceforge.net/tracker/?func=add&group_id=4421&atid=104421">Bugs</a></li>
|
927
|
+
<li><a href="//slashdot.org/code.shtml">Code</a></li>
|
928
|
+
</ul>
|
929
|
+
</div>
|
930
|
+
</div>
|
931
|
+
<div class="block" id="links-stories">
|
932
|
+
<div class="title" id="links-stories-title">
|
933
|
+
<h4>Stories</h4>
|
934
|
+
</div>
|
935
|
+
<div class="content" id="links-stories-content">
|
936
|
+
<ul>
|
937
|
+
<li><a href="//slashdot.org/search.pl">Old Stories</a></li>
|
938
|
+
<li><a href="//polls.slashdot.org/">Old Polls</a></li>
|
939
|
+
<li><a href="//slashdot.org/hof.shtml">Hall of Fame</a></li>
|
940
|
+
<li><a href="//slashdot.org/submit.pl">Submit Story</a></li>
|
941
|
+
</ul>
|
942
|
+
</div>
|
943
|
+
</div>
|
944
|
+
</div>
|
945
|
+
</div>
|
946
|
+
|
947
|
+
|
948
|
+
<div class="yui-u maincol first">
|
949
|
+
|
950
|
+
|
951
|
+
<div class="message">
|
952
|
+
|
953
|
+
<p>Slashdot is powered by <strong><a href="//slashdot.org/submit.pl">your submissions</a></strong>, so send in your scoop</p>
|
954
|
+
|
955
|
+
</div>
|
956
|
+
|
957
|
+
|
958
|
+
|
959
|
+
|
960
|
+
|
961
|
+
|
962
|
+
|
963
|
+
<div id="firehose" class="nothumbs">
|
964
|
+
<div id="firehoselist" class="fhroot ">
|
965
|
+
<div id="firehose-5047353" class="fhitem fhitem-story article usermode thumbs">
|
966
|
+
<span class="sd-info-block" style="display: none">
|
967
|
+
<span class="sd-key-firehose-id">5047353</span>
|
968
|
+
<span class="type">story</span>
|
969
|
+
|
970
|
+
</span>
|
971
|
+
|
972
|
+
|
973
|
+
|
974
|
+
<span id="updown-5047353" class="vote">
|
975
|
+
<a href="//slashdot.org/faq/UI.shtml#ui700" class="up" title="Vote this item up">+</a>
|
976
|
+
<a href="//slashdot.org/faq/UI.shtml#ui700" class="down" title="Vote this item down">-</a>
|
977
|
+
</span>
|
978
|
+
|
979
|
+
|
980
|
+
|
981
|
+
|
982
|
+
<h3 class="story" id="title-5047353">
|
983
|
+
|
984
|
+
<span class="sodify" onclick="firehose_set_options('color', 'red')" title="Filter Firehose to entries rated red or better" ></span><span class="soda pop1" title="Filter Firehose to entries rated red or better" onclick="firehose_set_options('color', 'red')"><span> </span></span> <a href="//it.slashdot.org" title="Filter to IT" class="skin" onclick='return addfhfilter("it"); return false;'>IT:</a> <a onclick="return toggle_fh_body_wrap_return(this);" href="//it.slashdot.org/story/09/06/30/2237256/New-Click-Fraud-Attack-Is-Stealthiest-Yet" class="datitle">New Click-Fraud Attack Is Stealthiest Yet</a> <span class="date">on Tuesday June 30, @09:35PM</span> <span class="nickname"></span>
|
985
|
+
|
986
|
+
</h3>
|
987
|
+
<div class="details" id="details-5047353">
|
988
|
+
|
989
|
+
<strong>
|
990
|
+
Posted
|
991
|
+
by
|
992
|
+
|
993
|
+
|
994
|
+
|
995
|
+
kdawson
|
996
|
+
|
997
|
+
|
998
|
+
|
999
|
+
|
1000
|
+
|
1001
|
+
|
1002
|
+
<span id="fhtime-5047353">on Tuesday June 30, @09:35PM</span></strong>
|
1003
|
+
|
1004
|
+
<br>
|
1005
|
+
|
1006
|
+
<strong>from the <strong>penny-here-penny-there</strong> dept.</strong>
|
1007
|
+
|
1008
|
+
|
1009
|
+
</div>
|
1010
|
+
<div class="body" id="fhbody-5047353">
|
1011
|
+
|
1012
|
+
<div class="media">
|
1013
|
+
|
1014
|
+
|
1015
|
+
|
1016
|
+
|
1017
|
+
|
1018
|
+
|
1019
|
+
|
1020
|
+
|
1021
|
+
|
1022
|
+
|
1023
|
+
|
1024
|
+
<div class="maybe-sprite tid-172">
|
1025
|
+
<span class="no-sprite" style="display: none">background: url(//c.fsdn.com/sd/topics/topicsecurity.gif); width:59px; height:78px;</span>
|
1026
|
+
<a style="width:59px; height:78px; display: block; text-indent:-99999px;" href="//slashdot.org/index2.pl?fhfilter=security" onclick="return addfhfilter('security');">security</a>
|
1027
|
+
</div>
|
1028
|
+
|
1029
|
+
|
1030
|
+
|
1031
|
+
|
1032
|
+
</div>
|
1033
|
+
|
1034
|
+
|
1035
|
+
|
1036
|
+
<div id="text-5047353">
|
1037
|
+
An anonymous reader sends news from The Washington Post's Security Fix blog of a new Trojan horse program that takes click fraud to the next level. The Trojan, dubbed <a href="http://secureworks.com/research/threats/ffsearcher/">FFsearcher</a> by SecureWorks, was among the pieces of malware installed by sites hacked with the <a href="http://securitylabs.websense.com/content/Alerts/3421.aspx">Nine-Ball mass compromise</a>, which attacked some 40,000 Web sites this month. The Trojan takes advantage of Google's "AdSense for Search" API, which allows Web sites to embed Google search results alongside the usual Google AdSense ads. (SecureWorks' writeup indicates that Yahoo search is targeted too, but the researchers saw no evidence if the malware redirecting Yahoo searches.) While most search hijackers give themselves away on the victim's machine by redirecting the browser through some no-name search engine, FFsearcher <i>"...converts every search a victim makes through Google.com, so that each query is invisibly redirected through the attackers' own Web sites, via Google's Custom Search API. Meanwhile, the Trojan manipulates the victim's PC and browser so that the victim never actually sees the attacker-controlled Web site that is hijacking the search, but instead sees the search results as though they were returned directly from Google.com (and with Google.com in the victim browser's address bar, not the address of the attacker controlled site). Adding to the stealth is the fact that search results themselves aren't altered by the attackers, who are merely going after the referral payments should victims click on any of the displayed ads. What's more, the attackers aren't diverting clicks or ad revenue away from advertisers or publishers, as in traditional click fraud: They are simply forcing Google to pay commissions that it wouldn't otherwise have to pay."</i> If FFSearcher were the only piece of malware on the machine, it would have a better chance of staying under the radar.</div>
|
1038
|
+
|
1039
|
+
|
1040
|
+
|
1041
|
+
|
1042
|
+
|
1043
|
+
<div class="article-foot a">
|
1044
|
+
|
1045
|
+
<span class="reader">
|
1046
|
+
|
1047
|
+
<a href="//it.slashdot.org/story/09/06/30/2237256/New-Click-Fraud-Attack-Is-Stealthiest-Yet" class="more">Read More...</a>
|
1048
|
+
|
1049
|
+
<span class="commentcnt"> <a href="/comments.pl?sid=1287781" id="commentcnt-5047353">10</a> comments</span>
|
1050
|
+
</span>
|
1051
|
+
|
1052
|
+
<div id="tag-widget-5047353" class="tag-widget-stub body-widget">
|
1053
|
+
|
1054
|
+
<a class="edit-toggle" href="//slashdot.org/faq/UI.shtml#ui700" onclick="this.blur(); show_login_box(); return false"><span class="button collapse"></span></a>
|
1055
|
+
|
1056
|
+
<span class="tag-display-stub" context="top" init="legend:'top tags'">google security firefox</span>
|
1057
|
+
<span class="tag-display-stub" context="system">it security</span>
|
1058
|
+
<span class="tag-display-stub" context="datatype" init="menu:false">story</span>
|
1059
|
+
</div>
|
1060
|
+
</div>
|
1061
|
+
|
1062
|
+
</div>
|
1063
|
+
|
1064
|
+
<span class="vballoon-firehoselist rd_5">
|
1065
|
+
<span>Comments:</span>
|
1066
|
+
<a href="//it.slashdot.org/comments.pl?sid=1287781" id="commentcnt-5047353">10</a>
|
1067
|
+
</span>
|
1068
|
+
|
1069
|
+
|
1070
|
+
|
1071
|
+
<hr>
|
1072
|
+
|
1073
|
+
|
1074
|
+
</div><div id="firehose-5046963" class="fhitem fhitem-story article usermode thumbs">
|
1075
|
+
<span class="sd-info-block" style="display: none">
|
1076
|
+
<span class="sd-key-firehose-id">5046963</span>
|
1077
|
+
<span class="type">story</span>
|
1078
|
+
|
1079
|
+
</span>
|
1080
|
+
|
1081
|
+
|
1082
|
+
|
1083
|
+
<span id="updown-5046963" class="vote">
|
1084
|
+
<a href="//slashdot.org/faq/UI.shtml#ui700" class="up" title="Vote this item up">+</a>
|
1085
|
+
<a href="//slashdot.org/faq/UI.shtml#ui700" class="down" title="Vote this item down">-</a>
|
1086
|
+
</span>
|
1087
|
+
|
1088
|
+
|
1089
|
+
|
1090
|
+
|
1091
|
+
<h3 class="story" id="title-5046963">
|
1092
|
+
|
1093
|
+
<span class="sodify" onclick="firehose_set_options('color', 'red')" title="Filter Firehose to entries rated red or better" ></span><span class="soda pop1" title="Filter Firehose to entries rated red or better" onclick="firehose_set_options('color', 'red')"><span> </span></span> <a href="//slashdot.org/index2.pl?fhfilter=tech" title="Filter to Technology" class="skin" onclick='return addfhfilter("tech"); return false;'>Technology:</a> <a onclick="return toggle_fh_body_wrap_return(this);" href="//tech.slashdot.org/story/09/06/30/224233/One-Year-Later-Dead-XP-Still-Going-Strong" class="datitle">One Year Later, "Dead" XP Still Going Strong</a> <span class="date">on Tuesday June 30, @07:32PM</span> <span class="nickname"></span>
|
1094
|
+
|
1095
|
+
</h3>
|
1096
|
+
<div class="details" id="details-5046963">
|
1097
|
+
|
1098
|
+
<strong>
|
1099
|
+
Posted
|
1100
|
+
by
|
1101
|
+
|
1102
|
+
|
1103
|
+
|
1104
|
+
kdawson
|
1105
|
+
|
1106
|
+
|
1107
|
+
|
1108
|
+
|
1109
|
+
|
1110
|
+
|
1111
|
+
<span id="fhtime-5046963">on Tuesday June 30, @07:32PM</span></strong>
|
1112
|
+
|
1113
|
+
<br>
|
1114
|
+
|
1115
|
+
<strong>from the <strong>killed-the-wrong-one</strong> dept.</strong>
|
1116
|
+
|
1117
|
+
|
1118
|
+
</div>
|
1119
|
+
<div class="body" id="fhbody-5046963">
|
1120
|
+
|
1121
|
+
<div class="media">
|
1122
|
+
|
1123
|
+
|
1124
|
+
|
1125
|
+
|
1126
|
+
|
1127
|
+
|
1128
|
+
|
1129
|
+
|
1130
|
+
|
1131
|
+
|
1132
|
+
|
1133
|
+
<div class="maybe-sprite tid-201">
|
1134
|
+
<span class="no-sprite" style="display: none">background: url(//c.fsdn.com/sd/topics/topicwindows.gif); width:49px; height:65px;</span>
|
1135
|
+
<a style="width:49px; height:65px; display: block; text-indent:-99999px;" href="//slashdot.org/index2.pl?fhfilter=windows" onclick="return addfhfilter('windows');">windows</a>
|
1136
|
+
</div>
|
1137
|
+
|
1138
|
+
|
1139
|
+
|
1140
|
+
|
1141
|
+
</div>
|
1142
|
+
|
1143
|
+
|
1144
|
+
|
1145
|
+
<div id="text-5046963">
|
1146
|
+
<a href="http://www.infoworld.com/" rel="nofollow">snydeq</a> writes <i>"Microsoft pulled the plug on Windows XP a year ago today, no longer selling new copies in most venues. Yet according to a report from InfoWorld, various <a href="http://infoworld.com/d/windows/year-after-windows-xps-death-users-keep-it-alive-and-kicking-247">downgrade paths to XP are keeping the operating system very much alive</a>, particularly among businesses. In fact, despite Microsoft trumpeting Vista as the most successful version of Windows ever sold, more than half of business PCs have subsequently downgraded Vista-based machines to XP, according to data provided by <a href="http://www.xpnet.com/">community-based performance-monitoring network of PCs</a>. Microsoft recently planned to <a href="http://tech.slashdot.org/story/09/06/16/1756229/Windows-7-Licensing-a-Disaster-For-XP-Shops?art_pos=1">further limit the ability to downgrade to XP</a> now that Windows 7 is in the pipeline, but backlash against the licensing scheme prompted the company to change course, <a href="http://www.computerworld.com/action/article.do?command=viewArticleBasic&articleId=9134528">extending downgrade rights on new PCs from April 2010 to April 2011</a>."</i></div>
|
1147
|
+
|
1148
|
+
|
1149
|
+
|
1150
|
+
|
1151
|
+
|
1152
|
+
<div class="article-foot a">
|
1153
|
+
|
1154
|
+
<span class="reader">
|
1155
|
+
|
1156
|
+
<a href="//tech.slashdot.org/story/09/06/30/224233/One-Year-Later-Dead-XP-Still-Going-Strong" class="more">Read More...</a>
|
1157
|
+
|
1158
|
+
<span class="commentcnt"> <a href="/comments.pl?sid=1287729" id="commentcnt-5046963">137</a> comments</span>
|
1159
|
+
</span>
|
1160
|
+
|
1161
|
+
<div id="tag-widget-5046963" class="tag-widget-stub body-widget">
|
1162
|
+
|
1163
|
+
<a class="edit-toggle" href="//slashdot.org/faq/UI.shtml#ui700" onclick="this.blur(); show_login_box(); return false"><span class="button collapse"></span></a>
|
1164
|
+
|
1165
|
+
<span class="tag-display-stub" context="top" init="legend:'top tags'">os windows microsoft !deadyet itsgoodenough</span>
|
1166
|
+
<span class="tag-display-stub" context="system">tech windows</span>
|
1167
|
+
<span class="tag-display-stub" context="datatype" init="menu:false">story</span>
|
1168
|
+
</div>
|
1169
|
+
</div>
|
1170
|
+
|
1171
|
+
</div>
|
1172
|
+
|
1173
|
+
<span class="vballoon-firehoselist rd_5">
|
1174
|
+
<span>Comments:</span>
|
1175
|
+
<a href="//tech.slashdot.org/comments.pl?sid=1287729" id="commentcnt-5046963">137</a>
|
1176
|
+
</span>
|
1177
|
+
|
1178
|
+
|
1179
|
+
|
1180
|
+
<hr>
|
1181
|
+
|
1182
|
+
|
1183
|
+
</div><div id="firehose-5046127" class="fhitem fhitem-story article usermode thumbs">
|
1184
|
+
<span class="sd-info-block" style="display: none">
|
1185
|
+
<span class="sd-key-firehose-id">5046127</span>
|
1186
|
+
<span class="type">story</span>
|
1187
|
+
|
1188
|
+
</span>
|
1189
|
+
|
1190
|
+
|
1191
|
+
|
1192
|
+
<span id="updown-5046127" class="vote">
|
1193
|
+
<a href="//slashdot.org/faq/UI.shtml#ui700" class="up" title="Vote this item up">+</a>
|
1194
|
+
<a href="//slashdot.org/faq/UI.shtml#ui700" class="down" title="Vote this item down">-</a>
|
1195
|
+
</span>
|
1196
|
+
|
1197
|
+
|
1198
|
+
|
1199
|
+
|
1200
|
+
<h3 class="story" id="title-5046127">
|
1201
|
+
|
1202
|
+
<span class="sodify" onclick="firehose_set_options('color', 'red')" title="Filter Firehose to entries rated red or better" ></span><span class="soda pop1" title="Filter Firehose to entries rated red or better" onclick="firehose_set_options('color', 'red')"><span> </span></span> <a href="//slashdot.org/index2.pl?fhfilter=tech" title="Filter to Technology" class="skin" onclick='return addfhfilter("tech"); return false;'>Technology:</a> <a onclick="return toggle_fh_body_wrap_return(this);" href="//tech.slashdot.org/story/09/06/30/2044224/Malcolm-Gladwell-Challenges-the-Idea-of-Free" class="datitle">Malcolm Gladwell Challenges the Idea of "Free"</a> <span class="date">on Tuesday June 30, @06:46PM</span> <span class="nickname"></span>
|
1203
|
+
|
1204
|
+
</h3>
|
1205
|
+
<div class="details" id="details-5046127">
|
1206
|
+
|
1207
|
+
<strong>
|
1208
|
+
Posted
|
1209
|
+
by
|
1210
|
+
|
1211
|
+
|
1212
|
+
|
1213
|
+
kdawson
|
1214
|
+
|
1215
|
+
|
1216
|
+
|
1217
|
+
|
1218
|
+
|
1219
|
+
|
1220
|
+
<span id="fhtime-5046127">on Tuesday June 30, @06:46PM</span></strong>
|
1221
|
+
|
1222
|
+
<br>
|
1223
|
+
|
1224
|
+
<strong>from the <strong>crying-out-from-a-world-of-hurt</strong> dept.</strong>
|
1225
|
+
|
1226
|
+
|
1227
|
+
</div>
|
1228
|
+
<div class="body" id="fhbody-5046127">
|
1229
|
+
|
1230
|
+
<div class="media">
|
1231
|
+
|
1232
|
+
|
1233
|
+
|
1234
|
+
|
1235
|
+
|
1236
|
+
|
1237
|
+
|
1238
|
+
|
1239
|
+
|
1240
|
+
|
1241
|
+
|
1242
|
+
<div class="maybe-sprite tid-95">
|
1243
|
+
<span class="no-sprite" style="display: none">background: url(//c.fsdn.com/sd/topics/topicinternet.gif); width:70px; height:73px;</span>
|
1244
|
+
<a style="width:70px; height:73px; display: block; text-indent:-99999px;" href="//slashdot.org/index2.pl?fhfilter=internet" onclick="return addfhfilter('internet');">internet</a>
|
1245
|
+
</div>
|
1246
|
+
|
1247
|
+
|
1248
|
+
|
1249
|
+
|
1250
|
+
</div>
|
1251
|
+
|
1252
|
+
|
1253
|
+
|
1254
|
+
<div id="text-5046127">
|
1255
|
+
An anonymous reader brings us another bump on the <a href="//tech.slashdot.org/story/09/06/24/1528204">bumpy road</a> of Chris Anderson's new book, <em>Free: The Future of a Radical Price</em>, which we discussed a week ago. Now the Times (UK) is <a href="http://timesonline.typepad.com/technology/2009/06/malcolm-gladwell-vs-chris-anderson-a-very-intellectual-bust-up.html">reporting on a dustup</a> between Anderson and <a href="http://en.wikipedia.org/wiki/Gladwell">Malcolm Gladwell</a>, author of <em>The Tipping Point</em>, <em>Blink</em>, and <a href="//books.slashdot.org/article.pl?sid=09/03/04/1426234&tid=146">Outliers</a>. Recently <a href="http://www.newyorker.com/arts/critics/books/2009/07/06/090706crbo_books_gladwell?printable=true">Gladwell reviewed, or rather deconstructed, Anderson's book</a> in the New Yorker. <a href="http://www.wired.com/epicenter/2009/06/dear-malcolm-why-so-threatened/">Anderson has responded</a> with a blog post that addresses some, but by no means all, of Gladwell's criticisms, and The Times is inclined to award the match to Gladwell on points. Although their reviewer didn't notice that Gladwell, in setting up the idea of "Free" as a straw man, omitted a critical half of <a href="http://en.wikipedia.org/wiki/Information_wants_to_be_free">Stewart Brand's seminal quote</a>.</div>
|
1256
|
+
|
1257
|
+
|
1258
|
+
|
1259
|
+
|
1260
|
+
|
1261
|
+
<div class="article-foot a">
|
1262
|
+
|
1263
|
+
<span class="reader">
|
1264
|
+
|
1265
|
+
<a href="//tech.slashdot.org/story/09/06/30/2044224/Malcolm-Gladwell-Challenges-the-Idea-of-Free" class="more">Read More...</a>
|
1266
|
+
|
1267
|
+
<span class="commentcnt"> <a href="/comments.pl?sid=1287667" id="commentcnt-5046127">86</a> comments</span>
|
1268
|
+
</span>
|
1269
|
+
|
1270
|
+
<div id="tag-widget-5046127" class="tag-widget-stub body-widget">
|
1271
|
+
|
1272
|
+
<a class="edit-toggle" href="//slashdot.org/faq/UI.shtml#ui700" onclick="this.blur(); show_login_box(); return false"><span class="button collapse"></span></a>
|
1273
|
+
|
1274
|
+
<span class="tag-display-stub" context="top" init="legend:'top tags'">books media internet omgwtfsummary egoclash</span>
|
1275
|
+
<span class="tag-display-stub" context="system">tech internet</span>
|
1276
|
+
<span class="tag-display-stub" context="datatype" init="menu:false">story</span>
|
1277
|
+
</div>
|
1278
|
+
</div>
|
1279
|
+
|
1280
|
+
</div>
|
1281
|
+
|
1282
|
+
<span class="vballoon-firehoselist rd_5">
|
1283
|
+
<span>Comments:</span>
|
1284
|
+
<a href="//tech.slashdot.org/comments.pl?sid=1287667" id="commentcnt-5046127">86</a>
|
1285
|
+
</span>
|
1286
|
+
|
1287
|
+
|
1288
|
+
|
1289
|
+
<hr>
|
1290
|
+
|
1291
|
+
|
1292
|
+
</div><div id="firehose-5045029" class="fhitem fhitem-story article usermode thumbs">
|
1293
|
+
<span class="sd-info-block" style="display: none">
|
1294
|
+
<span class="sd-key-firehose-id">5045029</span>
|
1295
|
+
<span class="type">story</span>
|
1296
|
+
|
1297
|
+
</span>
|
1298
|
+
|
1299
|
+
|
1300
|
+
|
1301
|
+
<span id="updown-5045029" class="vote">
|
1302
|
+
<a href="//slashdot.org/faq/UI.shtml#ui700" class="up" title="Vote this item up">+</a>
|
1303
|
+
<a href="//slashdot.org/faq/UI.shtml#ui700" class="down" title="Vote this item down">-</a>
|
1304
|
+
</span>
|
1305
|
+
|
1306
|
+
|
1307
|
+
|
1308
|
+
|
1309
|
+
<h3 class="story" id="title-5045029">
|
1310
|
+
|
1311
|
+
<span class="sodify" onclick="firehose_set_options('color', 'red')" title="Filter Firehose to entries rated red or better" ></span><span class="soda pop1" title="Filter Firehose to entries rated red or better" onclick="firehose_set_options('color', 'red')"><span> </span></span> <a href="//yro.slashdot.org" title="Filter to Your Rights Online" class="skin" onclick='return addfhfilter("yro"); return false;'>Your Rights Online:</a> <a onclick="return toggle_fh_body_wrap_return(this);" href="//yro.slashdot.org/story/09/06/30/1917212/Ranchers-Have-Beef-With-USDA-Program-To-ID-Cattle" class="datitle">Ranchers Have Beef With USDA Program To ID Cattle</a> <span class="date">on Tuesday June 30, @05:57PM</span> <span class="nickname"></span>
|
1312
|
+
|
1313
|
+
</h3>
|
1314
|
+
<div class="details" id="details-5045029">
|
1315
|
+
|
1316
|
+
<strong>
|
1317
|
+
Posted
|
1318
|
+
by
|
1319
|
+
|
1320
|
+
|
1321
|
+
|
1322
|
+
kdawson
|
1323
|
+
|
1324
|
+
|
1325
|
+
|
1326
|
+
|
1327
|
+
|
1328
|
+
|
1329
|
+
<span id="fhtime-5045029">on Tuesday June 30, @05:57PM</span></strong>
|
1330
|
+
|
1331
|
+
<br>
|
1332
|
+
|
1333
|
+
<strong>from the <strong>chipping-in</strong> dept.</strong>
|
1334
|
+
|
1335
|
+
|
1336
|
+
</div>
|
1337
|
+
<div class="body" id="fhbody-5045029">
|
1338
|
+
|
1339
|
+
<div class="media">
|
1340
|
+
|
1341
|
+
|
1342
|
+
|
1343
|
+
|
1344
|
+
|
1345
|
+
|
1346
|
+
|
1347
|
+
|
1348
|
+
|
1349
|
+
|
1350
|
+
|
1351
|
+
<div class="maybe-sprite tid-158">
|
1352
|
+
<span class="no-sprite" style="display: none">background: url(//c.fsdn.com/sd/topics/topicprivacy.gif); width:71px; height:53px;</span>
|
1353
|
+
<a style="width:71px; height:53px; display: block; text-indent:-99999px;" href="//slashdot.org/index2.pl?fhfilter=privacy" onclick="return addfhfilter('privacy');">privacy</a>
|
1354
|
+
</div>
|
1355
|
+
|
1356
|
+
|
1357
|
+
|
1358
|
+
|
1359
|
+
</div>
|
1360
|
+
|
1361
|
+
|
1362
|
+
|
1363
|
+
<div id="text-5045029">
|
1364
|
+
<a href="http://poncacityweloveyou.com/" rel="nofollow">Ponca City, We Love You</a> writes <i>"The NY Times reports that farmers and ranchers oppose a <a href="http://www.nytimes.com/2009/06/28/us/28livestock.html">government program to identify livestock with microchip tags</a> that would allow the computerized recording of livestock movements from birth to the slaughterhouse. Proponents of the <a href="http://animalid.aphis.usda.gov/nais/">USDA's National Animal Identification System</a> say that computer records of cattle movements mean that when a cow is discovered with bovine tuberculosis or mad cow disease, its prior contacts can be swiftly traced. Ranchers say the extra cost of the electronic tags places an onerous burden on a teetering industry. Small groups of cattle are often rounded up in distant spots and herded into a truck by a single person who could not simultaneously wield the hand-held scanner needed to record individual animal identities. The ranchers also note that there is no Internet connection on many ranches for filing to a regional database. 'Lobbyists from corporate mega-agribusiness designed this program to destroy traditional small sustainable agriculture,' says Genell Pridgen, an owner of Rainbow Meadow Farms. The notion of centralized data banks, even for animals, has also <a href="http://www.lpmo.org/media/releases/2009/PR-20090606-01.shtml">set off alarms among libertarians who oppose NAIS</a>. One group has issued a bumper sticker that reads, 'Tracking cattle now, tracking you soon.' 'They can't comprehend the vastness of a ranch like this,' says Jay Platt, the third-generation owner of a 22,000 acre New Mexico ranch. 'This plan is expensive, it's intrusive, and there's no need for it.'"</i></div>
|
1365
|
+
|
1366
|
+
|
1367
|
+
|
1368
|
+
|
1369
|
+
|
1370
|
+
<div class="article-foot a">
|
1371
|
+
|
1372
|
+
<span class="reader">
|
1373
|
+
|
1374
|
+
<a href="//yro.slashdot.org/story/09/06/30/1917212/Ranchers-Have-Beef-With-USDA-Program-To-ID-Cattle" class="more">Read More...</a>
|
1375
|
+
|
1376
|
+
<span class="commentcnt"> <a href="/comments.pl?sid=1287609" id="commentcnt-5045029">243</a> comments</span>
|
1377
|
+
</span>
|
1378
|
+
|
1379
|
+
<div id="tag-widget-5045029" class="tag-widget-stub body-widget">
|
1380
|
+
|
1381
|
+
<a class="edit-toggle" href="//slashdot.org/faq/UI.shtml#ui700" onclick="this.blur(); show_login_box(); return false"><span class="button collapse"></span></a>
|
1382
|
+
|
1383
|
+
<span class="tag-display-stub" context="top" init="legend:'top tags'">business privacy government moo pun</span>
|
1384
|
+
<span class="tag-display-stub" context="system">yro privacy</span>
|
1385
|
+
<span class="tag-display-stub" context="datatype" init="menu:false">story</span>
|
1386
|
+
</div>
|
1387
|
+
</div>
|
1388
|
+
|
1389
|
+
</div>
|
1390
|
+
|
1391
|
+
<span class="vballoon-firehoselist rd_5">
|
1392
|
+
<span>Comments:</span>
|
1393
|
+
<a href="//yro.slashdot.org/comments.pl?sid=1287609" id="commentcnt-5045029">243</a>
|
1394
|
+
</span>
|
1395
|
+
|
1396
|
+
|
1397
|
+
|
1398
|
+
<hr>
|
1399
|
+
|
1400
|
+
|
1401
|
+
</div><div id="firehose-5044897" class="fhitem fhitem-story article usermode thumbs">
|
1402
|
+
<span class="sd-info-block" style="display: none">
|
1403
|
+
<span class="sd-key-firehose-id">5044897</span>
|
1404
|
+
<span class="type">story</span>
|
1405
|
+
|
1406
|
+
</span>
|
1407
|
+
|
1408
|
+
|
1409
|
+
|
1410
|
+
<span id="updown-5044897" class="vote">
|
1411
|
+
<a href="//slashdot.org/faq/UI.shtml#ui700" class="up" title="Vote this item up">+</a>
|
1412
|
+
<a href="//slashdot.org/faq/UI.shtml#ui700" class="down" title="Vote this item down">-</a>
|
1413
|
+
</span>
|
1414
|
+
|
1415
|
+
|
1416
|
+
|
1417
|
+
|
1418
|
+
<h3 class="story" id="title-5044897">
|
1419
|
+
|
1420
|
+
<span class="sodify" onclick="firehose_set_options('color', 'red')" title="Filter Firehose to entries rated red or better" ></span><span class="soda pop1" title="Filter Firehose to entries rated red or better" onclick="firehose_set_options('color', 'red')"><span> </span></span> <a href="//slashdot.org/index2.pl?fhfilter=tech" title="Filter to Technology" class="skin" onclick='return addfhfilter("tech"); return false;'>Technology:</a> <a onclick="return toggle_fh_body_wrap_return(this);" href="//tech.slashdot.org/story/09/06/30/197212/SoftMaker-Office-2008-vs-OpenOfficeorg-31" class="datitle">SoftMaker Office 2008 vs. OpenOffice.org 3.1</a> <span class="date">on Tuesday June 30, @05:11PM</span> <span class="nickname"></span>
|
1421
|
+
|
1422
|
+
</h3>
|
1423
|
+
<div class="details" id="details-5044897">
|
1424
|
+
|
1425
|
+
<strong>
|
1426
|
+
Posted
|
1427
|
+
by
|
1428
|
+
|
1429
|
+
|
1430
|
+
|
1431
|
+
kdawson
|
1432
|
+
|
1433
|
+
|
1434
|
+
|
1435
|
+
|
1436
|
+
|
1437
|
+
|
1438
|
+
<span id="fhtime-5044897">on Tuesday June 30, @05:11PM</span></strong>
|
1439
|
+
|
1440
|
+
<br>
|
1441
|
+
|
1442
|
+
<strong>from the <strong>attempted-dethroning-using-nerf-bats</strong> dept.</strong>
|
1443
|
+
|
1444
|
+
|
1445
|
+
</div>
|
1446
|
+
<div class="body" id="fhbody-5044897">
|
1447
|
+
|
1448
|
+
<div class="media">
|
1449
|
+
|
1450
|
+
|
1451
|
+
|
1452
|
+
|
1453
|
+
|
1454
|
+
|
1455
|
+
|
1456
|
+
|
1457
|
+
|
1458
|
+
|
1459
|
+
|
1460
|
+
<div class="maybe-sprite tid-185">
|
1461
|
+
<span class="no-sprite" style="display: none">background: url(//c.fsdn.com/sd/topics/topicsoftware.gif); width:65px; height:65px;</span>
|
1462
|
+
<a style="width:65px; height:65px; display: block; text-indent:-99999px;" href="//slashdot.org/index2.pl?fhfilter=software" onclick="return addfhfilter('software');">software</a>
|
1463
|
+
</div>
|
1464
|
+
|
1465
|
+
|
1466
|
+
|
1467
|
+
|
1468
|
+
</div>
|
1469
|
+
|
1470
|
+
|
1471
|
+
|
1472
|
+
<div id="text-5044897">
|
1473
|
+
<a href="http://www.infoworld.com/" rel="nofollow">snydeq</a> writes <i>"InfoWorld's Randall Kennedy <a href="http://infoworld.com/d/applications/better-office-alternative-softmaker-office-bests-openofficeorg-445">examines would-be Microsoft Office competitors SoftMaker Office and OpenOffice.org</a> and finds the results surprising. OpenOffice.org — frequently cited as the most viable Office competitor — has pushed for Office interoperability in version 3.1, adding import support for files in Office 2007's native Open XML format. But, as Kennedy found in <a href="http://www.infoworld.com/d/applications/office-compatibility-torture-test-302">Office-compatibility testing</a>, that support remains mostly skin deep. 'Factor in OpenOffice's other well-documented warts — buggy Java implementation, CPU-hogging auto-update system, quirky font rendering — and it's easy to see why the vast majority of IT shops continue to reject this pretender to the <a href="http://www.infoworld.com/d/applications/why-microsoft-office-so-hard-kill-264">Microsoft Office throne</a>,' Kennedy writes. SoftMaker Office, however, 'shows that good things often still come in small packages.' Geared more toward mobile computing, the suite's 'compact footprint and low overhead make it ideal for underpowered systems, and its excellent compatibility with Office 2003 file formats means it's a safe choice for heterogeneous environments where external data access isn't a priority.'"</i> Note that SoftMaker Office is not free software — it costs $79.95 — and there is no version for Macintosh.</div>
|
1474
|
+
|
1475
|
+
|
1476
|
+
|
1477
|
+
|
1478
|
+
|
1479
|
+
<div class="article-foot a">
|
1480
|
+
|
1481
|
+
<span class="reader">
|
1482
|
+
|
1483
|
+
<a href="//tech.slashdot.org/story/09/06/30/197212/SoftMaker-Office-2008-vs-OpenOfficeorg-31" class="more">Read More...</a>
|
1484
|
+
|
1485
|
+
<span class="commentcnt"> <a href="/comments.pl?sid=1287593" id="commentcnt-5044897">124</a> comments</span>
|
1486
|
+
</span>
|
1487
|
+
|
1488
|
+
<div id="tag-widget-5044897" class="tag-widget-stub body-widget">
|
1489
|
+
|
1490
|
+
<a class="edit-toggle" href="//slashdot.org/faq/UI.shtml#ui700" onclick="this.blur(); show_login_box(); return false"><span class="button collapse"></span></a>
|
1491
|
+
|
1492
|
+
<span class="tag-display-stub" context="top" init="legend:'top tags'">software microsoft !opensource slashvertisement slashdotted</span>
|
1493
|
+
<span class="tag-display-stub" context="system">tech software</span>
|
1494
|
+
<span class="tag-display-stub" context="datatype" init="menu:false">story</span>
|
1495
|
+
</div>
|
1496
|
+
</div>
|
1497
|
+
|
1498
|
+
</div>
|
1499
|
+
|
1500
|
+
<span class="vballoon-firehoselist rd_5">
|
1501
|
+
<span>Comments:</span>
|
1502
|
+
<a href="//tech.slashdot.org/comments.pl?sid=1287593" id="commentcnt-5044897">124</a>
|
1503
|
+
</span>
|
1504
|
+
|
1505
|
+
|
1506
|
+
|
1507
|
+
<hr>
|
1508
|
+
|
1509
|
+
|
1510
|
+
</div><div id="firehose-5044569" class="fhitem fhitem-story article usermode thumbs">
|
1511
|
+
<span class="sd-info-block" style="display: none">
|
1512
|
+
<span class="sd-key-firehose-id">5044569</span>
|
1513
|
+
<span class="type">story</span>
|
1514
|
+
|
1515
|
+
</span>
|
1516
|
+
|
1517
|
+
|
1518
|
+
|
1519
|
+
<span id="updown-5044569" class="vote">
|
1520
|
+
<a href="//slashdot.org/faq/UI.shtml#ui700" class="up" title="Vote this item up">+</a>
|
1521
|
+
<a href="//slashdot.org/faq/UI.shtml#ui700" class="down" title="Vote this item down">-</a>
|
1522
|
+
</span>
|
1523
|
+
|
1524
|
+
|
1525
|
+
|
1526
|
+
|
1527
|
+
<h3 class="story" id="title-5044569">
|
1528
|
+
|
1529
|
+
<span class="sodify" onclick="firehose_set_options('color', 'red')" title="Filter Firehose to entries rated red or better" ></span><span class="soda pop1" title="Filter Firehose to entries rated red or better" onclick="firehose_set_options('color', 'red')"><span> </span></span> <a href="//slashdot.org/index2.pl?fhfilter=yro" title="Filter to Your Rights Online" class="skin" onclick='return addfhfilter("yro"); return false;'>Your Rights Online:</a> <a onclick="return toggle_fh_body_wrap_return(this);" href="//yro.slashdot.org/story/09/06/30/1840247/In-Canada-No-Expectation-of-Privacy-On-the-Net" class="datitle">In Canada, No Expectation of Privacy On the Net</a> <span class="date">on Tuesday June 30, @04:23PM</span> <span class="nickname"></span>
|
1530
|
+
|
1531
|
+
</h3>
|
1532
|
+
<div class="details" id="details-5044569">
|
1533
|
+
|
1534
|
+
<strong>
|
1535
|
+
Posted
|
1536
|
+
by
|
1537
|
+
|
1538
|
+
|
1539
|
+
|
1540
|
+
kdawson
|
1541
|
+
|
1542
|
+
|
1543
|
+
|
1544
|
+
|
1545
|
+
|
1546
|
+
|
1547
|
+
<span id="fhtime-5044569">on Tuesday June 30, @04:23PM</span></strong>
|
1548
|
+
|
1549
|
+
<br>
|
1550
|
+
|
1551
|
+
<strong>from the <strong>if-you're-not-doing-anything-wrong</strong> dept.</strong>
|
1552
|
+
|
1553
|
+
|
1554
|
+
</div>
|
1555
|
+
<div class="body" id="fhbody-5044569">
|
1556
|
+
|
1557
|
+
<div class="media">
|
1558
|
+
|
1559
|
+
|
1560
|
+
|
1561
|
+
|
1562
|
+
|
1563
|
+
|
1564
|
+
|
1565
|
+
|
1566
|
+
|
1567
|
+
|
1568
|
+
|
1569
|
+
<div class="maybe-sprite tid-158">
|
1570
|
+
<span class="no-sprite" style="display: none">background: url(//c.fsdn.com/sd/topics/topicprivacy.gif); width:71px; height:53px;</span>
|
1571
|
+
<a style="width:71px; height:53px; display: block; text-indent:-99999px;" href="//slashdot.org/index2.pl?fhfilter=privacy" onclick="return addfhfilter('privacy');">privacy</a>
|
1572
|
+
</div>
|
1573
|
+
|
1574
|
+
|
1575
|
+
|
1576
|
+
|
1577
|
+
</div>
|
1578
|
+
|
1579
|
+
|
1580
|
+
|
1581
|
+
<div id="text-5044569">
|
1582
|
+
<a href="http://www.andrewshouts.com/" rel="nofollow">The_AV8R</a> writes <i>"In a recent interview, Peter Van Loan, the new Canadian Public Safety minister, says <a href="http://www.tvo.org/cfmx/tvoorg/theagenda/index.cfm?page_id=3&action=blog&subaction=viewpost&blog_id=81&post_id=10544">ISPs should be able to provide private user information without a warrant</a>. (The only example he gave was cases of child pornography; the interviewer pointed out that in these cases ISPs are already at liberty to divulge customer information without a warrant, but that the proposed rules would make that mandatory whenever the police ask.) He was adamant that in regard to IP addresses, names, cell phone numbers, and email addresses: '...that is not the kind of information about which Canadians have a legitimate expectation of privacy.' The minister denied — even when presented with an audio clip proving otherwise — that his predecessor had promised never to allow the police to wiretap the Internet without a warrant."</i></div>
|
1583
|
+
|
1584
|
+
|
1585
|
+
|
1586
|
+
|
1587
|
+
|
1588
|
+
<div class="article-foot a">
|
1589
|
+
|
1590
|
+
<span class="reader">
|
1591
|
+
|
1592
|
+
<a href="//yro.slashdot.org/story/09/06/30/1840247/In-Canada-No-Expectation-of-Privacy-On-the-Net" class="more">Read More...</a>
|
1593
|
+
|
1594
|
+
<span class="commentcnt"> <a href="/comments.pl?sid=1287569" id="commentcnt-5044569">138</a> comments</span>
|
1595
|
+
</span>
|
1596
|
+
|
1597
|
+
<div id="tag-widget-5044569" class="tag-widget-stub body-widget">
|
1598
|
+
|
1599
|
+
<a class="edit-toggle" href="//slashdot.org/faq/UI.shtml#ui700" onclick="this.blur(); show_login_box(); return false"><span class="button collapse"></span></a>
|
1600
|
+
|
1601
|
+
<span class="tag-display-stub" context="top" init="legend:'top tags'">privacy politics government tor fascism</span>
|
1602
|
+
<span class="tag-display-stub" context="system">yro privacy</span>
|
1603
|
+
<span class="tag-display-stub" context="datatype" init="menu:false">story</span>
|
1604
|
+
</div>
|
1605
|
+
</div>
|
1606
|
+
|
1607
|
+
</div>
|
1608
|
+
|
1609
|
+
<span class="vballoon-firehoselist rd_5">
|
1610
|
+
<span>Comments:</span>
|
1611
|
+
<a href="//yro.slashdot.org/comments.pl?sid=1287569" id="commentcnt-5044569">138</a>
|
1612
|
+
</span>
|
1613
|
+
|
1614
|
+
|
1615
|
+
|
1616
|
+
<hr>
|
1617
|
+
|
1618
|
+
|
1619
|
+
</div><div id="firehose-5043813" class="fhitem fhitem-story article usermode thumbs">
|
1620
|
+
<span class="sd-info-block" style="display: none">
|
1621
|
+
<span class="sd-key-firehose-id">5043813</span>
|
1622
|
+
<span class="type">story</span>
|
1623
|
+
|
1624
|
+
</span>
|
1625
|
+
|
1626
|
+
|
1627
|
+
|
1628
|
+
<span id="updown-5043813" class="vote">
|
1629
|
+
<a href="//slashdot.org/faq/UI.shtml#ui700" class="up" title="Vote this item up">+</a>
|
1630
|
+
<a href="//slashdot.org/faq/UI.shtml#ui700" class="down" title="Vote this item down">-</a>
|
1631
|
+
</span>
|
1632
|
+
|
1633
|
+
|
1634
|
+
|
1635
|
+
|
1636
|
+
<h3 class="story" id="title-5043813">
|
1637
|
+
|
1638
|
+
<span class="sodify" onclick="firehose_set_options('color', 'red')" title="Filter Firehose to entries rated red or better" ></span><span class="soda pop1" title="Filter Firehose to entries rated red or better" onclick="firehose_set_options('color', 'red')"><span> </span></span> <a href="//slashdot.org/index2.pl?fhfilter=news" title="Filter to News" class="skin" onclick='return addfhfilter("news"); return false;'>News:</a> <a onclick="return toggle_fh_body_wrap_return(this);" href="//news.slashdot.org/story/09/06/30/1752220/The-Hidden-Cost-of-Using-Microsoft-Software" class="datitle">The Hidden Cost of Using Microsoft Software</a> <span class="date">on Tuesday June 30, @03:37PM</span> <span class="nickname"></span>
|
1639
|
+
|
1640
|
+
</h3>
|
1641
|
+
<div class="details" id="details-5043813">
|
1642
|
+
|
1643
|
+
<strong>
|
1644
|
+
Posted
|
1645
|
+
by
|
1646
|
+
|
1647
|
+
|
1648
|
+
|
1649
|
+
kdawson
|
1650
|
+
|
1651
|
+
|
1652
|
+
|
1653
|
+
|
1654
|
+
|
1655
|
+
|
1656
|
+
<span id="fhtime-5043813">on Tuesday June 30, @03:37PM</span></strong>
|
1657
|
+
|
1658
|
+
<br>
|
1659
|
+
|
1660
|
+
<strong>from the <strong>badware-tax</strong> dept.</strong>
|
1661
|
+
|
1662
|
+
|
1663
|
+
</div>
|
1664
|
+
<div class="body" id="fhbody-5043813">
|
1665
|
+
|
1666
|
+
<div class="media">
|
1667
|
+
|
1668
|
+
|
1669
|
+
|
1670
|
+
|
1671
|
+
|
1672
|
+
|
1673
|
+
|
1674
|
+
|
1675
|
+
|
1676
|
+
|
1677
|
+
|
1678
|
+
<div class="maybe-sprite tid-109">
|
1679
|
+
<span class="no-sprite" style="display: none">background: url(//c.fsdn.com/sd/topics/topicms.gif); width:75px; height:55px;</span>
|
1680
|
+
<a style="width:75px; height:55px; display: block; text-indent:-99999px;" href="//slashdot.org/index2.pl?fhfilter=microsoft" onclick="return addfhfilter('microsoft');">microsoft</a>
|
1681
|
+
</div>
|
1682
|
+
|
1683
|
+
|
1684
|
+
|
1685
|
+
|
1686
|
+
</div>
|
1687
|
+
|
1688
|
+
|
1689
|
+
|
1690
|
+
<div id="text-5043813">
|
1691
|
+
<a href="http://opendotdotdot.blogspot.com/" rel="nofollow">Glyn Moody</a> writes <i>"Detractors of free software like to point out it's not really 'free,' and claim that its Total Cost of Ownership is often comparable with closed-source solutions if you take everything into account. And yet, despite their enthusiasm for including all the costs, they never include a very real extra that users of Microsoft's products frequently have to pay: the <a href="http://www.computerworlduk.com/community/blogs/index.cfm?entryid=2316&blogid=14">cost of cleaning up malware infections</a>. For example, the UK city of Manchester has <a href="http://www.manchestereveningnews.co.uk/news/s/1121846_bus_lane_fines_axed_over_bug?rss=yes">just paid out nearly $2.5 million</a> to clean up the Conficker worm, most of which was 'a £1.2m [$2million] bill in the IT department, including £600,000 [$1 million] getting "consultancy support" to fix the problems, which including drafting in experts from Microsoft.' To make the comparisons fair, isn't it about time these often massive costs were included in TCO calculations?"</i></div>
|
1692
|
+
|
1693
|
+
|
1694
|
+
|
1695
|
+
|
1696
|
+
|
1697
|
+
<div class="article-foot a">
|
1698
|
+
|
1699
|
+
<span class="reader">
|
1700
|
+
|
1701
|
+
<a href="//news.slashdot.org/story/09/06/30/1752220/The-Hidden-Cost-of-Using-Microsoft-Software" class="more">Read More...</a>
|
1702
|
+
|
1703
|
+
<span class="commentcnt"> <a href="/comments.pl?sid=1287529" id="commentcnt-5043813">458</a> comments</span>
|
1704
|
+
</span>
|
1705
|
+
|
1706
|
+
<div id="tag-widget-5043813" class="tag-widget-stub body-widget">
|
1707
|
+
|
1708
|
+
<a class="edit-toggle" href="//slashdot.org/faq/UI.shtml#ui700" onclick="this.blur(); show_login_box(); return false"><span class="button collapse"></span></a>
|
1709
|
+
|
1710
|
+
<span class="tag-display-stub" context="top" init="legend:'top tags'">money microsoft freeasinbeer tco flamebait</span>
|
1711
|
+
<span class="tag-display-stub" context="system">news microsoft</span>
|
1712
|
+
<span class="tag-display-stub" context="datatype" init="menu:false">story</span>
|
1713
|
+
</div>
|
1714
|
+
</div>
|
1715
|
+
|
1716
|
+
</div>
|
1717
|
+
|
1718
|
+
<span class="vballoon-firehoselist rd_5">
|
1719
|
+
<span>Comments:</span>
|
1720
|
+
<a href="//news.slashdot.org/comments.pl?sid=1287529" id="commentcnt-5043813">458</a>
|
1721
|
+
</span>
|
1722
|
+
|
1723
|
+
|
1724
|
+
|
1725
|
+
<hr>
|
1726
|
+
|
1727
|
+
|
1728
|
+
</div><div id="firehose-5043411" class="fhitem fhitem-story article usermode thumbs">
|
1729
|
+
<span class="sd-info-block" style="display: none">
|
1730
|
+
<span class="sd-key-firehose-id">5043411</span>
|
1731
|
+
<span class="type">story</span>
|
1732
|
+
|
1733
|
+
</span>
|
1734
|
+
|
1735
|
+
|
1736
|
+
|
1737
|
+
<span id="updown-5043411" class="vote">
|
1738
|
+
<a href="//slashdot.org/faq/UI.shtml#ui700" class="up" title="Vote this item up">+</a>
|
1739
|
+
<a href="//slashdot.org/faq/UI.shtml#ui700" class="down" title="Vote this item down">-</a>
|
1740
|
+
</span>
|
1741
|
+
|
1742
|
+
|
1743
|
+
|
1744
|
+
|
1745
|
+
<h3 class="story" id="title-5043411">
|
1746
|
+
|
1747
|
+
<span class="sodify" onclick="firehose_set_options('color', 'red')" title="Filter Firehose to entries rated red or better" ></span><span class="soda pop1" title="Filter Firehose to entries rated red or better" onclick="firehose_set_options('color', 'red')"><span> </span></span> <a href="//slashdot.org/index2.pl?fhfilter=interviews" title="Filter to Interviews" class="skin" onclick='return addfhfilter("interviews"); return false;'>Interviews:</a> <a onclick="return toggle_fh_body_wrap_return(this);" href="//interviews.slashdot.org/story/09/06/30/1728254/Ask-Jazz-Technical-Lead-Dr-Erich-Gamma" class="datitle">Ask Jazz Technical Lead Dr. Erich Gamma</a> <span class="date">on Tuesday June 30, @02:49PM</span> <span class="nickname"></span>
|
1748
|
+
|
1749
|
+
</h3>
|
1750
|
+
<div class="details" id="details-5043411">
|
1751
|
+
|
1752
|
+
<strong>
|
1753
|
+
Posted
|
1754
|
+
by
|
1755
|
+
|
1756
|
+
|
1757
|
+
|
1758
|
+
<a href="http://slashdot.org/~ScuttleMonkey/" rel="nofollow">ScuttleMonkey</a>
|
1759
|
+
|
1760
|
+
|
1761
|
+
|
1762
|
+
|
1763
|
+
|
1764
|
+
|
1765
|
+
<span id="fhtime-5043411">on Tuesday June 30, @02:49PM</span></strong>
|
1766
|
+
|
1767
|
+
<br>
|
1768
|
+
|
1769
|
+
<strong>from the <strong>sing-me-a-tune</strong> dept.</strong>
|
1770
|
+
|
1771
|
+
|
1772
|
+
</div>
|
1773
|
+
<div class="body" id="fhbody-5043411">
|
1774
|
+
|
1775
|
+
<div class="media">
|
1776
|
+
|
1777
|
+
|
1778
|
+
|
1779
|
+
|
1780
|
+
|
1781
|
+
|
1782
|
+
|
1783
|
+
|
1784
|
+
|
1785
|
+
|
1786
|
+
|
1787
|
+
<div class="maybe-sprite tid-108">
|
1788
|
+
<span class="no-sprite" style="display: none">background: url(//c.fsdn.com/sd/topics/topicjava.gif); width:43px; height:60px;</span>
|
1789
|
+
<a style="width:43px; height:60px; display: block; text-indent:-99999px;" href="//slashdot.org/index2.pl?fhfilter=java" onclick="return addfhfilter('java');">java</a>
|
1790
|
+
</div>
|
1791
|
+
|
1792
|
+
|
1793
|
+
|
1794
|
+
|
1795
|
+
</div>
|
1796
|
+
|
1797
|
+
|
1798
|
+
|
1799
|
+
<div id="text-5043411">
|
1800
|
+
As IBM continues to build out, <a href="http://jazz.net/about/">Jazz</a>, their community-oriented development site, technical lead Dr. Erich Gamma has offered to answer questions about Jazz or anything else in his realm of expertise. Among his many accomplishments, Erich worked for Kent Beck on the Java unit testing framework, JUnit, and was actively involved until JUnit 4. Dr Gamma was also one of the fathers of Eclipse and the original lead on the Eclipse Java development tools. Feel free to fire away on Eclipse, Java, JUnit, the Rational suite, the Jazz site, or anything else you think Erich might be able to answer. Usual Slashdot <a href="https://slashdot.org/faq/interviews.shtml">interview rules</a> apply. <b>Update 19:05 GMT by SM:</b> As pointed out by user Hop-Frog, Dr Gamma is also co-author of the influential computer science textbook <em> <a href="http://en.wikipedia.org/wiki/Design_Patterns_(book)">Design Patterns: Elements of Reusable Object-Oriented Software</a> </em>.</div>
|
1801
|
+
|
1802
|
+
|
1803
|
+
|
1804
|
+
|
1805
|
+
|
1806
|
+
<div class="article-foot a">
|
1807
|
+
|
1808
|
+
<span class="reader">
|
1809
|
+
|
1810
|
+
<a href="//interviews.slashdot.org/story/09/06/30/1728254/Ask-Jazz-Technical-Lead-Dr-Erich-Gamma" class="more">Read More...</a>
|
1811
|
+
|
1812
|
+
<span class="commentcnt"> <a href="/comments.pl?sid=1287509" id="commentcnt-5043411">54</a> comments</span>
|
1813
|
+
</span>
|
1814
|
+
|
1815
|
+
<div id="tag-widget-5043411" class="tag-widget-stub body-widget">
|
1816
|
+
|
1817
|
+
<a class="edit-toggle" href="//slashdot.org/faq/UI.shtml#ui700" onclick="this.blur(); show_login_box(); return false"><span class="button collapse"></span></a>
|
1818
|
+
|
1819
|
+
<span class="tag-display-stub" context="top" init="legend:'top tags'">java programming jackrabbit !satchmo gangoffour</span>
|
1820
|
+
<span class="tag-display-stub" context="system">interviews java</span>
|
1821
|
+
<span class="tag-display-stub" context="datatype" init="menu:false">story</span>
|
1822
|
+
</div>
|
1823
|
+
</div>
|
1824
|
+
|
1825
|
+
</div>
|
1826
|
+
|
1827
|
+
<span class="vballoon-firehoselist rd_5">
|
1828
|
+
<span>Comments:</span>
|
1829
|
+
<a href="//interviews.slashdot.org/comments.pl?sid=1287509" id="commentcnt-5043411">54</a>
|
1830
|
+
</span>
|
1831
|
+
|
1832
|
+
|
1833
|
+
|
1834
|
+
<hr>
|
1835
|
+
|
1836
|
+
|
1837
|
+
</div><div id="firehose-5044165" class="fhitem fhitem-story article usermode thumbs">
|
1838
|
+
<span class="sd-info-block" style="display: none">
|
1839
|
+
<span class="sd-key-firehose-id">5044165</span>
|
1840
|
+
<span class="type">story</span>
|
1841
|
+
|
1842
|
+
</span>
|
1843
|
+
|
1844
|
+
|
1845
|
+
|
1846
|
+
<span id="updown-5044165" class="vote">
|
1847
|
+
<a href="//slashdot.org/faq/UI.shtml#ui700" class="up" title="Vote this item up">+</a>
|
1848
|
+
<a href="//slashdot.org/faq/UI.shtml#ui700" class="down" title="Vote this item down">-</a>
|
1849
|
+
</span>
|
1850
|
+
|
1851
|
+
|
1852
|
+
|
1853
|
+
|
1854
|
+
<h3 class="story" id="title-5044165">
|
1855
|
+
|
1856
|
+
<span class="sodify" onclick="firehose_set_options('color', 'red')" title="Filter Firehose to entries rated red or better" ></span><span class="soda pop1" title="Filter Firehose to entries rated red or better" onclick="firehose_set_options('color', 'red')"><span> </span></span> <a href="//slashdot.org/index2.pl?fhfilter=tech" title="Filter to Technology" class="skin" onclick='return addfhfilter("tech"); return false;'>Technology:</a> <a onclick="return toggle_fh_body_wrap_return(this);" href="//tech.slashdot.org/story/09/06/30/1814235/Moblin-V20-Beta-For-Netbooks-and-Nettops" class="datitle">Moblin V2.0 Beta For Netbooks and Nettops</a> <span class="date">on Tuesday June 30, @02:31PM</span> <span class="nickname"></span>
|
1857
|
+
|
1858
|
+
</h3>
|
1859
|
+
<div class="details" id="details-5044165">
|
1860
|
+
|
1861
|
+
<strong>
|
1862
|
+
Posted
|
1863
|
+
by
|
1864
|
+
|
1865
|
+
|
1866
|
+
|
1867
|
+
kdawson
|
1868
|
+
|
1869
|
+
|
1870
|
+
|
1871
|
+
|
1872
|
+
|
1873
|
+
|
1874
|
+
<span id="fhtime-5044165">on Tuesday June 30, @02:31PM</span></strong>
|
1875
|
+
|
1876
|
+
<br>
|
1877
|
+
|
1878
|
+
<strong>from the <strong>get-your-mobility-on</strong> dept.</strong>
|
1879
|
+
|
1880
|
+
|
1881
|
+
</div>
|
1882
|
+
<div class="body" id="fhbody-5044165">
|
1883
|
+
|
1884
|
+
<div class="media">
|
1885
|
+
|
1886
|
+
|
1887
|
+
|
1888
|
+
|
1889
|
+
|
1890
|
+
|
1891
|
+
|
1892
|
+
|
1893
|
+
|
1894
|
+
|
1895
|
+
|
1896
|
+
<div class="maybe-sprite tid-190">
|
1897
|
+
<span class="no-sprite" style="display: none">background: url(//c.fsdn.com/sd/topics/topicos.gif); width:66px; height:49px;</span>
|
1898
|
+
<a style="width:66px; height:49px; display: block; text-indent:-99999px;" href="//slashdot.org/index2.pl?fhfilter=os" onclick="return addfhfilter('os');">os</a>
|
1899
|
+
</div>
|
1900
|
+
|
1901
|
+
|
1902
|
+
|
1903
|
+
|
1904
|
+
</div>
|
1905
|
+
|
1906
|
+
|
1907
|
+
|
1908
|
+
<div id="text-5044165">
|
1909
|
+
superbubba writes <i>"The Moblin steering committee is happy to release the <a href="http://moblin.org/community/blogs/imad/2009/moblin-v20-beta-netbooks-and-nettops-its-here">Moblin v2.0 beta for netbooks and nettops</a> for developer testing. With this release, developers can begin to experience and work with the source code of the visually rich, interactive user interface designed for Intel Atom based netbooks."</i></div>
|
1910
|
+
|
1911
|
+
|
1912
|
+
|
1913
|
+
|
1914
|
+
|
1915
|
+
<div class="article-foot a">
|
1916
|
+
|
1917
|
+
<span class="reader">
|
1918
|
+
|
1919
|
+
<a href="//tech.slashdot.org/story/09/06/30/1814235/Moblin-V20-Beta-For-Netbooks-and-Nettops" class="more">Read More...</a>
|
1920
|
+
|
1921
|
+
<span class="commentcnt"> <a href="/comments.pl?sid=1287555" id="commentcnt-5044165">40</a> comments</span>
|
1922
|
+
</span>
|
1923
|
+
|
1924
|
+
<div id="tag-widget-5044165" class="tag-widget-stub body-widget">
|
1925
|
+
|
1926
|
+
<a class="edit-toggle" href="//slashdot.org/faq/UI.shtml#ui700" onclick="this.blur(); show_login_box(); return false"><span class="button collapse"></span></a>
|
1927
|
+
|
1928
|
+
<span class="tag-display-stub" context="top" init="legend:'top tags'">linux os !zelda !goblin !laptops</span>
|
1929
|
+
<span class="tag-display-stub" context="system">tech os</span>
|
1930
|
+
<span class="tag-display-stub" context="datatype" init="menu:false">story</span>
|
1931
|
+
</div>
|
1932
|
+
</div>
|
1933
|
+
|
1934
|
+
</div>
|
1935
|
+
|
1936
|
+
<span class="vballoon-firehoselist rd_5">
|
1937
|
+
<span>Comments:</span>
|
1938
|
+
<a href="//tech.slashdot.org/comments.pl?sid=1287555" id="commentcnt-5044165">40</a>
|
1939
|
+
</span>
|
1940
|
+
|
1941
|
+
|
1942
|
+
|
1943
|
+
<hr>
|
1944
|
+
|
1945
|
+
|
1946
|
+
</div><div id="firehose-5042969" class="fhitem fhitem-story article usermode thumbs">
|
1947
|
+
<span class="sd-info-block" style="display: none">
|
1948
|
+
<span class="sd-key-firehose-id">5042969</span>
|
1949
|
+
<span class="type">story</span>
|
1950
|
+
|
1951
|
+
</span>
|
1952
|
+
|
1953
|
+
|
1954
|
+
|
1955
|
+
<span id="updown-5042969" class="vote">
|
1956
|
+
<a href="//slashdot.org/faq/UI.shtml#ui700" class="up" title="Vote this item up">+</a>
|
1957
|
+
<a href="//slashdot.org/faq/UI.shtml#ui700" class="down" title="Vote this item down">-</a>
|
1958
|
+
</span>
|
1959
|
+
|
1960
|
+
|
1961
|
+
|
1962
|
+
|
1963
|
+
<h3 class="story" id="title-5042969">
|
1964
|
+
|
1965
|
+
<span class="sodify" onclick="firehose_set_options('color', 'red')" title="Filter Firehose to entries rated red or better" ></span><span class="soda pop1" title="Filter Firehose to entries rated red or better" onclick="firehose_set_options('color', 'red')"><span> </span></span> <a href="//yro.slashdot.org" title="Filter to Your Rights Online" class="skin" onclick='return addfhfilter("yro"); return false;'>Your Rights Online:</a> <a onclick="return toggle_fh_body_wrap_return(this);" href="//yro.slashdot.org/story/09/06/30/175250/China-Delays-Green-Dam-Internet-Filter" class="datitle">China Delays "Green Dam" Internet Filter</a> <span class="date">on Tuesday June 30, @02:01PM</span> <span class="nickname"></span>
|
1966
|
+
|
1967
|
+
</h3>
|
1968
|
+
<div class="details" id="details-5042969">
|
1969
|
+
|
1970
|
+
<strong>
|
1971
|
+
Posted
|
1972
|
+
by
|
1973
|
+
|
1974
|
+
|
1975
|
+
|
1976
|
+
kdawson
|
1977
|
+
|
1978
|
+
|
1979
|
+
|
1980
|
+
|
1981
|
+
|
1982
|
+
|
1983
|
+
<span id="fhtime-5042969">on Tuesday June 30, @02:01PM</span></strong>
|
1984
|
+
|
1985
|
+
<br>
|
1986
|
+
|
1987
|
+
<strong>from the <strong>step-too-far</strong> dept.</strong>
|
1988
|
+
|
1989
|
+
|
1990
|
+
</div>
|
1991
|
+
<div class="body" id="fhbody-5042969">
|
1992
|
+
|
1993
|
+
<div class="media">
|
1994
|
+
|
1995
|
+
|
1996
|
+
|
1997
|
+
|
1998
|
+
|
1999
|
+
|
2000
|
+
|
2001
|
+
|
2002
|
+
|
2003
|
+
|
2004
|
+
|
2005
|
+
<div class="maybe-sprite tid-153">
|
2006
|
+
<span class="no-sprite" style="display: none">background: url(//c.fsdn.com/sd/topics/topiccensorship.gif); width:44px; height:55px;</span>
|
2007
|
+
<a style="width:44px; height:55px; display: block; text-indent:-99999px;" href="//slashdot.org/index2.pl?fhfilter=censorship" onclick="return addfhfilter('censorship');">censorship</a>
|
2008
|
+
</div>
|
2009
|
+
|
2010
|
+
|
2011
|
+
|
2012
|
+
|
2013
|
+
</div>
|
2014
|
+
|
2015
|
+
|
2016
|
+
|
2017
|
+
<div id="text-5042969">
|
2018
|
+
<a href="http://www.sailorspork.org/" rel="nofollow">SailorSpork</a> sends in a BBC report that "<a href="http://news.bbc.co.uk/2/hi/asia-pacific/8126832.stm">China is delaying a controversial plan</a> requiring all new computers sold in the country to be equipped with an Internet filtering software, state media says. The filter, called Green Dam Youth Escort, was to have been required from Wednesday, but the ministry of industry said computer makers needed more time." The submitter adds: <i>"Except of course for Sony, who as reported earlier lacked the moral fiber to hold off installing the spyware, which reportedly is <a href="http://it.slashdot.org/story/09/06/11/1347219/Chinese-Govt-Spyware-Puts-Computers-At-Risk"> ridden with security holes</a> and <a href="http://yro.slashdot.org/story/09/06/16/1422235/Chinas-Green-Dam-No-Longer-Compulsory-May-Have-Lifted-Code">uses stolen code</a>. Sony actually managed to ship <a href="http://yro.slashdot.org/story/09/06/30/0128231/Sony-Begins-Shipping-PCs-With-Green-Dam-In-China">ahead of the schedule.</a>"</i></div>
|
2019
|
+
|
2020
|
+
|
2021
|
+
|
2022
|
+
|
2023
|
+
|
2024
|
+
<div class="article-foot a">
|
2025
|
+
|
2026
|
+
<span class="reader">
|
2027
|
+
|
2028
|
+
<a href="//yro.slashdot.org/story/09/06/30/175250/China-Delays-Green-Dam-Internet-Filter" class="more">Read More...</a>
|
2029
|
+
|
2030
|
+
<span class="commentcnt"> <a href="/comments.pl?sid=1287475" id="commentcnt-5042969">73</a> comments</span>
|
2031
|
+
</span>
|
2032
|
+
|
2033
|
+
<div id="tag-widget-5042969" class="tag-widget-stub body-widget">
|
2034
|
+
|
2035
|
+
<a class="edit-toggle" href="//slashdot.org/faq/UI.shtml#ui700" onclick="this.blur(); show_login_box(); return false"><span class="button collapse"></span></a>
|
2036
|
+
|
2037
|
+
<span class="tag-display-stub" context="top" init="legend:'top tags'">censorship realpolitik grassmudhorse sony greenwash</span>
|
2038
|
+
<span class="tag-display-stub" context="system">yro censorship</span>
|
2039
|
+
<span class="tag-display-stub" context="datatype" init="menu:false">story</span>
|
2040
|
+
</div>
|
2041
|
+
</div>
|
2042
|
+
|
2043
|
+
</div>
|
2044
|
+
|
2045
|
+
<span class="vballoon-firehoselist rd_5">
|
2046
|
+
<span>Comments:</span>
|
2047
|
+
<a href="//yro.slashdot.org/comments.pl?sid=1287475" id="commentcnt-5042969">73</a>
|
2048
|
+
</span>
|
2049
|
+
|
2050
|
+
|
2051
|
+
|
2052
|
+
<hr>
|
2053
|
+
|
2054
|
+
|
2055
|
+
</div>
|
2056
|
+
</div>
|
2057
|
+
<script id="init-sprites" type="text/javascript">
|
2058
|
+
sprite_rules({ "tid-108": ".tid-108 { background: url(//c.fsdn.com/sd/firehose/005/047/5047353.png?1) no-repeat top left; background-position: 0px -777px; width: 43px; height: 60px; }", "tid-201": ".tid-201 { background: url(//c.fsdn.com/sd/firehose/005/047/5047353.png?1) no-repeat top left; background-position: 0px -216px; width: 49px; height: 65px; }", "tid-158": ".tid-158 { background: url(//c.fsdn.com/sd/firehose/005/047/5047353.png?1) no-repeat top left; background-position: 0px -454px; width: 71px; height: 53px; }", "tid-109": ".tid-109 { background: url(//c.fsdn.com/sd/firehose/005/047/5047353.png?1) no-repeat top left; background-position: 0px -672px; width: 75px; height: 55px; }", "tid-172": ".tid-172 { background: url(//c.fsdn.com/sd/firehose/005/047/5047353.png?1) no-repeat top left; background-position: 0px 0px; width: 59px; height: 78px; }", "tid-217": ".tid-217 { background: url(//c.fsdn.com/sd/firehose/005/047/5047353.png?1) no-repeat top left; background-position: 0px -128px; width: 104px; height: 38px; }", "tid-153": ".tid-153 { background: url(//c.fsdn.com/sd/firehose/005/047/5047353.png?1) no-repeat top left; background-position: 0px -986px; width: 44px; height: 55px; }", "tid-95": ".tid-95 { background: url(//c.fsdn.com/sd/firehose/005/047/5047353.png?1) no-repeat top left; background-position: 0px -331px; width: 70px; height: 73px; }", "tid-185": ".tid-185 { background: url(//c.fsdn.com/sd/firehose/005/047/5047353.png?1) no-repeat top left; background-position: 0px -557px; width: 65px; height: 65px; }", "tid-190": ".tid-190 { background: url(//c.fsdn.com/sd/firehose/005/047/5047353.png?1) no-repeat top left; background-position: 0px -887px; width: 66px; height: 49px; }" });
|
2059
|
+
use_sprites($dom("firehoselist"));
|
2060
|
+
$('script:last#init-sprites').remove();
|
2061
|
+
</script>
|
2062
|
+
<span id="itemsreturned">
|
2063
|
+
|
2064
|
+
</span>
|
2065
|
+
</div>
|
2066
|
+
|
2067
|
+
<div class="paginate" id="fh-pag-div">
|
2068
|
+
<div class="currcolor green "> </div>
|
2069
|
+
<div class="menu" id="fh-paginate">
|
2070
|
+
|
2071
|
+
|
2072
|
+
|
2073
|
+
|
2074
|
+
|
2075
|
+
|
2076
|
+
|
2077
|
+
<span class="active">
|
2078
|
+
<a onclick="firehose_set_options('startdate','20090630'); return false;" href="//slashdot.org/index2.pl?section=&color=green&index=1&view=stories&duration=-1&startdate=20090630">Today</a>
|
2079
|
+
</span>
|
2080
|
+
|
2081
|
+
<span class="inactive">
|
2082
|
+
<a onclick="firehose_set_options('startdate','20090629'); return false;" href="//slashdot.org/index2.pl?section=&color=green&index=1&view=stories&duration=-1&startdate=20090629">Yesterday</a>
|
2083
|
+
</span>
|
2084
|
+
|
2085
|
+
<span class="inactive">
|
2086
|
+
<a onclick="firehose_set_options('startdate','20090628'); return false;" href="//slashdot.org/index2.pl?section=&color=green&index=1&view=stories&duration=-1&startdate=20090628">Sunday</a>
|
2087
|
+
</span>
|
2088
|
+
|
2089
|
+
|
2090
|
+
<span class="inactive">
|
2091
|
+
<span id="firehose_more"><span class="busy"><img src="//c.fsdn.com/sd/spinner_tr.gif"></span>
|
2092
|
+
|
2093
|
+
|
2094
|
+
|
2095
|
+
<span id="more-experiment" class="future "><a href="//slashdot.org/index2.pl?section=&color=green&index=1&view=stories&duration=-1&startdate=20090630&page=1" onclick=" firehose_more(); return false;">Many more</a></span>
|
2096
|
+
<script type="text/javascript">more_possible('Many more');</script>
|
2097
|
+
|
2098
|
+
</span>
|
2099
|
+
</span>
|
2100
|
+
|
2101
|
+
|
2102
|
+
<span class="submit"><a href="//slashdot.org/submit.pl?primaryskid=1" >Submit Story</a></span>
|
2103
|
+
|
2104
|
+
|
2105
|
+
|
2106
|
+
</div>
|
2107
|
+
</div>
|
2108
|
+
|
2109
|
+
|
2110
|
+
|
2111
|
+
</div>
|
2112
|
+
|
2113
|
+
|
2114
|
+
|
2115
|
+
</div> <!-- yui-b -->
|
2116
|
+
|
2117
|
+
</div>
|
2118
|
+
|
2119
|
+
|
2120
|
+
<div id="slashboxes" class="yui-b">
|
2121
|
+
|
2122
|
+
|
2123
|
+
<div class="block">
|
2124
|
+
<div class="title" id="srandblock-title">
|
2125
|
+
<h4>
|
2126
|
+
<a href="//idle.slashdot.org">Idle Video</a>
|
2127
|
+
</h4>
|
2128
|
+
</div>
|
2129
|
+
<div class="content" id="srandblock-content">
|
2130
|
+
<table>
|
2131
|
+
|
2132
|
+
<tr>
|
2133
|
+
|
2134
|
+
<td><a href="//idle.slashdot.org/article.pl?sid=09/05/27/1645236"><img src="//c.fsdn.com/sd/articles/09/05/27/1645236-1-thumb.png" width="50" height="37"></a></td>
|
2135
|
+
<td><a href="//idle.slashdot.org/article.pl?sid=09/05/27/1645236">The Kindle 3</a></td>
|
2136
|
+
|
2137
|
+
</tr>
|
2138
|
+
|
2139
|
+
<tr>
|
2140
|
+
|
2141
|
+
<td><a href="//idle.slashdot.org/article.pl?sid=09/05/01/1532210"><img src="//c.fsdn.com/sd/articles/09/05/01/1532210-1-thumb.png" width="50" height="37"></a></td>
|
2142
|
+
<td><a href="//idle.slashdot.org/article.pl?sid=09/05/01/1532210">Hastily Made Cleveland Tourism Video Take 2</a></td>
|
2143
|
+
|
2144
|
+
</tr>
|
2145
|
+
|
2146
|
+
<tr>
|
2147
|
+
|
2148
|
+
<td><a href="//idle.slashdot.org/article.pl?sid=09/04/28/1611212"><img src="//c.fsdn.com/sd/articles/09/04/28/1611212-1-thumb.png" width="50" height="37"></a></td>
|
2149
|
+
<td><a href="//idle.slashdot.org/article.pl?sid=09/04/28/1611212">The Waterboarding Torture Memos In Song</a></td>
|
2150
|
+
|
2151
|
+
</tr>
|
2152
|
+
|
2153
|
+
<tr>
|
2154
|
+
|
2155
|
+
<td><a href="//idle.slashdot.org/article.pl?sid=09/04/22/1553220"><img src="//c.fsdn.com/sd/articles/09/04/22/1553220-1-thumb.png" width="50" height="37"></a></td>
|
2156
|
+
<td><a href="//idle.slashdot.org/article.pl?sid=09/04/22/1553220">Woman Hires Stripper to Impersonate Her At Reunion</a></td>
|
2157
|
+
|
2158
|
+
</tr>
|
2159
|
+
|
2160
|
+
</table>
|
2161
|
+
</div>
|
2162
|
+
</div><div class="block" id="poll">
|
2163
|
+
<div class="title" id="poll-title">
|
2164
|
+
<h4><a href="">Slashdot Poll</a></h4>
|
2165
|
+
</div>
|
2166
|
+
|
2167
|
+
<div class="content" id="poll-content">
|
2168
|
+
<form action="//slashdot.org/pollBooth.pl" method="post">
|
2169
|
+
<fieldset>
|
2170
|
+
<legend>Poll</legend>
|
2171
|
+
<input type="hidden" name="qid" value="1809">
|
2172
|
+
|
2173
|
+
<input type="hidden" name="section" value="mainpage">
|
2174
|
+
|
2175
|
+
<b>I am about to select ...</b>
|
2176
|
+
|
2177
|
+
|
2178
|
+
<br><input type="radio" name="aid" value="1">The most popular answer.
|
2179
|
+
|
2180
|
+
<br><input type="radio" name="aid" value="2">The least popular answer.
|
2181
|
+
|
2182
|
+
<br><input type="radio" name="aid" value="3">An answer between the most and least popular.
|
2183
|
+
|
2184
|
+
<br><input type="radio" name="aid" value="4">No answer at all; I refuse to vote.
|
2185
|
+
|
2186
|
+
<br><input type="radio" name="aid" value="5">Why won't this thing let me vote straight ticket?
|
2187
|
+
|
2188
|
+
|
2189
|
+
<br><input type="submit" value="Vote">
|
2190
|
+
|
2191
|
+
[ <a href="//slashdot.org/pollBooth.pl?qid=1809&aid=-1"><b>Results</b></a> |
|
2192
|
+
<a href="//slashdot.org/pollBooth.pl"><b>Polls</b></a> ] <br>
|
2193
|
+
Comments:<b>239</b> | Votes:<b>19100</b>
|
2194
|
+
</fieldset>
|
2195
|
+
</form>
|
2196
|
+
|
2197
|
+
</div>
|
2198
|
+
</div><div class="block" id="activetags">
|
2199
|
+
<div class="title" id="activetags-title">
|
2200
|
+
<h4><a href="/tags">Recent Tags</a></h4>
|
2201
|
+
</div>
|
2202
|
+
|
2203
|
+
<div class="content" id="activetags-content">
|
2204
|
+
<ul><li><a href="/tags/government">government</a></li><li><a href="/tags/privacy">privacy</a></li><li><a href="/tags/it">it</a></li><li><a href="/tags/usa">usa</a></li><li><a href="/tags/internet">internet</a></li><li><a href="/tags/storage">storage</a></li><li><a href="/tags/moon">moon</a></li></ul>
|
2205
|
+
|
2206
|
+
</div>
|
2207
|
+
</div><div class="block">
|
2208
|
+
<div class="title" id="login-title">
|
2209
|
+
<h4>
|
2210
|
+
Slashdot Login
|
2211
|
+
</h4>
|
2212
|
+
</div>
|
2213
|
+
<div class="content" id="login-content">
|
2214
|
+
<form action="//slashdot.org/login.pl" method="post">
|
2215
|
+
<fieldset>
|
2216
|
+
<legend>Log In</legend>
|
2217
|
+
<label>
|
2218
|
+
Nickname
|
2219
|
+
</label>
|
2220
|
+
<input type="text" name="unickname" size="20" value="">
|
2221
|
+
<label>
|
2222
|
+
Password
|
2223
|
+
</label>
|
2224
|
+
<input type="hidden" name="returnto" value="//slashdot.org/">
|
2225
|
+
<input type="hidden" name="op" value="userlogin">
|
2226
|
+
<input type="password" name="upasswd" size="20">
|
2227
|
+
<label class="checkbox">
|
2228
|
+
<input type="checkbox" name="login_temp" value="yes">
|
2229
|
+
Public Terminal
|
2230
|
+
</label>
|
2231
|
+
<input type="submit" name="userlogin" value="Log in" class="button">
|
2232
|
+
</fieldset>
|
2233
|
+
</form>
|
2234
|
+
|
2235
|
+
|
2236
|
+
|
2237
|
+
<hr>
|
2238
|
+
|
2239
|
+
|
2240
|
+
<form action="//slashdot.org/login.pl" method="post">
|
2241
|
+
<fieldset>
|
2242
|
+
<input type="hidden" name="slash_returnto" value="//slashdot.org/">
|
2243
|
+
<input type="hidden" name="op" value="claim_openid">
|
2244
|
+
<input type="hidden" name="openid_login" value="1">
|
2245
|
+
<label for="openid_url" class="openid_url">
|
2246
|
+
<input type="text" name="openid_url" value="http://" size="32" maxlength="255">
|
2247
|
+
</label>
|
2248
|
+
<input type="submit" value="Log in with OpenID" class="button">
|
2249
|
+
</fieldset>
|
2250
|
+
</form>
|
2251
|
+
|
2252
|
+
|
2253
|
+
<p>
|
2254
|
+
<b>
|
2255
|
+
<a href="//slashdot.org/login.pl?op=newuserform">Create Account</a>
|
2256
|
+
| <a href="//slashdot.org/login.pl?op=mailpasswdform" onclick="javascript:getModalPrefs('sendPasswdModal', 'Retrieve Password'); return false;">Retrieve Password</a>
|
2257
|
+
</b>
|
2258
|
+
</p>
|
2259
|
+
</div>
|
2260
|
+
</div><div class="block" id="srandblock_ostg">
|
2261
|
+
<div class="title" id="srandblock_ostg-title">
|
2262
|
+
<h4><a href="http://fossfor.us/recent_reviews">Fossfor.us</a></h4>
|
2263
|
+
</div>
|
2264
|
+
|
2265
|
+
<div class="content" id="srandblock_ostg-content">
|
2266
|
+
<ul><li><a href="http://fossfor.us/software/name/Tremulous?review=642" rel="alternate">Tremulous - <em>Great</em></a><br>I don't know why they said it was unbalanced, but depending on one's skill, the...</li><li><a href="http://fossfor.us/software/name/X-Moto?review=641" rel="alternate">X-Moto - <em>Just OK</em></a><br>Controls too touchy, doesn't act like other tilty bike games.</li><li><a href="http://fossfor.us/software/name/Blender?review=640" rel="alternate">Blender - <em>Great</em></a><br></li><li><a href="http://fossfor.us/software/name/OpenOffice?review=636" rel="alternate">OpenOffice - <em>Great</em></a><br>Though it has its flaws, it triumphs over star-office (how?) and Office 2007....</li><li><a href="http://fossfor.us/software/name/Inkscape?review=635" rel="alternate">Inkscape - <em>Great</em></a><br>Though it has its flaws, it triumphs over star-office (how?) and Office 2007....</li></ul>
|
2267
|
+
|
2268
|
+
</div>
|
2269
|
+
</div><div class="block" id="books">
|
2270
|
+
<div class="title" id="books-title">
|
2271
|
+
<h4><a href="//books.slashdot.org/">Book Reviews</a></h4>
|
2272
|
+
</div>
|
2273
|
+
|
2274
|
+
<div class="content" id="books-content">
|
2275
|
+
Recent reviews from Slashdot readers:
|
2276
|
+
|
2277
|
+
<ul>
|
2278
|
+
|
2279
|
+
|
2280
|
+
<li> <a href="http://www.amazon.com/dp/0195152751/ref=nosim/?tag=slashdot0c-20"><cite>Advanced Excel for Scientific Data Analysis</cite></a> Learn to turn Excel into something that rivals Mathematica using VBA, brains, and a heaping helping of fortitude.(<a href="http://books.slashdot.org/article.pl?sid=08/10/01/1329243">Jack Herrington's review.</a>)</li>
|
2281
|
+
|
2282
|
+
<li> <a
|
2283
|
+
href="http://www.amazon.com/dp/1597492671/ref=nosim/?tag=slashdot0c-20"><cite>Nagios 3 Enterprise Network Monitoring</cite></a> A great book for anyone using Nagios as more than a casual user.(<a href="http://books.slashdot.org/article.pl?sid=08/10/08/1328247">jgoguen's review.</a>)</li>
|
2284
|
+
|
2285
|
+
|
2286
|
+
<li> <a href="http://www.amazon.com/dp/0470395354/ref=nosim/?tag=slashdot0c-20"><cite>Schneier on Security</cite></a> Schneier argues that security is not something you can buy; it is something you must get.(<a href="http://books.slashdot.org/article.pl?sid=08/10/20/1344203">Ben Rothke's review.</a>)</li>
|
2287
|
+
</ul>
|
2288
|
+
|
2289
|
+
<p><a href="https://slashdot.org/submit.pl">Submitting a review</a> for
|
2290
|
+
consideration is easy; please first read <a
|
2291
|
+
href="//slashdot.org/book.review.guidelines.shtml">Slashdot's
|
2292
|
+
book review guidelines</a>. Updated: 2008114 by samzenpus</p>
|
2293
|
+
|
2294
|
+
|
2295
|
+
</div>
|
2296
|
+
</div><div class="block" id="index_qlinks">
|
2297
|
+
<div class="title" id="index_qlinks-title">
|
2298
|
+
<h4><a href="">Quick Links</a></h4>
|
2299
|
+
</div>
|
2300
|
+
|
2301
|
+
<div class="content" id="index_qlinks-content">
|
2302
|
+
<B>Cool Sites:</B>
|
2303
|
+
<br>· <A href="http://www.xkcd.com">XKCD</A> (It's teh funz0rz)
|
2304
|
+
<br>· <A href="http://www.animefu.com">AnimeFu</A> (Addicted to Anime?)
|
2305
|
+
<br>· <A href="http://www.penny-arcade.com">Penny Arcade</A> (The First one is always Free)
|
2306
|
+
<br>· <A href="http://everything2.com">Everything</A> (Blow your Mind)
|
2307
|
+
<br>· <A href="http://themes.freshmeat.net">Themes.freshmeat.net</A> (Make X Perty)
|
2308
|
+
<br>· <A href="http://slashdot.jp">Slashdot.jp</A> (So familiar...)
|
2309
|
+
<br>· <A href="http://CmdrTaco.net">CmdrTaco.net</A> (I used to be in charge)
|
2310
|
+
<P><B>Support Slashdot:</B>
|
2311
|
+
<br>· <A href="http://www.thinkgeek.com">ThinkGeek</A> (Clothe Yourself in Slashdot)
|
2312
|
+
|
2313
|
+
</div>
|
2314
|
+
</div><div id="slug-Crown" class="block nosort slug"><div class="content"></div></div><div id="slug-Top" class="block nosort slug"><div class="content"></div></div>
|
2315
|
+
|
2316
|
+
|
2317
|
+
|
2318
|
+
|
2319
|
+
</div>
|
2320
|
+
|
2321
|
+
|
2322
|
+
<script type="text/javascript">
|
2323
|
+
firehose_exists = 1;
|
2324
|
+
$(function(){
|
2325
|
+
$('#firehose-filter').
|
2326
|
+
focus(function(event){
|
2327
|
+
gFocusedText = this;
|
2328
|
+
}).
|
2329
|
+
blur(function(event){
|
2330
|
+
if ( gFocusedText === this ) {
|
2331
|
+
gFocusedText = null;
|
2332
|
+
}
|
2333
|
+
});
|
2334
|
+
|
2335
|
+
var $fhitems = firehose_init_tag_ui();
|
2336
|
+
firehose_init_idle($fhitems);
|
2337
|
+
|
2338
|
+
apply_updates_when( 'at-end', true);
|
2339
|
+
});
|
2340
|
+
|
2341
|
+
|
2342
|
+
firehose_settings.startdate = "";
|
2343
|
+
firehose_settings.mode = "mixed";
|
2344
|
+
firehose_settings.fhfilter = "";
|
2345
|
+
firehose_settings.orderdir = "DESC";
|
2346
|
+
firehose_settings.orderby = "createtime";
|
2347
|
+
firehose_settings.duration = -1;
|
2348
|
+
firehose_settings.color = "green";
|
2349
|
+
firehose_settings.view = "stories";
|
2350
|
+
firehose_settings.viewtitle = "Stories";
|
2351
|
+
firehose_settings.tab = "";
|
2352
|
+
firehose_settings.base_filter = "";
|
2353
|
+
firehose_settings.user_view_uid = "";
|
2354
|
+
firehose_settings.sectionname = "Main";
|
2355
|
+
|
2356
|
+
firehose_settings.issue = "";
|
2357
|
+
firehose_settings.section = 13;
|
2358
|
+
$('#searchquery').val(firehose_settings.fhfilter);
|
2359
|
+
view_change_hide_show(firehose_settings.view);
|
2360
|
+
|
2361
|
+
|
2362
|
+
firehose_sitename = "Slashdot";
|
2363
|
+
firehose_slogan = "News for nerds, stuff that matters";
|
2364
|
+
firehose_update_title_count();
|
2365
|
+
fh_idle_skin = 1;
|
2366
|
+
|
2367
|
+
|
2368
|
+
|
2369
|
+
|
2370
|
+
firehose_settings.index = 1;
|
2371
|
+
|
2372
|
+
|
2373
|
+
|
2374
|
+
|
2375
|
+
var firehose_action_time = 0;
|
2376
|
+
var firehose_user_class = 0;
|
2377
|
+
|
2378
|
+
|
2379
|
+
var fh_color = "green";
|
2380
|
+
fh_colors = [ "red", "orange", "yellow", "green", "blue", "indigo", "violet", "black" ];
|
2381
|
+
var fh_colors_hash = new Array(0);
|
2382
|
+
for (var i=0; i< fh_colors.length; i++) {
|
2383
|
+
fh_colors_hash[fh_colors[i]] = i;
|
2384
|
+
}
|
2385
|
+
var fh_view_mode = "mixed";
|
2386
|
+
firehose_settings.page = 0;
|
2387
|
+
|
2388
|
+
fh_is_admin = 0;
|
2389
|
+
var updateIntervalType = 2;
|
2390
|
+
var inactivity_timeout = 3600;
|
2391
|
+
setFirehoseAction();
|
2392
|
+
var update_time = "2009-07-01 01:58:36";
|
2393
|
+
|
2394
|
+
var maxtime = "2009-07-01 01:58:36";
|
2395
|
+
var insert_new_at = "top";
|
2396
|
+
firehose_play("init");
|
2397
|
+
|
2398
|
+
|
2399
|
+
fh_adTimerUrl = '/images/iframe/firehose.html';
|
2400
|
+
|
2401
|
+
|
2402
|
+
fh_ticksize = 15;
|
2403
|
+
sitename = 'idle.slashdot.org';
|
2404
|
+
|
2405
|
+
|
2406
|
+
|
2407
|
+
</script>
|
2408
|
+
|
2409
|
+
|
2410
|
+
|
2411
|
+
|
2412
|
+
<!-- body end --></div>
|
2413
|
+
<div id="ft" >
|
2414
|
+
<div id="topfoot">
|
2415
|
+
|
2416
|
+
<div class="search">
|
2417
|
+
|
2418
|
+
<form method="get" action="//slashdot.org/search.pl">
|
2419
|
+
<fieldset>
|
2420
|
+
<legend>Search</legend>
|
2421
|
+
<input type="text" name="query" value="" size="20">
|
2422
|
+
<input type="submit" value="Search" class="button">
|
2423
|
+
</fieldset>
|
2424
|
+
</form>
|
2425
|
+
|
2426
|
+
</div>
|
2427
|
+
|
2428
|
+
<div class="rightcontent">
|
2429
|
+
|
2430
|
+
<small>A girl's best friend is her mutter.
|
2431
|
+
-- Dorothy Parker</small>
|
2432
|
+
|
2433
|
+
</div>
|
2434
|
+
<div id="slug-Bottom" class="slug"></div>
|
2435
|
+
</div>
|
2436
|
+
|
2437
|
+
<div class="copyright">
|
2438
|
+
<p>
|
2439
|
+
All trademarks and copyrights on this page are owned by their respective owners. Comments are owned by the Poster. The Rest © 1997-2009 <a href="http://sourceforge.com/">SourceForge</a>, Inc.
|
2440
|
+
</p>
|
2441
|
+
</div>
|
2442
|
+
<div id="login_cover" style="display:none" onclick="hide_login_box()"></div>
|
2443
|
+
<div id="login_box" style="display:none">
|
2444
|
+
<div class="generaltitle" >
|
2445
|
+
<div class="title">
|
2446
|
+
<h3 >
|
2447
|
+
Please Log In to Continue<a href="#" onclick="hide_login_box(); return false" class="close" title="Close this box">x</a>
|
2448
|
+
|
2449
|
+
</h3>
|
2450
|
+
</div>
|
2451
|
+
</div>
|
2452
|
+
<div id="login_box_content">
|
2453
|
+
<form action="//slashdot.org/login.pl" method="post">
|
2454
|
+
<fieldset>
|
2455
|
+
<legend>Log In</legend>
|
2456
|
+
<label>
|
2457
|
+
Nickname
|
2458
|
+
</label>
|
2459
|
+
<input type="text" name="unickname" size="20" value="">
|
2460
|
+
<label>
|
2461
|
+
Password
|
2462
|
+
</label>
|
2463
|
+
<input type="hidden" name="returnto" value="//slashdot.org/">
|
2464
|
+
<input type="hidden" name="op" value="userlogin">
|
2465
|
+
<input type="password" name="upasswd" size="20">
|
2466
|
+
<label class="checkbox">
|
2467
|
+
<input type="checkbox" name="login_temp" value="yes">
|
2468
|
+
Public Terminal
|
2469
|
+
</label>
|
2470
|
+
<input type="submit" name="userlogin" value="Log in" class="button">
|
2471
|
+
</fieldset>
|
2472
|
+
</form>
|
2473
|
+
|
2474
|
+
|
2475
|
+
|
2476
|
+
<hr>
|
2477
|
+
|
2478
|
+
|
2479
|
+
<form action="//slashdot.org/login.pl" method="post">
|
2480
|
+
<fieldset>
|
2481
|
+
<input type="hidden" name="slash_returnto" value="//slashdot.org/">
|
2482
|
+
<input type="hidden" name="op" value="claim_openid">
|
2483
|
+
<input type="hidden" name="openid_login" value="1">
|
2484
|
+
<label for="openid_url" class="openid_url">
|
2485
|
+
<input type="text" name="openid_url" value="http://" size="32" maxlength="255">
|
2486
|
+
</label>
|
2487
|
+
<input type="submit" value="Log in with OpenID" class="button">
|
2488
|
+
</fieldset>
|
2489
|
+
</form>
|
2490
|
+
|
2491
|
+
|
2492
|
+
<p>
|
2493
|
+
<b>
|
2494
|
+
<a href="//slashdot.org/login.pl?op=newuserform">Create Account</a>
|
2495
|
+
|
2496
|
+
</b>
|
2497
|
+
</p>
|
2498
|
+
</div></div>
|
2499
|
+
<script type="text/javascript">logged_in = 0</script>
|
2500
|
+
<div class="nav">
|
2501
|
+
<ul>
|
2502
|
+
<li>
|
2503
|
+
<a href="//slashdot.org/">home</a>
|
2504
|
+
</li>
|
2505
|
+
<li>
|
2506
|
+
<a href="//slashdot.org/submit.pl">submit story</a>
|
2507
|
+
</li>
|
2508
|
+
<li>
|
2509
|
+
<a href="//slashdot.org/help">help</a>
|
2510
|
+
</li>
|
2511
|
+
<li>
|
2512
|
+
<a href="http://web.sourceforge.com/advertising">advertise</a>
|
2513
|
+
</li>
|
2514
|
+
<li>
|
2515
|
+
<a href="http://web.sourceforge.com/terms.php">terms of service</a>
|
2516
|
+
</li>
|
2517
|
+
<li>
|
2518
|
+
<a href="http://web.sourceforge.com/privacy.php">privacy</a>
|
2519
|
+
</li>
|
2520
|
+
<li>
|
2521
|
+
<a href="http://rss.slashdot.org/Slashdot/slashdot">rss</a>
|
2522
|
+
</li>
|
2523
|
+
</ul>
|
2524
|
+
</div>
|
2525
|
+
</div>
|
2526
|
+
</div>
|
2527
|
+
|
2528
|
+
<a href="#topothepage" class="hidden">Jump to top of page</a>
|
2529
|
+
<div id="modal_cover" style="display:none"></div>
|
2530
|
+
<div id="modal_box" style="display:none">
|
2531
|
+
<div class="generaltitle" >
|
2532
|
+
<div class="title"><h3><span id="preference_title"></span> <a href="#" onclick="hide_modal_box(); return false">Close</a></h3></div>
|
2533
|
+
</div>
|
2534
|
+
<div id="modal_box_content"></div>
|
2535
|
+
</div>
|
2536
|
+
|
2537
|
+
|
2538
|
+
<script type="text/javascript">
|
2539
|
+
pageTracker._trackPageview();
|
2540
|
+
(function() {
|
2541
|
+
// coremetrics
|
2542
|
+
var basedomain = 'slashdot.org';
|
2543
|
+
var site = basedomain.replace(/\..*/gi,'');
|
2544
|
+
var subsite = location.hostname.replace(/\..*/gi,'');
|
2545
|
+
var section = subsite;
|
2546
|
+
var t = $('title').text();
|
2547
|
+
var title = ( t.indexOf('|') >= 0 ? t.replace(/.* \| /gi,'') : 'SECTION PAGE: ' + section );
|
2548
|
+
if( window.location.hostname === 'slashdot.org' ) {
|
2549
|
+
cmSetProduction();
|
2550
|
+
}
|
2551
|
+
cmCreatePageviewTag && cmCreatePageviewTag('ARTICLE DETAIL: ' + section, null, null, null, title + '-_-' + section ) && (cmCreatePageviewTag = null);
|
2552
|
+
})();
|
2553
|
+
</script>
|
2554
|
+
<script id="after-content" type="text/javascript">
|
2555
|
+
(function( $, fn, console ){
|
2556
|
+
$ && fn && $(function(){ fn($, console); });
|
2557
|
+
})(window.jQuery, window.pageload_done, window.console);
|
2558
|
+
</script>
|
2559
|
+
</body>
|
2560
|
+
</html>
|