parlement 0.2 → 0.3

Sign up to get free protection for your applications and to get access to all the features.
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