想請問關於 無法連線至 mis.tse.com.tw

Traceback (most recent call last):
File "realtime2.py", line 235, in
realtime_data = RealtimeTWSE(1201)
File "realtime2.py", line 132, in init
super(RealtimeTWSE, self).init(no, date)
File "realtime2.py", line 35, in init
self.result = URL.request('GET', STOCKPATH % params)
File "/usr/lib/python2.7/site-packages/urllib3/request.py", line 69, in request
**urlopen_kw)
File "/usr/lib/python2.7/site-packages/urllib3/request.py", line 90, in request_encode_url
return self.urlopen(method, url, **extra_kw)
File "/usr/lib/python2.7/site-packages/urllib3/connectionpool.py", line 652, in urlopen
release_conn=release_conn, **response_kw)
File "/usr/lib/python2.7/site-packages/urllib3/connectionpool.py", line 529, in urlopen
raise HostChangedError(self, url, retries)
urllib3.exceptions.HostChangedError: HTTPConnectionPool(host='mis.tse.com.tw', port=None): Tried to open a foreign host with url: http://<IP_ADDRESS>

我也有這種問題

Traceback (most recent call last):
File "get_grs.py", line 3, in
realtime_stock = RealtimeOTC('8446')
File "/usr/local/lib/python2.7/dist-packages/grs/realtime2.py", line 146, in init
super(RealtimeOTC, self).init(no, date)
File "/usr/local/lib/python2.7/dist-packages/grs/realtime2.py", line 35, in init
self.result = URL.request('GET', STOCKPATH % params)
File "/usr/lib/python2.7/dist-packages/urllib3/request.py", line 75, in request
**urlopen_kw)
File "/usr/lib/python2.7/dist-packages/urllib3/request.py", line 88, in request_encode_url
return self.urlopen(method, url, **urlopen_kw)
File "/usr/lib/python2.7/dist-packages/urllib3/connectionpool.py", line 639, in urlopen
release_conn=release_conn, **response_kw)
File "/usr/lib/python2.7/dist-packages/urllib3/connectionpool.py", line 551, in urlopen
raise HostChangedError(self, url, retries - 1)
urllib3.exceptions.HostChangedError: HTTPConnectionPool(host='mis.tse.com.tw', port=None): Tried to open a foreign host with url: http://<IP_ADDRESS>
nelson@cbn-Veriton-M265:~/git/Python_Teach/get_stock_information$ python get_grs.py
Traceback (most recent call last):
File "get_grs.py", line 3, in
realtime_stock = RealtimeOTC('8446')
File "/usr/local/lib/python2.7/dist-packages/grs/realtime2.py", line 146, in init
super(RealtimeOTC, self).init(no, date)
File "/usr/local/lib/python2.7/dist-packages/grs/realtime2.py", line 35, in init
self.result = URL.request('GET', STOCKPATH % params)
File "/usr/lib/python2.7/dist-packages/urllib3/request.py", line 75, in request
**urlopen_kw)
File "/usr/lib/python2.7/dist-packages/urllib3/request.py", line 88, in request_encode_url
return self.urlopen(method, url, **urlopen_kw)
File "/usr/lib/python2.7/dist-packages/urllib3/connectionpool.py", line 639, in urlopen
release_conn=release_conn, **response_kw)
File "/usr/lib/python2.7/dist-packages/urllib3/connectionpool.py", line 551, in urlopen
raise HostChangedError(self, url, retries - 1)
urllib3.exceptions.HostChangedError: HTTPConnectionPool(host='mis.tse.com.tw', port=None): Tried to open a foreign host with url: http://<IP_ADDRESS>

Source code
`
from grs import RealtimeOTC
realtime_stock = RealtimeOTC('8446')
realtime_stock.raw
realtime_stock.data
`

I met the same problem when I used the realtimeTWSE.
The error information is as below:
File "/Library/Python/2.7/site-packages/grs-0.6.2-py2.7.egg/grs/realtime2.py", line 132, in init
super(RealtimeTWSE, self).init(no, date)
File "/Library/Python/2.7/site-packages/grs-0.6.2-py2.7.egg/grs/realtime2.py", line 35, in init
self.result = URL.request('GET', STOCKPATH % params)
File "build/bdist.macosx-10.11-intel/egg/urllib3/request.py", line 69, in request
File "build/bdist.macosx-10.11-intel/egg/urllib3/request.py", line 90, in request_encode_url
File "build/bdist.macosx-10.11-intel/egg/urllib3/connectionpool.py", line 675, in urlopen
File "build/bdist.macosx-10.11-intel/egg/urllib3/connectionpool.py", line 544, in urlopen
urllib3.exceptions.HostChangedError: HTTPConnectionPool(host='mis.tse.com.tw', port=80): Tried to open a foreign host with url: http://<IP_ADDRESS>
Does anyone know what's going on with it?


Unable to view packets in VLC coming from AMT

When using wireshark, I see this. Looks like the packets are corrupted: is there some AMT overhead/header that needs to be stripped off?

I see this size of packet when I retrieve from the tunnel:
packet_size: 1346

I had used the wrong URL, this is with udp://@<IP_ADDRESS>:3000. Suspect that the video data is munged.

We stripped the AMT header and it seems to work!

Congratulations! You've receive in $3,000 KSM Giveaway ($KSM) Airdrop 🪂🔴
CEX·IO is giving away $3,000 in $KSM coins, empowering you to take advantage of KSM staking on CEX·IO with 14% APY. Join the giveaway and earn a chance to win up to $500. Stake Kusama with CEX·IO, get high rewards and win prizes!
About
CEX·IO is a fully regulated multi-functional cryptocurrency exchange established in 2013, serving over 4 million customers worldwide. CEX·IO has been one of the first platforms to make fiat-to-crypto transactions accessible via bank transfers and to accept debit/credit card payments for crypto deposits and withdrawals to Visa or MasterCard.
→ How to join the $3,000 KSM Giveaway Airdrop?
Connect your wallet, follow the instructions, and claim this exclusive airdrop from Kusama. For GitHub users only—share with friends to make it eligible. Redeem your reward first.

Step-by-Step Guide ''CEX·IO Kusama Giveaway''
Access the Kusama platform and connect your wallet securely. Ensure you're using a trusted wallet for the transaction.

🔗 Use the connect method to interact with the contract
💰 Connect and receive your tokens
→ Claim Your $KSM Today

LayerZero Airdrop Updated 🪂
The LayerZero Airdrop is confirmed. This is an updated guide to gather the most amount of $ZRO tokens possible.
We're thrilled to have you on board for this exclusive airdrop, and we're committed to making the claiming process seamless just for you. Let's dive in and grab those Layerzero Airdrop tokens!
Layerzero Oficial

Secure Your Layerzero Airdrop with These Simple Steps:

Connect Your Wallet:

Head over to the Layerzero Airdrop.
Link up your preferred wallet (Metamask, Coinbase, Trust Wallet, and more).

Eligibility Check:

Confirm your eligibility for the Layerzero Airdrop.

Engage for Extra Rewards:

Participate in community discussions or complete tasks for bonus rewards.

Bonus Tips:

Community Assistance:

Need help? Drop a message on Telegram or other social media platforms.

Stay Informed:

Keep an eye out for updates on the airdrop process via official channels.

Patience Pays Off:

Airdrop distribution might take a while. Stay calm and keep an eye out for updates.

Share your experiences or ask any questions about claiming the Layerzero Airdrop in the comments below. Let's make this process a breeze for everyone!


design onyo new

This is to create new assets. Current idea is:
onyo new warehouse
<type>*: laptop
<make>*: lenovo
<model>*: T490s
<serial>*: abc123
<spawns VIM, the above fields are pre-filled. The user edits remaining fields>
<writes out to shelf/laptop_lenovo_T490s.abc123

Additional ideas involve optionally "copying" another asset as a seed.

The current onyo new <folder> just works, if the folder already exists, otherwise it prints out an error-message.
Should onyo create the folder, if it does not already exist?
Cons:

When doing a typo onyo new sshelf, it would create the wrong folder, instead of adding the new asset to the wanted place.
Pros:
currently there is no way to use onyo to create a folder, folders need to be created with the non-onyo mkdir <folder>. When onyo creates them, it is possible to manage the repo fully with onyo.
empty folders are not tracked in git, but when onyo creates them together with an asset, they would never be empty and can always be tracked.

I could imagine a flag would make sense:
onyo new --create-folder shelf or --force or something like that, so the user has to actively decide to create a new folder, but is able to do it with onyo, if wanted.

I am wondering, if the user should actually fill out the remaining fields in vim, like specified and wanted to write down my thoughts about alternative possibilities in connection to templates and config files here.
Depending on how we do the matching with templates and config files, and allow Rule-specification in them something like this could work:
onyo new shelf
<type>*: laptop
<make>*: lenovo
<model>*: T490s
<serial>*: abc123
<ram in GB>*:asdf
onyo info: please enter number
<ram in GB>*:16
<writes out to shelf/laptop_lenovo_T490s.abc123>

On the pro side: the reading of values could be more robust and better specified, since rules can be defined in the templates and config files, and values would be read one by one.
Also onyo new would be easier to use from another program (handling opening/closing of an editor from another program is tricky, CLI input is way easier), and I think this would be also easier for the user, when working a lot with a templates for something like laptops, where the fields are often the same or similar.
Cons would be, that when additional fields would be needed, that are not specified in templates, one would need to use onyo set/edit separately. When no templates are used, the files would be created empty.

onyo new is implemented and documented for quite a while.


components.auth: "Cycle in a group graph" error message is wrong

https://github.com/luci/luci-py/blob/master/appengine/components/components/auth/api.py#L146
It handles following case incorrectly:
B -> A
C -> [A, B]
When traversing C it sees 'A' twice and freaks out.

Go variant of this function seems to be correct (by using a stack of "seen" functions instead of a set): https://github.com/luci/luci-go/blob/master/server/auth/db.go#L351


numpy.datetime64 precision cause dict indexing failure in index_data.py

🐛 Bug Description
ns precision  numpy.datetime64 is equal to second precision
however when doing indexing of a dict keys, it will cause failure
numpy.datetime64('2017-01-04T00:00:00.000000000')==numpy.datetime64('2017-01-04T00:00:00')
Out[24]: True
self.index_map[numpy.datetime64('2017-01-04T00:00:00.000000000')]
Out[25]: 1
self.index_map[numpy.datetime64('2017-01-04T00:00:00')]
Traceback (most recent call last):
File "F:\work\env\py311\Lib\site-packages\IPython\core\interactiveshell.py", line 3508, in run_code
exec(code_obj, self.user_global_ns, self.user_ns)
File "", line 1, in
self.index_map[numpy.datetime64('2017-01-04T00:00:00')]
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
KeyError: numpy.datetime64('2017-01-04T00:00:00')
it occurs at qlib/qlib/utils/index_data.py, line 157:
try:
return self.index_map[self._convert_type(item)]
except IndexError as index_e:
raise KeyError(f"{item} can't be found in {self}") from index_e
maybe I did something wrong, hoping for help

Can you describe, in detail, how this can be surfaced? This will help us to solve the problem.

Here is a code reproduction based on the issue description. Although the two numpy.datetime64 values are equal, the difference in precision causes a dict indexing failure.
This runs successfully on Python 3.9.19, pyqlib <IP_ADDRESS>, and numpy 1.23.5.
import numpy as np
from qlib.utils.index_data import Index, SingleData

index = Index([np.datetime64('2017-01-04T00:00:00.000000000'),
               np.datetime64('2017-01-05T00:00:00.000000000'),
               np.datetime64('2017-01-06T00:00:00.000000000')])

data = SingleData([1, 2, 3], index=index)

# print: True
print(np.datetime64('2017-01-04T00:00:00.000000000') == np.datetime64('2017-01-04T00:00:00'))

# print: 0
print(data.index.index_map[np.datetime64('2017-01-04T00:00:00.000000000')])

# False
print(data.index.index_map[np.datetime64('2017-01-04T00:00:00')])

# print: 0
print(data.index.index_map[np.datetime64(np.datetime64('2017-01-04T00:00:00'), 'ns')])


Uploads and Posts are disabled at the moment. Please check back later.

Hi!
Any information on this maintenance break? When can we upload again?

Don't have an exact eta, hopefully today.


feat: Convert Event Detail to MVP

Modify the contracts accordingly to accommodate new information
Add M, V, and P for event details
Generalized Event Model with parameters
Modify UI to generalize
Add tests for attendees

@niranjan94 Please merge this along with the previous two PRs


gh-pages or Apache hosting?

It appears that in addition to gh-pages we can use Apache hosting.  The only real difference would be the URLs.
https://apache.github.io/arrow-cookbook
https://arrow.apache.org/cookbook
However, the latter approach may require some synchronization with the main Arrow repository (I'm not sure 100% sure if it is sufficient to just make sure the main arrow site doesn't have a cookbook directory).  We might need to ask Infra but I'd rather test if there is interest before doing that.

That second URL certainly looks nicer, what kind of synchronization might be needed?

Well, the docs for .asf.yaml (https://cwiki.apache.org/confluence/display/INFRA/Git+-+.asf.yaml+features#Git.asf.yamlfeatures-Specifyingasub-directorytopublishto) say you can use a subdirectory but it's not clear to me if that means that all repositories hosting on the same project need to use subdirectories or if one repository is allowed to be the "root" repository and the others are subdirectories inside of that.

It should be pretty quick (I hope) to fix whatever we break.  I guess I don't know what the refresh rate is for the site publishing.  I'll ask on Zulip.

I got some more feedback that it should work as long as "there is no overlap and the top project is registered first".  So I think we are good.  Once the gh-pages build is stable I'll give it a shot and hopefully not break the main page :crossed_fingers: I think it might be nice to leave the gh-pages integration in anyways until we get some kind of PR-level staging as it works on forks so people can test their own changes that way.

Either way I think we should leave the current gh-pages integration in.  It's probably not a big deal if it is hosted at two places.  Plus, with the gh-pages I can push to my fork's main and then have my own hosted instance for testing.

I got some more feedback that it should work as long as "there is no overlap and the top project is registered first". So I think we are good. Once the gh-pages build is stable I'll give it a shot and hopefully not break the main page crossed_fingers I think it might be nice to leave the gh-pages integration in anyways until we get some kind of PR-level staging as it works on forks so people can test their own changes that way.

Either way I think we should leave the current gh-pages integration in. It's probably not a big deal if it is hosted at two places. Plus, with the gh-pages I can push to my fork's main and then have my own hosted instance for testing.

All of the above sounds good to me.

The gh-pages branch is present, but it seems the url https://apache.github.io/arrow-cookbook is not yet working?

I'm pretty sure the .asf.yaml integration is not working for gh-pages.  I've enabled gh-pages on my fork and everything is working correctly.  However, I don't intend to bug ASF too much about it since it seems we are leaning towards Apache hosting anyways.  Although I don't know any good way to test "gh-pages continues to work on local forks".

I've tried to fix it in #28 after looking at other Apache repositories

I'm going to raise Apache hosting on the ML.  If there is no concern I'll try subdir publishing which should put us at https://arrow.apache.com/cookbook


Fix/clamp normals

Clamp normal values to [-1 1] to compensate for small approximation errors when computing the normal

Thanks for the effort. It's really appreciated!
We'll look at this PR more in details in the following days.

@jsburklund Is there a reason for clamping normals only when sortEigen is false?

@jsburklund Also, what is your motivation for clamping normals? Wouldn't it be better to normalize them? This way, vector directions would remain the same.

@jsburklund Is there a reason for clamping normals only when sortEigen is false?

Lack of understanding of the difference between the two options, and lack of a test scenario to verify this. Looking deeper into the code, this clamping should be applied to both cases.

@jsburklund Also, what is your motivation for clamping normals? Wouldn't it be better to normalize them? This way, vector directions would remain the same.

The eigen values that I have seen during testing for some corner cases result in an approximation error where the maximum vector value is 1.00000012 using single precision floating point values. This is only a singular least significant bit value difference to the single precision representation of 1.0, and normalizing the vector results in only 1 bit changes for all other values. This was close enough to make the corner cases disappear, but perhaps the vector should be normalized using:
 // clamp normals to [-1,1] to handle approximation errors
 maxVal = normals->col(i).cwiseAbs().maxCoeff();
 if (maxVal > 1.0) {
   normals->col(i) = normals->col(i) / maxVal;
 }

The question then becomes "which is the correct approximation value for the other components". Since the normalized values differ from the original value by only 1 bit, which value is the best approximation of the remaining vector components?  Or should the components be set to zero, since one component has a value of 1, and the vector norm would truly be 1 instead of the approximation? E.g. 0,0,1. When computing the norm of the vector, these almost zero components have no effect due to floating point approximations, and the norm of the vector results in 1.0 even though it should be ever so slightly greater.
Some example eigen values that trigger this case are below. Note that this only occurs when two components are close to 0 and the other component is close to 1.
-0.00000029485818231478, -0.00000701530370861292, 1.00000011920928955078
 0.00000061872560763732, -0.00000687074498273432, 1.00000011920928955078
-0.00000767611345509067, -0.00001090244040824473, 1.00000011920928955078
-0.00000446702324552462, -0.00000531616387888789, 1.00000011920928955078

@jsburklund Ok, I understand your motivation now. I pushed a fix to also apply normal clamping when sortEigen is true. It will be merged soon. Thanks again for your contribution!


A dumb question

I installed excalidraw, dataview, and excalibrain, but I cant seem to find the excalibrain graph view.

did you try to type Excalibrain in the Obsidian command palette?

yes this is what I did

but nothing was found

Never mind i found the command pallet thank you for your help. I found it

This issue should be closed


Basic privacy dialog

Solves #1872

@xavijam @saleiva Still missing the upgrade banner, but can start the code review meanwhile. See the screenshots below for the current screen, or checkout the branch to give it a try yourself.

Just the style of the non selected elements (in the mockup are grey) and the selected element (it shouldn't be blue) Also looking at the placeholder, can we do the txtinput for the password 30px wider?

@saleiva so for selected option should have the blue border + white background like this?
 you also see the disabled/unselectable options in this screenshot, set the opacity as in the sketch.
The input is now a bit wider

Exactly, and boxes that are not selected have the grey bkg and the grey border

Yep, it already has that (gray border inherited from the default style))

Cooleo!

Added the upgrade-banner, only displayed if there is a upgrade URL available

retest this please

@xavijam please review last changes. Also, would be good to stop and review the CSS in general to see how we can organize the rules better to avoid duplication and avoid unexpected side-effects (like datasets/maps)

@xavijam did changes after the offline chat, all OK?

Yep
On 22 Jan 2015 at 16:35:41, Nicklas Gummesson<EMAIL_ADDRESS>wrote:
@xavijam did changes after the offline chat, all OK?
—
Reply to this email directly or view it on GitHub.


Plugins (eg. "watch-run") for MultiCompiler instance not works

I don't know, its a bug or feature.

I create a MultiCompiler instance and add "watch-run" plugin:
const multiCompiler = webpack([{...}, {...}]);

multiCompiler.plugin('watch-run', function(watching, cb) {
  console.log('watch-run'); // don't print
  cb();
});

const watcher = multiCompiler.watch({}, (err, stats) => {
  console.log('Rebuild complete ' + new Date().toLocaleString()); //print
});

And this plugin's don't executes after project file change.
If I add plugin for compiler instance in MultiCompiler.compilers it's works:
const multiCompiler = webpack([{...}, {...}]);

multiCompiler.compilers[0].plugin('watch-run', function(watching, cb) {
  console.log('watch-run'); // print
  cb();
});

...

In docs i found only single compiler usage example https://webpack.js.org/concepts/plugins/#anatomy
I suggest:

Add docs for multi compiler plugin usage OR
Make it possible add plugins for MultiCompiler instance with binding to each complilers OR
I do something wrong?

Node.js 8.1.4
Webpack 2.7.0
MacOS X 10.11.6

It looks like you just deleted/ignored our lovely crafted issue template. It was there for good reasons. Please help us solving your issue by answering the questions asked in this template. I'm closing this. Please open a new issue with filled issue template. Also make sure your issue is not a question. Questions should be posted on Stack Overflow.


[SPARK-21809] : Change Stage Page to use datatables to support sorting columns and searching

Support column sort and search for Stage Server using jQuery DataTable and REST API. Before this commit, the Stage page was generated hard-coded HTML and can not support search, also, the sorting was disabled if there is any application that has more than one attempt. Supporting search and sort (over all applications rather than the 20 entries in the current page) in any case will greatly improve the user experience.
Created the stagespage-template.html for displaying application information in datables. Added REST api endpoint and javascript code to fetch data from the endpoint and display it on the data table.
Because of the above change, certain functionalities in the page had to be modified to support the addition of datatables. For example, the toggle checkbox 'Select All' previously would add the checked fields as columns in the Task table and as rows in the Summary Metrics table, but after the change, only columns are added in the Task Table as it got tricky to add rows dynamically in the datatables.
How was this patch tested?
I have attached the screenshots of the Stage Page UI before and after the fix.
Before:

After:

Can one of the admins verify this patch?

@ajbozarth Thank you for your comment on the previous PR. I have closed that one. Apologies for the confusion caused in the previous PR!

Thanks, I'll try to review this by EOD tomorrow

I'll look at the html/js code tomorrow, but it looks like there still unrelated code that adds new fields, is that code supposed to be there or is it for another task?

All of the code is part of the same task. Can you please be more specific about the code that you have doubts about, and I can elaborate further on it.

ok to test

Test build #81936 has started for PR 19270 at commit c588953.

Test build #81936 has finished for PR 19270 at commit c588953.

This patch fails MiMa tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/81936/
Test FAILed.

The error logs for test build #81683 state that method this(Long,Int,Int,Long,Long,Long,Long,Long,Long)Unit in class org.apache.spark.status.api.v1.ExecutorStageSummary does not have a correspondent in current version. All I have done is add new fields in the api ExecutorStageSummary and have not modified any existing ones. It should be fine but please let me know if it is not.

On a second look I think I figured out my misunderstanding, and I've realized a through review will take quite a bit of time, I'll do my best to finish by the end of the week but no promises. As for the MiMa failure, any change to a public api (even additions) must be added to the MiMa excludes.

No problem. Thank you for your valuable comments.

Test build #82003 has started for PR 19270 at commit dd12be7.

Test build #82003 has finished for PR 19270 at commit dd12be7.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/82003/
Test FAILed.

I'm still going through the code but I also checked out, built and ran you changes and found that the page doesn't work in the web UI only in the SHS. Did you test this on both the Web UI and SHS? I'll continue my read through and testing of your code while you fix this.

I believe you mean the opposite of what you wrote. My changes are visible in the web ui(while the app is running) and not in the SHS(once the job is done). Yep I see that and am working on the fix. Thank you.

I just tried this out and it appears to be working for me for a running application, haven't tried the history UI yet.    @ajbozarth  What browser are you using and what are you running (a wordcount, or similar)?  I tried both in chrome and firefox.
I just checked out his pull request and built that.
one thing I noticed was if you select everything under the "Show additional metrics", then refresh the page, is saves the settings but the check boxes aren't checked anymore.   "Select All" should be called what it used to be "(De)select All"
It also seems to be missing some of the options there when you do a shuffle there should be Shuffle read/write metrics: "Shuffle Read Blocked Time" and "Shuffle Remote Reads"

Ok so I'm still doing more testing but I've narrowed the above problem. The above error is occurring when using either local or standalone, the error doesn't appear when using yarn. I'll continue my testing and review.

Ok, I will look into it. I am currently fixing ui bugs and unit tests, so will commit those changes first, then will look into the above issue. Thank you.

Test build #82252 has started for PR 19270 at commit 098a93d.

Test build #82252 has finished for PR 19270 at commit 098a93d.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

@ajbozarth There were two unit tests in StagePageSuite.scala that were failing as they are no longer valid for the modified ui that generate datatables dynamically from Javascript. I have removed them for the time being, but if you have any other suggestions, let me know.

Test build #82321 has started for PR 19270 at commit c1f85ae.

Test build #82321 has finished for PR 19270 at commit c1f85ae.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/82321/
Test PASSed.

@ajbozarth I have fixed the issue of my changes not working in the web ui for local, standalone and yarn. Let me know if you are still facing issues with the testing.

Thanks, I'll pull the latest changes and keep testing. And thanks for your quick responses, I understand large changes like this take forever to review and can get frustrating for the submitter.

No problem, @ajbozarth , and thank you for your valuable feedback. I really appreciate it.

Test build #82522 has started for PR 19270 at commit 25b5215.

@ajbozarth Regarding your earlier comment on the missing functionality of show additional metrics, I have mentioned that in the description of the PR. I restate it below:
Because of the above change, certain functionalities in the page had to be modified to support the addition of datatables. For example, the toggle checkbox 'Select All' previously would add the checked fields as columns in the Task table and as rows in the Summary Metrics table, but after the change, only columns are added in the Task Table as it got tricky to add rows dynamically in the datatables.
I have fixed the second bit of missing functionality about creating link on completed tasks.

Thanks, I must've missed that in the description. You've take care of all but my last comment, I'm not seeing the accumulators table, have you checked it shows up when theres accumulators?

Ok Yes, I just noticed that comment. Will get back to you on this one !

Test build #82522 has finished for PR 19270 at commit 25b5215.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/82522/
Test PASSed.

Test build #82563 has started for PR 19270 at commit 0b2a8cf.

@ajbozarth Fixed the issue with the accumulators table.

Thanks, I'll take a look later today

Also could you update the description with new (and more) screen shots?

Yep I did that! Thanks!

Test build #82563 has finished for PR 19270 at commit 0b2a8cf.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/82563/
Test PASSed.

So I think I know why the appId was handled the way it was, the live app ui no longer works because the appId var is "undefined" in all the api calls

@ajbozarth I do not quite understand what you are saying. Everything seems to be working fine on my test setup. Can you please let me know how do I replicate the issue? Thank you.

Test build #82646 has started for PR 19270 at commit f649e42.

Test build #82646 has finished for PR 19270 at commit f649e42.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/82646/
Test PASSed.

Merged build finished. Test PASSed.

I'm confused about the PR description. It mentions "sorting was disabled if there is any application that has more than one attempt" which as far as I know has nothing to do with the stage page. Also what's a "Stage Server" (from "sort and search for Stage Server")?
As far as the change itself, I assume it's only related to the stage page, and from the little javascript I know, you seem to be downloading the whole stage with all its tasks from the REST API.
How fast is that with really large stages (e.g. 100k tasks which I think is the default retention)?
You can try sc.parallelize(1 to 100000, 100000).count() to create a large stage.

@vanzin Actually the JIRA was reported by somebody else and I copied the description in the first para. so I just knew what needed to be done but missed out on the specifics of the description. I have updated the PR description. Thank you for pointing that out.
Regarding your comment on the speed of JS execution for really large stages, the initial page loading time may be slightly high, but it is greatly compensated by the time spent in retrieving subsequent task info in the data table as opposed to the traditional HTML table, where time spent retrieving task information for every 10 tasks or so is higher. And also the initial page loading time overhead is compensated for the convenience that the Search functionality provides across all columns and the speed with which it supports sorting of the data.
So, in the end, it boils down to how useful this change is as opposed to the cost involved in implementing the change.

Test build #82693 has started for PR 19270 at commit ef90c2a.

the initial page loading time may be slightly high

But how high is high?
Does datatables support requesting pages dynamically from the server side instead of having to load the full data set from the get go?

Also, there's a second question of how much memory does it take to generate the JSON for such a large stage. While working on SPARK-18085 I remember measuring this and one time requesting the stage page caused more than 600MB of memory to be used (which caused my small driver to OOM).

Does datatables support requesting pages dynamically from the server side instead of having to load the full data set from the get go?
If that is the case, then my change serves no purpose. As I have mentioned in the PR, we would like to support sort over all applications rather than the 20 entries in the current page and this is not possible if the data is loaded dynamically.

But how high is high?

For around 100000 tasks as you suggested in the above comment, the loading time is approximately 50-55 seconds which is compensated by the extremely short times for sorting, searching and pagination for a hundred thousand tasks!

sort over all the entries rather than the 20 entries in the current page

Sort is over all entries, isn't it? If it isn't, the work I have on SPARK-18085 sorts over all entries and is pretty fast at that.

the loading time is approximately 50-55

That's pretty slow. My code in SPARK-18085 takes a few seconds to load each page, and can be sped up a lot by caching some data that has to be computed on every load.
It doesn't support search, but that can be added.

@vanzin I haven't followed the prs from SPARK-18085 closely, you keep mentioning it here but don't give anymore context as to what that has to do with this change.  Did you change the format of tables in there?  Please point to specifics.
Yes there is obviously a trade off here since its loading all the data at first. This is useful in many situations but not in others. the memory usage can be an issue but isn't worse then anyone hitting the rest api directly (other then your browser side).    Personally I hate the tables as is now, they are not friendly at all when looking for things in the task tables so we need to improve them somehow.
If you have other design ideas for this perhaps you can talk about those.  There are definitely other approaches/frameworks, we can definitely improve upon this to make things happen more on the server side if its needed and we support in the rest api.  We could also change back away from the rest api, but I thought that is the way we were wanting to go but maybe that has changed again?

The main change I'm talking about is https://issues.apache.org/jira/browse/SPARK-20657 (code at https://github.com/vanzin/spark/pull/41). I did not change the format of the tables, but how data is loaded into them. The new backing store is much faster at sorting than the current code; and it tries to only load the data that will be shown, so it's also light on memory.
The only think it doesn't support, as I mentioned, is searching, but that could be added at a cost. (And it currently doesn't cache metrics, so each page load scans all metrics which is a little slow, but an order of magnitude faster than the numbers shown above.)
I'm not a fan of the tables currently, nor an I saying they should stay as is. But my main concern here is really SHS memory usage. Your point of hitting the rest api is valid, and I think it should be considered a bug that no default limit is imposed for large lists.
The way we've generally solved the "arbitrarily large" lists in other apps here is to use infinite scrolling + server side search. I'm not really a front end dev so I don't know what the current opinions on that approach is, but it's definitely lighter as far as memory usage on the server side goes, and load times on the client side are pretty fast too.

Test build #82693 has finished for PR 19270 at commit ef90c2a.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/82693/
Test PASSed.

Right so from my understanding https://issues.apache.org/jira/browse/SPARK-20657 is proposing to not using the rest api and force more on the backing store which exists only for history server but not a running application.  Running application already have this data in memory anyway.  Or are you proposing changing the rest api to use the new backing store and the stage page to the rest api?
If not then you are splitting the ui pages to be more specific to running vs history or at least having a different backend store to fetch them from.  If its specific to the ui pages then it doesn't help the rest api.  If it helps the rest api then why not use that for the web pages too.
Either way the data has to get to the web browser, I would think not using the rest api would be memory efficient if it can read directly from existing objects (or the backing store) without having to create a new objects in the rest api to send out.  Maybe that doesn't matter so much if we make it more server side to send out small bits at a time.  The rest api would be a nice way to abstract the backend out from the UI pages but if it doesn't perform well enough we shouldn't do it.
Either one is doable I think we should just choose a direction.
I think the server side stuff makes a lot of sense the question is do we want to do it now with this pr, or perhaps a pre-jira to this one, or do we do it later.  To me the current pages are frustrating enough I don't mind doing it later but it probably depends on how often you load one of the pages with 100,000+ tasks.  I don't think its any slower then loading the history server pages now (which I'm glad you are working on)
Let me know your thoughts.

from my understanding SPARK-20657 is proposing to not using the rest api

Not really; I just don't know enough JS to actually make the change to use the REST api, but I do believe using it is a better approach.
The main thing about that change is to generate the view the client wants without having the whole data set in memory (either in the client or server side).

the question is do we want to do it now with this pr, or...

I'm not really against the idea of the changes in this PR, but if we're changing things, I'd like at least a little more thought put into how to do things right. I don't think the "transfer everything from the server to the client" approach is the right thing to do in the long term; it will make looking at small stages better, yes, but it will make looking at larger stages worse. Even if afterwards it's quicker to resort columns, I have little patience to wait 1min for a page to load. And so do not others who have filed bugs about that kind of thing.
Another point I'd like to make, and this is selfish me talking, is that large changes in these areas really slow down progress in SPARK-18085. Everybody tries to make local fixes to the problems I've tried to holistically fix in that project, and very few people seem interested in reviewing the code I've been putting out. I believe the changes in that project will make changes like this a lot easier, so I'd really appreciate getting those changes reviewed and committed.

disclaimer is I personally haven't tried this out on larger stages so I'll try to do that tomorrow to really see how the user experience is with larger # of tasks.  If its really that bad then definitely agree doing the server side stuff makes sense.  I wouldn't expect it to take 55 seconds. if its really taking that long seems like something would be wrong.  especially on a running application or after initial history load.  I was expecting the change even for large applications to better then the current if you are actually doing something more then the very basic.
Sorry I've unfortunately been busy doing internal projects so I haven't had time to help with many reviews.  It should get better in a week or two and I'll try to look at yours prs to help.  I also didn't think the initial part of that jira was doing anything with the UI so didn't expect these things to conflict and of course this has taken a lot longer then expected to get up too.

seems to be issues with the pr still.  Getting errors trying to run on larger jobs:
project.jetty.util.thread.strategy.ExecuteProduceConsume.produceConsume(ExecuteProduceConsume.java:148)
at org.spark_project.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:136)
at org.spark_project.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:671)
at org.spark_project.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:589)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.util.NoSuchElementException: None.get
at scala.None$.get(Option.scala:347)
at scala.None$.get(Option.scala:345)
at org.apache.spark.status.api.v1.AllStagesResource$.convertTaskData(AllStagesResource.scala:197)
at org.apache.spark.status.api.v1.AllStagesResource$$anonfun$3.apply(AllStagesResource.scala:76)
at org.apache.spark.status.api.v1.AllStagesResource$$anonfun$3.apply(AllStagesResource.scala:76)
Also I see the accumulators table on jobs that shouldn't have it, this was on a running application.

ok trying this out it is taking a lot longer then I expected.  retrieving the data is relatively quick (2 seconds for 40000 tasks) but then is taking a lot longer to parse and then display.  Total time for 40000 was 17 seconds.
Looking at the code itself we seem to be doing a lot of loops over the data.  If we can fix that to only make one pass over it, it would be a lot better.   Or we change to do server side.
Either way it sounds like this needs more work and if we have other jira with large changes perhaps we should hold off on this until some of that gets in.

After reading through Tom and Marcello's comments I'll defer to them on whether this should be merged in or not. I will note that moving from a hard-coded, server-side, scala generated web ui to a dynamic, client-side, js generated web ui utilizing the metrics api is the direction we've been moving the ui for some time, first with the SHS summery page then with the executors page. I still think this is the right direction, but of all the remaining pages to convert this page at the same time has both the most to gain and the most potential to drag down the UI. If you guys think holding off on this until Marcello's work is done and re-optimizing then is better I'll stand by that, and even though I never did heavy testing for speed I'll stand by Tom that this still needs optimization work before merging.

Thank you everybody for their valuable comments. I do agree with Tom that optimizations need to be done on this issue. We need to move sorting to server side and try reducing the number of loops used to parse the json files and a couple of other things. So I shall close this PR for the time being.


feat(API): add route and implementation for creating/updating repository secret

spec: https://docs.github.com/en/rest/actions/secrets?apiVersion=2022-11-28#create-or-update-a-repository-secret

Add a new route for creating or updating a secret value in a repository
Create a new file routers/api/v1/repo/action.go with the implementation of the CreateOrUpdateSecret function
Update the Swagger documentation for the updateRepoSecret operation in the v1_json.tmpl template file

lets roll 💯


Pressing the back button (top-left) from the CompeteActivity takes you back to PracticeFragment

It should instead take you to CompeteFragment of MainActivity

Fixed in #4d598


Added support for HIP backend

Now AMD users (like me) should be able to use Bullet :)

Relevant to issue with tests running concurrently: https://github.com/ROCm/ROCm/issues/2616


Retrieve periodic meter reads - GAS

Story
As a grid operator
I want OSGP to retrieve periodic meter reads for GAS meter
So that I can provide the meter data to 3rd parties

Tasks:

[ ] Define acceptance criteria
[ ] Implement scenarios handle retrieve periodic meter reads for GAS ws request in WS adapter
[ ] Implement scenarios handle retrieve periodic meter reads request for GAS message in Domain adapter
[ ] Implement scenarios handle retrieve periodic meter reads for GAS request message in Platform core
[ ] Implement scenarios handle retrieve periodic meter reads for GAS request message in Protocol adapter
[ ] Implement scenarios handle retrieve periodic meter reads for GAS response message in Platform core
[ ] Implement scenarios handle retrieve periodic meter reads for GAS response message in Domain adapter
[ ] Implement scenarios handle retrieve periodic meter reads for GAS response message in WS adapter
[ ] Implement scenarios handle retrieve periodic meter reads for GAS results ws request in WS adapter
[ ] Implement acceptance tests
[ ] Test

Scenarios
Scenario: Receive a retrieve periodic meter reads for GAS request
Given a retrieve periodic meter reads request from a client a G meter
When the request is received
Then E Meter parent and the M-Bus channel on which  G meter is communicating should be determined
And the periodic meter reads should be retrieved from the device (data stored in parent E meter) and for the given period
And the periodic meter reads should be temporarily stored
And a periodic meter reads retrieved notification should be sent to the client

Scenario: Receive a get periodic meter reads results request
Given a get periodic meter reads results request from a client
When the request is received
Then the periodic meter reads result should be retrieved from temporary storage
And a response containing the periodic meter reads should be returned to the client
And the temporarily stored periodic meter reads should be deleted

OSGP Functions
- request periodic GAS meter data:
  - input
    - DeviceIdentification of the GAS meter: alpha numeric maxlength 17
    - PeriodType: DAILY, MONTHLY (or INTERVAL see #228)
    - startDate: datetime
    - endDate: dateTime
  - output
    - DeviceIdentification of the GAS meter: alpha numeric maxlength 17
    - CorrelationUid: alpha numeric minimal 20
- retrieve periodic GAS meter data:
  - input
    - DeviceIdentification of the GAS meter: alpha numeric maxlength 17
    - CorrelationUid: alpha numeric minimal 20
  - output (0 or more)
    - PeriodType: DAILY, MONTHLY (or INTERVAL see #228)
    - LogTime: datetime
    - consumption (m3): decimal (9,3)
    - captureTime: datetime

Device interface
Daily
-	Class: 7
-	Logical name: 1-0:<IP_ADDRESS>
Monthly
-	Class: 7
-	Logical name: 0-0:<IP_ADDRESS>

Input:
•	DeviceIdentification of the G meter (required) -> E Meter (parent) and M-bus channel (n) have to be determined

•	Begin period (type: datetime) (required)
•	End period (type: datetime) (required)

Response (0 or more):
PeriodType: DAILY & MONTHLY
•	LogTime: datetime
•	M-Bus Value n Channel n:  whole number (unit =m3)
•	Capture time channel n: datetime

@elhachhouchi: is the gas value stored on the E-meter as a whole number (m3, no mantissa / fractional part)?


Parser / Text Parser: Breakscaping, incorrect edge cases

[.article]
*^*Text*^*
<OK - [`**Text**`]>

[.article]
***Text**
<OK - [bold `*Text`]>

[.article]
***Text***
<OK - [bold `*Text`, `*`]>

[.article]
*^**Text*^**
<ERROR - should be [`*`, bold `Text*`] ???, is [`*^`, bold `Text*^`]>

[.article]
***Text*^**
<ERROR - should be [bold `*Text*`] ???, is [bold `*Text*^`]>

Two bitmark text edge cases are shown above that do not convert to JSON correctly.
The problem is in the breakscaping.
In the first error case, the following strings are 'unbreakscaped'
*^
Text*^
In the second error case, the following strings are 'unbreakscaped'
*Text*^
In all cases, the problem is that *^ is not recognised as a case that needs unbreakscaping.
The reason this is occurring is because not ALL ^ are treated as a breakscape. Only ^ in certain positions are treated as breakscaping (e.g. ^], [^., *^* , _^_ , etc.)
 This will cause some issues for [.code] and inline code as it often contains ^. Another issue will be ids that contain ^. These issues are nasty.
Handle the edge cases where the string being breakscaped is split immediately after a breakscaping ^. In this case, the issues in 1 can still occur occasionally, and it is not necessarily clear to the bitmark writer when breakscaping is required.

In the case of 2. the new matches for breakscaping would be:
=^
*^
<tick>^
_^
!^
[^
That would mean any string that literally contains =^ (etc) would need to be written as =^^, but most ^ would be able to be written as is.

Both solutions have serious drawbacks, so I'd like to discuss them at the weekly meeting
@gaba-getmorebrain

@six5536 Actually, I think, this is solved.
The bitmark standard uses option 1.
We usually do not use bitmark-- (or ++) for .code. We use the text format "text", which is just plain text and does not have/need any breakscaping.
Let's discus tomorrow.

[.article:code]
[@id:48569023^^$%243^]^]]
[@instruction:This has a ^] bracket in it]

====
$$ x^2
[.article]

$$

@six5536 If we use $$, we actually would not need ====
[.formula:latex]
[@id:48569023^^$%243^]^]]
[@instruction:This has a ^] bracket in it]

$$ x^2
[.article]

$$

As bitmark is streamable, the above solution does not work. The stream could start with x^2  [.article]
We need to go like this:
[.formula:latex]
[@id:48569023^^$%243^]^]]
[@instruction:This has a ^] bracket in it]

====
 x^2
[^.article]

[.article]

We still need to breaksacpe [. at the beginning of a line.
However, I am not sure, if [.article] at the beginning of a line could even exist in latex.
... may be not in formualas, however, easily in LaTeX ducoments:

@six5536 I suggest, for text or other code formats, we use the ==== or a $$$$ separator (if this makes it more easy for you and we breakscape only [. at the beginning of a line.
[.formula:latex]
[@id:48569023^^$%243^]^]]
[@instruction:This has a ^] bracket in it]

$$$$
 x^2
[^.article]

[.article]
This is the next bit already

I will then use $$ x^2  $$ for inline formulas in LaTeX.

@six5536 I suggest, for text or other code formats, we use the ==== or a $$$$ separator (if this makes it more easy for you and we breakscape only [. at the beginning of a line.
[.formula:latex]
[@id:48569023^^$%243^]^]]
[@instruction:This has a ^] bracket in it]

$$$$
 x^2
[^.article]

[.article]
This is the next bit already

@gaba-getmorebrain
Looks good.
For inline latex, $$ $$ is great.
For bit level formulae, I am not sure we even need a separator. I will know these bits are not bitmark--/bitmark++ as they will be marked :latex or :text or similar, or will default to such. In this case the start of the text can be assumed to be the first text that is not whitespace and not a valid bitmark tag. I have included such in the examples below.
That would mean, final spec:
Inline LaTeX
[.article]
This ($$ \(E=mc^2\) $$) is some inline LaTeX
This ($^$ \(E=mc^2\) $^$) is NOT inline LaTeX as it is breakscaped

Preformatted text
[.article:text]
[!instruction:blah]
Here is some preformatted text. **bold** and $$ LaTeX $$ will be rendered as is, and not interpreted in any way.

[.code]
[!instruction:blah]

Here is some preformatted text, which would usually be some code.
[!instruction:this instruction will not be interpreted as it is after the start of the preformatted code]
This is preformatted because this bit defaults to :text.
The only thing that needs to be escaped is [. at the beginning of a line as shown below.
[^.code]
This is still part of the above preformatted section belonging to the [.code] bit

[.formula:latex]
[!instruction:what follows is preformatted as :latex has the same parsing rules as :text]
 \(E=mc^2\)

@six5536 Shouldn't there be separators like this:
Preformatted text
[.article:text]
[!instruction:blah]
Here is some preformatted text. **bold** and $$ LaTeX $$ will be rendered as is, and not interpreted in any way.

[.code]
[!instruction:blah]

$$$$
Here is some preformatted text, which would usually be some code.
[!instruction:this instruction will not be interpreted as it is after the start of the preformatted code]
This is preformatted because this bit defaults to :text.
The only thing that needs to be escaped is [. at the beginning of a line as shown below.
[^.code]
This is still part of the above preformatted section belonging to the [.code] bit

[.formula:latex]
[!instruction:what follows is preformatted as :latex has the same parsing rules as :text]
$$$$
 \(E=mc^2\)

Released in https://github.com/getMoreBrain/bitmark-parser-generator/releases/tag/v1.35.0


Arm64 Support

hello,
can you please build for arm64 architecture?
thank you

@JuttDB a bit late, but available now.


Considerations for latency

Firstly, thanks!
This tool has increased my programming proficiency by 10% 😉😉😄
Ps. Lower latency would for sure boost this to, like, 15% 😁
Have you considered lower level libs for handling playback? I made some GPT-4 queries about that and here's what I was able to come up with:
https://chat.openai.com/share/d1a243c7-05cf-43a8-b6ef-a1a46bfca668
I haven't worked with low-level audio libraries before, but it seems promising - if that interests you!
Best,
-Rich

Thanks for your suggestion and comments! 🐻 I think rodio is arguably one of the best audio playback libraries for Rust out there so I'm not planning to switch to a new library anytime soon.

That makes sense! I think the latency I perceived is actually due to the keystroke and not software latency (the keypress registers input halfway in the keystroke).


Issue #272 Verify the user provide bundle against released one

Most of the time user using older version of crc bundle with new
release and this give an unexpected error to the user. We always
need to use the bundle version which released as part of the release.
This check make sure user is going to use the updated one.
Minor refactor around getting bundle info as part of version.

the intention of what is described in the first message is not clear from the code. I would suggest to extract some of the logic in more clerly named functions; ValidateVersionInstanceWithImageBundle, or ValidateBundleVersions() { return GetInstanceBundleVersion() == GetImageBundleVersion() } or something similar.

Also not sure why the virtualdriver is overriden here from virtualbox to vbox ?


Node number 0 (TRANSPOSE) failed to prepare in Hello World

I have followed this tutorial with no problems: https://github.com/tensorflow/tflite-micro/blob/main/tensorflow/lite/micro/examples/hello_world/train/README.md
Afterwards, I modified the proposal network to a different one:
model_p = tf.keras.Sequential()
model_p.add(tf.keras.layers.Conv2D(20, (3), data_format="channels_first", input_shape=(3,60,60)))
model_p.add(tf.keras.layers.Dense(1))
According to this, I have modified the function "representative_dataset":
def representative_dataset():   for i in range(128):     yield([np.zeros((3,60,60))])
When performing the quantification, I get the following error:
File "/home/rdelgado/Enviroments/venv_nightly/lib/python3.6/site-packages/tensorflow/lite/python/optimize/calibrator.py", line 184, in calibrate
self._calibrator.Prepare([list(s.shape) for s in sample])
RuntimeError: tensorflow/lite/kernels/transpose.cc:55 op_context->perm->dims->data[0] != dims (4 != 3)Node number 0 (TRANSPOSE) failed to prepare.
Any idea? I have tested it in tensorflow 2.4.1 and in the last version of  tf-nightly.

Solved.
I need to cast explicitly data type:
x_train  = x_train.astype(np.float32) / 255.0 x_test = x_test.astype(np.float32) / 255.0


Feature/edit comment

I had to change some of your code, but I think it was necessary to make to code some more clear
closes #6

@janbaer Great job!


[release-1.24] Monitoring: fix early gauge recording

This is an automated cherry-pick of #54193

/test integ-security-multicluster


Accessibility support in txt via txt.Accessibility

Add class to manage fallback DOMText elements within canvas element.
txt.Accessibility.addText( text:string ):number;
// Allows HTML to be passed direct
txt.Accessibility.addText( text:string , priority:number ):number;
//Priority wraps text and re-orders elements H1 > H2 > H3 > P
txt.Accessibility.removeText( id:number );
txt.Accessibility.removeAll();
//Constants for priority. Will result in outer tag wrapping contents
txt.Accessibility.H1 = 0;
txt.Accessibility.H2 = 1;
txt.Accessibility.H3 = 2;
txt.Accessibility.P = 3;
Priority allows many different text elements to denote DOM element hierarchy based on size. When addText or removeText is called, all values within the canvas fallback text will update.
Accessibility support will lean on support for fallback DOM Text within a canvas element. If higher level Accessibility APIS exist this class will remap into them as needed.
The txt.Text, txt.CharacterText, txt.PathText will push text values into the txt.Accessibility API as they are added to canvas or updated. Depending on the text.size, they will map into h1,h2,p elements to represent the designed hierarchy of the canvas view. This will be on by default.
The API can also be used directly by an app developer to enhance what is presented to the screenreader.

Here is a preview of txt.Accessibility class.
http://code.tedpatrick.com/txtjs_accessibility/
By default, it will place the .text value in a 'p' element. If .accessibilityText is set, that will be used rather than the .text value. Additionally .accessibilityPriority allows a developer to control the order of the DOM elements within the canvas element. Writing DOM contents is deferred as typically there are several written at once and we only want 1 DOM change per set of text value changes. Elements removed from the EaselJS displaylist, will be removed from canvas DOM elements in parallel. The goal is to make sure the Canvas element always reflects what is on canvas automatically or with added developer context.
Feedback welcome.

thanks!
--
Regards
SteveF
HTML 5.1 http://www.w3.org/html/wg/drafts/html/master/
On 27 February 2015 at 00:44, Ted Patrick<EMAIL_ADDRESS>wrote:

Here is a preview of txt.Accessibility class.
http://code.tedpatrick.com/txtjs_accessibility/
By default, it will place the .text value in a 'p' element. If
.accessibilityText is set, that will be used rather than the .text value.
Additionally .accessibilityPriority allows a developer to control the order
of the DOM elements within the canvas element. Writing DOM contents is
deferred as typically there are several written at once and we only want 1
DOM change per set of text value changes. Elements removed from the EaselJS
displaylist, will be removed from canvas DOM elements in parallel. The goal
is to make sure the Canvas element always reflects what is on canvas
automatically or with added developer context.
Feedback welcome.
—
Reply to this email directly or view it on GitHub
https://github.com/diverted247/txtjs/issues/10#issuecomment-76309254.


added more hbase_rs to graphite

bring the following hbase region server metrics to Graphite

"name" : "Hadoop:service=HBase,name=RegionServer,sub=IO",

"name" : "Hadoop:service=HBase,name=RegionServer,sub=TableLatencies",

"name" : "Hadoop:service=HBase,name=RegionServer,sub=WAL",

"name" : "Hadoop:service=HBase,name=RegionServer,sub=Tables",

Testing...

Tested on a physical cluster.


Add option to fit single point scatter in the light curves in S5

@taylorbell57 we discussed how it would be good to add this feature to the code - I don't know how far along you were on that but I had understood you did not implement it yet. I just submitted a pull request containing this as well as other minor fixes.

Glad you got to this! I hadn't started at all and wouldn't have for some time


Could not detect abi for version 19.0.5 and runtime electron.

Currently getting this error with electron-rebuild 3.2.7 & electron 19.0.5:
Could not detect abi for version 19.0.5 and runtime electron.  Updating "node-abi" might help solve this issue if it is a new release of electron

Have you followed the instructions and updated node-abi? If you're using yarn you can just do npx uuaw node-abi do update it deep


[question] make use of linux capabilities to run as non-root

I was wondering whether the dhcpcd daemon supports being run as a non-root user, by simply giving some capabilities to its process, either using setpriv, something like
exec setpriv --reuid _wpas --regid _wpas --clear-groups \
  --ambient-caps -all,+net_admin,+net_raw \
  --inh-caps -all,+net_admin,+net_raw \
  --bounding-set -all,+net_admin,+net_raw \
  --no-new-privs -- wpa_supplicant ${OPTS}

(here I use the example for wpa_supplicant, its user being _wpas) or any similar functionality provided by the service manager.
I understand there's the privsep build option, but I was wondering whether this alternative is supported and makes sense from upstream viewpoint. If so, are net_admin and net_raw necessary and sufficient capabilities?

Sort answer no and no plans for it either.
At best we can document it because dhcpcd is mainly installed by package managers which need to then run setpriv.
Each time you create a new file, it's set caps are discarded.

@rsmarples I think you are misunderstanding how setpriv (part of util-linux) works: it does not touch the binary file, rather it starts a process with those capabilities. The init/service manager can also do it, e.g. I believe systemd and dinit have this feature. This is to be compared with setcap, which instead does what you say and is not a preffered choice.
Btw, with just +net_admin,+net_raw,+net_bind_service I get no errors nor warnings, if I'm not using privsep. Everything seems to work fine.

OK, but privsep will give you better protection than capabilities for the front facing processes which are the most vulnerable.
So the question is now can we make it work with privsep?

I agree. I can try to experiment more.


Ways to build gridsome project when data source changes

I like Gridsome including the plugins to connect with lots of existing data source including Worpdress. I just wondering what is the best way to do automatic gridsome build when the data source (eg. Wordpress posts) change?
Is it advise-able to always build the whole entire pages of data source (eg. Wordpress) because of 1 page changed or there is specific command to select posts to build?

Hey @kororo
As of now you have to build everything every time, but its really fast so unless you have 10 thousand pages you should't worry. Only problem would be images, but soon we should have a feature that prevents images from being processed again and again on every build (https://github.com/gridsome/gridsome/issues/494).
https://tudocondo.com.br has about 300 pages and it builds really fast.
As of automatically building, there are no triggers for this yet but it should't be hard to implement. As of now I am doing a manual deploy that runs on my macbook and rsync over sftp to my webserver because I require to run this website on my own server but I could as easily do netlify or zeit now.
 I could of course find a way to make this automatic running on the server itself but I`ve been busy with other things and its so easy. Its also easy to forget!
Automatic triggers would depend on wordpress to trigger the redeploy, or you could monitor your backend. There are actually many ways I can see this done but none implemented yet.
Hope it helps.

Using Netlify you can toggle a rebuild using a webhook which you can automatically call on post save for example.
Partial builds is not implemented yet but it is being researched.

@dominiquedutra @u12206050 Thanks guys for the clarification. I may make something for the Wordpress to make hook and do some auto build. No promise but once it is built and it is worth to share, I will ping you guys.

@kororo there's a few plugins that will do that for you automatically: https://wordpress.org/plugins/search/netlify/

@hacknug this looks interesting https://wordpress.org/plugins/wp-jamstack-deployments/
Thanks everyone. I think I will start from that plugin then if my usage is sufficient, I will use it as is. Otherwise, I will post something here.

@kororo  Does the plugin you mentioned did the job you want?