Activity
From 06/14/2014 to 07/13/2014
07/13/2014
- 05:50 PM Feature #1794: implement font support
- > To solve this, I think the custom auth plugin will have to hard-code the font details used to draw the login window...
- 02:44 PM Feature #1794: implement font support
- Runtime testing showed a problem related to the custom auth plugins: in GUI mode, for the window to initialize, it re...
07/11/2014
- 06:01 PM Feature #1794: implement font support
- This version is going through runtime testing now. What I need to finish is some manual testing and the TRPL rules t...
- 05:42 AM Feature #1794: implement font support
- Replacement for 0702d. Committed to bzr rev 10566.
- 10:41 AM Feature #1811: implement the AJAX client driver
- Marius Gligor wrote:
> Another question please. If in directory the clipboard is set to OFF (disabled) should we hid... - 10:11 AM Feature #1811: implement the AJAX client driver
- Another question please. If in directory the clipboard is set to OFF (disabled) should we hide also the pop-up menu?
- 08:45 AM Feature #1811: implement the AJAX client driver
- Marius Gligor wrote:
> "Enable Clipboard" means also CTRL-C? Basically means the entire clipboard?
Yes, exactly. ... - 08:44 AM Feature #1811: implement the AJAX client driver
- Code Review 0711a
It looks good. Please implement the "Enable Clipboard" feature and then this task will be done. - 08:41 AM Feature #1811: implement the AJAX client driver
- "Enable Clipboard" means also CTRL-C? Basically means the entire clipboard?
- 08:37 AM Feature #1811: implement the AJAX client driver
- > We could clear the clipboard from JS when CTRL-V is handled but this is not a standard mode to work with clipboard....
- 08:35 AM Feature #1811: implement the AJAX client driver
- Constantin Asofiei wrote:
> Do you think is OK to have some browser toggle box to set/change how CTRL-V is used? Thi... - 04:03 AM Feature #1811: implement the AJAX client driver
- By the way one issue that should be also discussed. When a paste operation is made the text is not discarded from cli...
- 03:57 AM Feature #1811: implement the AJAX client driver
- Here are the changes which I made to implements CTRL-V rule.
- 03:20 AM Feature #1811: implement the AJAX client driver
- Do you think is OK to have some browser toggle box to set/change how CTRL-V is used? This toggle box could be default...
- 09:26 AM Feature #2308: remote client launch
- OK, think about it like this:
* we have broker names broker1 and broker2
* broker1 has 3 connected instances, broke... - 07:57 AM Feature #2308: remote client launch
- I still have something that is not clear for me.
Let say we have 2 brokers in server directory broker1 and broker2... - 07:37 AM Feature #2308: remote client launch
- I think the changes are OK, and it's just a matter to decide what the server-side Conversation thread (for the broker...
- 06:49 AM Feature #2308: remote client launch
- Here are the latest changes.
- 06:45 AM Feature #2308: remote client launch
- Here are the changes that I did so far.
- 06:41 AM Feature #2308: remote client launch
- I did some debugs and I found:
1. When I call a client exported method from server, the request is arrive to clien... - 05:48 AM Feature #2308: remote client launch
- ca_upd20140707a.zip was committed to bzr rev 10567.
- 05:28 AM Feature #2308: remote client launch
- Marius Gligor wrote:
> Here is a simplified skeleton for remote brokers.
>
> 1. As I understood when a broker con... - 05:10 AM Feature #2308: remote client launch
- About your update:
# @ClientDriver.start@. This code is not reliable:...
07/10/2014
- 04:54 PM Feature #2308: remote client launch
- I wasn't thinking correctly. On the client side there are no ACLs in play since the client's security manager is "em...
- 02:43 PM Feature #2308: remote client launch
- Unfortunately I was wrong. I tested some old code on which the client connect to server and this works.
So I have to... - 02:28 PM Feature #2308: remote client launch
- I fixed the access to BrokerClientServices. The node that I inserted is OK. After a build all of P2J now it works.
- 12:41 PM Feature #2308: remote client launch
- I added the following node to server directory.xml but still not working....
- 11:24 AM Feature #2308: remote client launch
- I suspect this is an ACL problem. Each API that is exported must be configured with the appropriate ACLs to allow th...
- 11:18 AM Feature #2308: remote client launch
- Today I've continued to work on remote launcher client (broker).
I tried to spawn a web client locally via a remote ... - 03:35 AM Feature #2308: remote client launch
- Here is a simplified skeleton for remote brokers.
1. As I understood when a broker connect and register to P2J ser... - 12:25 PM Feature #1811: implement the AJAX client driver
- Yes this might be a solution. At the moment the CTRL-V is pressed we cannot determine if clipboard is empty but we co...
- 11:35 AM Feature #1811: implement the AJAX client driver
- > The onkeyup() is the last event fired on key events. If we prevent default action and stop propagation we could be ...
- 11:27 AM Feature #1811: implement the AJAX client driver
- 1. The onkeyup() is the last event fired on key events. If we prevent default action and stop propagation we could be...
- 11:11 AM Feature #1811: implement the AJAX client driver
- Code Review 0709a
The code looks very good.
1. In onkeyup(), shouldn't we still call preventDefault() and stopI...
07/09/2014
- 12:16 PM Feature #2252: implement GUI client support
- Here are some initial findings and open questions for #2334:
* I have not found any way to make a 4GL window have ... - 11:58 AM Feature #2252: implement GUI client support
- #2333 and #2334 do not need to address how the proper status/message lines are targeted in a GUI (multi-window) envir...
- 11:25 AM Feature #2252: implement GUI client support
- Here are some initial findings and open questions for #2333:
* I have not found any way to make a 4GL window have ... - 11:54 AM Feature #2334 (Closed): implement the GUI message line widget
- 11:46 AM Feature #1811: implement the AJAX client driver
- Here is the implementation of copy/paste using:
- Mouse drag to select.
- ESC key to clear selection.
- CTRL-C k... - 11:02 AM Feature #2333 (Closed): implement the GUI status line widget
- 09:43 AM Feature #2308: remote client launch
- > To me, this looks like the easiest way to setup a P2J server with a "built-in spawner".
We should retain the ab...
07/08/2014
- 03:04 PM Feature #2308: remote client launch
- Greg Shah wrote:
> Constantin Asofiei wrote:
> > Greg, I was thinking for all the broker configuration to reside in... - 02:55 PM Feature #2308: remote client launch
- Constantin Asofiei wrote:
> Greg, I was thinking for all the broker configuration to reside in the directory, simila... - 02:48 PM Feature #2308: remote client launch
- Marius Gligor wrote:
> Yes I think that is better to keep broker configurations on server directory. In this case wh... - 02:46 PM Feature #2308: remote client launch
- Yes I think that is better to keep broker configurations on server directory. In this case when a broker connect and ...
- 02:21 PM Feature #2308: remote client launch
- Greg, I was thinking for all the broker configuration to reside in the directory, similar to how the appserver is con...
- 02:18 PM Feature #2308: remote client launch
- > a list of user accounts that could be used to remote spawn clients on machine on which the broker runs
Where doe... - 10:01 AM Feature #2308: remote client launch
- This is an intermediate work, an initial implementation of a remote launcher (broker).
1. The remote launcher is ... - 02:41 PM Feature #2252: implement GUI client support
- All the changes have passed both conversion and runtime regression testing.
The P2J changes are checked into bzr as ... - 01:38 PM Feature #2252: implement GUI client support
- > will the legacy windows have as parent a Java canvas (from which they can not escape), or each window will be a Swi...
- 01:28 PM Feature #2252: implement GUI client support
- Greg, I'm confused by the window_float2.png and window.png cases; in the end, what is the window policy with the GUI ...
- 02:13 PM Feature #1811: implement the AJAX client driver
- I will try to do the appropriate changes to implements the copy/paste with CTRL-C and CTRL-V, ESC to clear selection ...
- 02:04 PM Feature #1811: implement the AJAX client driver
- >> 1. The sendResponse() and detectContentType() in DojoToolkitHandler seem generic enough that they would be useful ...
- 01:44 PM Feature #1811: implement the AJAX client driver
- 1. The CTRL-C example attached on #619 is exactly what you are looking for. The input is made not visible using CSS s...
- 01:33 PM Feature #1811: implement the AJAX client driver
- I don't want to use the dialog approach unless absolutely needed. At a minimum, the paste can be done properly (with...
- 01:15 PM Feature #1811: implement the AJAX client driver
- 1. The sendResponse() and detectContentType() in DojoToolkitHandler seem generic enough that they would be useful in ...
- 01:06 PM Feature #1811: implement the AJAX client driver
- Here is a simple soultion using dialogs.
- 12:51 PM Feature #1811: implement the AJAX client driver
- Here is a solution which works with CTRL-C and CTRL-V by hidding the input element using CSS.
If the input is of typ... - 12:08 PM Feature #1811: implement the AJAX client driver
- Another solution would be this: for copying, the user selects the text, then right-clicks and chooses from the menu t...
- 11:56 AM Feature #1811: implement the AJAX client driver
- I have to try. It is the best way to find out if it works or not.
- 11:52 AM Feature #1811: implement the AJAX client driver
- Marius Gligor wrote:
> 2. The CTRL-C is even more restrictive. When CTRL-C is pressed the selected text from the c... - 10:28 AM Feature #1811: implement the AJAX client driver
- 1. Unfortunately we cannot link CTRL-V to our pop-up menu.
For security reasons the event listener for paste ... - 09:53 AM Feature #1811: implement the AJAX client driver
- Code Review 0703a
Overall the code looks good.
1. The @sendResponse()@ and @detectContentType()@ in @DojoToolki...
07/07/2014
- 05:13 PM Feature #2308: remote client launch
- > Both web and appserver agent clients need to be covered by a broker.
Don't forget that we need to allow batch c... - 01:08 PM Feature #2308: remote client launch
- I've fixed the issue by rebuilding the P2J project. I deleted the p2j-root certificate from Java keystore.
- 12:49 PM Feature #2308: remote client launch
- I've implemented a P2J client (Broker) which connect to P2J server and authenticate using certificates.
Both the cli... - 08:35 AM Feature #2308: remote client launch
- Using SSLCertGenUtil I reconfigured the certificates/private keys in the server directory and I created a client.xml ...
- 06:00 AM Feature #2308: remote client launch
- See attached for the update. Execute the SSLCertGenUtil class using as parameter the directory name, and it will rec...
- 04:45 AM Feature #2308: remote client launch
- Sorry, forgot to mention: the following needs to be set in the bootstrap config:
* keystore, via @security:keystore:... - 04:36 AM Feature #2308: remote client launch
- Marius Gligor wrote:
> I'm using your code from NativeSecureConnection class but we still need an account to connect... - 04:34 AM Feature #2308: remote client launch
- I'm using your code from NativeSecureConnection class but we still need an account to connect to P2J server.
You are... - 03:48 AM Feature #2308: remote client launch
- Marius Gligor wrote:
> The remote launcher (broker) connect to the P2J server and authenticate using certificates.
... - 02:59 AM Feature #2308: remote client launch
- The remote launcher (broker) connect to the P2J server and authenticate using certificates.
Is any example in P2J on...
07/05/2014
- 08:32 PM Feature #1791: implement dynamic UI support
- Another consideration for dynamic widget ID. According to Progress documents the dynamic widgets exist until explicit...
07/04/2014
- 10:16 AM Feature #2308: remote client launch
- Here is what I found so far related to OpenEdge brokers and load balancing.
In order to achieve load balancing wit... - 06:38 AM Feature #2308: remote client launch
- Marius Gligor wrote:
> For the beginning I have some comments and questions please.
>
> 1. P2J server and AppServ... - 06:06 AM Feature #2308: remote client launch
- For the beginning I have some comments and questions please.
1. P2J server and AppServer are distinct terms? If yes:... - 04:42 AM Feature #2308: remote client launch
- For remote client launching, first component we need is a broker; this will be a special P2J client which authentica...
- 03:54 AM Feature #2308 (WIP): remote client launch
- 09:14 AM Feature #1811: implement the AJAX client driver
- I tested CTRL-V/Shift-Insert strokes on both P4GL and P2J.
Shift-Insert switch the insert mode on P4GL editor.
CTR... - 06:53 AM Feature #1811: implement the AJAX client driver
- Marius Gligor wrote:
> - I found some examples for paste from system clipboard but these examples allow only to r... - 03:52 AM Feature #1811: implement the AJAX client driver
- - The HTML 5 Clipboard API is currently only a draft and the specifications aren't implemented yet by any web brow...
- 03:53 AM Feature #2306 (Review): add copy/paste support to the web client
- 03:05 AM Feature #1794: implement font support
- 0702d.zip passed runtime testing. Will merge and release after the release of ges_upd20140627a.zip from #2252.
07/03/2014
- 07:03 PM Feature #1791: implement dynamic UI support
- I think the following methods are involved in widget-frame ID relationship in more or less degree:...
- 11:33 AM Feature #2252: implement GUI client support
- Greg Shah wrote:
> Constantin: please do a code review. I will make any final changes based on your feedback and th... - 08:09 AM Feature #2252: implement GUI client support
- Also please note that the 0627a is up to date with bzr revision 10560 (the p2j tips as of this writing).
- 08:08 AM Feature #2252: implement GUI client support
- Conversion regression testing for MAJIC has passed. There are some expected modifications (a copyright notice and th...
- 08:18 AM Feature #1811: implement the AJAX client driver
- I haven't gotten the chance to do a code review yet. But I think we need to be using the new HTML5 clipboard API (as ...
- 08:16 AM Feature #1811: implement the AJAX client driver
- 1. I found and I fixed the issue related to Dojo modules loading. The problem was a race condition in DojoToolkitHand...
- 06:13 AM Feature #1811: implement the AJAX client driver
- Marius Gligor wrote:
> 2. For selection menu I used Dojo toolkit the latest release 1.10.0 (I tested also the previo...
07/02/2014
- 12:05 PM Feature #1811: implement the AJAX client driver
- Here is a first solution for issue #2306 implements copy/paste for web client
1. The system clipboard cannot be ac... - 10:09 AM Feature #1794: implement font support
- Code Review 0702d
The code looks good.
> The only unknown at this time related to conversion is: FONT, LABEL-FO... - 09:23 AM Feature #1794: implement font support
- Some other notes. A new window can use the fonts from a dynamic environment, activated via the LOAD/USE statements. ...
- 07:01 AM Feature #1794: implement font support
- I've cleaned up the code. This update is related to conversion support and stubbed runtime for FONT, LABEL-FONT, COL...
- 06:37 AM Feature #1794: implement font support
- > On server-side, the font-table is kept in the directory, and can be specified per P2J account or per P2J server. W...
- 06:12 AM Feature #1794: implement font support
- 0630a.zip was committed to bzr rev 10558
- 07:01 AM Feature #1791: implement dynamic UI support
- > The good place to assign the correct widget id for dynamic widget is the moment when we assign the FRAME attribute ...
- 05:03 AM Feature #1791: implement dynamic UI support
- Additional investigations show the 4GL still has limitation for usage attribute setting and corrected @FRAME@ attribu...
07/01/2014
- 09:01 AM Feature #1791: implement dynamic UI support
- Some general considerations.
The first issue discovered for dynamic widgets is related to the proper attribute set... - 05:43 AM Feature #1794: implement font support
- 0630a.zip passed conversion testing - no errors/differences after MAJIC conversion.
06/30/2014
- 01:52 PM Feature #2306 (WIP): add copy/paste support to the web client
- 09:40 AM Feature #1794: implement font support
- Attached update fixes a problem in the expression compiler: the bytecode builder was using @ldc@, which can refer 1-b...
06/27/2014
- 03:03 PM Feature #2252: implement GUI client support
- This is a cleaned up/enhanced version of the mag_upd20140602a.zip. It includes the following:
1. Everything has h...
06/25/2014
- 05:37 PM Feature #2252: implement GUI client support
- > Do you have rev 1159? I know rev 1158 of this file was missing the images, rev 1159 looks OK on my side.
Yes, I ... - 04:19 PM Feature #2252: implement GUI client support
- Greg Shah wrote:
> If I understand things correctly, a dependency we will have will be that the fonts on which an ap... - 03:58 PM Feature #2252: implement GUI client support
- I read the @uast/fonts/font_details.odt@. Clearly there are still some tricky parts to figure out.
If I understan... - 03:20 PM Feature #2252: implement GUI client support
- The @uast/fonts/font_details.odt@ contains details about how the widget metrics are computed; the main notes are:
* ... - 03:51 PM Feature #1794: implement font support
- We won't know if we need FONT-TABLE support (or not) until we see the cut-down customer GUI code. The full customer G...
- 03:50 PM Feature #1794: implement font support
- Do we need support for the @FONT-TABLE@ handle? Note that this handle allows to:
* adjust the size of the actual FO... - 10:20 AM Feature #1789 (Closed): implement the toggle-box widget
- 10:00 AM Feature #1789: implement the toggle-box widget
- The update 0624a has been committed in bzr as 10552.
- 09:28 AM Feature #1789: implement the toggle-box widget
- Go ahead with the check-in and distribution.
- 09:23 AM Feature #1789: implement the toggle-box widget
- The CTRL-C part has been completed without regressions. Hopefully 2-way and 3-way in a single session. The results ha...
- 08:23 AM Feature #1789: implement the toggle-box widget
- The main regression part completed without regression. Continue with CTRL-C part.
06/24/2014
- 11:04 AM Feature #1789: implement the toggle-box widget
- > Please check in your testcases to testcases/uast/toggle_box/.
Done. The revision is 1157.
- 10:15 AM Feature #1789: implement the toggle-box widget
- Code Review 0624a
The changes look good. - 09:44 AM Feature #1789: implement the toggle-box widget
- The runtime regression has been found for @Button@ related code for GSO 195 - help string is not updated correctly fo...
- 11:51 PM Feature #1789: implement the toggle-box widget
- Please check in your testcases to testcases/uast/toggle_box/.
- 02:56 AM Feature #1805: add missing UI method support
- Committed vig_upd20140617a.zip. Rev #10550
- 12:55 AM Feature #1805: add missing UI method support
- Yes, please commit it and distribute it to the team.
- 12:35 AM Feature #1805: add missing UI method support
- The latest update passed regression testing. Can I commit it?
- 12:48 AM Feature #2252: implement GUI client support
- #2323 is a task to implement support for GUI coordinate processing. Currently the implementation is hard coded to Ch...
- 12:15 AM Feature #2323: refactor coordinate system and implement GUI coordinate support
- This task is just for time tracking. All history should be placed in the parent task #2252.
- 12:14 AM Feature #2323 (Closed): refactor coordinate system and implement GUI coordinate support
06/23/2014
- 04:17 PM Feature #1789: implement the toggle-box widget
- The conversion part has been finished. The converted code is binary equal. Continue with runtime testing.
- 09:50 AM Feature #1789: implement the toggle-box widget
- Code Review 0622a
I'm fine with the changes. Please get it regression tested (both conversion and runtime).
06/22/2014
- 06:19 PM Feature #1789: implement the toggle-box widget
- New update for review uploaded. The @StopConditionException@ has been raised to interrupt execution. The pause insert...
- 05:24 PM Feature #1789: implement the toggle-box widget
- > Then you can tell if the code generates an error or not. You can also try ON END-KEY, ON STOP and ON QUIT instead o...
06/21/2014
- 05:07 AM Feature #1791: implement dynamic UI support
- The window-related features will be implemented in a different task. For #2028, focus on the general dynamic widget ...
- 04:44 AM Feature #1789: implement the toggle-box widget
- Code Review 0620a
The code looks good, especially the refactoring of common code into @buildWidgetSpectificMessage... - 04:41 AM Feature #1789: implement the toggle-box widget
- > Yes, looks like you are right. This is the usual exit for CHUI client session in 4GL for application finish.
> ......
06/20/2014
- 07:54 PM Feature #1789: implement the toggle-box widget
- The update for review uses @preRealizeCheck()@ to verify widget realization ability and @QuitConditionException@ to q...
- 07:08 PM Feature #1789: implement the toggle-box widget
- > This sounds like a QUIT (QuitConditionException). Check this before you make any other changes.
Yes, looks like ... - 05:28 PM Feature #1789: implement the toggle-box widget
- > The remaining issue is in P2J we have additional message "Press space bar to continue." while in 4GL the only messa...
- 05:20 PM Feature #1789: implement the toggle-box widget
- Code Review 0619a
1. We can't reuse valid() because this is there for other reasons (to provide support for the HA...
06/19/2014
- 03:03 PM Feature #1789: implement the toggle-box widget
- > The only thing needed is to properly sort the methods in AbstractButton and ToggleBox (public then protected then p...
- 09:21 PM Feature #1789: implement the toggle-box widget
- Code Review 0618a
The changes look good. The only thing needed is to properly sort the methods in AbstractButton ... - 09:09 PM Feature #1789: implement the toggle-box widget
- This update for review includes refactoring for @Button@ and @ToggleBox@ common code. The idea is to use new base cla...
06/18/2014
- 02:45 PM Feature #1789: implement the toggle-box widget
- > So I think this is not ToggleBox specific and we can postpone this subtask if you do not mind. Let me know if any n...
- 02:39 PM Feature #1789: implement the toggle-box widget
- > > Also may be as one more thing to do is to refactor the Button and ToggleBox implementation to merge possible comm...
- 02:04 PM Feature #1789: implement the toggle-box widget
- > Also may be as one mo thing to do is to refactor the Button and ToggleBox implementation to merge possible common c...
- 09:56 AM Feature #1789: implement the toggle-box widget
- Also may be as one more thing to do is to refactor the @Button@ and @ToggleBox@ implementation to merge possible comm...
- 09:52 AM Feature #1789: implement the toggle-box widget
- > 2. The javadoc for @ToggleBoxImpl.forceCursorOnFocus()@ should explain that the return value is always false.
OK... - 08:42 AM Feature #1789: implement the toggle-box widget
- Code Review 0617a
1. In the javadoc for these changes, "cusror" should be "cursor".
2. The javadoc for @ToggleB... - 09:44 PM Feature #1789: implement the toggle-box widget
- This update fixes UI artifact using new @Widget@ interface method implementation. Also the @ToggleBox@ class has been...
06/17/2014
- 05:39 PM Feature #1789: implement the toggle-box widget
- > > The problematic area is marked in red. I think this is something like phantom cursor. It is blinking and disappea...
- 04:15 PM Feature #2252: implement GUI client support
- Greg Shah wrote:
> For example, most buttons will only ever have a small number of possible labels (often only 1). W... - 04:11 PM Feature #2252: implement GUI client support
- I had not planned to require P2J to be running on a Windows OS in order to run the converted system. It would be a r...
- 03:53 PM Feature #2252: implement GUI client support
- I have some bad news... width for TEXT/FILL-IN widgets is computed via the avg-font-width, but for BUTTON, is compute...
- 10:50 AM Feature #2252: implement GUI client support
- +More Findings+
11. MESSAGE statement window targeting:
For both a regular MESSAGE statement and the MESSAGE VI... - 09:12 AM Feature #2252: implement GUI client support
- The Progress documentation suggests the following precedence order for window targeting (please note that I have alre...
- 10:52 AM Feature #2229: implement CURRENT-WINDOW, ACTIVE-WINDOW and DEFAULT-WINDOW system handles for GUI
- Please put all history into #2252. This task is just for time tracking.
- 02:34 AM Feature #1805: add missing UI method support
- Vadim, please use this version, the headers in Frame.java and GenericFrame.java are fixed now.
06/16/2014
- 05:13 PM Feature #2252: implement GUI client support
- For #2229, I have started a set of testcases to explore the behavior and features of the GUI multi-window environment...
- 04:45 PM Feature #1789: implement the toggle-box widget
- I have added a note to #1791 to describe the problem and to reference note 30 in this task. You don't need to do any...
- 03:54 PM Feature #1789: implement the toggle-box widget
- > What does the 4GL do here? I believe that this can't be done in the 4GL either. It probably raises an error. We sho...
- 02:02 PM Feature #1789: implement the toggle-box widget
- Code Review 0613b
The changes look fine.
> the message will display for all such widgets, not for the first enc... - 04:44 PM Feature #1791: implement dynamic UI support
- One issue that needs to be addressed is how the order of attribute assignment (in the CREATE widget statement) can af...
- 02:55 PM Feature #2162: add support for CURRENT-ITERATION attribute (for widget objects)
- I'm moving this to the GUI milestone as we have done more than enough for the needs of M11.
Vadim: we will pick th... - 01:24 PM Feature #1805: add missing UI method support
- Code Review 0613a
The changes look fine. Please get this runtime regression tested.
06/14/2014
- 01:18 PM Feature #2252: implement GUI client support
- > To be clear, I don't plan to provide any support that the 4GL doesn't already provide. For compatibility purposes, ...
- 09:35 AM Feature #2252: implement GUI client support
- Greg Shah wrote:
> Could Windows (or the 4GL) be mapping this as a "generic" sans-serif font that is actually differ...
Also available in: Atom