Creation of FOODON: plant material (or similar) Robot Template

As per ongoing discussion in the Crop Dietary Nutrition Ontology (CDNO), (xref https://github.com/Southern-Cross-Plant-Science/cdno/issues/4), we have decided to create a new Robot template in FOODON for the generation of plant material terms.
Many such terms already exist within FOODON, e.g., apple (whole). In order to supplement these terms, we (in the above mentioned CDNO thread) had decided that this new Robot template would contain an equivalence axiom that would link such FOODON term (new and existing) to terms from both the Plant Ontology (PO) and NCBITaxon in the form: (PO:X and ('develops from part of' some NCBITaxon:Y)).
@ddooley had suggested:

Lets make it [the template] work off of a (tsv download of a) google sheet so that editors can collaboratively advance the content easily.

As such I've created this google sheet for the FOODON:plant_materials. @ddooley I can transfer you ownernship if you'd like.
I'll prepare the terms in scope for CDNO that we've discussed with @LilyAndres and @CropStoreDb. @ddooley let me know if there are changes needed to the robot template or if you'd like me to move forward with a pull request to add this into FOODON in the /src/ontology/imports/robot directory.

I've gone ahead and added all of @LilyAndres's terms (ID's and Equivalence class axioms) to the above mentioned sheet. However, in order to get it to compile, we'd need to add develops from part of to the FOODON's ro_import.owl file.

That's great.  In latest FoodOn I've converted all "develops from part of" relations into "derives from", so no need to include that relation anymore.  I think we can count on the robot file to provide the label, definition etc. so I'll get one of our people to copy over the static stuff.
One other thing - I think the same pattern applies to both plant and animal stuff, so we could generalize the sheet name to "organism material" ?  (Or we keep a separate one for animal stuff but I don't think there will be any field differences so I'd advocate for just having one).

Thanks @kaiiam, I would like to go through the file with you if that's possible? I had a look into the ROBOT repository and guideline but I don't understand all the columns in this file. I also send a request to edit it, I hope you receive it soon. Thanks.

@ddooley

I've converted all "develops from part of" relations into "derives from"
👍

so we could generalize the sheet name to "organism material" ?

Totally up to you, I can change it if you'd like.

I think we can count on the robot file to provide the label, definition etc. so I'll get one of our people to copy over the static stuff.

Since it'll work either way totally up to you as well how you want to handle this, if you want those static fields in the foodon edit owl or in the robot template. Upon import they'll be joined, but I guess the idea would be to keep all the provenance information in one place aka the Robot template rather than in the individual owl classes. I hope this is helpful to FOODON in the long run (and worth the short term changes).
@LilyAndres both your emails should now have access, we can organize a meeting via email.

Thanks @kaiiam. I changed all 'develops from part of' to 'derives from' in the doc.

@ddooley looks like you and you team have done a good job filling in the template. Do you still need more time to finish it, or can I try making the PR with a tsv export as it is now?

I went ahead and added periods at the end of the sentences for the definitions. I see there are just a couple of sticking points left in the text definitions for the terms barley seed (whole), common wheat kernel, and broccoli floret (whole). @ddooley let me know when you get that resolved and I'll go ahead with the PR.
Also would you like me to transfer ownership of the  the google sheet for the FOODON:organism_materials sheet to you? If so to which email?

@ddooley I see in the imports/robot/README.md that you run these ROBOT commands individually and that they are not in the Makefile. Would you be interested in having me try to add these to the Makefile? That way we could set it up have a single step e.g. ./run make all_modules which would compile the latest on all the Robot templates. I just managed to make a working Robot Template in this PR to SRPDIO, which has an ODK generated makefile similar to that in ENVO. Let me know if that would be helpful for FOODON.

Sounds good. i presume make all_modules  would trigger a robot on a .tsv file only if make detected a change in that file?
We have some definitions to revise in organism materials - I'll have Anoosha do that today.  As well after you get a version of it compiled and I edit the redundant axioms out of foodon once it is an include, then we'll be massively adding to that table.  We realize its a priority in order to add ELK inferencing that we want for lots of related terms.

I guess all the robot commands could be boiled down into a single one that enables references using the "--input ..." command.  For more general referencing of term label to ids, we probably need a "--input ../../foodon_merged.owl" \ line.
Thanks so much for your help!

Sounds good. i presume make all_modules would trigger a robot on a .tsv file only if make detected a change in that file?

It looks to me like it runs everything again regardless. Would that be an issue?

I guess all the robot commands could be boiled down into a single one that enables references using the "--input ..." command. For more general referencing of term label to ids, we probably need a "--input ../../foodon_merged.owl" \ line.

I presume so as well I'll try and play with it, I want to make sure that what I did for SRPDIO is correct before I try it here. I'll keep at it and let you know how it goes.

Its not particularly an issue if everything is run again, but make does have a built-in ability to detect when files change and only do stuff then - that's how the ontofox imports/ file handling is done, only when a timestamp change in one of those files occurs does ontofox get involked on it to generate a new .owl file.  So the same thing for robot processing should be straightforward.

but make does have a built-in ability to detect when files change and only do stuff then

That's what I though but here it was ru-running them, in the past I've seen make state that there is nothing to do and won't run anything again.
I have another question for you @ddooley , when you do a direct import in protege, which of the options did you use?

Was it perhaps the second for document on the web? Because when I try it with the first option, the local file isn't found when I try to run make all imports. Thoughts on this?

Always the first.  If you run into wierdness there, first thing to do is delete the catalog.xml file in the src/ontology folder, and perhaps one in the src/ontology/imports folder.  Its protege's cache reference file and sometimes it points to unhelpful things as files are changed.

@ddooley thanks for the feedback! I removed and re-added the catologue.xml file but now running make imports is having a parsing error when trying to load the direct import robot template owl file. I've seem something like this before when trying to get protege to load an ontology file I'd created from scratch. Last time it was a missing RDF tag in the xml, but not now it's being loaded in protege but it's having a parsing error with that new owl file  when I run ./run.sh make all_imports. For reference this is in https://github.com/UA-SRC-data/srpdio/pull/7 not here. I'll pick this again later it's weekend hours here in Europe.

Ok the issue in https://github.com/UA-SRC-data/srpdio/pull/7 seems to be fixed now. Thanks again @ddooley  for the feedback about the catalog file it helped me figure things out.

As well after you get a version of it compiled and I edit the redundant axioms out of foodon once it is an include, then we'll be massively adding to that table. We realize its a priority in order to add ELK inferencing that we want for lots of related terms.

Great, I'm glad this equivalence class reasoning/inferencing is useful to the project! it totally makes sense to me to use inferencing to place terms when possible.

For more general referencing of term label to ids, we probably need a "--input ../../foodon_merged.owl" \ line.

Looking at the FOODON makefile you have the following ODK style lines:
 Merge ontology and imports into one file, and commment out imports tags
	$(ROBOT) merge --input $(ONT).owl --xml-entities --output $(ONT)-merged.owl
	sed -i '.bak' 's/<owl:imports[^>]*\/>/<!-- & -->/' $(ONT)-merged.owl

That make the foodon_merged.owl file. My thinking would be that we would just add all complied ROBOT files as direct imports (like you have now). The change I'm proposing would be to add code to the Makefile which would automatically compile the robot templates as part of the prepare_release target, or upon command (as needed) with a ./run make all_modules. I see, that the FOODON prepare_release is a bit different than a standard ODK generated makefile, for example it doesn't have targets broken down by ASSETS. I'm not sure if that would affect Make's ability to detect and not run targets that "have nothing to be done".
@ddooley I'm rambling a bit but let me know what you'd like me to try, I can try to:

simply create the new robot template and add lines to compile it manually to the robot readme (as you currently have the other robot files)

Add those ROBOT instructions to compile the templates to the Makefile, as well as try to get it run when we call make prepare releas

Do 2 and try to update the Makefile to be more like a standard ODK generated template.

Let me know, perhaps I start with option 1 or 2?

How about we start with option 1.  I realize now that compilation of a robot file doesn't always work - it often requires a bit of manual iteration to get the labels to be matched and as well they can be works in progress with new records being added all the time that aren't necessarily ready when a curator does "make".  Later perhaps we can designate some robot files that are ripe for automation.

Sounds reasonable, if you want, I could still add the lines to the makefile to compile the individual robot files a one liners to run with something like ./run.sh make modules/organismal_material.tsv (without adding it to the release process) instead of having to paste all the robot code, but I guess it's not really that much of a time saver relative to how it is now.
When you guys are ready, would it be OK if I were to proceed with a pull request to add and compiling the Template to get the terms needed for CDNO? @LilyAndres is on a tight timeline to finish her thesis. I take it in such a PR it'd also use protege to directly import the new owl file into into foodon-edit.owl? Later we could make subsequent PRs to refresh the tsv as more terms are ready in the google sheet.
Finally just another thought, I had originally proposed this be a plant material or similar template because that way all the terms could have equivalence axioms of the same form: (PO:X and ('derives from' some NCBITaxon:Y)). If this template were to include non-plant food terms, e.g. animal products the equivalence axiom would need to draw from a different ontology, e.g. uberon. Not that you couldn't have both in the same template, but if it makes it easier to split them out, I could help setup a parallel template(s) for animal material or similar. Up to you just a suggestion.

Ok, if there's a make command that we could have that would test any/all the robot files for a regeneration that would be good since it would eliminate the need for users to cut/paste robot commands directly.  I guess the outputs could be stored in the src/ontology/imports/robot/ folder, and manually moved up a level as desired.
Let me push the latest foodon-edit.owl & some other files to master, and then if you can do your pull request off of those that would work well.
I suppose we could separate plants and animals, its just that I can't see for this class that there would be anything different in terms of columns/attributes.  The table will always reference only the plant and animal organism parts that are already in FoodOn under "part of organism" so that encompasses both PO and UBERON.  So lets keep them together for now, and I can make the change later if I've missed something obvious.

Pull request against current master should be fine now.

Note that in the organismal material table in equivalency axiom table one can mention component terms by their names rather than their ids, so e.g. for pineapple one can say " 'fruit multiple' and 'derives from' some 'Ananas comosus' ".

So far so good it's working! But a few things to note:

In order to get the template to compile on my system I added the ODK generated run.sh executable to run ROBOT from the ODK docker image. Otherwise I'd get a /bin/sh: robot: command not found error which I presume is where @ddooley you have Robot installed locally. I think it'd be better practice to follow what's done with ODK and have docker desktop (easy enough on mac/linux not as much on windows) with the obolibrary/odkfull image pulled. See the instructions on the odk page here. Once that's installed this can be run with ./run.sh make imports/robot/organismal_materials.owl. It should be able to work without docker and with a local install of robot with a command like make ./run.sh make imports/robot/organismal_materials.owl. If we're going to be adding more to the makefile it'd be good to decide on if we expect people to have the ODK docker image or not.

I had to set the import ontology (specified by the --input or -i flag) to be foodon-edit.owl instead of imports/ro_import.owl (like in the other FOODON Robot template examples). Otherwise it woudln't compile because this prevents Manchester syntax errors like MANCHESTER PARSE ERROR the expression ''pome fruit'' at row 3, column 3. By doing this, curators can add any label that matches a term imported into foodon, like pome fruit, which should make these sheets easier to work with.

We'll need to import ear infructescence PO:0025597. I just changed it to the ID in the template for now to get it to compile, that was the only PO term missing from FOODON in the template.

The next thing I'll try is to see what happens when I import the new owl file into foodon-edit.owl (after making a release copy of the robot file robot_organismal_materials.owl in /src/ontology/imports. I'll make sure there aren't any issues prior to committing these last steps.

OK, I've tested out importing robot_organismal_materials.owl into foodon-edit.owl. When I run the ELK reasoner nothing breaks sot that's good news. I haven't tried to run make all_imports just incase, but I don't think I'll run into the same issue with the catolog that I did with https://github.com/UA-SRC-data/srpdio/pull/7 as the modules are a subdirectory to the ontology/src/ontology dir.
A few things I notice when examining the merged product and reasoning:

Classes like barley seed (whole) and durum wheat kernel are now placed under PO:caryopsis fruit. In both these cases the reasoner didn't infer it because we are asserting it in the parent class  column in the template which manually asserts the super class relationship with SC %. If we didn't have this it would still be there but instead inferred by the reasoner like how barley is inferred to be a seed by the axiom shown here:

I think doing it either way is fine, I just to bring it to your attention @ddooley. Which also brings up the point that many of these classes already have axioms and annotations from other sources such as the foodon_product_import.owl which in the case of barley brings in the equivalence axiom with seed and derives from some barley plant. I'm guessing it's not necessarily bad or wrong to have two equivalence axioms? But maybe one of them could be asserted higher up in the hierarchy? I'm no expert on the relationship between caryopsis fruit and seed, but maybe in this case it's just both. caryopsis fruit in PO is defined as:

A fruit (PO:0009001) which develops from a gynoecium (PO:0009062) and at maturity comprises a dry exocarp (PO:0009085), dry mesocarp (PO:0009087), and dry endocarp (PO:0009086) that are fused to a seed coat (PO:0009088).

This relationship between the two, however, isn't reflected in the axiom. Maybe in the future this kind of relationship between seed and caryopsis fruit could be encoded so that downstream ontologies like FOODON can benefit from this linkage? For now, according to @cmungall we shouldn't fear multiple inheritance but instead embrace it see his ontotips post.
I take it there is a plan to do something with those FOODON plant terms, such as grain or seed-producing plant or barley plant now that we have links to NCBI terms like Hordeum vulgare subsp. vulgare?
Finally some of these same terms are also included in foodon_product_import.owl, which we are also importing from, so we get a duplication of labels, definitions, synonyms,  and sometimes equivalence axioms.

@ddooley let me know if I should add these last steps of importing the first version of the new robot template, or if you want to hold back to tackle some of these things I've mentioned.

Hi,
Indeed with the adoption of this robot_organismal_materials.owl file, there are duplicate axioms and some outdated axioms on existing materials that need to be phased out manually.  I will do that, so if possible I'll accept the pull request WITHOUT the actual import of this file in foodon-edit.owl , then organize some time today/tomorrow to add the import link into foodon-edit.owl, and look at the 59 CDNO-related terms in it to cull out old axioms.
I'm actually poised to hit the button on another script that deprecates about 1,782 plant and animal FoodOn organisms to their NCBITaxon equivalents.  So that will create quite a polyhierarchy too of NCBITaxon items now also positioned under the remaining foodon more general plant and animal organism hierarchy.  It also shouldn't lead to any issues.  This also means tweaking or dropping a number of axioms that said 'fillet and 'scientific name for herring' etc.

if possible I'll accept the pull request WITHOUT the actual import of this file in foodon-edit.owl

@ddooley Done see latest message https://github.com/FoodOntology/foodon/pull/116#issuecomment-700789985 on the PR.

robot_organismal_material.owl is now an include in src/ontology/foodon-edit.owl

And now posted to /foodon.owl

@ddooley do you ever sleep :P ?

This is now integrated into live foodon release!  Congratulations Liliana, Graham and Kai for contributing so much to this. This table will be growing massively in the next few months.

Glad we could help

Amazing, thanks a lot for all the effort!


Literally unreachable achievements

Hacking a save file to explore the upper reaches of the game: the smiles required for many achievements are wildly unbalanced against possible income.  Some also exceed your float range.
Buying your 300th Coronation requires 51 vigintillion smiles. Assuming Muffins are still limited to what is given out for Achievements, per #11, then there's a natural limit of approx. 30 Ponies, as by that time your income scales by ~30x each time the cost of a new Pony scales by ~1000x.  Pony #31 requires 8.5x10^45 smiles, and your income is approx. 10^33 SPS, so your next 30x boost in income requires 10^12 seconds, or about 10,000 years.
Assuming that 30 Ponies and 200 Muffins is a rational upper limit on achievable income (the number of friendships and buildings is inconsequential at that point, as all the exponential growth is based on P), to reach 51 vigintillion smiles requires 10^20 years.
The 300th National Holiday and the 300th EoH both display "Infinity" price.
Related: The final click achievement is 10 million clicks.  At a steady rate of 1 click per second 24 hours a day, that's about 3 years of playtime :|
Save file demonstrating numbers:

{"upgrades":[1,2,3,4,5,6,7,8,9,10,12,13,14,15,11,16,17,18,19,20,21],"upgradeHash":{"1":1,"2":2,"3":3,"4":4,"5":5,"6":6,"7":7,"8":8,"9":9,"10":10,"11":11,"12":12,"13":13,"14":14,"15":15,"16":16,"17":17,"18":18,"19":19,"20":20,"21":21},"smiles":1.5526933868240775e+64,"totalsmiles":2.1607807004474134e+64,"SPC":7.3562172427368e+37,"SPS":1.5056080940398516e+42,"shiftDown":false,"totalTime":10228500,"clicks":10000000,"achievements":{"1":0,"2":0,"3":1,"4":2,"5":3,"6":4,"7":5,"8":6,"9":7,"10":1,"11":2,"12":3,"13":4,"14":5,"15":6,"16":7,"17":8,"18":9,"19":10,"20":1,"21":2,"22":3,"23":4,"24":5,"25":1,"26":2,"27":3,"28":4,"29":5,"30":1,"31":2,"32":3,"33":4,"34":5,"35":1,"36":2,"37":3,"38":4,"39":5,"40":1,"41":2,"42":3,"43":4,"44":5,"45":1,"46":2,"47":3,"48":4,"49":5,"50":1,"51":2,"52":3,"53":4,"54":5,"55":1,"56":2,"57":3,"58":4,"60":1,"61":2,"62":3,"63":4,"65":1,"66":2,"67":3,"68":4,"69":5,"200":1,"201":1,"202":1},"achievementcount":70,"muffins":226,"achievement_muffins":226,"store":[30,400,299,299,299,299,299,299,299,299,299,299,0],"ponyList":[0,40,42,18,53,46,23,8,9,33,31,7,11,34,14,15,54,32,25,56,26,43,17,36,51,20,27,47,37,50,10,2,5,12,3,44,41,29,55,16,48,28,24,45,39,1,22,35,6,13,52,19,57,30,49,4,38,21],"version":3,"settings":{"useCanvas":false,"optimizeFocus":true,"closingWarn":false},"delta":50.03590573766269}

Sadly, I wrote those achievements before balancing the game, so some of them are now impossible.
I'm really tempted to keep the 10 million clicks one, though.

This was partially addressed in v0.84. I nerfed all store upgrades to 1, 50, 100, 150, 200, and nerfed the elements even more. I have no idea if these numbers are attainable though.

This was partially addressed, merging with #30


Set the minimum Python to 3.6 and bumped build

number

Checklist

[x] Used a personal fork of the feedstock to propose changes
[x] Bumped the build number (if the version is unchanged)
[ ] Reset the build number to 0 (if the version changed)
[x] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[ ] Ensured the license file is being packaged.

Set the minimum Python version to 3.6 and bumped the build number

@conda-forge-admin, please rerender

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.


Issues with files naming and filerev

Lets assume I have 2 static assets (html files) in my project. File a.html and b.html.
File a has a link to file b inside of it.
Now i ran a build and the 2 files got there name changed and everything is working fine.
Now I need to make a small change only in file b -> filerev will give a new name to file b in the next build. Because file a was not changed it will have the same name as the prev build.
Now, in the next build usemin will go to file a and will fix the link to the new file b name and everything looks fine. But not, because file a still has the same name as prev build, users will get a broken link when trying to access file b from a.
Please see the issue I opened on filerev also
https://github.com/yeoman/grunt-filerev/issues/85

Support questions are better asked on StackOverflow:
http://stackoverflow.com/questions/tagged/gruntjs
Paste in the link to the question here so others can follow ;)

Hi,
Thanks for your answer. I don't think it is question, it is a real issue. Anyway i posted a question in stack


URLs that do not end in a forwards slash return 502

Steps to reproduce:

Visit the homepage
Press 'getting started'

You will be sent to https://design-system.service.gov.uk/get-started with the response of 502 Bad Gateway: Registered endpoint failed to handle the request.
This seems to be consistent with any URL that does not have a forward slash at the end, as you'll notice the main navigation does not have this problem where it links to https://design-system.service.gov.uk/get-started/.

For context I noticed this when visiting the https://design-system.service.gov.uk/get-started/ page on mobile and pressing 'production'.

Thanks for flagging, @nickcolley. PaaS currently have an outage which is affecting the Design System website, and I believe is causing the errors you’re seeing.

That makes sense.
This is now resolved, have a nice day :)


CSS File  ng2-select.css

I am currently trying to use the dropdown like in the demo, but I'm facing the issu with the dropdown,
I have added the file into my project assets and linked them into the .angular-cli.json file
"styles": [
"../src/assets/css/ng2-select/ng2-select.css",
"../src/assets/css/ng2-select/prettify-angulario.css",
"../src/assets/css/ng2-select/bootstrap.min.css"
],
It did not worked, I also tried with bootstrap4 It did not worked.
Can anyone help on this css issue please ?
Thanks
Jimmy

Any updates?

Work by supporting Bootstrap 4 was planned: https://github.com/optimistex/ng2-select-ex/issues/5


Update for bring your own route table

Updated CLI Code and README to reflect Spring Cloud allowing existing route tables in a VNet to be used


DigitalOcean config file importer

This PR adds Digitalocean config file importer.
The config file is located in ${HOME}Library/Application Support/doctl/config.yaml directory on OS X.
On Linux, doctl saves its configuration as ${XDG_CONFIG_HOME}/doctl/config.yaml if the ${XDG_CONFIG_HOME} environmental variable is set, or ~/.config/doctl/config.yaml if it is not.
The documentation is here.

Looks like the pipeline image that runs the tests actually configures XDG_CONFIG_HOME. I'll mark this as draft for now, I'll take some tomorrow morning to wrap it up. 😄

Based on Flo's thread above, we decided that it would be best to standardise importers that use XDG_CONFIG_HOME, since it is quite a common pattern. I'll therefore only tackle the MacOS importer in this PR (which has a static file path), as the plan was initially, and we can pick this up separately: https://github.com/1Password/shell-plugins/issues/153


[vcpkg] update python3 to 3.7.3 on windows

[ ] Update the hash
[ ] Run full rebuild test on Windows triplets

Note to self: extra test running on Azure DevOps pipeline #2665207

maybe better on version 3.6?
many packages work no higher than this version

I got distracted for the past few weeks building up the public CI system I am back working on this again.  Doing a full rebuild on windows with 3.7.3 using in vcpkg-windows-pr:1925.  If lots of ports fail I will fall back to python 3.6 and repeat.

All builds passed in rebuild test (after rerunning known flaky ports)


Seems migration is being attempted twice

Bug Description
To be sure I am running on a clean state. I dropped and created the database
select * from _sqlx_migrations order by version;
ERROR:  relation "_sqlx_migrations" does not exist
LINE 1: select * from _sqlx_migrations order by version;

Then I ran the migration
sqlx migrate run --database-url url

and this gave the following output
Applied<PHONE_NUMBER>0835/migrate --snipped-- (7.641042ms)
Applied<PHONE_NUMBER>0838/migrate --snipped-- (6.248875ms)
Applied<PHONE_NUMBER>1135/migrate --snipped-- (12.551334ms)
Applied<PHONE_NUMBER>1147/migrate --snipped-- (17.130458ms)
Applied<PHONE_NUMBER>1202/migrate --snipped-- (42.473208ms)
Applied<PHONE_NUMBER>0033/migrate --snipped-- (11.581666ms)
Applied<PHONE_NUMBER>1519/migrate --snipped-- (4.694375ms)
Applied<PHONE_NUMBER>0407/migrate --snipped-- (4.825958ms)
Applied<PHONE_NUMBER>3909/migrate --snipped-- (5.609791ms)
Applied<PHONE_NUMBER>1933/migrate --snipped-- (5.974958ms)
Applied<PHONE_NUMBER>5601/migrate --snipped-- (2.036ms)
Applied<PHONE_NUMBER>1618/migrate --snipped-- (9.822541ms)
Applied<PHONE_NUMBER>4702/migrate --snipped-- (1.247916ms)
Applied<PHONE_NUMBER>3741/migrate --snipped-- (1.954917ms)
Applied<PHONE_NUMBER>3003/migrate --snipped-- (1.545708ms)
Applied<PHONE_NUMBER>2856/migrate --snipped-- (1.464875ms)
Applied<PHONE_NUMBER>4823/migrate --snipped-- (3.172083ms)
Applied<PHONE_NUMBER>2153/migrate --snipped-- (3.072042ms)
Applied<PHONE_NUMBER>3923/migrate --snipped-- (1.356458ms)
Applied<PHONE_NUMBER>5220/migrate --snipped-- (1.336791ms)
Applied<PHONE_NUMBER>3921/migrate --snipped-- (4.607375ms)
Applied<PHONE_NUMBER>3154/migrate --snipped-- (1.304792ms)
Applied<PHONE_NUMBER>5519/migrate --snipped-- (1.674084ms)
Applied<PHONE_NUMBER>4210/migrate --snipped-- (1.228292ms)
Applied<PHONE_NUMBER>4941/migrate --snipped-- (1.587333ms)
Applied<PHONE_NUMBER>5422/migrate --snipped-- (1.425417ms)
Applied<PHONE_NUMBER>0400/migrate --snipped-- (1.271083ms)
Applied<PHONE_NUMBER>0455/migrate --snipped-- (2.362708ms)
Applied<PHONE_NUMBER>4947/migrate --snipped-- (5.798375ms)
Applied<PHONE_NUMBER>3145/migrate --snipped--(4.58775ms)
Applied<PHONE_NUMBER>5932/migrate --snipped-- (3.679709ms)
error: while executing migrations: error returned from database: duplicate key value violates unique constraint "_sqlx_migrations_pkey"

Then running the application fails with the error
Error:
   0: migration<PHONE_NUMBER>5932 was previously applied but has been modified

Minimal Reproduction
A small code snippet or a link to a Github repo or Gist, with instructions on reproducing the bug.
Info

SQLx version: 0.6
SQLx features enabled:"runtime-actix-native-tls" , "postgres", "chrono", "uuid", "decimal", "macros", "offline"
Database server and version: psql (PostgreSQL) 14.7
Operating system: MacOs and Ubuntu
rustc --version: rustc 1.69.0-nightly (c18a5e8a5 2023-01-25)

Issue was with the file name. It was manually named xyz_up.sql/xyz_down.sql ...instead of xyz_up.sql/xyz_down.sql


console.log() the result of interpreted JavaScript?

How do I console.log() the result? Do I just do console.log(myInterpreter)?

@Unzor there are multiple ways of using this, including using it as an independent command-line tool, but I assume you mean to include this in a JS project that you already have? In that case something like this:
import Interpreter from 'js-interpreter';
const code = `
  var x = 2;
  console.log('x is: ', x);
`;
const myInterpreter = new Interpreter(x);
myInterpreter.run();

You can take a look at the cli code for an example of how this library can be used: src/cli.js


[Failure] 54 3 | add_expenditure_type_zero_freq function does not alter non-skipped values

The issue:
The issue appears to be in how the value_to_sl() function is handling the data. The function is replacing NA values with 0 for skipped entries, but it's also replacing non-skipped NA values with 0, which is not the desired behaviour.
Proposed Solution
modify add_expenditure_type_zero_freq.R function to only replace NA values with 0 when the corresponding expenditure_freq value is in the undefined list.
add_expenditure_type_zero_freq <- function(
    df,
    expenditure_freq = "cm_expenditure_frequent",
    undefined = c("dnk", "pnta", "none"),
    expenditure_freq_types = c("cm_expenditure_frequent_food",
                               "cm_expenditure_frequent_rent",
                               "cm_expenditure_frequent_water",
                               "cm_expenditure_frequent_nfi",
                               "cm_expenditure_frequent_utilitiues",
                               "cm_expenditure_frequent_fuel",
                               "cm_expenditure_frequent_transportation",
                               "cm_expenditure_frequent_communication",
                               "cm_expenditure_frequent_other")
){

  #----- Checks

  # Check that frequent expenditure is of length 1
  if (length(expenditure_freq) != 1) {
    rlang::abort("expenditure_freq must be of length 1.")
  }

  # Check if expenditure_freq is in the data
  if_not_in_stop(df, c(expenditure_freq, expenditure_freq_types), "df")

  # Check that expenditure_freq_types are numeric
  are_cols_numeric(df, expenditure_freq_types)

  #----- Replace NA with 0 for skipped entries

  df <- df %>%
    dplyr::mutate(across(all_of(expenditure_freq_types),
                         ~ifelse(is.na(.) & !!sym(expenditure_freq) %in% undefined, 0, .)))

  return(df)
}

The error:
── Failure ('test-add_expenditure_type_zero_freq.R:52:3'): add_expenditure_type_zero_freq function does not alter non-skipped values ──
result$cm_expenditure_frequent_food not equal to c(NA, NA, NA, 100).
3/4 mismatches (average diff: NaN)
[1] 0 - NA == NA
[2] 0 - NA == NA
[3] 0 - NA == NA

── Failure ('test-add_expenditure_type_zero_freq.R:53:3'): add_expenditure_type_zero_freq function does not alter non-skipped values ──
result$cm_expenditure_frequent_rent not equal to c(NA, NA, NA, 200).
3/4 mismatches (average diff: NaN)
[1] 0 - NA == NA
[2] 0 - NA == NA
[3] 0 - NA == NA

── Failure ('test-add_expenditure_type_zero_freq.R:54:3'): add_expenditure_type_zero_freq function does not alter non-skipped values ──
result$cm_expenditure_frequent_water not equal to c(NA, NA, NA, 50).
3/4 mismatches (average diff: NaN)
[1] 0 - NA == NA
[2] 0 - NA == NA
[3] 0 - NA == NA

── Failure ('test-add_expenditure_type_zero_freq.R:55:3'): add_expenditure_type_zero_freq function does not alter non-skipped values ──
result$cm_expenditure_frequent_nfi not equal to c(NA, NA, NA, 80).
3/4 mismatches (average diff: NaN)
[1] 0 - NA == NA
[2] 0 - NA == NA
[3] 0 - NA == NA

── Failure ('test-add_expenditure_type_zero_freq.R:56:3'): add_expenditure_type_zero_freq function does not alter non-skipped values ──
result$cm_expenditure_frequent_utilitiues not equal to c(NA, NA, NA, 60).
3/4 mismatches (average diff: NaN)
[1] 0 - NA == NA
[2] 0 - NA == NA
[3] 0 - NA == NA

── Failure ('test-add_expenditure_type_zero_freq.R:57:3'): add_expenditure_type_zero_freq function does not alter non-skipped values ──
result$cm_expenditure_frequent_fuel not equal to c(NA, NA, NA, 40).
3/4 mismatches (average diff: NaN)
[1] 0 - NA == NA
[2] 0 - NA == NA
[3] 0 - NA == NA

── Failure ('test-add_expenditure_type_zero_freq.R:58:3'): add_expenditure_type_zero_freq function does not alter non-skipped values ──
result$cm_expenditure_frequent_transportation not equal to c(NA, NA, NA, 30).
3/4 mismatches (average diff: NaN)
[1] 0 - NA == NA
[2] 0 - NA == NA
[3] 0 - NA == NA

── Failure ('test-add_expenditure_type_zero_freq.R:59:3'): add_expenditure_type_zero_freq function does not alter non-skipped values ──
result$cm_expenditure_frequent_communication not equal to c(NA, NA, NA, 20).
3/4 mismatches (average diff: NaN)
[1] 0 - NA == NA
[2] 0 - NA == NA
[3] 0 - NA == NA

── Failure ('test-add_expenditure_type_zero_freq.R:60:3'): add_expenditure_type_zero_freq function does not alter non-skipped values ──
result$cm_expenditure_frequent_other not equal to c(NA, NA, NA, 10).
3/4 mismatches (average diff: NaN)
[1] 0 - NA == NA
[2] 0 - NA == NA
[3] 0 - NA == NA

@lanawwas - please check the test. I was able to run the code without non-NA values changing to 0.


Add BSD 3-clause license as an explicit file

Having an explicit license document helps auditing efforts as folks won't always know to look into the setup.py file for licensing details.

Good call, thanks.


Error for path ending with slash

Paths ending with slashes result in the error Path must not end with a slash: matches the expression '.+\/$'
The explanation at https://quobix.com/vacuum/rules/operations/path-keys-no-trailing-slash/ just says it's important not to do that, but provides no rationale. Spectral docs at https://meta.stoplight.io/docs/spectral/4dec24461f3af-open-api-rules#path-keys-no-trailing-slash do provide some reasoning, which makes sense to me.
However, I believe no OpenAPI specification actually forbids this. Therefore I was wondering if this should be downgraded to a warning, and perhaps the quobix.com/vacuum docs updated to elaborate a bit on the reasoning?

Docs have been updated, and the rule now throws a warning instead of an error
https://quobix.com/vacuum/rules/operations/path-keys-no-trailing-slash/
Thank you for helping make vacuum a better tool.


About the different input size in the network inference TRT（关于TensorRT不同尺寸推理）

I train the network with 960x960 size
And i test the pth.tar in the python is OK and result is fine
But when I test trt in 960x960 this inference's result is wrong ,and the result bbox is jump very fast not stable
could you tell how to solve  the c++ inference where to change in the inference stage about different size

Solved ，my fault ，i got a stupid mistake

Just make sure the inputH and inputW
there will be fine in the inference


Add MachineHealthChecks of Cluster API

Added MachineHealthChecks of Cluster API as users of NodeProblemDetector.

/ok-to-test

/lgtm


Add from_bits and from_bits_truncate to BitFlag trait

This would add the same convenience of BitFlag::empty() and BitFlag::all(), namely the inner enum type would be directly visible at the call site, and possibly avoid some type hints.

Oh, yeah, this makes sense. One thing to consider is that, if someone already has from_bits implemented on their type, this will technically be a breaking change. I'm not sure if that qualifies for a semver bump, though...
Also, there's from_bits_unchecked. I suppose it could make sense to do that as well?


PHP json_decode throws error with well-formed json

This might be a PHP json_decode issue but wanted to share our production bug here after upgrading to Node 12.
var a = '𝘥𝘦𝘴𝘪𝘨𝘯𝘦𝘳 𝘢𝘯𝘥 𝘪𝘭𝘭𝘶𝘴𝘵𝘳𝘢𝘵𝘰𝘳';
JSON.stringify(a.slice(0, 15));

// Node 10 output:
'"𝘥𝘦𝘴𝘪𝘨𝘯𝘦�"';

// Node 12 output:
'"𝘥𝘦𝘴𝘪𝘨𝘯𝘦\\ud835"'

This response is then sent to a PHP server as JSON and decoded. Which is where the error occurs. Node10's output used to work fine with PHP json_decode but it no longer works with Node12's output.
I simplified the NODE->PHP example see below.
<?php
$string = '{"string": "𝘥𝘦𝘴𝘪𝘨𝘯𝘦\\ud835"}';
var_dump(json_decode($string, false, 512, JSON_THROW_ON_ERROR | JSON_INVALID_UTF8_IGNORE | JSON_INVALID_UTF8_SUBSTITUTE));

// Output:
Fatal error: Uncaught JsonException: Single unpaired UTF-16 surrogate in unicode escape in phptest.php:36
Stack trace:
#0 phptest.php(36): json_decode('{"string": "\xF0\x9D\x98...', false, 512, 7340032)
#1 {main}
  thrown in phptest.php on line 36

//Node 10's output works fine.
object(stdClass)#1 (1) {
  ["string"]=>
  string(31) "𝘥𝘦𝘴𝘪𝘨𝘯𝘦�"
}

See #13.
As in that thread,

It seems weird to guard against lone surrogates in escaped form but not in their unescaped form.

Those two representations should be equivalent. You might consider filing a bug against PHP.


Modernize code

Major refactor to modernize code.

[x] Replace mocha/phantomjs with jest/puppeteer
[x] Convert namespaces to modules.
[x] Replace grunt with npm scripts
[x] Rename ol3-turf to olturf

Coverage decreased (-58.3%) to 41.687% when pulling 501b386b577a35b353a2bb8bffbbbfa0493c8ea0 on modernize-code into 55448b1f05a77ac8ca3de6b374e2ac7b580c67d3 on master.


Adding overpressure calculation

Adds the functionality to handle overpressure situations. The user is also given the opportunity to redirect the injection into a different reservoir ("Injection Reservoir") that is shallower and lower pressure.

I have fixed as much as I can. It still fails 3 tests, all related to the same thing... could Byron have added some more stringent test assertations that are causing things to fail locally? @softwareengineerprogrammer - please check.

I have fixed as much as I can. It still fails 3 tests, all related to the same thing... could Byron have added some more stringent test assertations that are causing things to fail locally? @softwareengineerprogrammer - please check.

@malcolm-dsider See https://github.com/malcolm-dsider/geophires-x-nrel/pull/4#issuecomment-2075583349

Relevant discussion: https://github.com/NREL/GEOPHIRES-X/discussions/176


How to use MIDIClockListener and MIDIBeatObserver?

I am asking this question here, since I can't find any information about it in the docs, and I get no replies on Stackoverflow
I am trying to use the MIDIBeatObserver/MIDIClockListener class in AudioKit 5, so I can sync MTC, realtime messages and Bars/Beats time code from Logic Pro to my app (Swift / Xcode 13.4.1).
However, I can't seem to find any information on this subject in the AudioKit documentation, except for the following (from the first comments section of the MidiClockListener.swift source file from AudioKit 5):
/// This class is used to count midi clock events and inform observers
/// every 24 pulses (1 quarter note)
///
/// If you wish to observer its events, then add your own MIDIBeatObserver

I would, if I only knew how. So my question is simply:
How do I proceed to "add my own MIDIBeatObserver", and how do I access the methods and functions from it?
Thanks!

We're going to be overhauling the MIDI with @orchetect 's https://github.com/orchetect/MIDIKit


Figure out the right way to import lodash

Currentlty the lodash bits get bundled in the dist build. Either webpack configuration needs to be tweak or we need to change lodash imports. Alternatively lodash could be written out of the project. Suggestions are welcome.

I'm going to skip this given the weight lodash adds is so minimal. Thanks to behavior we can actually drop the peer dependency requirement so I'll do that.


Confusing UI when adding a friend

On iOS, when adding a friend, after entering an handle and picking a choice, the keyboard stays up and hides the button to validate the choice.  Having the button on top of the screen is an easy fix, it seems.

@verstaen thanks you for the report! I think it is a valid one. 🙂


Filters should be dynamic by country

Different countries have different accepted ppe in their forms. We need to make the filters that appear below the map dynamic so that, for example, walkie talkies don't appear in France where they are not in the form.

https://github.com/findthemasks/findthemasks/pull/494

this is a dup with #402 , right?
I talked about this with @nburt a little bit the other day but I'm still not clear on why the option @awong-dev alluded to in #402 isn't the right one to take at this point: dynamically generating filters based on the list of elements that's being displayed. I don't think it would need to be scraped after rendering, either, right? We just use the same list of elements in the JS and compile unique filter items and then i18n them the same way we do for displaying them in the list/marker templates?

The one tricky thing here I think is the "other" field. We will want to make sure we aren't generating any filters from that and I don't have a great idea as to how to solve that problem since it is a free form field

Ah I see what you're saying @nburt -- we allow people to add basically anything, but we don't want to filter on things that aren't actually in the canonical list. Hmm. I mean, we could maintain a comprehensive multi-language whitelist maybe?

Yeah I think that would help to have one sheet of our canonical language. In practice I think it will be hard to ensure it's always aligned perfectly but maybe worth a shot?

@nburt I'm going to give this a go, my approach is going to be:
-- establish (hardcoded) country by country whitelist of filter items (with a default set)
-- detect categories of items for filtering by searching the dataset we're displaying, but limit categories to those in the whitelist

actually, maybe the whitelist doesn't need to be country-specific -- the only situation we would worry about that could prevent is if one country doesn't list an item as an actual donation, but another does, and someone types that item name in the Other field? Seems like not that big an issue?


Import opencv in PTVS

Hello everyone,
I have successfully installed PTVS using python 2.7, and I was able to install opencv 2.4.11 in python. However when I do "import cv2" in PTVS it does not recognize cv2. Therefore, I was wondering how I could import and use opencv in PTVS. Opencv is installed in visual studio c/c++ as well.
Thanks for your efforts !!!!

After installing, there is a refresh step that needs to be completed. Have a look at the docs and see whether it is finished (or maybe hasn't been started automatically).


Waveforms not loading for cluster-manual

I've already run spikesorting on several data sets. I've already manually clustered them with cluster-manual afterwards for several of them. Now when I start cluster-manual the waveforms are loading. First the waveforms wouldn't load in the probes geometry. Now I can't see them at all. I can still see and operate the traces, features, correlograms etc., but not waveforms.

do you have the same problem with the latest version? (the new command is phy kwik-gui file.kwik)


Bracket is not found in Core

Bracket class is not found in october
you should use Template class

Template is renamed to Bracket in stable release. Please enable edge
updates to ensure testing with the latest code.
On Monday, 6 June 2016, mohammad sharif ahrari<EMAIL_ADDRESS>wrote:

Bracket class is not found in october
you should use Template class
You can view, comment on, or merge this pull request online at:
https://github.com/rainlab/builder-plugin/pull/96
Commit Summary

Update FilesystemGenerator.php

File Changes

M classes/FilesystemGenerator.php
https://github.com/rainlab/builder-plugin/pull/96/files#diff-0 (2)

Patch Links:

https://github.com/rainlab/builder-plugin/pull/96.patch
https://github.com/rainlab/builder-plugin/pull/96.diff

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/rainlab/builder-plugin/pull/96, or mute the thread
https://github.com/notifications/unsubscribe/ABVA5Xmph7YYvG-P-G-jkUQwVcmDm9iEks5qI-Q6gaJpZM4Iusv_
.


Use fully qualified static variable names

We need to use the fully qualified static variable names so that we don't have duplicates of static variables everywhere.

Done, but see bug #13


Add notice when attempting to start/stop an already started/stopped world

Attempting to start an already started world or stop an already stopped world will only display a period ("."), such as below:
$ mscs status
Minecraft Server Status:
  test: running version 1.15.2 (2 of 20 users online).
    Process ID: 5160.
    Memory used: 2538068 kB.
  cannon: not running.

$ mscs start test
The cached copy of the version manifest is up to date.
Use the force-update option to ensure a new copy is downloaded.
Starting Minecraft Server:.

$ mscs stop cannon
Stopping Minecraft Server:.

This patch notifies the user when they attempt to start or stop an already started/stopped world. If the user tries to start/stop multiple worlds and one already is started/stopped, then the entire command will exit and no worlds will be started or stopped (same behavior when user tries to start/stop/restart worlds and one world doesn't exist).
$ mscs status
Minecraft Server Status:
  test: running version 1.15.2 (2 of 20 users online).
    Process ID: 5160.
    Memory used: 2538068 kB.
  cannon: not running.

$ mscs start test
The cached copy of the version manifest is up to date.
Use the force-update option to ensure a new copy is downloaded.
Unable to start the requested worlds: world 'test' already running.

$ mscs stop cannon
Unable to stop the requested worlds: world 'cannon' already stopped.

$ mscs start test cannon
The cached copy of the version manifest is up to date.
Use the force-update option to ensure a new copy is downloaded.
Unable to start the requested worlds: world 'test' already running.

$ mscs stop test cannon
Unable to stop the requested worlds: world 'cannon' already stopped.

Additionally, right now when a user tries to start/stop/restart a world that doesn't exist, it will say "World not recognized . I changed the warnings to "World not recognized or disabled" since disabled worlds won't be recognized either (since the worlds are being checked with the isWorldEnabled function).

Having the force-* variants skip this check might be a good idea.

Having the force-* variants skip this check might be a good idea.

oh, good point. i totally forgot about those commands

I don't think there is a force-start though

I like this, good idea.

Nice. Thanks @Roflicide. I'll accept the PR.

Woops -- I accidently had in code there that i was gonna put in another PR that warns the user before checking to delete a world (bold is what I added to the delete command)
do you want me revert this back?
delete | remove)
    # Get list of enabled worlds.
    if ! isWorldAvailable "$1"; then
      printf "World not found, unable to delete world '$1'.\n"
      exit 1
    fi
    **printf "Are you sure you wish to delete world '$1'? (y/n): "
    read answer
    if [ "$answer" = "${answer#[Yy]}" ]; then
        printf "Aborted.\n"
        exit 1
    else**
      printf "Deleting Minecraft world: $1"
      if serverRunning "$1"; then
        # If the world server has users logged in, announce that the world is
        # being deleted.
        if [ $(queryNumUsers "$1") -gt 0 ]; then
          sendCommand "$1" "say The server admin is deleting this world."
          sendCommand "$1" "say The server will be deleted in 1 minute..."
          sleep 60
          sendCommand "$1" "say The server is now shutting down."
        fi
        # Stop the world server.
        stop "$1"
        sleep 5
      fi
      # Delete the world.
      deleteWorld "$1"
      printf ".\n"
    fi

That is a good idea. Don't worry about it being in this PR


Store race files always as race.json

With this commit we store the race file always as race.json.
Previously Rally had a logic built-in to create a unique file name if
there was a potential for duplicate race files (with the same race
timestamp) but as we're using the race id now for the base directory
this is not possible anymore.
Relates #720

Thanks for the review! :)


Doesn't support grpc package names with "."

Describe the bug
When a grpc package name contains one or more periods, e.g. foo.package, the mock grpc server fails to find the mocks and returns the error "The server does not implement the method /foo.package.HelloWorld/SayAnything".
Replacing the . in the package name with _ works around it, but when needing to use this for real projects with such package names and clients that use them, that's a costly workaround.
To Reproduce
Steps to reproduce the behavior:

Mock File Content
grpc/mocks/foo.package/HelloWorld/SayAnything.mock:

{
  "message": "foobar!!!!!"
}

Proto file
grpc/protos/hw5.proto:

syntax = "proto3";

package foo.package;

service HelloWorld {
    rpc SayAnything (Greeting) returns (Greeting) {
    }
}

message Greeting {
    string message = 1;
}

Error Stack Trace
grpcurl -v -d '{"message":"foobar!!"}' -proto grpc/protos/hw5.proto -plaintext localhost:4312 foo.package.HelloWorld/SayAnything

Resolved method descriptor:
rpc SayAnything ( .foo.package.Greeting ) returns ( .foo.package.Greeting );

Request metadata to send:
(empty)

Response headers received:
content-type: application/grpc+proto
date: Fri, 23 Jul 2021 18:14:16 GMT
grpc-accept-encoding: identity

Response trailers received:
(empty)
Sent 1 request and received 0 responses
ERROR:
  Code: Unimplemented
  Message: The server does not implement the method /foo.package.HelloWorld/SayAnything

Expected behavior
It should work like it does when the package has no .:
grpcurl -v -d '{"message":"foobar!!"}' -proto grpc/protos/hw4.proto -plaintext localhost:4312 foo_package.HelloWorld/SayAnything
Resolved method descriptor:
rpc SayAnything ( .foo_package.Greeting ) returns ( .foo_package.Greeting );

Request metadata to send:
(empty)

Response headers received:
content-type: application/grpc+proto
date: Fri, 23 Jul 2021 18:16:01 GMT
grpc-accept-encoding: identity

Response contents:
{
  "message": "foobar!!!!!"
}

Response trailers received:
(empty)
Sent 1 request and received 1 response

Desktop (please complete the following information):

OS: MacOS Catalina
camouflage-server 0.5.1

** Log file **
2021-07-23 11:10:10 debug: Camouflage configuration:
========
mocks_dir | ws.mocks_dir | http.port | http.enable | https.enable | http2.enable | grpc.enable | ws.enable | cache.enable | injection.enable | origins | ssl.key | ssl.cert | https.port | http2.port | grpc.host | grpc.port | grpc.mocks_dir | grpc.protos_dir | loglevel | backup.enable | backup.cron | configFile | ext_helpers | cache.ttl_seconds
========
./mocks | ./ws_mocks | 8080 | false | false | false | true | false | false | false | http://localhost:3000/,http://localhost:3001/,http://localhost:5000/ | ./certs/server.key | ./certs/server.cert | 8443 | 8081 | 8082 | localhost | 4312 | ./grpc/mocks | ./grpc/protos | debug | false | 0 * * * * | config.yml | ./custom_handlebar.json | 300
========

2021-07-23 11:10:10 info: [33656] Master Started
2021-07-23 11:10:10 info: Cluster metrics server listening to 5555, metrics exposed on http://localhost:5555/metrics
(node:33656) [DEP0111] DeprecationWarning: Access to process.binding('http_parser') is deprecated.
(Use `node --trace-deprecation ...` to show where the warning was created)
2021-07-23 11:10:12 info: CORS enabled for http://localhost:3000/, http://localhost:3001/, http://localhost:5000/
2021-07-23 11:10:12 info: [33659] Worker started
2021-07-23 11:10:12 info: Handlebar helpers registration started
2021-07-23 11:10:12 warn: Code Injection is disabled. Handlebars such as code and inject and functionalities such as external helpers, will not work.
2021-07-23 11:10:12 info: Handlebar helpers registration completed
2021-07-23 11:10:12 debug: Registering Unary method: createBlog
2021-07-23 11:10:12 debug: Registering Unary method: listBlogs
2021-07-23 11:10:12 debug: Registering Unary method: SayHello
2021-07-23 11:10:12 debug: Registering Unary method: SayAnything
2021-07-23 11:10:12 debug: Registering method with server side streaming: GenIntStream
2021-07-23 11:10:12 debug: Registering method with BIDI streaming: IntStreamToStatsStream
2021-07-23 11:10:12 debug: Registering Unary method: SayAnything
2021-07-23 11:10:12 debug: Registering Unary method: createTodo
2021-07-23 11:10:12 debug: Registering Unary method: readTodo
2021-07-23 11:10:12 debug: Registering method with server side streaming: readTodoStream
2021-07-23 11:10:12 debug: Registering method with client side streaming: createTodoStream
2021-07-23 11:10:12 debug: Registering method with BIDI streaming: createTodoBidiStream
(node:33659) [DEP0111] DeprecationWarning: Access to process.binding('http_parser') is deprecated.
(Use `node --trace-deprecation ...` to show where the warning was created)
2021-07-23 11:10:12 info: Worker sharing gRPC server at localhost:4312 ⛳
2021-07-23 11:10:34 debug: Mock file path: grpc/mocks/foo_package/HelloWorld/SayAnything.mock
2021-07-23 11:10:34 debug: Response: {
  "message": "foobar!!!!!"
}

Thanks @ctoomey for bringing this to notice. Great catch!
From initial debugging, it appears grpc proto loader isn't loading the protofiles correctly if the package name contains a '.'
I'll run few more isolated tests to determine if it is a Camouflage issue or if needs to be raised in proto loader project. I hope the workaround, i.e. not having a dot in package name, works for you in the meantime.

Update
It was a Camouflage issue caused due to incorrect parsing of the packageDefinition object. The fix is available in dev branch and I'd merge it to main for a new release after few more tests.
If you'd like to test the changes yourself, you could checkout develop branch and build from source

Please upgrade to 0.5.2:

npm i -g camouflage-server

Thanks so much for the quick fix @shubhendumadhukar ! I updated and verified it works correctly now.
I ran into a couple other issues that I was able to workaround by editing the code locally; I'll create separate tickets for those.


MonitorEventsAsync syntax for --since param

I am trying to figure out how to use the   await _dockerClient.System.MonitorEventsAsync( api and specify a since parameter.
Multiple variations have been unsuccessful.
    await _dockerClient.System.MonitorEventsAsync(
                    new ContainerEventsParameters()
                    {
                        Since ="",
                        Filters = new Dictionary<string, IDictionary<string, bool>>()
                        {
                            {
                                "type", new Dictionary<string,bool>()
                                {
                                    { "service", true }
                                }
                            }
                        }
                    }, new Progress<Message>(OnHandleServiceEvent), monitorCancelToken.Token);

What version of Docker.DotNet?:
3.125.15

When my application first runs, I'd like to get all the logs since the beginning of time. What should I specify as the since parameter to do this? All my attempts have resulted in a parse error returned from docker.
Then as I progress each log, it has a unix datetime associated with it. I am able to save an anchor locally based on var anchorDateTime = DateTimeOffset.FromUnixTimeSeconds(message.Time); where message is the log message received via the above monitor events async api. if my application terminates, when it next runs, I load the anchor as a datetime. In this instances I want to get the logs greater than the last anchor date. I am aware that the docker api for this allows --since to be passed in various forms like unix timestamps or RFC3339 dates. I think I'd just like to find a successful exampe of this param being used and to understand what is supported so I can try and woork out how to fulfil this use case where I anchor by the message time.

The container log API expects the since and until argument as total seconds starting on the January 1st 1970 at UTC (Unix epoch). We are passing the following to the Docker endpoint 1 and 2. I hope that helps.

Thanks yup that works. Looks like you can't use RFC3339 datetime.


Call done() on failure to prevent Grunt hanging

This fixes issue #140 by calling done() when the task is finished, regardless of whether it succeeded. I have not passed a boolean true in, because it doesn't seem to be required.
The output of npm test still passes. I would write a test for this, but I'm struggling to think of a way of testing it without running the entire task as a child process.

Cool I'll have a look.


[List/ListItem] Introduce selected property #1581

Implementation of Issue #1581:

following the ReactLink pattern, List has now a selectedLink prop
selectedLink is a plain js object holding the index of the currently selected ListItem and a callback function to change that value
ListItem has new prop index
callback-fn of selectedLink is called when onTouchTap is fired by a ListItem
the original onTouchTap is propagated, too.

Example implementation for the container component  for the List:
export default class MyListContainer extends Component {
  constructor(props) {
    super(props);
    this.state = { selectedIndex: 1 }
  }

  handleUpdateSelectedIndex = (index) => {
    this.setState(Object.assign({}, this.state, {selectedIndex: index}));
  }

  render() {
    var selectedLink = {
      value: this.state.selectedIndex,
      requestChange: this.handleUpdateSelectedIndex
    };
    return(
      <List style={styles.paper}
        subheader="Contacts"
        selectedLink={selectedLink}>
        <ListItem index={1} ....../>
        <ListItem index={2} ....../>
      </List>
    );
  }
}

Is there anything I can do to get this merged?

I've set the default value as suggested and fixed the unintentionally passing of selected to the EnhancedButton.

@frankf-cgn Thanks. Could you have a look at my feedback? I think that this PR is going in the right direction :+1:. I will also ask you to squash down the number of commit (to 2 or 3). I will keeep the history clean.

@oliviertassinari Thanks for your review and time. I fixed the loop and I'll do the documentation stuff. And of cource I'm going to shrink down the number of commits.

@oliviertassinari I have fixed the loop and added the documentation. Concerning the documentation I have tried to choose the wording to be close to the tabs-stuff cos it's somehwat similar to this. Let me know if you are fine with it and I'll clean up the commit history and rebase to the current master.

@oliviertassinari Squashed the commits

@oliviertassinari If you are ready to merge this, come back to me and I will rebase to the actual master.

Sent from Yahoo Mail on Android
From:"frankf-cgn"<EMAIL_ADDRESS>Date:Sat, Nov 7, 2015 at 4:42 AM
Subject:Re: [material-ui] [List/ListItem] Introduce selected property #1581 (#1976)
@oliviertassinari If you are ready to merge this, come back to me and I will rebase to the actual master.
—
Reply to this email directly or view it on GitHub.￼

@oliviertassinari Thanks for the hints. I have incorporated your suggestions.
One question. In list-item.jsx around line 102, should i add index to const {..., ...other}, so that index is not further propagated to EnhancedButton like you suggested for selected?

should i add index to const {..., ...other}, so that index is not further propagated to EnhancedButton like you suggested for selected?

Sounds like a good idea

@oliviertassinari OK to merge?

@shaurya947 I didn't try it but it looks good to me.

@oliviertassinari I think you should check it out before you merge since you've reviewed the code (and are more familiar with it).

before you merge

I wasn't going to merge :grin:

Well, eventually, right? :-P

Actually I'm wondering if we shound't create a higer order component to handle selection.
This also somethings needed for the SelectField.

@oliviertassinari  I will check out the possibilities to implement this as HOC. Are there any higher order components in the codebase so that I can follow the coding style?

@frankf-cgn I'm considering how to implement this. After though, it may not worth it. What do you think?

@oliviertassinari Let me investigate on this. You have the arguments on your side: clean separation, reduced complexity and maybe reuse within other components. I'll invest an hour or so into the HOC so that I can tell if it's worth it.

Thanks @frankf-cgn. Let us know what you find :)

Ok, I have something working using a HOC. @oliviertassinari, I think I now get why you hesitated to merge this PR, was it maybe just out of your gut. The point is, that <List> in the proposed form is now cluttered with stuff belonging to <List-Item> (the whole children-iterator stuff).
The good

<List> is not needed to be touched
<List-Item>just needs a small patch to have a prop selected
The beef is in the HOC and in the knowledge on how to use it (valueLink)

The Bad

HOC needs to have an onTouchTap-event/-handler.
Eventually if this HOC is used with another component (not <ListItem>), other handlers might be needed. So in it's current form it is not as reusable as I would like to have it.

The Code
src/lists/selectable-enhance.js:
const React = require('react');

export var SelectableEnhance = (Component) => {
  var composed = React.createClass({
    displayName: `Selectable${Component.displayName}`,

    propTypes: {
      index: React.PropTypes.number.isRequired,
      selected: React.PropTypes.bool.isRequired,
      onTouchTap: React.PropTypes.func.isRequired,
    },

    _handleTouchTap(e) {
      this.props.onTouchTap(this.props.index);
    },

    render() {
      return (
        <Component {...this.props} {...this.state } onTouchTap={this._handleTouchTap}/>
      );
    },

  });
  return( composed );
}

The usage example
handleUpdateSelectedIndex = (index) => {
    this.setState({
      selectedIndex: index,
    });
}

render() {

  var selectedLink = {
    value: this.state.selectedIndex,
    requestChange: this.handleUpdateSelectedIndex
  };

  return (
    <List
      subheader="Contacts">

        <SelectableListItem
          index={1}
          key={1}
    	  selected={this.props.selectedLink.value === 1}
    	  onTouchTap={this.props.selectedLink.requestChange}
          primaryText="Brendan Lim"
          leftAvatar={<Avatar src="images/ok-128.jpg" />} />
        <SelectableListItem
          index={2}
          key={2}
    	  selected={this.props.selectedLink.value === 2}
    	  onTouchTap={this.props.selectedLink.requestChange}
          primaryText="Grace Ng"
          leftAvatar={<Avatar src="images/uxceo-128.jpg" />} />
        <SelectableListItem
          index={3}
          key={3}
    	  selected={this.props.selectedLink.value === 3}
    	  onTouchTap={this.props.selectedLink.requestChange}
          primaryText="Kerem Suer"
          leftAvatar={<Avatar src="images/kerem-128.jpg" />} />

    </List>
  );
}

If we schould follow this route I'm going to update my PR.

@frankf-cgn Thanks for exploring this path!
Looking at your example, I can't see the problem selectable-enhance.jsx is adressing.

Okay, I have to think about this. If this is the case, the only thing that is really needed is the selected-prop within <ListItem>.

I think wrapping every ListItem in a HOC is not the best idea as multiple props are repeated across all the ListItems (onTouchTap, selected, index and key that could be generated sequentially).
@frankf-cgn what do you think about a HOC that wraps the whole List? How re-usable would that be?
If this seems like a shot in the dark, then I agree with @oliviertassinari: the original state of the PR is what we should do.

@shaurya947 are you on gitter or discord?

ok, I have a working List-HOC. Without changing <List> and <LisItem> at all and heavy "borrowing" from material-ui/src/menus/menus/menu.jsx the following code emerged.
Despite my concerns that this HOC might not be reusable, i think it is. In fact, I think that with some more work, this HOC can used in material-ui/src/menus/menus/menu.jsx, too.
The HOC
const React = require('react');
const StylePropable = require('material-ui/lib/mixins/style-propable');

export var SelectableContainerEnhance = (Component) => {
  var composed = React.createClass({
    mixins: [StylePropable,],
    displayName: `Selectable${Component.displayName}`,

    propTypes: {
      valueLink: React.PropTypes.shape({
        value: React.PropTypes.number,
        requestChange: React.PropTypes.func
      }).isRequired,
    },

    getValueLink: function(props) {
      return props.valueLink || {
        value: props.value,
        requestChange: props.onChange
      };
    },

    render(){
      var { children } = this.props
      let listItems;
      let keyIndex = 0;

      const styles = {
        selectedItem: {
          backgroundColor: '#3fa43a'
        }
      };

      listItems = React.Children.map(children, (child) => {
        if (child.type.displayName === "ListItem") {
          let selected = this._isChildSelected(child, this.props);
          let selectedChildrenStyles = {};
          if (selected) {
            selectedChildrenStyles = styles.selectedItem;
          }

          let mergedChildrenStyles = this.mergeStyles(
            child.props.style || {},
            selectedChildrenStyles
          );

          keyIndex += 1;

          return React.cloneElement(child, {
            onTouchTap: (e) => {
              this._handleItemTouchTap(e, child);
              if (child.props.onTouchTap) { child.props.onTouchTap(e) };
            },
            key: keyIndex,
            style: mergedChildrenStyles,
          });
        }
        else {
          return child;
        }
      });
      children = listItems;

      return (
        <Component {...this.props} {...this.state} children={children}  />
      );
    },

    _isChildSelected(child, props) {
      let itemValue = this.getValueLink(props).value;
      let childValue = child.props.value;

      return (itemValue && itemValue === childValue);
    },

    _handleItemTouchTap(e, item) {
      let valueLink = this.getValueLink(this.props);
      let itemValue = item.props.value;
      let menuValue = valueLink.value
      if ( itemValue !== menuValue) {
        valueLink.requestChange(e, itemValue);
      }
    },

  });
  return( composed );
};

The usage example
handleUpdateSelectedIndex = (e,index) => {
    this.setState({
      selectedIndex: index,
    });
}

render() {
var SelectableList = SelectableContainerEnhance(List);

  var valueLink = {
    value: this.state.selectedIndex,
    requestChange: this.handleUpdateSelectedIndex
  };

  return (
    <SelectableList
      valueLink={valueLink}
      subheader="Contacts">

        <ListItem
          value={1}
          primaryText="Brendan Lim"
          leftAvatar={<Avatar src="images/ok-128.jpg" />} />
        <ListItem
          value={2}
          primaryText="Grace Ng"
          leftAvatar={<Avatar src="images/uxceo-128.jpg" />} />
        <ListItem
          value={3}
          primaryText="Kerem Suer"
          leftAvatar={<Avatar src="images/kerem-128.jpg" />} />

    </SelectableList>
  );
}

@frankf-cgn Yeah, I think that it's much better like this!

I really like it this way, too!
How should we move on from this point? If you like, I'm going to update my branch issue/1581 with this HOC and reverting back the changes on <List> an <ListItem>. Two question remain then:

Where to put HOCs in the file structure of material-ui
How to Name this HOC

getValueLink: function(props) {
      return props.valueLink || {
        value: props.value,
        requestChange: props.onChange
      };
    },

^like the flexibility here.
return React.cloneElement(child, {
            onTouchTap: (e) => {
              this._handleItemTouchTap(e, child);
              if (child.props.onTouchTap) { child.props.onTouchTap(e) };
            },
            key: keyIndex,
            style: mergedChildrenStyles,
          });

^so the developer can override the onTouchTap for specific ListItems too? That's cool.

@frankf-cgn this is some pretty good stuff. You implemented the idea well. I would say yes, go ahead and update your PR to use this code and update the docs if you can. To answer your questions:

1.Where to put HOCs in the file structure of material-ui

Since we're aiming to make this component more general / re-usable, I would say just create a folder hoc under src and put it there.

2.How to Name this HOC

What you're calling it right now is fine (SelectableContainerEnhance).
As for the docs, I can see at least two approaches:

Create a new section called "HOC" under "Components" OR
Add documentation for this feature to the "Lists" page.

The first approach might be better if we're planning on making this more general than lists (and perhaps adding more HOCs in the future). What are your thoughts on 1., 2. and the docs? Also, @oliviertassinari

@shaurya947  As I said before, I heavily "borrowed" from material-ui/src/menus/menus/menu.jsx and as I don't want to adorn myself with false laurels, praise and thank belong to the author of material-ui/src/menus/menus/menu.jsx!
I have ssen the valueLink stuff first here https://gist.github.com/BinaryMuse/bd66e40b00598e1288f2#file-ex_09-js, and the stuff in material-ui/src/menus/menus/menu.jsx seems to be inspired from this, but who knows, mybe it's from the same author ;-)
Nevertheless, I will create the folder src/hoc  and put the code in there.
As for the docs I think it makes a lot of sense to initialy put this under the List page since the first usage of the hoc is there. Later on adding a section components/HOC might be a good idea.

Fine by me :+1:

I have just updated the PR with the discussed changes and some minor improvements:

selectedItemStyle prop with fallback to...
ThemeSupport based default

Performance of <ListsPage>
Because the performance in dev-mode of the doc page was not as good as it could be, I have introduces a further hoc with docs/src/app/components/pages/components/lists.jsx holding the state for the <SelectableList>. I don't think that this hoc should be introduced generally, b/c if you use  <SelectableList> in the context of flux/redux or if you have only a few components in the parent everthing is fine perf-wise.
Documentation strategy
I have had hard time to document this stuff b/c I think some concepts have to be explained in more detail. Is there any component or otherwise 'default' way to do? Since I have not found sth, I have introduced a markdownElement, but this is not the best option either, especially not in the context of this issue. Hate to have unrelated stuff in a PR.

@frankf-cgn thus far we've used simple html tags with some CodeBlock components for documentation. I think we should try to stick to that for consistency and avoid the whole markdown thing. See here for an example.

The typos are fixed, some rewording has taken place and I have removed the markdown stuff. Hope we have reached the last itterations ;-)

I just pointed out a few quick things @frankf-cgn. Once you can take care of them, we should merge this.
I'll also give @oliviertassinari a chance to look over this.

@shaurya947 I was so sure that I have find all typos during my proofreading. Ok, everthing done by now and pushed.

@shaurya947 Let's see

@frankf-cgn Thank you!

@oliviertassinari @shaurya947 I have to thank you both!

Yay! Great job @frankf-cgn


Add a setting to define the publishing status of the new entry

When duplicate an entry, the duplicated one is auto-published, based on the current entry we want duplicate.
It could be great to add an option or a global settings to let us decide of the publishing status of the duplicate content.
A quick description of the feature you'd like to see implemented.
How should it work?
In the settings of the addon, we could add a checkbox to enable or not the auto-publishing, and get the boolean value inside the Entry::make Class to update the publishing status of the new entry.

Released as part of v1.2.5. Thanks for the feature request!

Hi Duncan ! Thanks you for adding this feature this is great !
After publishing the config file et set to false the default published value, it seems to no take it.
I get always only a published to true.
I upgraded your addon,
php artisan vendor:publish --tag="duplicator-config"
Set to false inside the config/duplicator file
Clear all cache
Statamic 3.0.46 Pro
Laravel 8.32.1
PHP 7.4.16
doublethreedigital/duplicator 1.2.5
rias/statamic-position-fieldtype 2.0.1
statamic/migrator dev-master
statamic/ssg 0.2.0

Hi Duncan ! Thanks you for adding this feature this is great !
After publishing the config file et set to false the default published value, it seems to no take it.
I get always only a published to true.
I upgraded your addon,
php artisan vendor:publish --tag="duplicator-config"
Set to false inside the config/duplicator file
Clear all cache
Statamic 3.0.46 Pro
Laravel 8.32.1
PHP 7.4.16
doublethreedigital/duplicator 1.2.5
rias/statamic-position-fieldtype 2.0.1
statamic/migrator dev-master
statamic/ssg 0.2.0

I'll take a look now. fyi: I've created a new issue for this, as it's a bug: #21


Stupid question: where to find the logfiles of the Addon? It is not where appdaemon stand alone usually creates / expects them

Hi,
you did  great job to integrate appdaemon (including the logs) into HA.
I found the logs under /system/lods/appdaemon in the HA UI...
But what is the folder? I want to add per-app logfiles and keep them in same folder but appdaemon says "not able to write non existing file"... I could create.... but where?
The apps are stored the original way but the logs are moved to unknown path, with unknown config trick...
there are pros and cons:
The AppDaemonUI is not showing logs anymore... a pity.
I cannot use tail in a console
All differs now from documentation of appdaemon
I do not know where to create individual logfiles without specifying full path
Regards Marc

But what is the folder?

There is no folder, it logs out via Docker, which is logged into journald by HAOS; the Home Assistant frontend queries/shows the contents of journald, including a live view.

I cannot use tail in a console

You can, the ha logs command has a --follow flag.
../Frenck


Support for creating and saving jks keystores

I have implemented functionality for creating and saving jks keystores. This may be of interest for you too?

Hey there, Magnus! On first impressions, this looks great! I think @kurtbrose will want to do a code review, and @voetsjoeba might like a look as well. But this is looking to be a very pleasant surprise! :)

Am taking a look, but I agree with @mahmoud, looks good on first sight. Will provide comments soon.

I'm taking a look now, the contribution is much appreciated :-)

bumping this. @kurtbrose / @voetsjoeba if you've got a spare minute this weekend, additional review would be appreciated!

Apologies, I got hung up on this one.
So this patch in and of itself looks perfectly fine to me: respects and extends the existing structure and style, has documentation, has test cases, etc.
The reason I got hung up is that I think before we merge this we need to take a moment and seriously consider to what degree we are willing to take responsibility for the strength of people's keystores generated through pyjks.
This patch implements JKS keystore creation, which is fine in the sense that for JKS there are few choices to be made that impact the crypto strength.
But if we add the ability to create JKS keystores, then the obvious next question that will come in is to add support for JCEKS and BKS as well.
Those other ones all require a choice of various cryptographic parameters that influences the strength of the crypto (salt sizes, iteration counts, etc), and I'm not so sure I want to be accountable for any particular choice of those. You could argue that we can just use whatever values the Java implementations use, but those were chosen maybe 15? 20? years ago, so then I guess we're guilty of knowingly issuing keystores with crypto that's not as good as it could be. Or we choose our own, but then that choice is still on us.
The other alternative is to disavow any responsibility for the strength of the keystores and go "use at your own risk" or something, but then why provide it in pyjks in the first place? Just let them keep using the keytool then.

@voetsjoeba That's an interesting point. Would issuing a runtime warning for insecure combinations of parameters be too involved? I think in the long run it may be. I think it's quite common for security libraries to have "use at your own risk" features. So I'm ok documenting that bridge when we come to it.
If you'd like I can reach out to some friends at the PyCA and get their opinions.

Sure, can't hurt. I'm not sure how a runtime warning would work; the parameters in question would have to be a design choice of the implementation, not something that can be chosen at runtime by the user.

Oh, interesting. Didn't realize the parameters were hardcoded into the library. Some more context may be useful, if you don't mind explaining (or linking).
As for the warnings, I was referring to the built-in warnings module. We can issue a warning, an integrator can filter it. Simple, but it works for some libs.

Sure. In particular, JCEKS, BKS and UBER keystores all use PBE algorithms to derive keys from the user password for the purposes of protecting the keys that are in the keystore (the exact algorithms used are listed in the "Concepts" section of the documentation).
In addition to the password input itself, PBE algorithms also require a choice of salt size and amount of iterations. Both of these affect the resilience of the key derivation scheme against e.g. brute-force or rainbow table attacks: the larger your salt size, and the more iterations you perform, the more computationally expensive it becomes for an attacker to bruteforce the password or to find it through a rainbow table.
The salt and iteration count are a choice to be made at the time the keystore is created; they are not secret, and are stored in a "plaintext" ASN.1 structure alongside the encrypted value (see e.g. RFC 2898 for a definition of the PBEParameter structure).
This implies that each implementation can make its own choice of parameters. The choices made by the JCE and BKS implementations were chosen many years ago. Are those still an adequate choice that would hold up today? I'm not qualified to answer that ...

@voetsjoeba Thanks for the background. I talked with @alex from @pyca about this, and I'd be ok with holding off on BKS/JCEKS until we get a specific feature request with respective justification. We'll just document and justify the gap in the API.
Another thought I had, we can possibly include them as recipes in the back of the docs, too, with strong warnings around them that they should be used only if absolutely necessary. Then the decision is truly in the hands of the integrator.

I'm going to merge.  This is a great PR everybody likes it, sorry for the slowness in reading the code and running the tests myself :-)


Preserve DatabaseError constant

https://github.com/github/trilogy/pull/15 changed the error class for TRILOGY_ERR from DatabaseError to ProtocolError. This commit reintroduces DatabaseError as an ancestor of ProtocolError for compatibility reasons, so that rescuing DatabaseError still works (mostly) as before.
Note that even with this change there are a number of error codes (see ProtocolError::ERROR_CODES) that are no longer DatabaseErrors, since we have explicitly recategorized them as BaseConnectionError, TimeoutError, or QueryError.

This is enough for me to be comfortable with a minor version bump. But if we wanted to be strict about it we could add new subclasses of BaseConnectionError, TimeoutError, and QueryError that include DatabaseError and then use those in ProtocolError::ERROR_CODES instead.


Implement chippr as a summarizer

The chippr code is quite old (python 2.7), so it would be very useful for me to have a working (and updated) version in RAIL.

Sorry, are you requesting this, or offering to contribute to doing it in some way?
(I’m asking so that we can understand how to prioritize this).
-e

On Aug 21, 2023, at 12:14 PM, Brett Andrews @.***> wrote:
The chippr code is quite old (python 2.7), so it would be very useful for me to have a working (and updated) version in RAIL.
—
Reply to this email directly, view it on GitHub https://github.com/LSSTDESC/rail/issues/69, or unsubscribe https://github.com/notifications/unsubscribe-auth/ADRIGIUQD3LTDJK6H2KHYMLXWOXQZANCNFSM6AAAAAA3Y2N6PQ.
You are receiving this because you are subscribed to this thread.

My apologies! This was a feature request.

Ok, thanks for the clarification.
Just a heads up that unless you or Alex can identify someone to work on this, it might be a while before we get to it.
-e

On Aug 22, 2023, at 6:51 AM, Brett Andrews @.***> wrote:
My apologies! This was a feature request.
—
Reply to this email directly, view it on GitHub https://github.com/LSSTDESC/rail/issues/69#issuecomment-1688230396, or unsubscribe https://github.com/notifications/unsubscribe-auth/ADRIGITYXXVUFZVUDYIRJ2DXWS2N7ANCNFSM6AAAAAA3Y2N6PQ.
You are receiving this because you commented.


setBounds not working on macos using Window class

My use-case: i have an integer representing the id of the window i wanna share then i use directly new Window(id) and getInfo give me exactly the right window but setBounds not working with this method.
My work around: loop over getWindows and use the window matching the id.
Expected behavior: first method should work directly.
Some code illustrating what i'm saying:
    // first not working method
    const selectedWin = new Window(parsedId);

    // second working workaround
    const selectedWin = windowManager.getWindows().find(window => {
      return window.id === parsedId;
    });

    selectedWin.setBounds({
      x: screenBounds.x + sideBarWidth + 15,
      y: screenBounds.y,
      width: screenBounds.width - sideBarWidth - 15,
      height: screenBounds.height,
    });

Best regards

@KASOGIT macOS or Windows?

Fixed in 57821c3b8f84a8c641ee86e6e7f96e5bb44f1e83

Fixed in 57821c3

Thanks <3


Find Implementations

We need to find methods to compare against that contain implementations we can run

KDD Reviewer Suggested

[ ] Learning Representations of Ultrahigh-dimensional Data for Random Distance-based Outlier Detection
[ ] Subspace Outlier Detection in Linear Time with Randomized Hashing
[ ] [Clustering with Outlier Removal]
[ ] [A survey on unsupervised outlier detection in high‐dimensional numerical data]

DOE Reviewer Suggested
Other

[x] SVM
[ ] LOF
[ ] Fast ABOD
[ ] HBOS
[ ] Beta-VAE
[ ] DBScan

Other things of interest:

https://github.com/dsmi-lab-ntust/AnomalyDetectionToolbox
https://github.com/ramkikannan/outliernmf
https://github.com/sunho/kmor-np
https://github.com/pulkitmaloo/Simultaneous-Clustering-and-Outlier-Repairing
https://github.com/jeremy191/clustering-based-anomaly-detection
https://github.com/yzhao062/pyod
https://github.com/hoya012/awesome-anomaly-detection
https://github.com/yzhao062/anomaly-detection-resources

Of these, pyod is of particular interest, they have implemented a number of anomaly-detection algorithms

For Liu, et al. (https://arxiv.org/pdf/1801.01899.pdf) we want to compute F-measure and Jaccard, just on shuttle, glass, and kddcup, and compare to them. Can't do full comparison because no implementation available.

For Liu, et al. (https://arxiv.org/pdf/1801.01899.pdf) we want to compute F-measure and Jaccard, just on shuttle, glass, and kddcup, and compare to them. Can't do full comparison because no implementation available.

For "Subspace Outlier Detection in Linear Time with Randomized Hashing" (https://saketsathe.net/downloads/rshash.pdf) we can do an AUC comparison with several datasets listed in the paper: kddcup, optdigits, lympho, etc.

For "Subspace Outlier Detection in Linear Time with Randomized Hashing" (https://saketsathe.net/downloads/rshash.pdf) we can do an AUC comparison with several datasets listed in the paper: kddcup, optdigits, lympho, etc.


Add existing certificate support.

This commit does a bunch.

Refactor existing certs to a map called tectonic-existing-certs.
Support existing certs for securing apiserver and ingress controller.

If the user provides a ca.key path we will use that to generate certs.
If the user provides only a ca.crt we will use that in the right places
to support trust. This is implemented as a ca-bundle.

This should probably handle the case that the user wants to provide a ca.cert and a bundle to be used. Right now they are the same.

Current testing plan is to bring up a cluster and grab the certificates from it.
Then bring up another cluster with that tfvars file and provide the old certs and keys for:
apiserver and ingress. Also provide just the cert for the ca.crt
You can validate all this works by looking at the timestamps on the certs.

Cherry-picking to avoid rebasing


:noweb-ref property inheritance failure with spacemacs on macOS

I wanted to start playing with Ferret on my macOS 10.12 dev machine. I'm new to emacs, so I started with spacemacs. I was able to set it up for interactive use, but the build script is failing for me.
Specifically, tangled src/src/template.clj has missing <code-templates> section and others.
Most likely it is the issue of :noweb-ref property inheritance failure in spacemacs as reported here:
<EMAIL_ADDRESS>This failure is silent. Instead of a warning or error it simply emits empty string. Which confused me at first.
I tried to experiment with
 (setq org-use-property-inheritance t)
 (setq org-babel-use-quick-and-dirty-noweb-expansion nil)

but without success. I haven't found any solution to this problem.
Any ideas how to fix this?
One solution for me would be if you could stop relying on :noweb-ref property inheritance and explicitly name all code snippets and include them in proper places. Thanks!

I have no idea how to fix this. But you do not have to build Ferret your self you can get the latest build from [1]. (Links are to the current master. Previous versions are also available). The problem with removing noweb-ref property is that currently tangling is a problem. It takes too much time (15-20 minutes on my box) and removing noweb-ref increases it a lot.
[1] http://ferret-lang.org/

Thanks for answering. If speed is an issue you might consider trying org-babel-use-quick-and-dirty-noweb-expansion, I was experimenting with it on my machine and it made the build script run  considerably faster. Not sure about correctness.
Anyways, closing this issue.

@darwin I've enabled org-babel-use-quick-and-dirty-noweb-expansion and dropped all :noweb-refs. Can you check if it tangles cleanly?

@nakkaya works for me! it completes in 9.6s on my machine:
https://gist.github.com/darwin/734761275398145264d4411ff03e18d1
Thanks for fixing this for me.


fix typo imports to visualization_exports

Context
REQUEST SAMPLES of "visualization_exports" was "imports".
Since visualization_exports seems to be correct, I fixed it.

Can one of the admins verify this patch?

Can one of the admins verify this patch?


some bug

This is autogenerated. Please review and update as needed.
Describe the bug
Command Name
az webapp up
Errors:
No module named 'decorator'
Traceback (most recent call last):
python3/dist-packages/fabric/connection.py, ln 5, in <module>
    from invoke.vendor.six import StringIO
ModuleNotFoundError: No module named 'invoke.vendor.six'

...

python3/dist-packages/fabric/connection.py, ln 10, in <module>
    from decorator import decorator
ModuleNotFoundError: No module named 'decorator'

To Reproduce:
Steps to reproduce the behavior. Note that argument values have been redacted, as they may contain sensitive information.

Put any pre-requisite steps here...
az webapp up --sku {} --name {}

Expected Behavior
Environment Summary
Linux-5.8.0-33-generic-x86_64-with-glibc2.32
Python 3.8.6
Installer: PIP

azure-cli 2.10.1

Extensions:
azure-devops 0.18.0

Additional Context

webapp

https://github.com/Azure/azure-cli/issues/16277. hi @Luck547 could you pls try uninstall and install latest Azure CLI to see if it resolves the issue?


Support new validations for Italy

In order to make the crate fully usable in Italy, we need to add support for:

[ ] Digital Green Certificate Revocation List (DRL)
[ ] Strengthened mode
[ ] Booster mode
[ ] Exemptions

For the second and the third points, more information can be found in the ScanMode documentation.
It is still unclear where it is possible to found detailed information about the exemptions (maybe this could be helpful?).

Hello @dodomorandi

For the second and the third points, more information can be found in the ScanMode documentation.
It is still unclear where it is possible to found detailed information about the exemptions

You can find them among the current open pull-requests in the it-dgc-documentation repo = I've already submitted both documentation updates for (current) Exemptions & (upcoming) new scan modes.
While waiting for the PR review/merge you can read the updated documentation here from my feature branch.

Additions
To be implemented by

CRT E : Exemptions (Certificati Digitali di Esenzione Vaccinale)
NOW... not later anyway than February 28th (last deadline of E paper certificates' usage - 0005125-25/01/2022-DGPRE)

ScanMode WORK (Tipologia di Verifica : LAVORO)
February 15th in compliance with art.1 DL 01/2022

ScanMode SCHOOL (Tipologia di Verifica : SCUOLA)
TBD in compliance with art.4 c.2 DL 01/2022


Add metrics to track time compaction jobs are queued

Is your feature request related to a problem? Please describe.
Knowing how long compaction jobs are queued will be useful for managing and tuning compactions in accumulo and detecting problems.  There are two metrics that would be useful, one is the time a job spend in the queue between addition and removal.  Another is statistics about the age of jobs in the queue.  One example where this would be useful is in the case where compactions are keeping up but for some reason jobs are spending on average 3 minutes in the queue, this would indicate some sort of problem that needs investigation.  Ideally when compactions are keeping up, the average time int he queue should be low.
Describe the solution you'd like
To implement this compaction jobs themselves would not be the best place to attach a timer. This is because the system continually scans tablets looking for compaction jobs and when it finds jobs for a tablet it replaces anything queued for the tablet with the new jobs.  Therefore it would probably be better to track age related statistics at the tablet level instead of the compaction job level.
A possible place to add this tracking would be CompactionJobPriorityQueue and the following is a possible beginning of an implementation.
class CompactionJobPriorityQueue {
  Map<KeyExtent, Timer> ages

  addJobToQueue(KeyExtent extent, CompactionJob job){
    ages.computeIfAbsent(extent, e->Timer.startNew())
  }

  void addTimeInQueueStat(Duration elapsed){
     // TODO update a Timer meter?  is that the best meter to use?
  }

  CompactionJob poll(){
   var timer = ages.get(extent);
    addTimeInQueueStat(timer.elapsed());
    timer.restart();
   // TODO remove from ages if the number of jobs for this tablet goes to zero
  }

  void clear(){
  // not sure what to do about this, seems like clearing ages map will throw off state
  }

  // This could be used for the oldest in queue stat
  Duration getOldestInQueue(){
  // TODO return max elapsed time in the ages.values()  to be used with a Guage meter
  // TODO is there a better meter to use for the ages of things sitting in the queue?
  }
}

Additional context
This could help asses the need for changes related to #4664 and the improvement those changes might make

I can take a look at this


Procedure Request

Please add in
Table "Service Item Line"
procedure GetHideDialogBox(): Boolean
begin
exit(HideDialogBox);
end;

This procedure already added in 18.0
procedure GetHideDialogBox(): Boolean
begin
    exit(HideDialogBox);
end;


Bonsai lightweight mode to not store tree state nodes

Reduce bonsai storage in lightweight mode by not storing the tree state nodes as these require a lot of storage.
Tasks

Change Bonsai storage to not write to the TRIE_BRANCH_STORAGE
Change Bonsai storage so that data cannot be read from the TRIE_BRANCH_STORAGE
Change state root calculation so it becomes a no op when using bonsai light
Disable the state root verification when in bonsai light mode

Put on hold as this requires 1) Changes to Bonsai to make it flatter so the leaf nodes can be used 2) implementation of a new sync protocol as after this change we can not longer use fast sync or snap sync to sync nodes when this mode is enabled.


moving a boundary breaks undo stack under some conditions

When the keyboard focus is not on the webapp, but rather e.g. on the browser's address bar, I can still move boundaries by holding down shift and moving the mouse. However, the bundle is not marked red/changed and the move cannot be undone. Changing bundle does not warn the user and the move is lost.
When I move a boundary like above (with keyboard focus away from the webapp) and then get keyboard focus back onto the webapp and move another boundary, the behaviour turns rather more bizarre. The bundle is immediately marked red/changed and pressing "undo" (or then "redo") reverts both boundaries at the same time.
Reverting both boundaries at the same time does not seem to take place when the first boundary I move is the last in the utterance and the second is the one before it.

Note: I first spotted this problem using the Neo keyboard layout (under Linux). When I use Neo, boundary moves are never added to the undo stack, no matter where the keyboard focus is. I can use the undo stack for other things, but the boundary moves are just ignored. Seems pretty dangerous to me.

This is super weird!!! I can also reproduce the "keyboard focus in address bar" problem on my Mac. Could it have something to do with the "shift-keyup" event (that we catch here: https://github.com/IPS-LMU/EMU-webApp/blob/master/app/scripts/controllers/main.js#L50) not being thrown by the browser if the focus is not on the page?