рд╕реИрд░рд╛рдЯреЛрд╡ SFD'09 рдХреЗ рд▓рд┐рдП рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╡рд┐рдХрд╛рд╕: рдпрд╣ рдХреИрд╕реЗ рдерд╛

2009 рдореЗрдВ, SSESU (рд╕рд╛рд░рд╛рддреЛрд╡ рд╕рд╛рдорд╛рдЬрд┐рдХ рдФрд░ рдЖрд░реНрдерд┐рдХ рд╡рд┐рд╢реНрд╡рд╡рд┐рджреНрдпрд╛рд▓рдп) рдореЗрдВ рдХрд░реНрдорд┐рдпреЛрдВ рдХрд╛ рдПрдХ рд░реЛрдЯреЗрд╢рди рд╣реБрдЖ, рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рд╕рд╛рд░рд╛рддреЛрд╡ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдлреНрд░реАрдбрдо рдбреЗ рдЕрдм рд╕рдВрднрд╡ рдирд╣реАрдВ рдерд╛ред

рд╕рд╛рд░рд╛рддреЛрд╡ рдореЗрдВ рдПрд╕рдПрдлрдбреА рдХреА рдмрд▓реНрд▓реЗрдмрд╛рдЬреА рдХреЛ рдПрд╕рдПрд╕рдпреВ рджреНрд╡рд╛рд░рд╛ рдЙрдард╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред

SSU рдХреЗ рдЖрдпреЛрдЬрдХ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдПрдХ рддрдХрдиреАрдХреА рдкреВрд░реНрд╡рд╛рдЧреНрд░рд╣ рд╡рд╛рд▓реЗ рд▓реЛрдЧ рдереЗ, рдФрд░ рдЗрд╕рд▓рд┐рдП рдЗрд╕ рд╡рд░реНрд╖ рд╕реЗрд░рд╛рдЯреЛрд╡ SFD рдкрд╣рд▓реЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрд╛рдлреА рдЕрдзрд┐рдХ рддрдХрдиреАрдХреА рд░реВрдк рд╕реЗ рдЙрдиреНрдирдд рд╣реБрдЖред

SFD 2009 рдХреЗ рд╕рдВрдЧрдарди рдХреЗ рд▓рд┐рдП, SSU (рд▓рд┐рдирдХреНрд╕ рдХреЗ рд▓рд┐рдП рдбреНрд░рд╛рдЗрд╡рд░реЛрдВ рддрдХ) рдореЗрдВ рдХрдИ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдЙрддреНрдкрд╛рдж рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдП рдЧрдП рдереЗ!



рд╕рдВрдЧрдарди рд╕рд╛рд░рд╛рддреЛрд╡ SFD 2009 рдиреЗ рдкрд┐рдЫрд▓реЗ рд╡рд░реНрд╖реЛрдВ рдХреЗ рдЕрдиреБрднрд╡ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрд╛ред

рдЗрд╕ рдШрдЯрдирд╛ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдкрд┐рдд рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╕рд╛рдЗрдЯ sfd.sgu.ru рдЦреЛрд▓реА рдЧрдИ



рд╕рд╛рдЗрдЯ рдкрд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ



рдпрд╣ рд╕рд╛рдЗрдЯ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ SSU cc.sgu.ru рдХреЗ рдХрдореНрдкреНрдпреВрдЯрд┐рдВрдЧ рд╕реЗрдВрдЯрд░ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдореБрдлреНрдд рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкреНрд░рдмрдВрдзрди рдкреНрд░рдгрд╛рд▓реА Redmine cc.sgu.ru/redmine рдореЗрдВ рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╣реИред

рд░реЗрдбрдорд╛рдЗрди рд░реВрдмреА рдСрди рд░реЗрд▓реНрд╕ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЗрд╕реЗ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдУрдкрди рд╕реЛрд░реНрд╕ рдмрдЧ рдЯреНрд░реИрдХрд░ / рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореИрдиреЗрдЬрдореЗрдВрдЯ рд╕рд┐рд╕реНрдЯрдо рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред

рдпрд╣ VTshnoy рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкреНрд░рдмрдВрдзрди рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ SFD рдкрд░рд┐рдпреЛрдЬрдирд╛ рдмрдирд╛рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ (рдФрд░ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реА Redmine рдХрд╛ рдПрдХ рдЕрд▓рдЧ рдЙрджрд╛рд╣рд░рдг рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП):





рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдЖрдпреЛрдЬрдХреЛрдВ рдХреЛ рдХрдИ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛:





Redmine рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд▓рдЧрдЗрди рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдХреЗ рдЗрди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛ (Redmine рд╕реНрд░реЛрдд рдХреЛрдб рдореЗрдВ рдХреЛрдИ рдкрд░рд┐рд╡рд░реНрддрди рдирд╣реАрдВ)

рднрд╡рд┐рд╖реНрдп рдореЗрдВ, рдЗрд╕реЗ рд░рд┐рдлреИрдХреНрдЯ рдХрд░рдиреЗ (рдЗрд╕реЗ рдлрд╝рдВрдХреНрд╢рди рджреНрд╡рд╛рд░рд╛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреНрд▓рдЧ рдЗрди рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ) рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рдИ рдЧрдИ рд╣реИ рдФрд░ рдЗрд╕реЗ рдУрдкрдирд╕реЛрд░реНрд╕ рдореЗрдВ рдбрд╛рд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣рд╛рдБ рдХреБрдЫ рдХреЛрдб рджрд┐рдП рдЧрдП рд╣реИрдВ:



рд╕реАрдПрд╕рдПрд╕ рдЬреЛрдбрд╝рдирд╛, рдЧреИрд░-рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкреНрд░рддрд┐рднрд╛рдЧрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдирд╛рд╡рд╢реНрдпрдХ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рд╣рдЯрд╛рдирд╛, рдФрд░ рдЬреЗрдПрд╕ рдЬреЛрдбрд╝рдирд╛:


  1. def view_layouts_base_html_head (context = { }) ret= '' project = context[:project] baseurl = url_for (:controller => 'wiki' , :action => 'index' , :id => project) + '/../../..' if not project. nil ? if not User.current.member_of?(project) if File .exists?( "#{RAILS_ROOT}/public/themes/#{project.identifier}/stylesheets/non_member.css" ) ret+= stylesheet_link_tag (baseurl + "/themes/#{project.identifier}/stylesheets/non_member.css" ) end end if File .exists?( "#{RAILS_ROOT}/public/themes/#{project.identifier}/js/project.js" ) ret+= javascript_include_tag (baseurl + "/themes/#{project.identifier}/js/project.js" ) end end return ret end



  2. def view_layouts_base_html_head (context = { }) ret= '' project = context[:project] baseurl = url_for (:controller => 'wiki' , :action => 'index' , :id => project) + '/../../..' if not project. nil ? if not User.current.member_of?(project) if File .exists?( "#{RAILS_ROOT}/public/themes/#{project.identifier}/stylesheets/non_member.css" ) ret+= stylesheet_link_tag (baseurl + "/themes/#{project.identifier}/stylesheets/non_member.css" ) end end if File .exists?( "#{RAILS_ROOT}/public/themes/#{project.identifier}/js/project.js" ) ret+= javascript_include_tag (baseurl + "/themes/#{project.identifier}/js/project.js" ) end end return ret end



  3. def view_layouts_base_html_head (context = { }) ret= '' project = context[:project] baseurl = url_for (:controller => 'wiki' , :action => 'index' , :id => project) + '/../../..' if not project. nil ? if not User.current.member_of?(project) if File .exists?( "#{RAILS_ROOT}/public/themes/#{project.identifier}/stylesheets/non_member.css" ) ret+= stylesheet_link_tag (baseurl + "/themes/#{project.identifier}/stylesheets/non_member.css" ) end end if File .exists?( "#{RAILS_ROOT}/public/themes/#{project.identifier}/js/project.js" ) ret+= javascript_include_tag (baseurl + "/themes/#{project.identifier}/js/project.js" ) end end return ret end



  4. def view_layouts_base_html_head (context = { }) ret= '' project = context[:project] baseurl = url_for (:controller => 'wiki' , :action => 'index' , :id => project) + '/../../..' if not project. nil ? if not User.current.member_of?(project) if File .exists?( "#{RAILS_ROOT}/public/themes/#{project.identifier}/stylesheets/non_member.css" ) ret+= stylesheet_link_tag (baseurl + "/themes/#{project.identifier}/stylesheets/non_member.css" ) end end if File .exists?( "#{RAILS_ROOT}/public/themes/#{project.identifier}/js/project.js" ) ret+= javascript_include_tag (baseurl + "/themes/#{project.identifier}/js/project.js" ) end end return ret end



  5. def view_layouts_base_html_head (context = { }) ret= '' project = context[:project] baseurl = url_for (:controller => 'wiki' , :action => 'index' , :id => project) + '/../../..' if not project. nil ? if not User.current.member_of?(project) if File .exists?( "#{RAILS_ROOT}/public/themes/#{project.identifier}/stylesheets/non_member.css" ) ret+= stylesheet_link_tag (baseurl + "/themes/#{project.identifier}/stylesheets/non_member.css" ) end end if File .exists?( "#{RAILS_ROOT}/public/themes/#{project.identifier}/js/project.js" ) ret+= javascript_include_tag (baseurl + "/themes/#{project.identifier}/js/project.js" ) end end return ret end



  6. def view_layouts_base_html_head (context = { }) ret= '' project = context[:project] baseurl = url_for (:controller => 'wiki' , :action => 'index' , :id => project) + '/../../..' if not project. nil ? if not User.current.member_of?(project) if File .exists?( "#{RAILS_ROOT}/public/themes/#{project.identifier}/stylesheets/non_member.css" ) ret+= stylesheet_link_tag (baseurl + "/themes/#{project.identifier}/stylesheets/non_member.css" ) end end if File .exists?( "#{RAILS_ROOT}/public/themes/#{project.identifier}/js/project.js" ) ret+= javascript_include_tag (baseurl + "/themes/#{project.identifier}/js/project.js" ) end end return ret end



  7. def view_layouts_base_html_head (context = { }) ret= '' project = context[:project] baseurl = url_for (:controller => 'wiki' , :action => 'index' , :id => project) + '/../../..' if not project. nil ? if not User.current.member_of?(project) if File .exists?( "#{RAILS_ROOT}/public/themes/#{project.identifier}/stylesheets/non_member.css" ) ret+= stylesheet_link_tag (baseurl + "/themes/#{project.identifier}/stylesheets/non_member.css" ) end end if File .exists?( "#{RAILS_ROOT}/public/themes/#{project.identifier}/js/project.js" ) ret+= javascript_include_tag (baseurl + "/themes/#{project.identifier}/js/project.js" ) end end return ret end



  8. def view_layouts_base_html_head (context = { }) ret= '' project = context[:project] baseurl = url_for (:controller => 'wiki' , :action => 'index' , :id => project) + '/../../..' if not project. nil ? if not User.current.member_of?(project) if File .exists?( "#{RAILS_ROOT}/public/themes/#{project.identifier}/stylesheets/non_member.css" ) ret+= stylesheet_link_tag (baseurl + "/themes/#{project.identifier}/stylesheets/non_member.css" ) end end if File .exists?( "#{RAILS_ROOT}/public/themes/#{project.identifier}/js/project.js" ) ret+= javascript_include_tag (baseurl + "/themes/#{project.identifier}/js/project.js" ) end end return ret end



  9. def view_layouts_base_html_head (context = { }) ret= '' project = context[:project] baseurl = url_for (:controller => 'wiki' , :action => 'index' , :id => project) + '/../../..' if not project. nil ? if not User.current.member_of?(project) if File .exists?( "#{RAILS_ROOT}/public/themes/#{project.identifier}/stylesheets/non_member.css" ) ret+= stylesheet_link_tag (baseurl + "/themes/#{project.identifier}/stylesheets/non_member.css" ) end end if File .exists?( "#{RAILS_ROOT}/public/themes/#{project.identifier}/js/project.js" ) ret+= javascript_include_tag (baseurl + "/themes/#{project.identifier}/js/project.js" ) end end return ret end



  10. def view_layouts_base_html_head (context = { }) ret= '' project = context[:project] baseurl = url_for (:controller => 'wiki' , :action => 'index' , :id => project) + '/../../..' if not project. nil ? if not User.current.member_of?(project) if File .exists?( "#{RAILS_ROOT}/public/themes/#{project.identifier}/stylesheets/non_member.css" ) ret+= stylesheet_link_tag (baseurl + "/themes/#{project.identifier}/stylesheets/non_member.css" ) end end if File .exists?( "#{RAILS_ROOT}/public/themes/#{project.identifier}/js/project.js" ) ret+= javascript_include_tag (baseurl + "/themes/#{project.identifier}/js/project.js" ) end end return ret end



  11. def view_layouts_base_html_head (context = { }) ret= '' project = context[:project] baseurl = url_for (:controller => 'wiki' , :action => 'index' , :id => project) + '/../../..' if not project. nil ? if not User.current.member_of?(project) if File .exists?( "#{RAILS_ROOT}/public/themes/#{project.identifier}/stylesheets/non_member.css" ) ret+= stylesheet_link_tag (baseurl + "/themes/#{project.identifier}/stylesheets/non_member.css" ) end end if File .exists?( "#{RAILS_ROOT}/public/themes/#{project.identifier}/js/project.js" ) ret+= javascript_include_tag (baseurl + "/themes/#{project.identifier}/js/project.js" ) end end return ret end



  12. def view_layouts_base_html_head (context = { }) ret= '' project = context[:project] baseurl = url_for (:controller => 'wiki' , :action => 'index' , :id => project) + '/../../..' if not project. nil ? if not User.current.member_of?(project) if File .exists?( "#{RAILS_ROOT}/public/themes/#{project.identifier}/stylesheets/non_member.css" ) ret+= stylesheet_link_tag (baseurl + "/themes/#{project.identifier}/stylesheets/non_member.css" ) end end if File .exists?( "#{RAILS_ROOT}/public/themes/#{project.identifier}/js/project.js" ) ret+= javascript_include_tag (baseurl + "/themes/#{project.identifier}/js/project.js" ) end end return ret end



  13. def view_layouts_base_html_head (context = { }) ret= '' project = context[:project] baseurl = url_for (:controller => 'wiki' , :action => 'index' , :id => project) + '/../../..' if not project. nil ? if not User.current.member_of?(project) if File .exists?( "#{RAILS_ROOT}/public/themes/#{project.identifier}/stylesheets/non_member.css" ) ret+= stylesheet_link_tag (baseurl + "/themes/#{project.identifier}/stylesheets/non_member.css" ) end end if File .exists?( "#{RAILS_ROOT}/public/themes/#{project.identifier}/js/project.js" ) ret+= javascript_include_tag (baseurl + "/themes/#{project.identifier}/js/project.js" ) end end return ret end



  14. def view_layouts_base_html_head (context = { }) ret= '' project = context[:project] baseurl = url_for (:controller => 'wiki' , :action => 'index' , :id => project) + '/../../..' if not project. nil ? if not User.current.member_of?(project) if File .exists?( "#{RAILS_ROOT}/public/themes/#{project.identifier}/stylesheets/non_member.css" ) ret+= stylesheet_link_tag (baseurl + "/themes/#{project.identifier}/stylesheets/non_member.css" ) end end if File .exists?( "#{RAILS_ROOT}/public/themes/#{project.identifier}/js/project.js" ) ret+= javascript_include_tag (baseurl + "/themes/#{project.identifier}/js/project.js" ) end end return ret end



  15. def view_layouts_base_html_head (context = { }) ret= '' project = context[:project] baseurl = url_for (:controller => 'wiki' , :action => 'index' , :id => project) + '/../../..' if not project. nil ? if not User.current.member_of?(project) if File .exists?( "#{RAILS_ROOT}/public/themes/#{project.identifier}/stylesheets/non_member.css" ) ret+= stylesheet_link_tag (baseurl + "/themes/#{project.identifier}/stylesheets/non_member.css" ) end end if File .exists?( "#{RAILS_ROOT}/public/themes/#{project.identifier}/js/project.js" ) ret+= javascript_include_tag (baseurl + "/themes/#{project.identifier}/js/project.js" ) end end return ret end



  16. def view_layouts_base_html_head (context = { }) ret= '' project = context[:project] baseurl = url_for (:controller => 'wiki' , :action => 'index' , :id => project) + '/../../..' if not project. nil ? if not User.current.member_of?(project) if File .exists?( "#{RAILS_ROOT}/public/themes/#{project.identifier}/stylesheets/non_member.css" ) ret+= stylesheet_link_tag (baseurl + "/themes/#{project.identifier}/stylesheets/non_member.css" ) end end if File .exists?( "#{RAILS_ROOT}/public/themes/#{project.identifier}/js/project.js" ) ret+= javascript_include_tag (baseurl + "/themes/#{project.identifier}/js/project.js" ) end end return ret end







рдкреНрд▓рдЧрд┐рди (рдкреНрд░рддрд┐-рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдереАрдо) рд╕реЗ рд╕реНрд╡рдпрдВ рдХреЛ рдкреБрдирдГ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди:


  1. рдЖрд╡рд╢реНрдпрдХрддрд╛_ рдирд┐рд░реНрднрд░рддрд╛ 'рд░реЗрдбрд┐рдорд╛рдЗрди / рдереАрдо'
  2. рдореЙрдбреНрдпреВрд▓ CSSPatch
  3. рдбреАрдИрдПрдлрд╝ рд╕реЗрд▓реНрдлред рдмрд┐рди (рдмреЗрд╕) #: рдиреЛрдбреЛрдХ:
  4. base.send (: рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ , InstanceMethods)
  5. base.class_eval рдХрд░рддреЗ рд╣реИрдВ
  6. alias_method_chain: path_to_stylesheet ,: perproject
  7. рдЕрдВрдд
  8. рдЕрдВрдд
  9. рдореЙрдбреНрдпреВрд▓ InstanceMethods
  10. # рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░рд╢рд╛рд╕рди рдкреГрд╖реНрда рдкрд░ рджрд░реЗрдВ рдЯреИрдм рдЬреЛрдбрд╝рддрд╛ рд╣реИ
  11. def path_to_stylesheet_with_perproject (рд╕реНрд░реЛрдд)
  12. рд╡реЗрдВ = рд╕реНрдЯреНрд░рд┐рдВрдЧ ред рдирдпрд╛ (Setting.ui_theme)
  13. рдпрджрд┐ рдирд╣реАрдВ рд╢реВрдиреНрдп ?
  14. рдкреНрд░реЙрдЬреЗрдХреНрдЯреЗрдореЗ = "# рдкреЗрдЧреНрд░реЗрд▓рд╛рдЗрд▓реНрд╕_рд░реЛрддреЛ / рд░рд┐рдкрдмреНрд▓рд┐рдХ / рдЯреАрдореНрд╕ / рдСрдпрд▓рд╛рдЗрдбреНрд╕_рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕рд┐рдлрд╛рдпрд░"
  15. рдпрджрд┐ рдлрд╝рд╛рдЗрд▓ .exists? (рдкреНрд░реЛрдЬреЗрдХреНрдЯрдЯреЗрдо)
  16. th = @ project.identifier
  17. рдЕрдВрдд
  18. рдЕрдВрдд
  19. @current_theme || = Redmine :: Themes.theme (th)
  20. styleheet_path ((@current_theme && @ current_theme.stylesheets? рд╢рд╛рдорд┐рд▓ рд╣реИрдВ ? (рд╕реНрд░реЛрдд))?
  21. "ред
  22. рдЕрдВрдд
  23. рдЕрдВрдд
  24. рдЕрдВрдд
  25. ApplicationHelper.send (: рд╢рд╛рдорд┐рд▓ рд╣реИрдВ , CSSPatch)


рдЗрд▓реЗрдХреНрдЯреНрд░реЙрдирд┐рдХ рдХрд┐рдпреЛрд╕реНрдХ рдХреА рдЯрдЪ рд╕реНрдХреНрд░реАрди рдХреЗ рд▓рд┐рдП рдбреНрд░рд╛рдЗрд╡рд░



рдУрдкрди рд╕реЛрд░реНрд╕ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдХреЛ рд▓реЛрдХрдкреНрд░рд┐рдп рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдЧрдВрддреБрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдЗрд╕ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдХреЗ рд╕рд╛рде рд╕реАрдзреЗ рд╕рдВрдкрд░реНрдХ рдХрд░рдирд╛ рд╕рдВрднрд╡ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рд╛рде рд╣реА рд╕рд╛рде рдПрд╕рдПрд╕рдпреВ рдореЗрдВ рдШрдЯрдирд╛ рдХрд╛ рдиреЗрддреНрд░рд╣реАрди рд╡рд┐рдЬреНрдЮрд╛рдкрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╢рд░рддреЛрд╡ рдирдЧрд░рдкрд╛рд▓рд┐рдХрд╛ рд╕рдВрд╕реНрдерд╛рдиреЛрдВ рдХреЗ рд╕реВрдЪрдирд╛рдХрд░рдг рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдмрд╛рдж рдЪреБрдирд╛рд╡ рдЖрдпреЛрдЧ рдореЗрдВ рдЫреЛрдбрд╝реЗ рдЧрдП рдЗрд▓реЗрдХреНрдЯреНрд░реЙрдирд┐рдХ рдХрд┐рдпреЛрд╕реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ред

рдЫрд╡рд┐



рдФрд░ рд╣рд╛рдВ, рдХрд┐рдпреЛрд╕реНрдХ рдкрд░ рдореБрдлреНрдд рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛ред

рд▓реЗрдХрд┐рди рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдирд┐рдХрд▓рд╛, рдХрд┐рдпреЛрд╕реНрдХ рдХрд╛ рд▓реЛрд╣рд╛ рднрд░рдирд╛ рдмрд╣реБрдд рдореБрдХреНрдд рдирд╣реАрдВ рдерд╛ ...

GeneralTouch рдЯрдЪ рд╕реНрдХреНрд░реАрди рдХреЗ рддрд╣рдд Xfree86 рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдкреБрд░рд╛рдиреЗ рдорд╛рд▓рд┐рдХрд╛рдирд╛ рдбреНрд░рд╛рдЗрд╡рд░ рдереЗ рдЬреЛ рдЖрдзреБрдирд┐рдХ Xorg рдХреЗ рд╕рд╛рде рд╕рдВрдЧрдд рдирд╣реАрдВ рд╣реИрдВ рдФрд░ рдЕрднреА рднреА рдХреБрдЫ рдЙрддреНрд╕рд╛рд╣реА linuxportal.ru/forums/index.php/m/81/127/#msg_81607 рд╕реЗ рдПрдХ рдЬрдВрдЧрд▓реА рдмрд╛рдЗрдХ рдереА (рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рдХреА рд╕реЗрд╡рд╛ рд╣реИ) рд╡рд╣рд╛рдВ рдЗрд╕ рд╕рдирд╕рдиреА рдХреЛ рдХреБрдЫ рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рдХреЗ рдЕрдзреАрди рдХрд░ рджрд┐рдпрд╛, рдЬрд┐рд╕рдореЗрдВ рдкреБрд░рд╛рдирд╛ рдФрд░ рддреАрд╕рд░рд╛ рдкрдХреНрд╖ рдЬрд▓рд╛рдК рд▓рдХрдбрд╝реА рднреА рд╣реИ), рдЬреЛ рднреА рдХрд╛рдо рдирд╣реАрдВ рдЖрдпрд╛ ...

рд╣рдордиреЗ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рдХреНрдпреЛрдВ рди рдЦреБрдж рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рдЬрд▓рд╛рдК рд▓рдХрдбрд╝реА рд▓рд┐рдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдЬрд╛рдП? рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, Xorg рдореЗрдВ Elotouch touchscreens рдХреЗ рдбреНрд░рд╛рдЗрд╡рд░ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдЬреЛ рд╣рдорд╛рд░реЗ GeneralTouch рдЬреИрд╕реЗ COM рдкреЛрд░реНрдЯ рд╕реЗ рдЬреБрдбрд╝реЗ рд╣реИрдВ, рдФрд░ рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, "рд╕рд╛рдЗрдХрд┐рд▓ рдЪрд╛рд▓рдХ" рд╕реЗ рд╣рдореЗрдВ рд╡рд╣ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдорд┐рд▓рд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ GeneralTouch рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рд╣рдордиреЗ xorg-x11-drv-elographics рдХреЗ рд╕реНрд░реЛрдд рдЦреЛрд▓реЗ, рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореБрдЦреНрдп рдЯрдЪ рдкреИрдХреЗрдЬ рдХрд╛ рдкреНрд░рд╛рд░реВрдк рдмрд┐рд▓реНрдХреБрд▓ рд╕рдорд╛рди рд╣реИ! (рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЕрдиреНрдп рдЬрдирд░рд▓рдЯрдЪ рдкреИрдХреЗрдЬреЛрдВ рдХрд╛ рдкреНрд░рд╛рд░реВрдк рдирд╣реАрдВ рд╣реИ) ...

рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдФрд░ рдЕрдиреНрдп рдЕрдирд╛рд╡рд╢реНрдпрдХ рдЯреБрдХрдбрд╝реЗ рд╣рдЯрд╛ рджрд┐рдП рдЧрдП рдереЗ, рд╕рдВрдХрд▓рд┐рдд ... рдЕрд░реНрдЬрд┐рдд!

рдЗрд╕рдХреЗ рдмрд╛рдж, рд╣рдорд╛рд░реЗ рдкреИрдЪ рдХреЛ рдКрдкрд░ рд▓реЗ рдЬрд╛рдпрд╛ рдЧрдпрд╛



рдирд┐рд╖реНрдХрд░реНрд╖ ... рдХрд╛рд░реНрдпрдХреНрд░рдо рд╕реЗ рдбрд░реЛ рдордд ... рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧреА рдФрд░ рджрд┐рд▓рдЪрд╕реНрдк рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд▓реЗрдВ ...

рдлрд╛рдпрд░рд╡реБрдб рд▓рд┐рдЦрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, Xorg-x11-drv-elographics рдХреЗ рд╕реНрд░реЛрдд рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рддреНрд╕реЛрдкрд╛ рдХреЗ рдкреВрд░реНрд╡ рдУрд▓рдВрдкрд┐рдпрд╛рдб (рдПрд╕рдПрд╕рдпреВ рдХреЗ рдУрд▓рдВрдкрд┐рдпрд╛рдб рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдХреЗрдВрджреНрд░) рдореЗрдВ рд╕реЗ рдХреБрдЫ рдиреЗ рдХрд╣рд╛ :

" :(

- ."








рдкреБрдирд╢реНрдЪред рдЬреИрд╕рд╛ рдХрд┐ рдЗрд╕ рд╡рд░реНрд╖ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╡рд┐рд╖рдп рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рд╕реИрд░рд╛рдЯреЛрд╡ рдПрд╕рдПрдлрдбреА 2010 рдореЗрдВ рд╕рд╛рд░рд╛рддреЛрд╡ рд░рд╛рдЬреНрдп рд╡рд┐рд╢реНрд╡рд╡рд┐рджреНрдпрд╛рд▓рдп рднреА рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рд╡реЗ рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИ!



All Articles