parlement 0.2 → 0.3

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.
Files changed (125) hide show
  1. data/CHANGES +14 -4
  2. data/README +25 -5
  3. data/Rakefile +21 -21
  4. data/app/controllers/account_controller.rb +5 -1
  5. data/app/controllers/elt_controller.rb +7 -10
  6. data/app/controllers/person_controller.rb +9 -0
  7. data/app/controllers/subscriber_controller.rb +21 -0
  8. data/app/helpers/elt_helper.rb +25 -13
  9. data/app/helpers/mailman.rb +9 -92
  10. data/app/helpers/subscriber_helper.rb +2 -0
  11. data/app/models/attachment.rb +2 -0
  12. data/app/models/elt.rb +64 -2
  13. data/app/models/mail.rb +198 -0
  14. data/app/models/mail_notify.rb +63 -0
  15. data/app/models/person.rb +8 -1
  16. data/app/views/account/_login.rhtml +31 -28
  17. data/app/views/account/_show.rhtml +4 -4
  18. data/app/views/elt/_elt.rhtml +23 -28
  19. data/app/views/elt/_list.rhtml +6 -2
  20. data/app/views/elt/new.rhtml +1 -1
  21. data/app/views/elt/show.rhtml +32 -10
  22. data/app/views/layouts/top.rhtml +16 -10
  23. data/app/views/mail_notify/publish.text.html.rhtml +46 -0
  24. data/app/views/mail_notify/publish.text.plain.rhtml +2 -0
  25. data/app/views/person/_listElts.rhtml +33 -0
  26. data/app/views/person/show.rhtml +21 -19
  27. data/config/boot.rb +2 -0
  28. data/config/environment.rb +19 -13
  29. data/config/environments/development.rb +3 -1
  30. data/config/environments/production.rb +2 -0
  31. data/config/environments/test.rb +2 -0
  32. data/config/routes.rb +5 -2
  33. data/db/ROOT/mail.txt +2 -0
  34. data/db/ROOT/parlement/news/release0.2.txt +8 -0
  35. data/db/ROOT/parlement/news/release0.3.txt +11 -0
  36. data/db/ROOT/parlement/test.txt +6 -1
  37. data/db/ROOT/parlement.txt +23 -30
  38. data/db/ROOT/perso.txt +17 -18
  39. data/db/development_structure.sql +133 -217
  40. data/db/schema.rb +83 -0
  41. data/db/schema.sql +11 -15
  42. data/lib/data_import.rb +3 -1
  43. data/public/attachment/file/architecture.png +0 -0
  44. data/public/attachment/file/architecture.svg +8972 -0
  45. data/public/attachment/file/security.svg +8960 -0
  46. data/public/images/Sleep-Deprivation-5.JPG +0 -0
  47. data/public/images/eltBackground.png +0 -0
  48. data/public/images/eltBackground.svg +89 -0
  49. data/public/images/orange_by_darren_Hester_350o.jpg +0 -0
  50. data/public/images/rails.png +0 -0
  51. data/public/images/smile.png +0 -0
  52. data/public/images/smile.svg +257 -0
  53. data/public/images/world.png +0 -0
  54. data/public/images/world.svg +170 -0
  55. data/public/javascripts/controls.js +30 -1
  56. data/public/javascripts/dragdrop.js +210 -145
  57. data/public/javascripts/effects.js +261 -399
  58. data/public/javascripts/ie7.js +6 -0
  59. data/public/javascripts/prototype.js +131 -72
  60. data/public/oldindex.html +270 -71
  61. data/public/stylesheets/default.css +189 -215
  62. data/script/about +1 -1
  63. data/script/breakpointer +1 -1
  64. data/script/console +1 -1
  65. data/script/destroy +1 -1
  66. data/script/generate +1 -1
  67. data/script/performance/benchmarker +1 -1
  68. data/script/performance/profiler +1 -1
  69. data/script/plugin +1 -1
  70. data/script/process/reaper +1 -1
  71. data/script/process/spawner +1 -1
  72. data/script/process/spinner +1 -1
  73. data/script/runner +1 -1
  74. data/script/server +1 -1
  75. data/test/fixtures/elts.yml +2 -0
  76. data/test/fixtures/mail/mail_ruby +27 -0
  77. data/test/fixtures/mail/mail_rubyChild +28 -0
  78. data/test/fixtures/mail/mail_rubyWithAttachment +7932 -0
  79. data/test/fixtures/mail/mail_rubyWithSubject +27 -0
  80. data/test/fixtures/mails.yml +7 -1
  81. data/test/fixtures/people.yml +5 -0
  82. data/test/fixtures/subscribers.yml +11 -0
  83. data/test/functional/account_controller_test.rb +38 -37
  84. data/test/functional/subscriber_controller_test.rb +128 -0
  85. data/test/test_helper.rb +44 -0
  86. data/test/unit/attachment_test.rb +1 -1
  87. data/test/unit/elt_test.rb +3 -2
  88. data/test/unit/mail_notify_test.rb +37 -0
  89. data/test/unit/mail_test.rb +124 -1
  90. data/test/unit/notifier_test.rb +0 -14
  91. data/test/unit/person_test.rb +2 -1
  92. data/test/unit/subscriber_test.rb +35 -0
  93. data/test/unit/user_test.rb +3 -3
  94. data/vendor/plugins/file_column/CHANGELOG +64 -0
  95. data/vendor/plugins/file_column/README +54 -0
  96. data/vendor/plugins/file_column/Rakefile +36 -0
  97. data/vendor/plugins/file_column/TODO +6 -0
  98. data/vendor/plugins/file_column/init.rb +12 -0
  99. data/vendor/plugins/file_column/lib/file_column.rb +719 -0
  100. data/vendor/plugins/file_column/lib/file_column_helper.rb +145 -0
  101. data/vendor/plugins/file_column/lib/file_compat.rb +28 -0
  102. data/vendor/plugins/file_column/lib/magick_file_column.rb +188 -0
  103. data/vendor/plugins/file_column/lib/validations.rb +112 -0
  104. data/vendor/plugins/file_column/test/abstract_unit.rb +90 -0
  105. data/vendor/plugins/file_column/test/connection.rb +17 -0
  106. data/vendor/plugins/file_column/test/file_column_helper_test.rb +97 -0
  107. data/vendor/plugins/file_column/test/file_column_test.rb +630 -0
  108. data/vendor/plugins/file_column/test/fixtures/entry.rb +32 -0
  109. data/vendor/plugins/file_column/test/fixtures/invalid-image.jpg +1 -0
  110. data/vendor/plugins/file_column/test/fixtures/kerb.jpg +0 -0
  111. data/vendor/plugins/file_column/test/fixtures/mysql.sql +25 -0
  112. data/vendor/plugins/file_column/test/fixtures/schema.rb +10 -0
  113. data/vendor/plugins/file_column/test/fixtures/skanthak.png +0 -0
  114. data/vendor/plugins/file_column/test/magick_test.rb +251 -0
  115. data/vendor/plugins/file_column/test/magick_view_only_test.rb +21 -0
  116. data/vendor/plugins/guid/README.TXT +19 -0
  117. data/vendor/plugins/guid/init.rb +23 -0
  118. data/vendor/plugins/guid/lib/usesguid.rb +37 -0
  119. data/vendor/plugins/guid/lib/uuid22.rb +43 -0
  120. data/vendor/plugins/guid/lib/uuidtools.rb +565 -0
  121. metadata +83 -15
  122. data/db/ROOT/CV.txt +0 -166
  123. data/lib/file_column.rb +0 -263
  124. data/lib/file_column_helper.rb +0 -45
  125. /data/{lib → vendor/plugins/file_column/lib}/rails_file_column.rb +0 -0
@@ -0,0 +1,46 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3
+
4
+ <html>
5
+ <head>
6
+ <title><%= @elt.subject %></title>
7
+
8
+ <!-- Yes I use the mail domain for lack of another variable :-( -->
9
+ <base href="http://<%= ActionMailer::Base.server_settings[:domain] %>"/>
10
+
11
+ <link href="/stylesheets/default.css" media="screen" rel="Stylesheet" type="text/css" />
12
+ <script src="/javascripts/prototype.js" type="text/javascript"></script>
13
+ <script src="/javascripts/scriptaculous.js" type="text/javascript"></script>
14
+
15
+ <link rel="shortcut icon" href="/images/world.png" type="image/png"/>
16
+
17
+ <meta name="ROBOTS" content="ALL"/>
18
+ <meta name="author" content="Emmanuel Charpentier"/>
19
+ <meta name="description" content="Parlement, a mix between direct and
20
+ representative democracy, in the shape of a website. A mailing list,
21
+ forum, chat."/>
22
+ <meta name="keywords" content="collaborative writing, democracy, direct
23
+ democracy, representative democracy, forum, mailing list, chat, ruby on
24
+ rails, PostgreSQL"/>
25
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
26
+ </head>
27
+
28
+ <body>
29
+ <div class="links">
30
+ <a class="title" href="http://leparlement.org">Parlement</a>
31
+ <div class="signets">
32
+ <a href="http://rubyforge.org/projects/parlement">forge</a>
33
+ <a href="http://www.gnu.org/licenses/gpl.html">GPL</a>
34
+ </div>
35
+ </div>
36
+
37
+ <div class="elt">
38
+ <h1><%= textilize_without_paragraph @elt.subject %></h1>
39
+
40
+ <div class="eltBody">
41
+ <%= RedCloth.new(@elt.body).to_html%>
42
+ </div>
43
+ </div>
44
+ </body>
45
+ </html>
46
+
@@ -0,0 +1,2 @@
1
+ <%= @elt.body %>
2
+
@@ -0,0 +1,33 @@
1
+ <%
2
+ e_pages = ActionController::Pagination::Paginator.new(
3
+ self, person.elts.count, PAGE_ELT_LENGTH, @params['page'])
4
+ e = Elt.find_all("person_id = '#{person.id}'",
5
+ 'created_on DESC', e_pages.current.to_sql)
6
+ %>
7
+
8
+ <%
9
+ # TODO There seems to be a problem with firefox when trying to use a visual_effect
10
+ %>
11
+
12
+ <%= link_to_remote('< Previous',
13
+ :update => 'personElts_'+person.id.to_s,
14
+ :url => { :action => 'list', :id => person, :page => e_pages.current.next },
15
+ :complete => visual_effect(:BlindDown, 'personElts_'+person.id.to_s)) if e_pages.current.next %>
16
+
17
+ <span style="display:<%= e_pages.length > 1 ? '' : 'none'%>" class="pageCount">
18
+ (<%= e_pages.length-e_pages.current.to_i+1 %>/<%= e_pages.length %>)
19
+ </span>
20
+
21
+ <%= link_to_remote('Next >',
22
+ :update => 'personElts_'+person.id.to_s,
23
+ :url => { :action => 'list', :id => person, :page => e_pages.current.previous },
24
+ :complete => visual_effect(:BlindDown, 'personElts_'+person.id.to_s)) if e_pages.current.previous %>
25
+
26
+ <% for elt in e.reverse[0...PAGE_ELT_LENGTH] %>
27
+ <div class="boxLine">
28
+ <%= elt.created_on.strftime('%d/%m %H:%M') %>
29
+ <%= link_to(elt.subject, :controller => 'elt', :action => 'show', :id => elt) %>
30
+ (<%= elt.children.size %> sub)
31
+ </div>
32
+ <% end %>
33
+
@@ -1,3 +1,21 @@
1
+ <div class="sidebar">
2
+ <% if @person.subscribed_elts.size > 0 %>
3
+ <div class="boxTitle">Subscribed elts</div>
4
+ <% end %>
5
+
6
+ <div class="box">
7
+ <% for elt in @person.subscribed_elts.reverse[0...PAGE_ELT_LENGTH] %>
8
+ <div class="boxLine">
9
+ <span style="float:right;margin-right:0.5em;font-size:smaller;">
10
+ <%= elt.created_on.strftime('%d/%m') %>
11
+ </span>
12
+ <%= link_to(elt.subject, :controller => 'elt', :action => 'show', :id => elt) %>
13
+ </div>
14
+ <% end %>
15
+ </div>
16
+ </div>
17
+
18
+
1
19
  <h1><%= @person.name %></h1>
2
20
 
3
21
  <p>Created on <%= @person.created_on %></p>
@@ -18,23 +36,7 @@ e = Elt.find_all("person_id = '#{@person.id}'",
18
36
  'created_on DESC', e_pages.current.to_sql)
19
37
  %>
20
38
 
21
- <%= link_to_remote('< Previous',
22
- :update => 'eltSubs_'+elt.id.to_s,
23
- :url => { :action => 'list', :id => elt, :page => e_pages.current.next },
24
- :loading => visual_effect(:BlindDown, 'eltSubsClose_'+elt.id.to_s),
25
- :loaded => visual_effect(:BlindDown, 'eltSubs_'+elt.id.to_s)) if e_pages.current.next %>
26
-
27
- <span style="display:<%= e_pages.length > 1 ? '' : 'none'%>" class="pageCount">
28
- (<%= e_pages.length-e_pages.current.to_i+1 %>/<%= e_pages.length %>)
29
- </span>
30
-
31
- <%= link_to_remote('Next >',
32
- :update => 'eltSubs_'+elt.id.to_s,
33
- :url => { :action => 'list', :id => elt, :page => e_pages.current.previous },
34
- :loading => visual_effect(:BlindDown, 'eltSubsClose_'+elt.id.to_s),
35
- :loaded => visual_effect(:BlindDown, 'eltSubs_'+elt.id.to_s)) if e_pages.current.previous %>
36
-
37
- <%= render :partial => '/elt/elt',
38
- :collection => e.reverse,
39
- :locals => { :eltTop => false } %>
39
+ <div class="eltSubs" id="personElts_<%= @person.id %>">
40
+ <%= render :partial => '/person/listElts', :locals => { :person => @person } %>
41
+ </div>
40
42
 
data/config/boot.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # Don't change this file. Configuration is done in config/environment.rb and config/environments/*.rb
2
+
1
3
  unless defined?(RAILS_ROOT)
2
4
  root_path = File.join(File.dirname(__FILE__), '..')
3
5
  unless RUBY_PLATFORM =~ /mswin32/
@@ -1,23 +1,27 @@
1
1
  # Be sure to restart your web server when you modify this file.
2
2
 
3
3
  # Uncomment below to force Rails into production mode
4
- # (Use only when you can't set environment variables through your web/app server)
4
+ # you don't control web/app server and can't set it the proper way
5
5
  # ENV['RAILS_ENV'] ||= 'production'
6
6
 
7
7
  # Bootstrap the Rails environment, frameworks, and default configuration
8
8
  require File.join(File.dirname(__FILE__), 'boot')
9
9
 
10
10
  Rails::Initializer.run do |config|
11
+ # Settings in config/environments/* take precedence those specified here
12
+
11
13
  # Skip frameworks you're not going to use
12
14
  # config.frameworks -= [ :action_web_service, :action_mailer ]
13
15
 
14
16
  # Add additional load paths for your own custom dirs
15
17
  # config.load_paths += %W( #{RAILS_ROOT}/extras )
16
18
 
17
- # Force all environments to use the same logger level
19
+ # Force all environments to use the same logger level
18
20
  # (by default production uses :info, the others :debug)
19
21
  # config.log_level = :debug
20
22
 
23
+ config.log_level = :info
24
+
21
25
  # Use the database for sessions instead of the file system
22
26
  # (create the session table with 'rake create_sessions_table')
23
27
  # config.action_controller.session_store = :active_record_store
@@ -31,7 +35,7 @@ Rails::Initializer.run do |config|
31
35
 
32
36
  # Make Active Record use UTC-base instead of local time
33
37
  # config.active_record.default_timezone = :utc
34
-
38
+
35
39
  # Use Active Record's schema dumper instead of SQL when creating the test database
36
40
  # (enables use of different database adapters for development and test environments)
37
41
  # config.active_record.schema_format = :ruby
@@ -58,10 +62,10 @@ require 'rails_file_column'
58
62
  require 'jcode'
59
63
  $KCODE = 'u'
60
64
 
61
- PARLEMENT_VERSION='0.2'
65
+ PARLEMENT_VERSION='0.3'
62
66
 
63
67
  # How many elements are displayed at once
64
- PAGE_ELT_LENGTH = 20
68
+ PAGE_ELT_LENGTH = 10
65
69
 
66
70
  # What is the name of a quick anonymous poster
67
71
  ANONYMOUS_POSTER = 'anon'
@@ -70,18 +74,20 @@ require 'environments/user_environment'
70
74
 
71
75
  CONFIG = { :default_language => 'en' }
72
76
 
77
+ # This variable is of course used for mails, but also in the html mail
78
+ # template, to set the base url for the generated html
73
79
  ActionMailer::Base.server_settings = {
74
80
  :domain => 'leparlement.org'
75
81
  }
76
- """
77
- :address => 'smtp.postoffice.net',
78
- :port => 25,
79
- :domain => 'www.mywebsite.com',
80
- :user_name => 'me@postoffice.net',
81
- :password => 'mypass',
82
- :authentication => :login
83
- """
84
82
 
83
+ #
84
+ # :address => 'smtp.postoffice.net',
85
+ # :port => 25,
86
+ # :domain => 'www.mywebsite.com',
87
+ # :user_name => 'me@postoffice.net',
88
+ # :password => 'mypass',
89
+ # :authentication => :login
90
+ #
85
91
 
86
92
  module LoginEngine
87
93
  config :salt, 'parle'
@@ -1,3 +1,5 @@
1
+ # Settings specified here will take precedence over those in config/environment.rb
2
+
1
3
  # In the development environment your application's code is reloaded on
2
4
  # every request. This slows down response time but is perfect for development
3
5
  # since you don't have to restart the webserver when you make code changes.
@@ -14,4 +16,4 @@ config.action_controller.consider_all_requests_local = true
14
16
  config.action_controller.perform_caching = true
15
17
 
16
18
  # Don't care if the mailer can't send
17
- #config.action_mailer.raise_delivery_errors = false
19
+ config.action_mailer.raise_delivery_errors = true
@@ -1,3 +1,5 @@
1
+ # Settings specified here will take precedence over those in config/environment.rb
2
+
1
3
  # The production environment is meant for finished, "live" apps.
2
4
  # Code is not reloaded between requests
3
5
  config.cache_classes = true
@@ -1,3 +1,5 @@
1
+ # Settings specified here will take precedence over those in config/environment.rb
2
+
1
3
  # The test environment is used exclusively to run your application's
2
4
  # test suite. You never need to work with it otherwise. Remember that
3
5
  # your test database is "scratch space" for the test suite and is wiped
data/config/routes.rb CHANGED
@@ -12,10 +12,13 @@ ActionController::Routing::Routes.draw do |map|
12
12
 
13
13
  map.connect '', :controller => 'elt', :action => 'show', :id => 'parlement'
14
14
  map.connect 'index.rss', :controller => 'elt', :action => 'rss', :id => 'parlement'
15
- map.connect ':id', :controller => 'elt', :action => 'show', :id => 'parlement'
15
+
16
+ map.connect ':id', :controller => 'elt', :action => 'rss', :requirements => { :id => /.*\.rss/ }
17
+ map.connect ':id', :controller => 'elt', :action => 'show'
16
18
  map.connect ':id/index.rss', :controller => 'elt', :action => 'rss'
19
+ map.connect ':id//index.rss', :controller => 'elt', :action => 'rss'
17
20
 
18
- map.connect 'perso/:id', :controller => 'elt'
21
+ map.connect 'perso/:id', :controller => 'elt', :action => 'show'
19
22
  map.connect 'perso/:id/index.rss', :controller => 'elt', :action => 'rss'
20
23
  map.connect 'perso/blog/:id', :controller => 'elt'
21
24
  map.connect 'perso/blog/:id/index.rss', :controller => 'elt', :action => 'rss'
data/db/ROOT/mail.txt ADDED
@@ -0,0 +1,2 @@
1
+ mails
2
+
@@ -0,0 +1,8 @@
1
+ Version 0.2
2
+
3
+ Evolutions
4
+
5
+ * Anonymous users doing a quick post (where the subject is not modified) will be marked as "anon"
6
+ * Each person has a public page listing its posts (this page can also be used to post...)
7
+ * Display the creation time for the most important posts
8
+
@@ -0,0 +1,11 @@
1
+ Version 0.3
2
+
3
+ Major version, adding the possibility to use not only the web forums, but mails
4
+
5
+ * mailing list functionality!!!
6
+ * new look
7
+ * tests all pass
8
+ * rails 1.0
9
+ * plugin guid
10
+ * W3C xhtml 1.0 compliant
11
+
@@ -1,4 +1,9 @@
1
1
  Testing
2
2
 
3
- You can do anything you want here. Have fun!
3
+ You can use the basic part of the system right now (no mailing list or chat, no
4
+ vote, no delegation, no signatures, no electoral list, no P2P cluster). Just
5
+ click on the *more* links to drill down into the available elements. Click on
6
+ the *>>* links to propose new sub elements.
7
+
8
+ Do test this here!
4
9
 
@@ -1,51 +1,44 @@
1
1
  Parlement
2
2
 
3
- Traditionally, our political lives are organised with the rule of the three
4
- unities: unity of time, unity of place and unity of object. It's a principle
5
- taking its roots in ancient Greece, and it certainly contributes to the awe we
6
- can feel when comes election day. But it is also a limitation...
3
+ Forum, mailing list, blog, home page, chat room, newspaper.
7
4
 
8
- <table align="center"><tr><td>
5
+ p=. *AND*
9
6
 
10
- In the physical world we vote on:
7
+ A collaborative writing system based on democratic principles.
11
8
 
9
+ !{float:left;margin-right: 2em;}/attachment/file/architecture.png!
10
+
11
+ With _paper_ we vote:
12
12
  * one day
13
13
  * one place
14
14
  * one issue
15
15
 
16
- </td><td style="padding-right:3em;" vertical-align="center">
17
-
18
- =>
19
-
20
- </td><td>
21
-
22
- In Internet we can vote:
23
-
16
+ With _Internet_ we can vote:
24
17
  * any time
25
18
  * any where
26
19
  * any issue
27
20
 
28
- </td></tr></table>
21
+ This is a revolution, breaking rules that go back to antic Greece. Rules that
22
+ probably contribute to the feeling of awe one can resent when comes election
23
+ day, but which also restrict our ability to participate in politics.
29
24
 
30
- It is us, individuals, citizens, who choose what we want to do.
25
+ Now we can acquire three new freedoms: freedom of time, of place and of object.
26
+ we can vote from our home, in the middle of the night and on the small issues
27
+ that we care about.
31
28
 
32
- These three freedom have consequences, for example if you can vote anytime, you
33
- can probably also _change your vote_. There is also no need to have dates and
34
- agendas (except when outside conditions require it).
29
+ There are consequences. For example if you can vote anytime, why not also
30
+ _change your vote_ if you so wish? If votes are permanent, why have dates and
31
+ agendas, except for outside conditions?
35
32
 
36
33
  If you can vote on any issue, then why not allow _everybody to propose polls_?
37
- Their number growing, then _delegating_ your votes become a very useful
38
- feature, allowing you to concentrate on the parts that interest you the most,
39
- while adding your voice to someone you trust on other matters.
34
+ No technical limitation limits that ability, but for our own capacity to follow
35
+ all of them. And in fact their number growing, _delegating_ your votes will
36
+ become a required feature, allowing you to concentrate on the parts that
37
+ interest you the most, while delegating your voice to someone you trust on
38
+ other matters.
40
39
 
41
40
  If you can vote from anywhere, then you can vote in front of anybody, this
42
41
  means _vote selling_ is a possibility. It is not anti democratic, it's a
43
- feature. A feature that, yes, could result into an oligarchy, it all depends
44
- on the value of our votes.
45
-
46
-
47
- You can use the basic part of the system right now (no mailing list or chat, no
48
- vote, no delegation, no signatures, no electoral list). Just click on the
49
- *more* links to drill down into the available elements. Click on the *>>* links
50
- to propose new sub elements.
42
+ feature. A feature that, yes, could result into an oligarchy, it all depends on
43
+ the value of our votes.
51
44
 
data/db/ROOT/perso.txt CHANGED
@@ -1,12 +1,12 @@
1
- echarp / manu
1
+ echarp
2
2
 
3
3
  <style>
4
- .eltSub, .eltSubsClose { display:none; }
4
+ .eltSubs, .eltSubsClose { display: none; }
5
5
  </style>
6
6
 
7
7
  <div class="sidebar" style="clear:right">
8
+ <div class="boxTitle">Amis et famille</div>
8
9
  <div class="box">
9
- <div class="boxTitle">Amis et famille</div>
10
10
  <div class="boxLine">
11
11
  Fr�rot <a href="http://www.christhalie.free.fr">christophe</a>,et des
12
12
  <a href="http://www.motorun.net">motos!</a>
@@ -26,8 +26,8 @@ echarp / manu
26
26
  </div>
27
27
  </div>
28
28
 
29
+ <div class="boxTitle">Un ptit peu de logiciels libres</div>
29
30
  <div class="box">
30
- <div class="boxTitle">Un ptit peu de logiciels libres</div>
31
31
  <a href="http://www.fsf.org">FSF</a>
32
32
  <a href="http://april.org">APRIL</a>
33
33
  <a href="http://debian.org">debian</a> <a href="http://cocoon.apache.org">Cocoon</a>
@@ -39,8 +39,8 @@ echarp / manu
39
39
  <a href="http://kuro5hin.org">kuro5hin</a> <a href="http://javalobby.org">javalobby</a>
40
40
  </div>
41
41
 
42
+ <div class="boxTitle">Int�ressants</div>
42
43
  <div class="box">
43
- <div class="boxTitle">Int�ressants</div>
44
44
  <div class="boxLineR">
45
45
  <a href="http://www.radioparadise.com">Radio Paradise</a>
46
46
  </div>
@@ -64,8 +64,8 @@ echarp / manu
64
64
  </div>
65
65
  </div>
66
66
 
67
+ <div class="boxTitle">De mon histoire</div>
67
68
  <div class="box">
68
- <div class="boxTitle">De mon histoire</div>
69
69
  <div class="boxLine">
70
70
  <a href="http://www.editronics-edu.fr" title="liquid�">Editronics</a>
71
71
  </div>
@@ -107,18 +107,17 @@ echarp / manu
107
107
  </div>
108
108
  </div>
109
109
 
110
- !{width:10em;float:right;margin:1em;}/images/image/viveLeSki.jpg!:/images/image/viveLeSki.jpg
111
-
112
110
  Bonjour le monde
113
111
 
114
112
  Je suis un parisien d'origine paysanne. Cru 1973 et �lev� dans une bonne ferme
115
- pleine de poules et de ch�vres. Quand j'�tais petit, et c'est m�me pas une
116
- blague, il m'arrivait d'aller garder les biquettes dans les prs et les
117
- chemins. Autant vous dire que j'�tais un grand fan d'heidi!
113
+ pleine de poules et de ch�vres. Quand j'�tais petit, je passais du temps dans
114
+ les pr�s et les chemins. Autant vous dire que j'tais un grand fan d'heidi!
115
+
116
+ !{width:10em;float:right;margin:1em;}/images/image/viveLeSki.jpg!:/images/image/viveLeSki.jpg
118
117
 
119
- Dans les faits j'ai trahi mes origines, et je suis devenu un intello qui aime
120
- se prendre la t�te sur toutes de sujets. Genre la politique, philosophie,
121
- science fiction hard.
118
+ Dire qu'aujourd'hui je suis devenu un intello qui aime se prendre la t�te sur
119
+ toutes sortes de sujets. Politique, philosophie, psychologie, science fiction
120
+ hard.
122
121
 
123
122
  En 1997 j'ai imagin� une chose qui me tient � coeur, un outil d'�criture
124
123
  collaborative o� un groupe peut �crire n'importe quel genre de texte structur�
@@ -143,7 +142,7 @@ j'adore construire, imaginer. D
143
142
  inutilies avec des l�gos. Comme quoi avec les ann�es on ne change pas tant que
144
143
  �a...
145
144
 
146
- <pre style="float:left">
145
+ <pre style="float: left; color: #aa0;">
147
146
 
148
147
  \ | /
149
148
  |
@@ -152,7 +151,7 @@ inutilies avec des l
152
151
  \_|_/
153
152
  \ | /
154
153
  </pre>
155
- <pre style="float:left">
154
+ <pre style="float: left; color: #aa0;">
156
155
 
157
156
  \ | /
158
157
  |
@@ -164,11 +163,11 @@ inutilies avec des l
164
163
  Les deux figures bizarres � gauche sont le clavier d'un alphabet imaginaire. Je
165
164
  l'appelle smile :)
166
165
 
166
+ !{float:right; margin-left:1em; width:14em;}/images/image/smileCircles.png!:/images/image/smileCircles.png
167
+
167
168
  Cela consiste en six traits qui forment un carr� et ses diagonales. Six carr�s
168
169
  forment les six faces d'un cube. En vue isom�trique cela donne deux hexagones.
169
170
 
170
- !{float:right; margin-left:1em; width:6em;}/images/image/smileCircles.png!:/images/image/smileCircles.png
171
-
172
171
  Mais bon, c'est bien gentil d'avoir des mots qui peuvent �tre repr�sent�s en 3D
173
172
  ou sous des projections �tranges, mais je n'ai aucune s�mantique � leur
174
173
  appliquer... Pourtant il y a plein de combinaisons/mots possibles! Si vous avez