How to use the classes in my own project

I've used mvn clean install to build your project and to copy (hopefully!) the swing.treetable classes to the Maven repository (.m2) on my Mac. Am I right in thinking that I can refer to these classes now without having to add the files to my project?

This is all that has been produced in the Maven repository...

The one file in there just contains this...

Needless to say, any attempt to reference the TreeTable stuff either in my pom.xml...

or my code...

is meeting with failure!
You've got lots of info on your Github showing how to use the code, not so much on how to access it in the first place.
I suppose I could add your .java files to my project, but I was under the impression this was not the correct way of doing things...

Hi Carlca,
The version of TreeTable defined in its POM file is 1.0-SNAPSHOT.  So your version field should say "1.0-SNAPSHOT", not "RELEASE".
Hope that helps.  Note that I have not published TreeTable to maven central yet, so you would have to either include the TreeTable files with your code if you want other people to build it, or provide instructions to install it locally for them too.

I believe that TreeTable is pretty stable - but I never finished writing all the tests I wanted to and so never got to publish it - then I got distracted by other important work that came up.  If you are intent on using it, then I will look at publishing a final version on maven central.

Hi! Thanks for the reply. I've gotten round this question by, as you suggest, including the TreeTable in my own project, but being careful not to amend it in any way. It's curious that you mention Maven Central, because I was able to publish a library package of my own to the local repository in .m2 by doing a mvn clean install. This didn't work with TreeTable, but I've got it building, so that's all right.

I've been following the instructions in your Github page and by looking at the demo project. I'm making progress, I think, but I'm still not getting the expansion and collapse of the nodes working. These images will illustrate the problem...
(I hope you don't mind me asking these questions, only, after trying several other "TreeTable" solutions, your's is the first one to look like it may be the one!)
Top level nodes showing...

After clicking on the audiothing node...

The correct number of nodes are being expended. Here is an excerpt of the underlying data...
audio - audio.vital.synth - Vital.clap
audiodamage - com.audiodamage.dubstation2 - Dubstation 2.clap
audiomodern - com.audiomodern.chordjam - Chordjam.clap
audiority - com.audiority.polaris - Audiority/Polaris.clap
audiority - com.audiority.spacestationum282 - Audiority/Space Station UM282.clap
audiothing - com.audiothing.blindfoldeq - BlindfoldEQ.clap
audiothing - com.audiothing.filterjam - Filterjam.clap
audiothing - com.audiothing.fogconvolver2 - FogConvolver2.clap
audiothing - com.audiothing.noises - Noises.clap
audiothing - com.audiothing.outerspace - OuterSpace.clap
audiothing - com.audiothing.spacestrip - SpaceStrip.clap
audiothing - com.audiothing.springs - Springs.clap
audiothing - com.audiothing.thingsbubbles - ThingsBubbles.clap
audiothing - com.audiothing.thingscrusher - ThingsCrusher.clap
audiothing - com.audiothing.thingsflipeq - ThingsFlipEQ.clap
audiothing - com.audiothing.thingsmotor - ThingsMotor.clap
audiothing - com.audiothing.thingstexture - ThingsTexture.clap
audiothing - com.audiothing.valves - Valves.clap
birdbird - com.birdbird.birdsampler - Rolling Sampler.clap
chowdsp - org.chowdsp.byod - BYOD.clap
chowdsp - org.chowdsp.chowtapemodel - CHOWTapeModel.clap
chowdsp - org.chowdsp.chowkick - ChowKick.clap
chowdsp - org.chowdsp.chowmultitool - ChowMultiTool.clap

Ignore the fact that columns 2 and 3 are not showing anything yet, I just haven't got round to that yet! But what should happen, obviously, is that 13 new lines should be added to the list and all of the entries (manufacturers in this case) should move down accordingly.
I based my code on the code in the demo project. This is my addExpandCollapseListener...
				treeModel.bindTable(pluginTable);
				// deal with collapse and expansion of nodes
				treeModel.addExpandCollapseListener(new TreeTableModel.ExpandCollapseListener() {
					@Override
					public boolean nodeExpanding(TreeNode node) {
						if (node.getChildCount() == 0) { // if a node is expanding but has no children, set it to allow no children.
							((DefaultMutableTreeNode) node).setAllowsChildren(false);
						}
						return true;
					}
					@Override
					public boolean nodeCollapsing(TreeNode node) {
						((DefaultMutableTreeNode) node).removeAllChildren();
						return true;
					}
				});

I notice that on the Github instruction you suggest yourMethodToAddChildrenToNode(node); but the Demo code didn't seem to have that but still works as expected, so I'm a bit confused by this. I've obviously missed out an important step!
Any pointers (not applicable in a Java context, I know!) you can give me would be really appreciated 😃

My whole project is available to view at https://github.com/carlca/PluginManager

Hi, I can't meet those strict technical criteria!  But I do have a windows 10 machine with a load of VSTs, Cubase, Ableton and a few other things on it!
I will have a look at your project code when I get a moment, might not be until the weekend though.

No worries! I'll continue to try and suss it out until then. It's a good learning exercise in any case 😉

Had a quick look at your code.
Looks like you build the whole tree before you instantiate the model.  You probably don't need the expandcollapselistener, that's designed for dynamically changing the tree on an expand or collapse event.

The data is held in a:
List<Triplet<String, String, String>> plugins = new ArrayList<>();
Where each triplet is of the form Manufacturer, Ident and Plugin.
The data is essentially in this non-tree format...
audiority - com.audiority.polaris - Audiority/Polaris.clap
audiority - com.audiority.spacestationum282 - Audiority/Space Station UM282.clap
audiothing - com.audiothing.blindfoldeq - BlindfoldEQ.clap
audiothing - com.audiothing.filterjam - Filterjam.clap
audiothing - com.audiothing.fogconvolver2 - FogConvolver2.clap
audiothing - com.audiothing.noises - Noises.clap
audiothing - com.audiothing.outerspace - OuterSpace.clap
audiothing - com.audiothing.spacestrip - SpaceStrip.clap
audiothing - com.audiothing.springs - Springs.clap
audiothing - com.audiothing.thingsbubbles - ThingsBubbles.clap
audiothing - com.audiothing.thingscrusher - ThingsCrusher.clap
audiothing - com.audiothing.thingsflipeq - ThingsFlipEQ.clap
audiothing - com.audiothing.thingsmotor - ThingsMotor.clap
audiothing - com.audiothing.thingstexture - ThingsTexture.clap
audiothing - com.audiothing.valves - Valves.clap
birdbird - com.birdbird.birdsampler - Rolling Sampler.clap
chowdsp - org.chowdsp.byod - BYOD.clap
chowdsp - org.chowdsp.chowtapemodel - CHOWTapeModel.clap
chowdsp - org.chowdsp.chowkick - ChowKick.clap
chowdsp - org.chowdsp.chowmultitool - ChowMultiTool.clap

The app, as it stands, is creating just one node for the manufacturer audiothing but it is adding plugin nodes to the manufacturerNode...
manufacturerNode.add(pluginNode);
So, what you saw in the image above was just the collapsed table rows - one for each Manufacturer, but each manufacturer has one or more subnodes for the plugins. It's those pluginsthat I want to see when I extend a manufacturer node.

In your demo app, it starts off by displaying the equivalent of my app displaying the collapsed list of manufacturers. The difference is that your app behaves correctly when a node is expanded; the nodes below all move down to accommodate the newly revealed sub-nodes. That's all I want mine to do!!

Something odd is certainly going on.  Tree expansion is working, but for some reason the table is not getting the values to display from the treetablemodel.  It never seems to call getColumnValue, which is what returns the actual values from the tree.  This should be what the JTable calls from a TableModel to get what to display.
Expanding a node does expand the node, but again, the values are just the original list.  I can see that the TreeTableModel is indeed building the correct nodes to display, but it isn't then calling getColumnValue to obtain the actual display data.
What is weird about this is that by telling a JTable that it has a TableModel, calling getColumnValue is just what a JTable does, nothing to do with my code.  No idea what is going on right now - but some progress I guess.  My original demo code works as before.

Thanks again for looking at this! I'm not going to do anything more on it tonight, as I'm watching the football! I'll take a fresh look at it tomorrow morning.

OK, I've found two problems in your code:

You override getValueAt() in PluginManagerTableModel.  Don't do this!  Not only is it not necessary to override getValueAt, you are trying to take the value from the tree model in that method, not the tree table model!

The user object associated with each DefaultMutableTreeNode is a String, not a Plugin object.

You need to create the user object of the DefaultMutableTreeNode as the Plugin object, not the string representation of it.

That's great! I'll check that out first thing tomorrow. Thanks, again. I really appreciate your help 😃

Hi Matt! I think we're almost there. The nodes are expanding correctly and the sub-nodes are being displayed. The only problem is that the overall list is not growing to accommodate the extra inserted nodes.
Could you grab the repo again, run the app and select DEMO then update? Note the behaviour of the very last node vcvrack, in the JTable compared to the JTree. It's the same with any node - the total number of items is not growing, but it's best illustrated with the last item!
The other details such as displaying the appropriates text in the right columns, I can take care of.

Aha! I wonder if it's because in your MyObject class, you have the children defined as private final List<MyObject> children; whereas in mine the equivalent class is just defined as private final List<Object> children;. One way to find out 😉

Could it be because in your demo app, within the MyObjectForm class, you are explicitly recursively loading random levels of child nodes, whereas in mine, the data is just a flat list of Plugin objects. I spotted this because on mine, the addClass method was marked as unused, whereas it is used in mine. I think that has to be the answer...

That is probably not the problem.  If the nodes are pre built, there's nothing to do.  The demo is just illustrating that you can build nodes dynamically on expand if you want to.
I'll have a look when I get a mo.

You say that, but as far as I can tell the nodes are all behaving totally correctly now!

As you suggest, and which I had forgotten, the data is being assembled into a two level tree with this code...
				// Create the root node
				DefaultMutableTreeNode root = new DefaultMutableTreeNode("Plugins");
				// Iterate over the plugins and create child nodes for each manufacturer and plugin
				for (Triplet<String, String, String> plugin : scanner.getPlugins()) {
					String manufacturer = plugin.getValue0();
					String ident = plugin.getValue1();
					String pluginName = plugin.getValue2();
					// Find or create the manufacturer node
					DefaultMutableTreeNode manufacturerNode = findOrCreateManufacturerNode(root, manufacturer);
					// Create the plugin node
					DefaultMutableTreeNode pluginNode = new DefaultMutableTreeNode(pluginName);
					// Add the plugin node to the manufacturer node
					manufacturerNode.add(pluginNode);
				}

Haha, I just looked at it and it was working!

Glad it's all good for you now.

Although I just found a bug, when you try to expand a leaf node there is an exception.  Not sure if that is your code or mine.

Probably should set allowschildren to false for leaf nodes though.  Then there will be no expand handle anyway.

Yes, well spotted! That was the conclusion I came to mere nano-seconds ago. It can wait till tomorrow. It's to late to start messing around with it 😉

It is a bug in TreeTable, in the TreeTableRowSorter.  If the table has never been sorted, but the table tries to update a node, then we get an index out of range as there is no sorted indexes available.  Needs to check if there is anything there before it tries to check if the update is inside it!
I will fix this and issue an update.

But still, if you don't want leaf nodes to have expand/collapse handles, set allowsChildren to false on the leaf DefaultMutableTreeNode and the problem should be avoided.

It's coming on nicely 😃

There's a couple of small points you could still help me with. I can't work out how to get the folder icons showing in the lower version. The icons are referenced in the code, and indeed, they show up in the JTree without any special catering for it.
Also, could you point me in the right direction for changing the keystrokes. I'd like to have Cursor Right to expand the node, and cursor left to jump to the parent node, or to collapse the parent if the cursor is there already. Essentially the same thing that the JTree does.

I sorted out the vanishing icons. It helps if you call setIcons() 😉

I've almost sorted out the key strokes. I've got the expand and collapse working for a parent node. The one thing that is missing if for the tree to respond to a VK_LEFT on a leaf node (I remember the VK_ codes from my Delphi/Windows days!) by selecting the parent node of that node, but without collapsing anything at that point.
I've made a start by creating a JTable descendent which I intend to use in place of the JTable. The code is...
package com.carlca.pluginmanager;

import net.byteseek.swing.treetable.TreeTableModel;

import javax.swing.*;
import javax.swing.tree.TreeNode;
import java.awt.event.KeyEvent;
import net.byteseek.swing.treetable.TreeUtils;

public class PluginManagerJTable extends JTable {

  @Override
  protected boolean processKeyBinding(KeyStroke ks, KeyEvent e, int condition, boolean pressed) {
    if (ks.getKeyCode() == KeyEvent.VK_LEFT && !isEditing()) {
      if (getSelectedRow() >= 0 && getSelectedColumn() == 0) {
        TreeTableModel treeTableModel = (TreeTableModel) getModel();
        int selectedRow = getSelectedRow();
        TreeNode selectedNode = (TreeNode)treeTableModel.getValueAt(selectedRow, 0);
        if (selectedNode.isLeaf()) {
          // walk back through the nodes until a node is reached which is the parent of selectedNode
          // then select that node

          // something involving TreeUtils???

          // confirm that the key has been processed
          return true;
        }
      }
    }
    return super.processKeyBinding(ks, e, condition, pressed);
  }
}

Why not just call Treenode.getParent()?

That's an excellent question 😉 Now I've found the parent, how do I select it programatically?

I may consider adding support for the key behaviour you mention.  Would be good to follow the principle of least surprise and behave like a Jtree by default.
Haven't worked with Jtree much before; do you know if the Jtree key behaviour is documented anywhere?  Can't seem to find it in the oracle documentation.

If you check my repo now, you'll see that the key behaviour is exactly how I wanted it. I ended up having to create a JTable descendent which I used to replace the JTable in the app (IntelliJ is really good at letting you do this!).
https://github.com/carlca/PluginManager.git

Cool, I will have a look.
I am investigating replicating Jtree navigation key bindings in TreeTable directly, so you may not need this eventually.

Already fixed the exception bug 😁

There is a method on TreeTable that will return the model index for a given
node, so you don't really need to manually loop to find the index of the
parent node.
Here's the code:
selectedRow = treeTableModel.getModelIndexForTreeNode(parentNode);
setRowSelectionInterval(selectedRow, selectedRow);
// confirm that the key has been processed
return true;
/*
// decrement selectedRow until we find the parent
while (selectedRow > 0) {
selectedRow--;
TreeNode node = treeTableModel.getNodeAtModelIndex(selectedRow);
if (node == parentNode) {
// select the parent node
setRowSelectionInterval(selectedRow, selectedRow);
// confirm that the key has been processed
return true;
}
}
// confirm that the key has been processed
return true;
*/
On Sat, 21 Oct 2023 at 12:55, Carl Caulkett @.***>
wrote:

If you check my repo now, you'll see that the key behaviour is exactly how
I wanted it. I ended up having to create a JTable descendent which I used
to replace the JTable in the app (IntelliJ is really good at letting you do
this!).
https://github.com/carlca/PluginManager.git
—
Reply to this email directly, view it on GitHub
https://github.com/nishihatapalmer/TreeTable/issues/3#issuecomment-1773768246,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABBY4JCUXICH7ODEZEFP4TLYAOZ4VAVCNFSM6AAAAAA6CIAZOGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTONZTG43DQMRUGY
.
You are receiving this because you commented.Message ID:
@.***>

I've now pushed an updated TreeTable to my repo.   It fixes the exception
bug and also adds in the left arrow / right arrow navigation from JTree.
Give it a go and let me know if it works for you.
On Sat, 21 Oct 2023 at 13:11, Matt Palmer @.***> wrote:

There is a method on TreeTable that will return the model index for a
given node, so you don't really need to manually loop to find the index of
the parent node.
Here's the code:
selectedRow = treeTableModel.getModelIndexForTreeNode(parentNode);
setRowSelectionInterval(selectedRow, selectedRow);
// confirm that the key has been processed
return true;
/*
// decrement selectedRow until we find the parent
while (selectedRow > 0) {
selectedRow--;
TreeNode node = treeTableModel.getNodeAtModelIndex(selectedRow);
if (node == parentNode) {
// select the parent node
setRowSelectionInterval(selectedRow, selectedRow);
// confirm that the key has been processed
return true;
}
}
// confirm that the key has been processed
return true;
*/
On Sat, 21 Oct 2023 at 12:55, Carl Caulkett @.***>
wrote:

If you check my repo now, you'll see that the key behaviour is exactly
how I wanted it. I ended up having to create a JTable descendent which I
used to replace the JTable in the app (IntelliJ is really good at letting
you do this!).
https://github.com/carlca/PluginManager.git
—
Reply to this email directly, view it on GitHub
https://github.com/nishihatapalmer/TreeTable/issues/3#issuecomment-1773768246,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABBY4JCUXICH7ODEZEFP4TLYAOZ4VAVCNFSM6AAAAAA6CIAZOGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTONZTG43DQMRUGY
.
You are receiving this because you commented.Message ID:
@.***>

If I can also make an observation about your tree structure.... I notice
that the tree column is blank for the plugins.  Could put the plugins in
the tree column (even though the parents are manufactures...)
*Plugin                                  Ident                  *
audio
Vital.cap                           audio.vital.synth
audiodamage
Dubstation 2.clap                   com.audiodamage.dubstation2
audiority
Audiority/Polaris.clap              com.audiority.polaris
Audiority/Space Station UM282.clap  com.audiority.spacestationum282
Not saying this structure is the right one, but it does seem weird having
blank tree nodes in the main navigation tree column to me.
cheers,
Matt.
On Sat, 21 Oct 2023 at 13:55, Matt Palmer @.***> wrote:

I've now pushed an updated TreeTable to my repo.   It fixes the exception
bug and also adds in the left arrow / right arrow navigation from JTree.
Give it a go and let me know if it works for you.
On Sat, 21 Oct 2023 at 13:11, Matt Palmer @.***> wrote:

There is a method on TreeTable that will return the model index for a
given node, so you don't really need to manually loop to find the index of
the parent node.
Here's the code:
selectedRow = treeTableModel.getModelIndexForTreeNode(parentNode);
setRowSelectionInterval(selectedRow, selectedRow);
// confirm that the key has been processed
return true;
/*
// decrement selectedRow until we find the parent
while (selectedRow > 0) {
selectedRow--;
TreeNode node = treeTableModel.getNodeAtModelIndex(selectedRow);
if (node == parentNode) {
// select the parent node
setRowSelectionInterval(selectedRow, selectedRow);
// confirm that the key has been processed
return true;
}
}
// confirm that the key has been processed
return true;
*/
On Sat, 21 Oct 2023 at 12:55, Carl Caulkett @.***>
wrote:

If you check my repo now, you'll see that the key behaviour is exactly
how I wanted it. I ended up having to create a JTable descendent which I
used to replace the JTable in the app (IntelliJ is really good at letting
you do this!).
https://github.com/carlca/PluginManager.git
—
Reply to this email directly, view it on GitHub
https://github.com/nishihatapalmer/TreeTable/issues/3#issuecomment-1773768246,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABBY4JCUXICH7ODEZEFP4TLYAOZ4VAVCNFSM6AAAAAA6CIAZOGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTONZTG43DQMRUGY
.
You are receiving this because you commented.Message ID:
@.***>

Good call about combining the Manufacturer and Plugin Columns. This is what it looks like now...

I'm think of sacrificing the Ident column and using the space for user defined tags!


Enhance/add math

This works for me
Note I have not compiled ms.md to ms.pdf due to issues with my env

:+1: -- this also closes #2


[kjobctl] Use RunE instead Run in list job command.

What type of PR is this?
/kind cleanup

What this PR does / why we need it:
To avoid exits the test process before reporting the status we need to avoid cobra.CheckErr. Instead that we can use RunE and cmd.SilenceUsage = true.
Which issue(s) this PR fixes:

Fixes #
Special notes for your reviewer:
Does this PR introduce a user-facing change?

NONE

/assign @trasc


Make gui2 actions configurable

closes #58

Hello @mik2k2! Thanks for opening this PR. We checked the lines you've touched for PEP 8 issues, and found:

In the file buchschloss/gui2/actions.py:

Line 201:13: E123 closing bracket does not match indentation of opening bracket's line

In the file buchschloss/utils.py:

Line 214:96: E501 line too long (100 > 95 characters)

In the file test/config_test.py:

Line 68:5: E731 do not assign a lambda expression, use a def
Line 70:44: E241 multiple spaces after ','


NEW: Run JS/CSS linting in Travis.

The ‘npm run lint’ command will be used to run listing on Travis, which
can also be used on local dev environments. These can also be used with
editor plugins to highlight errors immediately.
The intention is that this can be used in place of codeclimate. The
benefits are that we use a single toolchain in both CI and local dev,
which is not entirely the case at the moment.
Note the sass-lint is provided by “sudo gem install scss_lint”. It’s
possible that we can move to a node-based sass-lint; I can’t recall
what the motivation for using the scss_lint gem was - I think it was
mainly that we had the AirBNB styleguide already implemented as a linter
config.

Looks like the lwip (sprity dep) compilation is throwing errors - so we should merge https://github.com/silverstripe/silverstripe-framework/pull/5918 first which removes that dep altogether.
Yeah, AirBnB's default to scsslint was one motivation, CodeClimate's support for scsslint only (no sass-lint) was another - good reason to remove CodeClimate as well :) It's not a merge blocker for this PR. There's a converter at http://sasstools.github.io/make-sass-lint-config/ - I've made a start:
# sass-lint config generated by make-sass-lint-config v0.1.2
#
# The following scss-lint Linters are not yet supported by sass-lint:
# PrivateNamingConvention

files:
  include: '**/client/src/**/*.scss'
  ignore:
    - 'client/src/styles/legacy/*'
    - 'admin/client/src/styles/legacy/*'
options:
  formatter: stylish
  merge-default-rules: false
rules:
  bem-depth: 1
  border-zero:
    - 1
    - convention: zero
  brace-style:
    - 1
    - allow-single-line: false
  class-name-format:
    - 1
    - convention: ^(?!js-).*
      convention-explanation: should not be written in the form js-*
  extends-before-declarations: 0
  extends-before-mixins: 0
  function-name-format: 1
  id-name-format:
    - 1
    - convention: hyphenatedbem
  leading-zero: 0
  mixin-name-format: 1
  mixins-before-declarations: 0
  no-extends: 1
  no-qualifying-elements: 0
  placeholder-name-format:
    - 1
    - convention: hyphenatedbem
  property-sort-order: 0
  quotes:
    - 1
    - style: double
  url-quotes: 0
  variable-name-format: 1

Rebased, let's see what travis says.

Ye gads, that's annoying.
scss-lint requires ruby 2, which isn't provided on Travis' PHP builders.
I'll fast-track the migration to the node-based tool and include it in this PR.

OK this is all done now; npm sass-lint is used in place of the ruby-based scss-lint. It should be ready for merge!

Merged! I've also removed the CodeClimate webhook

Are you planning to create follow-up PRs for cms and asset-admin?

Yeah I can do that. The other thing that I should do is combine npm and behat, so that the impact of any package updates is tested via behat.


added score display funcitonality + formatting

so I branched this off of master pre-game over functionality, but there should be no conflicts

also why isn't the pep bot yelling at me anymore, I miss it.


no such thing SampleDataset

pyhealth 1.1.4 version
no such thing
i think u should either update ur docu or code

Thanks for your question. We have released a new version to PyPI incorporating all new changes in the package.


Docker cannot write index

I'm trying to get some samples working again for myself and I try to figure out what to do.
In the Dockerfile, it gives an example how to run the indexer.
I run docker as root on this test server so I would not expect any permission issues but I get:
root@myhost /srv/qlever-home # DB=pagerank; docker run -it --rm -v "$(pwd)":/index --entrypoint bash --name qlever.$DB-index adfreiburg/qlever -c "IndexBuilderMain -f /index/$DB.nt.gz -i /index/$DB -s /index/$DB.settings.json | tee /index/$DB.index-log.txt"; rm -f $DB/*tmp*
tee: /index/pagerank.index-log.txt: Permission denied
2024-05-14 12:32:15.642 - INFO: QLever IndexBuilder, compiled on Mon May  6 10:34:56 UTC 2024 using git hash 8ffe9a
2024-05-14 12:32:15.642 - ERROR: ! ERROR opening file "/index/.stxxl" with mode "w" (Permission denied)

And somewhat related: I saw there are hints about a MacOS build in the git commits but I can't seem to find a binary anywhere, is one published? If so, where?

@ktk Have you tried https://pypi.org/project/qlever ? You can simply install it with pip3 install qlever and from then on it's self-explanatory. The script can either run the various commands for you, or you can just use it to show you the native commands and (modify them) and run them yourself. For example, qlever index --show will show you the command for building the index. The script wants a Qleverfile. You can download one of the preconfigured ones using qlever setup-config ... and modify it according to your needs.
It's a common problem with Docker that you don't have access to a directory even when running as root. In particular (but not only), this happens for directories mounted via NFS. One solution is to run docker with option -u $(id -u):$(id -g). A simple workaround is to just make the directory writable for everyone using chmod 777 ....
You find two (non-official) binaries for macOS 12 here: https://ad-research.cs.uni-freiburg.de/downloads/qlever/macos-12. They have been built using Conan, so they will probably not run out of the box. To natively compile the binaries on macOS yoursel, you can follow the respective workflow: https://github.com/ad-freiburg/qlever/actions/runs/9062897737/job/24897720197

Closing this one, my colleagues will start contributing on the Docker stuff.


Support starts_with for Utf8View

Is your feature request related to a problem or challenge?
From what I can tell, starts_with when called with utf8view will have its arguments coerced to a regular utf8 array type.
Describe the solution you'd like
I'd like datafusion to use utf8views throughout the call to the starts_with arrow kernel function that does appear to support utf8 views.
Describe alternatives you've considered
No response
Additional context
When putting a debug statement in the invoke method of the starts_with udf.
> CREATE TABLE t AS SELECT starts_with(arrow_cast('alphabetsoup', 'Utf8View'), arrow_cast('alpha', 'Utf8View'));
starts_with args: [Scalar(Utf8("alphabetsoup")), Scalar(Utf8("alpha"))]
0 row(s) fetched.
Elapsed 0.030 seconds.

take


make_gif.py

the following is my error
Traceback (most recent call last):
File "make_gif.py", line 52, in
anim.save("output.gif", writer="imagemagick")
File "/usr/local/lib/python3.6/dist-packages/matplotlib/animation.py", line 1102, in save
alt_writer = next(writers, None)
TypeError: 'MovieWriterRegistry' object is not an iterator
how can i solve it?

Same problem , did you solve it ?

yes
it is a version problem
you just change the code on last line
anim.save("output.gif", writer="imagemagick")
to
anim.save("output.gif", writer="pillow")

what is more
the output.gif will be saved in the root directory

Thank youu , worked for me


Option to see the whole code suggestion when copilot chat and code editor opened simultaneously

Version: 1.79.0-insider (user setup)
Commit: f6be5461f8bc69013a605f5baea834651c6589fb
Date: 2023-05-20T01:18:53.811Z
Electron: 22.5.2
Chromium: 108.0.5359.215
Node.js: 16.17.1
V8: <IP_ADDRESS>-electron.0
OS: Windows_NT x64 10.0.22621

When code suggestions appears in chat extension on the left side, while the code editor opened at the same time, some of the code (if line so long) would not be visible unless the whole extension window expanded to the right.
This is an issue to small view-port devices (the screenshot is taken on a 14 inch screen, 1920x1080 resolution, at a scale of 125%, Windows 11). The code on the left window is cut-off and the lines are not completely visible.
One of the solutions is to have an on-hover popup that would be on top of the chat and code editors so the user can see the suggestions as a whole before accepting/rejecting the code suggestion.
Word wrapping might be a solution as well but it might add even more difficulties reading the suggestion when copilot chat window shrank more.

Additional screenshot with long function definition:

Once updated to latest version of VS Insider a horizontal scroll appears, which is a nice way to preview small piece of code, however, when several indentations exist, it becomes a mess to read the suggested code because the user needs to go back and forth to understand the suggested code.
While the code might be accepted and then rejected in the actual code editor, it just adds several extra steps making this as a workaround.
initial situation

scroll to the right

You can enable word wrapping if you want with the setting chat.editor.wordWrap. You can also now open chat sessions in the editor to get the full width. Do you have a suggestion for how a hover would work? This shows up whenever you hover the codeblock? That could be helpful but also sounds possibly disruptive.

@roblourens i was not aware of that setting. I think the default value should be "chat.editor.wordWrap": "on" because it simply feels better with word wrapping on small screens.
While working with the chat in a separate editor might help with the better preview of the suggested code, it is just annoying switching between tabs all the time.
I was thinking of some popup window like this:

with all the options in the menu as in the regular chat (Copy, Insert at Cursor, Run in console etc).
Now the question is, how long should the mouse stay still over the codeblock to "activate" the popup. And what will be the close event (one might be leaving the popup area, ESC the other i.e.).
The main chat area (previous conversation etc...) might be blurred as well to emphasize the code suggestion in the popup.
Is this feature better over the current solution with the word wrapping? Debatable, i think it is personal preference and some form of A/B test might give the right answer :)

I think a small "pop out" button for that use case would be better than hover.

@NikiLentz it might work as well..
it looks like more of a UX problem here i think...
do you think that 2 actions: (pop out -> accept) will be more useful than (accepting first -> undo in the main code editor later)?
because at the moment the buttons are not floating so in a case of long code suggestion which is too wide to be shown at the chat window, it will require going to top to click that pop-out button.
What about double click in the suggestion area?


ARROW-16993: [C++] cmake: cannot create imported target "Boost::headers"

@github-actions crossbow submit -g cpp r-binary-packages

@github-actions crossbow submit -g cpp


Revert "glib: use patch from Alpine Linux (#80)"

The Alpine patch seems to apply without problems, but further on it causes issues when configuring GLib, see for example:
https://github.com/kleisauke/libvips-packaging/runs/1777505762
Sorry for not testing this properly in the first place.

Thanks, no worries.

Thanks, no worries.


[MINOR] validate that fg reader is reading entire files for bootstrap and mor

Change Logs
check to make sure that the fg reader is reading from the start of base files for bootstrap and mor merging.
For bootstrap, the skeleton file and base file will probably not line up. For mor, we will read all the log files for each split and that will be slow and probably cause data to be wrong.
Impact
Validate that fg reader is being used correctly
Risk level (write none, low medium or high below)
none
Documentation Update
N/A
Contributor's checklist

[ ] Read through contributor's guide
[ ] Change Logs and Impact were stated clearly
[ ] Adequate tests were added if applicable
[ ] CI passed

@hudi-bot run azure


Switching tabs slow when tabs contain large DataGrids

I have multiple TabItems in a TabControl, each with a DataGrid of 100+items. When I switch tabs, the first switch takes about 5 seconds and every subsequent switch takes about 1 sec. I also notice that the application's memory usage jumps up every tab switch. Is this expected?

Here's the link to the code I am working on:
https://github.com/brogan-ohara/TestApp

In running this I noticed memory use jumps 100Mb just by moving the mouse over each row.

I think there is a problem with the size the DataGrid initially thinks it is which causes it to create far more rows than is needed for display. Setting the Height to 400 on the DataGrids makes it much quicker, ControlCatalog also has the same issue.

Removing the StackPanel should improve performance

This is an interesting problem with using virtualizing controls in complex layouts. The current behaviour of DataGrid and ListBox is not good but I'm not sure how it should ideally work. If you have only a few items there maybe times when you want to shrink the space used.  In ControlCatalog the DataGrid gets an initial Measure height of Infinity, if you capture this and set height to zero it all works quickly but I'm not sure that is a real solution.

The infinite space that comes from StackPanel is the issue here. When that is removed and DataGrid is still measured with infinite space there is something else going wrong.

Yep in this case I think that is the only issue, but the current control catalog also has the same issue and it is not obvious to me where the infinity is coming from there. I just wonder if virtualizing controls should have special behaviour during measurement, or at least a warning if Infinity is passed.

I think there is a problem with the size the DataGrid initially thinks it is which causes it to create far more rows than is needed for display. Setting the Height to 400 on the DataGrids makes it much quicker, ControlCatalog also has the same issue.

Are you saying that manually setting the height is a possible solution or and indicator of the problem. Because when I manually set the height I can't scroll and see the rest of the data.

I would like to say that I have the same problem, only then the whole DataGrid causes a massive performance hit.
Changing the height to a fixed value, 'fixes' this. Telling the DataGrid to properly fill the parent (Via ActualHeight with RelativeSource) , doesn't work.
Whenever I attach an array with over 1200 elements to the DataGrid, the RAM usage skyrockets: about 140MB of extra RAM usage, and the FPS drops to almost zero. The DataGrid only lists the strings in this array. (File names)
As I've said before: setting the height to a fixed value, will prevent this problem. That isn't a solution however! As it makes the layout very problematic.
It's not often that a directory has over 1200 files in it, but it would be great if the DataGrid would utilize virtualization properly.
Removing the StackPanel/DockPanel/WrapPanel wrapper doesn't do anything.

Virtualization of DataGrid in control catalog tabs is not working for some reason (it's measured with infinity??), but there is a way to overcome that with some custom hacky code until this is fixed in datagrid
example:
<HackyPanel>
   <DataGrid Items=....
</HackyPanel>

    using System.Linq;
    using Avalonia;
    using Avalonia.Controls;
    using Avalonia.VisualTree;
    public class HackyPanel : Panel// or Decorator
    {
        protected override Size MeasureOverride(Size availableSize)
        {
            if (double.IsInfinity(availableSize.Height))
            {
                var c = this.GetVisualAncestors().OfType<IControl>().FirstOrDefault(v => v.IsArrangeValid && !v.Bounds.IsEmpty);
                if (c != null)
                {
                    availableSize = availableSize.WithHeight(c.Bounds.Height);
                }
            }
            return base.MeasureOverride(availableSize);
        }
    }

@donandren I can confirm that your code sample fixes the problem. It is a much better temporary fix than adding a fixed height to the DataGrid. Thanks! Let's hope that the virtualization issue will be addressed soon.


Bunch of corrections

mv ../shape_predictor_68_face_landmarks.dat.bz2 ../ffhq.pkl ../model_ir_se50.pth ../faces_w_encoder.pt checkpoints/
FIRST correction required to work
mv data_preprcoess/ data_preprocess # (!!)
SETTING PYTHONPATH required to work
export PYTHONPATH=$PYTHONPATH:pwd
this fails, dlib model is in bz2 archive, must be bunzipped
python data_preprocess/0_align_face.py
--images_dir test_album
--save_dir test
--trash_dir trash
--landmarks_model checkpoints/shape_predictor_68_face_landmarks.dat.bz2
--id_model checkpoints/model_ir_se50.pth
Traceback (most recent call last):
File "PATH-EDITED/mystyle/data_preprocess/0_align_face.py", line 242, in
main()
File "PATH-EDITED/mystyle/data_preprocess/0_align_face.py", line 219, in main
lnds_predictor = dlib.shape_predictor(str(args.landmarks_model))
RuntimeError: Unexpected version found while deserializing dlib::shape_predictor.
cd checkpoints
bunzip2 shape_predictor_68_face_landmarks.dat.bz2 # (!)
cd ..
python data_preprocess/0_align_face.py
--images_dir test_album
--save_dir test
--trash_dir trash
--landmarks_model checkpoints/shape_predictor_68_face_landmarks.dat
--id_model checkpoints/model_ir_se50.pth
OK - now it fails a bit further, but it's because I have n physical GPU no board. I managed to run arcnet/resnet withut GPU before, so I will try later to check whether I'll be able to do it here. We'll see.

Corrected it to work with CPU only. Damn it's slow without GPU :-) I have a question:
what should be the input image resolution for superresolution? It seems that images have to be 1024x1024; With images with smaller resolution, I am getting errors like this (path edited)
Traceback (most recent call last):
File "project.py", line 120, in
main()
File "project.py", line 116, in main
project(args)
File "project.py", line 60, in project
sample = alpha_projector.reconstruct(sample)
File "mystyle/reconstruct/base_projector.py", line 66, in reconstruct
recon_loss = self.reconstruction_loss(synth, target, mask=sample.mask)
File "mystyle/reconstruct/base_projector.py", line 52, in reconstruction_loss
return super(BaseProjector, self).reconstruction_loss(degraded_synth, target)
File "mystyle/reconstruct/base_reconstructor.py", line 50, in reconstruction_loss
dist = self.lpips(synth, target)
File "HOME.local/lib/python3.6/site-packages/torch/nn/modules/module.py", line 1102, in _call_impl
return forward_call(*input, **kwargs)
File "HOME/.local/lib/python3.6/site-packages/lpips/lpips.py", line 124, in forward
diffs[kk] = (feats0[kk]-feats1[kk])**2

Corrected it to work with CPU only. Damn it's slow without GPU :-) I have a question:
what should be the input image resolution for superresolution? It seems that images have to be 1024x1024; With images with smaller resolution, I am getting errors like this (path edited)
Traceback (most recent call last): File "project.py", line 120, in main() File "project.py", line 116, in main project(args) File "project.py", line 60, in project sample = alpha_projector.reconstruct(sample) File "mystyle/reconstruct/base_projector.py", line 66, in reconstruct recon_loss = self.reconstruction_loss(synth, target, mask=sample.mask) File "mystyle/reconstruct/base_projector.py", line 52, in reconstruction_loss return super(BaseProjector, self).reconstruction_loss(degraded_synth, target) File "mystyle/reconstruct/base_reconstructor.py", line 50, in reconstruction_loss dist = self.lpips(synth, target) File "HOME.local/lib/python3.6/site-packages/torch/nn/modules/module.py", line 1102, in _call_impl return forward_call(*input, **kwargs) File "HOME/.local/lib/python3.6/site-packages/lpips/lpips.py", line 124, in forward diffs[kk] = (feats0[kk]-feats1[kk])**2 = (feats0[kk]-feats1[kk])**2 RuntimeError: The size of tensor a (255) must match the size of tensor b (127) at non-singleton dimension 3

Same here


Is it possible to edit dupe in file?

Hello, I am wondering is it possible to edit a duplicate in a text document? Send me ways to do it. I need to change DHDD memory

You can Advdupe2.Decode and then save it as json with util.TableToJson. Then do reverse steps to encode it back.

Greetings! @thegrb93 could you help me an bit? i want to see the code from an e2 that got saved with Advdupe2 but im to stupid to decode it. 3;

Sorry, you'll have to brush up on some lua if you want the goods. It's a simple 1 line of code to do it so good luck.


Fix --restricted option on bee API

The --restricted option is being used by some calls on both the /bee and /debug APIs with the default value being false.
On the /bee API, when the option is set to false, we get a 404 error, while when it is set to true, we get a 403.
On the /debug API it works as expected.
We need to fix the functionality of --restricted.

Is there an example of an request that fails? trying to reproduce the bug

currently the implementation of the restricted option follows this set of rules: https://docs.ethswarm.org/docs/bee/working-with-bee/security#a-note-on-the-http-endpoints
can someone confirm that any of this functionality needs to be amended or fixed in any specific way?


Preocts 20220716

Codecov Report

Merging #6 (9074fe2) into main (4d3908a) will not change coverage.
The diff coverage is 100.00%.

@@            Coverage Diff            @@
##              main        #6   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files           11        11
  Lines          268       297   +29
  Branches        19        21    +2
=========================================
+ Hits           268       297   +29

Flag
Coverage Δ

unittests
100.00% <100.00%> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

src/runtime_yolk/yolk.py
100.00% <100.00%> (ø)

tests/yolk_test.py
100.00% <100.00%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 4d3908a...9074fe2. Read the comment docs.


Let flake8 pull a version of pep8 it requires

flake8-2.4.0 does not support pep8>=1.6.0 which resulted in dependency conflict with the latest stable 1.6.2 pulled in explicitly

Good point. Unfortunately the travis build doesn't rely on tox (because in this way I can get a better itemised build output in Travis by Python version) but that causes some duplication of requirements.
The same you did here, in requirements/test.txt would fix the Travis build.

Added, all green now. :)

Wonders, thanks!


Troubles Installing on Windows10

Hi there, just wondering if you or anyone else out there has tried using this on Windows10. I read the installation instructions, but here's what happens:
env: make: No such file or directory --  While building custom Setup.hs for package hlibsass-<IP_ADDRESS> using:       C:\Users\Kilian\hlibsass\.stack-work\dist\ca59d0ab\setup\setup --builddir=.stack-work\dist\ca59d0ab configure --with-ghc=C:\Users\Kilian\AppData\Local\Programs\stack\x86_64-windows\ghc-8.0.2\bin\ghc.EXE --with-ghc-pkg=C:\Users\Kilian\AppData\Local\Programs\stack\x86_64-windows\ghc-8.0.2\bin\ghc-pkg.EXE --user --package-db=clear --package-db=global --package-db=C:\sr\snapshots\62cfb14b\pkgdb --package-db=C:\Users\Kilian\hlibsass\.stack-work\install\6c953ab2\pkgdb --libdir=C:\Users\Kilian\hlibsass\.stack-work\install\6c953ab2\lib --bindir=C:\Users\Kilian\hlibsass\.stack-work\install\6c953ab2\bin --datadir=C:\Users\Kilian\hlibsass\.stack-work\install\6c953ab2\share --libexecdir=C:\Users\Kilian\hlibsass\.stack-work\install\6c953ab2\libexec --sysconfdir=C:\Users\Kilian\hlibsass\.stack-work\install\6c953ab2\etc --docdir=C:\Users\Kilian\hlibsass\.stack-work\install\6c953ab2\doc\hlibsass-<IP_ADDRESS> --htmldir=C:\Users\Kilian\hlibsass\.stack-work\install\6c953ab2\doc\hlibsass-<IP_ADDRESS> --haddockdir=C:\Users\Kilian\hlibsass\.stack-work\install\6c953ab2\doc\hlibsass-<IP_ADDRESS> --dependency=Cabal=Cabal-<IP_ADDRESS> --dependency=base=base-<IP_ADDRESS> --dependency=directory=directory-<IP_ADDRESS> --extra-include-dirs=C:\Users\Kilian\AppData\Local\Programs\stack\x86_64-windows\msys2-20150512\mingw64\include --extra-lib-dirs=C:\Users\Kilian\AppData\Local\Programs\stack\x86_64-windows\msys2-20150512\mingw64\bin --extra-lib-dirs=C:\Users\Kilian\AppData\Local\Programs\stack\x86_64-windows\msys2-20150512\mingw64\lib --enable-benchmarks     Process exited with code: ExitFailure 127
Please correct me if i did domething wrong here.

It seems like make is not on your PATH. You must have GCC and make installed to be able to build the native library. You can use MinGW-w64 (the original MinGW is not maintained AFAIK). You may also need to adjust your PATH if the installer doesn't do it. Also, MinGW used mingw-make and mingw-gcc instead of plain make and gcc (file name is the only difference here, the apps are really just make and gcc), so you might need some symlinks BUT it might have changes since the time I looked at MinGW.

Closing since this wasn't live for more than 2 years now.


purldb matching updates #781

This PR updates the purldb matching portion of the d2d pipeline. This is done by:

Implementing directory matching
Sending multiple sha1 for matching at once vs sending one sha1 at a time
Caching package data when matching Resources

Looks like I have some db ordering differences when I am regenerating tests.

@JonoYang is this PR complete and ready to be reviewed?
If not, please provide the latest status and a list of remaining tasks.

@tdruez
I'd appreciate your thought on my changes so far, but the remaining tasks are:

In purldb, implement POST API endpoint on packages and resources to allow for filtering by multiple sha1
Update scio purldb code to use the new endpoint
Tests

Hi @JonoYang the code looks generally fine, but here's my concern regarding the process that seems quite un-efficient:

We use JSONResultsGenerator which loads the entire Project data from the database (are we even using all that data, I don't think Package, Dependencies, etc.. are part of generating directory fingerprints)
All that data is Serialized and written to memory
We create a VirtualCodebase that deserializes that data on its instance
Latestly we can run the fingerprinting

I'm wondering why we need to use VirtualCodebase at all. Cannot we achieve this fingerprinting by just getting the right data from the DB to compute and update a few records?
Also, do we have the spec of the "directory fingerprint" available somewhere?

@tdruez

Hi @JonoYang the code looks generally fine, but here's my concern regarding the process that seems quite un-efficient:

We use JSONResultsGenerator which loads the entire Project data from the database (are we even using all that data, I don't think Package, Dependencies, etc.. are part of generating directory fingerprints)
All that data is Serialized and written to memory
We create a VirtualCodebase that deserializes that data on its instance
Finally we can run the fingerprinting

I'm wondering why we need to use VirtualCodebase at all. Cannot we achieve this fingerprinting by just getting the right data from the DB to compute and update a few records?

There are a couple of reasons why I am using VirtualCodebase here:

We use the VirtualCodebase because the code that computes the directory fingerprints was originally written to be run as a scancode-toolkit plugin, which uses the Codebase as the main data structure.

The process fingerprinting the directories of a codebase is pretty much computing a Merkle tree using a locality sensitive hash (https://github.com/nexB/purldb/blob/main/matchcode-toolkit/src/matchcode_toolkit/halohash.py). This involves traversing the codebase depth-first, so we can compute the fingerprints of the lowest directories all the way to the root directory of the codebase. At each directory, we are putting into the hash the sha1 values of the Resources in the directory and all other Resources under that directory, recursively. This is the directory content fingerprint. The tree nature of the Codebase/VirtualCodebase model makes it easy to compute the directory fingerprints. There's no reason why you can't compute the directory fingerprints without using VirtualCodebase, but the reason I didn't do that is because I don't know how query the database in such a way that resembles depth-first tree traversal and ensuring that CodebaseResources that are returned are in the same order as if I was traversing a VirtualCodebase the same way.

I tried using ProjectCodebase (https://github.com/nexB/scancode.io/blob/main/scanpipe/pipes/codebase.py#L99) and using that with my code (https://github.com/nexB/purldb/blob/main/matchcode-toolkit/src/matchcode_toolkit/fingerprinting.py#L108). This works, but I found that computing the directory fingerprints took very long.  I thought that computing the directory fingerprints in memory using the VirtualCodebase would be faster. I had to run JSONResultsGenerator to populate the VirtualCodebase. I understand this isn't great. I figured that running JSONResultsGenerator at the beginning of the pipeline, when there is very little information in the db other than CodebaseResources with basic file info, wouldn't be too bad.

Also, do we have the spec of the "directory fingerprint" available somewhere?

We have docs on the hash algorithm and implementation we use, but not on the process of computing directory fingerprints. I outline the directory fingerprinting computation process in the second bullet point in my response above. I will update the docs.

@tdruez I am failing this test: https://github.com/nexB/scancode.io/actions/runs/5958512864/job/16162845512#step:8:534 (https://github.com/nexB/scancode.io/blob/781-purldb-matching-updates/scanpipe/tests/pipes/test_d2d.py#L579)
Here, we are matching a JS map file that contains two JS packages within it, so one resource has been matched to two packages. Before my changes to the purldb and matching code, the purldb match function considers this to be a single resource matched. After my changes, the function considers this to be two resources matched, due to the way I process matches by sha1 instead of per CodebaseResource. I'm not sure how to best get the previous behavior back with the current system I implemented.

@JonoYang I don't fully understand the problem here so I cannot provide you guidelines for a solution.

I'm not sure how to best get the previous behavior back with the current system I implemented.

Do we want to previous behavior though?
My feeling is that If there are 2 sha1 matches, the log message should be explicit about it.

@tdruez
I ended up finding a way to prevent double counting of already-matched CodebaseResources, that matches with how we counted the total number of matched CodebaseResources from before and updated the log message to relate the number of SHA1s sent to PurlDB to the number of resources matched.

@JonoYang Also, I would suggest adding a DEFAULT_TIMEOUT variable in the header of the purldb module, and using it instead of None in the function args:
def request_get(url, payload=None, timeout=DEFAULT_TIMEOUT)

def request_post(url, data, timeout=DEFAULT_TIMEOUT)

@tdruez
I've set DEFAULT_TIMEOUT in scanpipe/pipes/purldb.py to be 30 seconds (https://github.com/nexB/scancode.io/blob/781-purldb-matching-updates/scanpipe/pipes/purldb.py#L52). Is this a reasonable timeout length?


Update kirki-helper-class.md

sometimes developer just add the fields and sections  using Kirki by just calling the Kirki::add_field method but it doesn't load the custom post types and custom taxonomies, if kirkir config is called in 'init' action then it works properly.

Thanks! I made some changes so the code complies with the WordPress Coding Standards and merged this.
As soon as v3.0.26 is released (at which point the develop branch will be merged in master) this change will show up in the docs site. 👍


fix: Fix well-known type query parameters in gRPC transcoding

Have just realized I missed out UInt64Value here... will fix.

Fixed now, and ready for review :)


lime test windows error

Describe your problem here.
source/PlayState.hx:75: characters 33-53 : Type not found : hxcodec.VideoHandler
source/MainMenuState.hx:218: characters 3-16 : Type not found : FlxMouseEvent
source/PlayState.hx:1578: characters 13-23 : Type not found : MP4Handler
Please help me
Are you modding a build from source or with Lua?
Source
What is your build target?
Windows x64
Did you edit anything in this build? If so, mention or summarize your changes.
No response

https://github.com/ShadowMario/FNF-PsychEngine/wiki/Libraries-versions

i redid it. But the error persists.
source/PlayState.hx:75: characters 33-53 : Type not found : hxcodec.VideoHandler
source/MainMenuState.hx:218: characters 3-16 : Type not found : FlxMouseEvent
source/PlayState.hx:1578: characters 13-23 : Type not found : MP4Handler

The version is 0.6.3, is that correct?

psych is 0.7.1h now and 0.6.3 needs another lib versions

where is that written? It would be helpful if you could tell me.

where is that written? It would be helpful if you could tell me.

literally here https://github.com/ShadowMario/FNF-PsychEngine/wiki/Libraries-versions

it's 0.7.1h not 0.6.3

where is that written? It would be helpful if you could tell me.

literally here https://github.com/ShadowMario/FNF-PsychEngine/wiki/Libraries-versions

it's 0.7.1h not 0.6.3

ik, but I’m pretty sure they work for 0.7


Add clearorders command

3.9 port of https://github.com/saleor/saleor/pull/11510

Impact

[ ] New migrations
[ ] New/Updated API fields or mutations
[ ] Deprecated API fields or mutations
[ ] Removed API types, fields, or mutations
[ ] Documentation needs to be updated

Pull Request Checklist

[ ] Privileged queries and mutations are guarded by proper permission checks
[ ] Database queries are optimized and the number of queries is constant
[ ] Database migration files are up to date
[ ] The changes are tested
[ ] GraphQL schema and type definitions are up to date
[ ] Changes are mentioned in the changelog

@cmiacz Could you rebase this PR? CI is failing with the Python dependency issue.


build gRPC has error, How can I fix, I hope to get help

i want to build gRPC on my work machine, i refer to "https://github.com/grpc/grpc/blob/master/INSTALL" 's info, at "make" step, i get the following error message, i provided some information for my development machine, i hope to get help, thanks.
build step:

git clone https://github.com/grpc/grpc.git
cd grpc
git submodule update --init
make

error info:
src/core/iomgr/pollset_multipoller_with_epoll.c: In function ‘grpc_platform_become_multipoller’:
src/core/iomgr/pollset_multipoller_with_epoll.c:176: warning: implicit declaration of function ‘epoll_create1’
src/core/iomgr/pollset_multipoller_with_epoll.c:176: error: ‘EPOLL_CLOEXEC’ undeclared (first use in this function)
src/core/iomgr/pollset_multipoller_with_epoll.c:176: error: (Each undeclared identifier is reported only once
src/core/iomgr/pollset_multipoller_with_epoll.c:176: error: for each function it appears in.)
make: *** [objs/opt/src/core/iomgr/pollset_multipoller_with_epoll.o] Error 1
env:
$uname -a
Linux rs3a03091.et2sqa 2.6.32-220.23.2.ali1089.el5.x86_64 #1 SMP Fri Jun 14 10:52:15 CST 2013 x86_64 x86_64 x86_64 GNU/Linux
gcc version:
$gcc --version
gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-51)
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

@dklempner I told you that we'd get people trying grpc on old enough Linux platforms :-)
@lylee1981 your environment is unfortunately too old to support gRPC.

i modified file "src/core/iomgr/pollset_multipoller_with_epoll.c"
add one include:
#include <linux/fcntl.h>
and add one define:
#define EPOLL_CLOEXEC O_CLOEXEC
then make again, and build libgrpc.a is ok, but has another error:
[MAKE]    Building protobuf
checking whether to enable maintainer-specific portions of Makefiles... no
configure: error: cannot find install-sh or install.sh in . ./.. ./../..
make: *** [libs/opt/protobuf/libprotobuf.a] Error 1
For this error, what advice do？ thanks.

I solved the problem in the following way：

modify source code:
src/core/iomgr/pollset_multipoller_with_epoll.c

add:
#include <linux/fcntl.h>
#define EPOLL_CLOEXEC O_CLOEXEC

modify grpc 's Makefile

a). change CPPFLAGS, remove -Werror feature
b). change DEFAULT_CXX to high version of c ++ path
eg：
DEFAULT_CXX = /path/to/your/high/version/c++/path


Is this project still alive?

Same question above or is this project stoped like HASS.Agent?

I think so. It works on Debian 12... but not perfectly.

FYI I was pointed to a fork that is maintained still https://github.com/DustyArmstrong/homeassistant-desktop (with thanks to DustyArmstrong)


MAINT Drop Python 3.6 support

ramp-board is an application so there are less reasons to support 4 versions of Python in CI. ramp.studio uses python 3.7.

thx @rth


Use more acessible settings for new players

How I can test generating the game?

In the current async runs all unclaimed fillers so far are the shorts with All in - In these settings All in is significantly harder than other missions
The purpose of this change is to offer fillers accessible to new players

Short seeds are difficult for new players because they place more difficult missions earlier in the seed and provide fewer extra items beyond the bare minimum logic required to complete the seed.
In an async, the tiny item pool is especially problematic because players receive only a tiny fraction of their items at the beginning; it's very possible for a short seed's only anti-air unit to be stuck at the end of a long game, and the algorithm is unlikely to care, as blocking an entire short seed only blocks ~30 locations.
It is also fundamentally against the spirit of the async to play games on settings intended for <2 hour runs.
Also, shuffle_protoss does nothing on vanilla; that trigger is unnecessary.
The only part of this that I agree with is the difficulty rebalancing.  Experienced players should be aware of the /difficulty command, so biasing the seeds even more heavily towards lower difficulties should be fine.  However, I'm somewhat opposed to making Casual an extremely common option, as logic barely applies on Normal and never applies on Casual.

What about the increased difficulty of all in in shorter campaigns for new players?

Is there a way to reduce the time commitment (from full campaign) without increasing the difficulty of All-in?

@Magnemania I think the difficulty problem of shorts applies mainly to gauntlet because you're forced to play certain mission while in Blitz and minigrid you have a way around. Gauntlet could be dropped because of that
I still think that a shorter run that's not difficult has its place in async. In current situation the Blitz has 12 missions and it's the longest without all in. I'm open myself for large grid without All in or using somewhat nerfed version of All in in shorts
I still believe that Blitz could do a perfect job for a side-game

Blitz can be completed in under two hours and requires even less logic than the other short seeds; that is entirely against the point of the async.

You can either complete fast when your goal is for example Media Blitz (there's cheese) or be in a hard BK for a long time. All depends on what stuff you have early on and cheesable missions

Tried the new All-out and with a good inventory it's a great ending for shorter campaigns (large grid, etc) :)

im actually going to close this. i agree with mag's concerns that a lot of this is against what the async is about. if people want shorter campaigns, they can submit customs. and the difficulty change is honestly not that big a deal with the change difficulty command existing.


updated with automations and setup.py

Summary by CodeRabbit

New Features

Introduced multiple GitHub Actions workflows to automate translation, build tests, license compliance checks, and publishing processes.
Added scripts for managing versioning and translations, enhancing the localization process.

Bug Fixes

Improved handling of versioning and build processes to ensure smoother deployments.

Documentation

Updated .gitignore to exclude build artifacts and metadata directories, improving repository cleanliness.

Chores

Added new scripts for version management and translation tasks, streamlining development workflows.

Fixed most of the build tests, not sure I did them right, but it cant check the pypi yet.  Don't think I can fix that one?

Also, same comment about the py-audit step - is this valid to test when core requires a lower version of the libraries in question?

About the repo name: I'd suggest changing the repo name to ovos-skill-ip
Just had a convo with @goldyfruit about that. we should have all in line

repo name
package name
skill_id
Less confusing, less coding, less remembering ...

leaving as with a setup.py declaration
URL = "https://github.com/OpenVoiceOS/ovos-skill-x"
SKILL_CLAZZ = ""

AUTHOR, SKILL_NAME = URL.split(".com/")[-1].split("/")
ADDITIONAL_AUTHORS = []
AUTHORS = ADDITIONAL_AUTHORS + [AUTHOR]

SKILL_PKG = SKILL_NAME.lower().replace('-', '_')
PLUGIN_ENTRY_POINT = f'{SKILL_NAME.lower()}.{AUTHOR.lower()}={SKILL_PKG}:{SKILL_CLAZZ}'

and (regarding the package name)
setup(
    ...,
    package_dir={SKILL_PKG: ""},
    packages=[SKILL_PKG, ... ],
    package_data={SKILL_PKG: find_resource_files()},
    ...,
)

I have no issues with changing the repo name and such, but that can be a separate PR for the setup.py and other needed files after the repo itself is renamed?

As is, the pypi name would be skill-ip

we should start moving to the new automations https://github.com/OpenVoiceOS/.github/tree/feat/shared_actions1
and adopting https://openvoiceos.github.io/ovos-technical-manual/versioning/ as discussed

fixed here


stream_id: Replace empty string with undefined.

Following up on https://github.com/zulip/zulip/pull/26817#discussion_r1336213300

This implicitly changes the meaning of stream_bar.decorate:
https://github.com/zulip/zulip/blob/07e99eace94c99ea417b4bd49aaf6eba6ba77ffb/web/src/stream_bar.js#L7-L13
Previously we’d call stream_data.get_color("") and end up setting background-color to DEFAULT_COLOR, but now we return early for undefined and don’t change background-color at all. Is that intended?

Great point. I think we should use the default color, and avoid calling this function for messages that aren't for streams. I changed the call sites to no longer call the function for DMs.

@andersk does this seem in good state now?

@timabbott this can become stale very easily, so it would be great if you (or someone else) could take a look soon. I can also just close it for now and open something similar in the future.

Merged, thanks @evykassirer!

(In general, adding the "integration review" label is a good idea if you want me to look at something next).


[Bug] decorations are not always hidden for folded regions

Reproducible in vscode.dev or in VS Code Desktop?

[X] Not reproducible in vscode.dev or VS Code Desktop

Reproducible in the monaco editor playground?

[ ] Not reproducible in the monaco editor playground

Monaco Editor Playground Link
Decorations are not hidden if there are more line breaks than folded lines, this is due taking the fast path at https://github.com/microsoft/vscode/blob/6408ba941f7e961e00eb7a4cc66745894127ab03/src/vs/editor/common/viewModel/viewModelLines.ts#L912C18-L912C18.
Playground example code
Monaco Editor Playground Code
const value = /* set from `myEditor.getModel()`: */ `function func1() {
	alert('Hello world!');
}

function func2() {
	// Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
}`;

// Hover on each property to see its docs!
const myEditor = monaco.editor.create(document.getElementById("container"), {
	value,
	language: "javascript",
	automaticLayout: true,
	showFoldingControls: 'always',
	glyphMargin: true,
	wordWrap: 'on',
	wrappingIndent: 'deepIndent',
	wrappingStrategy: 'advanced'
});

const model = myEditor.getModel();

model.deltaDecorations([], [{
	range: {
		startLineNumber: 2,
		startColumn: 1,
		endLineNumber: 2,
		endColumn: 1
	},
	options: {
		stickiness: monaco.editor.TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges,
		glyphMarginClassName: 'red-square',
		zIndex: 1
	}
}]);

``` css
.red-square {
    background-color: red
}

Reproduction Steps

fold the region with the decoration
fold/unfold the second decoration

https://github.com/microsoft/monaco-editor/assets/898577/66a56d84-5334-4a9a-b65c-fbe4d2b34433
Actual (Problematic) Behavior
decorations are not always hidden for folded regions
Expected Behavior
decorations are always hidden for folded regions
Additional Context
No response

https://github.com/microsoft/monaco-editor/assets/898577/bb707ce2-b8eb-448a-9b17-108664a62f63

Does this reproduce in VS Code? (if so, I can prioritize this bug)

Yes, actually this is also reproducible in vscode. All you need to do is turn word wrapping on (“on”) in the settings and create two collapsible regions like in the report.

Can you please create an issue in the vscode repository (and then link and close this issue)?

Tracking in origin repository


fixed issue 10920 by adding list support to the preset pass manager for

coupling map

Summary
Fixes #10920
Details and comments
The preset pass manager previously only allowed the user to provide a coupling map as an object, not as a list. Since the creation of a coupling map is typically a straightforward process, it makes sense to allow users to directly input the list into the preset pass manager generator. This is what this PR is about.
Example :
pm =  generate_preset_pass_manager(basis_gates = ['cz', 'sx', 'rz'],  coupling_map =[[0,1], [1,2]], optimization_level=3)

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


[feature] Option to insert a carriage return after 'Enter' key pressed.

Please Note:  In the code blocks below, I will use the pipe character ( | ) to represent the position of my cursor.
Example for my Feature Request
Consider the following text, where my cursor is resting at the end of the word foo
SELECT *
FROM
    foo|

Desired Behavior
In a plain text editor, when I press the 'Enter' key on my keyboard, I get both a Line Feed and a Carriage Return.  Therefore my cursor moves 1 line down, and all the way to the left.  Like so:
SELECT *
FROM
    foo
|

DBeaver Behavior
In DBeaver, when I press the 'Enter' key on my keyboard, I get only a Line Feed.  My cursor's position respects the indentation of the original line.  Like so:
SELECT *
FROM
    foo
    |

My request is a Preference that allows for the 'Desired Behavior'.  Which is automatically inserting a Carriage Return after hitting 'Enter' in the editor.
Having spent decades typing SQL, my hands automatically perform the indentation I want (or no indentation, in some cases).  When I hit 'Enter', I expect that carriage return, so that I'm back to position 0.  Just like if typing in Notepad++, nano, or whatever.
With DBeaver, the lack of a carriage return means my muscle memory results in "drift".  Like this:
SELECT
    *
       FROM
            Item
                WHERE
                    Item.Name = 'Gizmo'
                    |

To correct this, I'm gradually teaching myself that after each press of Enter, I should immediately follow-up with 1 (or more) Backspace presses.  But only when I use DBeaver...not other editors. :)
Thanks for the consideration!

thank you for the report


Avatar from Google does not get displayed any more due to Picasa API no longer supported.

Javascript Console Errors:

Failed to load resource: the server responded with a status of 400 (Bad Request)
my-rides:1

Access to XMLHttpRequest at 'https://picasaweb.google.com/data/entry/api/user/****?alt=json' from origin 'http://localhost:4200' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

ngx-avatar.js:984 ngx-avatar: error while fetching google avatar

Google Note:
https://developers.google.com/picasa-web/
ngx-avatar version:
3.2.0

@HaithemMosbahi any plans to fix this using Google People API?


override NatureDQN.forward() to add a batch dimension if None exist

in dqn.act() the tensor x doesn't have a batch dimension, so the atari runs still fail. I added a small hack to add a batch dimension for x.
The reason I couldn't just do x=x.unsqueeze(0)  in dqn.py is because it isn't compatible with the flipped DQN architecture.

Ah okay... and the reason we don't need this for MLP is because of the Reshape(-1, n_inputs)?

Never mind, I guess it's because Conv2d just really wants a batch. Linear layers work fine without the batch.


Personal Project

For the personal project, are we graded on our code or is A on code crunch enough?

Hearsay the code will be graded manually so i don't think getting an A guarantees anything other than the code produces the correct output. But i think as long as you follow correct OOP principles like abstraction encapsulation polymorph etc, shouldn't be too worried?

personal project is graded based on how you code, so yea follow OOP principles and try not to have things such as god class as well

god class

🤣


Update backup-architecture.md

Updated Architecture: Direct backup of Azure VMs to reflect instant restore capabilties (snapshots are no longer immediatly deleted after beeing copied to the vault) - Flosch

@floschmsft : Thanks for your contribution! The author(s) have been notified to review your proposed change.

@Jak-MS : Thanks for your contribution! The author(s) have been notified to review your proposed change.


How to set cpu sample rate

func (ps *Session) uploadData(startTime, endTime time.Time) {
	if ps.isCPUEnabled() {
		pprof.StopCPUProfile()
		defer func() {
			pprof.StartCPUProfile(ps.cpuBuf)
		}()
		ps.upstream.Upload(&upstream.UploadJob{
			Name:            ps.appName,
			StartTime:       startTime,
			EndTime:         endTime,
			SpyName:         "gospy",
			SampleRate:      100,
			Units:           "samples",
			AggregationType: "sum",
			Format:          upstream.FormatPprof,
			Profile:         copyBuf(ps.cpuBuf.Bytes()),
		})
		ps.cpuBuf.Reset()
	}
    //........
}

Now:
No matter what config.SimpleRate is,  cpu profile was always turned on after last uploadData finish.

It is hard to do in a clean way with the current go stdlib https://cs.opensource.google/go/go/+/refs/tags/go1.22.5:src/runtime/pprof/pprof.go;l=821
It is  not impossible, we used to have a fork of the piece of stdlib https://github.com/grafana/pyroscope/tree/og/pkg/agent/pprof which used to work. But we do not maintain it.
Some more links for context/tracking:
https://github.com/golang/go/issues/42502
https://github.com/golang/go/issues/57488


Custom Icons and missing plus icons

Hello,
I imported Leaflet.DraggableLines via the NPM, overall is working good but the plusIcons are not appearing. I have used the default settings with no luck , even manually set allowExtendingLine to true and nothings changed. Any idea what might cause this or ways to debug it? I can't seem to find any empty markers on the map that would the plusIcons.
Another question, I am just wondering if there is a way to use custom icons for the markers? I have looked through the code and have not noticed an possible option.
Thank you in advance for any assistance you can provide.
Roderick

Do the plus icons appear for you on the demo?
You can customize the icons using the *MarkerOptions options. Here is an example:
new DraggableLines(map, {
	tempMarkerOptions: () => ({
		icon: L.icon({
			iconUrl: 'tempMarker.svg',
			iconSize: [12, 20],
			iconAnchor: [6, 20],
			popupAnchor: [0, -20]
		});
	})
}).enable();

They do appear in the demo, and in the modified demo that I used to test some of the custom options, but not when I implemented it in the my project. Every other part of what I tested and tried seems to be work as I tested but the plusIcon. This is the test work that I did in prep from the work in the project. I will say that the project is an Angular project, but being that leaflet is working as while as the other parts of Draggablelines except the plusIcons doesn't feel like Angular is the issue.
L.HighlightableLayers.html.zip
thank you for the Icon suggestion.

In the example that you have sent the plus icon appears for me. If I understand you correctly, it appears for you as well, but it fails in your Angular project? Can you share some of the code from your Angular project?

this is where I set up DraggableLines:
this._draggable = new DraggableLines(_mapService.map,  {
plusMarkerOptions: (layer, isStart) => {
return isStart ? {opacity: 0, interactive: false} : {};
},
dragMarkerOptions: (layer, i, length) => {
return i === 0 ? {opacity: 0, interactive: false} : {};
},
plusTempMarkerOptions: (layer, isStart) => {
return isStart ? {opacity: 0, interactive: false} : {};
}
} as DraggableLinesHandlerOptions);
and where I create the polyline:
this._newPath = new Polyline([start, end], { color: '#3388ff', weight: 3 });     this._newPath.addTo(this._mapService.map);     this._draggable.enableForLayer(this._newPath);
if there is nothing there, I will try to set up a sandbox later today and try that way.

I don't see any obvious mistakes that would explain the problem.
Unrelated to the problem, I'm wondering why you need the type cast to DraggableLinesHandlerOptions? Also, if you enable the layer manually using enableForLayer(), you should probably set the enableForLayer: false option on DraggableLines to prevent it from being enabled automatically.

Are you using the most recent version of Leaflet?

I am using the latest version of leaflet, 1.7.0.
I will add that to the options, and as for the type casting, I did that cause the IDE kept telling me that plusMarkerOptions was not being used. I had the same issue with or without, just have not removed it.

That's weird, which IDE are you using?

WebStorm

I made a sand box with a simple leaflet map and draggablelines, it is working fine. https://stackblitz.com/edit/angular-ivy-d1bxsx?file=src/index.html

Closing this as it does not seem to be reproducible. If you manage to get a reproducible demo running, feel free to reopen this.


aiorun 2020.12.1 does not seem to work together with aiohttp 3.7.4

We have several microservices running with aiorun
After update we get the following:
aiorun==2020.12.1 and aiohttp==3.6.2 -> works as before
aiorun==2019.4.1 and aiohttp==3.7.4 -> works as before
aiorun==2020.12.1 and aiohttp==3.7.4 -> outgoing requests do not work.
Unfortunately, I cannot get any reason more specific than this:
Traceback (most recent call last):
File "/home/pavka/Documents/console/slayer2/venv/lib64/python3.9/site-packages/aiohttp/connector.py", line 969, in _wrap_create_connection
return await self._loop.create_connection(*args, **kwargs)  # type: ignore  # noqa
File "/usr/lib64/python3.9/asyncio/base_events.py", line 1056, in create_connection
raise exceptions[0]
File "/usr/lib64/python3.9/asyncio/base_events.py", line 1041, in create_connection
sock = await self._connect_sock(
File "/usr/lib64/python3.9/asyncio/base_events.py", line 955, in _connect_sock
await self.sock_connect(sock, address)
File "/usr/lib64/python3.9/asyncio/selector_events.py", line 502, in sock_connect
return await fut
File "/usr/lib64/python3.9/asyncio/selector_events.py", line 537, in _sock_connect_cb
raise OSError(err, f'Connect call failed {address}')
ConnectionRefusedError: [Errno 111] Connect call failed ('<IP_ADDRESS>', 8500)
In the above instance, it is trying to talk to a local docker container but the same happens when trying to connect to external services:
Traceback (most recent call last):
File "/home/servicelayer/.local/lib/python3.7/site-packages/aiohttp/connector.py", line 969, in _wrap_create_connection
return await self._loop.create_connection(*args, **kwargs)  # type: ignore  # noqa
File "/usr/local/lib/python3.7/asyncio/base_events.py", line 954, in create_connection
raise exceptions[0]
File "/usr/local/lib/python3.7/asyncio/base_events.py", line 941, in create_connection
await self.sock_connect(sock, address)
File "/usr/local/lib/python3.7/asyncio/selector_events.py", line 464, in sock_connect
return await fut
File "/usr/local/lib/python3.7/asyncio/selector_events.py", line 494, in _sock_connect_cb
raise OSError(err, f'Connect call failed {address}')
ConnectionRefusedError: [Errno 111] Connect call failed ('<IP_ADDRESS>', 8500)
Some help will be highly appreciated...

@pavka14 Thanks for the report. The manifestation of the problem seem to be connection-related.  aiorun doesn't do anything with connections, TCP, etc., so I am skeptical that aiorun is causing the problem here.
Opportunities for exploration:

Does the connection error occur if you use the stdlib asyncio.run function instead of aiorun?
Do you have a self-contained example, e.g. Dockerfile or similar, that I can run to repro?  (realistically, without a repro it is very unlikely I will be able to help)
Have you reported to aiohttp and what have they said?
It is possible (but very unlikely) that aiohttp is somehow changing the event loop policy.  If you comment out https://github.com/cjrh/aiorun/blob/master/aiorun.py#L189 (i.e., remove the setting of the default policy in aiorun) do you still get the problem?

Good luck

It looks like under certain conditions aiohttp might be setting an event loop policy (using Gunicorn, looks like): https://github.com/aio-libs/aiohttp/blob/09ac1cbb4c07b4b3e1872374808512c9bc52f2ab/aiohttp/worker.py#L219
If you're using Gunicorn and aiohttp is changing the event loop policy like this, that is probably incompatible with what aiorun is doing so I think I will remove the branch where aiorun sets the default event loop policy if use_uvloop was not supplied.
However, I still don't think this is likely to be the cause of your connection errors.

Our code goes into the "else" of the condition there (use_uvloop is False); commenting out the next line did not help though.
We do not use gunicorn so might be something else in aiohttp, I'll try to follow the logic in worker.py
Thanks for the pointers.

@pavka14 Did you resolve the issue?

Thanks @cjrh - we shuffled our code a bit and we have no issue now. I am not sure if we "solved it" as such or just side-stepped it, but all works now.

Great to hear 🎉


Request new module: ocp-ca-issuer

Related user story
Provide the issue number for the user story related to this request
Type of module
gitops
If requesting a terraform module, what is the target cloud platform?
N/A
What is the purpose of the module?
Populates a gitops repo with the custom resource required to create a CA Issuer
What is the category of the module?
security

/name: ocp-ca-issuer

/displayName: Certificate CA Issuer


Property value is incorrectly cached

When building multiple times a project in VS15.8.2, changing the content of imported msbuild project files does not consistently work across all Target Frameworks. All TF use properly updated values, exception xamarinios10.
Repro steps

Clone https://github.com/nventive/Uno
Rename src/crosstargeting_override.props.sample to src/crosstargeting_override.props

Uncomment and change UnoNugetOverrideVersion to 1.31.0-dev.191
Comment the property BuildTargetFramework

Open this solution: https://github.com/nventive/Uno/blob/master/src/Uno.UI.sln
Re-build the project Uno.UI in this solution

Notice the messages  “OVERRIDING NUGET PACKAGE CACHE: C:\Users\user\.nuget\packages\Uno.UI\1.31.0-dev.191\lib\MonoAndroid80”
In src/crosstargeting_override.props, change UnoNugetOverrideVersion to 1.31.0-dev.192

Rebuild Uno.UI
Notice that part of the OVERRIDING NUGET PACKAGE CACHE messages are using 1.31.0-dev.191 and others 1.31.0-dev.192, inconsistently.
The override target that print this message is here: https://github.com/nventive/Uno/blob/bf3a302a2760f328cdf69686840c637203940b0b/src/Uno.CrossTargetting.props#L90

Workaround
Restarting VS works around the issue.

@lifengl Does this look like it's in the CPS layer or above it in the C# project system?


utmps pacakge

the following part is missing from utmps package.
etc/logrotate.d/btmpd
etc/logrotate.d/wtmpd
sbin/setup-utmp

The policy for  btmpd, utmpd, wtmpd decided what we do next.

cancel this package, please see the notice on utmps/readme.md


ROS2 Humble branch

Hi! I'm migrating pedsim_ros to ROS2 and looking for people also to contribute. I forked the latest ROS2 PR as the base repo (unfortunately as of now, they are not working out of the box anymore in the newest distro... not even in galactic or foxy is working as well). Since the galactic is reaching the end of life and foxy will be out of support next year, could you open a humble branch in the repo, please?
Thank you so much.

Hey Stephen,
thank you for your pedsim_ros ros2 repository.
I want to use foxy as ros distribution instead of humble.
After i made some changes (e.g. change tf2_geometry_msgs/tf2_geometry_msgs.hpp to tf2_geometry_msgs/tf2_geometry_msgs.h etc.), colcon build builded successfully without any errors:
After i run:
ros2 launch pedsim_simulator house_demo_launch.py
I getting the following message repeatly:
[pedsim_simulator-1] [WARN] [1691145349.541933382] [pedsim_simulator]: "odom" passed to lookupTransform argument target_frame does not exist.
[pedsim_simulator-1] [WARN] [1691145354.581924814] [pedsim_simulator]: "odom" passed to lookupTransform argument target_frame does not exist.
Do you have any solution for that.
Thank you very much in advance.

Hey, you're welcome. You need to have your own robot running that has the odom frame.

Hey Stephen,
first thank you very much for you reply. I really appreciate your time.
I thought you house_demo_launch.py file is a example.
How can i use my own robot maybe with turtlebot3 simulation?
I tested the pedsim ros1 there was the simple_pedestrians.launch file.
I want to test the pedsim on ros2 too. I didn't find any approaches so far.
Thank you so much !

Hey, you're welcome. You need to have your own robot running that has the odom frame.

Hey Stephen,
first thank you very much for you reply. I really appreciate your time.
I thought you house_demo_launch.py file is a example.
How can i use my own robot maybe with turtlebot3 simulation?
I tested the pedsim ros1 there was the simple_pedestrians.launch file.
I want to test the pedsim on ros2 too. I didn't find any approaches so far.
Thank you so much !

Hey @Namo98 ,
happy to help! The test launch is now ready, please refer to https://github.com/srl-freiburg/pedsim_ros/pull/86#issuecomment-1668151892. For further things please open an issue in the forked repository itself. Closing this now.


Shutdown button

Need a shut down button. To close the OB from web interface.
Need this for auto-saving all user data at that particualar moment.
If I'm pressed ctrl + c on cmd prompt then it closes but if i started again then hits and tochecks are gone in jobs tab. Need backup for them.
and how to reset the Job ID to 1.
and remove that permission to copy data on jobs tab and in Hits tab. ( should work on http other than https ) ( may be put a tick box in OB settings)
Tor proxy is showing fail in proxy check but works in Jobs.
"Enable logging in the job viewer page" move this to down of the page I mean in Job task.

They get moved to the hits db. If your really pressed about it, have it set to the db + a file

yea both I selected even all my hits are gone. no where they are saved. to avoid that need backup feature. the shutdown button helps.

Then I think you might be having more issues if its not saving anything.
It will auto save to the DB the moment it hits something, be it Success, Custom, or Tocheck.  Same goes for file.
If your saying its not saving anything at all then you have a completely different problem to solve

The proxy totals are a known issue and there already is a ticket for them.
They will still update (individual proxy) the status when you reload the page.  The delete all non-working will work regardless of reloading the page as well/.

I also just installed OB2 on one of my spare linux boxes running Ubuntu 20.04.3 LTS server

Imported a config and a working wordlist and tested it.
It saved every hit to the DB as it found them as well as to the file.  I then CTRL-C and reran OB2 and they were still in the DB and files.

What are you typing in the file path exactly?

why it pops ?

I don't have any memory problem I have 100GB free space still it pops. in VPS.

With "memory" we usually mean the RAM, not the hard drive space. Maybe you have 2 or 4 GB RAM in your VPS and it's not enough to properly execute OB2.

can you please add any button to expand this.

You can refresh the page using F5 or you can drag the bottom-right corner of the text area (I would prefer the refresh, takes less time).

With "memory" we usually mean the RAM, not the hard drive space. Maybe you have 2 or 4 GB RAM in your VPS and it's not enough to properly execute OB2.
I have 8GB space. ok leave that... anyway..
You can refresh the page using F5 or you can drag the bottom-right corner of the text area (I would prefer the refresh, takes less time).
If long source code then how to view that..

what about the shutdown button in UI.


Initial parsing using ufbx

Add support for parsing files using ufbx.
Currently supports most features that the GLTF parser supports:

Nodes
Meshes
Skinning (reuses the skeleton forming code from GLTF)
Materials
Textures
Cameras
Animations

Blend shapes are "supported" but broken as the mesh indexing code breaks for blend shapes, need to think of a solution for that.
Animations are done in a very bare bones way. I'm thinking of adding some resampling computation logic inside ufbx, probably something like this, but shareable between projects.
Not sure if GLTF did not include lights or why they were not imported but could try to add support for those in FBX.
With skeletons there's some issues with bone scaling after unit normalization. As the scales are in the bones it makes the object's bounding box massive, which is not ideal. We could try to take the scale from the root bone in the hierarchy and apply it to the skeleton, but that would probably cause issues with animation.
The root node of the node hierarchy could probably be removed, so that if you would have a cube it'd just get placed in the root of the imported scene.

In gltf cameras and lights were extensions, so I removed them temporarily.

Makes sense, for FBX can do both unconditionally

We discussed a dead code strategy. I and lyuma debated should we update mainline godot-ufbx to remove dead code or remove the dead code in this pr because it made review difficult.
We're reviewing now.

No need to review yet, feel free to also modify the PR if you want to, I can handle the merge issues

I left in code for spec_gloss_to_metal_base_color. spec gloss can mean the nonpbr or pbr spec gloss.
Any thought on this? Godot Engine is a pbr material engine.

ufbx handles some pbr spec gloss remapping internally but doesn't do too much. In practice specular/gloss material models are extremely rare in FBX but ufbx does support it, so we could keep spec_gloss_to_metal_base_color

I propose we merge incrementally. This is different from the strategy of the Godot Engine core to merge in entire finished works, but in my opinion we can iterate faster and make the queue of changes not impossible to review.
Thoughts on making this to merge.

I noticed this code is not using ARRAY_INDEX and is instead indexing into the vertex buffers within each decode_accessor function (which is confusingly named) so it's possibly creating duplicate copies of each vertex for each polygon.

This is actually on purpose, I had a comment about but removed it after I saw that mesh_surface_tool->index() takes care of it. The issue is that FBX has indices for each attribute, like .obj files, so that positions, normals, UVs, etc have their own indices. The only indices we would gain by supplying our own is for quad/N-gon triangulation but that misses a lot of shared vertices.

Also there are tons of unused gltf functions still.

I didn't do any real cleanup yet so need to do that systematically at some point still.

Overall seems reasonable. I'm impressed with all of what ufbx takes care of for you in terms of evaluating transforms since there are so many corner cases there.

Thanks! It really is such a mess that I've given up all hope of evaluating the animation curves independently so ufbx just provides the ufbx_evaluate_transform() which is at least robust.

I propose we merge incrementally. This is different from the strategy of the Godot Engine core to merge in entire finished works, but in my opinion we can iterate faster and make the queue of changes not impossible to review.

Agreed, as this repository is independent I would say merging in parts is good here for collaboration,

I'm going to merge this in 10 minutes.
There is the issue about the unweighted vertices, and influence normalization, but that has historically been broken in blender for a period of 2 years so it's not that urgent.
Will revise the comments in a separate pr.

Sure, I'm not going to this for a short while as I'll try to prototype an API for animation resampling within ufbx, feel free to do any modification/cleanup you want to!


Add a Nunjucks macro for the Button component

This

Removes button sizes smaller than the default
Removes button groups and white buttons (these may be reintroduced, but through the usual process)
Adds a Nunjucks macro to render buttons.
Introduces JSDoc documentation for our macros.

Consistency, reusability, centralization of behavior. The Nunjucks docs also serve as an example of how to build templates in general.


Change link to Wikipedia page re. PSPs to one from FCA

Context
The current landing page links to a Wikipedia article on PSPs; if possible, we should try to avoid using Wikipedia links since they can be easily edited by anybody, in theory
Changes proposed in this pull request
Changes Wikipedia link to an FCA one: https://www.handbook.fca.org.uk/handbook/glossary/G2619.html

I agree we should use FCA rather than Wikipedia. The wiki article gives a fuller explanation of what a PSP is, but (on balance) we should link to a more reputable source.

The other option is we could write our own content on what a PSP is @katiebates ...

Alternative PR https://github.com/alphagov/pay-tech-docs/pull/141

Closing this—we're going to go with a variation of #139


Added BindingElement to isSomeImportDeclaration

Fixes #41957
CommonJs imports are now declared as aliases. I have added the BindingElement kind when looking for import declarations when the import is destructuring.

Good find. I run the tests and seems like using getDeclarationOfAliasSymbol does not affect any of them, plus it more reliably checks the BindingElement. Refactored to use that instead.


Option for custom fonts

What you think about an option to choose a font file and use it in place of the Typeface.MONOSPACE?

I have been looking into it, it is relatively simple to implement but hard to handle the errors with the user.

Including fonts might cause some licensing issues and grows the apk size, the choice of font might not necessarily please everyone.
A user provided font has its issues, as the font file might be missing, having problem, or not being a font file at all (I have to test how Typeface.createFromFile behave at that point, as the documentation is not clear on that), plus the application need a fallback solution in case of issues. Plus error reporting from the application in case of issues.

Right now the solution I have been playing with requires a textfile in /sdcard/ which contains the path to the font file :

I prefer this solution to putting it in the settings, as it requires more effort from the users to point out which font file to use, but can be modified by a 3rd party application without user knowledge.
putting the configuration in the settings can be more secure, but could be slightly more difficult to implement if we need to put a file picker in the config

Even if I implement it right I am not sure it the pull request for this feature would be accepted at all, mainly because of the usability issues it raises compared to the number of users requesting it.


Misspelling

Hello,
at https://github.com/rezaamini-ir/laravel-easypanel#todo
please correct from:
php artisaon migrate
to:
php artisan migrate
Thanks

Thanks!
You could open PR and fix this, Anyway thanks for your notice.


Use PG object comments to record metadata (IDocumentStore FQN)

Record Marten related metadata in PG object comments - first for tables created (so I can e.g.
SELECT relname, description from pg_description
join pg_class on pg_description.objoid = pg_class.oid
where description like 'origin:Marten.IDocumentStore, Marten, Version=<IP_ADDRESS>046%'

@jokokko I'll get this one tomorrow morning

@jokokko Except it does need some tests first. I like the idea though.

I have a similar PR that injects the JSON schema into the PH meta data comments.

@jeremydmiller Oops, had the tests in stash and forgot to apply them to my commit.
@bradyclifford That's clever. My idea of using PG comments was to easily query the db for Marten related objects and see from which version they originate.

Ya I will probably instead just have the JSON Schema in normal script comments. My database team is requiring that they review the JSON schema that will be persisted in the data column before they will approve the DDL script.

@jokokko @bradyclifford I'm going to hold off on this one just until Brady's changes are ready just in case there's any conflicts

@jeremydmiller decided that it probably is better that we don't include the Json schema in the table comments.  Instead, we can inject it in after the DDL script is created via our own project CLI.  Unless, you feel it would still be beneficial to have for the entire Marten community.