<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="http://blog.invenzzia.org/en/feed/rss2/xslt" ?><rss version="2.0"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:wfw="http://wellformedweb.org/CommentAPI/"
  xmlns:content="http://purl.org/rss/1.0/modules/content/"
  xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
  <title>Invenzzia... in English - Tag - documentation</title>
  <link>http://blog.invenzzia.org/en/</link>
  <atom:link href="http://blog.invenzzia.org/en/feed/tag/documentation/rss2" rel="self" type="application/rss+xml"/>
  <description></description>
  <language>en</language>
  <pubDate>Fri, 10 May 2013 13:58:34 +0100</pubDate>
  <copyright>Copyright &amp;copy; Invenzzia</copyright>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>Dotclear</generator>
  
    
  <item>
    <title>Open Power Template 2.1 almost finished</title>
    <link>http://blog.invenzzia.org/en/post/Open-Power-Template-2.1-almost-finished</link>
    <guid isPermaLink="false">urn:md5:eba236b8bc1bf4232eb6cc3e5f80114d</guid>
    <pubDate>Mon, 01 Nov 2010 20:06:00 +0100</pubDate>
    <dc:creator>Zyx</dc:creator>
        <category>Open Power Template</category>
        <category>development</category><category>documentation</category><category>OPT2</category><category>releases</category>    
    <description>&lt;p&gt;Works on Open Power Template 2.1, the greatly extended successor of OPT 2.0 are almost finished. I know it was a long year, but finally we reach a point where we can plan our next steps and think, what to do next. The current package will be soon packed as OPT 2.1-BETA2, and the remaining functionality will appear as a part of the first Release Candidate.&lt;/p&gt;    &lt;h2&gt;What is not finished yet?&lt;/h2&gt;


&lt;p&gt;Basically speaking, there are three things left to do:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Implement &lt;code&gt;Opt_Format_NestedTree&lt;/code&gt; data format for &lt;code&gt;opt:tree&lt;/code&gt; instruction which will allow to push a nested array in order to render a valid HTML tree.&lt;/li&gt;
&lt;li&gt;Finish the migration module which will allow to run OPT 2.0 templates and convert them on-the-fly to the new release.&lt;/li&gt;
&lt;li&gt;Finish the support for &lt;code&gt;opt:append&lt;/code&gt; and &lt;code&gt;opt:prepend&lt;/code&gt; tags in &lt;code&gt;opt:switch&lt;/code&gt; instruction in order to make possible to add dynamic attributes in this way.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The list of implemented features and changes is really impressive. Just a quick look at the code repositories of 2.0 and 2.1 branch can tell us that OPT 2.1 is another revolution, with many clean-ups and improvements.&lt;/p&gt;


&lt;h2&gt;Further release process&lt;/h2&gt;


&lt;p&gt;Unfortunately, in order to see a stable release of OPT 2.1, we still need some time. Although I test the new branch in different situations and environments, including real projects, the debugging process is not finished yet. The test code coverage is not as high as I'd like and it needs to change. Another critical issue is the new documentation, where the progress is very low.&lt;/p&gt;


&lt;h2&gt;Plans&lt;/h2&gt;


&lt;p&gt;I'll do my best to release OPT 2.1 stable before February 2010, because that month I expect to start works on Open Power Template 3. Lots of things have changed in the PHP world last time, especially where it comes to the frameworks and the application design theory. Open Power Libs 2 was a pioneer in several library design concepts, such as universal autoloader or the need for a small, unified core, but its internal structure and design does not meet current code quality standards. Open Power Template 2 suffers from the same issue. Other development teams from such projects, as Doctrine and Symfony, have already started works on improving them, and so must we.&lt;/p&gt;


&lt;p&gt;So, what is the exact plan for Open Power Template and Open Power Libs 3? The overall project philosophy will remain the same, which means that if you already know how to use OPT 2.x, you should not have any problems with 3.x. I plan not to make significant changes to the template language, because it has already been polished in the current releases. We will still use good, old XML syntax, sections, switches, components, etc. The only key goal is to make the language fully secure. It means that from the template level, it should not be possible to cause neither PHP fatal, parse error nor access any forbidden function and class.&lt;/p&gt;


&lt;p&gt;The main revolution will take place in the library programming interface. The OPL core will use some third party components:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Symfony 2 Event Dispatcher&lt;/li&gt;
&lt;li&gt;Symfony 2 Console&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Furthermore, there will be fewer components:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the universal autoloader,&lt;/li&gt;
&lt;li&gt;configuration object,&lt;/li&gt;
&lt;li&gt;error handler,&lt;/li&gt;
&lt;li&gt;debugging interface.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Open Power Template 3 public API will be more compact. I very like the job the guys from Doctrine did in Doctrine 2 project and I'd like to do the same with my library. The API should be simple and intuitive, there should be no magic, and the dependency injection should be done explicitely. The registry and the static stuff will be thrown away.&lt;/p&gt;


&lt;p&gt;I'd also like to make the compiler itself completely independent from the standard public API which should allow to use it without it. Its API will be also polished, especially when it comes to data formats, instructions and extending. Here, the following things are going to be implemented:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;data formats will be composed of simple PHP interfaces, which should simplify the entire API and ease the data format building.&lt;/li&gt;
&lt;li&gt;the compiler will make a good use of the reflection mechanism to find out what a particular class provides.&lt;/li&gt;
&lt;li&gt;function packages will simplify installing new template function sets.&lt;/li&gt;
&lt;li&gt;the compiler internals will be separated from the concrete template language implementation - all the languages, including the default one, will be installed by registering a new language class object in the compiler.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The expected result is simple: the most advanced, the most powerful, the fastest, the one, where writing templates is also the fastest, and the greatest template engine in the world. Ever.&lt;/p&gt;</description>
    
    
    
          <comments>http://blog.invenzzia.org/en/post/Open-Power-Template-2.1-almost-finished#comment-form</comments>
      <wfw:comment>http://blog.invenzzia.org/en/post/Open-Power-Template-2.1-almost-finished#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.invenzzia.org/en/feed/atom/comments/71</wfw:commentRss>
      </item>
    
  <item>
    <title>Invenzzia Summary #5</title>
    <link>http://blog.invenzzia.org/en/post/Invenzzia-Summary-5</link>
    <guid isPermaLink="false">urn:md5:9501eb1b8405bb1cf988d05738cef0bf</guid>
    <pubDate>Wed, 08 Jul 2009 13:28:00 +0200</pubDate>
    <dc:creator>Zyx</dc:creator>
        <category>Summaries</category>
        <category>development</category><category>documentation</category><category>OPF</category><category>OPT2</category><category>releases</category><category>summary</category><category>typefriendly</category>    
    <description>&lt;p&gt;Welcome back after a short break. Although there were no summaries in the last month, Invenzzia projects are still active and maintained. We have released two new versions in June, and now we are reaching the moment of releasing... the first stable version of Open Power Template 2! Stay with us and read more about the progress and the current status of the projects.&lt;/p&gt;    &lt;h2&gt;Open Power Template 2&lt;/h2&gt;


&lt;p&gt;The project is actually finished and we are expecting to deal with all the formalities in the next few days. There is only one chapter missing in the user documentation and if you would like to check the code right now, you can find it on our Subversion repository. So, what would take so long? The answer is simple: the tutorials. Since April, I have been working on a huge article entitled &quot;A photogallery with Doctrine and Open Power Template 2.0&quot; showing the process of writing a web gallery using the libraries mentioned in the title. Furthermore, it is going to be available in two language versions: Polish and English. We have to finish the translation and rewrite it into Markdown, so that it could be published on Invenzzia. Anyway, the development process is over and now we can focus on implementing the new features and the new libraries.&lt;/p&gt;


&lt;h2&gt;TypeFriendly 0.1.2&lt;/h2&gt;


&lt;p&gt;A couple of weeks ago, we released TypeFriendly 0.1.2 with many new features, such as appendix support and tag manager. Since then, there were new commits and new works-in-progress. eXtreme improves the layout of the chapter headers, there are expected new tags and fixed some minor bugs.&lt;/p&gt;


&lt;h2&gt;What's next?&lt;/h2&gt;


&lt;p&gt;I plan to finish the caching system for OPT that will be distributed with Open Power Classes, and start developing the source code of long-awaited Open Power Forms. We have an idea, what we want to get and how to achieve the goals.&lt;/p&gt;</description>
    
    
    
          <comments>http://blog.invenzzia.org/en/post/Invenzzia-Summary-5#comment-form</comments>
      <wfw:comment>http://blog.invenzzia.org/en/post/Invenzzia-Summary-5#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.invenzzia.org/en/feed/atom/comments/61</wfw:commentRss>
      </item>
    
  <item>
    <title>Wiki.invenzzia.org</title>
    <link>http://blog.invenzzia.org/en/post/Wiki.invenzzia.org</link>
    <guid isPermaLink="false">urn:md5:fc16afd3e7c72aa5ddd88cce42c52ff5</guid>
    <pubDate>Sun, 08 Feb 2009 17:06:00 +0100</pubDate>
    <dc:creator>Zyx</dc:creator>
        <category>Invenzzia</category>
        <category>documentation</category><category>invenzzia</category><category>website</category><category>wiki</category>    
    <description>    &lt;p&gt;Our new wiki is available on-line now. I've been working for last few days to customize it and add the necessary extra functionality. However, there is still a lot to do. As you can notice, there must be added many technical templates, help pages and some navigation structure. I hope I'll manage to deal with it in the nearest days. The wiki is intended to keep community-driven materials on our open-source projects, as well as extra information on add-ons, such as framework ports. Feel free to share your solutions with everyone - you need only the discussion board account and some knowledge on MediaWiki syntax.&lt;/p&gt;</description>
    
    
    
          <comments>http://blog.invenzzia.org/en/post/Wiki.invenzzia.org#comment-form</comments>
      <wfw:comment>http://blog.invenzzia.org/en/post/Wiki.invenzzia.org#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.invenzzia.org/en/feed/atom/comments/45</wfw:commentRss>
      </item>
    
  <item>
    <title>New days for international Invenzzia</title>
    <link>http://blog.invenzzia.org/en/post/New-days-for-international-Invenzzia</link>
    <guid isPermaLink="false">urn:md5:ac2e6f4900b27ed521c2b203c2f2734a</guid>
    <pubDate>Sat, 20 Sep 2008 17:31:00 +0200</pubDate>
    <dc:creator>Zyx</dc:creator>
        <category>Invenzzia</category>
        <category>documentation</category><category>invenzzia</category><category>website</category>    
    <description>&lt;p&gt;Recently we found that developing Invenzzia projects in bilingual way was a big mistake. As you can probably see, the result is that for example OPL is now closed for programmers that do not live and work in Poland, even if it is a quite nice country with beautiful language. Since now, it is going to change. We understand that English language simply gives us more profits and we want to correct our mistakes. So, what changes are expected?&lt;/p&gt;    &lt;ol&gt;
&lt;li&gt;The documentation for the most complete development project, Open Power Template, is still written mostly in Polish. The translation is one of our goals.&lt;/li&gt;
&lt;li&gt;The news, articles, etc. will be published in English first.&lt;/li&gt;
&lt;li&gt;The English forums will we promoted.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This will take some time, as we have also our private lifes and other things to do. However, please give us some time and be patient. We are not afraid of foreign users and we think we can deal with it.&lt;/p&gt;</description>
    
    
    
          <comments>http://blog.invenzzia.org/en/post/New-days-for-international-Invenzzia#comment-form</comments>
      <wfw:comment>http://blog.invenzzia.org/en/post/New-days-for-international-Invenzzia#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.invenzzia.org/en/feed/atom/comments/37</wfw:commentRss>
      </item>
    
  <item>
    <title>TypeFriendly</title>
    <link>http://blog.invenzzia.org/en/post/TypeFriendly</link>
    <guid isPermaLink="false">urn:md5:a04db63a57fe76ccfd6f3a2a2c527918</guid>
    <pubDate>Wed, 02 Jul 2008 21:38:00 +0200</pubDate>
    <dc:creator>Zyx</dc:creator>
        <category>TypeFriendly</category>
        <category>development</category><category>documentation</category><category>typefriendly</category>    
    <description>&lt;p&gt;Together with eXtreme, we work hard to make the first release available as soon as possible and we are quite close now. This is a perfect opportunity to tell something more about this project, which should be appreciated by those programmers who write their own scripts and libraries and look for a smart tool to make a documentation. The idea to write TypeFriendly was born in my head after I failed to add some necessary things to the XSLT sheets for DocBook. The PHP manual shows, what could be done with it (syntax coloring, lots of different formats, enormous amount of tags), but don't become too happy too fast. To achieve similar effects, we need weeks of coding and we must also fight against the portability. In fact, I'd rather use those weeks to write something more useful and friendly.&lt;/p&gt;    &lt;p&gt;So, TypeFriendly is a documentation writing tool, but it works differently than for example phpDocumentor which scans the source code of your project and makes a reference list of all classes and functions. Here, we write all the chapters and put them in the required order on our own, like in DocBook. However, in this place the similarities end, because TF already contains everything we need. Moreover, it was designed to be intuitive and easy to learn.&lt;/p&gt;


&lt;p&gt;Features:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;In TF, we write our manual in standard text files using the Markdown syntax. We can put some extra information with tags placed at the beginning of the file. They allow us to define a title, version information or &quot;See also&quot; section.&lt;/li&gt;
&lt;li&gt;TF automatically sorts our files and connects them into bigger chapters, basing on their file names. By default, all the content is sorted alphabetically, but we can easily change it for all the files we need. We just create an additional file with &quot;sorting hints&quot;, where we write the required order.&lt;/li&gt;
&lt;li&gt;There is a built-in syntax highlighting option.&lt;/li&gt;
&lt;li&gt;TF generates all the navigation and table of contents.&lt;/li&gt;
&lt;li&gt;TF is designed to create a multilingual documentation. Apart from storing many versions of the same file and interface texts, it contains a simple tool to detect whether the &quot;derived language versions&quot; are up-to-date.&lt;/li&gt;
&lt;li&gt;TF allows to generate the XHTML version very quickly, on a single page, as well as on many. We are also creating a special format for importing the manual to the database (to publish it online and for example, to add user comments).&lt;/li&gt;
&lt;li&gt;TF packs your manual by default in the nice, green layout.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Although there haven't been any release so far, you can always connect to our new SVN and download the code from there. The link to the &lt;em&gt;checkout&lt;/em&gt; commands is: &lt;em&gt;http://svn.invenzzia.org/svn/typefriendly/trunk/&lt;/em&gt; - we encourage you to test the script now. In the repository, there is a README file and a nearly finished Polish version of the TF manual. But don't worry. The first release will be available with the English version, too. It's much shorter than OPL manual, and nice to translate :).&lt;/p&gt;


&lt;p&gt;Now, I think it's a good idea to show an example. The first one would be one of the files from OPT template engine manual that we develop, too:&lt;/p&gt;

&lt;pre&gt;
Title: optNode class
ShortTitle: optNode
Status: abstract
Extends: library.optcodebuffer
ExtendedBy:
 - library.optscannable
 - library.optcharacterdata
 - library.optexpression

----
An abstract XML node class. It provides the basic support for the most important features, such as type and parent.

Class fields
------------
All the fields are protected.

 Name          | Type      | Description
---------------|-----------|---------------------------------------
 $type         | Integer   | Numerical type identifier
 $parent       | optNode   | Node parent

Available type identifiers:

1. `OPT_CDATA_NODE` - `optCharacterData`
2. `OPT_TEXT_NODE` - `optText`
3. `OPT_EXPRESSION_NODE` - `optExpression`
4. `OPT_ELEMENT_NODE` - `optElement`
5. `OPT_ROOT_NODE` - `optRoot`
&lt;/pre&gt;


&lt;p&gt;At the beginning, we have a header with tags. There we define the exact title, and in this case also the dependencies between the PHP classes. Notice that we refer to the other classes by writing the identifier of the chapter, where they are described. Of course, there are additional tag versions, where we can write the class names directly, for example if we inherit from some PHP built-in class. There are more available tags. Let's say we want to make a &quot;See also&quot; section:&lt;/p&gt;

&lt;pre&gt;
SeeAlso:
 - chapter.text1
 - chapter.text2
 - chapter.text3
&lt;/pre&gt;


&lt;p&gt;Once the tag list finishes, we begin the exact content in the &lt;a href=&quot;http://daringfireball.net/projects/markdown/&quot; hreflang=&quot;pl&quot;&gt;Markdown&lt;/a&gt; format. The author designed it basing on the formatting used in text files and e-mails (it can be said that he wrote a parser for a syntax that self-evolved :)). This means that the source text is really clean and easy to read. In fact, it is just a bit lesser comfortable than a parsed one. The problem is, if someone is accustomed to some wiki syntax, because MD not always works in this way (take a look at the table). But it is quite easy to switch. We use Markdown even on our website and I must say that it is a very convienient tool. I'm sure you'll find it in more Invenzzia products. There is only one big shortcoming - the only available output is XHTML. For now, you have to forget about LaTeX and the rest, but I can assure you that we plan to add it, too.&lt;/p&gt;


&lt;p&gt;The most frustrating problem while writing a manual is navigation. The links &quot;Previous&quot;, &quot;Next&quot;, &quot;Up&quot; are added by TypeFriendly, we create the &quot;See also&quot; section by adding a tag, but what about clickable function and class names? I thought about it a bit and I invended a brilliant and simple idea. We have an additional text file, where we define, what text points to what. For example, we write there that &lt;code&gt;`optClass::parse()`&lt;/code&gt; must always be a link to &lt;em&gt;library.optclass.parse&lt;/em&gt; and that's all. Unfortunately, we haven't hacked Markdown in this way so far and the first release will not contain it yet.&lt;/p&gt;


&lt;p&gt;TypeFriendly works in the operating system command line. We've tested it both on Linux and Windows and it works there without any problems. All we need is a PHP parser. Togethet with a simple syntax and built-in multilingual support, TF should encourage much more people to help in translations of your manuals, improving the base version and maybe even writing new outputs. Generating the XHTML version is really easy:&lt;/p&gt;

&lt;pre&gt;
php ./typefriendly.php -l en -o xhtml ./path/to/manual/
&lt;/pre&gt;


&lt;p&gt;Let's compare it to DocBook. The format itself is a bit longer, but relatively easy to learn. However, the conversion needs more tools. We must download the DTD, DocBook XSL Stylesheets and an XSTL parser. The choice is important, because fast and easy &lt;em&gt;xsltproc&lt;/em&gt; will not highlight your syntax in the examples. On the other hand, the Windows users are f@#$ off if the author decides to write half of the processing tools in Bash. We don't have to look such examples too far. Just take a look at the PHP manual. Guess, what is it written in? :)&lt;/p&gt;</description>
    
    
    
          <comments>http://blog.invenzzia.org/en/post/TypeFriendly#comment-form</comments>
      <wfw:comment>http://blog.invenzzia.org/en/post/TypeFriendly#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.invenzzia.org/en/feed/atom/comments/30</wfw:commentRss>
      </item>
    
</channel>
</rss>