sK1 Project: Past, Present and Future
CC Attribution - ShareAlike 3.0 Unported:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal and non-commercial purpose as long as the work is attributed to the author in the manner specified by the author or licensor and the work or content is shared also in adapted form only under the conditions of this
Novikov, Igor
The project was started in 2003 as a Sketch fork. Since that time sK1 became an awardwinning Open Source application and supports a lot of unique and professional publishing features. This year is a serious milestone in project development – global refactoring, multiplatform versions etc.
 ESQ1 project contains two programs. It's ESQ1 illustration program and the Uniconverter Graphics Translator. Uniconverter is a common line application, so I will not show you this application, but unfortunately, ESQ1, I cannot demonstrate because I have a problem with proprietary hardware. Project has started as a sketch, scan cell fork in 2003. Sketch and scan cell is a old project, very old project and have a long history, but unfortunately, this project was frozen in 2006. Therefore, on next year, our project present our application on LGM-2007 in Montreal, Canada. The unequivored feature of our project was called raw importer formats. Of course, this feature was interested by InScape and Scribble, so as a result of LGM, we have started another project, Uniconverter. Uniconverter is an ESQ1 without your graphic user interface. It's a simple scheme, how we create Uniconverter project. We just copied the ESQ1 code and remove all code related with graphic user interface. On the scheme, it's very simple, but actually, it's not was a simple issue because InScape asked for Uniconverter protein on Windows platform because a lot of InScape users use Windows version. There is a myth about that our project is pure Python implementation. It's really wrong because recently we have calculated a number of Python lines in our project and we found that 30% of code is a C language. So our project cannot be named as a pure Python project and it heavily depended on platform issues. Therefore, porting Uniconverter on Windows platform was not a simple issue and we have simplified many tasks during this porting. But such strategy quickly got good results. Users start using Uniconverter in InScape. Also after that, Scribblz start using Uniconverter for core drive importers and therefore Uniconverter has a part of all main distributives of Linux. After that, Scribblz got a lot of alerts and in Iniconverter 2 last alert we got on Trafizzdelibre to 009 in multimedia category. So what we have at present? The prices which we got on Trafizzdelibre we as usually spent on project hardware. We bought project blade server for builds and so we got project continuous integration. That is project builds every night and if any changes in repository, project go on rebuild and if we found any problem, any errors, so we can quickly fix it. So we got more solid, more stable applications and as a result was daily banner is built. That is we got every day new RPM and depth packages for our project. We have uploaded SQL release RPMs on our project site and found that it's very popular. From February to May approximately 30,000 SK-1 pre-release downloads, so application is very popular but it's only pure Linux application on this moment. In this year, SK-1 project was sponsored by Shingwanthik from South Korea and this sponsoring Hunchdicks accelerated our development and we have completed the global project refactoring and split our application on several packages. Before this we have two packages, SK-1 and Uniconverter. Now we have four packages. SK-1 and Uniconverter now have common package SK-1 Lips which contains font engine model, importer's expertise and other Python packages which is common for SK-1 and Uniconverter. Often we hear that people say you specially break Uniconverter development to provide for SK-1 more powerful, more modern importers. It was incorrect issue because we cannot import in all features from SK-1 to Uniconverter, do it in a multi-platform release of Uniconverter. Now SK-1 Lips is multi-platform package and allow apply all features of SK-1 importers to Uniconverter. So in SK-1, Scribous and other application which use Uniconverter have the same importers and expertise as a SK-1. That is the most popular importer is CoralDraw format importer. So if you use latest Uniconverter, you have most powerful import of CoralDraw importer. That is short description of SK-1 Lips structure. And we skip this. SK-1 SDK is a package for multi-platform widget set. It's another part of our development. We are going to port SK-1 on Windows and MacOS 6 platform. So widget set should be multi-platform and have the same look and feel as a current platform. And what's new in SK-1 we have now. First of all, we have additional color spaces. It's lab, gray skull, special registry black. It's a part of spot colors. So SK-1 have the same color management structure as Adobe products. Also we have a plan to transparent bitmaps like RGBA and SMIC-R bitmaps. And SK-1 Lips now contains our PDF generator which supports PDF 1517 versions. And right in Brussels we have finished project localization. We have added complete translation on Russian and Ukrainian and it's natural because it's our native languages. Also we have added templates for nine other languages. So anybody who wants to use the app nine other languages, so anybody who interested in collaboration with our project are welcome to translate on your native languages. We have templates for German, Portuguese, Italian, French and other locales. If your locates there is no in our pro directory you can add your locates at now. As I say before, multiple platform application is the main application, is the main development vector for SK-1. We are going after LGM announcing Pre-Release 2 for SK-1 because we cannot finish it all issues from our roadmap. But at the same time we are going to release a Uniconverter 115 which contain all described before features. That is powerful color management, font and design and up to date importing expertise. Also Uniconverter will contain advanced Windows features. Explore, Windows Explorer integration using context right mouse click on the files. This will be standalone application. Windows users doesn't like installing several packages. So we have prepared standalone application which doesn't require additional installation of Python, Python image library and so on. So this will be a single MSI installer. And also this installer will contain five script for in-scape. Okay, I'm finishing. And what's planned in future? At first we are going to switch on agile development process. It means that we will release, we will have short distance between releases and this will allow us improving user features support. Where is it features from users? Quick support of recent features from users, sorry. And also in nearest future we are planning a scale inversion for Windows and Mac OSX platform. Uniconverter in future will go to a factory at CorelDRAW importers. This feature is requested by our sponsoring and also they requested commercial grade PDF experts. I hope PDF experts will resolve old issue in-scape concerning PDF generation with smart colors. But of course this issue should be discussed in-scape with in-scape developers. Also another interesting issue which was requested by our sponsors is CDER exporter. That is writing in native CDER format. It's not a simple task because there is no such software which write to these formats. But it's very important issue because CorelDRAW relatively isolated from other software. CorelDRAW has a very important issue because CorelDRAW has poor importers of Adobe illustration formats. And you cannot transfer SMIC containing graphics from open source software to CorelDRAW. Only one format CorelDRAW will support very relatively good. It's scalable vector graphics. But if you're exporting in scalable vector graphics all SMIC related colors, only RGB colors, it's very important issue for prepress because RGB colors could produce a lot of problem in production. So thank you for your attention. So I think we take two questions. Is there any questions? Not right now? Well, Igor, well, ah, a question. You know what it means. So I've heard you're using Python Imaging Library, PIL, that's right. Yeah. So what do you think of the library? Because I've had the impression it's not, it's a bit limited compared to Image Magic and these libraries which are available for other programming languages, the Python bindings aren't very good. And they generally, PIL, it suggests, but it's not... So your question is about how we use Python Image Library. Yes. Python Image Library we use only for loading and saving rest of image, rest of graphics. But internally, in SQ1, we don't use Python Image Library blop for image processing because this will break rendering and therefore we use our own internal format for bitmaps to accelerate rendering of large and heavyweight bitmaps. So Python Image Library features is not important for us. Okay, thank you. So before we can bind into Image Magic and pass our internal data to Image Magic to process using Image Magic or graphics magic filters and so on. So Python Image Library is not a limitation for our project, but it's very good Python package for image processing, at least for starters. Okay, thank you. Second question and last question here. A follow-up. Yeah, about Python Image Manipulation. There was, I think there still is, a Python interface to Image Magic, but I think it's been un-maintained. And Python Image Library is actually, well, like we said, decent for starters. But if you want to do some heavy image processing, it will require some fast matrix processing. So you can try NumPy and NumericPy along with Image Magic. But if you're in it for the speed, then probably you really need to look into C extensions and other kinds of processing, all the pixel matrix data, other than that, PIL is actually nice. Thank you. Thank you, Igor. Thank you.
 ESQ1 project contains two programs.  It's ESQ1 illustration program  and the Uniconverter Graphics Translator.  Uniconverter is a common line application,  so I will not show you this application,  but unfortunately, ESQ1, I cannot demonstrate  because I have a problem with proprietary hardware.  Project has started as a sketch,  scan cell fork in 2003.  Sketch and scan cell is a old project,  very old project and have a long history,  but unfortunately, this project was frozen in 2006.  Therefore, on next year, our project present  our application on LGM-2007 in Montreal, Canada.  The unequivored feature of our project  was called raw importer formats.  Of course, this feature was interested  by InScape and Scribble, so as a result of LGM,  we have started another project, Uniconverter.  Uniconverter is an ESQ1 without your graphic user interface.  It's a simple scheme, how we create Uniconverter project.  We just copied the ESQ1 code and remove all code  related with graphic user interface.  On the scheme, it's very simple,  but actually, it's not was a simple issue  because InScape asked for Uniconverter  protein on Windows platform because a lot of InScape users  use Windows version.  There is a myth about that our project  is pure Python implementation.  It's really wrong because recently we have  calculated a number of Python lines in our project  and we found that 30% of code is a C language.  So our project cannot be named as a pure Python project  and it heavily depended on platform issues.  Therefore, porting Uniconverter on Windows platform  was not a simple issue and we have simplified many tasks  during this porting.  But such strategy quickly got good results.  Users start using Uniconverter in InScape.  Also after that, Scribblz start using Uniconverter  for core drive importers and therefore Uniconverter  has a part of all main distributives of Linux.  After that, Scribblz got a lot of alerts  and in Iniconverter 2 last alert we got on Trafizzdelibre  to 009 in multimedia category.  So what we have at present?  The prices which we got on Trafizzdelibre  we as usually spent on project hardware.  We bought project blade server for builds  and so we got project continuous integration.  That is project builds every night  and if any changes in repository,  project go on rebuild and if we found any problem,  any errors, so we can quickly fix it.  So we got more solid, more stable applications  and as a result was daily banner is built.  That is we got every day new RPM and depth packages  for our project.  We have uploaded SQL release RPMs on our project site  and found that it's very popular.  From February to May approximately 30,000 SK-1  pre-release downloads, so application is very popular  but it's only pure Linux application on this moment.  In this year, SK-1 project was sponsored by  Shingwanthik from South Korea  and this sponsoring Hunchdicks accelerated our development  and we have completed the global project refactoring  and split our application on several packages.  Before this we have two packages, SK-1 and Uniconverter.  Now we have four packages.  SK-1 and Uniconverter now have common package SK-1 Lips  which contains font engine model, importer's expertise  and other Python packages which is common for SK-1  and Uniconverter.  Often we hear that people say you specially break  Uniconverter development to provide for SK-1  more powerful, more modern importers.  It was incorrect issue because we cannot import  in all features from SK-1 to Uniconverter,  do it in a multi-platform release of Uniconverter.  Now SK-1 Lips is multi-platform package  and allow apply all features of SK-1 importers  to Uniconverter.  So in SK-1, Scribous and other application  which use Uniconverter have the same importers  and expertise as a SK-1.  That is the most popular importer is CoralDraw  format importer.  So if you use latest Uniconverter,  you have most powerful import of CoralDraw importer.  That is short description of SK-1 Lips structure.  And we skip this.  SK-1 SDK is a package for multi-platform widget set.  It's another part of our development.  We are going to port SK-1 on Windows and MacOS 6 platform.  So widget set should be multi-platform  and have the same look and feel as a current platform.  And what's new in SK-1 we have now.  First of all, we have additional color spaces.  It's lab, gray skull, special registry black.  It's a part of spot colors.  So SK-1 have the same color management structure  as Adobe products.  Also we have a plan to transparent bitmaps  like RGBA and SMIC-R bitmaps.  And SK-1 Lips now contains our PDF generator  which supports PDF 1517 versions.  And right in Brussels we have finished project localization.  We have added complete translation on Russian and Ukrainian  and it's natural because it's our native languages.  Also we have added templates for nine other languages.  So anybody who wants to use the app  nine other languages, so anybody who interested  in collaboration with our project  are welcome to translate on your native languages.  We have templates for German,  Portuguese, Italian, French and other locales.  If your locates there is no in our  pro directory you can add your locates at now.  As I say before, multiple platform application  is the main application, is the main development vector  for SK-1.  We are going after LGM announcing  Pre-Release 2 for SK-1 because we cannot finish it  all issues from our roadmap.  But at the same time we are going to release  a Uniconverter 115 which contain all described  before features.  That is powerful color management, font and design  and up to date importing expertise.  Also Uniconverter will contain advanced  Windows features.  Explore, Windows Explorer integration  using context right mouse click on the files.  This will be standalone application.  Windows users doesn't like installing several packages.  So we have prepared standalone application  which doesn't require additional installation of Python,  Python image library and so on.  So this will be a single MSI installer.  And also this installer will contain  five script for in-scape.  Okay, I'm finishing.  And what's planned in future?  At first we are going to switch on  agile development process.  It means that we will release,  we will have short distance between releases  and this will allow us improving user features support.  Where is it features from users?  Quick support of recent features from users, sorry.  And also in nearest future we are planning  a scale inversion for Windows and Mac OSX platform.  Uniconverter in future will go to a factory  at CorelDRAW importers.  This feature is requested by our sponsoring  and also they requested commercial grade PDF experts.  I hope PDF experts will resolve old issue in-scape  concerning PDF generation with smart colors.  But of course this issue should be discussed in-scape  with in-scape developers.  Also another interesting issue which was requested  by our sponsors is CDER exporter.  That is writing in native CDER format.  It's not a simple task because there is no such software  which write to these formats.  But it's very important issue because CorelDRAW  relatively isolated from other software.  CorelDRAW has a very important issue  because CorelDRAW has poor importers  of Adobe illustration formats.  And you cannot transfer SMIC containing graphics  from open source software to CorelDRAW.  Only one format CorelDRAW will support very relatively good.  It's scalable vector graphics.  But if you're exporting in scalable vector graphics  all SMIC related colors, only RGB colors,  it's very important issue for prepress  because RGB colors could produce a lot of problem  in production.  So thank you for your attention.  So I think we take two questions.  Is there any questions?  Not right now?  Well, Igor, well, ah, a question.  You know what it means.  So I've heard you're using Python Imaging Library, PIL,  that's right.  Yeah.  So what do you think of the library?  Because I've had the impression it's not,  it's a bit limited compared to Image Magic  and these libraries which are available  for other programming languages,  the Python bindings aren't very good.  And they generally, PIL, it suggests, but it's not...  So your question is about how we use Python Image Library.  Yes.  Python Image Library we use only for loading  and saving rest of image, rest of graphics.  But internally, in SQ1, we don't use  Python Image Library blop for image processing  because this will break rendering  and therefore we use our own internal format  for bitmaps to accelerate rendering  of large and heavyweight bitmaps.  So Python Image Library features  is not important for us.  Okay, thank you.  So before we can bind into Image Magic  and pass our internal data to Image Magic  to process using Image Magic or graphics magic filters  and so on.  So Python Image Library is not a limitation  for our project, but it's very good  Python package for image processing,  at least for starters.  Okay, thank you.  Second question and last question here.  A follow-up.  Yeah, about Python Image Manipulation.  There was, I think there still is,  a Python interface to Image Magic,  but I think it's been un-maintained.  And Python Image Library is actually, well,  like we said, decent for starters.  But if you want to do some heavy image processing,  it will require some fast matrix processing.  So you can try NumPy and NumericPy along with Image Magic.  But if you're in it for the speed,  then probably you really need to look into C extensions  and other kinds of processing,  all the pixel matrix data, other than that,  PIL is actually nice.  Thank you.  Thank you, Igor.  Thank you.
sK1_Project__Past__Present_and_Future_0_59.png sK1_Project__Past__Present_and_Future_60_107.png sK1_Project__Past__Present_and_Future_108_179.png sK1_Project__Past__Present_and_Future_180_335.png sK1_Project__Past__Present_and_Future_336_779.png sK1_Project__Past__Present_and_Future_780_1043.png sK1_Project__Past__Present_and_Future_1044_1103.png sK1_Project__Past__Present_and_Future_1104_1163.png sK1_Project__Past__Present_and_Future_1164_1547.png sK1_Project__Past__Present_and_Future_1548_2087.png sK1_Project__Past__Present_and_Future_2088_2435.png sK1_Project__Past__Present_and_Future_2436_2603.png sK1_Project__Past__Present_and_Future_2604_3971.png sK1_Project__Past__Present_and_Future_3972_4847.png sK1_Project__Past__Present_and_Future_4848_5951.png sK1_Project__Past__Present_and_Future_5952_6215.png sK1_Project__Past__Present_and_Future_6216_8135.png sK1_Project__Past__Present_and_Future_8136_8855.png sK1_Project__Past__Present_and_Future_8856_11627.png sK1_Project__Past__Present_and_Future_11628_12407.png sK1_Project__Past__Present_and_Future_12408_17675.png sK1_Project__Past__Present_and_Future_17676_22703.png sK1_Project__Past__Present_and_Future_22704_24227.png sK1_Project__Past__Present_and_Future_24228_26999.png sK1_Project__Past__Present_and_Future_27000_27044.png