You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@royale.apache.org by Piotr Zarzycki <pi...@gmail.com> on 2018/03/01 12:06:20 UTC

Re: library Project in Moonshine IDE

Hi Alina,

It seems that we have had bug in Moonshine where you wouldn't be able build
created Flex library project if you have added mxml file there. It is fixed
now and will be available in the upcoming 1.10.0 version. We are planning
to have release early next week.

Thanks for using Moonshine!
Piotr


2018-02-26 17:11 GMT+01:00 Piotr Zarzycki <pi...@gmail.com>:

> Alex,
>
> Good point. I will pass through that suggestion to the Team. However I
> would like to see what would be the road for Alina to make API report out.
> Probably she will have to create whole configuration build for her project
> with all the dependencies and than try to generate report.
>
> If this is something were users would be discourage because of the
> problems and lot's of time, create more automate way would be great boost.
>
> Thanks, Piotr
>
> 2018-02-26 16:45 GMT+01:00 Alex Harui <ah...@adobe.com>:
>
>> Hi Piotr,
>>
>> If Moonshine were to make generating these API reports easier, it would
>> probably boost Moonshine's attractiveness as a tool for Flex migration to
>> Royale.  Something for the Moonshine folks to consider.
>>
>> My 2 cents,
>> -Alex
>>
>> From: Piotr Zarzycki <pi...@gmail.com>
>> Reply-To: "users@royale.apache.org" <us...@royale.apache.org>
>> Date: Monday, February 26, 2018 at 2:40 AM
>> To: "users@royale.apache.org" <us...@royale.apache.org>
>>
>> Subject: Re: library Project in Moonshine IDE
>>
>> Alina,
>>
>> Understand now. We are mixing two different things.
>>
>> 1) Creating library with Apache Flex SDK usage - everything what I wrote
>> above apply with it.
>> 2) Request from Alex create API report using Royale compiler - (Royale
>> SDK). - Start new thread with that attempt. Maybe in that case it would be
>> better if you do this through the console.
>>
>> Your are attempting to make API report, so let's make it in the console,
>> because this is something not usual and probably Moonshine is not prepared
>> to do such things. I will respond to the Alex email in order to understand
>> what is going on. We need to simple scenario and later go with the harder
>> one.
>>
>> Thanks, Piotr
>>
>>
>>
>>
>>
>> 2018-02-26 11:12 GMT+01:00 Alina Kazi <al...@d-bz.com>:
>>
>>> Hi Piotr,
>>>
>>>
>>>
>>> Sorry !
>>>
>>> I am a programmer with 2 years experience. I don’t know much about these
>>> configurations and Settings.
>>>
>>> What I am trying to do is :
>>>
>>> 1. Compiling flex Library App with apache-flex-sdk-4.16.0
>>>
>>> 2. Compiling flex Library App with royale sdk and
>>>
>>>
>>>
>>> additional config pointed to flex-config.xml due to :
>>>
>>>
>>>
>>> Hi Alina,
>>>
>>>
>>>
>>> Piotr might be better at helping you use Moonshine.  The IDEs sort of
>>> expect that the libraries/SWCs that your code needs is in the same folder
>>> as the compiler.  That's why it might be easier to work from the command
>>> line.
>>>
>>>
>>>
>>> I remembered this morning that the Royale SWF Compiler doesn't have
>>> embedded font support.  However the goal isn't so much to make a runnable
>>> SWF but to have the compilation and linking complete so we can determine
>>> the full set of Flex APIs used in your app.
>>>
>>>
>>>
>>> If your code has two projects, then we will want you to compile both
>>> projects with the Royale compiler and get two API reports.  The Library
>>> project would be compiled with js/bin/compc and the main app would be
>>> compiled with js/bin/mxmlc.
>>>
>>>
>>>
>>> I think you will want to use the compiler option:
>>>
>>>    -load-config="path to a Flex SDK flex-config.xml"
>>>
>>> and also use
>>>
>>>   –compiler.targets=SWF
>>>
>>>
>>>
>>> HTH,
>>>
>>> -Alex
>>>
>>>
>>>
>>> *From: *Alex Harui <ah...@adobe.com>
>>> *Reply-To: *"users@royale.apache.org" <us...@royale.apache.org>
>>> *Date: *Tuesday, February 20, 2018 at 10:30 AM
>>> *To: *"users@royale.apache.org" <us...@royale.apache.org>
>>> *Subject: *Re: Substitutes in Apache Royale
>>>
>>>
>>>
>>> In fact, I went and tried it just now to build a Flex Hello World.
>>>
>>>
>>>
>>> I had Apache Flex 4.16.0 installed in /Users/aharui/ApacheFlex4.16.0.
>>> Then I:
>>>
>>>
>>>
>>> - took the apache-royale-0.9.1-bin-js-swf package from [1]  (you must
>>> use the bin-js-swf and not just bin-js).
>>>
>>> - unzipped the package
>>>
>>> - ran in the package's royale-asjs folder: ant –f InstallAdobeSDKs.xml
>>>
>>>
>>>
>>> That results in a working Royale SDK with SWF Support.
>>>
>>>
>>>
>>> Then I ran from the royale-asjs folder:
>>>
>>>
>>>
>>>   bin/mxmlc <path to app's .mxml file> -load-config=/Users/aharui/Apa
>>> cheFlex4.16.0/frameworks/flex-config.xml
>>>
>>>
>>>
>>> The compile finished successfully.  I think I'm going to work on the API
>>> report now and deal with the * selector after.  If you can get a SWF build
>>> via this technique, this is the technique you will use to generate the API
>>> report.
>>>
>>>
>>>
>>> Thanks,
>>>
>>> -Alex
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> I have one more question that the Project is Flex Library Project(in
>>> Moonshine IDE) . Can we compile it with Royale Compiler using Royale Src?
>>> Or It will only work for Flex Source Only?
>>>
>>>
>>>
>>>
>>>
>>> Thanks ,
>>>
>>> Alina
>>>
>>> *From:* Piotr Zarzycki [mailto:piotrzarzycki21@gmail.com]
>>> *Sent:* Monday, February 26, 2018 2:59 PM
>>>
>>> *To:* users@royale.apache.org
>>> *Subject:* Re: library Project in Moonshine IDE
>>>
>>>
>>>
>>> Alina,
>>>
>>>
>>>
>>> I don't understand in that case what are you trying to achieve. Why do
>>> you have additional config pointed to flex-config.xml. The things are
>>> working in the following way. If you create project which is using
>>> Flex/Adobe AIR SDK you can "say" to that project which config will be used.
>>>
>>>
>>>
>>> In your case you are seems to create Library project which you wanted to
>>> have inside Adobe Air resources - like manipulation on Files etc.
>>>
>>>
>>>
>>> If in "Additional compiler options" you have +configname=flex - it means
>>> that compiler will automatically search for flex-config.xml and will use
>>> it.
>>>
>>> If in "Additional compiler options" you have +configname=air - it meants
>>> that compiler will automatically search air-config.xml and will use it.
>>>
>>>
>>>
>>> Probably there is no need to point directly that flex-config.xml
>>>
>>>
>>>
>>> If you raise an issue on the GitHub other Moonshine Team members will
>>> have view on that. I didn't write support for libraries.
>>>
>>>
>>>
>>> Thanks, Piotr
>>>
>>>
>>>
>>> 2018-02-26 10:34 GMT+01:00 Alina Kazi <al...@d-bz.com>:
>>>
>>> Hi,
>>> I haven't change the output path in Settings.
>>>
>>> Custom SDK in Setting :
>>> Try 1. Using Apache Flex 4.16 with AIR 16.0
>>>
>>> Try 2. Using Royale 0.9.0 / 0.9.1 / 0.9.2
>>> With Additional Compiler Settings:
>>> -config=D:/apache-flex-sdk-4.16.0-bin/frameworks/flex-config.xml
>>>
>>> In Both cases When I build (Project->build Project ) compilation to
>>> console
>>> output is:
>>> Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF8
>>> And Default SDK Path.
>>>
>>>
>>> -----Original Message-----
>>> From: devsena [mailto:devsena@yahoo.com]
>>> Sent: Monday, February 26, 2018 1:18 PM
>>> To: users@royale.apache.org
>>> Subject: Re: library Project in Moonshine IDE
>>>
>>> Alina Kazi wrote
>>> > I am trying to create and build a sample flex library Project in
>>> Moonshine
>>> > IDE.
>>> > No .swc output file generated and no error occurred.
>>> >
>>> > Settings screenshot:
>>> >
>>> https://www.dropbox.com/s/gz5m8f2t63x625y/libraryProjectbuil
>>> dissue.png?dl=0
>>> <https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.dropbox.com%2Fs%2Fgz5m8f2t63x625y%2FlibraryProjectbuildissue.png%3Fdl%3D0&data=02%7C01%7Caharui%40adobe.com%7C3c8a90c90fa748fccfc908d57d055a7e%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636552384302801221&sdata=3Y2MNfak8AyN5cWNZYUlw1UOoHSIIv1ULxq8vIJY3oU%3D&reserved=0>
>>>
>>> Thank you for reporting this, Alina. (on a separate note, you can also
>>> report issues to Moonshine at
>>> https://github.com/prominic/Moonshine-IDE/issues
>>> <https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fprominic%2FMoonshine-IDE%2Fissues&data=02%7C01%7Caharui%40adobe.com%7C3c8a90c90fa748fccfc908d57d055a7e%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636552384302801221&sdata=hAxExLJZH%2Fbkbd1SBhD4T9kQXWhF%2BFbUNRjrGTF97jc%3D&reserved=0>
>>> )
>>>
>>> Usually Moonshine compiles the project's SWC file to its 'bin-debug'
>>> folder
>>> (unless you changed the output path at project/Settings/Run). However, in
>>> sample project run the usual output is different than yours:
>>>
>>> <http://apache-royale-users.20374.n8.nabble.com/file/t32/Untitled.png
>>> <https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fapache-royale-users.20374.n8.nabble.com%2Ffile%2Ft32%2FUntitled.png&data=02%7C01%7Caharui%40adobe.com%7C3c8a90c90fa748fccfc908d57d055a7e%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636552384302801221&sdata=ji7Oe7Dj1Z8SNIRr4dtgFNTvuvQ%2B%2F2tuzpht2ui4ws4%3D&reserved=0>
>>> >
>>>
>>> There is some differences I'm confused about, though -
>>> 1. The compiler output shown in your image seems using Royale SDK but in
>>> project's custom SDK selection you've shown its Apache Flex 4.16 with AIR
>>> 16.0
>>> 2. I couldn't seen any reference of attempt compilation to console
>>> output,
>>> either (Project > Build Project)
>>>
>>> Can you share screen of your project's Settings/Paths and Settings/Run
>>> section?
>>>
>>> Thanks!
>>>
>>>
>>>
>>>
>>> --
>>> Sent from: http://apache-royale-users.20374.n8.nabble.com/
>>> <https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fapache-royale-users.20374.n8.nabble.com%2F&data=02%7C01%7Caharui%40adobe.com%7C3c8a90c90fa748fccfc908d57d055a7e%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636552384302801221&sdata=AjE2pKiLBsx0WvmDV%2FXKwQoYIlGAb8bAP0pijNd9Lyg%3D&reserved=0>
>>>
>>>
>>>
>>>
>>>
>>> --
>>>
>>> *Piotr Zarzycki *
>>>
>>> Patreon: *https://www.patreon.com/piotrzarzycki
>>> <https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.patreon.com%2Fpiotrzarzycki&data=02%7C01%7Caharui%40adobe.com%7C3c8a90c90fa748fccfc908d57d055a7e%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636552384302801221&sdata=4HuF%2B%2FrR9GZ6wtMjfpFE%2FbqPBvLPrSTEfoFQCHnXwBA%3D&reserved=0>*
>>>
>>
>>
>>
>> --
>>
>> Piotr Zarzycki
>>
>> Patreon: *https://www.patreon.com/piotrzarzycki
>> <https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.patreon.com%2Fpiotrzarzycki&data=02%7C01%7Caharui%40adobe.com%7C3c8a90c90fa748fccfc908d57d055a7e%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636552384302801221&sdata=4HuF%2B%2FrR9GZ6wtMjfpFE%2FbqPBvLPrSTEfoFQCHnXwBA%3D&reserved=0>*
>>
>
>
>
> --
>
> Piotr Zarzycki
>
> Patreon: *https://www.patreon.com/piotrzarzycki
> <https://www.patreon.com/piotrzarzycki>*
>



-- 

Piotr Zarzycki

Patreon: *https://www.patreon.com/piotrzarzycki
<https://www.patreon.com/piotrzarzycki>*

RE: library Project in Moonshine IDE

Posted by Alina Kazi <al...@d-bz.com>.
Thanks Piotr.

 

From: Piotr Zarzycki [mailto:piotrzarzycki21@gmail.com] 
Sent: Thursday, March 01, 2018 5:06 PM
To: users@royale.apache.org
Subject: Re: library Project in Moonshine IDE

 

Hi Alina,

 

It seems that we have had bug in Moonshine where you wouldn't be able build created Flex library project if you have added mxml file there. It is fixed now and will be available in the upcoming 1.10.0 version. We are planning to have release early next week.

 

Thanks for using Moonshine!

Piotr

 

 

2018-02-26 17:11 GMT+01:00 Piotr Zarzycki <pi...@gmail.com>:

Alex,

 

Good point. I will pass through that suggestion to the Team. However I would like to see what would be the road for Alina to make API report out. Probably she will have to create whole configuration build for her project with all the dependencies and than try to generate report. 

 

If this is something were users would be discourage because of the problems and lot's of time, create more automate way would be great boost.

 

Thanks, Piotr

 

2018-02-26 16:45 GMT+01:00 Alex Harui <ah...@adobe.com>:

Hi Piotr,

 

If Moonshine were to make generating these API reports easier, it would probably boost Moonshine's attractiveness as a tool for Flex migration to Royale.  Something for the Moonshine folks to consider.

 

My 2 cents,

-Alex

 

From: Piotr Zarzycki <pi...@gmail.com>
Reply-To: "users@royale.apache.org" <us...@royale.apache.org>
Date: Monday, February 26, 2018 at 2:40 AM
To: "users@royale.apache.org" <us...@royale.apache.org>


Subject: Re: library Project in Moonshine IDE

 

Alina, 

 

Understand now. We are mixing two different things. 

 

1) Creating library with Apache Flex SDK usage - everything what I wrote above apply with it.

2) Request from Alex create API report using Royale compiler - (Royale SDK). - Start new thread with that attempt. Maybe in that case it would be better if you do this through the console. 

 

Your are attempting to make API report, so let's make it in the console, because this is something not usual and probably Moonshine is not prepared to do such things. I will respond to the Alex email in order to understand what is going on. We need to simple scenario and later go with the harder one.

 

Thanks, Piotr

 

 

 

 

 

2018-02-26 11:12 GMT+01:00 Alina Kazi <al...@d-bz.com>:

Hi Piotr,

 

Sorry !

I am a programmer with 2 years experience. I don’t know much about these configurations and Settings.

What I am trying to do is :

1. Compiling flex Library App with apache-flex-sdk-4.16.0 

2. Compiling flex Library App with royale sdk and

 

additional config pointed to flex-config.xml due to :

 

Hi Alina,

 

Piotr might be better at helping you use Moonshine.  The IDEs sort of expect that the libraries/SWCs that your code needs is in the same folder as the compiler.  That's why it might be easier to work from the command line.

 

I remembered this morning that the Royale SWF Compiler doesn't have embedded font support.  However the goal isn't so much to make a runnable SWF but to have the compilation and linking complete so we can determine the full set of Flex APIs used in your app.

 

If your code has two projects, then we will want you to compile both projects with the Royale compiler and get two API reports.  The Library project would be compiled with js/bin/compc and the main app would be compiled with js/bin/mxmlc.

 

I think you will want to use the compiler option:

   -load-config="path to a Flex SDK flex-config.xml" 

and also use

  –compiler.targets=SWF

 

HTH,

-Alex

 

From: Alex Harui <ah...@adobe.com>
Reply-To: "users@royale.apache.org" <us...@royale.apache.org>
Date: Tuesday, February 20, 2018 at 10:30 AM
To: "users@royale.apache.org" <us...@royale.apache.org>
Subject: Re: Substitutes in Apache Royale

 

In fact, I went and tried it just now to build a Flex Hello World.

 

I had Apache Flex 4.16.0 installed in /Users/aharui/ApacheFlex4.16.0.  Then I:

 

- took the apache-royale-0.9.1-bin-js-swf package from [1]  (you must use the bin-js-swf and not just bin-js).

- unzipped the package

- ran in the package's royale-asjs folder: ant –f InstallAdobeSDKs.xml

 

That results in a working Royale SDK with SWF Support.

 

Then I ran from the royale-asjs folder:

 

  bin/mxmlc <path to app's .mxml file> -load-config=/Users/aharui/ApacheFlex4.16.0/frameworks/flex-config.xml

 

The compile finished successfully.  I think I'm going to work on the API report now and deal with the * selector after.  If you can get a SWF build via this technique, this is the technique you will use to generate the API report.

 

Thanks,

-Alex

 

 

 

I have one more question that the Project is Flex Library Project(in Moonshine IDE) . Can we compile it with Royale Compiler using Royale Src? Or It will only work for Flex Source Only?

 

 

Thanks ,

Alina

From: Piotr Zarzycki [mailto:piotrzarzycki21@gmail.com] 
Sent: Monday, February 26, 2018 2:59 PM


To: users@royale.apache.org
Subject: Re: library Project in Moonshine IDE

 

Alina,

 

I don't understand in that case what are you trying to achieve. Why do you have additional config pointed to flex-config.xml. The things are working in the following way. If you create project which is using Flex/Adobe AIR SDK you can "say" to that project which config will be used. 

 

In your case you are seems to create Library project which you wanted to have inside Adobe Air resources - like manipulation on Files etc.

 

If in "Additional compiler options" you have +configname=flex - it means that compiler will automatically search for flex-config.xml and will use it. 

If in "Additional compiler options" you have +configname=air - it meants that compiler will automatically search air-config.xml and will use it. 

 

Probably there is no need to point directly that flex-config.xml

 

If you raise an issue on the GitHub other Moonshine Team members will have view on that. I didn't write support for libraries.

 

Thanks, Piotr

 

2018-02-26 10:34 GMT+01:00 Alina Kazi <al...@d-bz.com>:

Hi,
I haven't change the output path in Settings.

Custom SDK in Setting :
Try 1. Using Apache Flex 4.16 with AIR 16.0

Try 2. Using Royale 0.9.0 / 0.9.1 / 0.9.2
With Additional Compiler Settings:
-config=D:/apache-flex-sdk-4.16.0-bin/frameworks/flex-config.xml

In Both cases When I build (Project->build Project ) compilation to console
output is:
Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF8
And Default SDK Path.


-----Original Message-----
From: devsena [mailto:devsena@yahoo.com]
Sent: Monday, February 26, 2018 1:18 PM
To: users@royale.apache.org
Subject: Re: library Project in Moonshine IDE

Alina Kazi wrote
> I am trying to create and build a sample flex library Project in Moonshine
> IDE.
> No .swc output file generated and no error occurred.
>
> Settings screenshot:
>
https://www.dropbox.com/s/gz5m8f2t63x625y/libraryProjectbuildissue.png?dl=0 <https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.dropbox.com%2Fs%2Fgz5m8f2t63x625y%2FlibraryProjectbuildissue.png%3Fdl%3D0&data=02%7C01%7Caharui%40adobe.com%7C3c8a90c90fa748fccfc908d57d055a7e%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636552384302801221&sdata=3Y2MNfak8AyN5cWNZYUlw1UOoHSIIv1ULxq8vIJY3oU%3D&reserved=0> 

Thank you for reporting this, Alina. (on a separate note, you can also
report issues to Moonshine at
https://github.com/prominic/Moonshine-IDE/issues <https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fprominic%2FMoonshine-IDE%2Fissues&data=02%7C01%7Caharui%40adobe.com%7C3c8a90c90fa748fccfc908d57d055a7e%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636552384302801221&sdata=hAxExLJZH%2Fbkbd1SBhD4T9kQXWhF%2BFbUNRjrGTF97jc%3D&reserved=0> )

Usually Moonshine compiles the project's SWC file to its 'bin-debug' folder
(unless you changed the output path at project/Settings/Run). However, in
sample project run the usual output is different than yours:

<http://apache-royale-users.20374.n8.nabble.com/file/t32/Untitled.png <https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fapache-royale-users.20374.n8.nabble.com%2Ffile%2Ft32%2FUntitled.png&data=02%7C01%7Caharui%40adobe.com%7C3c8a90c90fa748fccfc908d57d055a7e%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636552384302801221&sdata=ji7Oe7Dj1Z8SNIRr4dtgFNTvuvQ%2B%2F2tuzpht2ui4ws4%3D&reserved=0> >

There is some differences I'm confused about, though -
1. The compiler output shown in your image seems using Royale SDK but in
project's custom SDK selection you've shown its Apache Flex 4.16 with AIR
16.0
2. I couldn't seen any reference of attempt compilation to console output,
either (Project > Build Project)

Can you share screen of your project's Settings/Paths and Settings/Run
section?

Thanks!




--
Sent from: http://apache-royale-users.20374.n8.nabble.com/ <https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fapache-royale-users.20374.n8.nabble.com%2F&data=02%7C01%7Caharui%40adobe.com%7C3c8a90c90fa748fccfc908d57d055a7e%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636552384302801221&sdata=AjE2pKiLBsx0WvmDV%2FXKwQoYIlGAb8bAP0pijNd9Lyg%3D&reserved=0> 





 

-- 

Piotr Zarzycki 

Patreon: https://www.patreon.com/piotrzarzycki <https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.patreon.com%2Fpiotrzarzycki&data=02%7C01%7Caharui%40adobe.com%7C3c8a90c90fa748fccfc908d57d055a7e%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636552384302801221&sdata=4HuF%2B%2FrR9GZ6wtMjfpFE%2FbqPBvLPrSTEfoFQCHnXwBA%3D&reserved=0> 





 

-- 

Piotr Zarzycki 

Patreon: https://www.patreon.com/piotrzarzycki <https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.patreon.com%2Fpiotrzarzycki&data=02%7C01%7Caharui%40adobe.com%7C3c8a90c90fa748fccfc908d57d055a7e%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636552384302801221&sdata=4HuF%2B%2FrR9GZ6wtMjfpFE%2FbqPBvLPrSTEfoFQCHnXwBA%3D&reserved=0> 





 

-- 

Piotr Zarzycki 

Patreon: https://www.patreon.com/piotrzarzycki





 

-- 

Piotr Zarzycki 

Patreon: https://www.patreon.com/piotrzarzycki