<?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 - Summaries</title>
  <link>http://blog.invenzzia.org/en/</link>
  <atom:link href="http://blog.invenzzia.org/en/feed/category/Invenzzia/Summaries/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>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>Invenzzia Summary #4</title>
    <link>http://blog.invenzzia.org/en/post/Invenzzia-Summary-4</link>
    <guid isPermaLink="false">urn:md5:bb4c2b5f45fd27e6f647fdf4dcfa0b53</guid>
    <pubDate>Wed, 20 May 2009 15:04:00 +0200</pubDate>
    <dc:creator>Zyx</dc:creator>
        <category>Summaries</category>
        <category>community</category><category>development</category><category>OPC</category><category>OPT2</category><category>summary</category><category>typefriendly</category>    
    <description>&lt;p&gt;Welcome to the fourth episode of Invenzzia Summaries. The issues discussed today:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Incoming TypeFriendly 0.1.2 release&lt;/li&gt;
&lt;li&gt;Revised plans for 0.2 branch of TypeFriendly&lt;/li&gt;
&lt;li&gt;Open Power Classes&lt;/li&gt;
&lt;li&gt;Release plan for Open Power Template&lt;/li&gt;
&lt;/ol&gt;    &lt;h2&gt;Incoming TypeFriendly 0.1.2 release&lt;/h2&gt;


&lt;p&gt;Before the end of May 2009, Invenzzia is going to release TypeFriendly 0.1.2, a HTML documentation builder with Markdown syntax. It will contain some new features and improvements that can be currently found in the SVN repository:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;New tag manager that validates the contents and use of the tags in the chapters.&lt;/li&gt;
&lt;li&gt;Support for creating appendices added.&lt;/li&gt;
&lt;li&gt;New tags:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;MultiExtends&lt;/code&gt; - specifying the base classes for languages with multiple inheritance&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Throws&lt;/code&gt; - thrown exceptions.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Construct&lt;/code&gt; - specifying the type of described programming construct (classes, interfaces etc.)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Type&lt;/code&gt; - specifying the item type&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Arguments&lt;/code&gt; - specifying and describing the function arguments&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Returns&lt;/code&gt; - describing, what the function returns.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;VCSKeywords&lt;/code&gt; - a place for expanding SVN keywords that can be also optionally displayed in the output.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Appendix&lt;/code&gt; - support for appendices&lt;/li&gt;
&lt;li&gt;&lt;code&gt;FeatureInformation&lt;/code&gt; - allows to define a messages in the project configuration that may be later prepended to the chapters.&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Improved command-line interface. The usage has been changed (please take a look at the details on wiki)&lt;/li&gt;
&lt;li&gt;New book creation wizard.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The release will also fix some bugs found in the previous release.&lt;/p&gt;


&lt;h2&gt;Plans for TypeFriendly 0.2&lt;/h2&gt;


&lt;p&gt;The release of TypeFriendly 0.2.0 has been moved further to the future (Summer 2009) due to the recent revision of the goals. The new TypeFriendly will consist of three parts:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;TypeFriendly library - the documentation management functionality will be collected into a library independent from the command-line interface code that can be used by the programmers to include the TypeFriendly documenting system features into their project.&lt;/li&gt;
&lt;li&gt;Command-line interface - build with TypeFriendly library will provide the features similar to the current TypeFriendly 0.1 release.&lt;/li&gt;
&lt;li&gt;Web interface - since 0.2.0, you will be able to install TypeFriendly web interface on your website to run a public documentation repository with automatic uploaders, user comments etc. This feature is addressed especially to the developer teams that wish to publish the on-line documentations for their products.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;TypeFriendly 0.2 will use Open Power Template both to render the static documents and in the web interface. The Markdown parser will be expanded with new features, such as mathematical formulas support. However, generating the documents in other formats than HTML will not be still possible, as we need to design our own Markdown parser and this is a longer-term goal.&lt;/p&gt;


&lt;h2&gt;Open Power Classes&lt;/h2&gt;


&lt;p&gt;The development of Open Power Classes slowly begins. eXtreme added a nice paginator class with OPT support, and I am working on the native caching system for OPT that will be available as &lt;code&gt;Opc_Cache&lt;/code&gt;. Open Power Classes is going to be a collection of small utility classes to support other libraries.&lt;/p&gt;


&lt;h2&gt;Release plan for Open Power Template&lt;/h2&gt;


&lt;p&gt;There will be another Release Candidate version, as there have been found some small, but annoying bugs in the parser. The first stable version will be released in the first half of June then.&lt;/p&gt;


&lt;h2&gt;They wrote about...&lt;/h2&gt;


&lt;p&gt;Last Saturday, a nice note about TypeFriendly was published by &lt;a href=&quot;http://blog.fedecarg.com/&quot; hreflang=&quot;en&quot;&gt;Federico Cargnelutti&lt;/a&gt; on his blog. We are looking forward to the next publications about Invenzzia projects.&lt;/p&gt;</description>
    
    
    
          <comments>http://blog.invenzzia.org/en/post/Invenzzia-Summary-4#comment-form</comments>
      <wfw:comment>http://blog.invenzzia.org/en/post/Invenzzia-Summary-4#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.invenzzia.org/en/feed/atom/comments/60</wfw:commentRss>
      </item>
    
  <item>
    <title>Invenzzia Summary #3</title>
    <link>http://blog.invenzzia.org/en/post/Invenzzia-Summary-3</link>
    <guid isPermaLink="false">urn:md5:24302500a68c997e196e73cafd446dd8</guid>
    <pubDate>Tue, 12 May 2009 10:38:00 +0200</pubDate>
    <dc:creator>Zyx</dc:creator>
        <category>Summaries</category>
        <category>development</category><category>OPL</category><category>OPT2</category><category>phar</category><category>summary</category><category>svn</category>    
    <description>&lt;p&gt;Welcome to the third episode of the Invenzzia Summaries. Today we will make a small celebration of the 100th revision to the OPL repository, as well as take a closer look at the recently implemented features, such as PHAR support, caching interface and the improved autoloader.&lt;/p&gt;    &lt;h2&gt;100th revision to the OPL repository&lt;/h2&gt;


&lt;p&gt;The Subversion repository has been used in OPL development for ages. However, for the first six months, Open Power Template 2 had to deal without any version control system due to the movement to the new group and abandoning the old network infrastructure. The first revision to the new repository was committed on 30th June 2008 and was relatively poor - in other words, nothing worked. In the last few months the use of the repository has significantly increased, providing the users the freshest versions of the source code and the documentation. Only in the last two weeks, there were 14 new revisions.&lt;/p&gt;


&lt;p&gt;The 100th commit has been made to the OPL library. It includes the newest improvements to the autoloader and the PHAR builder.&lt;/p&gt;


&lt;h2&gt;New OPL autoloader&lt;/h2&gt;


&lt;p&gt;Recently, I have been corresponding with Amadeusz Starzykiewcz about the OPL autoloader improvements. We decided that it would be the best to make it more a general-purpose autoloading tool that suits not only OPL needs, but other libraries (i.e. Doctrine and Zend Framework) as well. The result is visible as the improved API with many limitations removed. The most significant changes are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The autoloader can handle any library using the &lt;code&gt;Foo_Bar_Joe&lt;/code&gt; class naming style.&lt;/li&gt;
&lt;li&gt;The library-specific autoloading needs have been moved to the extra handler. Different libraries may use different handler or not use any.&lt;/li&gt;
&lt;li&gt;Improved library configuration with &lt;code&gt;addLibrary()&lt;/code&gt; method.&lt;/li&gt;
&lt;li&gt;Added performance-tuning methods.&lt;/li&gt;
&lt;li&gt;The special handler for PHAR-s is present.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;PHAR support&lt;/h2&gt;


&lt;p&gt;The full PHAR support has been one of the primary goals for a long time. However, for most of the time, there were other priorities that must have been done, but finally there appeared the PHAR builder in the repository. It allows to produce a fully-functional PHAR from any OPL library. The archive is self-configurable and contains only the executable code. The PHAR-s will be available to download from our website together with the ordinary distribution packages.&lt;/p&gt;


&lt;p&gt;The installation and usage of PHAR-s is described both in the OPT and OPL documentation. Please note that you need PHP 5.3 or PHP 5.2 with installed &lt;em&gt;PHAR&lt;/em&gt; extension in order to use it. As we have the PHAR support, we need to work on the performance a bit. The developers claim that PHAR-s can be as fast as the ordinary files, but our tests show that OPT and OPL archives work a bit slower than the classic solution. Fortunately, it is only a matter of time. This is a relatively new piece of technology and we have to do some research in order to determine, how to get more from it.&lt;/p&gt;</description>
    
    
    
          <comments>http://blog.invenzzia.org/en/post/Invenzzia-Summary-3#comment-form</comments>
      <wfw:comment>http://blog.invenzzia.org/en/post/Invenzzia-Summary-3#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.invenzzia.org/en/feed/atom/comments/57</wfw:commentRss>
      </item>
    
  <item>
    <title>Invenzzia Summary #2</title>
    <link>http://blog.invenzzia.org/en/post/Invenzzia-Summary-2</link>
    <guid isPermaLink="false">urn:md5:5cdc479eed2d88d4fd421c561dd3e474</guid>
    <pubDate>Tue, 28 Apr 2009 14:22:00 +0200</pubDate>
    <dc:creator>Zyx</dc:creator>
        <category>Summaries</category>
        <category>OPT2</category><category>releases</category><category>summary</category><category>tutorials</category><category>zend framework</category>    
    <description>&lt;p&gt;Invenzzia Summaries are the way to inform about what's going on in Invenzzia and its open-source projects. In the second episode we will talk about incoming OPT 2.0-RC1, OPL port for Zend Framework and the incoming first bigger practical tutorial about OPT.&lt;/p&gt;    &lt;h2&gt;OPT 2.0-RC1&lt;/h2&gt;


&lt;p&gt;The source code of OPT is almost ready to publish the Release Candidate 1. The remaining issues concern the user manual and the examples that should be included now in some form. In the last few days, the source code itself was enriched with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The unit tests for the template functions.&lt;/li&gt;
&lt;li&gt;The final version of the caching API.&lt;/li&gt;
&lt;li&gt;Fixes of the bugs found in the Beta3 release.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There is a small change in the previously accepted API. The &lt;code&gt;Opt_Component_Interface::setDatasource()&lt;/code&gt; method does not require the reference now which allows to read the data from objects and any other forms of expressions. We are sorry for this oversight and the necessity of updating your component APIs.&lt;/p&gt;


&lt;h2&gt;Recently fixed bugs&lt;/h2&gt;


&lt;p&gt;The bugs fixed in the last days include:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;(OPT) - bug #81 - The &lt;code&gt;opt:tree&lt;/code&gt; instruction did not perform the error checking, which could be used to produce the invalid output code if the &lt;code&gt;depth&lt;/code&gt; parameter was not set properly. Currently, the depth does not have to start with 0, and each raise above the initial depth is reported with an exception.&lt;/li&gt;
&lt;li&gt;(OPT) - bug #80 - The expression parser did not capture the single occurences of the apostrophes. The output code was not affected, so this was not a critical problem, but now the parser throws an exception in this situation.&lt;/li&gt;
&lt;li&gt;(OPT) - not reported - the defined components were generating invalid PHP code.&lt;/li&gt;
&lt;li&gt;(OPT) - not reported - the output systems used invalid constant indicating the XML mode.&lt;/li&gt;
&lt;li&gt;(TypeFriendly) - bug #79 - If the header section in the source document was not ended with a valid section delimiter, the script was going into the infinite loop.&lt;/li&gt;
&lt;li&gt;(ZFPort) - not reported - the components attempted to read the CSS classes for the invalid fields from wrong template variables.&lt;/li&gt;
&lt;li&gt;(ZFPort) - not reported - fixed the implementation of &lt;code&gt;url()&lt;/code&gt; template function.&lt;/li&gt;
&lt;li&gt;(ZFPort) - not reported - fixed the problem with Invenzzia_Controller_Response_Http and flushing the output buffer which caused to produce the &quot;1&quot; string in the output.&lt;/li&gt;
&lt;li&gt;(ZFPort) - not reported - some of the overloaded methods had wrong prototypes which caused E_STRICT messages.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;OPL port for Zend Framework&lt;/h2&gt;


&lt;p&gt;Recently, the port has been extended with the cache wrapper that allows to use the Zend_Cache component to cache the OPT views using the new OPT caching interface. Moreover, during April we have removed some annoying bugs in the code and tested the port in the real project. It works nice, but still needs some extra functionality. We are going to start the pagination support soon.&lt;/p&gt;


&lt;h2&gt;OPT tutorial&lt;/h2&gt;


&lt;p&gt;OPT provides the end users a lot of features, so nobody should be suprised that there is a need to write good practical tutorials for this library. In the last weeks, I have been working on the article entitled 'A photo gallery with Doctrine and OPT'. It shows the basic usage of Open Power Template and &lt;a href=&quot;http://www.doctrine-project.org/&quot; hreflang=&quot;en&quot;&gt;Doctrine&lt;/a&gt; library while writing a simple photo gallery script. The article will be available in two language versions: English and Polish and distributed under the Creative Commons license together with the accompanying, ready-to-run source code. Currently, the article is on the translation stage and will be published soon after the OPT 2.0-RC1 appearance.&lt;/p&gt;


&lt;h2&gt;Conclusion&lt;/h2&gt;


&lt;p&gt;We are very happy that the development stage of Open Power Template finally reaches the happy end. We know it was very long (a year and five months), but there was a lot of work to do. We are not going to stop here. Some of you may have probably noticed that the bugtacker is full of TODO tickets for the 2.1 branch which are going to bring even greater revolution in the template engine world.&lt;/p&gt;</description>
    
    
    
          <comments>http://blog.invenzzia.org/en/post/Invenzzia-Summary-2#comment-form</comments>
      <wfw:comment>http://blog.invenzzia.org/en/post/Invenzzia-Summary-2#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.invenzzia.org/en/feed/atom/comments/56</wfw:commentRss>
      </item>
    
  <item>
    <title>Invenzzia Summary #1</title>
    <link>http://blog.invenzzia.org/en/post/Invenzzia-Summary-1</link>
    <guid isPermaLink="false">urn:md5:82ee68fc853e2436ea629bcf9357c141</guid>
    <pubDate>Fri, 10 Apr 2009 22:02:00 +0200</pubDate>
    <dc:creator>Zyx</dc:creator>
        <category>Summaries</category>
        <category>community</category><category>invenzzia</category><category>OPC</category><category>OPF</category><category>OPT2</category><category>summary</category>    
    <description>&lt;p&gt;This is the first episode of the Invenzzia Summaries, a way to inform about various events and activities of Invenzzia Group and the development of the open-source projects. We will try to publish them regularly, but the exact period depends on the amount of issues worth concerning. In the first episode, we will talk about the last beta version of Open Power Template and the new projects that are going to use it.&lt;/p&gt;    &lt;h2&gt;Open Power Template 2,0-beta3&lt;/h2&gt;


&lt;p&gt;This is a pretty fresh news, because the packages have been published about an hour ago. The new and the last beta release contains lots of various bugfixes and improvements, such as new, more stable section implementation or data formats. Finally, the entity issue has been also solved once and for all. We have decided to use the XSLT model, where the entities are parsed on the server-side, and only the special XML characters appear as entities in the output. The end user will see no difference, especially if he/she uses Unicode. For those ones who need to display a particular entity in the output, there is a new function: &lt;code&gt;entity()&lt;/code&gt;. Please note that it must be used with the escaping turned off, for example:&lt;/p&gt;

&lt;pre&gt;
&amp;lt;p&amp;gt;The entity: {u:entity('Acute')}&amp;lt;/p&amp;gt;
&lt;/pre&gt;


&lt;p&gt;The new version can be downloaded from &lt;a href=&quot;http://www.invenzzia.org/en/download/opt/2-0/2-0-beta3&quot; hreflang=&quot;en&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;


&lt;h2&gt;The remaining issues in OPT.&lt;/h2&gt;


&lt;p&gt;One could ask, what needs to be checked in OPT before the first stable release will appear. Well, the library is already pretty stable now, after some recent bugfix parties and significant effort taken by the users in finding them. The only feature that has not been tested yet is the cache interface port. Furthermore, there are some unit tests still to write and the documentation to finish. Currently, the test suite consists of about 400 unit tests, but there are some areas that are poorly covered with them:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Template functions.&lt;/li&gt;
&lt;li&gt;The standard data formats.&lt;/li&gt;
&lt;li&gt;XML node manipulation API.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Now, just to finish the remaining jobs and release the first stable version.&lt;/p&gt;


&lt;h2&gt;Who uses OPT?&lt;/h2&gt;


&lt;p&gt;Recently, the development team of Extreme-Fusion CMS announced that Open Power Template 2 will be the primary template engine in the new version of their project, EF V. Extreme-Fusion is a quite popular Polish CMS, a fork of PHP-Fusion. The new version is going to be rewritten from scratch on the Kohana framework and OPT 2. Those who know Polish, may read the announcement on their &lt;a href=&quot;http://dev.extreme-fusion.pl/2009/03/29/o-nowym-ef-v-slow-kilka/&quot; hreflang=&quot;pl&quot;&gt;development blog&lt;/a&gt; (unfortunately, they do not provide English-language version, like Invenzzia :( ).&lt;/p&gt;


&lt;p&gt;Another application that uses OPTv2 is the project with the codename &quot;Arbiter&quot;. It is a system for &lt;a href=&quot;http://www.agh.edu.pl&quot; hreflang=&quot;pl&quot;&gt;AGH University of Science and Technology in Krakow&lt;/a&gt; that allows to organize programming competitions and automated program testing for computer science students. Because I'm involved in its creation, I'll try to write more about it in the next few days, as the first version is going to be run soon. The application is built on Zend Framework, Doctrine and OPTv2. It has been used as the prototype for the OPL4ZF port and the experimental field for OPTv2.&lt;/p&gt;


&lt;h2&gt;What about Open Power Classes?&lt;/h2&gt;


&lt;p&gt;The &quot;Opc&quot; directory remains empty on SVN, however this should change in the near future. The problems were caused with the huge amount of work with OPT debugging and I couldn't find more time to push this project, too. Moreover, I'm preparing the UML design for Open Power Forms, a form management tool based on OPT. I'll try to publish the results in the next two weeks.&lt;/p&gt;


&lt;h2&gt;Polish support improvements?&lt;/h2&gt;


&lt;p&gt;A few days ago, two users contacted Invenzzia asking for the possibility of establishing a better Polish-language support. The support concerns translating the original English materials into Polish on a secondary wiki. Currently, we are thinking, how to set up a bilingual infrastructure. We are pleased that the Invenzzia community grows constantly and becomes more and more active, however it would be nice to see more non-Polish users here. As you can easily notice, the main language is English and receiving support in this language is as easy, as in Polish. The Czech and Slovak users may also attempt to contact in their native languages, as one of the team members knows Slovak and may understand them :).&lt;/p&gt;


&lt;h2&gt;Conclusion&lt;/h2&gt;


&lt;p&gt;This is the end of the first Invenzzia Summary. I hope you have enjoyed this form of providing the recent news and issues.&lt;/p&gt;</description>
    
    
    
          <comments>http://blog.invenzzia.org/en/post/Invenzzia-Summary-1#comment-form</comments>
      <wfw:comment>http://blog.invenzzia.org/en/post/Invenzzia-Summary-1#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.invenzzia.org/en/feed/atom/comments/55</wfw:commentRss>
      </item>
    
</channel>
</rss>