More than one app?

Is it possible to add more than one application to the accessory?
For example "spotify" and "netflix"?
When not... what would happen when i add a second accessories called webos3 to the config.json with another app?
thanks in advance

Currently it is not possible, but i plan to somehow add that feature in a future update.
I didn't test what will happen if you another accessory called webos3 to the config.json. You can try this and let me know what will happen.

that would be really nice! so i wouldn't need my harmony hub anymore ..
however, i tried to add 3 more accessories .. spotify, youtube and netflix and set the polling and volumeControl to false.. and it worked!!

but for each accessorie the plugin adds 3 TV Power Homekits too.. completely understandably ..
it would be really nice if there would be only an array in the config.json for more than one app.

Hi, Ive been trying for days to get Netflix to launch when I switch the tv on with Siri, but no matter what I try I get the same result...
[2018-3-22 11:47:33] [TV] webOS - connecting to TV
[2018-3-22 11:47:33] [TV] webOS - connected to TV
[2018-3-22 11:47:33] [TV] webOS - error Error: ENOENT: no such file or directory, open '/docker/homebridge/lgtvKey
File'
[2018-3-22 11:47:33] [TV] webOS - current appId: com.webos.app.livetv
[2018-3-22 11:47:33] [TV] webOS - TV current appId: com.webos.app.livetv
[2018-3-22 11:47:33] [TV] webOS - TV current appId: com.webos.app.livetv
[2018-3-22 11:47:33] [TV] webOS - TV muted: No
Also polling always says the tv is on, no matter if its on or not, but im not so worried about that.
Here is my config.json
"accessories": [
	{
  "accessory": "webos3",
  "name": "TV",
  "ip": "<IP_ADDRESS>",
  "mac": "14:C9:13:20:99:E7",
  "keyFile": "/docker/homebridge/lgtvKeyFile",
  "pollingEnabled": false,
  "externalSourceSwitch": "HDMI_1",
  "appSwitch": "netflix"
    }

Please, please help me

@Stephan811D cool. Thanks for the info. I think this is a good solution to add multiply app switches. I will try to think of something how to improve that.
@j-burton most probably the directory where you specified the file "/docker/homebridge/lgtvKey" has no write permissions. You would need to fix that.

I got the keyhole working now with no issues, but still the main wish is that I want the tv to go straight to Netflix when I turn it on isn't happening

@j-burton yes i know your problem really well ... i think you can't start the netflix app without starting the tv first... i think it's a timing problem.. because when i start the tv first i can trigger the application every time without any problem..
i set up a scence called Netflix in my home app..
and i have 2 devices ... one is the TV Power switch and the second is the netflix app
when you use it like this maybe a javascript timeout in the index.js could fix that ...
in that function:
webos3Accessory.prototype.setAppSwitchState = function (state, callback) {
    if (this.connected) {
        if (state) {

            //timeout for this line should fix that maybe?? request starts after 5 seconds for example
            //when tv is already running
            lgtv.request('ssap://system.launcher/launch', {id: this.appSwitch});
            this.setExternalSourceSwitchManuallyCallback(null, false);
        } else {
            lgtv.request('ssap://system.launcher/launch', {id: "com.webos.app.livetv"});
        }
        callback(null, state);
    } else {
        callback(new Error('webOS - is not connected'))
    }
};

i mean it's not a nice fix but maybe it works ... i didn't test it yet ... @merdok would do you think about that idea? you know your code better than me..
greetings

@j-burton this is not possible as far as i know.
You could use the workaround from @Stephan811D to get the desired effect.
@Stephan811D That workaround would work but seems more like a forced hack for me. I think it is better to use two voice commands: first to power on the tv and then start the netflix app...

Do I just add that code at the end of the index.js file?
Im just copying the code, I have no clue what it is, but where in there does it specify how many seconds?

@Stephan811D multiply apps are now supported since version 0.9.3. Please try it and let me know if it works as desired.
@j-burton since version 0.9.3 the TV will now attempt to power on when you start an app. Please try it and let me know if it works as desired.

@merdok i tested the new version.. everything works really well now!!
thank you for that awesome Plug-In !!!
greetings from Austria


Update Pramodh Kumar M profile to include image

Updated the changes requested from #623 @huats

Image with 94.6 KB


README.md typo in command

I guess,
python alphafold.py -i test_data/T1019s2.pkl -o T1019s2_out -t D -t 0
should be
python alphafold.py -i test_data/T1019s2.pkl -o T1019s2_out -t D -r 0

Hi! Could you make this whole thing work with like a sequence which is not included already in the casp dataset?
I am trying to make MSA with feature.sh from sars-cov2 sequences, but I could not manage to create tfrec files to input the alphafold machinery... :(

@pentadotddot you can open a new issue to discuss, it's not related to this.


Removed return statement for calls that returns nothing

Description
Removed return statement for calls that returns nothing
Type of change

[x] Refactor
[ ] New feature
[ ] Bug fix
[ ] CVE fix
[ ] Optimization
[ ] Documentation Update
[ ] Configuration Update
[ ] Bump-up dependent library

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Comparison is base (8f46f1d) 94.83% compared to head (01d883f) 96.12%.
Report is 26 commits behind head on main.

Additional details and impacted files

@@            Coverage Diff             @@
##             main     #477      +/-   ##
==========================================
+ Coverage   94.83%   96.12%   +1.29%
==========================================
  Files          36       43       +7
  Lines        1181     1368     +187
==========================================
+ Hits         1120     1315     +195
+ Misses         61       53       -8

Files
Coverage Δ

ols/app/models/config.py
96.91% <100.00%> (-0.06%)
:arrow_down:

/lgtm

/approve


fix(advanced-scheduling): space fixes

Description
make using this blog a easier experience
Commit msg
as the CKA requires taking these code snippets and using them quickly, spaces can be an issue
add two spaces to begin of line to make pod spec copying even faster (if this is the case)

/assign @sftim

/assign @sftim

What you said is right, but I think that if it's badly formatted, it should be fixed regardless

What you said is right, but I think that if it's badly formatted, it should be fixed regardless

And the example you gave @sftim is not as concice.. I would also want an Exists and make each example easier to use

And the example you gave @sftim is not as concice.. I would also want an Exists and make each example easier to use

@georgettica Agree with @sftim but happy to merge this in the meantime since it's already done. I added one comment that needs to be addressed before this can be merged. Please double check the preview link to make sure the markdown is fixed once you do: https://deploy-preview-25955--kubernetes-io-master-staging.netlify.app/blog/2017/03/advanced-scheduling-in-kubernetes/

@georgettica Agree with @sftim but happy to merge this in the meantime since it's already done. I added one comment that needs to be addressed before this can be merged. Please double check the preview link to make sure the markdown is fixed once you do: https://deploy-preview-25955--kubernetes-io-master-staging.netlify.app/blog/2017/03/advanced-scheduling-in-kubernetes/

Verified the display and it looks fine.
Thanks @kbarnard10  for the pointer :)

Verified the display and it looks fine.
Thanks @kbarnard10  for the pointer :)

lgtm

lgtm

@tengqm I thing /lgtm should make it merge, but I might be mistaken.

@tengqm I thing /lgtm should make it merge, but I might be mistaken.

/lgtm

/lgtm

/assign @sftim

/assign @sftim

@georgettica - lgtm but if you are fixing for space, Do you mind considering fixing tolerations in the mentioned blog.
Reference - https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/
tolerations:

key: "example-key"
operator: "Exists"
effect: "NoSchedule".

Otherwise, It is lgtm.

@georgettica - lgtm but if you are fixing for space, Do you mind considering fixing tolerations in the mentioned blog.
Reference - https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/
tolerations:

key: "example-key"
operator: "Exists"
effect: "NoSchedule".

Otherwise, It is lgtm.

I would be more than happy doing this in a separate PR if it's ok.
If not and it won't block this PR I can do it here aswell

I would be more than happy doing this in a separate PR if it's ok.
If not and it won't block this PR I can do it here aswell

Gottit :)

Gottit :)

/lgtm

/lgtm

Oh, it's missing /approved

Oh, it's missing /approved

@georgettica - I would say squash and make a single commit and do re-base if needed before that @sftim - help me find commands list. Can you approve?

@georgettica - I would say squash and make a single commit and do re-base if needed before that @sftim - help me find commands list. Can you approve?

Sure!
Sadly I am afk and would be glad to rebase via the UI if I had the prow command, but will see if I can do in soon

Sure!
Sadly I am afk and would be glad to rebase via the UI if I had the prow command, but will see if I can do in soon

Squashed and fixed
And did it all on my phone!

Squashed and fixed
And did it all on my phone!

/lgtm

/lgtm

/approve

/approve

Now I know owners are in the list of:
https://github.com/kubernetes/website/blob/852024cffd24bb8b79f2ef0dad3f801ad4332282/OWNERS_ALIASES#L2
And we can w8 for them to look
/auto-cc

Now I know owners are in the list of:
https://github.com/kubernetes/website/blob/852024cffd24bb8b79f2ef0dad3f801ad4332282/OWNERS_ALIASES#L2
And we can w8 for them to look
/auto-cc

@kbarnard10 – mind dropping an approve as these are blog posts? :)

/approve


Add Ruff configuration

Ruff is currently using the default configuration, but there are many additional rules that can are quite useful. (For the open PRs, we need ERA001 😁 ).
See for example which rules AmpForm selects. But that's a bit too much, for now just activate ERA001

UP034 To be added too

I would even select ALL. Since Ruff v0.5.0, it's quite stable to use that. Any rules we do not like can then be deactivated.


Godep

Coverage remained the same at 16.301% when pulling 3713dfe6ebd08d022757d30b673e7d1fe8676211 on godep into 6ff308a66a430bad95a3f1fa6bf19ab40aa39932 on master.


research acpid service

services.acpid.enable = true;

The only defined method for passing ACPI tables to the kernel on ARMv8 is via the UEFI system configuration table. Just so it is explicit, this means that ACPI is only supported on platforms that boot via UEFI.

https://docs.kernel.org/arm64/arm-acpi.html


not working sails lift

When I type sailt lift, I obtain UnauthorizedError: Unauthorized though I have written the proper database config in config/connections.js.
When I was debugging node_modules/arangojs/lib/connection.js, I noticed it obtains a working connection url.

I have to change the url property of Connection.defaults in this file manually, so it passed.
Maybe, the problem is about Async of Waterline.


Failed to set Content-Type internally with the xhr's getResponseHeader

In response to an issue in which res.body is null ...superagent Failed to correctly set Content-Type header from the xhr with getResponseHeader due to case-sensitivity

This solved the problem for me.

sounds like react-native is at fault here? headers are not case sensitive as far as I am aware

I'm not sure if it's react-native's fault or not, but according to https://tools.ietf.org/html/rfc7230#appendix-A.2 section 3.2, headers definitely should be case-insensitive.

@slooker @defunctzombie It is true that getResponseHeader should be case-insensitive.  However, this is probably an issue with JavascriptCore (which is the engine that ReactNative uses), thus cannot be fixed by the Facebook team (without an upstream fix).  I think the best solution here is just to use the correct case.

IMO the best solution is for the engine to the fixed. This has not been a
problem in any other browser to this point. If it was not in the spec I
might feel differently but given that all the other browsers behave
correctly I am hesitant to fix this since it seems like a bug in
JavascriptCore (not exactly sure what that is by sounds relatively new and
likely to fix this bug)
On Monday, May 4, 2015, Dan Horrigan<EMAIL_ADDRESS>wrote:

@slooker https://github.com/slooker @defunctzombie
https://github.com/defunctzombie It is true that getResponseHeader
should be case-insensitive. However, this is probably an issue with
JavascriptCore (which is the engine that ReactNative uses), thus cannot be
fixed by the Facebook team (without an upstream fix). I think the best
solution here is just to use the correct case.
—
Reply to this email directly or view it on GitHub
https://github.com/visionmedia/superagent/pull/638#issuecomment-98702913
.

I would at least file an issue there and see how receptive they are. If for
some reason they are not receptive then we can revisit.
On Monday, May 4, 2015, Dan Horrigan<EMAIL_ADDRESS>wrote:

@slooker https://github.com/slooker @defunctzombie
https://github.com/defunctzombie It is true that getResponseHeader
should be case-insensitive. However, this is probably an issue with
JavascriptCore (which is the engine that ReactNative uses), thus cannot be
fixed by the Facebook team (without an upstream fix). I think the best
solution here is just to use the correct case.
—
Reply to this email directly or view it on GitHub
https://github.com/visionmedia/superagent/pull/638#issuecomment-98702913
.

I agree, we should absolutely post it as an issue there.  Getting it fixed where it's actually broken is a better option than applying a bandaid further down.

I don't see the harm in using the typical case for this header. It adds no extra code and still fixes the issue.

I found & fixed the root cause in React Native — https://github.com/facebook/react-native/pull/1138

:+1:


Dev lh

您发给我的信件已经收到。我会第一时间回复您。This is an automatic reply, confirming that your e-mail was received.Thank you


ng generate appShell throws error "Chunk cannot be found"

Versions
Angular CLI: 1.7.3
Node: 8.9.1
OS: win32 x64
Angular: 4.3.6
... animations, common, compiler, core, forms, http
... platform-browser, platform-browser-dynamic, platform-server
... router
@angular/cli: 1.7.3
@angular/compiler-cli: 4.4.6
@angular/tsc-wrapped: 4.4.6
@angular-devkit/build-optimizer: 0.3.2
@angular-devkit/core: 0.3.2
@angular-devkit/schematics: 0.3.2
@ngtools/json-schema: 1.2.0
@ngtools/webpack: 1.10.2
@schematics/angular: 0.3.2
@schematics/package-update: 0.3.2
typescript: 2.4.2
webpack: 3.11.0
Repro steps

ng generate universal ngu-app-shell
ng generate appShell load-shell --universal-app=ngu-app-shell --route=app-shell-path

Observed behavior
Console output:
Error: Chunk cannot be found.
Chunk cannot be found.
Desired behavior
app shell generated
Mention any other details that might be useful (optional)
I was following this:
https://blog.angular-university.io/angular-app-shell/

You should upgrade your app tom the latest release, generate a new project and do a diff compare to upgrade your app.

Related to https://github.com/angular/devkit/issues/297


feat: some pyarrow dataframe methods

What type of PR is this? (check all applicable)

[ ] 💾 Refactor
[x] ✨ Feature
[ ] 🐛 Bug Fix
[ ] 🔧 Optimization
[ ] 📝 Documentation
[ ] ✅ Test
[ ] 🐳 Other

Related issues

Related issue #372

Checklist

[x] Code follows style guide (ruff)
[x] Tests added
[x] Documented the changes

If you have comments or can explain your changes, please do so below.
Introduces the following methods for pyarrow dataframe:

collect
drop
drop_nulls
lazy
sort
to_pandas

@MarcoGorelli CI fails due to pandas<v1.0.0.
In general I believe cases like this one can happen. One way of dealing with interoperability constraint could be to decorate pyarrow to_pandas method with something similar to scikit-learn available_if and support it only for certain versions installed?! WDYT?

this makes me so happy!

One way of dealing with interoperability constraint could be to decorate pyarrow to_pandas method with something similar to scikit-learn available_if and support it only for certain versions installed?! WDYT?

Nice, I didn't know about that. sounds good! or just xfail some tests for now


Dashboard Context Menu Actions

In the latest bugbash, Jonny brought up a potential regression that wasn't noticed where some users don't have the ability to do all menu actions but those actions are still available in the context menu for stories. Let's look at that and make sure we've got tests set up to catch that moving forward.
(Screen grab from bug bash for context)

@BrittanyIRL I think #8591 fixes that. cc @spacedmonkey to confirm

@BrittanyIRL I think #8591 fixes that. cc @spacedmonkey to confirm

Confirmed

Closing as #8591 resolves this issue.


Not Working with AWS IAM Roles

Hey guys,
im not really sure if this is intended or not but aws-es-kibana doesnt seem to work with CLI profiles which includes roles like the following construct.
[xxx-logon]
aws_access_key_id = xxx
aws_secret_access_key = xxx

[es-test]
role_arn = arn:aws:iam::xxxxx:role/es_test
source_profile = xxx-logon

When i use AWS_PROFILE=es-test the webserver is giving me the following return:

{"message":"The request signature we calculated does not match the signature you provided. Check your AWS Secret Access Key and signing method. Consult the service documentation for details.\n\nThe Canonical String for this request should have been\n'GET\n/\n\nhost:https\nx-amz-date:20170725T142058Z\nx-amz-security-................

Is anyone one of you working with roles instead of local users?
Best regards,
Markus

For further notice: Doing the assume role on my own and storing the following variables in env does work:
$env:AWS_ACCESS_KEY_ID=$tempcred.Credentials.AccessKeyId
$env:AWS_SECRET_ACCESS_KEY=$tempcred.Credentials.SecretAccessKey
$env:AWS_SESSION_TOKEN=$tempcred.Credentials.SessionToken

same problem here :(

Same problemz..

this works fine here: https://github.com/abutaha/aws-es-proxy


QHamming Code

Implementation for QHamming Code

To keep this easier for me, I will mark this back to "draft" stage. When you are ready, please click "resolve" on my comments above and re-request a review.

Hi Stephan,
Actually, last night, I forgot to update the git version so you were seeing
the wrong version. I have committed the latest version with which I got the
results. Please see and let me know. Thanks for adding Qhammig to various
places.
On Sat, Mar 2, 2024 at 8:17 PM Stefan Krastanov @.***>
wrote:

@.**** commented on this pull request.
In src/ecc/codes/qhammingcode.jl
https://github.com/QuantumSavory/QuantumClifford.jl/pull/238#discussion_r1509991239
:

@@ -0,0 +1,25 @@
+struct QHamming

r::Int
+end

+function parity_checks(code::QHamming)

r = code.r
n = 2^r

Construct the K matrix (refer to Gottesman-Chuang codes for details)

K = zeros(Int, (n - r - 2), r)
for i in 1:n-r-2
j = i + 1
while j <= n

 K[i, bit2int(Integer.tobits(j - 1)[end])] = 1

Integer is a type. I am extremely surprised this has worked locally for
you -- you must have imported a package that has done something very weird
to the Integer symbol.
It would probably work better with a call to digits (see here
https://discourse.julialang.org/t/convert-integer-to-bits-array/26663 )
ALso, I think this works only for r up to 64, right? If that is the case,
this should check and raise an error, e.g. r < whatever && error(lazy"
QHamming currently supports only block sizes up to 2^something. You
requested a block size of ...")
—
Reply to this email directly, view it on GitHub
https://github.com/QuantumSavory/QuantumClifford.jl/pull/238#pullrequestreview-1912677926,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AWMHEJZMLYDQH3YLZHFLZT3YWHUPZAVCNFSM6AAAAABD6XEXMWVHI2DSMVQWIX3LMV43YUDVNRWFEZLROVSXG5CSMV3GSZLXHMYTSMJSGY3TOOJSGY
.
You are receiving this because you modified the open/close state.Message
ID: @.***
com>

The code is working with the QuatumClifford Package now!
![Screenshot_select-area_20240303033505]
(https://github.com/QuantumSavory/QuantumClifford.jl/assets/93876775/cbd18a4d-69e6-47c5-8721-202046d3abc2)

There are some general thoughts I would like to share. Please provide your
perspective after you have reviewed the changes.
So, I was curious about the circuits.jl. I wanted to see whether the
QHamming Encoding Circuit would be generated from the already available
encoding circuits?
I believe when we add new codes, we would also have to make some
modifications to the encoding circuits (naive_encoding_circuit) or build
separate ones for each? I read an exception in the naive encoding circuit
function that works for CSS codes only as we have to separate both x parts
and z parts of the stabilizer.
In the naive_encoding_circuit, it separates the x part and the z part
explicitly and when Steane7 code is called, since in its implementation,
the parts are already separated, the naive encoding circuit works for the
steane code.
On Sat, Mar 2, 2024 at 1:54 AM Stefan Krastanov @.***>
wrote:

To keep this easier for me, I will mark this back to "draft" stage. When
you are ready, please click "resolve" on my comments above and re-request a
review.
—
Reply to this email directly, view it on GitHub
https://github.com/QuantumSavory/QuantumClifford.jl/pull/238#issuecomment-1973905538,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AWMHEJ3HGIEDMBG45736BZLYWDTKDAVCNFSM6AAAAABD6XEXMWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSNZTHEYDKNJTHA
.
You are receiving this because you modified the open/close state.Message
ID: @.***>

Could you show me the output of Pkg.status() for your work environment?

So, I was curious about the circuits.jl. I wanted to see whether the
QHamming Encoding Circuit would be generated from the already available
encoding circuits?

naive_encoding_circuit(QHamming(3)) should already work, yes. If it does not, that is probably a bug in it.

I believe when we add new codes, we would also have to make some
modifications to the encoding circuits (naive_encoding_circuit) or build
separate ones for each? I read an exception in the naive encoding circuit
function that works for CSS codes only as we have to separate both x parts
and z parts of the stabilizer.

No, these should be universal, for any code. Maybe there is some issue currently that should be fixed, but these functions should be written in a way that works for all codes, without needing modifications when a new code is added. Post the stacktrace for your error and we can discuss it.

Dear Stefan,
Thank you very much for your comments.
I will post the stacktrace and show the Pkg. status () after reviewing all
the suggested changes.
On Sun, Mar 3, 2024 at 9:30 PM Stefan Krastanov @.***>
wrote:

So, I was curious about the circuits.jl. I wanted to see whether the
QHamming Encoding Circuit would be generated from the already available
encoding circuits?
naive_encoding_circuit(QHamming(3)) should already work, yes. If it does
not, that is probably a bug in it.
I believe when we add new codes, we would also have to make some
modifications to the encoding circuits (naive_encoding_circuit) or build
separate ones for each? I read an exception in the naive encoding circuit
function that works for CSS codes only as we have to separate both x parts
and z parts of the stabilizer.
No, these should be universal, for any code. Maybe there is some issue
currently that should be fixed, but these functions should be written in a
way that works for all codes, without needing modifications when a new code
is added. Post the stacktrace for your error and we can discuss it.
—
Reply to this email directly, view it on GitHub
https://github.com/QuantumSavory/QuantumClifford.jl/pull/238#issuecomment-1975222789,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AWMHEJ4GEH7W64EEUQUYEXTYWNF3TAVCNFSM6AAAAABD6XEXMWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSNZVGIZDENZYHE
.
You are receiving this because you modified the open/close state.Message
ID: @.***>

Could you show me the output of Pkg.status() for your work environment?

naive_encoding_circuit(QHamming(3)) should already work, yes. If it does not, that is probably a bug in it.

It helps to copy-paste the actual text of the stack traces (the entire stack traces, not just a screenshot of only the top).
Here it says you are lacking a code_n method for your new type. Declare that method and see what the next broken thing shows up, and one by one you will have all necessary methods implemented.

also, it currently does not seem like your new implementation is actually included in the rest of the codebase. See how all other files that implement a code are already included in the ECC.jl file which itself is included in QuantumClifford.jl.

also, it currently does not seem like your new implementation is actually included in the rest of the codebase. See how all other files that implement a code are already included in the ECC.jl file which itself is included in QuantumClifford.jl.

I included the necessary lines in the ECC.jl file in the local codebase but didn't commit the changes yet!
I will look into the first message. Thanks a lot. Learning a lot.
Thank you for your message. In the your review,  (I thought I had to undo that as well so I removed that from ECC.jl). Will commit the changes in ECC.jl file

The code_s, code n errors removed after adding these lines in `QHamming:
code_s(c::QHamming) = code_s(parity_checks(c))
code_n(c::QHamming) = code_n(parity_checks(c))

But, this new error emerges:

Do we explicitly need to separate the parity check H_x part and the parity check H_z part of the stabilizer so that whem MixedDestabilizer is called in naive_encoding_circuit,  md, r, permx, permz = MixedDestabilizer(code, undoperm=false, reportperm=true);, it can get out these 4 arguments? This has been done in the definition ofShor(), Steane(), Toric(), CSS()so I think it's the standard procedure.
In the QHamming, I am using H which is getting the combined parity check matrix H, not separating out H_x, H_z from H.

I do not think what you have here is what you are running on your computer, so it is rather difficult to comment on why you might have an issue. Keep this always in sync with your local branch (if it takes you more than 5 seconds to ensure they are in sync, there is probably something that we can do to streamline your workflow -- this should basically be instantaneous)
The functions you are reporting as having issues do not need any special support for new codes -- they should work directly.
You do not need these try catch blocks to report errors. Whenever you have an error (and the stacktrace related to that error) simply copy-paste it as text.

Thank you.  I will make sure that the local repo is what I have here in next 20 min

I deleted my local repo and download the one that is here. Now, I will make sure that sync is instanteous, and will try my best to make sure that my work is convenient.
This is the error that appeared.
julia> e=naive_encoding_circuit(QHamming(3))
ERROR: MethodError: no method matching QuantumClifford.MixedDestabilizer(::Matrix{Int64}; undoperm::Bool, reportperm::Bool)

Closest candidates are:
  QuantumClifford.MixedDestabilizer(::T, ::Int64) where T<:QuantumClifford.Tableau got unsupported keyword arguments "undoperm", "reportperm"
   @ QuantumClifford ~/Desktop/New/QuantumClifford.jl/src/QuantumClifford.jl:517
  QuantumClifford.MixedDestabilizer(::QuantumClifford.MixedDestabilizer) got unsupported keyword arguments "undoperm", "reportperm"
   @ QuantumClifford ~/Desktop/New/QuantumClifford.jl/src/QuantumClifford.jl:586
  QuantumClifford.MixedDestabilizer(::QuantumClifford.Stabilizer{T}; undoperm, reportperm) where T
   @ QuantumClifford ~/Desktop/New/QuantumClifford.jl/src/QuantumClifford.jl:522
  ...

 I saw the Stabilizer Tableau of the already implemented code! I now have idea how of to implement Non-CSS code using Stabilizer constructor!
I learnt that some codes that S defined in it and only parity check x and parity check z were called for them , namely for Shor9, Cleave, etc. while other codes used the CSS such as toric and used xz parity check, then parity check x and parity check z.Also, there is an inbuilt warning which says thatparity check xandparity check z` can't be used for Non-CSS codes.
 Use `show(err)` to see complete types.

Similarly,
parity_checks(QHamming(6))
+ Y_Y_Y_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_
+ ZXXZZXX__XX__XX__XX__XX__XX__XX__XX__XX__XX__XX__XX__XX__X
+ _ZZYYXX____XXXX____XXXX____XXXX____XXXX____XXXX____XXXX___
+ ZZZZZ__XXXXXXXX________XXXXXXXX________XXXXXXXX________XXX
+ ZZZZZ__________XXXXXXXXXXXXXXXX________________XXXXXXXXXXX
+ ZZZZZ__________________________XXXXXXXXXXXXXXXXXXXXXXXXXXX
+ _____Z____________________________________________________
 ⋮
Error showing value of type QuantumClifford.Stabilizer{QuantumClifford.Tableau{Vector{UInt8}, Matrix{UInt64}}}:
ERROR: BoundsError: attempt to access 2×56 Matrix{UInt64} at index [1:2, 107]

EightQubit Code [[8,3,3]]

julia> naive_encoding_circuit(EightQubit())
30-element Vector{QuantumClifford.AbstractOperation}:
 QuantumClifford.sCNOT(6,5)
 QuantumClifford.sCNOT(7,5)
 QuantumClifford.sCNOT(8,5)
 QuantumClifford.sHadamard(1)
 QuantumClifford.sPhase(1)
 QuantumClifford.sZCX(1,5)
 QuantumClifford.sZCX(1,6)
 QuantumClifford.sZCY(1,7)
 ⋮
 QuantumClifford.sZCZ(4,2)
 QuantumClifford.sZCX(4,6)
 QuantumClifford.sZCY(4,7)
 QuantumClifford.sZCY(4,8)
 QuantumClifford.sZ(3)
 QuantumClifford.sZ(4)
 QuantumClifford.sSWAP(5,4)

julia> parity_checks(EightQubit())
+ XXXXXXXX
+ ZZZZZZZZ
+ _X_XYZYZ
+ _XZY_XZY
+ _YXZXZ_Y

We can next work on  [[16,10,3]] code so we add it in the zoo as well!!

I have also installed CLI to make the my workflow as convenient as possible! :)
~/Desktop/New/QuantumClifford.jl$ git pull origin master
From https://github.com/Fe-r-oz/QuantumClifford.jl
 * branch            master     -> FETCH_HEAD
Already up to date.

Tests do not pass (see just above the comment box). You can run the tests locally by going to package mode (pressing ]) and typing test QuantumClifford. Let's have the tests fixed and then we can get back to doing a review.
Also, why did you change this from implementing the family of quantum Hamming codes to implementing just two specific codes? Any reason for preferring these?
Lastly, are these the only 8 qubit and 16 qubit codes in existance? If they are not, we should have better names for them.

when finishing a PR, it is useful to check the "files changed" tab to make sure everything is in order

Tests do not pass (see just above the comment box). You can run the tests locally by going to package mode (pressing ]) and typing test QuantumClifford. Let's have the tests fixed and then we can get back to doing a review.
Also, why did you change this from implementing the family of quantum Hamming codes to implementing just two specific codes? Any reason for preferring these?
Lastly, are these the only 8 qubit and 16 qubit codes in existance? If they are not, we should have better names for them.

I provide a valid really reason After reading the Gottesman Thesis above! KIndly please see the
https://github.com/QuantumSavory/QuantumClifford.jl/pull/238#issuecomment-1978149795
I will add better names. Thanks!

[[16,10,3]] gives Assertion Error ```
is Conda ok   | None  1.0s
table decoder: Error During Test at /home/Transcendence/Desktop/New/QuantumClifford.jl/test/test_ecc_decoder_all_setups.jl:14
Got exception outside of a @test
AssertionError: max(e...) < noise / 4

73-element Vector{QuantumClifford.AbstractOperation}:
QuantumClifford.sCNOT(7,6)
QuantumClifford.sCNOT(8,6)
QuantumClifford.sCNOT(9,6)
QuantumClifford.sCNOT(10,6)
QuantumClifford.sCNOT(11,6)
QuantumClifford.sCNOT(12,6)
QuantumClifford.sCNOT(13,6)
QuantumClifford.sCNOT(14,6)
⋮
QuantumClifford.sZCX(5,15)
QuantumClifford.sZCX(5,16)
QuantumClifford.sSWAP(9,5)
QuantumClifford.sSWAP(8,5)
QuantumClifford.sSWAP(7,5)
QuantumClifford.sSWAP(6,5)
QuantumClifford.sSWAP(5,4)

julia> parity_checks(NKD16103())

XXXXXXXXXXXXXXXX
ZZZZZZZZZZZZZZZZ
_X_X_X_XZYZYZYZY
_X_XZYZYX_X_YZYZ
_XZYX_YZ_XZYX_YZ
_YXZ_YXZ_YXZ_YXZ

Furthermore, is it right approach to have a general instance of quantum hamming code to generate the [[8,3,3]] code and [[16,10,3]] code, and others etc. from one class. In the Gottesman thesis (https://thesis.library.caltech.edu/2900/2/THESIS.pdf), he mentions that The eight-qubit code of table 3.3 is just one of a class of codes with parameters [2^j , 2^j − j − 2, 3] but [[16,10,3]] have different checks which he goes onto mention at page 91.

I assume you are talking about a [[16,10,3]] code because that is the r=4 quantum hamming code as described here: https://errorcorrectionzoo.org/c/quantum_hamming. There might or might not be some other [[16,10,3]] code that the thesis is talking about. But let's first make sure that one single family of codes is properly implemented -- there is little value to hardcoding parity check matrices of specific code instances. The valuable thing is something that can generate whole families of codes. Sure the reference you have might be talking about codes from two different families or about special instances that do not belong to families, but that does not change the fact that there are well-defined methods to construct specific families.

Maybe it's better to implement them as separate ones? Maybe we are trying to complicate stuff by a general class which constructs [[8,3,3]], [16,10,3]], [[32,25,3]]... etc. from one class. What are your thoughts?

Implementing specific instances is not particularly useful. It is the general families that are of interest.

Pedagogical [[16,10,3]] gives Assertion Error while the table_decoder test function runs it. Encoding works fine though. Why?

Read through the rest of the test. It seems to be a test that checks the logical error rate. A few posibilities: an inappropriate decoder is being used, the test is too optimistic about the noise-fighting capabilities of the code, or the parity check matrix is simply wrong.

Implementing specific instances is not particularly useful. It is the general families that are of interest.

Thank you for your comments! You are right that only a family of QGottesmanwill suffice. Let's name it as QGottesman  as that's better than QHamming.
I will start working on it!

Read through the rest of the test. It seems to be a test that checks the logical error rate. A few posibilities: an inappropriate decoder is being used, the test is too optimistic about the noise-fighting capabilities of the code, or the parity check matrix is simply wrong.

Read the full error. It seems the second one is more likely as the Stabilizer code is correct. What to be done in this first two case? Is the noise=0.001 anad `noise/4   applies to all. What's the criteria for this? Kindly please attach some reference so I can look it up as well!

The ECC zoo seems to refer to them both as Quantum Hamming codes and as Gottesman codes. Both seem fine to me. If you stick to Gottesman, maybe remove the Q from the name.
If you are unsure about what performance the code should have, what you can try to do is to run a few simulations and make a plot where the x axis is the physical level of noise and the y axis is the logical level of noise. Like here: https://quantumsavory.github.io/QuantumClifford.jl/dev/ECC_evaluating/ From these plots you can see whether something is broken.

To be clear, the numbers I choose in these tests were pretty arbitrary, simply setting them up to make sure the code is not completely broken.

To be clear, the numbers I choose in these tests were pretty arbitrary, simply setting them up to make sure the code is not completely broken.

Thanks! The assertion error disappears when I run the tests for arbitrary  20000000 steps.

Finally!
Designed the Algorithm using stabilizer formalism;)
julia> parity_checks(QHamming(3))
+ XXXXXXXX
+ ZZZZZZZZ
+ _X_XZYZY
+ _XZY_XZY
+ _ZXY_ZXY

julia> parity_checks(QHamming(4))
+ XXXXXXXXXXXXXXXX
+ ZZZZZZZZZZZZZZZZ
+ _X_X_X_XZYZYZYZY
+ _X_XZYZY_X_XZYZY
+ _XZY_XZY_XZY_XZY
+ _ZXY_ZXY_ZXY_ZXY

 naive_encoding_circuit(QHamming(10))
7147-element Vector{QuantumClifford.AbstractOperation}:
 QuantumClifford.sCNOT(13,5)
 QuantumClifford.sCNOT(14,6)
 QuantumClifford.sCNOT(15,7)
 QuantumClifford.sCNOT(16,5)
 QuantumClifford.sCNOT(16,6)
 QuantumClifford.sCNOT(16,7)
 QuantumClifford.sCNOT(17,5)
 QuantumClifford.sCNOT(17,6)
 ⋮
 QuantumClifford.sSWAP(14,10)
 QuantumClifford.sSWAP(13,11)
 QuantumClifford.sSWAP(12,8)
 QuantumClifford.sSWAP(11,9)
 QuantumClifford.sSWAP(10,8)
 QuantumClifford.sSWAP(9,7)
 QuantumClifford.sSWAP(7,6)

 parity_checks(QHamming(20))
+ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX⋯XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+ ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ⋯ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ
+ _X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_⋯ZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZY
+ _X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_⋯ZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZY
+ _X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_⋯ZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZY
+ _X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_⋯ZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZY
+ _X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_⋯ZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZY
 ⋮
+ _X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_XZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZY_X_X_X_X_X_X_X_⋯ZYZYZYZYZYZYZYZY_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_XZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZY
+ _X_X_X_X_X_X_X_XZYZYZYZYZYZYZYZY_X_X_X_X_X_X_X_XZYZYZYZYZYZYZYZY_X_X_X_X_X_X_X_⋯ZYZYZYZYZYZYZYZY_X_X_X_X_X_X_X_XZYZYZYZYZYZYZYZY_X_X_X_X_X_X_X_XZYZYZYZYZYZYZYZY
+ _X_X_X_XZYZYZYZY_X_X_X_XZYZYZYZY_X_X_X_XZYZYZYZY_X_X_X_XZYZYZYZY_X_X_X_XZYZYZYZ⋯_X_X_X_XZYZYZYZY_X_X_X_XZYZYZYZY_X_X_X_XZYZYZYZY_X_X_X_XZYZYZYZY_X_X_X_XZYZYZYZY
+ _X_XZYZY_X_XZYZY_X_XZYZY_X_XZYZY_X_XZYZY_X_XZYZY_X_XZYZY_X_XZYZY_X_XZYZY_X_XZYZ⋯_X_XZYZY_X_XZYZY_X_XZYZY_X_XZYZY_X_XZYZY_X_XZYZY_X_XZYZY_X_XZYZY_X_XZYZY_X_XZYZY
+ _XZY_XZY_XZY_XZY_XZY_XZY_XZY_XZY_XZY_XZY_XZY_XZY_XZY_XZY_XZY_XZY_XZY_XZY_XZY_XZ⋯_XZY_XZY_XZY_XZY_XZY_XZY_XZY_XZY_XZY_XZY_XZY_XZY_XZY_XZY_XZY_XZY_XZY_XZY_XZY_XZY
+ _ZXY_ZXY_ZXY_ZXY_ZXY_ZXY_ZXY_ZXY_ZXY_ZXY_ZXY_ZXY_ZXY_ZXY_ZXY_ZXY_ZXY_ZXY_ZXY_ZX⋯_ZXY_ZXY_ZXY_ZXY_ZXY_ZXY_ZXY_ZXY_ZXY_ZXY_ZXY_ZXY_ZXY_ZXY_ZXY_ZXY_ZXY_ZXY_ZXY_ZXY

this is much more polished, good job
please check the faling tests and see whether they are related to your work

Thank you! I checked the performance tracking test and its seems to be related to the LDPC Belief Propagation Decoder.
This are the results before commiting suggestions. I will see again the tests after adding all the changes!
[351 onwards] ERROR: LoadError: MethodError: no method matching LDPCDecoders.BeliefPropagationDecoder(::Matrix{Bool}, ::Int64, ::Int64)
The type `LDPCDecoders.BeliefPropagationDecoder` exists, but no method is defined for this combination of argument types when trying to construct it.
Closest candidates are:
  LDPCDecoders.BeliefPropagationDecoder(::Any, ::Any, ::Any, !Matched::Any, !Matched::Any, !Matched::Any, !Matched::Any)
   @ LDPCDecoders ~/.julia/packages/LDPCDecoders/lRVSm/src/decoders/belief_propogation.jl:25
...
Stacktrace:
  [1] QuantumCliffordLDPCDecodersExt.BeliefPropDecoder(c::Shor9, p_init::Int64, max_iters::Int64)
    @ QuantumCliffordLDPCDecodersExt ~/work/QuantumClifford.jl/QuantumClifford.jl/ext/

Change Log CLI
 [12] Error: No update to CHANGELOG.md found!
Documentation CLI
[1142, 1143] ERROR: LoadError: `makedocs` encountered an error [:example_block] -- terminating build before rendering.
Stacktrace:

I do not think the conda-related failures in the tests are related to your code. Just make sure the other tests pass before submitting for review.

All these failing tests have a common conda error:
ERROR: The following 2 direct dependencies failed to precompile:

PyQDecoders [17f5de1a-9b79-4409-a58d-4d45812840f7]

Failed to precompile PyQDecoders [17f5de1a-9b79-4409-a58d-4d45812840f7] to "/home/runner/.julia/compiled/v1.10/PyQDecoders/jl_yluyP8".
ERROR: LoadError: ArgumentError: Path to conda environment is not valid: /home/runner/.julia/conda/3/x86_64

I verified the results with the Gottesman Thesis, They align fully! Added further checks in Hx!  Table 8.1 Page 91
julia> parity_checks(QHamming(4))
+ XXXXXXXXXXXXXXXX
+ ZZZZZZZZZZZZZZZZ
+ _X_X_X_XZYZYZYZY
+ _X_XZYZYX_X_YZYZ
+ _XZYX_YZ_XZYX_YZ
+ _YXZ_YXZ_YXZ_YXZ

All the failing tests have conda related errors. Therefore, submitting for review 🤞🏻!

I relaxed the testing requirements for the codes you implemented. With the larger Gottesman codes the issue is indeed that they are simply not that great. I think tests will now pass.
You need to pull to get the changes I made. Check for any other test failures and address the comments I made and this should be nearly ready for merging.
Do not forget to update the CHANGELOG file

Thanks a lot for your comments!
Indeed, only the first two members, namely [[8,3,3]] and [[16,10,3]] of Gottesman Family are nice. As j>4, max assertion error happens.
Now, the tests are passing for all-1 decoders in some iterations. I commented that out for a whole .
Py Belief Decoders has this issue
Python: ValueError: The input to the ldpc.bp_decoder.decode must be a syndrome (of length=5). The inputted vector has length=4. Valid formats are np.ndarray or scipy.sparse.spmatrix.
I checked out the recent commited changes, it seems that the decode function was changed, maybe that's what this error is occuring?

I tried to update the changelog.mg but I think I don't have write access to it because I got conflict error.

You are right.  After Hz and Hx are sent to stabilizer, they mix. Mixed
approaches. Thanks.
I will use the approach for assigning the values.
On Sat, Mar 16, 2024, 5:27 PM Stefan Krastanov @.***>
wrote:

@.**** commented on this pull request.
In test/test_ecc.jl
https://github.com/QuantumSavory/QuantumClifford.jl/pull/238#discussion_r1527165883
:

@@ -8,7 +8,7 @@ codes = [
Steane7(),
Shor9(),
Perfect5(),

Cleve8(),

Cleve8(), Gottesman(3), Gottesman(5),

⬇ Suggested change

Cleve8(), Gottesman(3), Gottesman(5),

Cleve8(),
Gottesman(3),
Gottesman(5),

Whenever possible, follow the formatting conventions of the code around you
—
Reply to this email directly, view it on GitHub
https://github.com/QuantumSavory/QuantumClifford.jl/pull/238#pullrequestreview-1941026823,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AWMHEJ2ZM64LUMIDFSPWW6LYYQ3CHAVCNFSM6AAAAABD6XEXMWVHI2DSMVQWIX3LMV43YUDVNRWFEZLROVSXG5CSMV3GSZLXHMYTSNBRGAZDMOBSGM
.
You are receiving this because you modified the open/close state.Message
ID: @.***
com>

Since the decoders are defined for CSS code, and they need Hz and Hx
separately in their definition when the code is called, when they are
called, that might be the reason for j>4, we are getting the assertion
errors due to high noise?
If I correctly send the Hx and Hz, as you suggested, will that actually
work for decoders correctly? I will try the other approach and  let you
know.
On Sat, Mar 16, 2024, 6:01 PM Feroz Ahmad @.***> wrote:

You are right.  After Hz and Hx are sent to stabilizer, they mix. Mixed
approaches. Thanks.
I will use the approach for assigning the values.
On Sat, Mar 16, 2024, 5:27 PM Stefan Krastanov @.***>
wrote:

@.**** commented on this pull request.
In test/test_ecc.jl
https://github.com/QuantumSavory/QuantumClifford.jl/pull/238#discussion_r1527165883
:

@@ -8,7 +8,7 @@ codes = [
Steane7(),
Shor9(),
Perfect5(),

Cleve8(),

Cleve8(), Gottesman(3), Gottesman(5),

⬇ Suggested change

Cleve8(), Gottesman(3), Gottesman(5),

Cleve8(),
Gottesman(3),
Gottesman(5),

Whenever possible, follow the formatting conventions of the code around
you
—
Reply to this email directly, view it on GitHub
https://github.com/QuantumSavory/QuantumClifford.jl/pull/238#pullrequestreview-1941026823,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AWMHEJ2ZM64LUMIDFSPWW6LYYQ3CHAVCNFSM6AAAAABD6XEXMWVHI2DSMVQWIX3LMV43YUDVNRWFEZLROVSXG5CSMV3GSZLXHMYTSNBRGAZDMOBSGM
.
You are receiving this because you modified the open/close state.Message
ID: @.***
com>

There is no such thing as Hz and Hx for these codes. Hz and Hx are defined only for CSS codes, i.e. codes where the X and Z checks are completely separate.

There is no such thing as Hz and Hx for these codes. Hz and Hx are defined only for CSS codes, i.e. codes where the X and Z checks are completely separate.

You are right, The decoders are working removing the stab_to_gf2. I think there is no need to define the x and z checks in this case!

The Belief Propogation Decoder required Hx and Hz, and as you mentioned, it won't work in the non-CSS case. Every other decoder is working!

You are right, The decoders are working after removing the stab_to_gf2. I think there is no need to define the x and z checks in the non-CSS case when you can send the complete stabilizer!

I want us to be a bit more careful with phrasing here. It is not "there is no need", rather it is "it is impossible to".
This seems nearly ready to merge. Just ping me when you have the superficial cosmetic comments addressed.

I want us to be a bit more careful with phrasing here. It is not "there is no need", rather it is "it is impossible to".
This seems nearly ready to merge. Just ping me when you have the superficial cosmetic comments addressed.

Indeed! Thanks. Last time I tried to update changelog.md, I got resolve conflicts error.  I don't think I have write access to changelog.
The file changed decreased from 9 to 7 as I removed the cosmetic superficial changes. I will go through the code and ping you.
Thanks for latest PyQDecoders!

I got a conflict when I updated changelog.md again which is that only those with write access can merge this repo. Since, I am working with master, that might be the reason I can't update changelog.
12/15 checks were passing, now 10/15 checks are passing!
## v0.8.23 - 2024-03-16

- Implemented the first family of non-CSS [[2^j, 2^j - j - 2, 3]] Gottesman codes, also known as [[2^j, 2^j - j - 2, 3]] quantum Hamming codes

Anyhow, I believe that it's ready to merge. @Krastanov.

To fix the issue with the difference between master here and master on your repo, make a pull on your end, but pull from this remote. Would would look something like:
git pull NAME_OF_REMOTE_CORRESPONDING_TO_<github.com/QuantumSavory/QuantumClifford.jl>

You can see what remotes you have set up like this

If you have not set this up as a remote, you can do it as follows:
git remote add https://github.com/QuantumSavory/QuantumClifford.jl.git

Thanks a lot for your comments! Sorry, that this whitespace confusion is causing annoyance and repeated checks.
Actually, I was indeed looking at the File Changed section for many days as I was reviewing the changes from there.  It was the File Changed section that helped me in tracking and removing whitespaces.
Unfortunately, I didn't removed them all. Since Gottesman(3), Gottesman(4) was added, 2 lines were added and the lines below were pushed down by 2. In the reference.bib, I add two citation as requested, so I am confused as you commented to remove extra line.
I hope that all the extralines are removed.  Good this is that I have resolved the changelog thanks to your comments.

this looks good. I will read through, make some edits, and merge in the next hour or so

I made a few changes:

different filename, for consistency
different bibtex names for the reference entries, for consistency (picked from google scholar)
tightened up the writing a bit, in particular:

deleted This class implements -- no need for such introductions, get straight to the point. Also, this is not a class, rather a type. Julia does not have classes (not object oriented)
deleted much of the docstring -- it was a difficult mix between very technical and very nontechnical information. I do not think there was enough introduction to understand the technical information about the construction (some of the symbols were not defined) and the nontechnical information was too vague or informal
used unicode in the docstring to render better

removed some unnecessary comments from the test file
reverted some of the tests
edited the changelog. I am pretty confused by the (Add details from remote branch changes for v0.8.21) entry. Why did you add that?

I will wait for the tests and then I will merge this.

I ran some quick benchmarks on your routines. Here are plots of performance of the 3, 4, and 5 codes

3 and 4 look great, but I am a bit worried that there must be something wrong with 5. They all should have the same slope (the slope depends on the distance which is 3 for all Gottesman codes). I will need to do some debugging...

Thanks for refinement. By class, I meant the error code class, but it's a family.
Since the changes v.0.8.22 were not added from my branch on the master, so I thought to add this sentence.

I see you are making a special case for j=3. Why?
Which algorithm exactly did you use? The one in Gottesman's thesis or another one?

I see you are making a special case for j=3. Why?
Which algorithm exactly did you use? The one in Gottesman's thesis or another one?

I mentioned this point in my earlier comment when I mentioned about pedagogical details.

In his thesis, Gottesman presenting "possible" checks/"similar possible" checks and that too for even j and odd j. That is >>why the smallest case for even j is [[16,10,3]]. The convenient way is to utilize the structure which automatically satisfies >>the all even and odd j checks for j>=4! The case j==3 is a special case which leads to [[8,3,3]]

I utilized the symmetric structure and developed the algorithm myself that satisfied the checks  for j>=4. Thus, defined j==3 as special case. This was convenient and much faster approach.  I designed the algorithm by hand as I did draw many tables for j>=4, so I saw a visible symmetric structure. Hence, the algorithm proved correct when it satisfied j==4, and the symmetric structure is visible as well.
Then I read his thesis again, the 4 pages from page 90 to 91, that Gottesman were describing some of the checks (not all), but I ended up implementing all the checks. This verified not only the results but the theory.

It is really cool that you tried to design it by hand, but at this point I am fairly certain there is a mistake in. Do not get discouraged though, you have done it exactly the way in which you get to learn the most out of your mistake. One word of caution though: if you design something yourself, you have to always be extremely mistrustful of your own implementation.
The issue does not seem to be particularly consistent. Maybe it fails only for odd powers. Here is the test including j=6.

It works exactly as expected for j=6.
Now the goal is to figure out what is the error for j=5. One way to try to figure that out is to implement someone else's version of the algorithm. Gottesman spells out exactly all the steps in section 3, paragraph 3-5, of this paper https://arxiv.org/pdf/quant-ph/9604038.pdf
For the moment I will turn this again into a draft. We can not merge it with the j=5 bug.
Also, it is possible there is no bug here. Maybe the bug is in the tool I use to test. I will make that one public later today.

For the moment I will turn this again into a draft. We can not merge it with the j=5 bug.
Also, it is possible there is no bug here. Maybe the bug is in the tool I use to test. I will make that one public later today.

Please test for j=7, j=9, odd powers etc. as well.
I am certain that the symmetric structure and algorithm holds otherwise, it would not have worked at all because it has to be spot on to get configuration in j==4 is somewhat complicated symmetry. I drew the tables by hand to verify the algorithm.
I read details of section 3, paragraph 3-5, but the details he provides are not complete to implement a general class  for works for all j values.
The Question is: How do one expand from j==3 to j==4 or 5 onwards without implementing diffferent checks?
That's why he suggests different checks in his thesis.  He discuss the even and odd j details in his thesis Table 8.1 Page 91 from pages 90 to 95. Also, there is a 3x7 Hamming matrix inner structure as well which is not mentioned in the details. Gottesman Hamming codes are called extended hamming for this very reason. This inner hamming matrix 3x7 structure is missing for j==3 (another point that tells it's a special case).

I probably will not be able to get a check for j>7, these are expensive to run.
I disagree about the paper. It lists the complete algorithm. It is something like this:
consider a fixed j and then set n=2^j (number of physical qubits) and k = n-j-2 (number of logical qubits) and c = j+2 (number of checks)

First, prepare three tables of neatly ordered bitstrings. I will call them tableX, tableY, tableZ. The paper goes into details of how to prepare these tables. These tables have n rows and c columns. Using the nomenclature in the paper, row r of table"E" would be the syndrome that your code is supposed to have if it experiences single qubit error E acting on qubit r.

These tables are enough to figure out what your parity checks are. Each of the c columns of the tables corresponds to one parity check (one row of the stabilizer).

More explicitly: For parity check row R and qubit column Q you have to put the following Pauli:

if tableX(row = Q, column = R)==1 and tableZ(row = Q, column=R)==1 then put Y
elseif tableX(row = Q, column = R)==1 and tableY(row = Q, column=R)==1 then put Z
elseif tableZ(row = Q, column = R)==1 and tableY(row = Q, column=R)==1 then put Y
else put Identity

This can be done easily with our library. You do not need to actually compute the three tables in advance, you can do everything on the fly:
parity_checks = zero(Stabilizer, n, c)
for e in 1:2^j # the row of the error tableE
    for b in 3:n # the bit of the integer we are working with (the first two bits are constante "true")
        z = the b-th bit of the e-th row of tableZ
        x = the b-th bit of the e-th row of tableX
        parity_checks[error_row,bit] = z, x # note that they are flipped
    end
end

By the way, in case you have not seen it before, extracting a bit from an integer can be done as: isone((integer >> (bit-1)) & 0x1)

Thanks. I read the appendix of paper that you mentioned https://arxiv.org/pdf/quant-ph/9604038.pdf. The Table V gives Xi, Zi, and Yi. The algorithm produces the same Xi and Zi checks! I will recheck Yi (seem similar though, but I will check).
Some details in the appendix of same paper:
For s = r + 1, the general case gives 4 blocks with normal disagreements and 2 blocks with reversed disagreements. When r = 3, there are 2 blocks with normal disagreements and 2 blocks with reversed disagreements. When s = a, and j is even, there are 2 blocks with normal disagreements and 0 blocks with reversed disagreements. When s = a and j is odd, there are also 2 blocks with normal disagreements and 0 blocks with reversed disagreements. Because a ≥ 5, we do not need to consider the combined special case
My question is that although I agree that the paper you referenced provided similar starting details as in thesis, but the way Gottesman entertain [16,10,3]] adds new set of different details on top of the details the he provides in the previous paper. Why does he start from the same set of details and expound further in his thesis needs to be investigated?
Kindly please have a look at the pages 90 to 95 as well. I will read both of the papers again, and try to find the hidden incongrueny!
If it is possible to check somehow j==7, 9 etc. , kindly please test as that might give us more information!

I have tried to fixed the bug.
There was assumption that about the last row that I assumed to hold for all cases. Kindly please check the graph for j=5 (odd js) and let me know. Everything else is the same

Please see the Fresh Results :)

Thanks. I read the appendix of paper that you mentioned https://arxiv.org/pdf/quant-ph/9604038.pdf. The Table V gives Xi, Zi, and Yi. The algorithm produces the same Xi, Zi checks! I will recheck Yi (seem similar though, but I will check). It seems the the last row for odd js is not assumed to be same as even js which was assumed! It means that the last row for odd js as same as even js that's why - which can be fixed!!

I am unsure what you are saying -- I do not know whether you are talking about your algorithm or about the algorithm in the paper.

Some details in the appendix of same paper: For s = r + 1, the general case gives 4 blocks with normal disagreements and 2 blocks with reversed disagreements. When r = 3, there are 2 blocks with normal disagreements and 2 blocks with reversed disagreements. When s = a, and j is even, there are 2 blocks with normal disagreements and 0 blocks with reversed disagreements. When s = a and j is odd, there are also 2 blocks with normal disagreements and 0 blocks with reversed disagreements. Because a ≥ 5, we do not need to consider the combined special case

I have not read the appendix. It seems to be about a proof that the algorithm described earlier in the paper is correct. I was just looking at the definition of the algorithm in section 3.

My question is that although I agree that the paper you referenced provided similar starting details as in thesis, but the way Gottesman entertain [16,10,3]] adds new set of different details on top of the details the he provides in the previous paper. Why does he start from the same set of details and expound further in his thesis needs to be investigated?

That is pretty normal when someone writes a thesis that includes one of their paper from a few years earlier. I imagine (I am not sure), that the author simply wanted to provide some additional insight, so they structured the presentation a bit differently and choose a slightly different convention for bit ordering or error ordering.

Kindly please have a look at the pages 90 to 95 as well. I will read both of the papers again, and try to find the hidden incongrueny!

I do not think there is mismatch in what they are doing in the two publications. One might have slightly different conventions from the other, but you already found other papers that also had slightly different conventions.
I am very impressed you were able to find your bug so quickly! However I also need to worry about the maintainability of this piece of code (in a year or two you might not be involved in the project to fix other bugs). Because of this, I prefer we switch to the algorithm as described in Gottesman's paper:

it is a standard reference, not homegrown
it is shorter (probably 20ish lines instead of 75 lines)
it does not have special cases

Presumably the two should give the same answers (up to some reordering). At the end, that is the only way to be sure (or at least "a bit less unsure") that there is no other bug here.

I am unsure what you are saying -- I do not know whether you are talking about your algorithm or about the algorithm in the paper. Table V, Page 17.

I am talking about the algorithm that is presented in the paper. The homegrown algorithm produces the same Xi, Zi checks.

That is pretty normal when someone writes a thesis that includes one of their paper from a few years earlier. I imagine (I am not sure), that the author simply wanted to provide some additional insight, so they structured the presentation a bit differently and choose a slightly different convention for bit ordering or error ordering.

I think that even and odd checks in Pages 92 and 95 are necessary, as in the paper, he does not consider that [[16,10,3]] even case and how its differs from the the initial odd case [[8,3,3]] that he describes in earlier paper prior to thesis. But he goes into detail in his thesis.

I do not think there is mismatch in what they are doing in the two publications. One might have slightly different conventions from the other, but you already found other papers that also had slightly different conventions.

It's not about convention but about the type of the even and odd checks that results in a slightly differeny symmetric structure for even j values and odd j values. He dedicates 3 pages to the checks, meaning they are significant part of the algoritm!. My homegrown algorithm satisfies that.

I am very impressed you were able to find your bug so quickly! However I also need to worry about the maintainability of this piece of code (in a year or two you might not be involved in the project to fix other bugs). Because of this, I prefer we switch to the algorithm as described in Gottesman's paper:

it is a standard reference, not homegrown
it is shorter (probably 20ish lines instead of 75 lines)
it does not have special cases

Presumably the two should give the same answers (up to some reordering). At the end, that is the only way to be sure (or at least "a bit less unsure") that there is no other bug here.

While I understand your concens, Please rest assured as I have faith in the symmetry and intuition, it holds nicely and with accuracy as  it does satisfies the [Table 8.1 on Page 91](https://thesis.library.caltech.edu/2900/2/THESIS.pdf) of his thesis!  That is a good cross-verification! I will always be available to maintain this code as I would like to keep on contributing to this initiative.  It's just more fun to follow my intuitive approach as I makes me happy as it makes the learning more fun!
The slight bug was there in my assumption of combining even and odd check at one place which I took care of. I knew about the assumption so it was not luck.
Since, I approached the design from methodolody of his thesis, it's a standard reference! I don't think the shorter version will be bug free if checks are not included, otherwise he would not have dedicated 3 pages to them in his thesis.
I will always be present to maintain this code. It's just exciting to come up with a intuitive algorithm.  I have faith in the homegrown algorithm as it incorporates the theory and literature, including his thesis as I approach the design from symmetric structure point of view.
Please be assured!

Please be assured!

Your work is impressive, but this is not how assurances work, especially not in math and computer science. You should never trust your own code. The amount of trust you put in yours is how bugs happen. Verifying one case against a table is not a good verification (as we have seen already).
There is never a way to be completely sure in the correctness of a piece of code, but there are reasonable ways to increase the probability that the code is correct. Here there are two pretty straightforward ways to do it:

Add tests that verify the properties expected from the code. The main one is "every single-qubit error should have a different syndrome". That one is relatively easy and it will actually provide the same type of guarantees :

syndromes = Set([]) # the set automatically removes repeated entries
for error_type in (single_x, single_y, single_z)
    for bit_index in 1:n
        syndrome = comm(parity_check_tableau, error_type(n, bit_index))
        @test any(==(0x1), syndrome) # checking the syndrome is not trivially zero
        push!(syndromes, syndrome)
    end
end
@test length(syndromes) == 3*n # checking that each single-qubit error has a unique syndrome

Implement the very short algorithm from Gottesman's paper that I shared -- which would have the extremely important added benefit that this will be something that other people can also debug in the future, and is much shorter than your current implementation.

Both of these are necessary before this gets merged. Obviously, you work as a volunteer for this and I can not demand anything -- you have already made a very helpful and valued contribution and I am grateful for it. You also shared a lot of resources that were very interesting, and this discussion has certainly been valuable for me. I thank you for all of these contributions!!! I will be happy to finish this on my own if you disagree about the approach I am taking.

And there is a pretty easy way to convince me that the algorithm I am suggesting, the one from the paper, needs these extra checks -- write it and show that it does not pass the tests I just mentioned (the one with the length of the set of syndromes).

And there is a pretty easy way to convince me that the algorithm I am suggesting, the one from the paper, needs these extra checks -- write it and show that it does not pass the tests I just mentioned.

Thanks for the two points.
I'll read the paper that you referred and implement it. Can I include these two points in initial weeks of my proposal (to write an algorithm for the paper) as I need time to carefully to read the paper and then focus on implementation as you want a exact paper implementation? That will help in more literature survey as I will spend next month in literature survey.

First, prepare three tables of neatly ordered bitstrings. I will call them tableX, tableY, tableZ. The paper goes into details of how to prepare these tables. These tables have n rows and c columns.

Where are exactly the details for generating tables you are referring to? Please specify them from the paper.
If you are talking about this:
After reading the section three: Tables can be generated by  generating all possible bitstrings of length n
Select Binary Numbers:
    Pick (j+2)-bit binary numbers for Xi and Zi (for i=1,2,...,ni=1,2,...,n).
    Ensure numbers for Yi (XOR of Xi and Zi) are all different.

For explicit construction of [[8,3,3]] code: he presents

These tables are enough to figure out what your parity checks are. Each of the c columns of the tables corresponds to one parity check (one row of the stabilizer).

Please specify the tables you are referring.

This can be done easily with our library. You do not need to actually compute the three tables in advance, you can do everything on the fly:

There is a contradiction here: If we don't need to compute the tables, then there is no need to define them in memory either. Also, how does this make sure that size of Stabilizer code matrix correct given the definitions here?

parity_checks = zero(Stabilizer, n, c).
Examle: n=2^j, j=3, then n=8, and j+2= 5. This will give 8x5. When the size should be 5 Rows and 8 columns. So, to say ther are c checks seems incorrect?

for j=6, the matix should be: 8x64. The resulting matrix size from this algorithm seems to be incorrect.
I don't this the implementation is 20is lines or efficient and how is this general for all js?

Where are exactly the details for generating tables you are referring to? Please specify them from the paper.

Please specify the tables you are referring.

The tables I defined in my comment.

Using the nomenclature in the paper, row r of table"E" would be the syndrome that your code is supposed to have if it experiences single qubit error E acting on qubit r.

This can be done easily with our library. You do not need to actually compute the three tables in advance, you can do everything on the fly:

There is a contradiction here: If we don't need to compute the tables, then there is no need to define them in memory either. Also, how does this make sure that size of Stabilizer code matrix correct given the definitions here?

You do not need to compute the tables in advance, i.e. no need to store them in memory. You do need to loop through the rows and columns, but entries can be computed on the fly.

Example: n=2^j, j=3, then n=8, and j+2= 5. This will give 8x5 which is wrong. When the size should be 5 Rows and 8 columns. So, to say ther are c checks seems incorrect?

For j=3, we have n=8 physical qubits, k=n-j-2=3 logical qubits, c=n-k=5 checks, which means the parity check tableau should indeed have 5 rows and 8 columns.

I don't think the implementation is 20ish lines.

I will write it and upload it here in a couple of days when I get around to it. It is just 20ish lines.

The tables I defined in my comment.

Thanks! I mixed the Tables provided in the algorithm that you mentioned namely tableX, tableY, tableZ  tables on Page 17. That's why I was confused about where were the tables!

You do not need to compute the tables in advance, i.e. no need to store them in memory. You do need to loop through the rows and columns, but entries can be computed on the fly.

I see, then it will be way less lines since we are Pauli operators based on error type!!
Indeed, it might be very short code them. I thought we needed to compute all the different combinations as were described in table 1. Thanks for clarification!

here is the code
function parity_checks(c::Gottesman)
    j = c.j
    s = j+2
    n = 2^j

    H = zero(Stabilizer, s, n)
    for i in 1:n
        H[1, i] = (true, false)
        H[2, i] = (false, true)
    end
    for i in 0:n-1 # column of H, corresponds to a single qubit error that is detectable)
        Xⁱ = i
        Zⁱ = i÷2
        jeven = j%2 == 0
        ieven = i%2 == 0
        if (jeven && ieven) || (!jeven && ieven && i < n÷2) || (!jeven && !ieven && i ≥ n÷2)
            Zⁱ = ~Zⁱ
        end
        for b in 0:j-1 # which check to consider (row of H), also which bit to extract
            H[s-b,i+1] = isone((Zⁱ>>b)&0x1), isone((Xⁱ>>b)&0x1)
        end
    end
    H
end

and here is the checks for it
H = parity_checks(Gottesman(j))
syndromes = Set([]) # the set automatically removes repeated entries
for error_type in (single_x, single_y, single_z)
    for bit_index in 1:nqubits(H)
        syndrome = comm(H, error_type(nqubits(H), bit_index))
        @assert any(==(0x1), syndrome) # checking the syndrome is not trivially zero
        push!(syndromes, syndrome)
    end
end
@assert length(syndromes) == 3*nqubits(H)

Dear Professor
Please see the output of j==4 [[16,10,4]] it seems it does not match with what is presented in his thesis Table 8.1 Page 91

In fact, the first two bits of Xi must always be 01 but the out is showing 10.
This is the output from the code you presented:
parity_checks(Gottesman(4))

XXXXXXXXXXXXXXXX
ZZZZZZZZZZZZZZZZ
X_X_X_X_YZYZYZYZ
X_X_YZYZ_X_XZYZY
X_YZ_XZYX_YZ_XZY
XZ_YXZ_YXZ_YXZ_Y

But there is a fundamental design error, M1..Mj , first digit can't be X. Please see his comments below:

Hi Feroz! I answer that question in the linked pull request. The stabilizers are equivalent because you can obtain one from the other by performing a row operation.

Closing in favor of #240 which is a slightly updated version of this.


fix: RHTAPBUGS-943 - increase timeout of CreateComponentDetectionQueryWithTimeout

Description
I suspect that it is a timeout issue because this job reports error waiting for cdq to be ready at 11/02/23 08:47:55.344. However, cdq is complete at 2023-11-02T08:47:57Z.
So, this PR increases the timeout in order to see if it fixes it.
Issue ticket number and link
RHTAPBUGS-943
Type of change

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration
Checklist:

[ ] I have performed a self-review of my code
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] I have added meaningful description with JIRA/GitHub issue key(if applicable), for example HASSuiteDescribe("STONE-123456789 devfile source")
[ ] I have updated labels (if needed)

/retest


tri resize broken on AMD driver

Hologram also stops working on resize.  It works when there's a breakpoint in the debugger.  Win 10.

Closing, since we are going to remove the tri demo.


try: 0.1.0 -> 0.2.0

Description of changes
change log: https://github.com/binpash/try/releases/tag/v0.2.0
diff: https://github.com/binpash/try/compare/v0.1.0...v0.2.0

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[x] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
23.11 Release Notes (or backporting 23.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 253063 run on x86_64-linux 1

1 package built:

try


Can't use Azure App Configuration as a source for ConnectionStringSetting

Azure Functions SQL Extension or Extension Bundle Version:
c# net8 isolated function
Microsoft.Azure.Functions.Worker.Extensions.Sql;3.1.284

Is this a deployed or local function: either

What type of Database are you using? (Run SELECT @@VERSION as Version, SERVERPROPERTY('EngineEdition') as EngineEdition on your database)
deployed: Microsoft SQL Azure (RTM) - 12.0.2000.8
Oct  2 2024 11:51:41
Copyright (C) 2022 Microsoft Corporation, 5
local: Version	EngineEdition
Microsoft SQL Server 2019 (RTM-CU27-GDR) (KB5040948) - 15.0.4382.1 (X64)
Jul  1 2024 20:03:23
Copyright (C) 2019 Microsoft Corporation
Express Edition (64-bit) on Windows 10 Enterprise 10.0  (Build 22621: ) (Hypervisor), 4

List any custom settings for your function app. This could be a custom time-out defined specifically for your database server or optional configuration that can be customized for the app defined here.
no custom settings

Steps to Reproduce:

add App Configuration instance to IConfigation

Program.cs
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Hosting;

var host = new HostBuilder()
    .ConfigureFunctionsWebApplication()
    .ConfigureAppConfiguration(
        builder =>
        {
            var config = builder.Build();
            builder.AddAzureAppConfiguration(options =>
            {
                options.Connect(config["AppConfigConnectionString"]);
            });
        })
    .Build();

host.Run();

specify key that is defined in Azure App Configuration

CollectEvents.cs
using Azure.Messaging.EventGrid;

using Microsoft.Azure.Functions.Worker;
using Microsoft.Azure.Functions.Worker.Extensions.Sql;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Logging;

namespace Test;

public class CollectEvents
{
    private readonly ILogger _logger;
    private readonly IConfiguration _config;

    public CollectEvents(ILogger<CollectEvents> logger, IConfiguration config)
    {
        _logger = logger;
        _config = config;
    }

    [Function("CollectEvents")]
    [SqlOutput("Operations.ActivityLog",
        "SqlConnectionString" // complains about missing connection string
    )]
    public ActivityLog Run([EventGridTrigger] EventGridEvent eventGridEvent)
    {
        _logger.LogInformation("SqlConnectionString: {SqlConnectionString}",
            _config["SqlConnectionString"]); // outputs expected connection string

        var log = new ActivityLog
        {
            Id = eventGridEvent.Id,
            EventTime = eventGridEvent.EventTime,
            EventType = eventGridEvent.EventType,
            Subject = eventGridEvent.Subject,
            DataVersion = eventGridEvent.DataVersion,
            Topic = eventGridEvent.Topic,
        };
        return log;
    }
}

public class ActivityLog
{
    public string Id { get; set; } = null!;
    public DateTimeOffset EventTime { get; set; }
    public string EventType { get; set; } = null!;
    public string Subject { get; set; } = null!;
    public string DataVersion { get; set; } = null!;
    public string? Topic { get; set; }
}

I'm not really familiar with this Azure App Configuration stuff so I don't have an immediate answer, but digging around some other issues found this response to a similar question : https://github.com/Azure/azure-functions-host/issues/9598#issuecomment-1771108694

This is just a lead: I remember reading that Event-based scaling doesn't allow dynamic elements in the function signature, all queues, databases, etc need to be hardcoded, constant, or app setting reference.
However, it is possible when Runtime-based scaling is enabled (Configuration --> Function Runtime Settings --> Runtime Scale Monitoring). This setting has conditions and affects a wider range of behaviour so check if that matches your use case.

In case that helps at all.
Is this functionality that you've successfully used in other extensions for signature provided parameters?
In any case, a workaround is always to just use the Azure Function app settings and define your connection string there. Not ideal I realize, but hopefully that could at least unblock you until we can figure out if this is even possible to support currently.

@djseng I wish we could do that.  This is a shortcoming of all azure functions that use attributes where a connection string is provided.

@Charles-Gagnon work around is what I've been using. We have app settings for some things and app configuration for other things.


Flutter Not Work on Linux

Specs:
Android 10 Device
Android API 30
Android build-tool 30.0.2
Android Platform 30
I use to create flutter app using ... flutter create app then cd app && flutter run.. nothing else

Hi @MrR1pp3r
Can you download API 28 packages from SDK manager GUI  inside Android Studio and try again?
Thank you

Hi @MrR1pp3r
please download build-tools using sdkmanager.bat “build-tools;28.0.3”
please follow this https://dev.to/ejgamer21/install-flutter-without-android-studio-58bi or https://medium.com/@quicky316/install-flutter-sdk-on-windows-without-android-studio-102fdf567ce4
Thanks

Thank You..
I getting problem after install 29v.. & trace back the prob..
edit on build.gradle
SdkVersion 30
BuildVersion 30.0.2
Fixed my problem..
I really sorry once again.. nxt time i google it..

And Linux take only 7 seconds to build my app.. kinda faster than Windows

Closing as the author seems to have solved the original issue


fix: switch to node from wallet only

It closes #1321

Looks ok :) feel free to mark as ready for review 😊


Disable-errands task only disabled post-deploy errands

Thanks for submitting an issue to pcf-pipelines. To help us triage the issue, please fill out the following form as much as you can:
Issue
https://github.com/pivotal-cf/pcf-pipelines/blob/master/tasks/disable-errands/task.sh can't disable pre-delete errands (it can only disable post-deploy errands).
Context
Customer is not using on-demand services and would like to disable the pre-delete errands as well and the post-deploy errands.
An operator would like to delete a tile from Ops Manager without having to modify or change errand configuration.
Expected result
Task will enable/disable pre-delete errands
Current result
Task fails when pre-delete errands are included with message: could not execute "set-errand-state": post-deploy-state "true" is invalid
Steps to Reproduce
Run disable-errands task and include pre-delete errands
Possible Fix
Additional logic to use --pre-delete-state or a separate task for disable-pre-delete-errands

Hey @RMeharg thank you for raising this issue. Could you please talk through how you are deleting tiles using the pcf-pipelines? Currently our pcf-pipelines offering only allows for installation, and upgrade to patch releases. Is the pre-delete errands running when you run the upgrade-tile or the upgrade-ops-manager pipelines? Thanks.

Hi @abbyachau , we are deleting tiles using the wipe-env task for install-pcf after spinning up PCF with a bunch of tiles. We use the upgrade-tile pipeline to install all the associated tiles. This wipe-env task fails because on-demand services are not enabled on the installation and the on-demand pre-delete errands cannot be disabled.
We would like the option to delete individual tiles as well but I believe the Ops Manager API does not support this currently.


error on basic binary classification.

hi all trying to run the following script and need some help :).
from keras.models import Sequential
from keras.layers import Dense
from keras.wrappers.scikit_learn import KerasClassifier
from sklearn.model_selection import StratifiedKFold
from sklearn.model_selection import cross_val_score
import numpy
import pandas as pd
Function to create model, required for KerasClassifier
def create_model():
# create model
model = Sequential()
model.add(Dense(12, input_dim=8, init='uniform', activation='relu'))
model.add(Dense(8, init='uniform', activation='relu'))
model.add(Dense(1, init='uniform', activation='sigmoid'))
# Compile model
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
return model
fix random seed for reproducibility
seed = 7
numpy.random.seed(seed)
dataset = pd.read_csv("/home/andrewcz/Downloads/numerai_test/numerai/train.csv")
array= dataset.values
split into input (X) and output (Y) variables
X = array[:,0:20]
Y = array[:,21]
create model
model = KerasClassifier(build_fn=create_model, nb_epoch=150, batch_size=10, verbose=0)
evaluate using 10-fold cross validation
kfold = StratifiedKFold(n_splits=10, shuffle=True, random_state=seed)
results = cross_val_score(model, X, Y, cv=kfold)
print(results.mean())
this get the following
Using TensorFlow backend.
Traceback (most recent call last):
File "test2.py", line 39, in
results = cross_val_score(model, X, Y, cv=kfold)
File "/home/andrewcz/miniconda3/lib/python3.5/site-packages/sklearn/model_selection/_validation.py", line 140, in cross_val_score
for train, test in cv_iter)
File "/home/andrewcz/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py", line 758, in call
while self.dispatch_one_batch(iterator):
File "/home/andrewcz/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py", line 608, in dispatch_one_batch
self._dispatch(tasks)
File "/home/andrewcz/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py", line 571, in _dispatch
job = self._backend.apply_async(batch, callback=cb)
File "/home/andrewcz/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/_parallel_backends.py", line 109, in apply_async
result = ImmediateResult(func)
File "/home/andrewcz/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/_parallel_backends.py", line 326, in init
self.results = batch()
File "/home/andrewcz/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py", line 131, in call
return [func(*args, **kwargs) for func, args, kwargs in self.items]
File "/home/andrewcz/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py", line 131, in
return [func(*args, **kwargs) for func, args, kwargs in self.items]
File "/home/andrewcz/miniconda3/lib/python3.5/site-packages/sklearn/model_selection/_validation.py", line 238, in _fit_and_score
estimator.fit(X_train, y_train, **fit_params)
File "/home/andrewcz/miniconda3/lib/python3.5/site-packages/keras/wrappers/scikit_learn.py", line 148, in fit
history = self.model.fit(X, y, **fit_args)
File "/home/andrewcz/miniconda3/lib/python3.5/site-packages/keras/models.py", line 652, in fit
sample_weight=sample_weight)
File "/home/andrewcz/miniconda3/lib/python3.5/site-packages/keras/engine/training.py", line 1038, in fit
batch_size=batch_size)
File "/home/andrewcz/miniconda3/lib/python3.5/site-packages/keras/engine/training.py", line 963, in _standardize_user_data
exception_prefix='model input')
File "/home/andrewcz/miniconda3/lib/python3.5/site-packages/keras/engine/training.py", line 111, in standardize_input_data
str(array.shape))
Exception: Error when checking model input: expected dense_input_1 to have shape (None, 8) but got array with shape (86687, 20)

The exception is correct. You gave it an (N,20) input shape, but your first Dense layer expects an (N,8) shape - the input_dim argument is 8. The two dimensionalities must match.


Reviewing labelled and predicted changesets from feature classifier

With results from https://github.com/mapbox/gabbar/issues/43, I plan to review 15 changesets in each of the following categories:

Labelled problematic and predicted problematic
Labelled problematic and predicted good
Labelled good and predicted good
Labelled good and predicted problematic

Labelled problematic and predicted problematic
Duplicate looking tags

One of the attributes used for training was the number of duplicate looking tags in the feature
The idea was to flag features with landuse, landuse_1, etc
Not every duplicate looking tag is a 👎 though.
Good tags to have

building, building:level, etc

Not so good to have

landuse, landuse_1, ...
surface, surface_1, ...

Users with blocks

A feature gets an old_name=Порт-Артура in https://osmcha.mapbox.com/44818408/
But, this might not be problematic as is without the larger context of user having a user block
User block: http://www.openstreetmap.org/user_blocks/1147
The user does start using old_name tag, but still is part of the giant reverted
Model don't have the additional context of the user block

Adding leisure=park

We have seen lots of activity around converting existing features to parks.
This should totally be part of our Regression Test Suite

Personal information

Often, mappers add some personal information onto OSM
Feature names could have things like home, My friend's place, etc
Ex: https://osmcha.mapbox.com/46374766/

Labelled problematic and predicted good
Additional context

Sometimes, where the feature is on the map is crucial to understand the feature
In https://osmcha.mapbox.com/47898163/, a highway=footway is good as is
But, when we add environment the feature is in, we see there already exists a highway=footway
Similarly, in https://osmcha.mapbox.com/46383265/ we need to know about the existence of a similar feature nearby, a hospital with the same name in this case.
A park with same name nearby: https://osmcha.mapbox.com/47051957/

Impossible tags

There are some features and should not have some tags.
Ex: The node Paris gets a shop=bicycle in https://osmcha.mapbox.com/46978170/
Note: Value for name:en=France is inappropriate too

Labelled good and predicted good
Name translations

The model currently is making a guess when there is a name translation
Ex: In https://osmcha.mapbox.com/48119284/, name:en=Chalcis was added
The only related attributes the model gets are feature_name_translation_new_version=8 and feature_name_translation_old_version=7

Wikidata

There are inherent properties about every tag and value. Ex: Every Wikidata tag should start with a Q? Ex: Q6529766
In https://osmcha.mapbox.com/48448760/, the Wikidata tag has the value of Wikipedia ru:Церковь_Святого_Филиппа_(Ташкент)

General to specific

When a value goes from a general value to a more specific value, it mostly is a good thing
Ex: in https://osmcha.mapbox.com/48044675/, we go from building=yes -> building=school

Labelled good and predicted problematic
Pure geometry modifications

Looks like the model does not have enough information to make this decision
A majority of features we currently have for the model are property based
The attributes that come close to being relevant are:

feature_area and feature_area_old: Since the feature is a node have a value of 0
The values for leisure and sport remain unchanged so might not be very useful

We definitely need more geometry based attributes. Ex:

Distance between new version and old version of feature
Number of nodes in the feature

Feature name

If the value of name tag does not have any profanity, it should mostly be good.
Percentage of name modification could a feature we could explore. Ex:

Levenshtein distance based scores.
In, https://osmcha.mapbox.com/46823062/, the distance between value of name tag is 8
Could be useful here as well: https://osmcha.mapbox.com/46987866/

Redundant tags

There are tags that are reference only and do not contribute similarly to other properties
In https://osmcha.mapbox.com/47919135/, the feature gets a description.
Skip checking such tags could be a wise thing to do at the current state of the project

No next actions here. Closing.


Date conversion changed in 0.9.3

(or maybe 0.9.2).  Anyway, it's a major change that needs to be mentioned in the upgrade guide and/or changelog. Specifically, query.js has been changed from
switch (field.fieldType) {
case Query.FIELD_TYPE_TIMESTAMP:
case Query.FIELD_TYPE_DATE:
case Query.FIELD_TYPE_DATETIME:
case Query.FIELD_TYPE_NEWDATE:
row[field.name] = new Date(row[field.name]+'Z');
break;
to:
      switch (field.fieldType) {
       //...
        case Query.FIELD_TYPE_NEWDATE:
          row[field.name] = new Date(row[field.name]);

(note the missing 'Z' now).
This obviously causes big problems with dates being off by several hours.  Can this change be reverted or can support for using UTC dates as an option be added?
Thanks,
Bryan

I'm not sure if this is related or not, when I query a purely date field the client returns the date in the format:
"Wed, Oct 19 Oct 2011 00:00:00 GMT" when that's not accurately what's expressed by the field. Is there any way we can modify the client so that DATE fields are returned in a specific format?

This is a pretty major bug in my opinion.  It's halting the company I work for from migrating to 0.9.3.

Although I think this change was major and should have been announced in the docs, I'm closing this ticket because we can solve the issue by setting process.env.TZ='UTC'.

I am experiencing the same problem. setting process.env.TZ to UTC didn't fix it for me. I am running node as
TZ=UTC node app.js
and it picks the right tz, but the issue persists. I had to go back and add the 'Z' that was removed. I agree it is a pretty major bug and will have to revert to an older version.


How do we use a non-included AWS SDK?

According to the README:

For an example on how to use a non-included SDK, see this example build script (buildExternalSdkFunction)

I don't understand what's being done in the example that enables the use of a non-included SDK. The only difference I can see from the standard ESBuild command provided in the README:

esbuild index.js --platform=node --target=es2023 --format=esm --bundle --minify --external:@aws-sdk --external:@smithy

is that there are more values provided in the external argument:
external: [
  "@smithy",
  "@aws-sdk/core",
  "@aws-sdk/util-user-agent-browser",
  "@aws-crypto",
  "bowser",
],

I must be missing something! Why would the non-included SDK (@aws-sdk/client-ec2 in the example provided) now be part of the ESBuild bundle?
Thanks!

Ohhh, is it because @aws-sdk/core is in external rather than @aws-sdk? I didn't spot that difference! If that is the reason, maybe the README should state that explicitly or a comment could be added to the example?

Ohhh, is it because @aws-sdk/core is in external rather than @aws-sdk? I didn't spot that difference! If that is the reason, maybe the README should state that explicitly or a comment could be added to the example?

Yes that's exactly it! Thanks for your suggestion, this should probably documented better!


gb vendor help text does not include the name of the plugin in the usage text.

% gb vendor
Usage:
gb delete [flags] [package] - deletes a local dependency
gb fetch [flags] [package] - fetch a remote dependency
gb update [flags] [package] - updates a local dependency
Flags:
FATAL command "vendor" failed: exit status 1

Fixed in #134.


GGML/GGUF?

Hi, I'm the contributor of the original LLaVA support in GGML/GGUF, and this model seems to be pretty amazing. Would like to get on this, but I couldn't find enough information about the vision encoder. When I skim the code, you load a jitted torchscript file --is it SigCLIP + multimodal projector? What type of projector is this project using? If you can refer me to the architecture details of the model, I'd like to implement GGML/GGUF support in the llama.cpp project.

I'm testing out bitsandbytes 4bit but I'm also very interested in GGUF @monatis @vikhyat

Hi @monatis - would appreciate your support a ton!
The vision encoder is SigLIP with the attention pool removed:
model.visual.trunk.attn_pool = nn.Identity()

Additionally the convolution used to create patch embeddings is replaced with a Linear layer (behaves identically but is 4x faster:
self.model.visual.patch_embed = LinearPatchEmbedding(self.model.visual.patch_embed.proj)

class LinearPatchEmbedding(nn.Module):
    def __init__(self, conv):
        super().__init__()
        self.linear = nn.Linear(588, 1152)
        self.linear.weight.data = conv.weight.data.view(1152, -1)
        if conv.bias is not None:
            self.linear.bias.data = conv.bias.data

    def forward(self, x):
        # These two steps are performed in the inference code before passing it to the jit.script
        x = x[:, :, :-6, :-6]
        x = rearrange(x, "b c (h p1) (w p2) -> b (h w) (c p1 p2)", p1=14, p2=14)
        # This is where the jit.script starts:
        return self.linear(x)

Here's the code for the vision projection:
class VisionProjection(nn.Module):
    def __init__(self):
        super().__init__()

        image_embedding_dim = 1152
        model_dim = 2048
        hidden_dim = model_dim * 4

        self.mlp1 = MLP(
            image_embedding_dim, hidden_dim, model_dim
        )
        self.mlp2 = MLP(model_dim, hidden_dim, model_dim)
        self.ln = LayerNorm(model_dim)

    @property
    def device(self):
        return self.mlp1.fc1.weight.device

    def forward(self, x):
        x = self.mlp1(x)
        x = self.ln(x)
        x = x + self.mlp2(x)
        return x

class MLP(nn.Module):
    def __init__(
        self,
        in_features: int,
        hidden_features: int = None,
        out_features: int = None,
        act_layer: nn.Module = nn.GELU,
    ) -> None:
        super().__init__()
        out_features = out_features or in_features
        hidden_features = hidden_features or in_features
        self.fc1 = nn.Linear(in_features, hidden_features)
        self.act = act_layer()
        self.fc2 = nn.Linear(hidden_features, out_features)

        torch.nn.init.kaiming_normal_(
            self.fc1.weight, mode="fan_in", nonlinearity="relu"
        )
        torch.nn.init.kaiming_normal_(
            self.fc2.weight, mode="fan_in", nonlinearity="relu"
        )

    def forward(self, x: torch.Tensor) -> torch.Tensor:
        x = self.fc1(x)
        x = self.act(x)
        x = self.fc2(x)
        return x

@vikhyat Awesome, thanks! Will have a look at it this week and keep you updated.

I retrained the model to use a LLaVA style MLP projector, running into another blocker because it appears clip.cpp doesn't support having a bias on the patch embedding:
https://github.com/ggerganov/llama.cpp/blob/master/examples/llava/clip.cpp#L434

I see moondream2 was just released, congrats @vikhyat! Is there a GGUF version in the works?

@jadechip somebody has made a gguf version of this model:
https://huggingface.co/sroecker/moondream2-GGUF/tree/main


Apply text-decoration:none also to the :hover state

Components that may also serve as links (such as Button or InlineLink) have text-decoration:none rules only applied to their normal state. This can create conflicts when sites use a stylesheet that explicitly sets text-decoration:underline for a:hover (for example, for accessibility reasons).
I think adding text-decoration:none to the :hover state would fix the problem.

Hey @sergioalvz, how would you feel about creating a stylesheet that overwrites these changes? My only concern is that I wouldn't want Brand to take on a number of these kinds of changes creating a system that is too rigid requiring overrides.
Maybe this specific case is an outlier though, I am not sure. What do you think?

👋 @JoshBowdenConcepts, FYI we've already agreed to apply this change to Primer Brand. The proposed solution should be valid, but you may need to verify it doesn't cause any regressions. In this case, it's not so much an override, but a missing feature.


Support multi-level polymorphism

Adds support for multi-level polymorphism, only with stream style serialization.

The changes look good to me.
Would you update the PatchTest to include the multi-level polymorhism case? It can be in this pr or the patch pr https://github.com/Azure/autorest.java/blob/main/typespec-tests/src/test/java/com/cadl/patch/PatchClientTest.java#L123

One thing, is that I never tried multi-level discriminator from Swagger. I cannot say whether m4 gives the same code-model.


Automated Package Upgrade

:tada: This PR is included in version 5.0.555 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Improve website performance using caches.

Yeah still trying to find ways to improve the website performance- I believe the lack of caches is having a "cascading delays" effect where longer slow requests cause other requests to take even longer. I've been experimenting with the number of gunicorn workers- otherwise next logical step seems to be building a robust caching layer on top of redis or moving to a framework/language with better performance.

did you look at google pagespeed?

Good suggestion- currently getting a pretty bad score from pagespeed. Fortunately this caching code brought avg req time from around 2s to about 600ms. Will apply pagespeed suggestions later.

There are Apache and Nginx modules that automatically speed up your app by Google Pagespeed.

@mike-roberts1 ^

ugh- we're actually using heroku, which makes it a bit more difficult to set that up- have been working on other stuff since the page loading times have been relatively low.

@mike-roberts1 hmm, perhaps it'd be worth changing out from heroku?

Actually just recently switched to heroku and off of AWS ECS since it gave better deployment features and less manual ops work. Am fairly busy at the moment working on other features but opened a new issue so I don't forget about this one.
https://github.com/cheddartv/stockstream.live/issues/8