GoogleWorkspaceReports Data Connector - API start time error

Description
The recent update to GoogleWorkspaceReport Data Connector has caused function app to fail. The python script uses a start_time and end_time to fetch logs for GoogleWorkspaceAPI. Start_date is based on past_time, that depends on Function App's state. The function app state is returning unexpected date on first run.
To Reproduce
Steps to reproduce the behavior:

Deploy functionApp for GoogleWorkspaceReports Data Connector from Microsoft Sentinel.
After function deployment, open functionApp.
Click on function Name GWorkspaceReportsAPISentinelConnector
Click Run/Test
View Error in Monitor tab.
Unexpected: The start date can be 1-2 years in the past.

Expected behavior
If Function App state returns a date more that 24h in the past, use the default start_time parameter (which is 1 day as of now).
Error Message
Something wrong while getting the results. Exception error text: <HttpError 400 when requesting hxxps://admin.googleapis.com/admin/reports/v1/activity/users/all/applications/user_accounts?maxResults=1000&startTime=2022-11-21T20%3A00%3A00.000Z&endTime=2022-11-21T20%3A15%3A00.000000Z&alt=json returned "Invalid request: Start time and end time should be within last 180 days. Start time should be less than end time.". Details: "[{'message': 'Invalid request: Start time and end time should be within last 180 days. Start time should be less than end time.', 'domain': 'global', 'reason': 'invalid'}]">
Additional context

Location of FunctionApp code: Solutions/GoogleWorkspaceReports/Data Connectors/GWorkspaceReportsAPISentinelConnector/init.py
Currently the Function App uses StateManager to get the past_time: Line 121 on init.py
Suggestion: If the date returned by StateManager is more than 24h, use default start_time and at the end of execution, set the time_stamp using state, which will be used for next run. line 124

Hi @s-khan14 , Thanks for flagging this issue, we will investigate this issue and get back to you with some updates by 19Dec2023. Thanks!

Hi @s-khan14 ,The start time and end time both are same ,so there is an issue,please check the followiing the statemarkerfile share in azure containers
Please follow the steps below
1.Browse to function app application settings and go to storage accounts->Please go to the storage accounts-->Containers->FileShare-->Click on -->funcstatemarkershare->Browse-->Click on ... at the end->Select Edit,Please find below screen shot for reference

2.Please check the delays configured in function app settings as the end time is based on that as there are no default delays configured

Please let me know if you have any isuses,if can have a call and do further troubleshooting

This is the content of funcstatemarkershare.
{"access_transparency": "2023-03-31T10:20:00.000Z", "admin": "2023-12-07T15:34:33.317Z", "calendar": "2023-12-07T10:49:45.310Z", "chat": "2023-12-06T12:20:24.605Z", "drive": "2023-12-06T18:37:39.076Z", "gcp": "2023-03-31T10:20:00.000Z", "gplus": "2023-03-31T10:20:00.000Z", "groups": "2023-12-07T13:33:19.547Z", "groups_enterprise": "2023-12-07T13:33:18.874Z", "jamboard": "2023-03-31T10:20:00.000Z", "login": "2023-12-07T10:58:48.470Z", "meet": "2023-12-07T16:39:50.821Z", "mobile": "2023-03-31T10:20:00.000Z", "rules": "2023-03-31T10:20:00.000Z", "saml": "2023-03-31T10:20:00.000Z", "token": "2023-12-07T16:51:59.220Z", "user_accounts": "2023-12-19T17:10:00.000Z", "context_aware_access": "2023-03-31T10:20:00.000Z", "chrome": "2023-12-07T14:53:47.593Z", "data_studio": "2023-03-31T10:20:00.000Z"}
Still the function is grabbing timestamps other than this.
Suggestion
Add a check statement to validate timestamps grabbed from state manager. if timestamp do not align or are more than 1d (or normal period) in the past, replace them with default look_back value.
Why:

In case of current situation, where statemanager is returning dates from 2022.
What if function didn't run for a long time. The timestamps in state will be expired/not valid for google API.

Note: I was able to solve the problem by doing a manual deployment via VS code - Not from ARM template

Hi @s-khan14 , Sorry to hear this issue, got the issue, but want to have more details, so can proceed with changes,
Want to have these data points based on that will do the changes,Could you please share couple of time slots and email id,so will block the calendar.

@s-khan14  Gentle Reminder,got the issue, but want to have more details, so can proceed with changes,
Want to have these data points based on that will do the changes, Could you please share couple of time slots and email id, so will block the calendar.

@s-khan14 Gentle Reminder,got the issue, but want to have more details, so can proceed with changes, Want to have these data points based on that will do the changes, Could you please share couple of time slots and email id, so will block the calendar.

Hi @v-muuppugund, sorry for the delayed response. you can contact me at this email and then we can arrange a meeting from there.

Hi @s-khan14 ,I waited for some time in the call today,as you are unable to join will work on changes and share package,please let me know if you have any concern

Did you add the right email address to the invite? I never got the teams invite. Checked both spam and inbox.

Yes @s-khan14 , I am unable to open this email and asked my collogue to open it and got the email as i.e<EMAIL_ADDRESS>(mailto:maced73@yahoo.com), Could you please drop an email to<EMAIL_ADDRESS>.

Hi @s-khan14 ,Gentle Reminder,, I am unable to open this email and asked my collogue to open it and got the email as i.e<EMAIL_ADDRESS>(mailto:maced73@yahoo.com), Could you please drop an email to<EMAIL_ADDRESS>.

Hi @s-khan14 , Gentle Reminder,, I am unable to open this email and asked my collogue to open it and got the email as i.e<EMAIL_ADDRESS>(mailto:maced73@yahoo.com), Could you please drop an email to<EMAIL_ADDRESS>.


NCL log_provenance function: domains should be a list

There are a two issues with the log_provenance function.

domain: should be domains and a list instead of a single string (or if there can be only one domain, this should be changed in other places too).
plot_type: I'm not sure if this should be here, this is already specified in the recipe in many cases. Diagnostic script settings of the recipe are automatically included in the provenance by the esmvaltool backend, diagnostic scripts do not need to do this.

See also https://esmvaltool.readthedocs.io/en/version2_development/developer_guide2/index.html#generic-interface-between-diagnostic-and-backend

I have a related issue, but I do not know whether it is related to log_provenance or it is more general.
The current approach does not work when the diagnostic generates more than one nc file (in workdir) and/or more than one plot (in plotdir), since in diagnostic_provenance.yml the corresponding keys are not defined as lists.
Is it in enough to extend log_provenance or is it a more general issue.

Can you describe the issue in a bit more detail? The top level keys (typically preceded by a ?) in the diagnostic_provenance.yml are the filenames of the netcdf/plot files, so clearly there can be more than one in the file. For example, the example in the documentation has provenance information for two files:

/path/to/recipe_output/work/diagnostic_name/script_name/CMIP5_GFDL-ESM2G_Amon_historical_r1i1p1_T2Ms_pr_2000-2002_mean.nc
/path/to/recipe_output/work/diagnostic_name/script_name/CMIP5_MPI-ESM-LR_Amon_historical_r1i1p1_T2Ms_pr_2000-2002_mean.nc

But maybe I'm somehow missing your point.

so clearly there can be more than one in the file

Ok, then the issue is in log_provenance, which should be easier to solve :smiley:
When a NCL diagnostic writes multiple nc files (and multiple corresponding plots), log_provenance is usually called multiple times within a loop, but it always overwrites diagnostic_provenance.yml. So in the end, I get provenance information only for the last nc-file/plot in the loop.
I think the solution is to modify log_provenance so that it appends the information to diagnostic_provenance.yml (if it already exists).
Does it make sense?

I think the solution is to modify log_provenance so that it appends the information to diagnostic_provenance.yml (if it already exists).

I quickly tried that and it works! :tada:

I will open a PR soon, which also fixes the domains issue you raised above.
Concerning plot_type, I think this is needed for tagging the CMIP results on the webpage.
@bjoernbroetz or @LisaBock know more about it...

I have another strange issue with the provenance.
When the ancestors key in diagnostic_provenance.yml contains many datasets, the NCL diagnostic goes through, writes the nc files, the plots, and the .yml/.xml provenance files (not the .svg), but then the tool hangs forever and nothing happens any more. The last debug message is:
DEBUG   rdflib:93 RDFLib Version: 4.2.2

This can be easily reproduced running the cycle script of the ta850 diagnostic of recipe_perfmetrics_CMIP5.yml: with ~20 datasets it runs fine, when all ~50 datasets are included it hangs. The critical threshold seems to be 25 datasets (which with the multi model stats makes 27 elements in the ancestors list).
I do not think it is an issue of the diagnostic, since as I said the NCL script is executed correctly and the output is there. It's something happening afterwards, but I can't tell where and the log is not saying much. But it must somehow be related to the provenance, since the problem does not occur when commenting out the call to log_provenance.
The same occurs with collect.ncl where also many datasets are saved in the ancestors list, but not with latlon.ncl and zonal.ncl, where only 1 dataset is given.
Can it be something related to the svg file that cannot handle so many datasets?
@bouweandela if you want to reproduce this problem, the branch I'm working in is perfmetrics_provenance.

Can it be something related to the svg file that cannot handle so many datasets?

I guess so, it will become a very large plot. I'll try to have a look at this soon.

domain: should be domains and a list instead of a single string (or if there can be only one domain, this should be changed in other places too).

This has been solved by #1035

plot_type: I'm not sure if this should be here, this is already specified in the recipe in many cases. Diagnostic script settings of the recipe are automatically included in the provenance by the esmvaltool backend, diagnostic scripts do not need to do this.

As I said, I think this is needed for tagging the CMIP results on the webpage.

Would plot_type be a required attribute for every plot? And if so, I guess it would have to be one of the types from the list in config-references.yml, right? (this does not work at the moment, because it is called plot_type in the diagnostic/recipe and plot_types in config_references). And should it be specified in the recipe or in the diagnostic script? I guess it makes more sense to do that in the diagnostic script, but some diagnostics have it in the recipe.

Would plot_type be a required attribute for every plot?

Yes.

And if so, I guess it would have to be one of the types from the list in config-references.yml, right?

Yes.

(this does not work at the moment, because it is called plot_type in the diagnostic/recipe and plot_types in config_references)

I fixed that for NCL, see #1070.

I guess it makes more sense to do that in the diagnostic script, but some diagnostics have it in the recipe.

In many recipe it looks like it is just a setting for the diagnostics, not necessarily matching the plot_types in config-references.yml. Also because the latter are quite general types, while in the recipe they are more specific.


Is there a way to fetch a row based on its data, like if there are 5 rows with a unique id in each row , can i find the row based on that unique id

unfortunately, google removed their row-based api in their last major update. This module tries to recreate it as much as possible, but fetching filtered rows isn't possible :(
The one workaround I can suggest is to use formulas on a second sheet. So lets say you have one sheet of rows set up like a database. On a second sheet, use a formula to find the thing you want - for example, the row based on some condition, or just the row number, etc... You can either update the formula itself, and read the result, or you could have the formula take inputs from other cells and update those cells. It's a bit clunky but it can definitely work in some scenarios.


load csvs with empty rows into the database

a csv file with only header information will not be loaded at all into mlcp.
An option to select if such data would make it easier load without any transform query.

What is a CSV file with “only header information”? You mean a single line with just column headers and no data? Why would that be useful to load in the first place? Can you tell me more about what you’re trying to accomplish?

It would be needed in a sense that we want to know if the data is loaded
but is empty.
If at any time the data is not loaded that can imply two possibilities:

Data was empty or
Data was never loaded due to some other unknown issue.

In the later situation, if there were no errors or warnings by the system,
one has to go and cross check why the data was never loaded.
This can be avoided when we load the data into the database irrespective of
its nature.
This is particularly required when there is a batch execution of similar
csvs every day or every week.
On Tue, Sep 24, 2019, 12:36 AM Justin Makeig<EMAIL_ADDRESS>wrote:

What is a CSV file with “only header information”? You mean a single line
with just column headers and no data? Why would that be useful to load in
the first place? Can you tell me more about what you’re trying to
accomplish?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/marklogic/marklogic-contentpump/issues/111?email_source=notifications&email_token=ADIKRQLH2UZPGDOZRKEIA4LQLDV77A5CNFSM4IZBZDE2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD7LPE2Q#issuecomment-534180458,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ADIKRQLXDCRHH2L5THNSCMDQLDV77ANCNFSM4IZBZDEQ
.

Sorry, still not understanding.  If we implemented this option, you would still be unaware of "Data was never loaded due to some other unknown issue."  Wouldn't you still need to investigate?
More importantly, can you give an example of data not being loaded but no error thrown?

I have described what do we do when it is an issue in the statements after the second bullet.
But that is not the point.
Why can't we have an option to load an empty csv using mlcp which wil load empty element documents?

MarkLogic is a document database that has globally sharded indexes. Loading 100 documents with 'empty elements' is the same as uploading 1 document with empty elements in it. This isn't RDBMS where each row has a unique PK auto-incremented which create a fundamentally unique mathematical set that you can do counts on.
The URI (esp generated via mlcp) is not a 'field' within the document and does not have any value outside of a pointer to the document within the system and has no intrinsic relationships to other pieces of data in the system (even if you make them 'look' this way, it's just a facade), so leaving a 'shell document' in the system really gains you nothing as searching for empty/null isn't a strength of the (or most document) databases.
What seems more beneficial is if MLCP can return a warning or error every time it encounters a CSV file with no valid rows to turn into documents, so you are aware that MLCP did not attempt to build documents from the file.


Question from Consistency Model Beginner

Thank you very much for your excellent work!
I am a beginner currently learning about diffusion models, and I would like to ask whether the teacher model used to finally train the consistency model has been distilled from TANGO, which was trained with DDPM schedule, using the DDIM method? If I want to perform a similar consistency distillation, does my teacher need to be one that was trained using the DDIM schedule, or can it be one trained with the DDPM schedule instead?

Hi! Teacher can be trained with DDPM (we used DDPM as in TANGO paper). During distillation, we recommend using the Heun solver to query the teacher. It works better than DDIM in our experiments.

Thank you so much for your kind reply! I have a further question related to the concept and theory:
I am a bit confused about the Heun solver, particularly the Karras part. I am exploring how to customize a model structure to follow the general logic of your code and apply consistency distillation to my task (which is not related to image/audio with UNet, so I must modify the code). In my previous work to generate a pre-trained model, the model was trained and sampled according to Karras, which seems to set "sigma_min" and "sigma_max" instead of using betas as in the default Heun solver. How should I understand this difference? Can I directly switch my previous Karras schedule to the official Heun solver in Hugging Face for training and sampling, by slightly altering some logic related to noise addition and timestep embedding?
And just one last quick question: Is it doable to distill the consistency model by directly predicting the denoised sample instead of predicting the added noise? (My pretrained model performs well by directly predicting denoised samples).
I apologize for the lengthy questions. Thank you again for your wonderful work! It really inspires me a lot!

Yes the Heun solver is fully compatible with the Karras schedule. We used Huggingface’s diffuser package for the schedulers. Their API allows for selecting uniform or Karras schedule. The API also allows for switching between $\epsilon$ or $x_0$ prediction. Their documentations should have a detailed discussion on this.

Thank you so much! I have successfully integrated my pretrained model into your code thanks to your work.
However, when I proceed to the training process, I notice that the loss does not decrease at all. I have been trying to identify the issue for several days but have made no progress. My pretrained model strictly follows the Karras EDM schedule and achieves very good generation results with 20+ steps sampling process using the Karras schedule. I understand that this issue could arise from many different factors, but I would like to ask if you could share some of your experiences during the training process? Lastly, thank you again for the very clear code structure and your previous patience. Excellent work!

My observation has been that the consistency loss decreases during the first epoch of AudioCaps. After that, the loss becomes relatively stagnant and does not go to zero. Despite this, the generation quality of the consistency student model continues to improve.

Good news to tell my model also works pretty good. Thank you so much for your exceptional support!

No problem. Glad to hear that!


Support the Outbox -> Inbox forwarding and subscriptions - configured from the client

The goal of this issue is to enable the possibility to do a couple of things:

Easily add events to the outbox of an event store from the client through a specific interface for it (IEventOutbox)
Be able to easily set up subscriptions from one event store into another with a specific inbox for the source (Do not mix events from multiple in one)
Add a clear capability for Reactors, Reducers and Projections to specify the inbox for the event store they want as source, without having to know how Chronicle names the inbox event sequence per event store.
Process should run completely server side (Kernel), allowing for it to run without a client connected.

.NET Client

[ ] Add an interface called IEventOutbox in the EventSequences namespace, similar to what we have for IEventLog
[ ] Add optional inboxFor parameter to ReactorAttribute, leveraging the EventSequenceId.InboxPrefix to create correct the EventSequenceId to use as source. The parameters eventSequence and inboxFor should be mutual exclusive. Throw specific exception from the attributes constructor if both are specified (e.g. AmbiguousEventSequenceSpecifiedForReactor).
[ ] Add optional inboxFor parameter to ReducerAttribute, leveraging the EventSequenceId.InboxPrefix to create correct the EventSequenceId to use as source. The parameters eventSequence and inboxFor should be mutual exclusive. Throw specific exception from the attributes constructor if both are specified (e.g. AmbiguousEventSequenceSpecifiedForReducer).
[ ] Add ability from client to instruct Kernel to setup subscription from the outbox of one EventStore to be put into a specific inbox. Typically we'd like to have a simple method on the IEventStore API: Task SubscribeToOutbox(EventStoreName).

ASP.NET Client

[ ] On the ChronicleAspNetCoreOptions we should have a nice way to configure any event stores we're interested in. A List of EventStoreNames (e.g. EventStoreOutboxSubscriptions). This would then automatically hook this up in the ChronicleClientStartupTask after discovery and registering.

Orleans In-Process Client

[ ] Hook up bindings for circumventing the gRPC, since we're in process
[ ] On the ChronicleOrleansInProcessOptions we should have a nice way to configure any event stores we're interested in. A List of EventStoreNames (e.g. EventStoreOutboxSubscriptions). This would then automatically hook this up in the ChronicleClientStartupTask after discovery and registering in the Orleans.InProcess project.

Kernel
Observer type
We need an observer type for the system to be able to do the actual copying of events from an outbox to an inbox.
This observer type needs to be able to run even if a client is disconnected, meaning that it will never send anything to the client.
The kernel side we implement to be extensible and open for other use cases other than just the Outbox/Inbox pattern.

[ ] Add a new observer type called EventSequenceForwarder in a new namespace in Observation namespace in the Grains project called EventSequences.
[ ] Implement a grain called EventSequenceForwarder, its job is to setup the subscription from a definition. The definition (EventSequenceForwarderDefinitionwill typically contain information about the sourceEventStoreNamethe sourceEventSequenceIdand the targetEventStoreNameand the targetEventSequenceId`
[ ] Implement an ObserverSubscriber - typically named EventSequenceForwarderObserverSubscriber. Look at how Reactors or Reducers are implemented.
[ ] Implement an EventSequenceForwarderManager similar to the ProjectionsManager that is responsible for automatically start all forwarders on startup. Activated from the ChronicleServerStartupTask. It should also be responsible for automatically adding forwarders when a new namespace gets added.

Storage

[ ] New storage interface similar to Reactors / Reducers for storing and retrieving definitions for the EventSequenceForwarder. This should be on the IEventStoreStorage interface.
[ ] MongoDB implementation of the IEventStoreStorage interface.
[ ] Implement a EventSequenceForwarderDefinitionStorageProvider, similar to ReactorDefinitionStorageProvider
[ ] Register storage provider in StorageProviderExtensions in the Setup` project.

gRPC Contract

[ ] Extend the IEventStores contract equivalent  to the SubscribeToOutbox() method that takes a request with the target EventStoreName (The EventStore we're asking to set up the subscription for in the client) and source EventStoreName

gRPC Services

[ ] The implementation of IEventStores should use the EventSequenceForwarder to set up the subscription. Similar to how Projections service work.

A follow up on this would be #925


Rework fetch/decode

Very WIP, trying to rework fetch/decode at the moment.
The current thinking is to:

Fetch the master config as the starting point.
Based on things we know and find from the master config start building a list of files to pull
Fetch files, read, and load data into a structure where we can access it conveniently
Transform that data into something OCP 4 can use
Write it out

One thing that's been noted:
@gildub mentioned that we might need to pull configs from multiple masters and nodes. I movedhostname off the Config(File) and onto the OCP3Cluster. If that's the case I'm not sure how we're to reconcile possible differences between masters and nodes.
Maybe for the cluster we have an array of hosts if need to be able to handle multiple and process the list of files per host and generate CR's per host within the cluster? I don't know. I would like to hear some cases for this and what would be the proper way to handle it if someone has some input.

Note how this pulls the HTPasswd file, loads it into a field in a struct and writes it out to the secret later.
I believe this should be reusable for all types of files  (certs, keys, whatever) used in identity providers.
It also lets us Decode data from different types of config files (json, ini, whatever) and load it into a struct so we can write CR's.

@jmontleon, for the record, thanks for you input, as discussed we're going to provide the decode flexibility.


How to have line span from 2 points in chartjs?

Documentation Is:

[ ] Missing or needed?
[ ] Confusing
[X] Not sure?

Please Explain in Detail...
I currently have a chart with a dynamic line and a horizontally static line:

Right now, the code manually types out the horizontal data points 50 times:
var data1 = {
            datasets: [
                {
                    backgroundColor: 'rgba(75, 192, 192, 0.2)',
                    borderColor: 'rgba(75, 192, 192, 1)',
                    data: [0.94, 0.25, 0.57, 1.01, 0.62, 1.28, 1.65, 0.01, 3.01, 0.94, 1.26, 0.6, 0.32, 0.69, 1.77, 1.03, 0.89, 0.79, 0.63, 1.16, 0.52, 2.08, 1.17, 1.05, 0.77, 0.88, 0.64, 0.83, 0.13, 0.44, 0.71, 0.39, 1.12, 1.57, 0.35, 0.95, 0.92, 1.55, 1.64, 1.46, 1.72, 0.67, 1.46, 0.74, 1.1, 2.07, 1.36, 1.04, 0.16, 1.21, 1.15],
                    fill: 'start',
                    label: 'National'
                },
                {
                    backgroundColor: 'rgba(153, 102, 255, 0.2)',
                    borderColor: 'rgba(153, 102, 255, 1)',
                    data: [1.01, 1.01, 1.01, 1.01, 1.01, 1.01, 1.01, 1.01, 1.01, 1.01, 1.01, 1.01, 1.01, 1.01, 1.01, 1.01, 1.01, 1.01, 1.01, 1.01, 1.01, 1.01, 1.01, 1.01, 1.01, 1.01, 1.01, 1.01, 1.01, 1.01, 1.01, 1.01, 1.01, 1.01, 1.01, 1.01, 1.01, 1.01, 1.01, 1.01, 1.01, 1.01, 1.01, 1.01, 1.01, 1.01, 1.01, 1.01, 1.01, 1.01, 1.01],
                    fill: 'start',
                    label: 'NJIT',
                    spanGaps: true
                }
            ],
            labels: ['AL', 'AK', 'AZ', 'AR', 'CA', 'CO', 'CT', 'DE', 'DC', 'FL', 'GA', 'HI', 'ID', 'IL', 'IN', 'IA', 'KS', 'KY', 'LA', 'ME', 'MD', 'MA', 'MI', 'MN', 'MS', 'MO', 'MT', 'NE', 'NV', 'NH', 'NJ', 'NM', 'NY', 'NC', 'ND', 'OH', 'OK', 'OR', 'PA', 'RI', 'SC', 'SD', 'TN', 'TX', 'UT', 'VT', 'VA', 'WA', 'WV', 'WI', 'WY']
        };

Is there a way to specify horizontal lines OR specify a start (1.01) and finish (1.01) and have it connect it in between? I tried span gaps but it didn't work.
Your Proposal for Changes
Have some parameter for horizontal lines to specify slope and have it connect OR specify start/finish and have it automatically span across all labels.
Example
https://stackoverflow.com/questions/78761263/how-to-have-line-span-from-2-points-in-chartjs

You can use object notation to specify the x and y for 2 points and the line will be drawn between them
https://www.chartjs.org/docs/master/general/data-structures.html#object

Okay, that worked perfectly. Could be worth having this feature documented more clearly as I did not know the feature could be used this way. Thank you!


Functions to disable temporarily the logging.

    /**
     * @return boolean Returns true when logging is currently enabled.
     */
    public function isEnabled()

    /**
     * @param boolean $enable Enable (true) or disable (false) the logging.
     */
    public function setEnabled($enable)

It might be useful within controled loops when a suboperation makes logging and you could not deactivate it. For example:
// logger as a symfony container
$this->Logger = $this->getContainer()->get('logger');

// ...

// a very intensive controlled loop
while ($quantity-- > 0) {
    $this->Logger->setEnabled(false);
    $this->LabelRepository->createLabel($serial);
    $this->Logger->setEnabled(true);
}

@Seldaek just an issue in your code: you forgot to disable the message bubbling and so you don't block them.
<?php
use Monolog\Handler\NullHandler;
use Monolog\Logger;

$this->Logger->pushHandler(new NullHandler(Logger::DEBUG, false);

On Wed, Jan 4, 2012 at 4:32 AM, Jordi Boggiano <
<EMAIL_ADDRESS>
wrote:

That's why there is a null handler, you can use it like this to take your
example:

You are right. It is in the README.mdown:
NullHandler: Any record it can handle will be thrown away. This can be
used to put on top of an existing handler stack to disable it temporarily.
Drop the pull request. Thank you! :)
--
Rafa Couto
GNU/Linux user #99126 - http://counter.li.org
GPG key - http://bit.ly/D76ABDEC

@stof: The NullHandler ignores bubbling, because having one that bubbles makes no sense. I pushed a commit that hopefully clarifies that by removing the bubbling from the constructor.


有点晕，不太清楚怎么样跑自己的数据集

已经做好了coco数据集，

Hi @yidimopozhibai, thanks for your interest in SparseInst.
Since you've prepared your own dataset in a COCO format, you could register your dataset in the detectron2 by specifying your dataset name and annotation/image path in detectron2/data/datasets/buildin/py. For more details, you can refer to the official documentation about how to use custom dataset.

Hi @yidimopozhibai, thanks for your interest in SparseInst.
Since you've prepared your own dataset in a COCO format, you could register your dataset in the detectron2 by specifying your dataset name and annotation/image path in detectron2/data/datasets/buildin/py. For more details, you can refer to the official documentation about how to use custom dataset.

We believe we have answered your question, and as such I'm closing this issue, but let us know if you have further questions. Thanks for your interest in SparseInst 😊 . If you find it useful in your work or research, could you give us a star 🌟 or help us recommend SparseInst to your friends.


Bullet - btBvhTriangleMeshShape allows only 1024 mesh parts

Hello everyone,
I'm using btBvhTriangleMeshShape in conjunction with the HeightField from Xoppa to generate my height map.
However I found a bug but I don't know if it's bullet or the libgdx bullet wrapper.
I use it like that:
btBvhTriangleMeshShape shape = new btBvhTriangleMeshShape(this.model.meshParts);

If the mesh part number is upper 1024, then bullet wouldn't create no more physical triangle, it will stop at 1024 triangles max.
but if I don't use the 'useQuantizedAabbCompression', it works.
btBvhTriangleMeshShape shape = new btBvhTriangleMeshShape(this.model.meshParts, false);

1024 = 10 bits =<PHONE_NUMBER>.
So I think, there is somewhere an array with only 10 bits for key.
It's just a guess, I tried to get into the wrapper code but it's JNI and difficult to understand.
PS: I use the gdx-bullet-1.6.5 wrapper

I think it's bullet physics behavior.
In the file 'src/bullet/BulletCollision/BroadphaseCollision/btQuantizedBvh.h' :
// 10 gives the potential for 1024 parts, with at most 2^21 (2097152) (minus one
// actually) triangles each (since the sign bit is reserved
#define MAX_NUM_PARTS_IN_BITS 10

And in the file 'src/bullet/BulletCollision/CollisionShapes/btOptimizedBvh.cpp':
virtual void internalProcessTriangleIndex(btVector3* triangle,int partId,int  triangleIndex)
		{
			// The partId and triangle index must fit in the same (positive) integer
			btAssert(partId < (1<<MAX_NUM_PARTS_IN_BITS));
			btAssert(triangleIndex < (1<<(31-MAX_NUM_PARTS_IN_BITS)));
			//negative indices are reserved for escapeIndex
			btAssert(triangleIndex>=0);

It looks like it that. So I have to recompile bullet if I want more mesh parts :-1:
I will stick with 1024 parts! Xoppa, do you see a workaround ?

Perhaps use btHeightfieldTerrainShape instead? If you do, would you mind to contribute a small test?

https://github.com/libgdx/libgdx/wiki/Bullet-Wrapper---Using-models

I tried  to use btHeightfieldTerrainShape without success. And the documentation is so poor! There is only one developer working on bullet physics, that's amazing!
I would give another shot to the terrainShape.

a long time ago when I tried to use btHeightfieldTerrainShape I couldn't
get it to reliable produce a mesh matching my libgdx mesh, I think it's
possible it's broken
On Fri, Sep 4, 2015 at 12:37 PM, realitix<EMAIL_ADDRESS>wrote:

I tried to use btHeightfieldTerrainShape without success. And the
documentation is so poor! There is only one developer working on bullet
physics, that's amazing!
I would give another shot to the terrainShape.
—
Reply to this email directly or view it on GitHub
https://github.com/libgdx/libgdx/issues/3393#issuecomment-137801464.


data.yaml file has different references for image paths

When a dataset is downloaded via the API, the data.yaml file has inconsistent image paths. For example they look like:
test: ../test/images
train: project-name/train/images
val: project-name/valid/images

Oddly enough, when exported and downloaded manually from the roboflow page, the paths are correct. It would seem that this problem must be two fold:

data.yaml file is inconsistent
the Dataset object or the yolo tool must have an issue to compensate for the incorrect path

This was most obvious to me when I changed the name of the downloaded dataset folder and the YOLO training would no longer work.
Simply doing this:
from roboflow import Roboflow
rf = Roboflow(api_key="YOUR_API_KEY")
project = rf.workspace("roboflow-jvuqo").project("football-players-detection-3zvbc")
dataset = project.version(1).download("yolov8")

will illustrate the problem.

Reason for missing full path to test split is explained here.


Cache the last color in the curses backend

Fixes #146
This reduces the CPU usage of the 1 example by a third or so.

That does seem to help. I'll get it merged shortly. Thanks!


Kinda bad bug, found items but not enter them :o

Hi. Could you add a little more detail? Just printing the console isn't helping. As it's written in the Disclaimer I'm not currently maintaining the bot but maybe it's not a bug you found here but rather something not being clear enough.
If you want to elaborate more I can help.
There are separate threads for liking/commenting/etc and the one that searches. Meaning that it doesn't automatically do an action on those tweets once it finds them


remove invite and accept subcommands

While the distinction is somewhat intuitive, the underlying code is the
same and thus it only leads to code duplication.
Marked as draft as I have not tested the changes to the tests (nor updated the
documentation).
I believe this resolves our conversation on my very first PR.

I believe the extensive refactor in the latest release accomplishes something similar as this -- fowld itself loses the invite/accept subcommands, but the "human" version retains them (for ease-of-use).

I haven't looked at the final version of the changes yet, but I did make
a mental note to then review whether they make this and the other PR
obsolete and close them if that is the case. But you beat me to it :-)
Based on what you write, I think the other PR is definitely obsolete. If
I have any reservations here, I will be sure to reopen the discussion,
if that is OK with you.

yes, absolutely .. re-open this too if so :)

So, at the first glance, I think removing the subcommands would make
more sense to me. I can't see any added value and on the contrary, they
obfuscate the symmetry and if I would like to start an "invite" session
with a predefined code, I would have to issue fowl accept..., which
might be confusing. What do you think?
One thing that occurred to me as I write this: perhaps it is not
desirable to have the to-be-allocated-code supplied manually as it might
compromise its randomness and hence the session security? Then I suppose
having the CLI designed like this (with the subcommands) would make
sense to signal that it is not the recommended use while still making it
technically possible via the command above.

Ahh, interesting.

I can see your point about losing the "symmetry" though. (Also I would consider "choose your own code" probably gets into "expert mode" a little, but might be nice to support that too).
What's the actual proposal here, then? Something like "if you specify --code great, otherwise it allocates one"? So fowl invite becomes fowl and fowl accept becomes fowl --code 1-foo-bar approximately?
There's also fowl tui now which I made basically because I want to do the fowld stuff, but don't want to type in JSON (so it's meant to pretty directly mirror that protocol).

(Also I would consider "choose your own code" probably gets into "expert mode" a little, but might be nice to support that too).

Yes, that's a bit what I touched with the security concerns too. And
like I said, technically you do support it, but in a somewhat
confusing way. So if your concern is the security/expert mode, then I
think that's a good argument (in the case of security, it could perhaps
even be considered doing more to discourage people from making up their
own possibly weak codes). Otherwise, I think I do consider the split
redundant and the subcommand-less variant seems more natural to me.

What's the actual proposal here, then? Something like "if you specify --code great, otherwise it allocates one"? So fowl invite becomes fowl and fowl accept becomes fowl --code 1-foo-bar approximately?

I imagine it would work as this PR made it for the old version: if the
code is supplied, then either allocate it or find the peer who has
already allocated it. If no code is supplied, generate one. I would drop
the --code flag, keeping just --code-length. So fowl invite
becomes fowl (optionally with --code-length), fowl accept code
becomes fowl code (it would probably make sense to have code
conflict with --code-length, but I do think the code should be an
optional positional argument, rather than a flag.

There's also fowl tui now which I made basically because I want to do the fowld stuff, but don't want to type in JSON (so it's meant to pretty directly mirror that protocol).

I haven't tried the TUI yet (nor anything else yet actually, so far I
have just looked at the source a little bit) but I am looking forward to
it.

Hmm, I was trying to hack this together quickly, but I'm not sure that Click supports having a "group" that also has subcommands.
i.e. fowl tui and fowl readme etc ...

Ah, I didn't realize there are other non-flag commands...
Hmm, what would you say to making those flags? E. g. fowl tui -> fowl -t, fowl readme -> fowl -i/--info (or something). The code could
then perhaps apply even for the TUI (if that makes sense, I still
haven't seen it), like fowl -t code would open TUI and use the code.

See the PR -- that's what you meant right?
Yeah the "readme" could be ... something like --info or --readme.
TUI could be a third entry-point (e.g. fowl-tui or similar)
Makes sense from Click's perspective: is "fowl readme" a subcommand, or "fowl" with a single argument that is "readme"?

Okay, I hung --readme off fowl and added a fowl-tui entry-point ... seems fine?


Annoying pattern in Elasticsearch JSON makes serde_derive less useful.

I wasn't sure exactly where to file this as it cuts across serde, serde_derive, and serde_json.
I ran into a problem that required writing a custom Serialize impl for my type and it's a fairly common pattern in some JSON APIs and particularly Elasticsearch so I wanted to check I wasn't missing a nicer way of handling this.
The Elasticsearch Query type I was implementing was Term Query.
The problem is that rather than the document field being in a key-value pair like field: "user", it's lifted into a key which them has the term value as the value. So this,
{
  "query": {
    "term" : { "user" : "Kimchy" }
  }
}

Represents a query which returns documents which contain the term "Kimchy" in the document field "user". This is a somewhat common pattern in the ES API. My (working) attempt is below:
https://github.com/bitemyapp/duke/blob/master/src/lib.rs#L42-L78
I'd rather not have to do this over-and-over-and-over ad infinitum. Did I do the right thing? Is there an easier option? Should I make my own macro?
Sorry for bothering you but seemed like it'd be best to ask the devs.

I would factor out that logic into a single serialize function, maybe something like this.
extern crate serde;
#[macro_use]
extern crate serde_derive;
#[macro_use]
extern crate serde_json;

#[derive(Serialize)]
#[serde(rename_all = "snake_case")]
enum Query {
    Term(#[serde(with = "query")] TermQuery),
    Range(#[serde(with = "query")] RangeQuery),
}

#[derive(Serialize)]
struct TermQuery {
    field: String,
    value: String,
    #[serde(skip_serializing_if = "Option::is_none")]
    boost: Option<Boost>,
}

#[derive(Serialize)]
struct RangeQuery {
    field: String,
    gte: u64,
    lte: u64,
}

#[derive(Serialize)]
struct Boost(f64);

mod query {
    use serde::ser::{Serialize, Serializer, Error};
    use serde_json::{self, Value};

    pub fn serialize<T, S>(query: &T, serializer: S) -> Result<S::Ok, S::Error>
        where T: Serialize,
              S: Serializer
    {
        let value = serde_json::to_value(query).map_err(Error::custom)?;

        let mut map = match value {
            Value::Object(map) => map,
            _ => panic!("bug: query must be a JSON object"),
        };

        let field = match map.remove("field") {
            Some(field) => field,
            None => panic!("bug: query must have a field called `field`"),
        };

        let k = match field {
            Value::String(s) => s,
            _ => panic!("bug: `field` in query must be a string"),
        };

        json!({ k: map }).serialize(serializer)
    }
}

fn main() {
    let query = Query::Term(TermQuery {
        field: "status".to_owned(),
        value: "urgent".to_owned(),
        boost: Some(Boost(2.0)),
    });
    println!("{}", serde_json::to_string(&query).unwrap());
}


Generate CRD docs with gen-crd-api-reference-docs

Summary
This is an attempt to resolve #210 by using the script from lieutenant-operator .

Checklist

[x] Keep pull requests small so they can be easily reviewed.
[x] Categorize the PR by setting a good title and adding one of the labels:
bug, enhancement, documentation, change, breaking,
as they show up in the changelog
[x] Update the documentation.
[ ] ~Update tests.~
[x] Link this PR to related issues.

Currently, the state looks like this:
I0205 17:10:25.510900   96698 main.go:129] parsing go packages in directory api/v1alpha1
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x140ebb5]

goroutine 1 [running]:
k8s.io/gengo/parser.(*Builder).AddDirRecursive(0xc00007f630, 0x7ffeefbff66f, 0xc, 0x59, 0xad)
	/Users/cimnine/src/vshn/k8up/docs/tempgopath/pkg/mod/k8s.io/gengo@v0.0.0-20201203183100-97869a43a9d9/parser/parse.go:234 +0xb5
main.parseAPIPackages(0x7ffeefbff66f, 0xc, 0x150510f, 0x23, 0xc00018ff30, 0x1, 0x1)
	/Users/cimnine/src/vshn/k8up/docs/tempgopath/pkg/mod/github.com/ahmetb/gen-crd-api-reference-docs@v0.3.0/main.go:203 +0x65
main.main()
	/Users/cimnine/src/vshn/k8up/docs/tempgopath/pkg/mod/github.com/ahmetb/gen-crd-api-reference-docs@v0.3.0/main.go:130 +0x2d4

This problem might be related to https://github.com/ahmetb/gen-crd-api-reference-docs/issues/12. Does that ring a bell @ccremer?

I replaced the script to be mostly the same as the one from lieutenant-operator. It looks better, but still no luck:
[...]
+ go run github.com/ahmetb/gen-crd-api-reference-docs -config ./docs/gen-api.json -api-dir ./api/v1alpha1 -template-dir ./docs/template -out-file ./docs/modules/ROOT/partials/crds.html -v=4
I0209 09:40:36.995711 1335045 main.go:129] parsing go packages in directory ./api/v1alpha1
I0209 09:40:47.543486 1335045 main.go:213] trying package=func (*k8s.io/apimachinery/pkg/apis/meta/v1.Condition).DeepCopyInto(out *k8s.io/apimachinery/pkg/apis/meta/v1 groupName=
I0209 09:40:47.543527 1335045 main.go:213] trying package=func (*k8s.io/api/core/v1.Handler).XXX_Merge(src github.com/gogo/protobuf/proto groupName=
[...]
I0209 09:40:47.552584 1335045 main.go:213] trying package=func (k8s.io/apimachinery/pkg/api/resource.infDecAmount).AsScale(scale k8s.io/apimachinery/pkg/api/resource.Scale) (k8s.io/apimachinery/pkg/api/resource groupName=
I0209 09:40:47.552590 1335045 main.go:213] trying package=func (k8s.io/apimachinery/pkg/runtime.Object).GetObjectKind() k8s.io/apimachinery/pkg/runtime/schema groupName=
I0209 09:40:47.552594 1335045 main.go:213] trying package=func (regexp.lazyFlag).match(op regexp/syntax groupName=
F0209 09:40:47.552605 1335045 main.go:135] no API packages found in ./api/v1alpha1

This is something I'm not able to figure out why. The only thing I see is different to other projects successfully using gen-crd-api-reference-docs is that the directory structure is different. For example Lieutenant Operators stores it's API structs under pkg/apis/syn/v1alpha1/*_types.go whereas K8up stores it under api/v1alpha1/*_types.go. Not sure if this could be the reason for "no API packages found".

Made it work by using another tool instead :)

@tobru you're invited to review the documentation and the template

Very cool! Thanks a lot. I did a small adjustment and IMHO that's done with that.

Strange. The CRD doc generator here only detects 2 CRDs<EMAIL_ADDRESS>
W00t! Just ping https://twitter.com/hasheddan/, he's very helpful. Or open an issue in https://github.com/crdsdev/doc

I think there is already:
https://github.com/crdsdev/doc/issues/126

Merging this. The bug in the generator site is not something that holds us back since we have our own reference now, and fixes we can apply later as well.


Google Drive Polling not working for non encrypted remote

What is the problem you are having with rclone?
Polling changes are not invalidating the directory cache on a non encrypted remote.
What is your rclone version (output from rclone version)
1.47
Which OS you are using and how many bits (eg Windows 7, 64 bit)
Linux/ArchLinux
Which cloud storage system are you using? (eg Google Drive)
Google Drive
The command you were trying to run (eg rclone copy /tmp remote:tmp)
Copy a file via rclone copy/web interface and check the mount logs.
A log from the command with the -vv flag (eg output from rclone -vv copy /tmp remote:tmp)
https://forum.rclone.org/t/plex-with-google-drive-not-updating/10225/28 has the logs for the dump bodies and you can see the cache does not invalidate for some reason.

Here is my attempt to reproduce
rclone mount -vv drive:test /mnt/tmp/ --poll-interval 10s

Then in another window
ls /mnt/tmp/src
date | rclone rcat drive:test/src/`date -Is`.txt

This made this log
2019/06/06 15:41:54 DEBUG : Google drive root 'test': Checking for changes on remote
2019/06/06 15:41:55 DEBUG : src: invalidating directory cache

And then I did
ls /mnt/tmp/src

to check the file appeared.
If you do the same as the above does it work for you?  Is there something I should be doing differently to reproduce?

After seeing the error, I have updated to an encrypted remote and I am in the process of re-uploading my library.  So far, no issues with the encrypted setup.

I did my test in my root of my Google Drive.
2019/06/06 15:53:37 DEBUG : media/: >Attr: attr=valid=1s ino=0 size=0 mode=drwxr-xr-x, err=<nil>
2019/06/06 15:53:37 DEBUG : /: Lookup: name="media"
2019/06/06 15:53:37 DEBUG : /: >Lookup: node=media/, err=<nil>
2019/06/06 15:53:37 DEBUG : media/: Attr:
2019/06/06 15:53:37 DEBUG : media/: >Attr: attr=valid=1s ino=0 size=0 mode=drwxr-xr-x, err=<nil>
2019/06/06 15:53:42 DEBUG : /: Attr:
2019/06/06 15:53:42 DEBUG : /: >Attr: attr=valid=1s ino=0 size=0 mode=drwxr-xr-x, err=<nil>
2019/06/06 15:53:42 DEBUG : /: ReadDirAll:
2019/06/06 15:53:42 DEBUG : /: >ReadDirAll: item=1, err=<nil>
2019/06/06 15:53:42 DEBUG : /: Lookup: name="media"
2019/06/06 15:53:42 DEBUG : /: >Lookup: node=media/, err=<nil>
2019/06/06 15:53:42 DEBUG : media/: Attr:
2019/06/06 15:53:42 DEBUG : media/: >Attr: attr=valid=1s ino=0 size=0 mode=drwxr-xr-x, err=<nil>
2019/06/06 15:53:42 DEBUG : /: Lookup: name="media"
2019/06/06 15:53:42 DEBUG : /: >Lookup: node=media/, err=<nil>
2019/06/06 15:53:42 DEBUG : media/: Attr:
2019/06/06 15:53:42 DEBUG : media/: >Attr: attr=valid=1s ino=0 size=0 mode=drwxr-xr-x, err=<nil>
2019/06/06 15:53:44 DEBUG : Google drive root '': Checking for changes on remote

and
[felix@gemini Test]$ date
Thu 06 Jun 2019 03:53:26 PM EDT
[felix@gemini Test]$ rclone copy /etc/hosts GD:
[felix@gemini Test]$ ls
media
[felix@gemini Test]$ rclone lsf GD:
hosts
media/
[felix@gemini Test]$ ls
media
[felix@gemini Test]$

still hasn't shown up.

I managed to replicate that mounting the root of my drive.
I updated the file, the change came in, but rclone ignored it.
2019/06/09 11:50:08 DEBUG : <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
2019/06/09 11:50:18 DEBUG : Google drive root '': Checking for changes on remote
2019/06/09 11:50:18 DEBUG : >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
2019/06/09 11:50:18 DEBUG : HTTP REQUEST (req 0xc0004d2500)
2019/06/09 11:50:18 DEBUG : GET /drive/v3/changes?alt=json&fields=nextPageToken%2CnewStartPageToken%2Cchanges%28fileId%2Cfile%28name%2Cparents%2CmimeType%29%29&pageSize=1000&pageToken=1392618&prettyPrint=false HTTP/1.1
Host: www.googleapis.com
User-Agent: rclone/v1.47.0-108-g43e2f95b-fix-3232-update-beta
Authorization: XXXX
Accept-Encoding: gzip

2019/06/09 11:50:18 DEBUG : >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
2019/06/09 11:50:18 DEBUG : <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
2019/06/09 11:50:18 DEBUG : HTTP RESPONSE (req 0xc0004d2500)
2019/06/09 11:50:18 DEBUG : HTTP/1.1 200 OK
Transfer-Encoding: chunked
Alt-Svc: quic=":443"; ma=2592000; v="46,44,43,39"
Cache-Control: private, max-age=0, must-revalidate, no-transform
Content-Type: application/json; charset=UTF-8
Date: Sun, 09 Jun 2019 10:50:18 GMT
Expires: Sun, 09 Jun 2019 10:50:18 GMT
Server: GSE
Vary: Origin
Vary: X-Origin
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
X-Xss-Protection: 1; mode=block

b8
{"newStartPageToken":"1392621","changes":[{"fileId":"1qnEl462lu0j7WzS8","file":{"name":"justaddedfile.txt","mimeType":"text/plain","parents":["0ADSw5cyz"]}}]}
0

The problem is that we used the root id of "root" so that is what we have in the directory cache, but google drive returned an actual ID.  So we need to lookup the actual ID of the root drive and get that in the directory cache.
So that is a bug but that only applied to things in the root of the drive - have you seen this problem elsewhere?

I hadn't seen in anywhere before. The OP on the forum was seeing it not in a root folder.

I am experiencing similar issues. Any updates on this bug? Thanks

This is now fixed in v1.50


Add some helpful extension functions that were being used in several …

…projects.

Add RSFontSizes dependency
Add RSFontSizes wrapper in UIFont extension
Add addNibView function to UIView extension
Add goToScreen function to UIViewController extension to instantiate view controller and/or storyboard and push or present modally in a few lines of code

          1 Warning

:warning:
Please rebase to get rid of the merge commits in this Pull Request

  Generated by :no_entry_sign: Danger


[Feature request] independent lang packs

Is your feature request related to a problem? Please describe.
Not all users need internationalization, while hc support it by default, which produce many lang pack folders in output directory.
Describe the solution you'd like
We can separate lang packs and download them on demand.

If this improves development time such as (Add language words in resx, review and Merge PRs) It is a good feature
Otherwise, the following method can restrict language files
<SatelliteResourceLanguages>en;fa</SatelliteResourceLanguages>
I think it is a very good suggestion if it is in a way that there is no need to create PR and merge for language pack

If this improves development time such as (Add language words in resx, review and Merge PRs) It is a good feature
Otherwise, the following method can restrict language files
<SatelliteResourceLanguages>en;fa</SatelliteResourceLanguages>
I think it is a very good suggestion if it is in a way that there is no need to create PR and merge for language pack

@NaBian can you explain more?
i can see that new nuget version Does not contain language files and for each language there is a nuspec file.
Does anyone who needs a specific language have to create the desired nuget package themselves?

for instance, if you need en lang, just download nuget pack: https://www.nuget.org/packages/HandyControl.Lang.en/


Unhandled errors

Uncaught (in promise) Error: [TON_CONNECT_SDK_ERROR] Reject request     at ConnectErrorsParser.parseError (index.js:2720:12)     at TonConnect.onWalletConnectError (index.js:3756:39)     at TonConnect.walletEventsListener (index.js:3727:14)     at index.js:3358:46     at Array.forEach (<anonymous>)     at InjectedProvider.<anonymous> (index.js:3358:24)     at Generator.next (<anonymous>)     at fulfilled (index.js:3254:24)
Uncaught (in promise) Error: [TON_CONNECT_SDK_ERROR] Wallet declined the request     at ConnectErrorsParser.parseError (index.js:2720:12)     at TonConnect.onWalletConnectError (index.js:3756:39)     at TonConnect.walletEventsListener (index.js:3727:14)     at index.js:3190:44     at Array.forEach (<anonymous>)     at BridgeProvider.<anonymous> (index.js:3190:22)     at Generator.next (<anonymous>)     at index.js:3071:67     at new Promise (<anonymous>)     at __awaiter$4 (index.js:3053:10)
Uncaught (in promise) Error: [TON_CONNECT_SDK_ERROR] Close PopUp     at ConnectErrorsParser.parseError (index.js:2720:12)     at TonConnect.onWalletConnectError (index.js:3756:39)     at TonConnect.walletEventsListener (index.js:3727:14)     at index.js:3358:46     at Array.forEach (<anonymous>)     at InjectedProvider.<anonymous> (index.js:3358:24)     at Generator.next (<anonymous>)     at fulfilled (index.js:3254:24)

Hi @websashka, could you provide more details about the problem?


Allow templates to exclude from_email

You can specify a default from email address in mandrill templates. Let
the API response fail instead of doing the client-side check in this
case.

👍


Allow import statement in conditional block

When the sequence of import statements is interrupted by conditional blocks, ISort thinks the imports have ended and wants the conditional block to be separated from other import statements.
Given this correctly-ordered code:
import pytz
try:
    import semver
except ImportError:
    # We won't be able to parse Semantic Versioning values.
    semver = NotImplemented

ISort mandates these changes:
 import pytz
+
+
 try:
     import semver
 except ImportError:
    # We won't be able to parse Semantic Versioning values.
    semver = NotImplemented

I can't find any way to tell ISort to allow the conditional block (whether try, or if, etc.) as part of the sequence of import statements.

I also vote for this feature! =)
Ref:
+++ update_cosmosdb_document_python/update_cosmosdb_document/cli.py:after	2019-08-23 22:14:01.322106
@@ -6,7 +6,7 @@
 from typing import Any

 # Non-standard library python package imports
-from azure.cosmos.cosmos_client import CosmosClient      # type: ignore
+from azure.cosmos.cosmos_client import CosmosClient  # type: ignore
 from click import (
     command,
     echo,
@@ -15,11 +15,6 @@
     progressbar,
     version_option,
 )
-try:
-    from IPython import embed    # type: ignore
-except ImportError:
-    def embed():
-        pass

 # Internal module package imports

This behavior has been improved in develop and should make it's way into the 5.0.0 release.
Thanks!
~Timothy


Fix wheels regex

Fix so that more wheels can be found.
E.g. lxml-4.9.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl

Description
Change the regex in order to capture more wheels from PyPi or local cache.
GitHub Issues
https://github.com/zappa/Zappa/issues/1288

coverage: 74.764%. remained the same
when pulling 9252fef8e2ac17a5859aace47d7f668c876e54a7 on martimarkov:patch-1
into 68cfb33c9a0baaa5669a7afbdd6832aec8418f13 on zappa:master.


On branch edburns-msft-77-remove-7-3-subdirectories

deleted:    eap73-rhel8-byos-multivm/pom.xml
deleted:    eap73-rhel8-byos-multivm/src/main/arm/createUiDefinition.json
deleted:    eap73-rhel8-byos-multivm/src/main/arm/mainTemplate.json
deleted:    eap73-rhel8-byos-multivm/src/main/bin/eap-session-replication.war
deleted:    eap73-rhel8-byos-multivm/src/main/scripts/jbosseap-setup-redhat.sh
deleted:    eap73-rhel8-byos-vmss/pom.xml
deleted:    eap73-rhel8-byos-vmss/src/main/arm/createUiDefinition.json
deleted:    eap73-rhel8-byos-vmss/src/main/arm/mainTemplate.json
deleted:    eap73-rhel8-byos-vmss/src/main/bin/eap-session-replication.war
deleted:    eap73-rhel8-byos-vmss/src/main/scripts/jbosseap-setup-redhat.sh
deleted:    eap73-rhel8-byos/pom.xml
deleted:    eap73-rhel8-byos/src/main/arm/createUiDefinition.json
deleted:    eap73-rhel8-byos/src/main/arm/mainTemplate.json
deleted:    eap73-rhel8-byos/src/main/bin/JBoss-EAP_on_Azure.war
deleted:    eap73-rhel8-byos/src/main/scripts/jbosseap-setup-redhat.sh
deleted:    eap73-rhel8-payg-multivm/pom.xml
deleted:    eap73-rhel8-payg-multivm/src/main/arm/createUiDefinition.json
deleted:    eap73-rhel8-payg-multivm/src/main/arm/mainTemplate.json
deleted:    eap73-rhel8-payg-multivm/src/main/bin/eap-session-replication.war
deleted:    eap73-rhel8-payg-multivm/src/main/scripts/jbosseap-setup-redhat.sh
deleted:    eap73-rhel8-payg-vmss/pom.xml
deleted:    eap73-rhel8-payg-vmss/src/main/arm/createUiDefinition.json
deleted:    eap73-rhel8-payg-vmss/src/main/arm/mainTemplate.json
deleted:    eap73-rhel8-payg-vmss/src/main/bin/eap-session-replication.war
deleted:    eap73-rhel8-payg-vmss/src/main/scripts/jbosseap-setup-redhat.sh
deleted:    eap73-rhel8-payg/pom.xml
deleted:    eap73-rhel8-payg/src/main/arm/createUiDefinition.json
deleted:    eap73-rhel8-payg/src/main/arm/mainTemplate.json
deleted:    eap73-rhel8-payg/src/main/bin/JBoss-EAP_on_Azure.war
deleted:    eap73-rhel8-payg/src/main/scripts/jbosseap-setup-redhat.sh
modified:   CmdToRun.md
modified:   README.md
deleted:    Deploy-All.ps1
modified:   CmdToRun.md
modified:   README.md

@jamesfalkner  please proceed with your review, however, I want to ensure @zhengchang907 is not impacted in this domain mode work before we merge this.

Looks good. Note that I am still using/maintaining Deploy-AzTemplate.ps1 and will need to update it after the scripts/ --> bin/ change until I find a better way to do quick testing of the templates in a prod-like manner.


Should EF-based components reference Microsoft.EntityFrameworkCore.Design?

If you manually wire up a DbContext and use an EF-based Aspire component and then use the EF tools to create the initial migration, EF will fail because the project doesn't have a reference to Microsoft.EntityFrameworkCore.Design. Should we consider pre-adding this as a transitive dependency on components that are targetting entity framework to streamline this workflow?

Note that Microsoft.EntityFrameworkCore.Design is generally not meant to be used at runtime. It's important to avoid Aspire or the app assembly from referencing it as it could lead to trimming and NativeAOT warnings. The EF tools just need it to be located in the output directory, i.e. it's a development dependency.

Assigning to @JamesNK to look at as part of the all up database work.

EF Core splits it out into a separate package for good reasons. I don't see why components would be different.
If you need Microsoft.EntityFrameworkCore.Design then you should add it to the project.

I'm going to close this. If people think more research or discussion is required then feel free to reopen.


Shorten inline commands for faster typing

Hi again :)
I am a bit unsure about whether this issue should actually be fixed, but I'll just lay out my thoughts. Feel free to tell me that this is not really a priority:
Coming from TeX, I noticed that the acronym commands now require more typing (because \ac{} is shorter than #ac("")). It would be great if we could at least shrink the ("") to two characters (if possible?)
I am not quite sure how to accomplish this (because I am quite new to Typst). From a user perspective, I would have expected to have a separate character in the Typst syntax for acronyms (like @ for citing). Would it be possible to reuse @ for acronyms as well (e.g. with a prefix, so @ac:cca is the same as #ac("cca")?
An alternative solution I noticed in the abbr typst package is to use [] instead of (""). Again, I am quite new to Typst, so I don't really know what is going on there, but maybe this is integratable into acrostiche?
I am always happy to help and can try to figure out a PoC for the library if you would be interested in such a feature :)

Using the citing symbole @ for the acronym was my first idea (in the dark ages, before packages were even a thing in typst) but it turned out that the @ symbol is very special and baked into the typst compiler in a way that makes it difficult to use. Also if I remember correctly it was interfering with the real citations which is not acceptable. So sadly I don't think this option is possible.
Regarding the overhead of calling acr, I am also bothered by the number of characters required but I did not find a way around it yet. I believe using square brackets instead of parentheses with quotes would cause the argument (the short version of the acronym in this case) to be formated to a "content" type instead of a string. I think this was causing issues with the mechanisms in the packages and specifically with finding the key in a dictionary. I may be wrong because this was some time ago.
If you find a reliable way to remove some characters in each call I would be very interested to see how it can be added to the package.

Okay, I will have some breathing room at the end of January, I'll try to find some solution then :)


Support SQLAlchemy v2

Checklist

[X] There are no similar issues or pull requests for this yet.

Is your feature related to a problem? Please describe.
A few days ago I started using SQLAlchemy for the first time - specifically, v2.0.0rc2 (released 2023-Jan-9).  Today I decided to try setting up an admin UI, and after determining the Flask-Admin is broken and unmaintained, I decided to try sqladmin - but couldn't install it because your pyproject.toml specifies version <1.5.
Describe the solution you would like.
Given that SQLAlchemy v2 is expected to come out in the next few weeks, now seems like the time to make sure sqladmin works with it, and then loosen the version specifier.
Describe alternatives you considered
I don't see an alternative.  I want to stay with SQLAlchemy v2, and sqladmin directly interacts with the models, so the backend and admin have to at least share the model code, which means they might as well be in the same project - which means they have to share the same list of package dependencies.
Additional context
No response

Hey, thanks for this.
Yes that is very reasonable and I will give it a try.
As far as I know there should be no problems as SQLAlchemy 1.4 and 2.0 will not be much different, I will give it a try and update this.

I created the draft PR for now to wait until V2 is released.

https://sqlalchemy.org/blog/#sqlalchemy-2.0.0-released


Change line ending sequences from CRLF to LF in Microsoft.PowerShell.Management.psd1

PR Summary
Change line ending sequences from CRLF to LF in Microsoft.PowerShell.Management.psd1
The CRLF causes the file to be checked out automatically on Linux.
PR Checklist

[x] PR has a meaningful title

Use the present tense and imperative mood when describing your changes

[x] Summarized changes
[x] Change is not breaking
[ ] Make sure all .h, .cpp, .cs, .ps1 and .psm1 files have the correct copyright header
[x] This PR is ready to merge and is not Work in Progress.

If the PR is work in progress, please add the prefix WIP: to the beginning of the title and remove the prefix when the PR is ready.

User-facing changes

[x] Not Applicable
OR
[ ] User-facing Documentation needed

[ ] Issue filed - Issue link:

Testing - New and feature

[x] Not Applicable or can only be tested interactively
OR
[ ] Make sure you've added a new test if existing tests do not effectively test the code changed

[ ] Add [feature] if the change is significant or affects feature tests

The CLA check seems to be stuck. I will merge using admin privilege.


Long output of client should be "absolute"

Given there's no such thing as a directory in Pelican, I find the current output of the ls -L --json confusing:
$ pelican object ls -L<EMAIL_ADDRESS>--json
[{"Name":"100MB.dat","Size":104857600,"ModTime":"2024-07-22T13:37:12Z","IsDir":false}]

To me, we should be giving the full object name:
[{"Name":"/pearc24-tutorial/home/bockelman@wisc.edu/100MB.dat","Size":104857600,"ModTime":"2024-07-22T13:37:12Z","IsDir":false}]

For the "human readable" output, I'm OK with giving the shortened name:
$ pelican object ls -L<EMAIL_ADDRESS>100MB.dat          104857600          2024-07-22 13:37:12

Interested in hearing the thoughts of others on the topic.

Just noticed that stat has the same issue.  If we go "full object name" for ls -l, we should do the same thing for stat.


Add pagination to api audits

Add pagination to api audits (limit, offset, order_by, order_desc)
Add API audit middleware to controlplane
Use https://github.com/zhouzhuojie/iso8601ms for all the timestamp type in apimodel layer. It's the same time.Time type, with a little bit Marshal difference.

example payload with local timezone
[
  {
    "created_at": "2021-03-10T17:58:47.157-08:00",
    "updated_at": "2021-03-10T17:58:47.157-08:00",
    "plane": "dataplane",
    "http_path": "/api/v1/api_audits",
    "http_method": "GET",
    "sent_http_status": 200
  },

if we use UTC, it becomes "2021-03-10T17:58:47.157Z"

example payload with local timezone
[
  {
    "created_at": "2021-03-10T17:58:47.157-08:00",
    "updated_at": "2021-03-10T17:58:47.157-08:00",
    "plane": "dataplane",
    "http_path": "/api/v1/api_audits",
    "http_method": "GET",
    "sent_http_status": 200
  },

if we use UTC, it becomes "2021-03-10T17:58:47.157Z"

Should we leave it variable on the server timezone or fix it to utc to avoid surprises?

example payload with local timezone
[
  {
    "created_at": "2021-03-10T17:58:47.157-08:00",
    "updated_at": "2021-03-10T17:58:47.157-08:00",
    "plane": "dataplane",
    "http_path": "/api/v1/api_audits",
    "http_method": "GET",
    "sent_http_status": 200
  },

if we use UTC, it becomes "2021-03-10T17:58:47.157Z"

Should we leave it variable on the server timezone or fix it to utc to avoid surprises?

Yes, converted to UTC before JSON serialzation.


Pass current net to callback function

neural-network.js#L171
if (callback && (i % callbackPeriod == 0)) {
    callback({ error: error, iterations: i });
}

Is it possible – send current net state to callback function?
Let me explain.
I divide my training data to real training data and test data.
And I want run nn on test data in some period for look real error.
Code for example what I want:
if (callback && (i % callbackPeriod == 0)) {
    callback({ error: error, iterations: i }, this);
}

Close please, it's easier than I thought!
var net = new brain.NeuralNetwork();
var trainResult = net.train(trainingData, {
	callback: function(state) {
		// net.run() is work!
	}
});

ty for finding!

@robertleeplummerjr how can I stop train() in a callback function?

Currently there isn't a built in means.  You could throw an exception that could be caught.


Live editing tool

A tool that can load and monitor changes in one or more A2S files, analyzing changes in order to recompile only programs, functions, message handlers etc that have been modified, so these can be hot patched without restarting everything.

MIDI input.
Program selector for live MIDI control.
GUI with some sort of visualization of the voice tree.
Oscilloscopes and spectrum analyzers, at least for the master outputs.
Record MIDI events and copy them as A2S code to the clipboard and/or write them to a file. (The latter might actually be better when used with a code editor that also monitors open files.)

The first step should probably be to implement an API that allows individual programs to be compiled separately, and replaced on the fly. The simplest and most robust way is probably to just use this as is, with an editor that works with programs in separate buffers, reconstructing the complete file from those buffers when saving.


Add vars for yiq color contrast function

Adds two vars instead of the hardcoded colors we had previously. This supersedes #23440, getting us close to what that implementation provides without all the additional Sass map merges.

The function determines brightness for us and makes a call on whether a #fff or #111 color passed color contrast against the background. A fixed percentage doesn't work here.

@mdo
I understand how it works, but there isn't fixed percentage. Here is a demo if you have time.
https://www.sassmeister.com/gist/efc3b9eafddadb17dd4c0b0873fd47e5


Consider boxing errors more

Clippy complains about my error enums based on Vulkano error types because they are very large (>= 160 bytes), and thus make Results very expensive to move around if the memcpy is not elided.
I think this is a valid performance concern from clippy's side, as I've observed my fair share of failed move optimizations from rustc/LLVM, and the performance impact that comes with them can indeed be quite significant.
On the other hand, I am also well aware that error boxing come with a large ergonomic hit. Among other things, it reduces ability to pattern match error types, adds annoying Box::new() everywhere, and if applied on the client side it breaks use of ? unless you write all the From<NotBoxedError> impls yourself. The latter is an argument in favor of implementing boxing on the side of the code that throws errors, if it is to be implemented at all.
Overall, I'm a bit torn here, and could use extra opinions from other people. Are you fine with the performance risks of having large results, or would you rather have vulkano do the right thing from the performance PoV even if it comes at some ergonomic cost (and a major error API break if done today)?

I think ValidationError should be boxed, but maybe not the rest.


Fix DBLoad result task

Problem
The "DBLoad: Installation results" task fails due to a variable in the when statement not existing. But on inspection the wrong variable is checked in the when clause
Solution
Replace the variable for the correct one

Sorry, I might have been too quick. I may have ran some old code. Will test this further


Change from html tables to csv in codeunit 5054

As suggested in issue #1057 switching from html tables to csv tables would take away the problem with the limitation of the number of fields (limitation of excel with html tables).
This solution is described here: https://blogs.msdn.microsoft.com/freddyk/2009/09/20/word-management/
please implement this, because it is now possible to add fields with an extension because of the new codeevents in codeunit 5054.

After another round of triage, we'd like you to add this as an idea to our official ideas page for proper prioritization. Please log at http://aka.ms/bcideas.


Add winget installation guide to README.md

Refine installation instructions
Add winget install method

I have requested Microsoft to add ModbusTool to winget. https://github.com/microsoft/winget-pkgs/issues/110759
They have added it into the winget package library few days ago.
When you do a winget search, you will see that ModbusTool has been added:
Name                  ID               Version      Source
--------------------------------------------------------------------
ModbusTool       ClassicDIY.ModbusTool    <IP_ADDRESS>        winget


DBScan with custom distance function?

Is it possible to provide a custom distance function to dbscan? Could you provide an example if it is possible or share ideas how to implement?
Kindly regards,
Maciej

use linfa_clustering::Dbscan;
use linfa_nn::{Distance, CommonNearestNeighbour};

// This allows the CustomDist type to be used as a distance function
impl Distance<f64> for CustomDist {
  ...
}

fn main() {
  ...
  let params = Dbscan::params_with(min_points, CustomDist, CommonNearestNeighbour::KdTree);
  let cluster_memberships = params.tolerance(tol).transform(dataset).unwrap();
}

@YuhanLiin Thank you very much. Could you give my a more precise example how to code the distance function? How do I write such a function if I have a data set with rows like this:
latitude, longitude, speed, bearing

I see there are some examples in the core library:
https://github.com/rust-ml/linfa/blob/master/algorithms/linfa-nn/src/distance.rs


feat(validate): display info about the org that is used for validation

In some cases,  devs would like to understand what went wrong in a validation run. sfpowerscripts
currently do not provide an easy mechanism which displays those details. So in those instances
additional scripts need to be done that will display the org info by traversing the org list. This
enhancement will display the org info when an additional flag is passed to validate.
Please note this flag has to be used without using the --deletescratchorg flag, otherwise the displayed info would not be good for consumption as the org would have been already deleted.
New flag to validate command --orginfo
Checklist
All items have to be completed before a PR is merged

[x] Adhere to Contribution Guidelines
[x] Updates to Decision Records considered?
[ ] Updates to documentation at DX@Scale Guide considered?
[x] Tested changes?
[x] Unit Tests new and existing passing locally?

Codecov Report
Base: 60.48% // Head: 60.48% // No change to project coverage :thumbsup:

Coverage data is based on head (2659c38) compared to base (0739751).
 Consider uploading reports for the commit 3e0aa55 to get more accurate results

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #1239   +/-   ##
=======================================
  Coverage   60.48%   60.48%
=======================================
  Files          64       64
  Lines        2126     2126
  Branches      453      453
=======================================
  Hits         1286     1286
  Misses        788      788
  Partials       52       52

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.

Wonderful Idea! will definitely make the sfpowerscript even more powerful!


Ported fmt.Errorf() -> fmt.Println()

Change Log

Removes all fmt.Errorf in favour of fmt.Println (better fix needed)
Formats the entire repository with go fmt

This PR completes issue #6
Please review and merge @Ashrockzzz2003 @Abhinav-ark

@Ashrockzzz2003 if we are porting the application to a TUI then we can have a diagnostics box on the right hand side of the screen where things can be monitored constantly and error messages / success messages can be printed.
It can keep track of all events that are happening within the application and give visual updates to the user. (this of it as being similar to the chat section of a multiplayer gaming lobby - PLAYER JOINED, PLAYED LEFT, etc.)

@Ashrockzzz2003 @IAmRiteshKoushik ErrorF was used because I wanted the application to stop in case of Errors.

While we now actually are making use of those lines. It now raises a new problem.
The problem
Consider the case where the user did not use Amrita VPN and an error is thrown. What happens is:
Execute() -> start() -> getCoursesReq() -> fetchHTML()
In fetchHTML()
https://github.com/CSE-25/amrita_pyq/blob/0b8264e5354474ea1d97c800b2ecde5b11d48df4/cmd/helpers.go#L16
This line prints the error first.
But we're also carrying the err string from fetchHTML back all the way to start() and printing it.
Now in the output: - TWO ERROR messages but in reverse order.
Error fetching the URL. Make sure you're connected to Amrita WiFi or VPN.
failed to fetch the HTML content

This doesn't look good to me. If we can give a cause and effect relationship to this and print properly, it will be useful. Else, we can just ignore this error message.
Or have a logger that separates debug and info level error messages to make better use of the logs.
What's your take on this @IAmRiteshKoushik and @Abhinav-ark?

I faced this issue when i tried to change Errorf to print.

@Ashrockzzz2003 @IAmRiteshKoushik ErrorF was used because I wanted the application to stop in case of Errors.

But return is already there to stop. But I'm sure Errorf did not stop execution, return did.
Let's try TUI
See how it goes.

@Ashrockzzz2003 if we are porting the application to a TUI then we can have a diagnostics box on the right hand side of the screen where things can be monitored constantly and error messages / success messages can be printed.
It can keep track of all events that are happening within the application and give visual updates to the user. (think of it as being similar to the chat section of a multiplayer gaming lobby - PLAYER JOINED, PLAYED LEFT, etc.)

let's try

Closing this PR.


How is inheritance managed with requests

Am I right about this : when you defined this set of classes:
import { Class } from 'meteor/jagi:astronomy';

const BaseClass = Class.create({
  name: 'BaseClass',
  collection: new Mongo.Collection('base_class')
  helpers: {
    dummyFunction() {
      console.log("Base class");
    }
  }
});

const Child = BaseClass .inherit({
  name: 'Child',
  helpers: {
    dummyFunction() {
      console.log("Child class");
    }
  }
});

And then you create a set of objects, BaseClass and Child instances.
new BaseClass({...}).save();
new Child({...}).save();

And then when you request a set of objects using BaseClass.find({...}), you get instances, but what do the call to the method dummyFunction does?
If I'm not mistaken, considering the what I tried, it always execute the parent Class dummyFunction. Am I right? Is it by design, or a bug? Child instances should behave following their Class, I think. Am I wrong about this?
I didn't try it with the very last versions, but you get the idea. If it was a bug, was it solved?

Nevermind, the documentation changed since last versions or I missed the typeField thing, now I get it. Sorry for that.


Problem with TCP connection to a PX4 SITL

Hi, I'm trying to connect to a PX4 SITL through TCP as a simulator, but when I'm using the line
ConnectionResult connection_result = mavsdk.add_any_connection(argv[1]);

with the argument for tcp:
tcp://:4560

I got this following error
[02:56:01|Error] connect error: Connection refused (tcp_connection.cpp:87)

I also tried tcp://<IP_ADDRESS>:4560, same result. And I can connect to the PX4 through UDP.

To figure out the problem, I also tried using python code
connection = mavutil.mavlink_connection('tcpin:<IP_ADDRESS>:4560')

which actually worked and I can see this line in the PX4 SITL terminal
INFO  [simulator] Simulator connected on TCP port 4560.

and I tried with 'tcpin:<IP_ADDRESS>:4560' to  'tcp:<IP_ADDRESS>:4560', which is
connection = mavutil.mavlink_connection('tcp:<IP_ADDRESS>:4560')

and I got the error
[Errno 111] Connection refused sleeping

which is similar to what I got for the C++ tcp connection.

FYI, I'm a debug build for MAVSDK, and the tcp connection line is from the takeoff_and_land example code. For what I'm working on, it would be more convenient for me to stay with C++.
Am I doing something wrong and how can I fix this?
Thank you.

If connection = mavutil.mavlink_connection('tcpin:<IP_ADDRESS>:4560') works, then this would be the way with MAVSDK:
ConnectionResult connection_result = mavsdk.add_any_connection("tcp://<IP_ADDRESS>:4560");

You said this does not work?

If connection = mavutil.mavlink_connection('tcpin:<IP_ADDRESS>:4560') works, then this would be the way with MAVSDK:
ConnectionResult connection_result = mavsdk.add_any_connection("tcp://<IP_ADDRESS>:4560");

You said this does not work?

No, it does not work, I tried use the argument through the terminal or write the them in the code like what you said here, none of them works. And here's the full log I received:
[09:54:49|Info ] MAVSDK version: v1.4.0-433-g2caa1c57 (mavsdk_impl.cpp:24)
[09:54:49|Error] connect error: Connection refused (tcp_connection.cpp:87)
Connection failed: Socket connection error

Did I miss something? I followed the example tutorial, and UDP method works. Is there something like environment variables or rules that I need to set up for this to work?

What is this SITL and how is it configured? Does it listen on 4560/tcp? The tcpin sounds counter-intuitive to me, but I assumed it was making a client, not a server. Is it right that SITL is a TCP server (and not a TCP client)?

Okay, I'm not entirely sure, I couldn't find out if the SITL is making a TCP server from their docs, but it looks like the add_any_connection() can connect to the python code with tcpin, and a python code with tcp can also talk to the one with tcpin, so I assume that tcpin makes a server, and the SITL is a client, since add_any_connection() can only work as a TCP client?
I think I can use a python code as a proxy to make this work, but is there any example for setting up a TCP server with C++?

I tried several different things, and had it figured out. I'm using a different approach, and I'm closing this issue now, thank you.

is there any example for setting up a TCP server with C++?

MAVSDK does not support being a TCP server. Only a TCP client.


Complete docs for RenderObject

@Hixie

796 -> 691

Done.  Thanks for the review.

Sorry, I had to stop half-way and only just finished. :-)
LGTM.

Oh!  Sorry.  I didn't notice you hadn't LGTMed the patch at the end.  /me will address your comments.

Followup in https://github.com/flutter/flutter/pull/4270


Can we add Shapes (Circle,Rect,Oval...etc)

Can we add Shapes used for canvas draw just like circle,rect ..etc ?

Duplicate of #72


lint fix : demo - demos

missing from #145

Does this work? Just tested locally and it still doesn't work.

Works for me?

What error are you still getting?

Did you try a fresh npm install? I think it's eslint again
.../react-motion/node_modules/eslint-plugin-react/lib/rules/prop-types.js:450
          propTypes.parent.type !== 'AssignmentExpression' &&
                          ^
TypeError: Cannot read property 'type' of undefined

working just fine with a fresh npm install

Humm that's weird. Switched to another laptop and now it works. Probably because of the artifacts of the integration/ stuff which isn't tracked by this repo.


fixed the dependency of moment.

Fix the dependency of moment.

https://github.com/hustcc/gantt-for-react/issues?q=is%3Aissue+is%3Aclosed
https://github.com/frappe/gantt/issues/31
https://github.com/frappe/gantt/issues/32
https://github.com/frappe/gantt/issues/18

please review it.

We now have 0 dependencies!


Imagebounds move over overlay

Hi and thanks for your great job.
I have an issue when i put an image bound on an map.
When i zoom on it, the background map is ok but the image added move.
Can you help me ?
Tanks a lot

no further response - closing


Implement 'depends_on'

Implementation of the depends_on key that builds on how dependencies are already handled. Adding tests for this is a bit difficult without a framework for testing dependencies in general, so I figure better testing can be handled separately.
#216

waw the implementation feels so simple.
Agree on the test, as much as I like them, it could be done afterwards (and might be covered by acceptance tests even)
LGTM 🐮


Tool does not allow edit of settings

On the latest QNAP firmware (<IP_ADDRESS>1) the editing of settings of the storj app does not work. Being on the dashboard and then clicking on the edit of any of the values causes no change. To edit any setting the only option is to click setup and go through the entire process again.

Hello @grburgos
If your node active then system will not allow to edit the settings so please make sure that your node stopped and also please install the latest version of the storjapp.
Thanks
Parag Padsumbiya

Hello @grburgos
yeah it was issue due to content security policy in new firmware so there were some js errors.
But we have fixed them and release the new version.
https://github.com/storj-thirdparty/qnap-storagenode-app/releases/tag/v1.1.3
Please try the new release and let us know your feedback.


Sync with GA app at the mobile timing and script

Hello.
How I can sync GA app timing at the mobile with PHP script?
In the example I see:
$secret = 'XVQ2UIGO75XRUKJO';
$time = floor(time() / 30);
$code = "846474";

But in the GA app another timing ... And when I put code from GA app its valid. But when time is over in the GA app code still valid.
Thanks.

GA will automatically sync itself to the real, correct time. You should sync your local server's clock manually. Codes might still be valid after a few seconds to compensate for network latency and other minor delay issues.


AWS cost attribution: documentation about opting in to have hub specific infra for compute and home storage

Historical context
In https://github.com/2i2c-org/infrastructure/issues/4928#issuecomment-2417091407, it was decided to not split compute or home storage per hub as part of aws cost allocation cluster rollout tracked by https://github.com/2i2c-org/infrastructure/issues/4878.
Currently this split has only happened for:

[x] openscapes
[ ] partly for victor: nodepools were split, but not home storage

Technical context
1. Splitting the nodegroups and home storage of existing clusters is not a simple operation and requires care.
We don't have documentation about this, but the following issues can serve as guidelines on what needs to have for all clusters:

https://github.com/2i2c-org/infrastructure/issues/4482
https://github.com/2i2c-org/infrastructure/issues/4485
https://github.com/2i2c-org/infrastructure/issues/4461
https://github.com/2i2c-org/infrastructure/issues/4475
https://github.com/2i2c-org/infrastructure/issues/4464

2. Splitting nodegroups per hub will be less cost efficient and will increase the average startup time
Hubs will not share nodes anymore, which means node packing will be less efficient and there might be more users on average waiting for a new node to come up than before.
Proposal
Splitting the compute and home storage cost per hub is presented as an opt-in feature to communities and we only do it for
new and existing communities that explicitly request it.
Definition of Done
- [ ] get feedback on the proposal above from @yuvipanda
- [ ] create **community facing documentation** about the pros and cons of having compute and home storage cost split per hub
- [ ] create **engineering facing documentation** about how to split compute and home storage cost per hub

I've refined this and added it to the refined column on the P&S board

Closing this in favor of #5074 #5075, #5077, #5078


Wrong Internet Explorer parsing

results of useragent.is:
{ ua:
{ version: '535.2',
webkit: true,
opera: false,
ie: true,
chrome: true,
safari: false,
mobile_safari: false,
firefox: false } }
It's from Google Chrome. Ie is set to true. Guess something wrong inside parser.
Please fix it. I like the simplicity of your module.

Could you post the user string that you used for parsing?


Workspaces - recognize existing instance of program

Description of the new feature / enhancement
When launching a workspace, it would be fantastic if you could recognize any programs that are  already open and simply reposition them, instead of opening a new instances.
Scenario when this would be used?
This would allow a user to launch a workspace when some, but not all, of the programs are already open, making the feature much more useful.
Supporting information
No response

Duplicate of #34571?

Duplicate of #34571?

Yes! My apologies. Closing now.


Violation of Constraint AASd-002 in multiple templates

Constraint AASd-002: idShort of Referables shall only feature letters, digits, underscore (""); starting mandatory with a letter. I.e. [a-zA-Z][a-zA-Z0-9]+
In multiple submodel-templates the Constraint AASd-002 is violated by SubmodelElements in SubmodelElementCollection-objects. Normally people wanna show with {00}, that the collection is actuallly a list and idShorts will be iterated in SubmodelElementCollection. E.g. IPCommunication{00} in the submodel-template "Digital Nameplate".

This may help:

If an idShort ends with '{00}', this indicates a suffix of the respective length (here: 2) of decimal digits, in order to make the idShort unique. A different idShort might be choosen, as long as it is unique in the parent's context.

from GUIDELINE: HOW TO CREATE A SUBMODEL TEMPLATE SPECIFICATION found on IDTA's website.

@jh-isw thank you for the referenced explanation, but {00} still does not comply with the specified constraint. The constraint description does not include any mention of exceptions, causing many developers to view {00} as a violation unless they have read the referenced guideline. Consequently, some SDKs, where constraints are implemented, throw exceptions when attempting to read such a template.
To address this issue, I see two potential solutions:

Modify the constraint description to include an exception clause.
Replace {00} with _00.

We discussed whether to relax the constraints for Submodel Templates (Submodel with kin=Template) or whether to change the way to denote such wildcards.
The decision was to change the "How to create a SMT", the new version will be published soon.
Additionally, most SMT with such constraints violations need to consider to use SubmodelElementList.

Hello,
please see: "IDTA GUIDELINE -- HOW TO CREATE A SUBMODEL TEMPLATE SPECIFICATION".
In this document (in review) we already said, we will replace "{00}" with "00". This is also already in the tool chain.
Therefore, I consider this solved.


Add license headers to all files

Add the GPL license headers to all source files.

I vote for it if GPL requires it (is it?), else against it.

It is standard and expected for GPL and any other license, Since the condition of the license is that all copyright notices must be preserved if someone uses the code in their own project they are forced to retain the header. By not having it they woud be free to use the code without attributing the source and thus frowned upon on any copyleft license.
For more info: https://www.gnu.org/licenses/gpl-howto.en.html


ScrollContainer scrolling with focus results in weird behavior

Godot version
4.0.alpha12
System information
macOS catalina 10.15.7
Issue description
scroll_container_bugreport.webm
Steps to reproduce

open a minimal reproduction project
focus button
scroll down the page with ui_down
hold ui_up

Minimal reproduction project
ScrollContainer-focus-bug.zip

This issue seems to have been fixed in master.


When I use the HTTP2 protocol, I occasionally encounter flow control error

What version of netty is this also do you have a reproducer ?

@yanghao605 ping

Closing as the reporter did not provide any more details