Feature: Expose --sync-period to Kustomize Build

It would be good to parameterise the --sync-period flag as part of the kustomize build with the default of 10 minutes? I would quite like this as part of the repo as I am trying to not go down the route of forking the repo and having a highly customised copy of this repo for my env, it will make maintaining the solution much easier if I can just use this repo and configure parameters instead. We use helm in my env so I don't know anything about writing kustomize builds really. I can look into it however if someone else knows how to do this first that would be amazing!
Issue detailing what I want to add as a parameter to the kutomize build https://github.com/summerwind/actions-runner-controller/issues/83

@callum-tait-pbx Thanks for writing this up! I'd like to add that, but I'm not sure how. As far as I know, kustomize does not have an ability to set arbitrary variables in the resources.

Maybe the helm chart (#91 by @stackdumper) would be the way to go?

I don't think it will, all the helm chart implementation does is wrap the output of kutomize in helm. You would need to subsequently edit the chart to parameterise this part. If the repo used helm initially then it could be done.

@mumoshu https://blog.stack-labs.com/code/kustomize-101/ from reading that doesn't Kustomize let you just apply arbritary yaml with arbritary values along a defined path? If so, this should be possible, if only I knew anything about Kustomize 😆

In the meantime I would like to add a snippet to the docs detailing the flag a bit more. Can you confirm the possible values? Does it just take an int and treats it as minutes or do you need / can provide a unit too?
        args:
        - --enable-leader-election
        - --sync-period 5

i would find it also helpful to know how to change the sync period. I have the feeling that the hra does not scale very well or fast enough.

Changing the sync period is very easy however it has to be done manually to the template and so has all the negatives of manual changes. https://github.com/summerwind/actions-runner-controller/issues/83 details where you need to make the change (as an argument to the manager container), you just need to make the change, build your template and deploy. As it's not a parameter in the kustomize build it's not very intuitive to do nor is it cleanly pipeline-able. It would be great if at a minimum, we could expose it to kustomize to make configuring it much easier and less custom.
I guess the ideal scenario would be defining this sort of thing in a ConfigMap and the manager pulling the value from there instead.
@jbuettnerbild be aware the default value is 10 minutes to prevent someone rate limiting themselves

ok i found it. thx @callum-tait-pbx for the hint.
- --sync-period=1m0s

@callum-tait-pbx What if you manage this kustomization.yaml
bases:
- git@github.com:github.com/summerwind/actions-runner-controller.git/config/default

patchesStrategicMerge:
- |-
  apiVersion: apps/v1
  kind: Deployment
  metadata:
    name: controller-manager
    namespace: system
  template:
    spec:
      containers:
      - name: manager
        args:
        - --enable-leader-election
        - --sync-period=5m

so that it's matter of running kustomize build ./ to generate the manifests with --sync-period added to the controller container args?
$ kustomize build . | grep -C 5 sync-period
template:
  spec:
    containers:
    - args:
      - --enable-leader-election
      - --sync-period=5m
      name: manager
---
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:

I don't quite understand how to integrate this into the existing kustomize build. The only way I seem to be able to get Kustomise to like adding an additional argument is by adding it to the existing manager_auth_proxy_patch.yaml. As far as I can tell Kutstomize doesn't like 2 patches editing the same path, it considers them conflicting? We could just add - "--sync-period=5m" to manager_auth_proxy_patch.yaml and document you manage it there, I don't know how to parameterise it still though like we have done with the namespace? It really needs to be parameterised so it it can build via pipeline rather than manually editing it. For me it being able to be pipelined is important as I am ultimately wrapping the output of kustomize in Helm and so the config needs to be easily editable prgramatically.
the below yaml works, I just don't know how to parameterise the --sync-period value in the default kustomization.yaml
# This patch inject a sidecar container which is a HTTP proxy for the controller manager,
# it performs RBAC authorization against the Kubernetes API using SubjectAccessReviews.
apiVersion: apps/v1
kind: Deployment
metadata:
  name: controller-manager
  namespace: system
spec:
  template:
    spec:
      containers:
      - name: kube-rbac-proxy
        image: gcr.io/kubebuilder/kube-rbac-proxy:v0.4.1
        args:
        - "--secure-listen-address=<IP_ADDRESS>:8443"
        - "--upstream=http://<IP_ADDRESS>:8080/"
        - "--logtostderr=true"
        - "--v=10"
        ports:
        - containerPort: 8443
          name: https
      - name: manager
        args:
        - "--metrics-addr=<IP_ADDRESS>:8080"
        - "--enable-leader-election"
        - "--sync-period=5m"

@callum-tait-pbx You can't parameterize (in other words use build-time variables) in kustomize, afaik. So adding sync-period to manager_auth_proxy_patch.yaml won't make a big deal. Am I correct?
Currently, the only practical way in my mind would be https://github.com/summerwind/actions-runner-controller/issues/184#issuecomment-727132673 i.e. we write docs about possible customizations and example kustomization.yaml, so that you can add minimum "patches" to "only replace actions-runner controller container args". That's far from parameterization. But I think that's how kustomize works.
Parameterizaion may generally be done better with Helm than Kustomize. So in the future I'd suggest enhancing https://github.com/summerwind/actions-runner-controller/issues/184#issuecomment-726691832 to a standard helm chart that has templates that actually reads and processes values.yaml.
WDYT?

can tell Kutstomize doesn't like 2 patches editing the same path, it considers them conflicting?

Btw - yes. I believe the upstream issue for that is https://github.com/kubernetes-sigs/kustomize/issues/642

:( that sucks. Sounds like better docs is about all we can do, I'll create the PR for that. Additionally it would be helpful from my perspective to add in the - "--sync-period=5m" argument to the manager_auth_proxy_patch.yaml patch by default. The reason for this is the workflow I will be doing for implmentingimplementing this in my environment is to just output the kustomize build to the charts template folder and deploy it as 1 giant template. As a result having the flag already a part of the template would mean i can manage the value programatically at least doing something like this:
kustomize build ./default > manifest.yaml
sed -in 's/sync-period=5m/sync-period=1m/' manifest.yaml
mv manifest.yaml ../charts/action-controller/templates

I can look at creating a proper helm chart if this is something we would be interested in? The problem with doing that is that you now have basically 2 copies of the manifests to maintain which is not great obviously. The actual manifests themselves don't change much so it might not be that painful but it's far from ideal and super awkward.
thoughts on those 3 suggestions?

Better docs (I can do)
Implement the argument in manager_auth_proxy_patch.yaml as part of the repo set to 5 mins
A proper Helm chart

I wasn't sure initially but your further explanation on the suggestion 2 did make sense! Thanks about that.
For the third, perhaps we can start by simply running helm create and adding the result to this repo for collaboration. Then I can at least try to cover testing that in #168 to make it more maintainable.

For the first and the second, PRs are very much appreciated ☺

@callum-tait-pbx I've managed to bootstrap the helm chart in #187. It supports setting sync-period like --set syncPeriod=5m, too. PTAL on the chart https://github.com/summerwind/actions-runner-controller/tree/master/charts/actions-runner-controller and it's usage https://github.com/summerwind/actions-runner-controller/blob/ccd86dce69067b86217573d4cf1f26b0cece1610/acceptance/deploy.sh#L25-L29

Well that was super quick! Awesome dude! I'll start testing with deploying through the repos helm setup as soon as I can!

Everything that could be done has been done at this point, closing issue;


Fix typo

@Predelnik : Thanks for your contribution! The author, @mikeblome, has been notified to review your proposed change.

#sign-off

@corob-msft: I'm sorry - only the author of this article, @mikeblome, can sign off on your changes. But we do have an exception process - if you are on the Microsoft content or product team for this product area, you can ask the PR review team to review and merge it by sending mail to the techdocprs alias.


Use codecov for coverage

Now that we're writing some tests we should track code coverage. Note that these reports are only generated on windows, the coverage tool does not support linux yet.
Stats are visible here: https://codecov.io/gh/athena-scheduler/athena
If I did it right a bot should also comment on the PR like codacy.

If this gets merged before #10 it should also include coverage for new tests added in that PR.


a11y: tab key is ignored when in text input field

In the handleKeyDown function in reactTags.js, a delimiter key's default action is always prevented. The comment in the code mentions that this is in place to prevent delimiters from becoming part of the tag, which makes perfect sense. However, with the tab key as a delimiter, this prevents keyboard access to the document if the tag input field is focused. This is a significant accessibility issue. To fix this, I think tab characters need to be treated as special. In other words, in handleKeyDown, if the tab key has be pressed and it is a delimiter, only prevent the default action if the field is not empty (which seems to correspond to state.query). With an empty text input, the user can tab and shift-tab to navigate the document, as expected. With a non-empty text input, a tag will be created on tab/shift-tab, and then the next tab/shift-tab will allow the user to navigate the document again.
I'm happy to open up a PR, but wanted to get your thoughts on this solution first.

@prakhar1989 Seems you may be quite busy with your many other projects/repos. If that is true, I'd be happy to help out with this library, as time allows, as a contributor.

Hi Ray! Sorry again for the late response.

I'd be happy to help out with this library, as time allows, as a contributor.

This sounds great. I'd surely welcome any help in making this library better. Should I add you as a collaborator so that you get more control over the direction of the project? Let me know what you have in mind!

Adding me as a collaborator sounds acceptable to me. If you are comfortable with me pushing out new versions as well, you'll want to consider adding me to the project in npm as well. That is explained at https://docs.npmjs.com/cli/owner.

Added you as a collaborator, Ray! I'm fine with adding you on NPM too but I feel that initially both of us discuss whenever we're pushing out a new release. If I see myself being a bottleneck, I'll surely add you on NPM. Does that sound acceptable?

Yep, sounds great to me! I have at least one update to make (this case) and I'll try to assist with other cases as time allows. Also note that we (at Widen) have created a story for an upcoming sprint to look into adding unit tests for this project. More info on that in the unit testing issue later.

Wonderful! Thank you for stepping up for contributing to this library! :grin

I see this as being part of 2.2.1, as this is a bug, IMHO.

:+1:

@prakhar1989 Changes for this fix are being staged on hotfix/42-a11y. If you have no objections, I'll merge into master and then perhaps you can push 2.2.1 to npm.

Of course @rnicholus. Go ahead :+1:

This is now on master. npm publish at your convenience @prakhar1989!

Just published it on NPM, Ray! Thanks a ton =)


Rename UseEmulator to RunAsEmulator

We agreed to try this idiom to be consistent about the fact that it means we will use the emulator only when running (in RunMode)

Let's see if we can do this for P4 as a pattern change. We should obsolete the old API.
cc @mitchdenny


The version command never fails

When running bacalhau version it should always print the client version.
It currently also attempts to get the server version, but if it is unable to do so does not explain why.
This surfaced when testing with TLS and when the version command failed with a TLS error, the error was silently swallowed.
Whilst it is fine that we allow the command to run without access to the network,
we might consider any other error (e.g. there is a network but no TLS specified)
as an error and inform the user as such.

imo bacalhau version should follow similar practices to: go version, git version, docker version etc. We can use the agent version command to get the version of the server.

We can use the agent version command to get the version of the server.

Presumably after this change it means changing the update code to explicitly check the agent version.

@frrist did we do any change here? I agree that version should mainly be about the client. We can include server version as a  best effort where we eat failures and have a small timeout window.

I haven't made any changes here, but since we agree that version should mainly be about the client I can pick this work up and implement the change.

Go for it

https://github.com/bacalhau-project/bacalhau/pull/3968#issuecomment-2097525500


Fail to import one .csv file that contains one empty Partitionkey/RowKey to a table with option 'Auto-generate empty or missing keys' unchecked

Storage Explorer Version: 1.29.1
Build Number: 20230522.3
Branch: dev/cralvord/bug/cache-fill
Platform/OS: Windows 10/Linux Ubuntu 20.04/MacOS Ventura 13.3.1 (Apple M1 Pro)
Architecture: x64/arm64
How Found: Ad-hoc testing
Regression From: Not a regression
Steps to Reproduce

Expand one storage account -> Tables.
Create a table -> Click 'Import' -> Select one .csv file. Like:
table1.csv
Uncheck the option 'Auto-generate empty or missing keys'.
Click 'Import'.
Check whether succeeds to import the csv file.

Expected Experience
Succeed to import the csv file.
Actual Experience
Fail to import the csv file.

Error Details:
  "message": "Unable to convert working entity to SDK entity without a partition key.",

@v-xianya Is the "Ignore empty string values" option checked? Does unchecking that option result in a successful import?

@craxal Succeed to execute import when uncheck the option 'ignore empty string values".
Also, any update for the question?
•	If type new name for one PartitionKey or RowKey whose value is empty on Import Entities dialog (Option 'Auto-generate empty or missing keys’ is checked),
The new name property doesn’t display on the table. Is this expected?

@v-xianya I will answer the question through the email thread, as it's not part of this issue.


Series of Points instead of arcs (Feature Request)

There are couple important aspects to this approach:
Many consumer CNCs require recompiling the firmware to use arcs. For example, I had to recompile the marlin firmware of my 3d printer to run the resulting g-codes.
There are often problems when reproducing arcs that are too small. I am now experimenting with robots and using g-codes to convert to commands directly on the robot and too small values fall under calculation problems

I'm wondering what happens if you get unconnected dots. It is just not possible for the device to figure out the proper order to follow them imho.
It also feels like 2 different problems:

If your device does not support arcs, we could fall back to straight lines?
What about having a minimal arc/line length setting?

G02/G03 clearly indicate the direction of travel
if you look at how the printer firmware is organized, you can specify the level of sampling within the firmware itself
it seems to me it is possible to specify the sampling angle, for example
the G00/G01 series instead of arcs can greatly reduce the risk of getting an error in some "unprepared" setups

Let step back a bit.  One problem is that some devices do not support arcs out of box. That basically means falling back two G01/G02 what is linear approximation.

3D printers most often do not generate arcs, but make a set of points on a circle.
This is linear approximation imho

The other problem is arcs being too small. In my opinion, it is an approximation problem, probably the error is set too small. What if you change the  --resolution?  Might there be a bug in the error calculation...

getting an error in some "unprepared" setups
what does it mean?

Another idea is to add comments to the flavor file. In this case, the sampled arcs can be taken in scope with comments.
could you give me an example?

This is linear approximation imho

Yes, perhaps I didn't put it correctly. I'm talking about interpolation. Sampling and interpolation. Roughly speaking, it would be cool to get rid of the arcs and make some kind of point approximation instead. In some cases this solves a lot of problems where arcs can be an issue

what does it mean?

Now most of the problems in my setups (which are not originally designed for g-code, but I use them in different ways) are due to arcs and their calculations. Sometimes it's on the machine side, sometimes it's on the processing computer side. One one hand It is much easier to interpret and use a series of points instead of complicated arches from g-code, and on other some machines face the problem of planning movement around such complex motion

could you give me an example?

Something like this:
; Start Arc Interpolation
G00 X0 Y0 Z0
G00 X1 Y2
G00 X3 Y4
; End Arc Interpolation

I tuned the settings and I use the "-r" parameter a lot and it helps, but sometimes at the most unlikely moment, the code fails and I have to run everything from the beginning with higher values of "-r"

I think we could generalize some settings into one, like
--interpolation=linear,biarc,cubic-bezier
where biarc is the default (G03/G04), cubic-bezier (G05) we already have and linear (G01/G02) could be trivially added. Then --generate-bezier would be deprecated
This would work for you?

I'm more interested in how you get too small values. Could you give me an SVG when -r is propery set, and you still get some problems?

Sounds great! Thanks a lot!
Would there be an option for sampling level?

If I encounter such a situation again, I'll post it here. But I can't always tell exactly what's causing it. The only thing that helps is to manipulate the "-r"

I'm more interested in how you get too small values. Could you give me an SVG when -r is propery set, and you still get some problems?

If I encounter such a situation again, I'll post it here. But I can't always tell exactly what's causing it. The only thing that helps is to manipulate the "-r"

Would there be an option for sampling level?
I need to think about it. There should be something general, like maximal acceptable error

I think we could generalize some settings into one, like --interpolation=linear,biarc,cubic-bezier where biarc is the default (G03/G04), cubic-bezier (G05) we already have and linear (G01/G02) could be trivially added. Then --generate-bezier would be deprecated
This would work for you?

This would be a really great option to have! Also an option to set the level of error for the linear approximation would be great.

I just released v<IP_ADDRESS>. It completely overhauls how error is calculated. gcode output should be much smaller and more accurate regarding the resolution parameter. Please give it a try

I think I'll be able to try it soon. In general, only the logic of error handling has changed? But there is no "no arches" option yet?

Look at the branch linear. I need to update doc and release it (maybe next week), but you can test it already. It generates way bigger gcode for the same error tolerance and the result is not G1, but at least it proves how good the biarc approximation is 😁

does it need to be compiled?

Yep, see instructions in README. Should be straightforward

Please give me some clarification
In what ranges should the new parameters be

linear, biarc, cubic-bezier

Any luck?

I'm trying out
But I encounter problems that are not specifically related to Juicy-Gcode
Everything seems to be working. But I will be able to do in-depth tests only later.

Actually, linear version works perfectly!
It was possible only because of your tool!

Nice robot! :) I'll release it later this week
On Tue, Dec 13, 2022, 6:16 PM berkut0 @.***> wrote:

Actually, linear version works perfectly!
It was possible only because of your tool!
[image: изображение]
https://user-images.githubusercontent.com/8849896/207398976-09593820-6b80-495d-ae88-a7a51e4f0fcd.png
—
Reply to this email directly, view it on GitHub
https://github.com/domoszlai/juicy-gcode/issues/17#issuecomment-1349113604,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACAQ4GBMPBEZS4RYXXOLWM3WNCVNLANCNFSM6AAAAAARRXCVT4
.
You are receiving this because you commented.Message ID:
@.***>

v<IP_ADDRESS> has been released, I close this ticket


Support of MariaDB with MariaDB Connector/J 3.0.3

System information:

Operating system (distribution) and version: Windows 10
DBeaver version: 21.3.3
Additional extensions

Connection specification:

Database name and version: MariaDB 10.6.5
Driver name: mariadb-java-client 3.0.3 (MariaDB Connector/J)
Do you use tunnels or proxies (SSH, SOCKS, etc)?: yes

Describe the problem you're observing:
Due to change of behaviour regarding jdbc:mariadb scheme as of version 3.0 of MariaDB Connector DBeaver is not able to connect to MariaDB.
Connector >= 3.0 require either jdbc:mariadb: or jdbc:mysql:....?permitMysqlScheme:
I think, the issue can be found here: https://github.com/dbeaver/dbeaver/blob/devel/plugins/org.jkiss.dbeaver.ext.mysql/src/org/jkiss/dbeaver/ext/mysql/MySQLDataSourceProvider.java#L108
As there is no other Driver Type as "MySQL" this prefix is always taken.
Workaround is to remain on version 2.7.5 of connector.

Hello @mieseprem
Thanks for the report.

Fixed in DBeaver 21.3.4
It will work fine for the new connections. If connection problems appear for previously created connections - please try to use "Test connection" in the connection settings.

verified


Constant Updates

Describe the bug
Fusion 360 updates every time it is launched, regardless of how recent it was last updated. If I don't update it, I cannot open most files.
To Reproduce
Steps to reproduce the behavior:

Open Fusion 360 from the provided desktop files.

Expected behavior
Only update when an update has not been installe
Desktop (please complete the following information):

Version number of Autodesk Fusion 360: 2.0.12670
Graphics card model + Graphics card driver (Version number): NVIDIA Corporation TU117M [GeForce GTX 1650 Mobile / Max-Q]
Operating system (OpenSUSE Leap 15.3, Fedora 34, ...): Pop!_OS 21.10
Desktop environment (XFCE 4.16, Gnome 40, ...): Gnome 40.4.0
DXVK- or OpenGL-Mode: DXVK

Not fixed by other issue report

Please issue the following command from the terminal to update the launcher file so that this problem no longer occurs:
cd "$HOME/.config/fusion-360/bin" && wget -N https://raw.githubusercontent.com/cryinkfly/Autodesk-Fusion-360-for-Linux/main/files/builds/stable-branch/bin/launcher.sh


Per #813, convert svg names of strokeWidth to stroke-width

#813

Coverage remained the same at 100.0% when pulling 9b37e76d11cf9f00ca09ca4d40a33f6fd2358a06 on NateRadebaugh:master into 17cc8deddd3d4e592685dfa42e832f6e8d2cb795 on developit:master.

Also, it looks like there isn't really any consistency in the formatting of element/attributes; some have hyphens and some are  camelCase. That regex is going to append - to every svg name, which would break more than it would fix wouldn't it..?
https://developer.mozilla.org/en-US/docs/Web/SVG/Element
https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute

Coverage remained the same at 100.0% when pulling d9f9b94aff6781508187b1a09f81aea7c53d4720 on NateRadebaugh:master into b5df49ea656513ff279f09adbd5b8402db78be52 on developit:master.


Add metadata to Asset Definition

And corresponding Instructions to manipulate it.

@eadventurous expect this feature to be used in September/October

Can we expand that with an opportunity to define the fields validation inside a metadata? I mean to impose 'strong types' for the structures metadata contains. So that when adding a field we could optionally define a format/mask/validation rule. That would be good for the scenario when a value gets modified.

Can we expand that with an opportunity to define the fields validation inside a metadata? I mean to impose 'strong types' for the structures metadata contains. So that when adding a field we could optionally define a format/mask/validation rule. That would be good for the scenario when a value gets modified.

I think yes. @Mingela can you create and reference here an issue for it?

Can we expand that with an opportunity to define the fields validation inside a metadata? I mean to impose 'strong types' for the structures metadata contains. So that when adding a field we could optionally define a format/mask/validation rule. That would be good for the scenario when a value gets modified.

I think yes. @Mingela can you create and reference here an issue for it?

https://github.com/hyperledger/iroha/issues/1371 it's there now, apologies for late reply


Static mode

Hey! I'm trying to find a good option for a simple dropdown of values, as the Strapi enumeration does not allow the label/value format. I stumbled on your plugin, and I see it says "Supports static and searchable endpoints—autocomplete". I skimmed through the code but couldn't find any mentions on how to make it work in a "static" mode, is that possible somehow?
I don't want my values to come from an endpoint, but I simply want to be able to set them on the field configuration, something like
value1:label1
value2:label2
value3:label3

I understand that this is not the main use case for your plugin, but if there's a way to do it, please let me know 🙏

At the moment this plugin does not support static mode, this is not a part of this plugin.
To get described behavior you can save static json with your options in the strapi static dir and specify local url to this json in the remote select config


Render transitions as AVI?

Hi everyone,
is it possible to render a slideshow made with glsl-transitions as AVI or any other video format? I would like to render the slideshow server-side not with canvas.toDataUrl() in a browser.
Cheers
Malte

Hi @mschwarzer ,
It is not currently possible because not implemented.
I agree this would be great and technically this should work (WebGL GLSL can be compiled to OpenGL GLSL via ANGLE).
I've started this discussion one year ago on this thread: https://github.com/glslio/transitions.glsl.io/issues/56
Which currently leads to a beginning of implementation of a plugin for "MLT" started by @rectalogic but it is unfinished.

Best would be to natively implement some plugins to MLT/ffmpeg or any other tool but it takes a lot of time to make it.
Another approach might be to try to "emulate WebGL" but this is quite uncertain and probably slower.

This is open to contribution.
Thanks


Added Ledoit Wolf shrinkage covariance estimator

Added Ledoit Wolf shrinkage covariance matrix estimator.
Scikit-learn docs

I added some tests ;)

blocks like
      Nx.multiply(x, mask)
      |> Nx.dot([0], Nx.multiply(x, mask), [0])
      |> Nx.pow(2)
      |> Nx.sum()

occur multiple times. You might create a function simplify this

Sorry for changing a lot of code in the middle of review, but I believe that now it's much more readable

:green_heart: :blue_heart: :purple_heart: :yellow_heart: :heart:

@krstopro if Nx.covariance works, then feel free to merge these changes in seperate pr/commit

@krstopro if Nx.covariance works, then feel free to merge these changes in seperate pr/commit

Sure, but lemme fix #301 first. :)

@norm4nn can also submit a pull request with the Nx.covariance fix if they have the time :)


Output filters

Add a generic output filter facility to timestamper so that it is able to react on xxx occurrences of a matching line within the past yyy seconds. Matching  should be quick, so glob-style would be preferred (but regexp should still be possible).
The filtering facility should incorporate a number of output route so as to be able to send out warnings or similar.

Fixed by e759766091301b1cf6cb467f52e2432dec20fe17.  Triggers are generic and can contain any code.


Error Status Code 500 - Unsure how to troubleshoot (skip or re-try)

Describe the bug
Hi,
I am getting this "Error" status code 500, which I don't see any additional information about. This causes the rendering process to stop, and therefore, I am not sure what the best way is to try again from that point onward or how I can skip the file. I have been able to render Parts 1 to 8 of the course without problem so far. Thanks in advance.
Udacimak Log
× Getting Youtube video id MUZXLvBI2sw information
2019-03-13T01:47:34.099Z [error]: ERROR: status code 500
STACK: Error: status code 500
at Request.response (C:\Users\Andrew Leung\AppData\Roaming\npm\node_modules\udacimak\node_modules\youtube-dl\lib\youtube-dl.js:74:41)
at emitOne (events.js:116:13)
at Request.emit (events.js:211:7)
at Request.onRequestResponse (C:\Users\Andrew Leung\AppData\Roaming\npm\node_modules\udacimak\node_modules\request\request.js:1066:10)
at emitOne (events.js:116:13)
at ClientRequest.emit (events.js:211:7)
at HTTPParser.parserOnIncomingClient (_http_client.js:544:21)
at HTTPParser.parserOnHeadersComplete (_http_common.js:117:17)
at TLSSocket.socketOnData (_http_client.js:440:20)
at emitOne (events.js:116:13)
Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

OS: Windows 10 Home 64bit
Node version: (8.12.0)
npm version: (6.4.1)
Udacimak Version: (v1.3.0)
Browser [Chrome]

Course Information

Nanodegree or Course name: [Data Analyst Nanodegree]
Version: [e.g. v7.0.0]
Locale: [e.g. en-can]

That makes sense, I will definitely keep them separate now. At this point, I'm just getting the  "Error" status code 500 while trying to render to the new folder following the Nanodegree download. To confirm, I'm guessing I should just wait until later to try running it again? Thanks again for all the help, and for creating such an awesome CLI!

Thanks!
I'm not sure what's causing the 500 code error, but waiting a bit later may help.


NGINX ingress 0.16.2 won't start due to mkdir: permission denied

Version: master 7/20
> kubectl logs -n ingress-nginx nginx-ingress-controller-628cq
-------------------------------------------------------------------------------
NGINX Ingress controller
  Release:    154a606-dirty
  Build:      154a606
  Repository: git@github.com:rancher/ingress-nginx.git
-------------------------------------------------------------------------------

F0720 11:35:29.916520       6 main.go:64] mkdir /ingress-controller/ssl: permission denied

Probably needs a definition update according to https://github.com/kubernetes/ingress-nginx/releases/tag/nginx-0.16.2:
Breaking changes:

Running as user requires an update in the deployment manifest.

  securityContext:
    capabilities:
        drop:
        - ALL
        add:
        - NET_BIND_SERVICE
    # www-data -> 33
    runAsUser: 33
Note: the deploy guide contains this change

All automation tests relating to ingress reports failure.

i can still see the problem after adding the security context to the template, using the official image for ingress nginx worker correctly:
system_images:
    ingress: quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.16.2

our image is broken for some reason rancher/nginx-ingress-controller:0.16.2-rancher1

Reverted to the previous nginx ingress controller version to fix master.
@sangeethah we can close this if master is working and will track testing the latest nginx ingress image with #13294

@alena1108 @deniseschannon  I am use tag-and-build.sh to build the ingress-nginx with tag 0.16.2-rancher1.
This is the image I build reg.cnrancher.com/orstar/nginx-ingress-controller:0.16.2-rancher1. I tested it in v2.0.6 by updating the ingress image and delete the daemon set pod and it works.
And I tested rancher/nginx-ingress-controller:0.16.2-rancher1 and got the same errors in this issue.
I would like to check what is wrong while we are building this image.

As I noticed the build info in rancher/nginx-ingress-controller:0.16.2-rancher1 and reg.cnrancher.com/orstar/nginx-ingress-controller:0.16.2-rancher1. It is unusual that we have following build info.
  Release:    154a606-dirty
  Build:      154a606

My build info is
  Release:    0.16.2-rancher1
  Build:      d36d4cc

@orangedeng @deniseschannon I've initially built it using dapper. Rebuilt it using tag-and-build.sh and re-pushed.

@orangedeng can you re-test with the updated image and then if it's working, make a new PR to add in the image again?

@bmdepesa can we run automation to confirm that the updated ingress controller is not hitting this issue?

Running on master now -- will update this comment with results when it's completed.


clean tests to show less warnings

I found a problem with RLP serialization tests. This issue is blocked until #485 is resolved and merged.


AMBARI-23438 : Fix failing metrics unit tests on trunk.

What changes were proposed in this pull request?
Fix failing unit tests on trunk.
How was this patch tested?
mvn clean install on failed tests.

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/Ambari-Github-PullRequest-Builder/1859/
Test FAILed.
Test FAILured.

retest this please

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/Ambari-Github-PullRequest-Builder/1860/
Test PASSed.


tail: fix race condition

fixes #3765
There exists a race condition (RC) that can occur if changes to a path
happen after the initial print loop in uu_tail(), but before the
path is added to the notify-Watcher thread in follow().
@niyaznigmatullin found this RC and identified it as the reason why "gnu/tests/tail-2/F-headers.sh" failed sometimes in the CI and he also came up with a fix for it.
The proposed fix manually handles possible events that could have been missed before.
However, this does not reduce the possibility for the RC to occur, and it uses a lot of duplicate code instead of utilizing the functionality of the Watcher thread together with the handle_event() function.
To minimize the window where the RC can occur, this PR moves starting the
Watcher thread and adding paths to it from follow() to the initial
print loop in uu_tail().
Additionally, to make sure the RC cannot happen in
"gnu/tests/tail-2/F-headers.sh", the error message that is used as a trigger
in this test, is delayed until the path is added to the Watcher thread.
The workarounds for "tests/tail-2/F-headers.sh" in build-gnu.sh should no longer be needed.

@niyaznigmatullin how do you feel about this? thanks

I like the change, but can we move the watcher addition before tail actually writes anything?

I think I found another race condition on detecting the orphans. Because it's detected after follow is run, if a file didn't exist and it's parent directory didn't exist, we print that we cannot access it. And the if it's created, we don't watch it, and it's not detecting that it's an orphan, because the directory could have been created by that time.
As I understand, the idea was, that we need to make sure for each file either it's being watched, or it's parent is watched or it's added to orphans. So the last is not true sometimes.

@niyaznigmatullin Thanks for the feedback. I think both of your points are valid. I'll implement them soon.

This should be good to go.

I tested all tests with timeouts, everything passed but descriptor-vs-rename.sh. I've found the reason, it moves the file:
mv a b and then immediately writes echo y >> b, but when we handle event of renaming, we seek to the end of the new file, skipping the last written part, which never occurs in tail output.
I propose to use old opened reader, since it stores the file descriptor inside it, so no need to recreate one. Proposed change is here: https://github.com/niyaznigmatullin/coreutils/commit/fd145ee1e53e7fc2a6bce9a8c56563bf7bf9f8cb

I tested all tests with timeouts, everything passed

Nice, thanks for testing.

I propose to use old opened reader, since it stores the file descriptor inside it, so no need to recreate one. Proposed change is here: niyaznigmatullin@fd145ee

That looks like a good idea, please open a follow-up PR.
(I would keep the ? for the File::open() call and remove the None case. Otherwise if there is an error, we will never know about it.)


add high-quality blockchain course resource

北大肖臻老师的《区块链技术与应用》公开课，是我迄今为止发现的国内极少数优质的区块链和加密货币相关课程。希望能给加上，对想学习区块链的同学有所帮助。

Looks good to me.

Thank you for your contribution.
This course is for beginners, and this repo is for those guys who already know what is blockchain and wanna get more practical exercises.

Thank you for your contribution.
This course is for beginners, and this repo is for those guys who already know what is blockchain and wanna get more practical exercises.

Sorry, I don't think this course is for beginners who have no idea about blockchain. In my option, this course is at the same level as other courses, like MIT Online Course.

Thank you for your contribution.
This course is for beginners, and this repo is for those guys who already know what is blockchain and wanna get more practical exercises.

Sorry, I don't think this course is for beginners who have no idea about blockchain. In my option, this course is at the same level as other courses, like MIT Online Course.

add WeChatID yanyanho126 to join the group


Requires Elm 0.19.1 but can run on 0.19.0

https://github.com/chazsconi/elm-phoenix-ports/issues/3

Pull request merged:
https://github.com/chazsconi/elm-phoenix-ports/pull/4
Keeping open as not yet published as an Elm package.

Published as 1.1.3
https://package.elm-lang.org/packages/chazsconi/elm-phoenix-ports/1.1.3/


Compose HTML e-mail, not just text in WebUI

Can there be some simple HTML editor to compose HTML e-mail?

I've had some thoughts about it.
We could have a markdown-like editor. Where you type regular text and get to use bold/italic and list items, some way to include images, etc. We could have an HTML preview pane. Just like the github "compose comment". We would compose a message with both the text part and html part. It would probably work well enough for newly composed messages. But replies to fully-designed HTML messages, where would it start from? Should we turn the HTML into markdown and reply to that? Or extract the text of the HTML part and reply to that?
Another option is full HTML editing. Possibly with "content-editable". I think we can still provides a bar of buttons to insert certain markup (bold/italic, colors, as DOM elements), and let users type their text. But would that mean we won't send any plain text part? Or how would we convert to plain text properly? No one wants to type messages twice. Also, the markup of the original message may become messed up (e.g. due to css rules that no longer match properly).
There may be other options and techniques (e.g. browser support for html editing) that make this feasible/relatively easy to implement. I'm not eager to include huge amounts of code just to be able to write html messages.
So far, the first option seems reasonable to me. But some experimentation with the second option should be done. And some research into how other (web)mail-clients are doing html editing.

The main issue I currently see is that when you respond to HTML e-mail, history is erased, and you just see this at the end of e-mail:
>

So the real solution has to be able to respond to HTML e-mail you already received.
I am not really much into controls, but having bold italic, font sizes etc. is fine.
Generally I think the approach is that you either write plain text or HTML, if you write plain text, just plain text is sent, if you write HTML, plain text message with appropritate content is generated as well.

Other mail clients do send email in both text and html. Thunderbird does this too. The results aren't always great. I wouldn't want to send a message that includes a text/plain part that's derived from an html part. There's a good chance it won't be readable. I can still be okay sending an HTML part that is rendered from the markdown (and verified with a preview).
If you want to reply to an html message, include the original html message and make changes (eg add lines before/after), it seems like the contenteditable attribute would be needed. There are probably implications for security (we would add the html content to a DOM the user is interacting with). It would be good to get experience with contenteditable. I probably won't get to it soon...
Another option could be to simply include the original message in a message/rfc822 part if you want to preserve the context. Then you could just write a new plain text part, or an html part (possibly using markdown) and send that as main content. I don't know how well mail applications render such messages. The mox webmail won't render such attached full messages (but it's on the todo list inside webmail/webmail.ts).

Yes, this isn't really trivial task. And I am not really sure what is the best approach for mox. I have just seen some HTML => text when going through my imported e-mails, and it wasn't generally bad. Some standard HTML => text conversion would work, it would be nice to be able to see both HTML and converted text version before sending.
I actually like the markdown idea, but it is limiting with regard to embedded images, and those replies, as modifying reply is a common use case.


Ensure consistency of comparison/ordering with None

Some, maybe all, of the public types in Noda Time may be compared/ordered with null.
This is frequently, but not uniformly, tested by TestHelper methods such as this.

Decide whether implementing comparison/ordering with None is desirable in Python.
In either case, we should be consistent across the public members which we expose.

Something I have been meaning to address for a while is the inconsistencies between different Pyoda Time types' approaches to comparison operators.
I had always intended for the initial, first pass of this port to be as faithful to Noda Time as possible. In retrospect, I may have been a little too faithful in some places. And comparison operators is one such place.
Look at how Instant.__lt__ is defined, for example:
    def __lt__(self, other: Instant) -> bool:
        if isinstance(other, Instant):
            return self.__duration < other.__duration
        return NotImplemented  # type: ignore[unreachable]

Now contrast that with the same method as implemented for Offset:
    def __lt__(self, other: Offset | None) -> bool:
        """Implements the operator ``<`` (less than). See the type documentation for a description of ordering
        semantics.

        :param other: The offset to compare with this one.
        :return: ``True`` if this offset is less than ``other``, otherwise ``False``.
        """
        return isinstance(other, Offset) and self.compare_to(other) < 0

These are subtly different in that:

Instant returns a bool only when two instances of that type are compared, otherwise returning NotImplemented
Offset returns a bool no matter which type is being compared to the current instance.

Also the type hints differ, in that the Offset implementation indicates to type checkers that comparison between Offset and None is permitted.

This stemmed from two key differences between C# and Python, both of which are related to comparison and sorting.
The first difference is:

In Python, comparison and ordering are more or less the same thing; passing a collection/iterable of objects to sorted() uses the same underlying magic methods as expressions like a < b to determine the relative position of items.
In C#, comparison and ordering are distinct concepts. Expressions like a < b are implemented using operator implementations, whereas operations like ArrayList.Sort() (non-generic) and List<T>.Sort() (generic) actually look for implementations of IComparable.CompareTo(object? obj) and/or IComparable<T>.CompareTo(T? other). Now, these may or may not use the same logic under the hood - but the distinction is still important.

Now that we've established that, we can move on to the second difference:

In Python, it is idiomatic for comparison between an instance of a given type and None to raise TypeError (probably by returning NotImplemented). Because sorting in Python uses comparison operators implicitly, this means that sorting a collection which contains a mixture of not-null objects and None will also raise TypeError at some point.
In C#, it is also idiomatic for comparison operators to raise an exception (specifically ArgumentNullException) if either the left or the right operand of a comparison operator expression is null. However - and this is the really good bit - it is idiomatic in C# for a collection containing a combination of objects and null to be sortable. This works because sorting and comparison are two different concepts in C#.

Armed with that information, I have a decision to make as to how best these inconsistencies in Pyoda Time should be addressed:

The first option is to adhere to the sorting behaviour of Noda Time, which allows collections of e.g. Instant and None to be sorted. Remember, in Python sorting operations use comparison operator implementations under the hood - so the implication here is that we would have to allow comparison between e.g. Instant and None.
The second option is to adhere to the comparison operator behaviour of Noda Time, which means returning NotImplemented (read: raising TypeError) for expressions like Instant.min > None, akin to how ArgumentNullException would be raised in C# for such an expression. The implication with this option is that a sorting operation in Python like sorted([Instant.min, None]) would also raise TypeError, whereas in Noda Time calling .Sort() on a collection like new List<Instant?>{ Instant.min, null }; would be perfectly valid.

In the end, I decided that the second option is the right one. For the following reasons:

It would be plain weird to Python users if comparison operators between instances and None actually returned a boolean. The principle of least astonishment applies here. You can't compare datetime.datetime to None, for example.
I suspect that the number of times a comparison to None would actually come up for Python users to be minimal. Especially in the context of collection ordering. (And in any case, it is straightforward to remove None from a collection before sorting.)


Refactor: project structure

This PR moves core code into a folder called "core" inside of /src. Allowing for future code such as Server and respective CLI to be stored in a separate folder.

LGTM


RouteCollector add optional cacheFile parameter to constructor

RouteCollector has method setCacheFile accepting string path, but this cost additional calls in setup of application, it's not possible set cache file trough DI simply. If constructor will contain optional cacheFile parameter it will much simpler. I mean now it's not impossible but tough, much more line of codes 🙂

I'm open to that for sure. Feel free to raise a PR. We can add it as the last parameter of the current constructor.


Fallback to CLI?

Is there a way to fallback to an argparse-like command line interface when the current python is not framework aware?
Or if the gooey program runs inside a CI? I would like to write a CLI command line tool with Gooey interface on top of it

All it take would be:

give user the ability to change the "IGNORE_COMMAND" (--ignore-gooey) parameter to disable gooey. I would prefer to have a --gui option to force the display of gooey, without it:

if --help, display the help message in the console
if all commands are fulled, execute the program without building gooey
if a parameter is missing, display the GUI, and fallback to default CLI behavior in case of wx/python framework issue.

Here is my current solution:

class AutoGooeyExecutor():

    def __init__(self):
        self.auto = True
        self.show_gui = True
        if "--gui" in sys.argv:
            self.auto = False
            self.show_gui = True
        if "--help" in sys.argv or "-h" in sys.argv:
            self.auto = False
            self.show_gui = False

    def execute(self):
        if self.auto:
            print("DBG: auto GUI")
            try:

                @Gooey(dump_build_config=False, program_name="Widget Demo", terminal_font_x=10)
                def gooey_execute():
                    return self.payload()

                return gooey_execute()
            except:
                print("DBG: fallback no GUI")
                return self.payload()
        elif self.show_gui:
            print("DBG: force GUI")

            @Gooey(dump_build_config=False, program_name="Widget Demo", terminal_font_x=10)
            def gooey_execute():
                return self.payload()

            return gooey_execute()
        else:
            print("DBG: fallback no GUI")
            return self.payload()

    def payload(self):
        desc = "Example application to show Gooey's various widgets"
        file_help_msg = "Name of the file you want to process"

        my_cool_parser = GooeyParser(description=desc)
        ....
        return 0

def main():
    age = AutoGooeyExecutor()
    return age.execute()

I also wanted something like this. To have Gooey hide under a subcommand and keep the argparse application working like it was. Here is my workaround:
import argparse
from gooey import Gooey

gui = False;
def main():
    global gui
    parser = argparse.ArgumentParser()
    parser.add_argument('--ignore-gooey', action='store_true', help=argparse.SUPPRESS)

    subparsers = parser.add_subparsers(help='sub-command help', dest="sp")
    if not gui:
        parser_a = subparsers.add_parser('gui', help='Use the GUI')
    subparsers.add_parser('a', help="Subcommand A").add_argument("--a")
    subparsers.add_parser('b', help="Subcommand B").add_argument("--b")
    a = parser.parse_args()
    if a.sp == "gui" or a.ignore_gooey:
        gui = True
        return Gooey(main)()
    print("main flow")

if __name__ == "__main__":
    main()

Doesn't this already exist as --ignore-gooey or am I misunderstanding the ask? https://github.com/chriskiehl/Gooey/commit/f42547fbe8439d9c4d6e812a183c4ef3baf6fc14

Doesn't this already exist as --ignore-gooey or am I misunderstanding the ask? f42547f

Not exactly.

First, the --ignore-gooey option is hardly discoverable and/or understandable by a casual user (as a end user, you can be entitled to wonder "what's gooey???").
Second, it is quite a hassle to type.
Third, it needs to be actively given by the user. (so no way to get "CLI by default, GUI as option")

There are more than one desirable behavior depending on the programmer's intention, but 3 of them that come to mind are:

only start GUI when no arguments are given on the CLI. For this there is a nice and easy hack here https://github.com/chriskiehl/Gooey/issues/449#issuecomment-534056010
only start GUI if a (more discoverable) option or subcommand like gui or --gui is given. This seems to be what is discussed above.
only start CLI if a (more discoverable) option or subcommand like cli or --cli is given. (just the complementary solution compared to above)

None of these case are really served well by --ignore-gooey

Actually, it seems that #203 was an almost spot-on attempt in that direction, but it did not get merged at the time.

Gooey applications should also fall back to the CLI when there is no X display present. I have the one application that I want to run on desktop systems and cloud systems where there is no X display. Passing --ignore-gooey all the time is a pain.

Further to my post earlier, wxPython raises an exception of the display is not available. Gooey could easily catch this and fall back to CLI mode. Would a patch along these lines be welcome?

On systems which plan to use only a CLI, it may be worthwhile to avoid installing Gooey (and wxPython) altogether, which requires importing and using gooey conditionally (which may be combined with checking of presence of arguments and of X display). Here is how this is achieved in Mail Flagger:

You might want to also add
kwargs.pop('gooey_options')

I would like to work on this as well. Would a pull request be accepted that would allow a callback to be provided which would return a boolean to decide whether the gui to be launched?
In gooey_decorator.py add:

  def default_launch_condition():
    if IGNORE_COMMAND in sys.argv:
      sys.argv.remove(IGNORE_COMMAND)
      return True
   return False

In Gooey definition, add launch_condition kwarg
def Gooey(.......
.....
launch_condition=default_launch_condition
)

Then replace line 136-137 with:
    if launch_condition():
      if callable(f):
        return run_without_gooey(f)
      return run_without_gooey

So if for example, if the developer wants to only launch the GUI if no cli arguments are present they could do:
def launch_if_no_args():
    return len(sys.argv) == 1

@Gooey(launch_condition=launch_if_no_args)
def main() ...

Another idea would be to allow just to provide a variable, True or False:
@Gooey(launch_condition=sys.argv==1)
def main() ...

Happy to contribute this as a PR if it's likely to be accepted.

I don't want to change the original CLI code, so I do it like this:
create a new python file named gui.py, and the content is like:
from gooey import Gooey

from <cli> import main

Gooey(main, program_name="<cli>")()  # type: ignore

It works well for me!

A new user here, and I solved this by the following code:
from gooey import Gooey
@Gooey(advanced=True)
def gui( argv ):
  main(argv)

if __name__ == "__main__":
  if len(sys.argv) > 1 and sys.argv[1]=='--gui':
    gui(sys.argv[1:])
  else :
    main(sys.argv)

Here it defaults to CLI, but you can use this technique to default to either GUI or CLI, depending on your needs.

For those who need to implement a custom functionality where you have a custom CLI function and a custom GUI function, this is for you.
With this solution, I didn't need to specify an extra argument to just use the CLI mode, as previously noted by using --ignore-gooey. Also -- and this is a big plus for me -- I was able to define a custom CLI mode that was based on the Click library, which in my opinion works way better than the standard CLI mode that comes from Gooey -- I'm sorry Gooey, but Click is WAY better for CLI.

Whenever we run the script without arguments, the cli_app() is called, whereas whenever there are arguments the cli_app() is called.
import sys
from cli_app import cli_app
from gui_app import gui_app

def main():
  if len(sys.argv) == 1 or '--using-gooey' in sys.argv:
    # If there's no argument, then we run the GUI, or if there are arguments but they contain
    # '--using-gooey', then it means that Gooey is re-executing the script with the selected
    # parameters from the UI, which means we have to run the GUI again
    gui_app()
  else:
    cli_app()

if __name__ == "__main__":
  main()

The main problem I was having was that Gooey would execute the script again after all the arguments and options in the UI were selected and I clicked on Start. To bypass that I had to inject a custom hidden option called --using-gooey to all my subparsers such that whenever Gooey re-executes the script with its parameters from the UI, the gui_app() is called again.
Here is the added code in the Gooey side for this to work:
(I've added more code for completeness)
def gui_app():
  parser = GooeyParser()

  # Create a single subparsers object
  # Note: 'required=True' ensures a subparser must be chosen
  subparsers = parser.add_subparsers(dest='command', required=True)

  command1_subparser = subparsers.add_parser('command1')
  command1_group1 = command1_subparser .add_argument_group(
    'Command 1'
  )
  command1_group1 .add_argument(
    '--using-gooey',
    default=True,
    action="store_true",
    gooey_options={'visible': False}
  )

  command2_subparser = subparsers.add_parser('command2')
  command2_group1 = command2_subparser .add_argument_group(
    'Command 2'
  )
  command2_group1 .add_argument(
    '--using-gooey',
    default=True,
    action="store_true",
    gooey_options={'visible': False}
  )


Bug: sample of pages doesn't switch between the tabs correctly when in RTL

See this:
https://github.com/tejpratap46/RecyclerCalendarAndroid/issues/1#issuecomment-590765621

Android View Pager does not support RTL automatically as Pager Tabs does.
We can achieve RTL be reversing View Pager Fragment Order and setting last Fragment as viewPager.setCurrentItem(lastFragment) but this demo is not to demonstrate how make View Pager support RTL.
For demo case, just forced Tabs to LTR when RTL is detected.

That's incorrect. You need to update it to the ViewPager2 .


Enscoresw 1971

Added transl_table qualifier to genbank and embl flat file dumps (if codon_table attribute is available in seq_region_attribute table for that region)

Coverage increased (+0.01%) to 81.552% when pulling 0cdc48aa417b3aedca8b6a22c69a1220e6a6e5dc on ENSCORESW-1971 into be61b7c2181097ad33610eac095c24a4cb9a0344 on master.

Coverage increased (+0.01%) to 81.552% when pulling 6a9b33750092590c3cb31603a11587c81d696bae on ENSCORESW-1971 into be61b7c2181097ad33610eac095c24a4cb9a0344 on master.

Looks fine


Source maps aren't present with new project using ng test (1.2.6)

Bug Report or Feature Request (mark with an x)
- [x] bug report -> please search issues before submitting
- [ ] feature request

Versions.
@angular/cli: 1.2.6
node: 8.2.1
os: darwin x64
@angular/animations: 4.3.2
@angular/common: 4.3.2
@angular/compiler: 4.3.2
@angular/core: 4.3.2
@angular/forms: 4.3.2
@angular/http: 4.3.2
@angular/platform-browser: 4.3.2
@angular/platform-browser-dynamic: 4.3.2
@angular/router: 4.3.2
@angular/cli: 1.2.6
@angular/compiler-cli: 4.3.2
@angular/language-service: 4.3.2

Repro steps.

Create a new angular cli project with cli 1.2.6
Install dependencies
Run ng test
In Chrome, click the DEBUG button
Open Chrome Dev Tools and attempt to open app.component.ts

EXPECTED: File is present (due to a sourcemap)
ACTUAL: File can't be found
Also, it looks like no sourcemaps are being created for the files: Here's the sources tree under webpack://:

Actually if you try to reload the test debugger page, you'll see the sourcemaps

Hmm...you're right. I swear I tried that, but now it's working after a refresh. Sorry for the noise!


Request and couple of questions about mafCompare

Request
Hi Anand,
I am interested in mafCompare with confounding factor(s) adjustment. For instance, I would like to adjust the comparison for 'histology type' and 'subtype' of cancer. Please suggest if there is a way to do it with mafCompare? or any other better way?
Question
When performing mafCompare would you suggest using all 'mutated coding genes' or 'significantly mutated genes' like the one identified using MuSic2?
Thanks,
Praveen

Hi Praveen,

Unfortunately I am not aware of any such tools. Also wouldn't it be easier just to compare samples belonging to same histology types?
You can use all the genes. SMGs would anyways be there in the top genes. Non-driver mutations wont be show up in the results as well if the frequency is too low.

Hi Anand,
Thank you so much.  For the 1st question I am trying to include all samples as one histology type sample is a small number.
Thanks,
Praveen

Hi Anand,
Can you please let me know how to gene summary for samples? With getGeneSummary I am getting gene's and its associated mutation type but I would like sample wise data like the one used for oncoplot (like below)? Could you please suggest?
| sample1 | sample2 | sample3 | sample4 | sample5 | sample6 | sample7 | sample8
-- | -- | -- | -- | -- | -- | -- | -- | --
Gene1 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 1
Gene2 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 1
Gene3 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 1
Gene4 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 1
Thanks,
Praveen

Hi Praveen,

Sample size should be accounted for in Fisher's test. But unfortunately, I am not aware of any other sophisticated methods to perform DMG analysis :|

You can use mutCountMatrix() function to create such matrices.

Hope this helps.

Hi Anand,
Thank you so much. I find plink package http://zzz.bwh.harvard.edu/plink/ for the inclusion of covariates. I will be exploring more and let you know how it goes.
Thanks,
Praveen

From what I have known, Plink is meant for population genetics and association studies. I don't think it suits your purpose.

Hi Anand,
Thank you. Yes it was population genetics. I was trying to borrow a statistical test to achieve DMG with covariates. Logistic regression with additive terms sounds good. Please let me know if you have any thoughts on that.
Thanks,
Praveen

Hi Anand,
Just want to let you know that I ended using firth logistic regression from the ‘logistf package.
Thanks,
Praveen


Upgrade to 4.x

Thank you for your submission. I have been a little busy at work recently, so the reply is late. I will review it in detail during the October holiday in a few days and test it.
But first I found that many .cache files have been submitted. Can these files be ignored?


doom-autoload-error, "autoloads.pkg.el", (void-variable evilmi-jump-items) in latest develop

Observed behavior
doom refresh output
In toplevel form:
autoloads.pkg.el:3890:1:Warning: misplaced interactive spec: ‘(interactive
    "P")’
Copied backup to /Users/bharat/.emacs.d/.local/autoloads.pkg.el.bk
Deleted old autoloads.pkg.el
--------------------------------------------------

There was an unexpected error:
  Error in an autoloads file (doom-autoload-error)
  autoloads.pkg.el
  (void-variable evilmi-jump-items)

Run the command again with the -d (or --debug) option to enable debug
mode and, hopefully, generate a stack trace. If you decide to file a bug
report, please include it!

Emacs outputs to standard error, so you’ll need to redirect stderr to
stdout to pipe this to a file or clipboard!

  e.g. doom -d install 2>&1 | clipboard-program
Error in Doom Emacs core: doom-autoload-error, "autoloads.pkg.el", (void-variable evilmi-jump-items)

Finished!

Expected behavior
doom emacs should open properly
Steps to reproduce

Fresh clone doom-emacs
Checkout develop branch
Run make install

System information

Click to expand
Doom Doctor
Emacs v27.0.50
Doom v2.0.9 (869758e8)
shell: /bin/zsh
Compiled with:
  RSVG IMAGEMAGICK GLIB NOTIFY KQUEUE ACL GNUTLS LIBXML2 ZLIB TOOLKIT_SCROLL_BARS
  NS MODULES THREADS LCMS2 GMP
uname -a:
  Darwin 192-168-1-105.tpgi.com.au 18.2.0 Darwin Kernel Version 18.2.0: Mon Nov 12
  20:24:46 PST 2018; root:xnu-4903.231.4~2/RELEASE_X86_64 x86_64

Checking your OS...
Checking your fonts...
Checking gnutls/openssl...
Testing your root certificates...
Checking for GNU/BSD tar...
Attempt to load DOOM: failed (Your package autoloads are missing! Run
  ‘bin/doom refresh’ to regenerate them)

This is a duplicate of #1077 and #1078.
For posterity, I'll leave my response to #1077 here. Please leave this issue open. I will close it when the issue is resolved upstream.

[This autoload error is] caused by the latest version of the evil-matchit package. There's a PR open to address it.
In the meantime, you can add this to your ~/.doom.d/packages.el file to get around it:
(package! evil-matchit :recipe (:fetcher github :repo "redguardtoo/evil-matchit" :commit "7d65b4167b1f0086c2b42b3aec805e47a0d355c4"))

Afterwards, don't forget to run ~/.emacs.d/bin/doom refresh (or make in ~/.emacs.d, they're the same thing).

Thanks. Good emacs working with the above code 😃.

Thanks.


Setup initial state for testing

This is a...

[ ] feature request
[ ] bug report
[x ] usage question

What toolchain are you using for transpilation/bundling?

[x] @angular/cli
[ ] Custom @ngTools/webpack
[ ] Raw ngc
[ ] SystemJS
[] Rollup
[ ] Other

Environment
NodeJS Version: 8.6.0
Typescript Version: 2.5.2
Angular Version: 4.4
@angular-redux/store version: 6.5.7
@angular/cli version: (if applicable) 1.3.2
OS: OSX 10.12.5
I would like to know how can I setup the initial state in my tests.
This is how I build the module for the test:
 beforeEach(async(() => {     TestBed.configureTestingModule({       declarations: [ ChartTypeComponent ],       imports: [         NgReduxTestingModule,         TranslateModule.forRoot({           loader: {provide: TranslateLoader, useClass: FakeLoader},         })       ],       schemas: [ NO_ERRORS_SCHEMA ],       providers: [         ControlActions,         TranslateService       ]     })       .compileComponents();     MockNgRedux.reset();   }));
I have tried to provide a MockNgRedux to the providers sections:
{ provide: NgRedux, useValue: MockNgRedux.getInstance().configureStore(MyReducers, Initial_state, [], []) }
Are there any example of how to setup initial state and reducers for test?
Thanks in advance.

For testing current state it's possible to mock getState
spyOn(MockNgRedux.getInstance(), "getState").and.callFake(() => {});


undefined method `fetch' for false:FalseClasserProfile: AND no implicit conversion of nil into Stringr UserProfile:

When I reap simple tables with no associations it seems to work fine, for example if I reap ONLY User and Community, individually, or together.
However, when I try to reap User, Community, AND UserProfile I consistently get one of the following two errors (depending upon what subset of the data I try to reap):
no implicit conversion of nil into Stringr UserProfile:
(possible clue: that extra 'r' after the word String?)
or
undefined method fetch' for false:FalseClasserProfile:`
the UserProfile table has 2 'parent' tables:
belongs_to :user
accepts_nested_attributes_for :user
belongs_to :community
accepts_nested_attributes_for :community
(User has_one :user_profile, and COmmunity has_many :user_profiles)
Even when I define a method self.for_seed_db which is so specific it selects a single User and UserProfile, and run
rake db:seed:reap TARGET_ENV=development MODELS=UserProfile.for_seed_db,User.for_seed_db,Community
I get the error no implicit conversion of nil into Stringr UserProfile:
but it correctly reaps the single User and the set of Communities.
Adding OMIT_EMPTY_ATTRS=true doesn't help.
Any thoughts what could prevent a specific table from being reaped and giving either of those two errors?
Rails 3.2.21, ruby 2.1.5, running on a Mac.

I dug around and couldn't figure out any points of failure in Sprig-Reap that would throw those errors.  Are the classes referenced in those errors, Stringr and FalseClasserProfile, defined in your application?
Sprig-Reap appears to be calling methods from your application code on things that are nil or false.  It's hard for me to tell what exactly those method calls are without more context or a bigger stack trace.
Could you either show me the User & UserProfile models or a bigger stack trace to see if it sheds any light on where the error is originating from?

Hi neither Stringr nor FalseClasserProfile occur in our source code anywhere. I'll work on getting a detailed stack trace, thanks. The stringr thing made me wonder if it's possible there's a typo in your code that under certain conditions a nil object is being converted to class called stringr instead of string.

the error messages are misleading, the output is actually getting overwritten, see this PR: https://github.com/vigetlabs/sprig-reap/pull/26


Revise runtime/lang/Makefile

Use predefined variables ($@, $<) instead of the actual file names.
(Adding new rules should become easier.)
Adjust spacing.
Regenerate converted menu files.

thanks!


Add ChangeLog to website

Closes #554
Description

Add changelog to website

Checklist

[x] Code style is correct (follows pylint and black guidelines)
[x] Proper documentation (with an example if appropriate)

The changelog file (https://github.com/arviz-devs/preliz/blob/main/CHANGELOG.md) is updated automatically with every release, we should use that file  for the webpage too.

The changelog file (https://github.com/arviz-devs/preliz/blob/main/CHANGELOG.md) is updated automatically with every release, we should use that file for the webpage too.

Have made the change...
Forgot it was generated automatically


Support for caching query results with SSG site

This module is working great for me with Nuxt 3, thank you.
However, I've recently tried to convert a site to SSG using nuxi generate. I can see all the routes are created in .output/public and the content is in place. However, when I load a page, the sanity query is still being run on the client side.
I've tried a few combinations for ssr: and target: with no success.
Is this module ready for to be used with nuxi generate?
Thank again

Ah, I hadn't fully appreciated the difference between full static and Nuxt3 SSG so thanks for the clarification @danielroe.
If Sanity responses were cached on nuxt generate, does that create close to the 'full static' approach? Personally, I think I'd almost always use globally cached sanity queries if that were the case and the option available.
I'll look at Nuxt Content to see if I can get a more thorough understanding 👍

Yes, it would be very close to full static.
But it would need to be experimental so we could deprecate it if/when we have framework support for full static.

Thanks Rylan. On Vercel, there were client side requests to Sanity on navigation between routes.
However, full static is now working perfectly using https://github.com/danielroe/nuxt-full-static and Nuxt v3.0.0-rc.7


Android SDK Integration Test app fails

I'm consistently getting failures in the Android SDK integration test

I'm using version v1.2.13 (latest)
BroadcasterReceiver is configured correctly
This point is not relevant to react-native apps and there is no documentation to suggest this is required.

@af-fess can you please help?

I can also see in the AppsFlyer Overview screen that the AppsFlyer_Test media source is being tracked

Hi @willbt Do you run the test on Android O? if so , we have issue with this OS and will be fixed shortly.

I'm getting the same error on Android 9.0 in the Emulator.
I added the BroadcastReceiver definition to Manifest.xml like the error said but that didn't seem to help.

Set up the Android 7.0 emulator and seems to be working for now


[WIP] Add conversion to AMBER and GROMACS formats

Here I'll add conversion to AMBER and GROMACS formats as per #184 :

[ ] Convert to AMBER format
[ ] Convert to GROMACS format
[ ] Add test validating energies before and after conversion

Several other issues were fixed in the process:

[x] Extraneous print statement removed
[x] Better debug info for a nonbonded force exception
[x] Fix #186 bug with charges
[x] Fix documentation issue noted in #186

Other things to fix as well:

[ ] Add a test that multiple instances of a particular molecule in a system get correct charges (not just the first molecule) per #186

I'm continuing to work on conversion, but there is some sort of issue with exclusions appearing twice (?) in the resulting AMBER prmtop and crd files, so I've raised an issue on parmed: https://github.com/ParmEd/ParmEd/issues/784

Currently I'm running into an issue where one of the exclusions in ethanol has a different charge-charge interaction parameter when round-tripping from ParmEd versus originally in our OpenMM system.
AssertionError: Error: NonBondedForce Exception atom (2702, 2705) has charge values of -0.026858 and -0.022381 elementary charge, respectively.

This is a OH-HC 1-4 interaction. The product of the charges on the atoms in both topologies gives me the -0.0268 value, so I'm not sure where the -0.022 value is coming from. I wonder if this is somehow related to the alternate value of the Coulomb constant used in AMBER. Checking.

Differences in Coulomb constant don't seem to explain it; the difference is far too small. 332.0522 in AMBER, and the most different other code has 332.0637 or so.
Also, it's odd that this only occurs here and in none of our prior tests. I wonder if I have some sort of lingering issue with copying charges, where the forces in OpenMM are somehow being applied with slightly different charges than are originally in the molecules or some such. Investigating...

Aha! The difference is 0.833333, which is the 1-4 electrostatics scale factor. So ParmEd or OpenMM is picking up an extra factor of 0.83333 in the conversion, it seems. Investigating.

@swails, @jchodera -- I'm creating an OpenMM system from our SMIRFF format via code by the below, writing out to AMBER parameter/crd, reading back in, and cross-checking the energy from the AMBER files vs the original system to make sure it is still the same, and I'm picking up or missing a factor of 0.83333 in the 1-4 Coulomb interactions, probably inside ParmEd somewhere though it could be in OpenMM (it's not in this package since we don't work with the 1-4 interactions other than just setting the scale factor, and we DO normally reproduce AMBER energies -- so it seems to be the ParmEd round trip which is messing things up). Any insights as to where this could be?
Here's how I create the system and compare energies:
from smarty.forcefield import *
import parmed
import openeye.oechem as oechem
from simtk.openmm.app import PDBFile
pdbfile = PDBFile('cyclohexane_ethanol_0.4_0.6.pdb')
ff = ForceField('../../smarty/data/forcefield/Frosst_AlkEtOH.ffxml')

mols = []
flavor = oechem.OEIFlavor_Generic_Default | oechem.OEIFlavor_MOL2_Default | oechem.OEIFlavor_MOL2_Forcefield
for molname in ['cyclohexane', 'ethanol']:
    ifs = oechem.oemolistream(molname+'.mol2')
    ifs.SetFlavor( oechem.OEFormat_MOL2, flavor)
    mol = oechem.OEGraphMol()
    while oechem.OEReadMolecule(ifs, mol):
        oechem.OETriposAtomNames(mol)
        mols.append(oechem.OEGraphMol(mol))

system = ff.createSystem( pdbfile.topology, mols)
#Swap in positions
integrator = openmm.VerletIntegrator(1.0 * unit.femtoseconds)
context = openmm.Context(system, integrator)
context.setPositions(pdbfile.positions)
# Create parmed Structure
structure = parmed.openmm.topsystem.load_topology( pdbfile.topology, system, pdbfile.positions)
# Write AMBER parameter/crd
structure.save('system.prmtop', overwrite=True)
structure.save('system.crd', format='rst7', overwrite=True)

# Evaluate energy of OpenMM system and AMBER system to check that they are still the same
from smarty.forcefield_utils import *
parm = parmed.load_file('system.prmtop', 'system.crd')
ambersys = parm.createSystem(nonbondedMethod= app.NoCutoff, constraints = None, implicitSolvent = None)
groups0, groups1, energy0, energy1 = compare_system_energies( parm.topology, pdbfile.topology, ambersys, system, pdbfile.positions)

The energy comparison at the end results in an error for the OH~HC 1-4 interaction, where the scaled product of the charges output by OpenMM's getExceptionParameters differs by a factor of 0.83333 depending on whether the system is coming from ParmEd output to AMBER format read back in by ParmEd, or from the original system without any output.

@swails and @jchodera - I serialized the XML for the relevant OpenMM systems and stored them to disk; I'm attaching them here (they are also in the most recent commit). @swails , this should allow you to grab the OpenMM systems in question without having to have the OpenEye toolkits.
If you get the latest openmoltools from GitHub (github.com/choderalab/openmoltools), you should be able to load these files and then use:
from simtk.openmm.app import PDBFile
from simtk.openmm import XmlSerializer
from simtk.openmm.app import Topology
from simtk import openmm
# I might be missing a couple of imports here
smirff_system = XmlSerializer.deserialize(serialized_system_smirff)
amber_system = XmlSerializer.deserialize(serialized_system_amber)
pdbfile = PDBFile('cyclohexane_ethanol_0.4_0.6.pdb')

# Do an energy comparison
timestep = 1.0 * unit.femtoseconds
integrator0 = simtk.openmm.VerletIntegrator( timestep )
integrator1 = simtk.openmm.VerletIntegrator( timestep )
platform = simtk.openmm.Platform.getPlatformByName("Reference")
positions = pdbfile.positions
simulation0 = app.Simulation( pdbfile.topology, smirff_system, integrator0, platform = platform )
simulation0.context.setPositions(positions)
simulation1 = app.Simulation( parm.topology, amber_system, integrator1, platform = platform )
simulation1.context.setPositions(positions)
syscheck = system_checker.SystemChecker( simulation0, simulation1 )
groups0, groups1 = syscheck.check_energy_groups(skip_assert = False)
energy0, energy1 = syscheck.check_energies(skip_assert = False)

to cross-compare energies.
At this point, this does NOT yet reproduce my earlier bug specifically; instead, I actually get an earlier error which relates to a large difference in nonbonded energy difference (though possibly it's from the same problem). So at this point, I tentatively think there's a separate bug in serialization of the XML.
I have not yet cross-compared the XML files.
XML_systems.zip

@davidlmobley -- can you make a file that I can read back in to create a Topology in ParmEd?
If you go back to your original file, after you use parmed.load_topology, save the resulting Structure to a mol2 file and send that to me.  mol2 files contain all of the information necessary to rebuild the Topology faithfully.  Then I can use that to create a Topology, deserialize the System, and try to reproduce the problem.

A PDB file will also work for OpenMM Topology objects.

and I'm picking up or missing a factor of 0.83333 in the 1-4 Coulomb interactions, probably inside ParmEd somewhere though it could be in OpenMM

It's probably in ParmEd.  If you get me the mol2 file and System XML file, I should hopefully be able to nail down what's happening.

A PDB file will also work for OpenMM Topology objects.

Mol2 files are better for this test -- they store bond info (with PDBs, ParmEd would have to guess at it).

@swails - sorry, I meant to attach the PDB but forgot (that's where I'm getting the Topology from).
cyclohexane_ethanol_0.4_0.6.pdb.zip
Note everything IS on GitHub -- see https://github.com/open-forcefield-group/smarty/tree/issue184/examples/testing/test_system_conversion where you can pull the IPython notebook I'm using for this and all the supporting files. The code I pasted above is at the bottom of the notebook.

@swails - I'm also happy to save a .mol2 of the topology and will attempt to do so now.

@swails - here's a .mol2 of the Structure created via
structure = parmed.openmm.topsystem.load_topology( pdbfile.topology, system, pdbfile.positions)
structure.save('swails.mol2')

which hopefully is what you're after.
swails.mol2.gz

@swails - just wanted to make sure you saw the above, though I understand if you're out for the holiday weekend.

I've seen it. I'll try to get to it tomorrow or Sunday.
Happy holidays!
--
Jason M. Swails

On Nov 25, 2016, at 5:18 PM, David L. Mobley<EMAIL_ADDRESS>wrote:
@swails - just wanted to make sure you saw the above, though I understand if you're out for the holiday weekend.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

@swails - any success?

Hi @davidlmobley -- sorry it took me awhile to get to this.  I did finally manage to find some time, and I have a fix for the duplicate exception parameter error in ParmEd/ParmEd#789.  Give that code a try when you get a chance.  Some really old code that I had completely forgotten existed was causing the problem.
I doubt that it fixed the 1/1.2-factor error in the 1-4 electrostatic calculation, but that will hopefully not be as hard to find.

Thanks, @swails - I probably can't try today but will likely try asap tomorrow, as I need this to proceed with something I need for a paper. :)

Note to self: I can no longer reproduce my 1-4 scaling factor issue; in fact, currently, a round-trip of the system to AMBER format and back results in the same energy, as does serialization/deserialization from OpenMM. So, everything seems good now.
Proceeding.

Currently running into issues after converting to GROMACS format; I seem to have found a ParmEd bug (https://github.com/ParmEd/ParmEd/issues/791 ). Otherwise I am close to done with this.

ParmEd https://github.com/ParmEd/ParmEd/pull/794 fixes these issues, so now I can reproduce energies before/after saving to AMBER and GROMACS format. I'll clean up my notebook that does this, commit it, then get tests, etc. included.

woohoo!

Tests will likely fail because of needing a new parmed release incorporating recent bugfixes.

Yes, currently I have all the issues fixed except the problem with the older version of parmed, so this is waiting on a new release.
However, I'd also like to have a test comparing energies against AMBER on a complete system (which would catch bugs in handling of additional molecules after the first, as in #186).  I'm trying to figure out if I can get a parm99 parameterized system without too much trouble for cross-comparison (at this point all the full systems I have use GAFF).

@limn1 or @bannanc - could one of you do code review on this really quickly sometime today to see if you see any issues/problems? Especially on forcefield.py and forcefield_utils.py; there are a variety of other files modified but these shouldn't be important to review.

(Tests won't pass until after https://github.com/omnia-md/conda-recipes/pull/655 is merged, presumably.)

@davidlmobley I can code review, I'm heading to a seminar soon so it might be later this afternoon.

ParmEd update is now conda installable, so this passes. Merging.


Close Date - Pulling Close Number Correctly But Date Function Is Showing Day Before - Unsure How to Resolve

This could be a JavaScript UTC date issue.


04/16/2018 02:55 : Create Pull Request for branch prTesting_2018041602 -> master

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

split/updateTestRef.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


pkg/dartdev/test/commands/doc_test flaky -> Timeout

There are new test failures on Convert more methods from KeywordContributor...[dart2wasm] Extend _makeFunctionType for functions with multiple return values.
The tests
pkg/dartdev/test/commands/doc_test Timeout (expected Pass)

are failing on configurations
unittest-asserts-debug-linux

Log: https://dart-ci.appspot.com/log/pkg-linux-debug/unittest-asserts-debug-linux/18024/pkg/dartdev/test/commands/doc_test

CC @bwilkerson

The test was flaky, and then started failing consistently. So this timeout is not necessarily caused by the mentioned CLs.

Is there a page showing the status of this test for every commit? I just ran it locally at HEAD (425182ccf860fcb1807cb26ddd166fedfabc2302) and it finished in 2 minutes, which I think is standard. In the failure linked above, it took at least 14 minutes.

Note that it is timing out in debug mode (unittest-asserts-debug-linux), which is probably slower than release.

OK the Golem bots show that we've returned to normal, and a local Debug64 test of doc_test.dart showed a normal completion time. Is this good to close?

The test is still failing with timeout on unittest-asserts-debug-linux configuration: https://dart-current-results.web.app/#/filter=pkg/dartdev/test/commands/doc_test&showAll.
Log: https://dart-ci.appspot.com/log/any/unittest-asserts-debug-linux/18057/pkg/dartdev/test/commands/doc_test.
If this is an expected behavior, we can increase its timeout or skip this test in debug mode.

No I think 14 minutes is unexpectedly long...

I'm working on a CR at the moment, but I will prioritize this ASAP.


Rework the Entity interface

Currently any fields or methods defined on Entity (like 'id' or 'identify') will clash with fields of the same name in a schema. To fix this, we'll "hide" all such internal fields using a Symbol key, so only schema-based fields are ever directly set on the Entity object itself.
This complicates access to the internals. Entity now provides static accessors to them, and Particle has a small number of helpers around those. I've left a few trap getters to try and catch incorrect uses of id, rawData and dataClone - these will be removed fairly soon.
#3147

BTW, this change is amazing! That's a really clean solution.


fix: Ensure session respects router scope when using sign_in_route helper

This fixes #489 by ensuring that the session options reflect the scoped path by using Phoenix.Router.scoped rather than just the literal string path passed into the helper.

Surely this would be a breaking change for existing users who have this code inside a scope. I think this will need to wait for a major version change.

Or potentially we could use it in the new router code we're working on here actually. https://github.com/team-alembic/ash_authentication_phoenix/pull/487
The new router code will be supported in tandem with the old until the next major version change.
There are still some kinks to work out though so it might take some time for that branch to be merged.

Surely this would be a breaking change for existing users who have this code inside a scope. I think this will need to wait for a major version change.

It would be if using another scope other than "/"  worked. Presently, using the helper in anything but the "/" scope results in incorrect routes (and unknown route errors) in the form links.
On that basis I think it's a safe fix as it doesn't affect routes under "/" whilst any other scope is now essentially "unbroken".
If you decide to merge i think perhaps it deserves a mention in the documentation or the release notes.

Or potentially we could use it in the new router code we're working on here actually. #487
The new router code will be supported in tandem with the old until the next major version change.
There are still some kinks to work out though so it might take some time for that branch to be merged.

I'm happy to take a look at that, it would be nice to simplify the route handling if possible.

Thanks @ahacking for the contribution 🚀

It would be if using another scope other than "/" worked. Presently, using the helper in anything but the "/" scope results in incorrect routes (and unknown route errors) in the form links.

Maybe we can add some tests to prove this?

🤔 We want to be 100% sure that we aren't introducing a breaking change. For instance, folks might not be using the default sign in route code, but will be using the other code, etc. It's hard to say with these utilities what behavior people are/aren't relying on. I think our best bet here is to implement this as part of the general routing improvements in the PR that I linked.  That PR isn't finished, but I will be getting back to it in the next day or two.

Thanks @ahacking for the contribution 🚀

It would be if using another scope other than "/" worked. Presently, using the helper in anything but the "/" scope results in incorrect routes (and unknown route errors) in the form links.

Maybe we can add some tests to prove this?

Sure I did look to see what existing tests were there but it was quite thin. It might be a few days before I get some time to work up some tests suitable for a PR, but I will get to it.

@ahacking you're right that this routing logic is not tested. It's quite thin at the moment, with AshAuthenticationPhoenix being a thin web-layer-wrapper for AshAuthentication. I will add some tests in my other PR, then we can base your fixes on that branch. Or perhaps I should just incorporate your changes :)

In retrospect, I think this should be fine. This currently only impacts only the sign_in_route macro. If that singular macro "does the wrong thing" with any scope other than "/" then you're right, this should be fine. I misread this change at first thinking it affected more than that one macro.
I think this is safe to merge as is @jimsynz. I'm working to set up some routes test separately.

I've factored in these changes to my branch as well, so I can properly test it. I think its fine to merge here, but I'll leave it up to @jimsynz to either merge this or close it in favor of my PR.

@ahacking you're right that this routing logic is not tested. It's quite thin at the moment, with AshAuthenticationPhoenix being a thin web-layer-wrapper for AshAuthentication. I will add some tests in my other PR, then we can base your fixes on that branch. Or perhaps I should just incorporate your changes :)

Ok I was looking at phx_test as a way to embed a minimal ash phoenix app for testing. The only other example I found of doing something like this was phoenix dashboard, but it does it all in one file, quite unlike a regular phoenix app.
What are thoughts or preferred approach for testing a fully integrated app with this library that has all the deps, Phoenix router, controller and resource backend?

I've factored in these changes to my branch as well, so I can properly test it. I think its fine to merge here, but I'll leave it up to @jimsynz to either merge this or close it in favor of my PR.

There is no rush to merge this from me as I'm using my fork in the meantime. I'll try and get some tests worked up this evening (I'm based in Australia GMT+10) so that we have more confidence in the change.

I've tested this extensively manually on my other branch :)
I've also begun the story on testing the phoenix side of things (not much, but it is at least a place we can start for regression tests/new changes etc.)

Changes incorporated into https://github.com/team-alembic/ash_authentication_phoenix/pull/487


fix(azure): existing file regression

This change https://github.com/chainloop-dev/chainloop/pull/390/files?diff=split&w=0#r1360718603 introduced a regression in the Azure code.
The problem was that in Azure, we were returning a pointer to a custom error (instead of the error value), confusing errors.As.
This change makes sure we return always a concrete type and we leverage the already existing backend.isNotFound method.

@danlishka you pointed out this code change and I was wrong in my answer, sorry about it.


RAM disk

Summary of the new feature/enhancement
Now that a modern desktop PCs comes with a ton of RAM, it would be awesome to have a MS-supported RAM-disk solution. Modern SSDs are fast, but not a match for a fast DDR4 unit.
It could be used as a:

"transient" tmp folder
storage for compilation artifacts/system headers directory(build time improvements, yay!)
any HDD-intensive application

Also It might be able to automatically copy some folder on it on Windows startup and periodically write-back changes.

neat idea

Bumping this as I also had this idea without being aware that it was proposed before. We could perhaps use ImDisk as a starting point with author's permission. We could start with some very basic functionality and then add more features between PT releases.


fix(card): not clearing margin on last button in end alignment

We have some styles that clear the margin from the first button, but we didn't apply the same to the last button if the card actions are aligned towards the end.
Fixes #20024.

@crisbeto Looks like this breaks ~20 targets inside Google, mostly screenshot tests. Looking at the diffs, some of them are a bit off. Probably not worth the effort to update everything for now

The screenshot failures are expected, because it removes some margin that wasn't supposed to be there in the first place.

Not sure if I can comment on a pull request, but it seems like .mat-flat-button, is not taken into consideration for the margins. Is this on purpose?


Subroutine for linearization of Cycles in the NFA

Operations like * and + induce cycles in a traditional NFA. We need a linearization method that can handle subgraphs operands

Things to test:

[ ] Nested stars...
[ ] Plus procedure
[ ] One node subgraphs
[ ] Linear subgraphs


If you hide the main interface, you will encounter this problem, if you don't hide this problem will be solved

If you hide the main interface, you will encounter this problem, if you don't hide this problem will be solved

So basically i need to keep the app on the screen while i play ;/ ?

如果你隐藏主界面，你会遇到这个问题，如果你不隐藏这个问题就会得到解决

所以基本上我需要在玩游戏时将应用程序保持在屏幕上 ;/ ？
Yes, we can solve this problem in this way before the author updates.

If you hide the main interface, you will encounter this problem, if you don't hide this problem will be solved

So basically i need to keep the app on the screen while i play ;/ ?

Yes, we can solve this problem in this way before the author updates.

Thank you so much for the tip <3


suggestion about headers

It would be nice that if headers be represented by something else than a native case-sensitive array instead of wrapping up
<?php

final class HeaderArray implements ArrayAccess, IteratorAggregate
{
	static public function camelcaseKey($k)
	{ // most web browsers compat
		$k  = strtolower($k);
		$kk = "";
		if ($k == "x-real-ip") {
			$kk = "X-Real-IP";
		} else if ($k == "x-client-ip") {
			$kk = "X-Client-IP";
		} elseif ($k == "x-uidh") {
			$kk = "X-UIDH";
		} elseif ($k == "x-wap-profile") {
			$kk = "x-wap-profile";
		} elseif ($k == "www-authenticate") {
			$kk = "WWW-Authenticate";
		} else {
			$kk = str_replace(
				" "
				, "-"
				, ucwords(strtolower(str_replace('-', ' ', $k))
			));
		}
		return $kk;
	}

	var $m_v = array();

	public function __construct(array $h = array())
	{
		foreach ($h as $k => $v) {
			$this->offsetSet($k, $v);
		}
	}

	public function offsetExists($k)
	{
		if (is_string($k)) {
			$k = strtolower($k);
			return isset($this->m_v[$k]);
		}
		return false;
	}

	public function offsetGet($k) {
		if (is_string($k)) {
			$k = strtolower($k);
			if (!isset($this->m_v[$k])) {
				return null;
			}
			return $this->m_v[$k];
		}
		return null;
	}

	public function offsetSet($k, $v)
	{
		if (is_string($k)) {
			$k = strtolower($k);
			$this->m_v[$k] = $v;
		}
	}

	public function offsetUnset($k)
	{
		if (is_string($k)) {
			$k = strtolower($k);
			unset($this->m_v[$k]);
		}
	}

	public function getIterator()
	{ return new ArrayIterator($this->m_v); }

	public function items()
	{ return $this->m_v; }
}

@moe123 Thanks for reporting, I'm not sure I follow what you're trying to achieve here, so perhaps you can elaborate what the motivation for this would be?
Your suggestion appears to be in conflict with PSR-7. It's my understanding that implementing PSR-7 here has significantly improved this project's adaption, so I don't think this is something we're going to drop any time soon.

@clue https://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html#sec4.2

@clue not really for me, but maybe I use an outdated API?
React\Http\StreamingBodyParser\BufferedSink::createPromise($parser)
-> then(function ($result) use (
   $verb
 , $request
 , $response
) {
// case-sensitive here
$request->getHeaders()['foo'] != $request->getHeaders()['Foo']
}

@moe123 which react/http version are you on? We are currently at 0.8

@moe123 Have you seen the above link? (https://www.php-fig.org/psr/psr-7/#case-insensitive-header-field-names)
The getHeaders() (note the plural "s") returns an array with all headers and preserves the header names because some (legacy) applications rely on this. If you want to access a single header by its name, you should use the getHeaderLine('foo') method instead (which uses case insensitive header field names as defined in the HTTP specs).
I hope this helps :+1:

@clue ok, yes I have see that, they only sanitize on fetch  ; they should have interface a case-incentive ArrayObject like I suggested earlier would have been easier to work with...
@WyriHaximus don't know really I am suspecting an old experimental branch 8-)


community branding

we ought to have separate 'fabric8' branding that is used during the npm build of the community image for when the new console is used outside of openshift.io
FWIW fabric8 backgrounds and logs can be found here http://design.jboss.org/fabric8/

@mindreeper2420 @catrobson @joshuawilson is this easy enough to do?  We want to include the new console in the next community release, it doesn't have to be perfect to start with but I figured we cant release it with the openshift.io branding.

@rawlingsj is the same sort of header and pages used for the community build?  There is no branding other than the bar right now for the header, but we can swap out the branding on the "Account Home" page.

@catrobson yeah I guess what I was thinking is we don't really want the text OpenShift.io appearing in the console when we run it on prem or minishift for example.
Having said that the "Account Home" is certainly the most obvious so I wonder if at build time we can use a different property that replaces the text and background with one that says fabric8 and a wallpaper / banner from http://design.jboss.org/fabric8/.  What do you think?

Designs have been established in https://github.com/fabric8io/fabric8-ux/issues/456

@catrobson if you meant to close it, please state why and go ahead and close it. Otherwise I'm assuming it was accidental.

@rawlingsj do you want this issue for your work, or was this issue just to get the designs?  I'll close if only to gather design.

I think we should leave it open to track the work.
Now we need a way to switch between visuals. What do we use for the switch?

Wouldn't this be toggled based on where the app is being launched from?   How would community users access the UI?

fixed in #1633


add logo for links on social

I noticed that tweets linking to this site are using the Hugo default instead of the SMI logo:
https://twitter.com/SMI_spec/status/1248655059627290624

Maybe adding the logo in the right place in the theme would work?

👍
I'll add a twitter card to the site header. That will render a preview + logo when shared on social media.

Thanks!


Overwork gauge

When you do over 8 hours a day, the fill color becomes the background and the background becomes the active fill.
I've written a simple alternatingColor converter but it is not working :<
commit 4173040

@Sawair would you like to do it?

Ok, I'll take a look

Ok, so there is an issue in Live-Chards that can't bind GaugeActiveFill.
It's right there: https://github.com/Live-Charts/Live-Charts/issues/796

a second gauge would be a good workaround

redesign removes this problem

Still seems to be an issue,