libxslt-ruby 0.8.2-x86-mswin32-60 → 0.9.0-x86-mswin32-60
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Rakefile +16 -37
- data/ext/libxslt/libxslt.c +3 -0
- data/ext/libxslt/libxslt.h +1 -1
- data/ext/libxslt/ruby_xslt_stylesheet.c +6 -6
- data/ext/libxslt/version.h +3 -3
- data/ext/mingw/Rakefile +18 -32
- data/ext/mingw/libexslt-0.dll +0 -0
- data/ext/mingw/libxslt-1.dll +0 -0
- data/ext/mingw/libxslt_ruby.so +0 -0
- data/ext/vc/libxslt_ruby.vcproj +2 -2
- data/test/files/commentary.dtd +34 -0
- data/{lib/text.xml → test/files/fuzface.xml} +154 -129
- data/test/files/fuzface.xsl +4 -0
- data/test/files/params.xml +2 -0
- data/test/files/params.xsl +11 -0
- data/test/files/ramblings.xsl +46 -0
- data/test/test_deprecated.rb +97 -0
- data/test/test_libxslt.rb +21 -0
- data/test/test_stylesheet.rb +108 -0
- data/test/test_suite.rb +3 -0
- metadata +19 -37
- data/doc/classes/LibXSLT.html +0 -126
- data/doc/classes/LibXSLT/XSLT.html +0 -196
- data/doc/classes/LibXSLT/XSLT/Stylesheet.html +0 -250
- data/doc/classes/LibXSLT/XSLT/TransformContext.html +0 -117
- data/doc/classes/LibXSLT/XSLTError.html +0 -131
- data/doc/classes/XSLT.html +0 -125
- data/doc/created.rid +0 -1
- data/doc/files/CHANGES.html +0 -204
- data/doc/files/LICENSE.html +0 -133
- data/doc/files/README.html +0 -302
- data/doc/files/ext/libxslt/libxslt_c.html +0 -101
- data/doc/files/ext/libxslt/ruby_xslt_stylesheet_c.html +0 -101
- data/doc/files/ext/libxslt/ruby_xslt_transform_context_c.html +0 -101
- data/doc/files/lib/libxslt/deprecated_rb.html +0 -101
- data/doc/files/lib/libxslt_rb.html +0 -116
- data/doc/files/lib/xslt_rb.html +0 -135
- data/doc/fr_class_index.html +0 -32
- data/doc/fr_file_index.html +0 -35
- data/doc/fr_method_index.html +0 -28
- data/doc/index.html +0 -24
- data/doc/rdoc-style.css +0 -208
- data/lib/libxslt-1.dll +0 -0
- data/lib/libxslt_ruby.so +0 -0
data/Rakefile
CHANGED
@@ -18,7 +18,7 @@ FILES = FileList[
|
|
18
18
|
'ext/mingw/Rakefile',
|
19
19
|
'ext/vc/*.sln',
|
20
20
|
'ext/vc/*.vcproj',
|
21
|
-
'
|
21
|
+
'test/**/*'
|
22
22
|
]
|
23
23
|
|
24
24
|
# Default GEM Specification
|
@@ -42,7 +42,7 @@ default_spec = Gem::Specification.new do |spec|
|
|
42
42
|
|
43
43
|
spec.author = "Charlie Savage"
|
44
44
|
spec.email = "libxml-devel@rubyforge.org"
|
45
|
-
spec.add_dependency('libxml-ruby','>=0.
|
45
|
+
spec.add_dependency('libxml-ruby','>=0.9.0')
|
46
46
|
spec.platform = Gem::Platform::RUBY
|
47
47
|
spec.require_paths = ["lib", "ext/libxslt"]
|
48
48
|
|
@@ -62,39 +62,22 @@ end
|
|
62
62
|
Rake::GemPackageTask.new(default_spec) do |pkg|
|
63
63
|
pkg.package_dir = 'admin/pkg'
|
64
64
|
pkg.need_tar = true
|
65
|
-
pkg.need_zip = true
|
66
65
|
end
|
67
66
|
|
68
|
-
# ------- Windows
|
69
|
-
|
70
|
-
|
67
|
+
# ------- Windows GEM ----------
|
68
|
+
if RUBY_PLATFORM.match(/win32/)
|
69
|
+
binaries = (FileList['ext/mingw/*.so',
|
70
|
+
'ext/mingw/*.dll*'])
|
71
71
|
|
72
|
-
# Windows specification
|
73
|
-
win_spec = default_spec.clone
|
74
|
-
win_spec.extensions = []
|
75
|
-
win_spec.platform = Gem::Platform::CURRENT
|
76
|
-
win_spec.files += binaries.
|
72
|
+
# Windows specification
|
73
|
+
win_spec = default_spec.clone
|
74
|
+
win_spec.extensions = ['ext/mingw/Rakefile']
|
75
|
+
win_spec.platform = Gem::Platform::CURRENT
|
76
|
+
win_spec.files += binaries.to_a
|
77
77
|
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
# since there are no dependencies of msvcr80.dll
|
82
|
-
current_dir = File.expand_path(File.dirname(__FILE__))
|
83
|
-
|
84
|
-
binaries.each do |binaryname|
|
85
|
-
target = File.join(current_dir, 'lib', File.basename(binaryname))
|
86
|
-
cp(binaryname, target)
|
87
|
-
end
|
88
|
-
|
89
|
-
# Create the gem, then move it to pkg
|
90
|
-
Gem::Builder.new(win_spec).build
|
91
|
-
gem_file = "#{win_spec.name}-#{win_spec.version}-#{win_spec.platform}.gem"
|
92
|
-
mv(gem_file, "admin/pkg/#{gem_file}")
|
93
|
-
|
94
|
-
# Remove win extension from top level directory
|
95
|
-
binaries.each do |binaryname|
|
96
|
-
target = File.join(current_dir, 'lib', File.basename(binaryname))
|
97
|
-
rm(target)
|
78
|
+
# Rake task to build the windows package
|
79
|
+
Rake::GemPackageTask.new(win_spec) do |pkg|
|
80
|
+
pkg.package_dir = 'admin/pkg'
|
98
81
|
end
|
99
82
|
end
|
100
83
|
|
@@ -115,15 +98,11 @@ Rake::RDocTask.new("rdoc") do |rdoc|
|
|
115
98
|
'LICENSE')
|
116
99
|
end
|
117
100
|
|
118
|
-
task :package => :rdoc
|
119
|
-
task :package => :create_win32_gem
|
120
|
-
task :default => :package
|
121
101
|
|
122
102
|
Rake::TestTask.new do |t|
|
123
103
|
t.libs << "test"
|
124
104
|
t.libs << "ext"
|
125
105
|
end
|
126
106
|
|
127
|
-
|
128
|
-
|
129
|
-
end
|
107
|
+
task :package => :rdoc
|
108
|
+
task :default => :package
|
data/ext/libxslt/libxslt.c
CHANGED
data/ext/libxslt/libxslt.h
CHANGED
@@ -19,7 +19,7 @@
|
|
19
19
|
#include "ruby_xslt_stylesheet.h"
|
20
20
|
#include "ruby_xslt_transform_context.h"
|
21
21
|
|
22
|
-
#include "version.h"
|
22
|
+
#include "version.h"
|
23
23
|
|
24
24
|
#if ((RUBY_LIBXML_VER_MAJ != RUBY_LIBXSLT_VER_MAJ) || (RUBY_LIBXML_VER_MIN != RUBY_LIBXSLT_VER_MIN))
|
25
25
|
#error "Incompatible LibXML-Ruby headers - please install same major/micro version"
|
@@ -50,7 +50,7 @@ ruby_xslt_stylesheet_alloc(VALUE klass) {
|
|
50
50
|
*/
|
51
51
|
VALUE
|
52
52
|
ruby_xslt_stylesheet_initialize(VALUE self, VALUE document) {
|
53
|
-
|
53
|
+
xmlDocPtr xdoc;
|
54
54
|
xmlDocPtr xcopy;
|
55
55
|
xsltStylesheetPtr xstylesheet;
|
56
56
|
|
@@ -65,8 +65,8 @@ ruby_xslt_stylesheet_initialize(VALUE self, VALUE document) {
|
|
65
65
|
* has to be updated to always check and see if the document is
|
66
66
|
* still valid. That's all doable, but seems like a pain, so
|
67
67
|
* just copy the document for now. */
|
68
|
-
Data_Get_Struct(document,
|
69
|
-
xcopy = xmlCopyDoc(
|
68
|
+
Data_Get_Struct(document, xmlDoc, xdoc);
|
69
|
+
xcopy = xmlCopyDoc(xdoc, 1);
|
70
70
|
xstylesheet = xsltParseStylesheetDoc(xcopy);
|
71
71
|
xstylesheet->_private = (void *)self;
|
72
72
|
DATA_PTR(self) = xstylesheet;
|
@@ -122,7 +122,7 @@ ruby_xslt_coerce_params(VALUE params) {
|
|
122
122
|
*/
|
123
123
|
VALUE
|
124
124
|
ruby_xslt_stylesheet_apply(int argc, VALUE *argv, VALUE self) {
|
125
|
-
|
125
|
+
xmlDocPtr xdoc;
|
126
126
|
xsltStylesheetPtr xstylesheet;
|
127
127
|
xmlDocPtr result;
|
128
128
|
VALUE document;
|
@@ -145,10 +145,10 @@ ruby_xslt_stylesheet_apply(int argc, VALUE *argv, VALUE self) {
|
|
145
145
|
rb_funcall(params, rb_intern("flatten!"), 0);
|
146
146
|
pParams = ruby_xslt_coerce_params(params);
|
147
147
|
|
148
|
-
Data_Get_Struct(document,
|
148
|
+
Data_Get_Struct(document, xmlDoc, xdoc);
|
149
149
|
Data_Get_Struct(self, xsltStylesheet, xstylesheet);
|
150
150
|
|
151
|
-
result = xsltApplyStylesheet(xstylesheet,
|
151
|
+
result = xsltApplyStylesheet(xstylesheet, xdoc, (const char**)pParams);
|
152
152
|
|
153
153
|
if (!result)
|
154
154
|
rb_raise(eXSLTError, "Transformation failed");
|
data/ext/libxslt/version.h
CHANGED
@@ -1,5 +1,5 @@
|
|
1
|
-
#define RUBY_LIBXSLT_VERSION "0.
|
1
|
+
#define RUBY_LIBXSLT_VERSION "0.9.0"
|
2
2
|
#define RUBY_LIBXSLT_VERNUM 0
|
3
3
|
#define RUBY_LIBXSLT_VER_MAJ 0
|
4
|
-
#define RUBY_LIBXSLT_VER_MIN
|
5
|
-
#define RUBY_LIBXSLT_VER_MIC
|
4
|
+
#define RUBY_LIBXSLT_VER_MIN 9
|
5
|
+
#define RUBY_LIBXSLT_VER_MIC 0
|
data/ext/mingw/Rakefile
CHANGED
@@ -3,40 +3,26 @@
|
|
3
3
|
# built with VC++ while here we want to build
|
4
4
|
# with MingW. So just roll our own...
|
5
5
|
|
6
|
-
require '
|
7
|
-
require 'rake/clean'
|
6
|
+
require 'fileutils'
|
8
7
|
require 'rbconfig'
|
9
8
|
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
SRC = FileList['../libxslt/*.c']
|
27
|
-
OBJ = SRC.collect do |file_name|
|
28
|
-
File.basename(file_name).ext('o')
|
29
|
-
end
|
30
|
-
|
31
|
-
SRC.each do |srcfile|
|
32
|
-
objfile = File.basename(srcfile).ext('o')
|
33
|
-
file objfile => srcfile do
|
34
|
-
command = "gcc -c -fPIC -O2 -Wall -o #{objfile} -I/usr/local/include -I../../rlibxml/ext #{srcfile} -I#{LIBXML_RUBY_DIR}/ext -I#{RUBY_INCLUDE_DIR}"
|
35
|
-
sh "sh -c '#{command}'"
|
9
|
+
EXTENSION_NAME = "libxslt_ruby.#{Config::CONFIG["DLEXT"]}"
|
10
|
+
|
11
|
+
# This is called when the Windows GEM is installed!
|
12
|
+
task :install do
|
13
|
+
# Gems will pass these two environment variables:
|
14
|
+
# RUBYARCHDIR=#{dest_path}
|
15
|
+
# RUBYLIBDIR=#{dest_path}
|
16
|
+
|
17
|
+
dest_path = ENV['RUBYLIBDIR']
|
18
|
+
|
19
|
+
# Copy the extension
|
20
|
+
cp(EXTENSION_NAME, dest_path)
|
21
|
+
|
22
|
+
# Copy dllss
|
23
|
+
Dir.glob('*.dll').each do |dll|
|
24
|
+
cp(dll, dest_path)
|
36
25
|
end
|
37
26
|
end
|
38
27
|
|
39
|
-
|
40
|
-
command = "gcc -shared -o #{EXTENSION_NAME} -L#{LIBXML_RUBY_DIR}/lib -L/usr/local/lib #{OBJ} -lxml_ruby -lxslt -lxml2 #{RUBY_BIN_DIR}/#{RUBY_SHARED_DLL}"
|
41
|
-
sh "sh -c '#{command}'"
|
42
|
-
end
|
28
|
+
task :default => :install
|
Binary file
|
Binary file
|
Binary file
|
data/ext/vc/libxslt_ruby.vcproj
CHANGED
@@ -18,7 +18,7 @@
|
|
18
18
|
<Configurations>
|
19
19
|
<Configuration
|
20
20
|
Name="Debug|Win32"
|
21
|
-
OutputDirectory="C:\Development\ruby\lib\ruby\gems\1.8\gems\
|
21
|
+
OutputDirectory="C:\Development\ruby\lib\ruby\gems\1.8\gems\libxslt-ruby-0.8.2-x86-mswin32-60\lib"
|
22
22
|
IntermediateDirectory="$(ConfigurationName)"
|
23
23
|
ConfigurationType="2"
|
24
24
|
CharacterSet="1"
|
@@ -63,7 +63,7 @@
|
|
63
63
|
<Tool
|
64
64
|
Name="VCLinkerTool"
|
65
65
|
AdditionalDependencies="msvcrt-ruby18.lib libxml2.lib libxslt.lib libexslt.lib"
|
66
|
-
OutputFile="C:\Development\ruby\lib\ruby\gems\1.8\gems\libxslt-ruby-0.
|
66
|
+
OutputFile="C:\Development\ruby\lib\ruby\gems\1.8\gems\libxslt-ruby-0.8.3-x86-mswin32-60\lib\$(ProjectName).so"
|
67
67
|
LinkIncremental="2"
|
68
68
|
AdditionalLibraryDirectories="C:\Development\ruby\lib;C:\Development\msys\local\lib"
|
69
69
|
GenerateDebugInformation="true"
|
@@ -0,0 +1,34 @@
|
|
1
|
+
<!ELEMENT commentary (meta, body)>
|
2
|
+
<!ELEMENT meta (author, version, date, id, title, subtitle?)>
|
3
|
+
|
4
|
+
<!-- Metadata about the requirements -->
|
5
|
+
<!ENTITY % string "#PCDATA">
|
6
|
+
<!ENTITY % character "#PCDATA">
|
7
|
+
<!ENTITY % letter "#PCDATA">
|
8
|
+
<!ENTITY % number_att "CDATA">
|
9
|
+
|
10
|
+
|
11
|
+
<!ELEMENT author (first_name, last_name, email)>
|
12
|
+
|
13
|
+
<!ELEMENT first_name (%string;)>
|
14
|
+
<!ELEMENT last_name (%string;)>
|
15
|
+
<!ELEMENT email (%string;)>
|
16
|
+
|
17
|
+
<!ELEMENT version (#PCDATA)>
|
18
|
+
<!ELEMENT date (#PCDATA)>
|
19
|
+
<!ELEMENT id (#PCDATA)>
|
20
|
+
<!ELEMENT title (#PCDATA)>
|
21
|
+
<!ELEMENT subtitle (#PCDATA)>
|
22
|
+
|
23
|
+
<!ELEMENT body (para+)>
|
24
|
+
|
25
|
+
|
26
|
+
<!ELEMENT para (#PCDATA|thought|url|ol)*>
|
27
|
+
<!ATTLIST para
|
28
|
+
style (default|ps) "default">
|
29
|
+
|
30
|
+
<!ELEMENT ol (li+)>
|
31
|
+
<!ELEMENT li (#PCDATA)>
|
32
|
+
<!ELEMENT url (#PCDATA)>
|
33
|
+
<!ELEMENT thought (#PCDATA)>
|
34
|
+
|
@@ -1,129 +1,154 @@
|
|
1
|
-
<?xml version="1.0"?>
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
<
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<?xml-stylesheet href="fuzface.xsl" type="text/xsl"?>
|
3
|
+
|
4
|
+
<!DOCTYPE commentary SYSTEM "commentary.dtd">
|
5
|
+
|
6
|
+
<commentary>
|
7
|
+
<meta>
|
8
|
+
<author>
|
9
|
+
<first_name>Sean</first_name>
|
10
|
+
<last_name>Chittenden</last_name>
|
11
|
+
<email>sean@chittenden.org</email>
|
12
|
+
</author>
|
13
|
+
<version>$Version$</version>
|
14
|
+
<date>$Date: 2008-07-09 23:35:19 -0600 (Wed, 09 Jul 2008) $</date>
|
15
|
+
<id>$Id: fuzface.xml 58 2008-07-10 05:35:19Z cfis $</id>
|
16
|
+
<title>Fuzface...</title>
|
17
|
+
<subtitle>The Internet's a big place and here's some proof...</subtitle>
|
18
|
+
</meta>
|
19
|
+
|
20
|
+
<body>
|
21
|
+
<para>
|
22
|
+
I think it's a tragedy that I'm going to start off my new
|
23
|
+
commentary by talking about facial hair and the Internet.
|
24
|
+
Something about that just screams pathetic, but whatever: it's
|
25
|
+
humor and that's life.
|
26
|
+
</para>
|
27
|
+
|
28
|
+
<para>
|
29
|
+
I've been working at home for a while now, which has been great.
|
30
|
+
I've been doing a lot of reading, good work, contributing to the
|
31
|
+
FreeBSD project, and living life at my own pace. The problem?
|
32
|
+
I don't have to interact with people, so I've let my appearance
|
33
|
+
slide a bit, most notably I've gone two weeks without shaving
|
34
|
+
and I have an awful hairy face.
|
35
|
+
</para>
|
36
|
+
|
37
|
+
<para>
|
38
|
+
Nothing is worse than going for a hard run, coming back, and
|
39
|
+
then bending your head down so that the hairs under your chin
|
40
|
+
touch the hairs on your neck. This has to be one of the most
|
41
|
+
disgusting/gross feelings I've experienced in a while. While
|
42
|
+
today wasn't the first time I'd experienced such a slimy tangled
|
43
|
+
mess, it is the first time I seriously considered shaving part
|
44
|
+
of my face, but not all of it: I was considering a beard.
|
45
|
+
</para>
|
46
|
+
|
47
|
+
<para>
|
48
|
+
Alright, so it's 5pm and I'm a sweaty post-run mess (it was 110
|
49
|
+
degrees in direct sunlight according to my thermometer) and
|
50
|
+
considering the possibility of growing a beard. Swifty nift?
|
51
|
+
Maybe. This is something I'd never done before, let alone
|
52
|
+
seriously consider. Normally I'd call my dad for such manly
|
53
|
+
advice, but he is: a) normally in another state, and; b) in
|
54
|
+
another country right now probably growing a beard (he's
|
55
|
+
notorious for coming back from a trip with a gnarly unshaven
|
56
|
+
face, sometimes he'll shape it into a decent beard). So, what's
|
57
|
+
a tech-junkie to do? Hop on the Internet and see if Google's
|
58
|
+
able to provide me with some inspiration.
|
59
|
+
</para>
|
60
|
+
|
61
|
+
<para>
|
62
|
+
Sure enough, I typed in "pictures of bearded men" and I was able
|
63
|
+
to find something: 14,000 pages of something to be exact.
|
64
|
+
Anyway, so most of these were rinky dink sites, a few of them
|
65
|
+
had some promise. One guy was trying to start a tradition where
|
66
|
+
everyone grows a beard for New Years. As I was scrolling down
|
67
|
+
the page trying to find some pictures, my mind was having the
|
68
|
+
following thought process: <thought>This seems like a dumb
|
69
|
+
idea... New Years provides a perfectly good excuse to kiss some
|
70
|
+
total stranger that you've had your eye on for the duration of a
|
71
|
+
New Years party. Why waste such an opportunity with a crappy
|
72
|
+
kiss?</thought> And at about this point I said this page sucks,
|
73
|
+
and flipped back to my search results.
|
74
|
+
</para>
|
75
|
+
|
76
|
+
<para>
|
77
|
+
Since I'd never done this before, I didn't know what was
|
78
|
+
fashionably correct in terms of where a guy should shave under
|
79
|
+
his neck, or what the deal was... I knew there were lots of
|
80
|
+
styles out there, just none that I could picture in my mind
|
81
|
+
(save maybe Santa Claus and a few really gnarly beards that are
|
82
|
+
long enough to be used as full-body covering. Oooh! And don't
|
83
|
+
forget the Russian and Amish beards, those stand out in my mind
|
84
|
+
too.). Google, being pretty comprehensive, and the Internet
|
85
|
+
being huge, found the exact screwball page I was looking for:
|
86
|
+
<url>http://fuzface-gallery.tripod.com/</url>
|
87
|
+
</para>
|
88
|
+
|
89
|
+
<para>
|
90
|
+
I don't know if I really should be amazed at the sheer number of
|
91
|
+
entries that Google returned, or that the Internet is big enough
|
92
|
+
to house such random gallery of crap, but it is and it never
|
93
|
+
ceases to amaze me... it's almost as amazing as the fact that
|
94
|
+
some bozo spent the time to create such a page. Don't people
|
95
|
+
have lives? Oh wait, I just visited his page... so back to my
|
96
|
+
diatribe...
|
97
|
+
</para>
|
98
|
+
|
99
|
+
<para>
|
100
|
+
There were tons of faces, lots of men, lots of hair, and plenty
|
101
|
+
of styles to choose from. Page after page of faces and hair.
|
102
|
+
Ugh. This wasn't getting any where and I was now entertaining
|
103
|
+
the rebound though of shaving my head. Time to close my browser
|
104
|
+
and hop in the shower: I reak. So what'd I do? Well, after
|
105
|
+
looking through enough of those pictures, I decided a few
|
106
|
+
things:
|
107
|
+
</para>
|
108
|
+
|
109
|
+
<para>
|
110
|
+
<ol>
|
111
|
+
<li>
|
112
|
+
I'm amazed that the Internet is big enough to foster the
|
113
|
+
creation of such random and utterly useless information. Then
|
114
|
+
again, I've been on and using the Net since '95, so this
|
115
|
+
shouldn't surprise me that much.
|
116
|
+
</li>
|
117
|
+
|
118
|
+
<li>
|
119
|
+
There are a lot of guys out there with varying tastes in,
|
120
|
+
shall we say, "facial hair styles," most of which I find
|
121
|
+
pretty unappealing.
|
122
|
+
</li>
|
123
|
+
|
124
|
+
<li>
|
125
|
+
I don't like beards. After one clogged drain, two
|
126
|
+
reapplications of shaving cream, and a few pases with the
|
127
|
+
razor, it took me about 5-10 minutes to get a nice cleanly
|
128
|
+
shaven face.
|
129
|
+
</li>
|
130
|
+
|
131
|
+
<li>
|
132
|
+
<crass comment>And - back me up here fellas, you can
|
133
|
+
sympathize with this feeling after you get done looking
|
134
|
+
through a magazine for a hair-cut style (ladies.. just smile
|
135
|
+
and nod and pretend you care) - after looking at a few dozen
|
136
|
+
pictures of men, I was able to safely reaffirm my desire for
|
137
|
+
heterosexual relations (translation from Bill Clintonese: have
|
138
|
+
sex with a woman). And with that thought in mind, I began to
|
139
|
+
pine for the college porn collection of old. Mmmm,
|
140
|
+
Playboy.</crass comment>
|
141
|
+
</li>
|
142
|
+
</ol>
|
143
|
+
</para>
|
144
|
+
|
145
|
+
<para>
|
146
|
+
::grin:: Until next time. -Sean
|
147
|
+
</para>
|
148
|
+
|
149
|
+
<para style="ps">
|
150
|
+
P.S. To the guys out there with beards, this is just my
|
151
|
+
opinion: take it with a grain of salt.
|
152
|
+
</para>
|
153
|
+
</body>
|
154
|
+
</commentary>
|