Refactor: Split config objects to Gui and Probe
[mentor.git] / TODO
blob101787ea9743653baadf6f8a49e681bc6eb766ac
1 This is a TODO file for Mentor project.  Currently it includes just draft
2 random ideas about future Mentor development.
6 --------------------------------------
7 GENERAL {{{
8 --------------------------------------
10 - Design goals:
11   open  - set of small utilities (probe, gui, vim) which together form
12   something advanced , ability to use open formats : xml, txt , sqlite
13   scripting - with python scripting , OLE automation and and KDE KParts
14   interface for scripting
16   focus on automation/user-friendliness of creating packs
17    creation of packs
21 - General idea [MOVE TO DOCS]
22 What can be used Mentor for?
23 Mentor first in supermemo all possible learning means:
24 cloze deletion
25 mindmaps
26 diagrams
27 uml
28 conversion from source code
29 automatic knowledge retrieval
31 - each config option should have params
32   like possible values if stored in settings or constant
33   if modifiable from commandline
34   if usable in probe or in mentor or in freq
36 - add to config parse_probe_commandline and parse_mentor_commandline
37   ? maybe better will be splitting them ?
38   and pass optparse to them
39   also will need get_probe_usage and get_mentor_usage
41 - upgrade the database upon entering
42   when opening database should check the result
43   if version is lower then ask if proceed with upgrade
44    upgrade implemented similarly to upgrade procedure we did use in Vademecum
45    Szefa
47 }}}
50 --------------------------------------
51 DOC {{{
52 --------------------------------------
54 - Make TODO file more readable
55 As a first TODO item for this file is make it more managable and readable.
56 Also convert it to some markup format.
58 - design the mentor documentation after supermemo and other flash-card program
59 documentations.
62 - Check out how python doc is done - how do they generate their documentation??
64 - Write documentation in LaTeX and then have it exported to other formats:
65 html
66 chm
67 man
68 texinfo
71 - doc:
72 all technical comments: how things are done : should be written directly as
73 comments in the files
74 doc-strings should include requirements
76 }}}
78 --------------------------------------
79 DESIGN {{{
80 --------------------------------------
82 - make a mindmap
83 make a mindmap of mentor/probe requirements and design
84 and gui mockup of mentor
85 and uml diagrams of mentor to get a general overview first
86 then go top-down programming -> making stubs for all the procedures and
87 functions and listing problems to solve --> with comments
88 solve the problems aside (in special code branch?)
89 THEN start bottom up -> writing code for the simplest use-cases but in the
90 described framework
93 - excel table for class comparison in probe
94 make excel table with all the class and features they have - how they compare,
95 how can I generalize them ??!
97 - code style:
98 make all Qt upperCaseStyle so that I do not get confused
99 (all except for the general utils module)
104 --------------------------------------
105 VIM {{{
106 --------------------------------------
108 - to get round problem of unescaped chars in highligting :
110 - dynamic escaping
111 \command may be ignored if not one of the known commands
112  but what about those defined by myself ??
114 - improve highlighting
116 - Vim useful functions from mentor
117 defun mentor-create-item-from-line ()
118 defun mentor-enclose-region-with (region text)
119 defun mentor-convert-to-section ()
120 defun mentor-convert-to-question ()
121 defun mentor-convert-to-PrbCloze ()
122 (global-set-key [f6] 'mentor-create-item-from-line)
125 - vim syntax: subsection in special color ??
127 - vim syntax folding for subsection in ftpplugin
128 - read about syntax folding
131 - dynamically creating highlighting commands
132 may highlighted only PrbCommands which are really in probe:
133 and dynamically create them if some macros are used
134 how it will be possible ?
136 - maybe double percentage instead of single percentage for comments?
137  %% this comments may be in slight different color
138  %% this will be double percentage and only on beginning of line
139  %% to avoid conflicts
140  %% MORE DARKER GRAY ? as I want to discern between text and the rest
145 --------------------------------------
146 GUI {{{
147 --------------------------------------
149 - drill window  - asking for selected items
152 - different views in a docking interface:
153   list view : simple and extended
154   card view : question + hint, answer + hint
155   info view: score, next review, last review reviews average score simple and
156   detailed , category? tags?
157   source view: with xml or (q and a) view on current item
160 - import/export from q & a file / xml file (in Mentor format) in SuperMemo
161 format  in KDE words format ??
164 - advanced grid view for managing : this should be instead of the tree that is
165 used in SuperMemo
166 the grid should be killer feature allowing for very easy access to items
167  with the power of excel but easiness of gmail / web interface
168  maybe button with select all and action to perform on them
169  but on
171 it should combine the best features on known grids:
172 excel, plsql dev, sqlnav, tytan, devexpress, lookupedit , koffice spreadsheet,
173 thunderbird mails view
174 program :
175  in place editing
176  sql query on demand
177  search text
178  filtering by drop down menus
179  filtering by advanced queries (not and like)
180  sorting on different columns
181  in-place editing
182  inserting items on specific position (display order)
183  multiselection of items
184  filtering by specific tag
185  ability to show/hide some columns and move columns
186  adjustable cell height with auto-wrapping of contents
187  right-click menu to run operation on set of elements (e.g. switch to pending ,
188  or assign tag/edit tags for the items)
189  different color of fields, depending on their status
190  selecting the whole row but editing separate cells possibility
193 - see the spreadsheet, charts etc examples. and model-views examples and code them in python first
194 to see how a grid example could be implemented
195 tip: maybe send spreadsheet demo to pyqt-dev to see if they are interested in
196 the example
198 - grid columns:
199   id question answer qhint ahint example score
200    all columns possible in the view
202 : with sql interface for querying database
203  list like excel+plsqldev table for viewing words  with filtering by tag category sorting on different
204   filtering like in lookup panel
205   ability to hide some columns if necessary
207 - make it run with debug version of Qt library
208  and give it full debug log so that I see what is actually going on !
209  see all signals coming out and caught by slots
212 -  switch to these later when I have function for automatic inserting in
213  from clause
214  from PyQt4.QtCore import SIGNAL, SLOT
215  from PyQt4.QtGui import QWidget, QPushButton, QApplication, QMainWindow, \
216       QKeySequence, QAction, QIcon, qApp
219 - maximally open for extensions:
220   add python scripting engine
221   in windows add ole automation server ??
222    in kde kobject for scripting
224 - add labels to views : tree view , list view etc.
226 - tags instead of ategories
228 - automatically upgrading databases if found from older versions
230 - checking databases , fixing them as well
232 - data will be stored in sqlite database each record will be an xml blob plus
233 parameters on the learning process
234   and original file
235   e.g. <question> </question>
236         <answer>  <hint>yes!</hint></answer>
237     or <text>  <cloze> </cloze>  </text>
238     should the xml format know about the cloze ?
239 perhaps it's better to store them in my custom database format and translate it
240 to xml on demand? or allow the user to edit the xml ?
243 - what about encoding issues ??
244   it should be all utf-8 or ascii ?
245   each item separate encoding or the same encoding for the whole database ??
248 - Mentor stages:
249   normal text  --> probe --preformat
250   prb text --> vim macros to markup quickly --> probe --export (default) --> qa
251   or xml file
252   import to supermemo/mentor
254 - Gui - random key to press  before going to next to prevent mindless swapping
255 Mentor -
256 before answer press key with first letter (or two keys)
257 to disable mindless swapping
259 - Use word-wrap when displaying items
260 word-wrap w testing?
263 - Graphical/rtf version of incremental reading program
264  what I do in vim should be possible to be done in gui as well - for people who
265  don't have access to vim
266  something like incremental reading in supermemo but done in my way
268 - card view: switching between source (xml view) and render view in tabs
269 editing xml / rtf but via styles
270 word editing but with focus on styles so that I can do it also automatically
271 using xml transformations
272 but don't forget about novice users: have to somehow combine the
273 power/extensibility of html with easy editing of the units
275 - xml template:
276 <question> </question> <answer> </answer>
277  <prefix> </peg> <example>
278  <bold> <color 12> <emphasis>
280 - lazyshow on dialogs exec as well - right now only works for windows
285 --------------------------------------
286 INSTALL {{{
287 --------------------------------------
288 - install script NSIS for installation on different windows machines
290 - script setup.py for building on linux, windows, mac etc
291   and building to python
293 - Building and testing automatically
294 The build script should also perform a set of tests after making the build
295 to make sure the build is correct
296 all the test suite should be run
298 - move this to build script
299  Run pyrcc4 mentor.qrc to mentor_rc.py file
300  but only if file mentor_rc.pyc does not exist or is older than mentor.qrc
302 - add time-sensitive building by default:
303 by default action build will not touch files like mentor.pdf or mentor_rc.pyc
304 if they have not been touched after the last build
305    but also add option to do a full rebuild
307 - additional build information:
308 build info should include version numbers (detailed) of
309 operation system
310 Python Qt PyQt libraries
311 free memory
312 database used ?
313 and what other info?? check this out
315 Building/crash
316 how to send this info?
317 Have parameter --systeminfo or button system info in about box
318 User should paste this information which sho
320 source sha1 GIT full key this from git
321 operating system how this one ?? ?
322 qt version  qt location
323 pyqt version    ??
324 python version
326 In [2]: QLibraryInfo.buildKey()
327 In [6]: str(QLibraryInfo.buildKey())
328 In [7]: str(QLibraryInfo.location(QLibraryInfo.PrefixPath))
329 Out[7]: 'C:\\Programs\\Qt'
330 In [8]: str(QSysInfo.WinVersion)
331 Out[9]: "<class 'PyQt4.QtCore.WinVersion'>"
332 In [10]: print QSysInfo.WinVersion == QSysInfo.WV_2000
333 False
335 - problem: build date is not always the same ase git commit date
336 maybe I should extract the date from the source as well? git show last commit
337 date and build key from that ?
338 or maybe embed 7 digits SHA1 instead?
341 - different building and testing automation
342  light testing
343   have a test repo and a script which will pull from draft/devel  ,
344   rename misc and   other directories and libraries
345   build the solution
346   run exe tests for both mentor and probe
347   and run mentor gui
349  more thorough testing :
350   have ubuntu  and windowsxp  clean vmware images
351    but with needed libraries installed
353  they will also pull from my draft repo and build it and test it on clean
354    system
358 --------------------------------------
359 PROBE {{{
360 --------------------------------------
362 - no question mark at the end of the question
365 - enable/disable markup easily
366   set unset options
367   x
369 - different variants of column questions
370 in 3 columns
371 in 2 columns
372 sep by TABs , sep by many spaces
374 - how to exclude
375 some when i column view
376 % ^\  exclude\{   }   ^{ }
377 % This excludes the whole item from column view
378 \begin{verbatim}
379 aaaa
380 ^\{bbbb
381 cccc}
382 ddddd
383 eeee
384 ^{ffff}
386 #{here some task }
387 \end{verbatim}
390 - remember I have to design more generally (with full commands and all)
391  and enable some features as shortcuts and aliases -> see perl where some stuff
392  can be done more and less verbosely
393  commands may be abbreviated.
395 - options may be global in preamble and regarding the whole file
396   and local - regarding only some subset of file
397   e.g.
398 \begin{verbatim}
399 \option{swap}
400    ...
401 or \swap{...}
402 \end{verbatim}
404 - breaker class -> make it break by comma instead of / character?
405   when i don't want comma then i would need to escape it with backslash
406 \begin{verbatim}
407 this is, some text, to be more sure
408 instead of
409 this is/ some text/ to be more sure
410 \end{verbatim}
412 - what shortcuts to use:
413 \begin{verbatim}
414 | |  _ _    for cloze \cloze{
415 < > ^ ^     for set  \set{}
416 // //  /  /    for breaker \br{}
417 ,, ,,  ,  ,    for breaker2 \br2{}
418 $ $            for verbatim code
419 <- ->   TAB    for tabbed breaks
422 !! !!  hint in answer
423 ?? ?? hin in question
424 :: ::
425 ;; ;;
426 <<   >>
427 \end{verbatim}
428 but make them work only in selected region so I don't get many false positives.
432 - note that it's
433 \begin{verbatim}
434 \command[]{ }  and not \command{} []
435 \end{verbatim}
437 and \\ is used to break line Like \newline
438 and \ is used to join (but it must be at the end of line - no whitespace after
439 it!)
443 - CLASSES:
444   set cloze breaked
445   are divided by:
446 -->   what selects from text:
447       all, marked, parts, words, sentences, tabbed
448 -->  when item is broken
449        on enter
450        on dot sentence
451 --> what is ignored
452 --> what selected
453 --> how breaked , formatted
454 --> formatted or verbatim , how formatted
455 --> how to extract
456     ----------- -->
457        --> -->
458 --> what to output:
459      e.g.. grapical outputs coordinates
462 - how to find in document my markup quickly
463  -> have a special vim function/command to grep all or to jump to next
465  -> have special key to unerline \bs pu underline
467 --> hints
468   hint in question \bs\ ? what are they
469   hint in answer  \bs\ ! they are what
472 --> different classes:
473   \bs\ sp break on paragraph
474   \bs ss break on sequence
475   \bs sa break on all
479 - beginning and ending statements vs. one statements
480 many statements do not need an ending statement e.g. when \begin
481 encounters next \begin then it switches to it automatically without any need
482 for \end - might note in documentation that it is optional
483 IS IT? this maybe in unsafe  warnings mode
484 maybe use 2 forms instead : \begin{set} and \end{set}  or \set{     }
488 - lisp markup - special way to mark hashstrings??  learn them in sm , author
489   many documents in them, convert play with them, collect info , read community
490   stuff --
493 - make vim syntax file for the probe language .prb files basing on LaTeX
494 vim syntax sources.
496 - all command-line options should be overridable in source -> like verbose mode and debug ??
499 - using command to a set of words:
500 \begin{verbatim}
501 this is \ignore{craze idea} said adam ~{follow me}
502 \end{verbatim}
505 - the special chars like \~ should have their counterparts  \ignore
507 - options should have default values e.g. \lang python  or lang=python
511 - both forms are possibe either:
512 \begin{verbatim}
513 \begin{signature}
514 \signature
515 and for ending:
516 \end{signature}
517 \endsignature
518 \end{verbatim}
522 - what about other chars:
523 # $ % ^ ' "
526 - should I use Markdown/Textile language to set formatting in text
527   colors emphasises statements ?
531 - Output template:
532 should I export it as a question answer or as a xml
533 this should be in command line options but in the file as well
534 ./probe --output=xml sample.prb
535 ./probe --output=qa sample.prb
537 \output[template=qa]
540 - corpus: command line possibility of controling corpus behaviour
541  it may use different levels of popularity first 1000 , second 1000 etc.
542  does not use any words in first 7000 thousands
545 - corpus: automatic caching of corpus on start
546  automatically cache first 200-300 on enter  and then cache on each read
547  also command cache to cache
550 - corpus: controlling corpus inside file
551  \ignored[level=7,cache=2]
552  the first 2 thousands should be in cache ??
555 - ast options improvements:
556 Parseoption restrictions like in optparse. 14:18 ([[2007.10.11#4]])
557 Parseoption restrictions like in optparse.
560 - ast options
561 also positional and default
562 options so I can write something like this \title[good] or \title[good, ok,
563 best] or \title[good, type=ok] options should work as keyword arguments params:
564 position, name, value
567 - ast options
568 exclusive options - some option may not exist at the same time .e.g include ,
569 exclude - must be able to specify that
572 - write proper error handling
573 Proper error handling would require writing a full-blown parser instead of using 00:16 ([[2007.10.24#1]])
574 quick-regexp
575 will it make probe much slower ??
578 - how to discern between parsing and generating
579   right now processor class generates all parsed by custom parser classes?
580   ParseObject and GenerateObject
581   different algorithms used for parsing
582   and different algorithms used for generating items.
585 - IDEA on ParseClassCommand:
586 put it to code
587 ParseClassCommand
588 will be a general class with complex parsing algorithm allowing for many
589 tweaks by using virtual functions
590 the tweaks can be used by subclasses
591  this will be a complex algorithms
592   with many options : markers, switches, other functions
593     which may be set by subclass if they want to overrid
595   in another case it may select to override the whole parse_content function.
597 - Formats for output:
598 testing in formats:
604 or html like (instead of my . language )
605 <q>  <a>
607 <q bimode>
608 procedure dosomething
613 - markups for format:
614   \emph \bold  \italic ??
615   maybe do it markdown format '' '' for light emphasis  ''' ''' for strong
616   emphasis??
619 - Markups ^ and _
620 Right now they are superceded by || and // groups
621 Is is to stay so?
622 Compromise: too less markup makes the text cluttered
623 and too much makes more chars needing escaping
625 Shortcuts aka special chars
626 There will be a set of special chars which will modify the meaning and
627 give some clues for extraction purpose.
630 ^   ignored word
631 this means the word will not be included in repetitions
632 ~  joined words
633 ?   words to be selected
635 General rule for character ? and ^:
636 their appearance in text determines whether I should rather exclude or
637 include words: they are also mutually exclusive - this can be checked as
638 a test.
640 Consider these cases:
641 Poland was raised in ?996.
644 Poland ^was ^raised ^in 996
646 The first one will ask for 996 only. The second will ask for Poland and
647 996 as they are not excluded.
648 By default I ask for all words (unless the \common directive
651 - General idea about Mentor Probe
652 Mentor Probe is to SuperMemo incremental reading like Latex is to word 0
653 Mentor Probe is to SuperMemo incremental reading like Latex is to word
654 on the other hand it may be possible to develop wysiwyg instead of vim only in
655 future ??
658 - use of markup _ ??
659  _maybe_  _this would be better_ _than_ _this_ 13:56 ([[2007.10.16#2]])
660 _maybe_  _this would be better_ _than_ _this_
662 _maybe this_would_be_better[?what][!clue]
663  _than[abbrev] _this
664  hinting at the end
666 - Maybe use lightweight markup to achives formatting for questions?
669 - corpus: pack/compress corpus tables
672 - probe import should use other tools antiword, language parsing tools , db
673 connection tools etc to extract necessary information and present it in a
674 meaningfull way
676  probe import does the general preprocessing vim macros will do the rest and
677  last fixes are directly on the mentor database
680 - Sentence class: no need to escape ? ! outside | | groups
681 They should be treated as sentence separators .
682 Of course escaped \? and \! also should be treated as separators.
683 OR maybe probe --import should escape all of them before ???
684 BUT sometimes probe --import is not done !
687 - removing comments before distorts the line number and column number so this
688 is really a hack
690 - default class processing
691   make it dependant on the mode in which probe was run
692   In default mode all is treated as set class
693   If in strict mode all needs to be correct?
696 - Probe Bug:
697 \code1 class break probe
698 but not \abrakadabra
699 I think that's because it begins with \code ??
705 --------------------------------------
706 TESTING {{{
707 --------------------------------------
708 But I can try to do the minimum to start learning:
709 - touch typing rules
710 - vim program
711 - vim scripts
712 - python lang
713 - python libs
714 - qt classes and utils
719 --------------------------------------
720 MARKETING {{{
721 --------------------------------------
723 - info on site how users can contribute
724  filling bug reports, sending feedback and comments
725  getting and writing documentation
728 - publish to sites:
729 Linux: Freshmeat, KDE, PyQt
730 Python: python programs
731 KDE: Planet KDE programs , KDEApps
732 PyQt : On their Wiki
733 Wikipedia on learning on supermemo on programs python
734 Windows software apps: Tucows, Filezilla
735 Vim: Vim scripts : for Probe language
736 Learning sites:
738 - Productivity tips blog
739 Blog on Vim and Productivity and learning
740   and Mentor development on Blogger/Wordpress
743 - must gather community - see about supermemo and flashcard programs ,
744 advertise mentor on linux/windows software sites , various distros, python and
745 qt communities and learning communities
746 also have databases of different items and advertise them .e.g tell people
747 there is vim knowledge database for SuperMemo and Mentor
748 BTW Mentor should be able to import from SuperMemo
750 - Educational projects promotion:
751 Kdeedu Edubuntu Eduforge
752 get in touch with educational project and promote mentor there
754 - Take part in KDE project (triage bugs, make some easy fixes: to get to know
755 people and have placed my mentor software) -- KDE 4.0!!
760 --------------------------------------
761 GRAPHICS-MODE {{{
762 --------------------------------------
763 - Visio mode supermemo
764   graphic counterpart for emacs part
765 Visio instead of Vi
768 - 2006-04-18 13:31 folmert: Mentor graphics will have several incarnations:
769 0. in emacs quick testing (this more like text)
770 1. visio extended - for quick testing
771 2. supermemo light - a version of supermemo with ability to test my ideas
772 and quickly draw schemas and import bitmaps
773  and schedule for some time
774 3. in full supermemo session
777 - 2006-04-14 13:46 folmert: Mentor Graphics : at best do it as visio extension
778 the hidden surfaces might be as second layer - may be initially at bottom and
779 semitransparent
783 - Mentor.Graphics --
785 + full-screen mode
786 + bigger image
787 + transparent blinks
788 + testing capability -- all images and all blinks
789 only one spot is remembered
792 Learning Process Menu
794 Items List - Show For Tomorrow/For After Tomorrow/For Day
795 Sort By
796 Filter
797 all operations on maps showing in List
798 Show Leeches
800 Spots Layer
801 Show spots
802 Moving spots
803 automatically generating spots - ability to change them afterward
805 File - Create, Open, Print, Page settings, Print preview
806 Edit - Undo, Cut, Copy, Delete
807 View - Toolbars, Statusbar, Remarks, Diagram, Grids, Rulers, Define rules, Background
808 Map - Add, New, Delete, Duplicate, (without Goto First/Goto Last?)
809 Learn - 1. Outstanding, New, Final drill, Test current, Test all, Test selected
810 Tools - Import -- Probe plugin (seperate app), Copernic plugin
811 Help - Contents, Index, About
815 - Export to my graphic supermemo testing ground
816 MySupermemo
818 Graphics SuperMemo may be done as a extension to Visio SDK
819 with objects that will disappear ?? or better bitmap ??
820 it would be nice to have such access to supermemo that I can export and not
821 touch it anymore
828 --------------------------------------
829 RESEARCH {{{
830 --------------------------------------
831 - other repetitions programs:
832  SuperMemo (older versions too), Mnemosyne, FullRecall, Quisition
834 - other markups:
835  RTF, LaTeX, Markdown
836 LATEX, RTF, Markdown, Wiki, HTML, XML, CSS, SGML learn and author in all possible to
837 get as many input and ideas ass possible.
838 Also converting between them etc.
840 - documentation for other projects
841 See all big projects and doc how the doc is done professionally: python,
842 apache, ubuntu docbook etc. , ion uses some special - big opensource projects
843 what they use , latex resources etc.
846 - put mentor design in supermemo / mentor itself for better understanding
849 - research parsing for computer languages and markup languages
850 TODO see how other parsers (XML, HTML) are written
851 think about it , design generally then write some specific prototype
852 Learn LaTeX/TeX well before I begin (using old Mentor first maybe??)
855 - work with different python and not python parsing engines:
856 PyParsing, ANTLR and others
857 try to write my own (HTML, XML, Lisp, Python etc.)
859 - repetition scheduling algorithm
860 this will be based on:
861 Leitner method of repetitions
862 Artificial intelligence: Neural net, genetic algorithms?  - see mnemosyne ,
863 SuperMemo published method and Piotr Wozniak notes
864 common sense and my experience - repeating in increasing periods of time
867 - repetition parameters/factors
868   next repetition period length * factor
869   randomness spread * factor
870   database difficulty factor
871   user skills factor
872   how much increase the initial jump:
873     +5*1.2   +7*.12
875 next repetition period lenght factor will be increased or decreased depending
876 on the notes given , history of learning etc.
878 perhaps have different algorithms to select next repetition and possibility to
879 switch between them
881 - write a simulation package which will show how the item behave in future with
882 different parameters
887 --------------------------------------
888 HOSTING {{{
889 --------------------------------------
890 Google Code Hosting for download/tickets/wiki
891 Repo.or.cz for Git code repository
892 Google Groups for mailing list
894 - ideas about website : how the menu should look like
897 - website ideas:
898 Home:
899 Welcome to Mentor
901 MENTOR is a tool for improving the learning process.
904 It can be used as a help in learning foreign languages , geography , science and
905 can be used everywhere, where there is a need to comprehend knowledge and
906 somehow memorize it and keep it in memory .
909 knowledge may be split into seperate items which can be memorized.
911 By learning process is meant extracting knowledge from written material,
912 processing it to more consumable form and then memorizing it and storing in
913 memory.
915 MENTOR helps by providing ways of extracting knowledge (by summarizing ) and
916 transforming it (emacs macros) to flashcards
918 MENU:
919 Home
920 News
921 Downloads
922 Faqs
923 Screenshots
924 Forum
925 Links
926 Search
927 Search personalization
932 --------------------------------------
933 WORKFLOW {{{
934 --------------------------------------
937 - have a draft tree for working on many branches on different stuff with quick
938 commits every now and then
939  and move back and forth between branches (pu - feature branches)
941 - have official tree to which I send patches and which is synchronized with
942   other
943   the patches are fully described so that I can later get info about the
944   project
951 # vi:tw=79 fo=qt sw=3 ts=6 fdm=marker