ENSEMBLE promotion of global attributes

Reported by steven.c.hankin on 30 Mar 2016 15:20 UTC
If the analysis of multi-model ensembles with Ferret ends up seeing significant use, a valuable enhancement would be to promote global attributes into Ferret variables (typically strings) along the E axis.  For example, each model run may have an attribute "Institution";  the ensemble would have a string variable "Institution".  It would be useful to generate annotations, etc.
The names of the individual model datasets should similarly be promoted into a variable.
Migrated-From: http://dunkel.pmel.noaa.gov/trac/ferret/ticket/2395

This is done.  If the member sets have, say, variables SST and MYSTRING and the global attributes:  history, conventions, title, model_run, investigator, then an ensemble set looks like this,
yes? ensemble my_e = memb2.nc, memb3.nc, memb1.nc, memb4.nc

yes? sh dat
     currently SET data sets:
    5> my_e  (default)  Ensemble aggregation
 name     title                             I         J         K         L         M         N
 SST      Sea Surface Temperature          1:10      1:9       ...       1:12      1:4       ...

 Conventions
          Global Att *Conventions* in Ens  ...       ...       ...       ...       1:4       ...
 title    Global Att *title* in Ensemble   ...       ...       ...       ...       1:4       ...
 model_run
          Global Att *model_run* in Ensem  ...       ...       ...       ...       1:4       ...
 investigator
          Global Att *investigator* in En  ...       ...       ...       ...       1:4       ...

yes? list member_dset
             VARIABLE : Member dataset names in Ensemble
             DATA SET : Ensemble series of 4 datasets patterned on memb2
             FILENAME : my_e
             SUBSET   : 4 points (E (realization))
 1   / 1:"memb2"
 2   / 2:"memb3"
 3   / 3:"memb1"
 4   / 4:"memb4"

yes? list model_run
             VARIABLE : Global Att *model_run* in Ensemble
             DATA SET : Ensemble series of 4 datasets patterned on memb2
             FILENAME : my_e
             SUBSET   : 4 points (E (realization))
 1   / 1:"model run B special case"
 2   / 2:"model run C"
 3   / 3:"modelA"
 4   / 4:"modelD"

If an attribute is present only in some datasets, it's promoted as well, with blank values for any member sets which don't contain it.
yes? list investigator
             VARIABLE : Global Att *investigator* in Ensemble
             DATA SET : Ensemble series of 4 datasets patterned on memb2
             FILENAME : my_e
             SUBSET   : 4 points (E (realization))
 1   / 1:" "
 2   / 2:" "
 3   / 3:"Mickey Mouse"
 4   / 4:" "

For now, numeric global attributes are not  promoted. It would be simple enough to promote single-valued ones, but if a global attribute consists of a list of numbers, such as a color map, we'd have to create a second coordinate axis, finding the maximum length(?) Or possibly turn these into strings, say, "1,4,6,7"  and promote those?  Numeric global attributes are somewhat less common than string ones, but are used.

Adding Andrew -- It came to me that Steve wrote this ticket back when we were implementing ensembles and you might not have seen it.  I think this'll be really useful.
@AndrewWittenberg

Very useful indeed, thanks!
What is done if there is a name collision between the global attribute and an existing variable in the dataset?

If there's a name collision, currently the global attribute just isn't promoted.  It could be done with the name amended in some way.  If var is in the ensemble set, then var_g is the promoted one.  I'll get back to that. It'd look like this,
yes? sh dat
     currently SET data sets:
    5> my_e  (default)  Ensemble aggregation
 name     title                             I         J         K         L         M         N
 SST      Sea Surface Temperature          1:10      1:9       ...       1:12      1:4       ...

I'm working on doing numeric attributes.  I'm thinking that single-valued ones are promoted as a numeric variable, so we can get at things like ID numbers easily.  And multiple-valued global attributes would become a string.  That's not the greatest, but we'd at least have access to them.  The complication is in defining a grid of ensemble-member vs attribute-length, when the lengths might differ.  It just seems not worth the work to get that figured out, though it should be doable if there's a demand for it.

I've finished this:
Numeric attributes are promoted. If they're single-valued, they become a numeric variable on the E axis. If they're multi-valued, they're written into strings and returned as a list on the E axis.

yes? ensemble memb1.nc, memb2.nc, memb3.nc, memb4.nc

yes? sh dat
     currently SET data sets:
    5> ENSEMBLE  (default)  Ensemble aggregation
 name     title                             I         J         K         L         M         N
 SST      sst_IN                           1:10      1:9       ...       1:12      1:4       ...
 MYSTRING string var                       1:1       ...       ...       ...       1:4       ...
 ------------------------------
 MEMBER_DSET
          Member dataset names in Ensembl  ...       ...       ...       ...       1:4       ...
 HISTORY  Global Att *history* in Ensembl  ...       ...       ...       ...       1:4       ...
 CONVENTIONS
          Global Att *Conventions* in Ens  ...       ...       ...       ...       1:4       ...
 INVESTIGATOR
          Global Att *investigator* in En  ...       ...       ...       ...       1:4       ...
 MODEL_RUN
          Global Att *model_run* in Ensem  ...       ...       ...       ...       1:4       ...
 NUMBER   Global Att *number* in Ensemble  ...       ...       ...       ...       1:4       ...
 TITLE    Global Att *title* in Ensemble   ...       ...       ...       ...       1:4       ...
 NUMLIST  Global Att *numlist* in Ensembl  ...       ...       ...       ...       1:4       ...
 SST_G_   Global Att *sst* in Ensemble     ...       ...       ...       ...       1:4       ...

yes? list number
             VARIABLE : Global Att *number* in Ensemble
             DATA SET : Ensemble series of 4 datasets patterned on memb1
             FILENAME : ENSEMBLE
             SUBSET   : 4 points (E (realization))
 1   / 1:  1.000
 2   / 2:  2.000
 3   / 3:   ....
 4   / 4:  4.000

yes? list numlist
             VARIABLE : Global Att *numlist* in Ensemble
             DATA SET : Ensemble series of 4 datasets patterned on memb1
             FILENAME : ENSEMBLE
             SUBSET   : 4 points (E (realization))
 1   / 1:""
 2   / 2:"2"
 3   / 3:"3,2,1"
 4   / 4:"4,3,2,1"

yes? list sst_g_
             VARIABLE : Global Att *sst* in Ensemble
             DATA SET : Ensemble series of 4 datasets patterned on memb1
             FILENAME : ENSEMBLE
             SUBSET   : 4 points (E (realization))
 1   / 1:"A global att matching a file variable"
 2   / 2:"A global att matching a file variable"
 3   / 3:"A global att matching a file variable"
 4   / 4:"A global att matching a file variable"

If there's a global attribute named "sst_g_" in there as well, we're in a pickle.  The code will write a note about this and just refuse to promote the global att "sst", keeping the one named "sst_g_"
Not worth doing more as this would be a really rare case.


[Feature] Update typeface off page title and logo

Feature Description

Replace the default template page title and logo with our own
Reason for Change
To move away from the default template and customise it into our own.
Where are the changes needed?
It should be in the index header
Code Snippets
No response
Anything Else?
No response

Please do!

Completed by PR #40


Regenerate region tiles from disposed textures

Regions were caching tile instances which may refer to textures that
may already have been disposed. Now this is detected when tile()
is called and a new tile is created from the new texture.

Master override all foles

Master dealete all files

Master delete all files.

Master restore time zone and bitmap. For<EMAIL_ADDRESS>

Master deleat all time zone and not maps
On Sun, Aug 14, 2022, 4:07 PM Ladonna @.***> wrote:

Master restore time zone and bitmap. For
<EMAIL_ADDRESS>—
Reply to this email directly, view it on GitHub
https://github.com/playn/playn/pull/94#issuecomment-1214448985, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AXHYQESDBD65XI662ITRXGTVZFN23ANCNFSM5XRBNUDA
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

Master delete all time zones and bit maps for my spouse .tony.johns.hillbilly.tj38#gmail.com


Use Pliny's Metrics API

Currently, the sidekiq logger sends metrics to Pliny.log in the l2met style. Now that Pliny has it's own Metrics module with pluggable backends, it makes sense to reuse the user's configuration there.
Checklist:

[x] Update to a pliny version with Pliny::Metrics
[x] Use Pliny::Metrics to track job and queue counts
[x] Remove the metric_prefix option and initializer (this is already handled in Pliny::Metrics)
[x] Update changelog
[x] Bump minor version

👍


Union types unexpected behavior

TypeScript Version:  4.0.5

Search Terms:
array of union types
Code
type A = {a: number; b?: number;}
type B = {c: number; d: number;}
type C = A | B;

const c: Array<C> = [
  {a: 5, c: 6},
];

Expected behavior:
Type '{ a: number; c: number; }' is not assignable to type 'C'. Property 'd' is missing in type '{ a: number; c: number; }' but required in type 'B'.
Actual behavior:
No errors are shown. Making b non optional property of type A gives expected error
Playground Link: https://www.typescriptlang.org/play?#code/C4TwDgpgBAglC8UDeBDAXFAdgVwLYCMIAnAbinwH4McDiSBfAKFEigCEFkBjavQ0qABNetUkxbQAwpzgAfdiUaMuAe0wBnYFB6wiRFCAA8kgHycA2oyjJ0UAKwAabRgBs9B4wC6JIA
Related Issues:

Duplicate of #20863.


Add function declaration for send()

Adding the declaration will fix this build error in PlatformIO...
src/main.cpp: In function 'void setup()':
src/main.cpp:91:2: error: 'send' was not declared in this scope

Thanks :-)

Thank you for your contribution. We are (still) reworking all examples and will include your suggestion. It might be the same for other examples as well. All examples are tested on Arduino IDE, but I am aware of the differences when using PlatformIO.

Thanks, looking forward to the reworked examples :-)
BTW I'm happy with the simple example code for LoRaP2P_TX and LoRaP2P_RX, it's highly consistent with the example code in Apache Mynewt OS (and it's good for portability)...
https://github.com/apache/mynewt-core/blob/master/apps/loraping/src/main.c

Not surprised that it matches with other LoRa P2P examples. Most of these examples are based on the original Semtech examples.


ColoredManga Broken❗❗

Source information
Coloredmanga 1.4.37
Source language
English
Steps to reproduce
Download and open extension...... it says no results found
Expected behavior
Show manga titles
Actual behavior
Displays no results found
Mihon/Tachiyomi version
Aniyomi preview r7714
Android version
Android 14
Other details
The site was down for a while it recently came back but seems to have some problems
Acknowledgements

[X] I have searched the existing issues and this is a new ticket, NOT a duplicate or related to another open or closed issue.
[X] I have written a short but informative title.
[X] I have updated the app to version 0.15.3.
[X] I have updated all installed extensions.
[X] I have tried the troubleshooting guide.
[X] If this is an issue with the app itself, I should be opening an issue in the app repository.
[X] I will fill out all of the requested information in this form.

Extension works, you are not using our repo version


Zoom resets to 'page fit' when clicking TOC

Attach (recommended) or Link to PDF file here: https://download.clojure.org/papers/clojure-hopl-iv-final.pdf
Configuration:

Web browser and its version: Firefox 77.0.1
Operating system and its version: Linux Mint
PDF.js version: Bult-in (I think)
Is a browser extension: No

Steps to reproduce the problem:

Load any PDF. Adjust zoom to a custom level, say 160%.
Click any link on the table of contents.
Zoom resets to 'page fit'.

What is the expected behavior? (add screenshot)
Different zoom level to what's loaded by default is required on some pages. Zoom level set by user should be respected and preserved when jumping from a TOC link. Otherwise, it'd be a pain to repeatedly adjust the zoom level when jumping around the document.

This behaviour is specified by the PDF document itself, since the destinations explicitly states that the "page-fit" zoom level should be used.
Duplicate of issues such as #5064 and #11606; note that PR #11608 added an option to disable this behaviour (in Firefox, search for "pdfjs.ignoreDestinationZoom" in about:config).

I see. I tried a couple of other PDFs, which had the same behaviour. That made me think it's the viewer that's doing this.
The option works for me. Thanks.


Tiny typo

Current coverage is 72.29%

Merging #280 into master will decrease coverage by -0.05% as of 1b964e7

@@            master    #280   diff @@
======================================
  Files           28      28
  Stmts         4111    4111
  Branches         0       0
  Methods          0       0
======================================
- Hit           2974    2972     -2
  Partial          0       0
- Missed        1137    1139     +2

Review entire Coverage Diff as of 1b964e7

Powered by Codecov. Updated on successful CI builds.


Fix multiple selection with keys (shift/ctrl) in ListBox

What does the pull request do?

Fixes multiple selection with keys (shift/ctrl) in ListBox
What is the current behavior?

Multiple selection is not possible with keys only
What is the updated/expected behavior with this PR?

Fixes multiple selection with keys (shift/ctrl) in ListBox
How was the solution implemented (if it's not obvious)?

passed shift/ctrls states to focus
Checklist

[x] Added unit tests (if possible)?
[ ] Added XML documentation to any related classes?
[ ] Consider submitting a PR to https://github.com/AvaloniaUI/Avaloniaui.net with user documentation

Breaking changes

Fixed issues

fixes #4306

Thanks @donandren - sorry for the delay, was on vacation 🍹


Invalid input in Description

I get the following error when adding to the meta description ...
Validation failed: Invalid input in Description
Not sure what's happening, but it looks like there might be some kind of limit on the number of characters in the Meta Descriptions? If I cut back some on the text, it will save ok.

I think you intended this to be in the admin plugin issue tracker?  This is not a grav issue per say.
There is a limit on meta descriptions that recommend the size between 150 and 160 characters: https://moz.com/learn/seo/meta-description
Currently Grav limits the meta size to 155 characters

Yes, I posted this in the wrong place.
I figured their was a limit. The issue I have is that when I hit save it generates this error and wipes-out everything I entered in all the fields under the Options tab. A character count-down would be really nice to have here. THX!


Global Filter Parameter

I find the Global Filter is only support the boolen parameter but other type parameter.
Like this:
QueryFilterManager.Filter(“G_TenantFilter”, (entity, tenantId) => entity.TenantId == tenantId );
I don't find that way, this wonderful plus has supported that or no?
In this case, I will defined global filter in the constructor of DbContext, then use it in anywhere.I don't like to defined it more than once. I can find this filter and give it parameter by filter name.

Hello @sessionliang ,
Your scenario is asking to have a different tenantId by context. So you need to change the filter at context level (preferably in the constructor like you said).
public MyContextConstructor()
{
	this.Filter<IMustHaveTenant>("G_TenantFilter",
	     entity => entity.Where(x => x.TenantId  == tenantId))
}

I don't think it's possible to implement it globally since the tenantId could change from a user to another (tenantId).
Let me know if that answer correctly to your question.
Best Regards,
Jonathan

Hello Jonathan ,
Thank you for your answer so quickly.
Defined like this:
public MyContextConstructor()
{
this.Filter("G_TenantFilter",
(entity, tenantId) => entity.Where(x => x.TenantId  == tenantId ), 0);
}
This filter paramter is not Func<IQueryable, IQueryable> but Expression< Func<IQueryable, int , Func<IQueryable,IQueryable>>>. Translate the Expression to the Func in the end.
Use like this:
QueryFilterManager.FilterParameter("G_TenantFilter", "tenantId", 2){
//other code...
}
That is a advice only.
Finally, i find another plus that called EntityFramework.DynamicFilters. It implement that but a limit: use in the EntityFramework Code First. I use both.
Thank you again. You plus resolve many my problem, like batch action. : )


Support for elasticsearch _bulk/index api

Hi,
Can you tell me if there is a way to call the elasticsearch /_bulk/{indexname} api using NEST?
https://www.elastic.co/guide/en/elasticsearch/guide/current/bulk.html#_don_8217_t_repeat_yourself
I am able to find support for POST /_bulk:
Eg:-
var descriptor = new BulkDescriptor();
foreach (var auditEntity in auditEntities)
{
descriptor.Index(
op => op
.Index(indexPatternName)
.Document(auditEntity));
}
var result = this.client.Bulk(descriptor);
Does NEST also support the following two:-
POST
•	/{index}/_bulk
•	/{index}/{type}/_bulk
Thanks,
Vineet

There is you can call .FixedPath() to fixate the the index and/or type for the bulk operation.

Thank you! This worked


Stabilise key dependencies

Fixes https://github.com/get10101/10101/issues/766 (they pass locally :D).
Fixes https://github.com/get10101/10101/issues/768.
Fixes https://github.com/get10101/10101/issues/664.
Fixes https://github.com/get10101/10101/issues/663 (we don't run into it and the app gets their money back [^1]).
The main motivation is to stay on top of the latest changes to rust-lightning and rust-dlc, whilst also definitively removing some of the things that we temporarily added during our latest bug hunt.
Some patches were also removed which might cause some controversy:

https://github.com/get10101/rust-dlc/commit/ce78c25.
https://github.com/get10101/rust-dlc/commit/cf3d1eb.
https://github.com/get10101/rust-dlc/commit/304e85d.

In general reviewers are encouraged to take a look at the differences between these branches:

For rust-dlc we are now using https://github.com/get10101/rust-dlc/commit/8fa3692 [^2] instead of https://github.com/get10101/rust-dlc/commit/2322288.

For rust-lightning we are now using https://github.com/get10101/rust-lightning/commit/c65cb1c5 [^3] instead of https://github.com/get10101/rust-lightning/commit/939ebb43.

The differences are not so obvious because we diverged quite a bit. We still want to keep certain commits that haven't been upstreamed yet.
Other notable changes

Adapting to the new API to force-close the LN-DLC channel provided by rust-dlc. As such, we've modified some code around that and updated the force_close_ln_dlc_channel test accordingly.

Updating LnDlcNodeSettings to include a couple more intervals so that we can effectively disable certain tasks which can blow up when we mine lots of blocks in certain tests, such as force_close_ln_dlc_channel.

Ensuring that we drop the settings RwLock guard when sleeping. We were not doing so, so it was basically impossible to update the LnDlcNodeSettings in the tests.

Introducing wait_until_dlc_channel_state to replace a lot of eager sleeps which led to slower and flakier tests.

[^1]: The test can still be improved by making sure that the oracle unlocks a CET that pays to both parties. Atm we use an event whose attestation results in the coordinator getting the whole DLC output. This means that we are only verifying that the part of the LN channel that belongs to the app is returned.
[^2]: This branch is temporarily named feature/ln-dlc-channels-114-tibo.
[^3]: This branch is temporarily named split-tx-experiment-114-tibo.

https://github.com/get10101/rust-dlc/commit/cf3d1eb.
https://github.com/get10101/rust-dlc/commit/304e85d.

I am not against reverting these changes, but what does that mean for our existing production coordinator? Do we need to clear the dlc db for the mainnet coordiantor to work with these changes?

Fixes https://github.com/get10101/10101/issues/766 (they pass locally :D).

Since the tests are not passing in the CI, I guess your changes are not fixing but only improving #766?

In general reviewers are encouraged to take a look at the differences between these branches:

For rust-dlc we are now using get10101/rust-dlc@8fa3692 2 instead of get10101/rust-dlc@2322288.
For rust-lightning we are now using get10101/rust-lightning@c65cb1c5 3 instead of get10101/rust-lightning@939ebb43.

The referenced change seem insignificant, unless the real changes are hiding in the changed dependency to our get10101 fork? Am I missing something?

The linked patches are just heads of branches. The branches themselves are referenced in the footnotes and also if you follow the links:

Fixes #766 (they pass locally :D).

Since the tests are not passing in the CI, I guess your changes are not fixing but only improving #766?

Yeah, at the moment we appear to still have at least one other flaky test. I will try to fix it tomorrow.

@luckysori https://github.com/get10101/rust-lightning/commit/6b059a7222997015141fb9aa44788f4a43732957#commitcomment-118021986

I've merged #772 and #773 into this PR after getting approvals there.

Fixes #766 (they pass locally :D).

Since the tests are not passing in the CI, I guess your changes are not fixing but only improving #766?

Yeah, at the moment we appear to still have at least one other flaky test. I will try to fix it tomorrow.

@holzeis: I've opened #774 and #775 to capture the two tests that are still flaky. The one related to the JIT payment is way more likely to happen as we could have probably guessed. I think we are safe to close #766 with this PR since it was too general anyway and it has fixed other tests that were intermittently failing because we used static sleeps.

get10101/rust-dlc@cf3d1eb.
get10101/rust-dlc@304e85d.

I am not against reverting these changes, but what does that mean for our existing production coordinator? Do we need to clear the dlc db for the mainnet coordiantor to work with these changes?

I think before upgrading we should force-close all the LN-DLC channels that we have. And then purge the DLC database.

I've introduced https://github.com/p2pderivatives/rust-dlc/commit/3b277dcd7d573eac615fe2cecf0325c45413bcb9 which should allow us to update mainnet without closing the problematic positions.


[BUG] Exception: "IndexError('list index out of range')"

Describe the bug
I started getting this error when I upgraded to nvtabular 23.08:
2023-08-30 14:53:26,012 - distributed.worker - WARNING - Compute Failed Key:       ('transform-6435a10df7c6acb222987cc5dda4ed1d', 0) Function:  subgraph_callable-98f2413b-b494-431b-a9e6-3f229f0d args:      ({'piece': ('PWD/basedir/data/train_pre_full.parquet/part.0.parquet', [0, 1, 2], [])}) kwargs:    {} Exception: "IndexError('list index out of range')"
IndexError                                Traceback (most recent call last)
Cell In[27], line 1
----> 1 proc.fit(full_dataset)

File /usr/local/lib/python3.10/dist-packages/nvtabular/workflow/workflow.py:213, in Workflow.fit(self, dataset)
    199 def fit(self, dataset: Dataset) -> "Workflow":
    200     """Calculates statistics for this workflow on the input dataset
    201
    202     Parameters
   (...)
    211         This Workflow with statistics calculated on it
    212     """
--> 213     self.executor.fit(dataset, self.graph)
    214     return self

File /usr/local/lib/python3.10/dist-packages/merlin/dag/executors.py:489, in DaskExecutor.fit(self, dataset, graph, refit)
    473         dependencies.difference_update(current_phase)
    475 # This captures the output dtypes of operators like LambdaOp where
    476 # the dtype can't be determined without running the transform
    477 # self._transform_impl(dataset, capture_dtypes=True).sample_dtypes()
    478 #
    479 Dataset(
    480     self.transform(
    481         dataset.to_ddf(),
    482         graph.output_node,
    483         graph.output_dtypes,
    484         capture_dtypes=True,
    485     ),
    486     cpu=dataset.cpu,
    487     base_dataset=dataset.base_dataset,
    488     schema=graph.output_schema,
--> 489 ).sample_dtypes()
    490 graph.construct_schema(dataset.schema, preserve_dtypes=True)
    492 return graph

File /usr/local/lib/python3.10/dist-packages/merlin/io/dataset.py:1262, in Dataset.sample_dtypes(self, n, annotate_lists)
   1255 """Return the real dtypes of the Dataset
   1256
   1257 Use cached metadata if this operation was
   1258 already performed. Otherwise, call down to the
   1259 underlying engine for sampling logic.
   1260 """
   1261 if self._real_meta.get(n, None) is None:
-> 1262     _real_meta = self.engine.sample_data(n=n)
   1263     if self.dtypes:
   1264         _real_meta = _set_dtypes(_real_meta, self.dtypes)

File /usr/local/lib/python3.10/dist-packages/merlin/io/dataset_engine.py:71, in DatasetEngine.sample_data(self, n)
     69 _ddf = self.to_ddf()
     70 for partition_index in range(_ddf.npartitions):
---> 71     _head = _ddf.partitions[partition_index].head(n)
     72     if len(_head):
     73         return _head

File /usr/local/lib/python3.10/dist-packages/dask/dataframe/core.py:1268, in _Frame.head(self, n, npartitions, compute)
   1266 # No need to warn if we're already looking at all partitions
   1267 safe = npartitions != self.npartitions
-> 1268 return self._head(n=n, npartitions=npartitions, compute=compute, safe=safe)

File /usr/local/lib/python3.10/dist-packages/dask/dataframe/core.py:1302, in _Frame._head(self, n, npartitions, compute, safe)
   1297 result = new_dd_object(
   1298     graph, name, self._meta, [self.divisions[0], self.divisions[npartitions]]
   1299 )
   1301 if compute:
-> 1302     result = result.compute()
   1303 return result

File /usr/local/lib/python3.10/dist-packages/dask/base.py:314, in DaskMethodsMixin.compute(self, **kwargs)
    290 def compute(self, **kwargs):
    291     """Compute this dask collection
    292
    293     This turns a lazy Dask collection into its in-memory equivalent.
   (...)
    312     dask.base.compute
    313     """
--> 314     (result,) = compute(self, traverse=False, **kwargs)
    315     return result

File /usr/local/lib/python3.10/dist-packages/dask/base.py:599, in compute(traverse, optimize_graph, scheduler, get, *args, **kwargs)
    596     keys.append(x.__dask_keys__())
    597     postcomputes.append(x.__dask_postcompute__())
--> 599 results = schedule(dsk, keys, **kwargs)
    600 return repack([f(r, *a) for r, (f, a) in zip(results, postcomputes)])

File /usr/local/lib/python3.10/dist-packages/distributed/client.py:3137, in Client.get(self, dsk, keys, workers, allow_other_workers, resources, sync, asynchronous, direct, retries, priority, fifo_timeout, actors, **kwargs)
   3135         should_rejoin = False
   3136 try:
-> 3137     results = self.gather(packed, asynchronous=asynchronous, direct=direct)
   3138 finally:
   3139     for f in futures.values():

File /usr/local/lib/python3.10/dist-packages/distributed/client.py:2306, in Client.gather(self, futures, errors, direct, asynchronous)
   2304 else:
   2305     local_worker = None
-> 2306 return self.sync(
   2307     self._gather,
   2308     futures,
   2309     errors=errors,
   2310     direct=direct,
   2311     local_worker=local_worker,
   2312     asynchronous=asynchronous,
   2313 )

File /usr/local/lib/python3.10/dist-packages/distributed/utils.py:338, in SyncMethodMixin.sync(self, func, asynchronous, callback_timeout, *args, **kwargs)
    336     return future
    337 else:
--> 338     return sync(
    339         self.loop, func, *args, callback_timeout=callback_timeout, **kwargs
    340     )

File /usr/local/lib/python3.10/dist-packages/distributed/utils.py:405, in sync(loop, func, callback_timeout, *args, **kwargs)
    403 if error:
    404     typ, exc, tb = error
--> 405     raise exc.with_traceback(tb)
    406 else:
    407     return result

File /usr/local/lib/python3.10/dist-packages/distributed/utils.py:378, in sync.<locals>.f()
    376         future = asyncio.wait_for(future, callback_timeout)
    377     future = asyncio.ensure_future(future)
--> 378     result = yield future
    379 except Exception:
    380     error = sys.exc_info()

File /usr/local/lib/python3.10/dist-packages/tornado/gen.py:767, in Runner.run(self)
    765 try:
    766     try:
--> 767         value = future.result()
    768     except Exception as e:
    769         # Save the exception for later. It's important that
    770         # gen.throw() not be called inside this try/except block
    771         # because that makes sys.exc_info behave unexpectedly.
    772         exc: Optional[Exception] = e

File /usr/local/lib/python3.10/dist-packages/distributed/client.py:2169, in Client._gather(self, futures, errors, direct, local_worker)
   2167         exc = CancelledError(key)
   2168     else:
-> 2169         raise exception.with_traceback(traceback)
   2170     raise exc
   2171 if errors == "skip":

File /usr/local/lib/python3.10/dist-packages/dask/optimization.py:990, in __call__()
    988 if not len(args) == len(self.inkeys):
    989     raise ValueError("Expected %d args, got %d" % (len(self.inkeys), len(args)))
--> 990 return core.get(self.dsk, self.outkey, dict(zip(self.inkeys, args)))

File /usr/local/lib/python3.10/dist-packages/dask/core.py:149, in get()
    147 for key in toposort(dsk):
    148     task = dsk[key]
--> 149     result = _execute_task(task, cache)
    150     cache[key] = result
    151 result = _execute_task(out, cache)

File /usr/local/lib/python3.10/dist-packages/dask/core.py:119, in _execute_task()
    115     func, args = arg[0], arg[1:]
    116     # Note: Don't assign the subtask results to a variable. numpy detects
    117     # temporaries by their reference count and can execute certain
    118     # operations in-place.
--> 119     return func(*(_execute_task(a, cache) for a in args))
    120 elif not ishashable(arg):
    121     return arg

File /usr/local/lib/python3.10/dist-packages/dask/utils.py:72, in apply()
     41 """Apply a function given its positional and keyword arguments.
     42
     43 Equivalent to ``func(*args, **kwargs)``
   (...)
     69 >>> dsk = {'task-name': task}  # adds the task to a low level Dask task graph
     70 """
     71 if kwargs:
---> 72     return func(*args, **kwargs)
     73 else:
     74     return func(*args)

File /usr/local/lib/python3.10/dist-packages/merlin/dag/executors.py:102, in transform()
    100 output_data = None
    101 for node in nodes:
--> 102     transformed_data = self._execute_node(node, transformable, capture_dtypes, strict)
    103     output_data = self._combine_node_outputs(node, transformed_data, output_data)
    105 # If there are any additional columns that weren't produced by one of the supplied nodes
    106 # we grab them directly from the supplied input data. Normally this would happen on a
    107 # per-node basis, but offers a safety net for the multi-node case

File /usr/local/lib/python3.10/dist-packages/merlin/dag/executors.py:116, in _execute_node()
    115 def _execute_node(self, node, transformable, capture_dtypes=False, strict=False):
--> 116     upstream_outputs = self._run_upstream_transforms(
    117         node, transformable, capture_dtypes, strict
    118     )
    119     upstream_columns = self._append_addl_root_columns(node, transformable, upstream_outputs)
    120     formatted_columns = self._standardize_formats(node, upstream_columns)

File /usr/local/lib/python3.10/dist-packages/merlin/dag/executors.py:130, in _run_upstream_transforms()
    127 upstream_outputs = []
    129 for upstream_node in node.parents_with_dependencies:
--> 130     node_output = self._execute_node(
    131         upstream_node,
    132         transformable,
    133         capture_dtypes=capture_dtypes,
    134         strict=strict,
    135     )
    136     if node_output is not None and len(node_output) > 0:
    137         upstream_outputs.append(node_output)

File /usr/local/lib/python3.10/dist-packages/merlin/dag/executors.py:120, in _execute_node()
    116 upstream_outputs = self._run_upstream_transforms(
    117     node, transformable, capture_dtypes, strict
    118 )
    119 upstream_columns = self._append_addl_root_columns(node, transformable, upstream_outputs)
--> 120 formatted_columns = self._standardize_formats(node, upstream_columns)
    121 transform_input = self._merge_upstream_columns(formatted_columns)
    122 transform_output = self._run_node_transform(node, transform_input, capture_dtypes, strict)

File /usr/local/lib/python3.10/dist-packages/merlin/dag/executors.py:168, in _standardize_formats()
    165     supported_formats = op.supported_formats
    167 # Convert the first thing into a supported format
--> 168 tensors = _convert_format(node_input_data[0], supported_formats)
    169 target_format = _data_format(tensors)
    171 # Convert the whole list into the same format

IndexError: list index out of range

Steps/Code to reproduce bug
Trying to fit an nvtabular workflow on a full dataset parquet file with 20+ partitions using LocalCUDACluster and writing the parquet file using dask_cudf before loading its as an not dataset for fitting the workflow
proc.fit(full_dataset)
Expected behavior
It should successfully fit as it used to when I was running with nvtabular 23.06- when I run the same above using multi-gpu instance, the error does not get thrown
Environment details (please complete the following information):
Merlin version: nvcr.io/nvidia/merlin/merlin-tensorflow:23.08
Platform: ec2 g5 instance linux (8xlarge)  large single GPU instance
Python version: 3.10.12
PyTorch version (GPU?):
Tensorflow version (GPU?): 2.12.0+nv23.6
docker run --runtime=nvidia --rm -it -p 8888:8888 -p 8797:8787 -p 8796:8786 --ipc=host --cap-add SYS_NICE nvcr.io/nvidia/merlin/merlin-tensorflow:latest /bin/bash
Additional context
Add any other context about the problem here.

@vs385 where is this error coming from? what's your NVT pipeline?
can you please use merlin-tensorflow:23.06 image and test again?

@rnyak this error is coming from fitting the workflow on my nvttabular dataset (which I load from a parquet file that was saved using dask_cudf - I follow the example notebook from here and adapted the column names and others to fit my own dataset.
IndexError: list index out of range happens generally pipeline cannot access to the data files, or your data path does not have any file.
Yes I know, and I did also check if the files were in the path and they were all there (there were around 24 parquet files partitions in the directory), which is why I couldn't understand where this error was coming from.
can you please use merlin-tensorflow:23.06 image and test again?
I tried with 23.06 and it works without any error- it's only with 23.08 that I'm getting this error, so I had to downgrade back after that.

closing this ticket since the user can make it work with 23.06 image.


Q14siX.de.VokabularWAV-Maker version <IP_ADDRESS>

[x] Have you signed the Contributor License Agreement?
[x] Have you checked that there aren't other open pull requests for the same manifest update/change?
[x] This PR only modifies one (1) manifest
[x] Have you validated your manifest locally with winget validate --manifest <path>?

[x] Does your manifest conform to the 1.4 schema?

Note: <path> is the name of the directory containing the manifest you're submitting.

Microsoft Reviewers: Open in CodeFlow

@microsoft-github-policy-service agree

@stephengile It look like this validation has been validation-merge-conflict due to another pipelines.

Duplicate of #107431


Spelling mistake in a image in README.md

The image in README.md misspells PREPARATION as PREPERATION.
The link of the image is https://github.com/NAU-ACM/ACM-ICPC-Preparation/blob/master/acm_icpc_prep.jpg

Thanks for pointing out, I will fix it as soon as I can.


Presto writing to S3 with Java11, fails with java.lang.ClassNotFoundException: javax.activation.DataSource. As java 11 does not have javax.activation as part of sdk.tools anymore.

Adding this dependency would solve this issue.
<dependency>
      <groupId>com.sun.activation</groupId>
      <artifactId>javax.activation</artifactId>
      <version>1.2.0</version>
</dependency>

I believe this will be fixed by this PR, which is in the next release: https://github.com/prestosql/presto/pull/707

I'm not able to reproduce this error. Can you provide the full stack trace? You can find this from the web UI, or by running the CLI with --debug.

Also, what version of Presto are you running?

@SinghAsDev Can you still reproduce this? If so, please provide the stack trace

u there @SinghAsDev ?


Consider adding a context argument to depsdev.MakeVersionRequests

Today, the depsdev.MakeVersionRequests function has an internal context.TODO that it uses for network requests to https://deps.dev's gRPC API.
https://github.com/google/osv-scanner/blob/96b1e4ec731500039e817a10909695ed778a0076/pkg/depsdev/license.go#L52-L53
https://github.com/google/osv-scanner/blob/96b1e4ec731500039e817a10909695ed778a0076/pkg/depsdev/license.go#L75
If possible, it would nice for the function to take a context as the first argument. This would enable this package to be re-used easily (and with confidence) for my own use cases, where I want to control the context, without using the deps.dev/api/v3alpha package directly.
If we're worried about breaking changes, it might make more sense to provide a depsdev.MakeVersionRequestsWithContext function option (similar to http.NewRequestWithContext) which depsdev.MakeVersionRequests could use internally.

🤔 Thinking about this some more, it might also make sense to use errgroup.WithContext when constructing the errgroup.Group used to make the queries:
https://github.com/google/osv-scanner/blob/96b1e4ec731500039e817a10909695ed778a0076/pkg/depsdev/license.go#L66-L67

Looks like @tuananh beat me to it! Thank you! 😄


drawing.rect() caused an error

as a quick fix: remove params width and border_radius.
Though those should be correct in the first place.
system: python 3.8, pygame 1.9.6

pretty cool project :)

It works fine for me
python 3.9.7 and pygame 2, you might have multiple versions of python installed
make sure you are using the right one by doing
python --version
try not to use an ide to run it as ide's sometimes mess things up


[BUG] Cursor position is absolute when indenting/dedenting list items

When a list item is indented, the cursor should stay in the same position relative to the text, instead, only the text gets indented and the cursor stays in the same spot
Steps to reproduce the behavior:

Create a note with at least 1 indented list item
Place the cursor in the middle of the line
Press Tab

Expected behavior
The text gets indented, the cursor stays in the same spot relative to the text
Actual behavior

Desktop:

OS: Windows
Obsidian Version: 0.12.2

@ivan-lednev Thank you for your contribution!
Should be fixed in https://github.com/vslinko/obsidian-outliner/releases/tag/1.1.7


Floating window doesn't carry over when changing work spaces

Hey!
Thanks for this awesome extension :D
I've been using it for a few months now and just realized today that the floating window does not carry over when I change work spaces anymore.
I remember previously swapping work spaces would take the floating window with it.
I'm using a linux desktop.
Thanks!
David :)

Is your issue similar to https://bugs.chromium.org/p/chromium/issues/detail?id=913630?
If so, it should be fixed in Chrome 74 according to https://chromiumdash.appspot.com/commit/a794e420a57b20359b1ef6cbf76e6d74ef352153

@beaufortfrancois I don't think that's related.
I have the same issue on macOS, honestly suprised that this isn't already working because it makes the picture in picture pretty much useless when using full screen apps or multiple desktops. Safari / macOS keeps the PNP window on the display no matter which desktop you transition to.

I've filed https://bugs.chromium.org/p/chromium/issues/detail?id=954470 to track this issue. Thank you @mrapogee for reporting this issue! I'll have a look.


Bug: Text subscripts have inconsistent baselines for each character in word

Issue Summary
When using a roman text string as a subscript, for example, \[ H_{\text{vol}}(s) = \frac{V_{\text{out}}(s)}{V_{\text{in}}(s)} \], letters in the text subscripts have slightly different vertical positions, i.e. a 'ragged' baseline. The precise appearance varies depending on the browser's zoom level but never looks 'right'. Both CHTML and SVG rendering exhibit this issue; I've tried various LaTeX and TeX idioms to specify 'subscript word using roman text' but the results are always the same; I've tried three browsers, Firefox and Safari on macOS and Safari on iPadOS and the rendering is not correct on any of them but the effect is slightly less pronounced with Firefox for this example.
Steps to Reproduce

Live example is the first equation in section 8.1 of https://www.macspice.com/tut/worksheet-08.html

This is a bug because a text subscript should should have a single baseline used by all the letters in the text
Technical details

MathJax Version: 3.2.2
Client OS: macOS
Browser: Safari Version 18.1 (206<IP_ADDRESS>.10)
Browser: Firefox 132.0.2 (aarch64)

Thanks
As a user who can remember when one's only option was to put gif screenshots of equations into webpages, I'd like to thank everybody involved in developing and supporting Mathjax, it's a superb solution to the problem of equations-in-webpages.

This is a duplicate of #3004 and several earlier issues, and is due to a bug in WebKit (the display engine that underlies Safari).  Version 4 (now out in beta release) includes changes to fix the problem in the situation you are seeing, and reduces it in other situations, though it can't eliminate it entirely.
My comment there gives several potential workarounds for v3 if you are not interested in moving to v4 yet.

Many thanks for the prompt reply. I've switched to using v4.0.0-beta.3 from the jsdeliver cdn and the issue does indeed seem to have gone away.


Test vercel deployment on your fork and bring results

please fork this repo and try to deploy it with Vercel.
Show the output
The pr should include necessary changes to have the project deployed to Vercelk if any

I got this.

https://free-web3-resources.vercel.app/#/

Thank you so much, closing this issue


how to retrain model

give me reply

@Arunxavierpro
You can pass the desired weight path using --weights flag.
e.g.
python train.py --weights weights.pth <rest of the command>
You can also pass --resume-training (boolean flag) if you want to continue with the desired weight's optimizer state dictionary.
python train.py --weights weights.pth --resume-training <rest of the command>

Please close the issue from your side if this solves your query.

@Arunxavierpro You can pass the desired weight path using --weights flag. e.g. python train.py --weights weights.pth <rest of the command> You can also pass --resume-training (boolean flag) if you want to continue with the desired weight's optimizer state dictionary. python train.py --weights weights.pth --resume-training <rest of the command>

rest command  list out

It depends on your commands also. But in general, it should be:
python train.py --config data_configs/smoke.yaml --epochs 100 --model fasterrcnn_resnet50_fpn --project-name smoke_training --batch-size 16

@sovit-123  this output only showing
Loading optimizer state dictionary...
wandb: Waiting for W&B process to finish... (success).
wandb: You can sync this run to the cloud by running:
wandb: wandb sync /content/fastercnn-pytorch-training-pipeline/wandb/offline-run-20221221_103521-1d3l1e1l
wandb: Find logs at: ./wandb/offline-run-20221221_103521-1d3l1e1l/l

@Arunxavierpro
With the above command you need to pass the weights file.
python train.py --config data_configs/smoke.yaml --epochs 100 --model fasterrcnn_resnet50_fpn --project-name smoke_training --batch-size 16 --weights weights.pth --resume-training

i loaded weights.pth file correctly bro

@sovit-123 https://colab.research.google.com/drive/1XqxKuZgQpNQhlzAcquUK80xcX7Pv77e2?usp=sharing see the notebbok

@Arunxavierpro My bad. I forgot to mention. When you pass --resume-training, you need to provide more number of epochs than the previous training. It will resume from the previous training.
If you train for 10 epochs the first time, and pass 20 epochs with --resume-training, it will train for 10 more epochs.


polymetis installation problems

After I configured the prerequisites according to the installation document, there was a version conflict between the python=3.8 version and the umi environment (python=3.9) when installing polymetis. How should I solve it?

I used two different conda environments, one for polymetis and the other for the umi policy.


Use secure cookies

Lastuser needs to have SESSION_COOKIE_SECURE = True in production settings since the app is only available via HTTPS.

It has been set. Cookies are now secure.


[FLINK-1293] Add support for out-of-place aggregations

This patch adds support for multiple aggregations on the same field and aggregations which change the output type, e.g., count and average.
It adds the following aggregation syntax to the Java API:
// A string key and a long value
DataSet<Tuple2<String, Long>> ds = ...

// count all the elements
DataSet<Tuple1<Long>> result = ds.aggregate(count());

//  count elements in each group
DataSet<Tuple2<String, Long>> result = ds.groupBy(0).aggregate(allKeys(), count());

// same as above but explicitly state the returned key(s)
DataSet<Tuple2<String, Long>> result = ds.groupBy(0).aggregate(key(0), count());

// only return counts, drop keys
DataSet<Tuple1<Long>> result = ds.groupBy(0).aggregate(count());

// average reuses count and sum
DataSet<Tuple4<String, Long, Long, Double>> result =
    ds.groupBy(0).aggregate(allKeys(), count(), sum(1), average(1));

Five aggregation functions are supported: min, max, sum, count and average. Notice that count does not take a field reference in the example above.
Internally, the aggregation is implemented by the following operator chain:
Input -> Map1 -> Reduce -> Map2 -> Output

Map1 constructs an intermediate tuple on which the aggregation is performed. It's main task is to copy tuple fields that are used in multiple aggregation functions and initialize fields required for the internal implementation of aggregation functions. For example, average requires a field to count the tuples.
Reduce performs the actual aggregation
Map2 computes the final result of the aggregation function, e.g., computing the average from the sum and the count, and drops the fields used in groupings that are not requested in the output.

Average is implemented to reuse an existing sum and/or count function. In the last example above, the intermediate tuple contains only 3 fields: the key, a field to compute the sum, and a field to compute the count. The field holding the average is added after the Reduce operator in the Map2 operator.
Currently, only the Java API is implemented. My Scala knowledge is fairly limited, so it would be great if somebody else could pick that up.
Also, the result type of aggregate is simply <T extends Tuple>. To support type inference at compile time, it is necessary to integrate the work by Chen (https://github.com/apache/incubator-flink/pull/194).

Hi @he-sk
Are you planning to update this PR and move the deprecated public API back to its original location?
I can also take the PR from here, if that's OK with you.

Hi @fhueske,
If you want to take over the PR I would appreciate that. My Scala knowledge is extremely limited so I would need help to implement the Scala API anyway.

Is this PR still alive?

Thanks for the ping @tonycox.
I think this PR can be closed. The functionality it adds is available in the Table API.

Ok, cool. I can go through abandoned PRs and add them to https://issues.apache.org/jira/browse/FLINK-5384. Wouldn't you mind @fhueske ?

That would be nice @tonycox :-)
Thanks a lot!


Optimizing matching of image affinity

The affinity.Match(images...) iterates all over a images slice with the ID and tags of all images for each node in the swarm cluster. With a large number of images  the execution time of this function increases affecting the performance when creating a new container. In our case, with thousands of images for each node, this function takes 4-5 seconds to return.
Our proposal changes the images slice with a map with the image ID or tag as a key and 1 as a value. If images[affinity.value] exists, the node is added to the candidates slice. After this change, currently run in production the time to select a node to create the container with affinity reduces from 10 seconds (2 nodes, 10000 images) to milliseconds.

@hdanniel cloud you please add a integration testing to track the performance issue.

The proposed changes broken the integration test because it changed the expected behavior of affinity. What the affinity.Match(images...) does is not simply matching image names, instead it's way more powerful because it supports regular expression as well as operators (e.g. !=). So I think it's not appropriate to simply replace it with map. We need a more thorough solution for improving the performance.

The proposed changes broken the integration test because it changed the expected behavior of image affinity. What the affinity.Match(images...) does is not simply matching image names, instead it's way more powerful because it supports regular expression as well as operators (e.g. !=). So I think it's not appropriate to simply replace it with map. We need a more thorough solution for improving the performance.

yeah, @jinuxstyle said right.

It's correct. The proposed changes only worked for us because we don't need to take into account regular expressions.


Remove redis from hs_docker_base

Redis is no longer used, this is a cleanup action. Remove from requirements.txt, a new release of hs_docker_base not required.

Fixed in https://github.com/hydroshare/hydroshare/pull/3114


WIP add new config for QAV250 racing quad

Needs more testing on PWM_MIN and max/min thrust parameters

Cherry picked to master.


$config['port'] somehow gets set to tcp://<IP_ADDRESS>:5672

I've encountered this very strange behavior where $config['port'] = 'tcp://<IP_ADDRESS>:5672' inside of  RabbitMQConnector->connect() (line 22). I would expect $config['port'] to equal simply 5672. (<IP_ADDRESS> is the resolved IP of my docker container). As a result of this behavior, the connection to RabbitMQ fails (new AMQPConnection($config['host'], $config['port'] ...) and I can't consume messages via the artisan command (php artisan queue:listen).
I can't figure out how $config['port'] gets transformed into a full protocol://hostname:port string. In my bootstrap/app.php, I check $app['config']["queue.connections"] right after service providers and configuration is registered, and it looks the way I expect it to. So it seems like my configuration files are correct.
I am using the library inside of Lumen, so maybe that's a difference. PHP 5.6.7. My composer.json line is: "fintech-fab/laravel-queue-rabbitmq": "5.1". Running a rabbitmq 3.5.5 server.

Show your configuration file, please

config/queue.php
<?php

return [

    /*
    |--------------------------------------------------------------------------
    | Default Queue Driver
    |--------------------------------------------------------------------------
    |
    | The Laravel queue API supports a variety of back-ends via an unified
    | API, giving you convenient access to each back-end using the same
    | syntax for each one. Here you may set the default queue driver.
    |
    | Supported: "null", "sync", "database", "beanstalkd",
    |            "sqs", "iron", "redis"
    |
    */

    'default' => env('QUEUE_DRIVER', 'rabbitmq'),

    /*
    |--------------------------------------------------------------------------
    | Queue Connections
    |--------------------------------------------------------------------------
    |
    | Here you may configure the connection information for each server that
    | is used by your application. A default configuration has been added
    | for each back-end shipped with Laravel. You are free to add more.
    |
    */

    'connections' => [

        'rabbitmq' => [
            'driver' => 'rabbitmq',
            'host' => env('RABBITMQ_HOST', 'rabbitmq'),
            'port' => env('RABBITMQ_PORT', 5672),
            'vhost' => env('RABBITMQ_VHOST', '/'),
            'login' => env('RABBITMQ_LOGIN', 'admin'),
            'password' => env('RABBITMQ_PASSWORD', 'password'),

            'queue' => env('RABBITMQ_QUEUE'), // name of the default queue,

            // create the exchange if not exists
            'exchange_declare' => env('RABBITMQ_EXCHANGE_DECLARE', true),
            // create the queue if not exists and bind to the exchange
            'queue_declare_bind' => env('RABBITMQ_QUEUE_DECLARE_BIND', true),

            'queue_params' => [
                'passive' => env('RABBITMQ_QUEUE_PASSIVE', false),
                'durable' => env('RABBITMQ_QUEUE_DURABLE', true),
                'exclusive' => env('RABBITMQ_QUEUE_EXCLUSIVE', false),
                'auto_delete' => env('RABBITMQ_QUEUE_AUTODELETE', false),
            ],

            'exchange_params' => [
                'name' => env('RABBITMQ_EXCHANGE_NAME', null),
                // more info at http://www.rabbitmq.com/tutorials/amqp-concepts.html
                'type' => env('RABBITMQ_EXCHANGE_TYPE', 'direct'),
                'passive' => env('RABBITMQ_EXCHANGE_PASSIVE', false),
                'durable' => env('RABBITMQ_EXCHANGE_DURABLE', true), // the exchange will survive server restarts
                'auto_delete' => env('RABBITMQ_EXCHANGE_AUTODELETE', false),
            ],
        ],
        'sync' => [
            'driver' => 'sync',
        ],

        'database' => [
            'driver' => 'database',
            'table' => 'jobs',
            'queue' => 'default',
            'expire' => 60,
        ],

        'beanstalkd' => [
            'driver' => 'beanstalkd',
            'host'   => 'localhost',
            'queue'  => 'default',
            'ttr'    => 60,
        ],

        'sqs' => [
            'driver' => 'sqs',
            'key'    => 'your-public-key',
            'secret' => 'your-secret-key',
            'queue'  => 'your-queue-url',
            'region' => 'us-east-1',
        ],

        'iron' => [
            'driver'  => 'iron',
            'host'    => 'mq-aws-us-east-1.iron.io',
            'token'   => 'your-token',
            'project' => 'your-project-id',
            'queue'   => 'your-queue-name',
            'encrypt' => true,
        ],

        'redis' => [
            'driver' => 'redis',
            'connection' => 'default',
            'queue'  => 'default',
            'expire' => 60,
        ],

    ],

    /*
    |--------------------------------------------------------------------------
    | Failed Queue Jobs
    |--------------------------------------------------------------------------
    |
    | These options configure the behavior of failed queue job logging so you
    | can control which database and table are used to store the jobs that
    | have failed. You may change them to any database / table you wish.
    |
    */

    'failed' => [
        'database' => 'mysql', 'table' => 'failed_jobs',
    ],

];

and .env
APP_ENV=local
APP_DEBUG=true
APP_KEY=[real-key-value]

APP_LOCALE=en
APP_FALLBACK_LOCALE=en

DB_CONNECTION=mysql
DB_HOST=db
DB_PORT=3306
DB_DATABASE=[real-db-value]
DB_USERNAME=[real-user-value]
DB_PASSWORD=[real-password-value]

DOCTRINE_PROXY_AUTOGENERATE=true

# CACHE_DRIVER=database
# SESSION_DRIVER=database
QUEUE_DRIVER=rabbitmq

RABBITMQ_HOST=rabbitmq
RABBITMQ_PORT=5672
RABBITMQ_VHOST=/
RABBITMQ_LOGIN=admin
RABBITMQ_PASSWORD=[real-password-value]
RABBITMQ_QUEUE=showbill_process_jobs

RABBITMQ_HOST=rabbitmq
are you sure it's correct?

Yes (I'm using a docker container).
My setup is working, as long as I modify the $config['port'] value used in RabbitMQConnector->connect(), like so:
        // JKM HACK somehow $config['port'] is getting turned into protocol://host:port
        $portParts = explode(':', $config['port']);
        if (isset($portParts[2])) {
            $config['port'] = $portParts[2];
        }

Did you solve the issue?

Sorry! I finally figured this one out. You were right to ignore this issue. Turns out it was caused by a quirk of my docker-compose configuration. The container was named "rabbitmq" and the docker setup was automatically injecting a bunch of variables into $_SERVER, including the ports exposed from various containers. So there was a $_SERVER['RABBITMQ_PORT'] entry set to 'tcp://<IP_ADDRESS>:5672' by the Docker setup.
Total coincidence that this is also the name of the .env key that config is checking for (getenv('RABBITMQ_PORT'], 5672)). Closing issue as "won't fix - unrelated to this project"


fix '--keep_file' option

The long line from usage was correct (--keep_file) but the separate instructions were not (showed --keep, which would produce an error, since it’d look for a file).

Thank you. Can you fix the layout? It used to be aligned and it's broken now:
  -h, --help                show this help, exit
  -v, --version             show current version, exit
      --check               Check if all dependencies are installed, exit
  -c, --connect             Show connected imgur account, exit
  -o, --open <true|false>   override 'open' config. -o implies true
  -e, --edit <true|false>   override 'edit' config. -e implies true
  -l, --login <true|false>  override 'login' config. -l implies true
  -a, --album <album_title> Create new album and upload there
  -A, --album_id <album_id> override 'album_id' config
  -k, --keep <true|false>   override 'keep_file' config. -k implies true
  -k, --keep_file <true|false>   override 'keep_file' config. -k implies true
  -d, --auto-delete <s>     automatically delete image after <s> seconds
  file                      upload file instead of taking a screenshot

Ah, sure thing, missed that.
It’s fixed now.

:+1: thanks!


⚠ File access has degraded performance

In b009ffb, File access (https://fyle.uk/file/fish) experienced degraded performance:

HTTP code: 200
Response time: 2493 ms

Resolved: File access performance has improved in 9d44d78 after 8 minutes.


NOT Issue, it's a question about HID

Hi mate, first of all, thank for develop this fuc**** amazing hacking tool.
I have one question. As i think that you know, in P4wnp1 A.L.O.A, we are able to use the HID with javascript code.
Question 1: Here que can use 1:1 the P4wnp1 HID scripts? we have to modify firstly the HID script (maybe transform in to RubberDucky lenguage)?
Question 2: We can move the mouse with HID commands?
Thanks a lot!!!
PD: This project have Discord channel?

Hi mate, first of all, thank for develop this fuc**** amazing hacking tool.

thank you very very much, makes me happy to see people enjoying my dumb side projects :)

Here que can use 1:1 the P4wnp1 HID scripts? we have to modify firstly the HID script (maybe transform in to RubberDucky lenguage)?

unfortunately no, the HID scripts for the p4wnp1 are not cross compatible. i had the choice whether to pick rubber ducky vs p4wnp1's HID scripts, and since rubber ducky scripts are easier to write, have tons and tons of possibilities, and a repo is already made for them, i picked those instead :)

Question 2: We can move the mouse with HID commands?

yes, you can use MOVE x y to move the mouse in absolute coordinates, e.g. MOVE 10 10 would move the mouse 10 pixels to the right and 10 pixels up, and MOVE -10 -10 would move the mouse 10 pixels down, and 10 pixels to the left

PD: This project have Discord channel?
yes, https://discord.gg/HdPKgHQj

Hi mate, first of all, thank for develop this fuc**** amazing hacking tool.

thank you very very much, makes me happy to see people enjoying my dumb side projects :)

Here que can use 1:1 the P4wnp1 HID scripts? we have to modify firstly the HID script (maybe transform in to RubberDucky lenguage)?

unfortunately no, the HID scripts for the p4wnp1 are not cross compatible. i had the choice whether to pick rubber ducky vs p4wnp1's HID scripts, and since rubber ducky scripts are easier to write, have tons and tons of possibilities, and a repo is already made for them, i picked those instead :)

Question 2: We can move the mouse with HID commands?

yes, you can use MOVE x y to move the mouse in absolute coordinates, e.g. MOVE 10 10 would move the mouse 10 pixels to the right and 10 pixels up, and MOVE -10 -10 would move the mouse 10 pixels down, and 10 pixels to the left

PD: This project have Discord channel?

yes, https://discord.gg/HdPKgHQj

Ok :D thanks again for your work!
I have problems with your discord link, the link does not seem to work.
On the other hand, is the tool able to simulate an HDD + HID? I want to be able to launch a code, which allows me to extract a file from the raspberry and copy it directly to the local directory of the target and then execute it.
Thanks mate!

yes, it is able to emulate a usb mass storage device - https://github.com/whatotter/pwnhyve/wiki/installing#installing
should show up on plug in too
and sorry, the discord link does seem to be expired, https://discord.gg/azZznGrWDk should work


README needs to be updated to reflect version of libgit2 required

Currently the readme states

Currently this library requires libgit2 1.4.

but the 0.17 release I believe can use up to libgit2 1.6. If I am correct then the readme should be updated.

Thanks, I have added that to the release checklist for the future.


Added usersRouter, usersController and usersSeed

Description
Please provide a short summary explaining what this PR is about.
We were working with POST API/Enduser. Get/user was done by Deepthi and some part of post/user (uid, email) was done by Victoria. Charles did the rest of POST/user (other columns in user-table(req.body)) and usersSeed. All syntactical errors have been solved.
Fixes # (issue)
How to test?
I tested my own POST code with my own dummy database and it was working great. i had tried testing on chattie db with POSTMAN but it resulted to UNAUTHORISED.
Please provide a short summary how your changes can be tested?
Checklist

[*] I have performed a self-review of my own code
[*] I have commented my code, particularly in hard-to-understand areas
[*] I have made corresponding changes to the documentation
[*] This PR is ready to be merged and not breaking any other functionality

Also the base is wrong it should be merged into develop not merge develop merging into your branch :)


Daily note does not work properly when note name format involves a subfolder

Hi there! Thanks so much for your plugin, it's exactly what I needed!
Now I keep my daily notes in folders for each week to decrease clutter - my format looks like this:
YY-WW/MM-DD-ddd
The issue is that my daily note events can be created but do not appear in the calendar if their year differs from the current year. This is the case on both mobile and my Ubuntu desktop. Tested event creation, dragging events from the current year to 2023 and 2021.
I am guessing that the event extraction is only looking at the note name, and not the full path?

I did some snooping around myself - the reason why this doesn't work is that obsidian's internal method of obtaining all daily notes does not handle folders.
Looking further, it seems like the getAllDailyNotes(), getDateFromNote(), and getDateFromPath() functions from obsidian-daily-notes-interface cant handle the case where the format involves a folder.
I managed to patch-fix the issue by writing new functions with ones written specifically for granuality='day', to replace the obsidian-provided ones. I feel like this problem is quite unique to me, and it should be an issue with obsidian. Should I make a pull request here with the fix anyway?

@mrenow, thanks for the investigation! The PR probably makes most sense upstream at https://github.com/liamcain/obsidian-daily-notes-interface.

Ah! Thanks for the link to the repo - I had assumed the module was a core obsidian plugin.

Closing this issue since the issue is in a dependency. Let me know if you have any other questions!

Closing this issue since the issue is in a dependency. Let me know if you have any other questions!


Documentation update for v9

The docs need to be updated to v9 of the library.

Updated the schema portions.  Still need to add details around dynamic serialization.

I think I got it all...


Added contributor's table

Issue Number
ISSUE #34

Describe the changes you've made
I have added the contributor's table

Describe if there is any unusual behaviour of your code(Write NA if there isn't)
NA

Additional context (OPTIONAL)
I am hopeful that this pr will get merged , so i added my name in contributor's in advance.

Test plan (OPTIONAL)

Checklist

[x]  My code follows the code style of this project.
[x]  I have performed a self-review of my own code.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[ ] I have commented my code, particularly in hard-to-understand areas.
[x]  My changes generate no new warnings.
[ ] I have added tests that prove my fix is effective or that my feature works.
[x]  The title of my pull request is a short description of the requested changes.

Please add DWOC and level-2 tags to this issue, assign me this issue and then merge it.

Please add DWOC and level-2 tags to this issue, assign me this issue and then merge it.


Formatting

Black
Flake8

You could look at adding a pre-commit config like this:
https://github.com/geoxarray/geoxarray/blob/main/.pre-commit-config.yaml
And then pip install pre-commit locally, run pre-commit install in the repository root, and then every time you make a commit it will run these checks.