]> git.sur5r.net Git - i3/i3.github.io/commitdiff
add gsoc 2013 ideas page
authorMichael Stapelberg <michael@stapelberg.de>
Thu, 21 Mar 2013 10:36:39 +0000 (11:36 +0100)
committerMichael Stapelberg <michael@stapelberg.de>
Thu, 21 Mar 2013 10:36:39 +0000 (11:36 +0100)
_docs/gsoc2013-ideas [new file with mode: 0644]
docs/gsoc2013-ideas.html [new file with mode: 0644]

diff --git a/_docs/gsoc2013-ideas b/_docs/gsoc2013-ideas
new file mode 100644 (file)
index 0000000..15e12a1
--- /dev/null
@@ -0,0 +1,86 @@
+Google Summer of Code 2013 ideas
+================================
+Michael Stapelberg <michael@i3wm.org>
+March 2013
+
+== Idea 1: Saved sessions in i3
+
+Many desktop environments nowadays have a way of restarting the applications
+that you have been using when you reboot your computer.
+
+In i3, we want to take that idea a step further: We want to make it possible
+for the user to define a precise layout, which is then filled with the
+application windows as they start up.
+
+Many users are currently achieving a similar effect with custom scripts and
+lots of sleep calls to wait for applications to launch and then simulate
+interactive commands to move windows around.
+
+Many of the building blocks for this feature are already in place, but there
+still are a few places of code that need to be touched, a specification to be
+written, user feedback to be gathered and documentation to be updated.
+
+=== Desirable skills
+
+* Experience with C (best) or similar programming languages such as Perl, C++
+* Willingness and ability to write documentation
+
+=== What you will learn
+
+* How X11 and i3 work (not completely, but the most important parts)
+* How to interact with users
+* What good specification and documentation entails
+
+== Idea 2: Testsuite: better input and output
+
+i3 uses a comprehensive testsuite and cares about test-driven development as
+well as regression tests. While our testsuite covers quite a lot of code and
+works well and fest, it currently only uses the IPC interface to communicate
+with i3.
+
+The current state enables us to simulate anything a user might also trigger by
+a keypress. This does *not* include dragging windows around, moving the mouse,
+clicking on things, or handling actual keyboard events. Furthermore, the
+testsuite never sees the actual output the user gets to see. Instead, it just
+looks at the data structures.
+
+Therefore, it would be good to extend the testsuite so that it captures the X11
+output and compares it with saved images. Also, X11 input such as mouse and
+keyboard input should be simulated somehow (e.g. captured and replayed).
+
+=== Desirable skills
+
+* Experience with Perl or willingness to learn it
+* Experience with automated software testing or at least a basic understanding
+  of the concepts
+* Willingness to learn X11 mechanisms to capture output and simulate input
+
+=== What you will learn
+
+* How real-world testsuites work
+* How X11 input/output works
+* How to implement an entirely new feature into an existing codebase
+
+== Idea 3: Improve compatibility with certain Applications
+
+We often receive bug reports which are specific to certain toolkits and/or
+applications. For example, people are reporting problems with the IntelliJ IDE,
+Java applications in general, VMware or Half-Life (via Steam).
+
+Most often, these problems are caused by i3 doing things slighty differently
+than other window managers and can be solved by observing and comparing what
+others do and what i3 does.
+
+Fixing compatibility problems is a huge gain for the users of said
+applications.
+
+=== Desirable skills
+
+* Some experience in debugging
+* Willingness to look at X11 traces for many minutes :)
+
+=== What you will learn
+
+* How real-world debugging works, sometimes with open source (Java) and
+  sometimes with closed source applications (Half-Life, VMware)
+* How X11 works
diff --git a/docs/gsoc2013-ideas.html b/docs/gsoc2013-ideas.html
new file mode 100644 (file)
index 0000000..e7c04d8
--- /dev/null
@@ -0,0 +1,199 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"\r
+    "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
+<head>\r
+<link rel="icon" type="image/png" href="/favicon.png">\r
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />\r
+<meta name="generator" content="AsciiDoc 8.6.7" />\r
+<title>i3: Google Summer of Code 2013 ideas</title>\r
+<link rel="stylesheet" href="/css/style.css" type="text/css" />\r
+<link rel="stylesheet" href="/css/xhtml11.css" type="text/css" />\r
+<script type="text/javascript">\r
+/*<![CDATA[*/\r
+window.onload = function(){asciidoc.footnotes(); asciidoc.toc(2);}\r
+/*]]>*/\r
+</script>\r
+<script type="text/javascript" src="/js/asciidoc-xhtml11.js"></script>\r
+</head>\r
+<body class="article">\r
+\r
+        <div id="main">\r
+            <a href="/"><h1 id="title">i3 - improved tiling WM</h1></a>\r
+                        <ul id="nav">\r
+                                <li><a style="border-bottom: 2px solid #fff" href="/docs">Docs</a></li>\r
+                                <li><a href="/screenshots">Screens</a></li>\r
+                                <li><a href="/contact">Contact</a></li>\r
+                                <li><a href="http://bugs.i3wm.org/">Bugs</a></li>\r
+                        </ul>\r
+        <br style="clear: both">\r
+<div id="content">\r
+<div id="header">\r
+<h1>Google Summer of Code 2013 ideas</h1>\r
+<span id="author">Michael Stapelberg</span><br />\r
+<span id="email"><tt>&lt;<a href="mailto:michael@i3wm.org">michael@i3wm.org</a>&gt;</tt></span><br />\r
+<span id="revdate">March 2013</span>\r
+<div id="toc">
+  <div id="toctitle">Table of Contents</div>
+  <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_idea_1_saved_sessions_in_i3">1. Idea 1: Saved sessions in i3</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>Many desktop environments nowadays have a way of restarting the applications\r
+that you have been using when you reboot your computer.</p></div>\r
+<div class="paragraph"><p>In i3, we want to take that idea a step further: We want to make it possible\r
+for the user to define a precise layout, which is then filled with the\r
+application windows as they start up.</p></div>\r
+<div class="paragraph"><p>Many users are currently achieving a similar effect with custom scripts and\r
+lots of sleep calls to wait for applications to launch and then simulate\r
+interactive commands to move windows around.</p></div>\r
+<div class="paragraph"><p>Many of the building blocks for this feature are already in place, but there\r
+still are a few places of code that need to be touched, a specification to be\r
+written, user feedback to be gathered and documentation to be updated.</p></div>\r
+<div class="sect2">\r
+<h3 id="_desirable_skills">1.1. Desirable skills</h3>\r
+<div class="ulist"><ul>\r
+<li>\r
+<p>\r
+Experience with C (best) or similar programming languages such as Perl, C++\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Willingness and ability to write documentation\r
+</p>\r
+</li>\r
+</ul></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_what_you_will_learn">1.2. What you will learn</h3>\r
+<div class="ulist"><ul>\r
+<li>\r
+<p>\r
+How X11 and i3 work (not completely, but the most important parts)\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+How to interact with users\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+What good specification and documentation entails\r
+</p>\r
+</li>\r
+</ul></div>\r
+</div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_idea_2_testsuite_better_input_and_output">2. Idea 2: Testsuite: better input and output</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>i3 uses a comprehensive testsuite and cares about test-driven development as\r
+well as regression tests. While our testsuite covers quite a lot of code and\r
+works well and fest, it currently only uses the IPC interface to communicate\r
+with i3.</p></div>\r
+<div class="paragraph"><p>The current state enables us to simulate anything a user might also trigger by\r
+a keypress. This does <strong>not</strong> include dragging windows around, moving the mouse,\r
+clicking on things, or handling actual keyboard events. Furthermore, the\r
+testsuite never sees the actual output the user gets to see. Instead, it just\r
+looks at the data structures.</p></div>\r
+<div class="paragraph"><p>Therefore, it would be good to extend the testsuite so that it captures the X11\r
+output and compares it with saved images. Also, X11 input such as mouse and\r
+keyboard input should be simulated somehow (e.g. captured and replayed).</p></div>\r
+<div class="sect2">\r
+<h3 id="_desirable_skills_2">2.1. Desirable skills</h3>\r
+<div class="ulist"><ul>\r
+<li>\r
+<p>\r
+Experience with Perl or willingness to learn it\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Experience with automated software testing or at least a basic understanding\r
+  of the concepts\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Willingness to learn X11 mechanisms to capture output and simulate input\r
+</p>\r
+</li>\r
+</ul></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_what_you_will_learn_2">2.2. What you will learn</h3>\r
+<div class="ulist"><ul>\r
+<li>\r
+<p>\r
+How real-world testsuites work\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+How X11 input/output works\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+How to implement an entirely new feature into an existing codebase\r
+</p>\r
+</li>\r
+</ul></div>\r
+</div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_idea_3_improve_compatibility_with_certain_applications">3. Idea 3: Improve compatibility with certain Applications</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>We often receive bug reports which are specific to certain toolkits and/or\r
+applications. For example, people are reporting problems with the IntelliJ IDE,\r
+Java applications in general, VMware or Half-Life (via Steam).</p></div>\r
+<div class="paragraph"><p>Most often, these problems are caused by i3 doing things slighty differently\r
+than other window managers and can be solved by observing and comparing what\r
+others do and what i3 does.</p></div>\r
+<div class="paragraph"><p>Fixing compatibility problems is a huge gain for the users of said\r
+applications.</p></div>\r
+<div class="sect2">\r
+<h3 id="_desirable_skills_3">3.1. Desirable skills</h3>\r
+<div class="ulist"><ul>\r
+<li>\r
+<p>\r
+Some experience in debugging\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Willingness to look at X11 traces for many minutes :)\r
+</p>\r
+</li>\r
+</ul></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_what_you_will_learn_3">3.2. What you will learn</h3>\r
+<div class="ulist"><ul>\r
+<li>\r
+<p>\r
+How real-world debugging works, sometimes with open source (Java) and\r
+  sometimes with closed source applications (Half-Life, VMware)\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+How X11 works\r
+</p>\r
+</li>\r
+</ul></div>\r
+</div>\r
+</div>\r
+</div>\r
+</div>\r
+<div id="footnotes"><hr /></div>\r
+<div id="footer" lang="de">\r
+© 2009-2011 Michael Stapelberg, <a href="/impress.html">Impressum</a>\r
+</div>\r
+</body>\r
+</html>\r