IP protection

It does not seems to be an IP protection of some kind to prevent spam. If someone breaks the honeypot it would be open for 1000+ comments spam?
Max 5 comments with the same IP on 10 posts on each day could be a solution. It should be optional if implemented, both to turn on/off and how many to allow before blocked.

The plugin requires a unique session ID for submitting a comment, for which you have to request a new form. This does slows bots down. Implementing a temporary IP block-list would add to the plugins bot protection, but if someone is trying to attack you, limiting the bot comments to 10 comments a day is still annoying and your the plugin still has to do a lot of work handing the blocking process. If an IP is attacking your site, the best course of action is to block this IP on the server level.

Then the question is if an IP protection is still a good idea or if session ID is enough? Maybe just have an option to block IP:s manually from an array.

Blocking IPs manually make a lot more sense to me, but if someone is attacking the comments, why not block them on the server level? They are clearly not interested in buying your product/reading your blog.

Ahh, you mean with htaccessm like this:
http://www.htaccess-guide.com/deny-visitors-by-ip-address/
That make total sense. Coming from the WordPress world, I'm a bit blinded by old habits. Maybe add something about this in the docs (for others like me):

This plugin does not block comments by IP.
Instead of preventing bots from accessing your comments, block them from your site completely, in your htaccess file like this:
[...]


test_string problem when bracket used

Dear,
In function test_string, if js has brackets , then test fails
e.g:
js = "{"strVar" : "hello world"}";
Regards,
Fuad

Bitbucket: https://bitbucket.org/zserge/jsmn/issue/39
Originally reported by: Anonymous
Originally created at: 2014-11-03T15:00:05.341

Have you also modified the test after changing the string?
In your case token 0 will be the root object, token 1 - strVar, token 2 - hello world. Which of course requires test code to be adjusted (to use 3 tokens instead of 2)

Original comment by: Serge Zaitsev


Support many_through_many

This commit adds support for testing many_through_many associations
along with a spec to test the behavior.

Hi @hetre85, thanks for the great PR.


Automation for Release building

https://figmentio.atlassian.net/browse/GRAPH-337
Here's an example of what a release looks like. It targets the main branch of graph-proto-as-schema, the cosmos branch of graph-ts, and the tendermint branch of graph-as-to-rust. It doesn't manipulate any files, it just copies the output across the steps as requires and adds them to a zip file

@pienkowb @Seb-figment @kruspy could I get you to have another look? https://github.com/lavabyrd/tendermint-protobuf-def/releases/tag/v2.1 here's an example of the generated files


Remove w3c_validators dependency

This was only used in the specs for W3cCss and W3cHtml, and only to raise library-specific exceptions. Use mock exceptions instead and remove the dependency.

Thanks! I had been meaning to do this. We should definitely try to keep these third-party dependencies out to keep things as lean as possible.
Merged in 1e24620ca6d4cdef642592f5dfee4b657f438bb4.


Script installer for Linux

I made a script installer and updater that makes it easy to install and update AB Download Manager on linux machines. This works for distros that comply with the FreeDesktop specifications. I think it would be a good way to install the app until it officially starts to roll out releases on these distros.
You can test it before merging using the following command:
curl -fsSL https://raw.githubusercontent.com/dagimg-dot/ab-download-manager/feat-install-script/scripts/install.sh | bash

I didn't update the README because I want you to update it how you want to. For the README the command will be something like
curl -fsSL https://raw.githubusercontent.com/amir1376/ab-download-manager/master/scripts/install.sh | bash

Thank you.


Add Football Table app

Description
Created footballtable app
Copilot

🤖 Generated by Copilot at 10f343a
Summary
:soccer::chart_with_upwards_trend::gear:

This pull request adds a new applet called FootballTable, which shows the standings of different football leagues. It includes the main code file footballtable.star and the manifest file manifest.yaml for the applet. The applet uses the football-data.org API to fetch the latest data and displays it in a scrolling animation.

FootballTable app
Shows leagues with API
Autumn of soccer

Walkthrough

Create and configure a new applet to display football league tables (link, link)

Define the main function that takes a config parameter for the league selection (link)
Define the get_schema function that returns a schema object with the dropdown options for the league selection (link)
Define constants and variables for the colors, the league codes, the number of clubs, and the promotion and relegation spots for each league (link)
Handle the HTTP request to the football-data.org API, the caching of the response, and the rendering of the animation of the table using text and padding elements (link)
Define the metadata and properties of the applet in the manifest.yaml file, such as the id, name, summary, description, author, file name, and package name (link)

I have read the CLA Document and I hereby sign the CLA


We couldn't deliver this payload: timed out

Hey I would love to use this integration, how can I troubleshoot a timeout error?
Issue
Following the steps, I get the following behavior:
✅  "worked" if I don't specify last 4 digits of an asana task
❌  Timeout error if I specify 4 digits
Screenshot
Github

Vercel (Zeit)

Hi @IliasDeros
the 10 second timeout is the lambda timeout behind the scenes.
It seems like the lambda returns immediately when you don't specify an asana ID - expected.
And then when you do give it an asana ID it's scrolling through pages of asana items (or potentially some connection to asana is going slowly)
It could be that you're chosing an asana ID that doesn't exist, or a very old asana ticket -  I would try creating a brand new asana task and using that in your test.  Let me know how you get on, this is the first community engagement! :tada:

Ah yes Vercel does have a 10 second duration limit for the free tier - https://vercel.com/docs/platform/limits#general-limits
Issue: Performance
In my team we have hundreds of tasks created every hour, and the search algorithm in this script goes through pages of recent tasks until a match is found, hence the timeout if there are too many tasks.
Solution
🎯 I will create a fork of this script that finds tasks by exact task ID to avoid searching


phrase pull by specific tag

Hey,
I know that phraseapp pull uses the yml, but sometimes I want that based on the YML configuration, pull only this specific tag (appended to the YML one) without pulling all strings or changing the YML for this, using the same files and not dividing by features.
If we divide by files, it will be a complicate configuration and number of files, as there are several teams with several features working at the same time, so isn't scalable.

Thank you for contacting us, we will get back to you soon

Hi @walling, just to make sure I understand it correctly. Basically when you provide are downloading locales you want to add a tag like phraseapp pull --tag mytag and then the tag for all locale targets should be set to mytag correct?

@theSoenke Ok, maybe I misunderstood the original poster. Our use case is basically to be able to filter on a specific tag. Let's say we have the following configuration with multiple targets:
phraseapp:
  access_token: SOME_TOKEN
  project_id: SOME_ID
  pull:
    targets:
      - file: ./apps/src/xxx/locales/<locale_name>.json
        params:
          tag: "react_xxx"
          file_format: node_json

      - file: ./apps/src/yyy/locales/<locale_name>.json
        params:
          tag: "react_yyy"
          file_format: node_json

      - file: ./apps/src/zzz/locales/<locale_name>.json
        params:
          tag: "react_zzz"
          file_format: node_json

With phraseapp pull it updates all files and we need to use git to reset some of the files. Basically, it would simplify the process, if we could specify phraseapp pull --tag react_zzz and only pull those locale files. Another solution would be to name each target and then specify --target zzz (just an example). What do you think?

Thanks for confirming that the approach with groups/specifying targets would work for you. I will further look into this and get back to you when I have any update

@theSoenke any update on this? We work with multiple teams and it would be very useful for us to be able to pull only certain tags.

@juliagarrigos Sadly I don't have an update yet.
Could is issue also be resolved by having multiple config files? Because as I understand it only certain targets should be pulled. The tag parameter is actually not really required for this because the goal is to limit which targets are pulled, right? So multiple config files could each have a different set of targets

@theSoenke yes, it is how we solved the problem for now, but that has its own issue because some of phraseapp features  that we would like to try (like github sync) and the AS plugin rely on having a single .phraseapp.yml file at the root of the repo.


Translated what-is-nextjs.mdx

Translated what-is-nextjs.mdx and others minor translate.

Fixed on #5


ES6 currying arrow functions: jshint says missing "use strict" statement when it does exist

I could not find anything about this, so I'm putting this here If it helps.
Consider the following ES6 code:
/*jshint es5:false,strict:true */
export default socket => store => next => action => {
  "use strict";
  socket.emit('action', action, store);
  return next(action);
}

When I execute jshint over this code it returns:
src/remote_action_middleware.js: line 5, col 2, Missing "use strict" statement.

1 error

I couldn't find a reason behind this.
If I remove the "use strict":
src/remote_action_middleware.js: line 4, col 2, Missing "use strict" statement.

1 error

obviously keeps failing because now it really does not exists.
Things that work perfectly (jshint says everything is ok)
The ES5 version:
/*jshint es5:false,strict:true */
export default function(socket) {
  "use strict";
  return function(store) {
    return function(next) {
      return function(action) {
        socket.emit('action', action, store);
        return next(action);
      };
    };
  };
}

With only one arrow function:
/*jshint es5:false,strict:true */
export default next => {
  "use strict";
  return next();
};

And this alternative:
/*jshint es5:false,strict:true */
export default socket => {
  "use strict";
  return store => {
    return next => {
      return action => {
        socket.emit('action', action, store);
        return next(action);
      };
    };
  };
};

I'm using jshint version 2.8.0

Nevermind, the correct code is this one:
export default socket => {
"use strict";
return store => next => action => {
socket.emit('action', action, store);
return next(action);
};
};
"use strict" statement must always be at the first top function.


[] parsed incorrectly leading to unrelated error message

Using [] like this:
module test {
  pure val foo = {
    pure val bar = 1
    [bar].concat(2)
  }
}

causes a completely unrelated error about cyclic definitions:
test.qnt:3:5 - error: [QNT099] Found cyclic declarations. Use fold and foldl instead of recursion
3:     pure val bar = 1
       ^^^^^^^^^^^^^^^^
4:     [bar].concat(2)
   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: parsing failed

because this is (wrongfully) parsed as:
module test {
  pure val foo = pure val bar = field(nth(1, bar), "concat") { 2 }
}

Workaround: use List(bar) instead of [bar]

I stumbled upon a similar issue while writing typescript and the autoformatter immediately made me understand I wrote something different then what I expected. I wrote
const a = foo(x)
[a, bar]

(forgetting the return keyword in the last line). As soon as I saved the file, it got formatted into
const a = foo(x)[a, bar]

which made me realize something was wrong.

A similar issue was reported by @angbrav involving tuple constructors operator call. In this example, one tuple construction ((bar, 1)) is parsed as the parameters in a operator call, and later, one operator call (head()) is parsed as a field access + empty tuple construction. So they "cancel each other out" and form a valid module.
module test {
  pure def foo(x) =
    pure val bar = x
    (bar, 1)

  pure def foo2(x) =
    pure val baz = x.head()
    x
}

is parsed as
module test {
  pure def foo(x) =
    pure val bar = x(bar, 1)
    pure def foo2(x) =
      pure val baz = x.head { Tup() }
    x
}

Wrapping the first top-level def in curly braces fixes the problem:
module test {
  pure def foo(x) = {
    pure val bar = x
    (bar, 1)
  }

  pure def foo2(x) =
    pure val baz = x.head()
    x
}

I just stumbled upon a similar issue as @angbrav . I cannot create a minimal example (because I do not udnerstand what exactly is happening) so let me describe how/when the problem occurs.

a function that returns a tuple
if it just returns a tuple, all is good
it if has one helper val, all is good
if it has two helpers vals, a parsing error is reported that an existing function does not exist.
as soon as I wrap all in curly braces, all is good again.

Is it an instance of the same error? To the best of my understanding, any number of helper vals before a single expression should be legal syntax


ISABEL RUIZ - 14-08-2019

Hello, I don't understand what is wrong if all tests passed

can you help me? thank you.


Be able to set registry mirror of docker

Is this a BUG REPORT or FEATURE REQUEST? (choose one): FEATURE REQUEST
Environment:

**Cloud provider or hardware configuration: bare metal
**OS (printf "$(uname -srm)\n$(cat /etc/os-release)\n"): centos 7
Version of Ansible (ansible --version): 2.4

In some cases, we need a way to set a registry mirror for docker, like the things described here, it helps a lot for local development or bare metal environment.

You can set that in the docker options in k8s-cluster.yml. Just add --registry-mirror=https://url to docker_options


Readonly visual bug in dark-mode

Weird grey square behind the arrow in dark mode when the field is readonly.
Also, the visual style of the field should match the default readonly field.
Currently, it use different colors.

Also somewhat present in light-mode

I cn open a PR for this

Fixed styles for dark-mode:

Fixed styles for light-mode:

I found one more issue when using theme system on the Details View.
Dark mode:

System mode:

Heya! There was indeed an issue with the dark mode not applying when using the system theme. I fixed it in version 4.2.1. :)


Fix link for TOAST UI Editor

Project URL
https://ui.toast.com/tui-editor/
Category
Editors
Description
Fix link for Toast UI Editor
Checklist

[x] Only one project/change is in this pull request
[x] Addition in alphabetical order
[x] Has a commit from less than 2 years ago
[x] Has a clear README in English

          1 Warning

:warning:
Found 3 link issues, a project collaborator will take care of these, thanks :)

Link issues by awesome_bot

Line
Status
Link

157
Error
https://dillinger.io/  Net::ReadTimeout

161
Error
https://markable.in/  Failed to open TCP connection to markable.in:443 (Connection timed out - connect(2) for "markable.in" port 443)

197
Error
https://web.archive.org/web/20160724152503/https://stackoverflow.com/documentation/markdown/topics  Failed to open TCP connection to web.archive.org:443 (Connection timed out - connect(2) for "web.archive.org" port 443)

  Generated by :no_entry_sign: Danger


Kotlin/JS support

Is there any chance to add Kotlin/JS support? The issue #5 doesn't mention JS target.

Yes, initially it was not planned to add in JS support. JS support is in progress in the multiplatform branch.
Closing this issue and adding JS support in #5


Collapsible/expandable sequence of small events

Small state events can take up a lot of vertical space on the timeline.
By default, a series of two or more adjacent small events should be collapsed into an abbreviated view that takes up much less vertical space. This will make it easier for the user to focus on important content like text and image messages from other users, rather than less important metadata.
For example, this is how Element shows a series of contiguous state events:

and then when expanded, it looks like what Robrix currently shows:

We would also want dynamic buttons that toggle between "expand" and "collapse" based on whether a range of state events was collapsed or expanded.

Inspired by the recent new UI of Rust doc, I feel that changing "Collapsible/expandable" to "Summary/show all" may better convey the semantics of this feature.

Indeed, I agree. It's also related to github's details+summary markdown feature: https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting/organizing-information-with-collapsed-sections


Huge refactor

It's been a while since the last time I've maintained this project, so a lot of code is included in this PR

Now using poetry
Tests added
The client is working again

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@9daf40b). Click here to learn what that means.
Patch has no changes to coverable lines.

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the GitHub App Integration for your organization. Read more.
Additional details and impacted files
@@            Coverage Diff             @@
##             master       #19   +/-   ##
==========================================
  Coverage          ?   100.00%
==========================================
  Files             ?         7
  Lines             ?       207
  Branches          ?         0
==========================================
  Hits              ?       207
  Misses            ?         0
  Partials          ?         0

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Add top header option

Remove custom CSS - use sticky-top
Inject top header if file present
Update documentation.

The basic layout is:

   TOPHDR content - scrollable, not sticky

     HDR content - sticky

sticky-top needs to be on an outermost
 for it to work properly. Combining TOPHDR and HDR into one single file using args.hdr would make them both sticky.  Removing sticky-top from  stops any of the content sticking. You would be correct about just using one fiel if you don't want top header to disappear, but if you do you need both.
Having both a TOPHDR div and a HDR div give a user more flexibility.


IPAM enhancements

Added support for the following scenarios:

ContivCIDR + NodeInterconnectDHCP
ContivCIDR + NodeInreconnectCIDR(override)

After this change NodeInterconnectCIDR in contiv.yaml must be empty
in order to use the subnet computed from ContivCIDR.

Coverage decreased (-0.03%) to 76.197% when pulling 2d119bc4aa8bb74d628f756b1fc77ad1777ac9d7 on lukasmacko:ipam into a3678d9c0ad3052718295061e1dacb346e413b38 on contiv:master.


docker-kubernetes feature docs

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


feature request: journald input - run journalctl seperately for each service unit

we can now provide list of units to collect in array, but we cannot configure other options for each unit.
for example, i want to collect "error" log level for kubelet.service but i want "info" for ssh.service

Typically, I would expect to use multiple instances of the operator in such a case. Is there a reason why this is not a reasonable approach?

oh hmm you are right, that is possible. Thanks!


pass params in data

Send request params in the request body instead of the query string. This avoid a pydiscourse.exceptions.DiscourseClientError: Request-URI Too Large error when updating large amounts of data.
I tested this on update_post which is where I was running into this error but didn't test any additional methods.

Guess I need to update some tests too. Does this sound like a reasonable change before I do that?

Send request params in the request body instead of the query string.

Yes! With a caveat...
This sounds like a really good move for POST requests. However the request body is ignored in GET requests (and is expected to be ignored in DELETE requests too) so the change needs to affect only POST and PUT requests.
Solution should use both params and data for the request, from there which is filled could be conditional on the request type, handled at the calling method level, etc.
This is all contingent on my assumption from a brief review of the requests codebase that requests will not move the data values to params for GET requests. If I'm wrong on that this this can be ignored!

@bennylope thanks for the help! What do you think of the latest commit? I think that fits with what you were suggesting.

Looks good!
Have you tried using the changes yet, GET and POST requests alike?

Just update_post. I'll test out a GET and POST on my forum and let you know.

Okay, I ran the following methods on my forum and everything looked good:

user, GET
update_post, PUT
grant_badge_to, POST

This is up on PyPI as version 0.7.0. Thanks!

:+1: thanks for the help.


chore: remove process reference in umd builds

update rollup config to replace 'process.env.NODE_ENV' occurrences for umd builds.
this would prevent the build from loading via the

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


input artifacts are duplicated in argo_archived_workflows.workflow column value

argo_archived_workflows table stores json blob related to workflow in the workflow column, when i look inside the json i see the input artifacts value are repeated for as many times as there are steps....to save space i think just one instance of each artifact should be stored

The workflow column is a copy of the workflow. I can't see how this could happen. Please share archived workflow.

what I can see is that its a 4 step workflow where the artefact from step 1 is passed into step 2/3/4. to save space I think it should refer to a pointer id of the artefact and only store the artefact once rather than x times

not a bug, it was because wf has workflow.params being copied into each template/step level params


add retrain method

This will clear current model/detected patterns.

Should take in string or list of strings


Initial state estimation based on warm-up hindcast experiment.

Description
Describe what you were trying to get done or your feature request.
Environment

Raven version used, if any:
Python version, if any:
Operating System:

Steps to Reproduce
Paste the command(s) you ran and the output.

Additional Information
Links to other issues or sources.

@huard I think we can close this as it's pretty much your resume() method?


Android 30 does not respect viewport-fit configuration

Device information:

Hardware: Pixel 3
Operating System and Version: Android 11 Beta 2
Forge Platform version: v2.9.1beta-1

App information:
forge-workspace/modules_interactive

Google must have fixed this somewhere between Beta 2 and the final release because it seems to work fine now.


Consider switching timing to time.monotonic()

All timing currently relies on system clock. It would be better to use monotonic.
https://docs.python.org/3/library/time.html#time.monotonic

This requires Python 3 unless you want to use something like https://pypi.python.org/pypi/monotonic/

Yeah, it's mostly a pipe dream since I don't remember feeling good about the quality of that module. Ideally we would switch to Python3 with guv, but that would require a big rewrite in some places. There's not a great resolution for this, but it's consequences are pretty minor as long as ntpd is being run.

Yea I hear that. Last time I looked at guv it was still a bit greener than I'd like, although it looks like dev work is ongoing


git revert change error

Does this issue occur when all extensions are disabled?: Yes

VS Code Version: 1.76.0
OS Version: Windows_NT x64 10.0.19044

Steps to Reproduce:

modify the code from a git repo
click left highlight bar to show local working changes window & click revert change
will generate a lot of useless duplicate code

I assume this is a duplicate of #176051 and is thus fixed in 1.76.1?

Yep, can confirm it is fixed with the latest release.


MINIFICPP-1084: Linter check should be platform independent

*.h files are now properly checked in libminifi/test folder
fixed linter issues in previously unchecked files
separated build, test, linter steps in CI for readability
Thank you for submitting a contribution to Apache NiFi - MiNiFi C++.
In order to streamline the review of the contribution we ask you
to ensure the following steps have been taken:
For all changes:

[x] Is there a JIRA ticket associated with this PR? Is it referenced
in the commit message?

[x] Does your PR title start with MINIFICPP-XXXX where XXXX is the JIRA number you are trying to resolve? Pay particular attention to the hyphen "-" character.

[x] Has your PR been rebased against the latest commit within the target branch (typically main)?

[x] Is your initial contribution a single, squashed commit?

For code changes:

[x] If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under ASF 2.0?
[x] If applicable, have you updated the LICENSE file?
[x] If applicable, have you updated the NOTICE file?

For documentation related changes:

[x] Have you ensured that format looks appropriate for the output in which it is rendered?

Note:
Please ensure that once the PR is submitted, you check GitHub Actions CI results for build issues and submit an update to your PR as soon as possible.

You could also assign yourself and link MINIFICPP-1521 jira ticket to this PR. It seems to me the only thing missing from that is the --quiet flag to satisfy that ticket as well.

Good idea, I added the quiet flag in 7e3e513


Create Reviva.netkan

New mod to allow dynamic switching of IVAs. I'm new to KSP modding and CKAN, but I followed the steps on the wiki and test installed using netkan.exe / ckan.exe.

https://github.com/harveyt/reviva
https://forum.kerbalspaceprogram.com/index.php?/topic/206744-*


error of tensorflow-metadata 1.13.1

When executing "1.1", it shows:
"ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behavior is the source of the following dependency conflicts.
tensorflow-metadata 1.13.1 requires protobuf<5,>=3.20.3, but you have protobuf 3.19.6 which is incompatible.”

This only affect WD captioning. Everything working normally if you train locally captioned samples.


Redirect from ver/[0-9]+.[0-9]+ paths to ver/[0-9]+.x

We recently changed the format of version-specific URL path segments to use version numbers in the format /ver/[0-9]+.x/, rather than the previous /ver/[0-9]+.[0-9]/. This was to avoid giving users the impression that we only supported even version numbers.
However, we need a way to redirect from the old version number format to the new.
CC @ravicious

Closing since Teleport-owned sites no longer link to specific version paths in the docs.


[ja] Translate tasks/administer-cluster/migrating-from-dockershim/check-if-dockershim-deprecation-affects-you into Japanese

This is a Feature Request
What would you like to be added
Translate tasks/administer-cluster/migrating-from-dockershim/check-if-dockershim-deprecation-affects-you  into Japanese.
Why is this needed
This page has not been translated.
Comments
/language ja
/assign

/triage accepted

PR:
https://github.com/kubernetes/website/pull/31285


Improve PIT performance

🌟 Feature Description

Current PIT implementation has a lot of performance trap and should be fixed.
Motivation
PIT feature is about 100 times slower than normal feature which is ridiculous. Financial PIT data usually have four points per year so it should be 50 faster than normal feature.
During review PIT code, I found following problems:

PIT part

https://github.com/microsoft/qlib/blob/ecbeeafdc141ed89d5daf37ddfa20717190dfdb1/qlib/data/pit.py#L23-L48
In line 28, we loop every step in time series, and in each _load_feature function in line 39, we read the whole data file and index file.
Which makes about 1000 times slower for 1000 trade day. data file and index file should be read only once for one feature.

LocalPITProvider part

_load_feature is actually implemented here.
https://github.com/microsoft/qlib/blob/ecbeeafdc141ed89d5daf37ddfa20717190dfdb1/qlib/data/data.py#L787-L794
Here, we read the whole data file but we pass data_path to nested function instead of data object!
https://github.com/microsoft/qlib/blob/ecbeeafdc141ed89d5daf37ddfa20717190dfdb1/qlib/data/data.py#L813-L817
This will cause another 2 times slower.

read_period_data part

Line 150, read file in python loop:
https://github.com/microsoft/qlib/blob/ecbeeafdc141ed89d5daf37ddfa20717190dfdb1/qlib/utils/__init__.py#L147-L156
OK, this may be acceptable in C but not in python. Python loop is very slow and even in C, deal with file content without stream buffer is not recommend.

Alternatives
Use current slow implementation.
Additional Notes
I'll try to re-implement PIT workflow.

BTW, current PIT models seems not support adjusted point in history. For example:
we have data like this
[
     (20120411, 200904, 0.403925  ,<PHONE_NUMBER>),
     ...
     (20111018, 201103, 0.318919  ,<PHONE_NUMBER>),
     (20120323, 201104, 0.4039    ,        420),
     (20120411, 201004, 0.403925  ,<PHONE_NUMBER>),  # adjust history data by company
]

https://github.com/microsoft/qlib/blob/ecbeeafdc141ed89d5daf37ddfa20717190dfdb1/qlib/data/data.py#L797-L821
if cur_time is 20120411 and start_index is -1 which may created by P(Ref($$roewa_q, 1)),  period_list will be [201004, 201003].
This will lead to serious and difficult to debug bugs.

The collector.py doesn't work now due to URL 404, could you please give me a PIT data file, let me research the PIT optimization problem?


Executors amount is not enforced (failing test case AND its fix)

fix #496
This PR is atop of my executors-amount-is-not-enforced branch, so it contains the test case along with its fix.
Just dont merge this PR blindly as the code fail miserably the DRY principle ;)
I guess it pin point where the problem is, and I just hope it will inspire you to find a more elegant solution.

Thank you!


FLAIR images in range [0, 255] cannot be opened

Describe the bug
FLAIR images, with values in the range [0, 255], cannot be opened in Raidionics. The automatic parsing considers them to be annotation masks and not proper radiological volumes at the moment.
Error messages
Unable to load FLAIR.nii.gz. Error message: no MRI volume has been imported yet. Mandatory for important an annotation.

A quick-fix has been added in version 1.2.3, to consider any loaded input with more than 25 unique values as a radiological volume (otherwise still considered as an annotation mask).


Use tinyvec 1.0

Hi again.
tinyvec has a 1.0 version out now, so you might care to update.
I don't think there's any actual break between 0.4 and 1,0, so you should be able to just bump the number and go.

I have bumped the number in tinymap v0.2.4, thanks for the heads up!


Fail to load - Chrome.

Describe the bug
Failure to load - missing manifest...
To Reproduce
Follow instructions for OldTweetdeck, once folder for better tweetdeck is selected:

Expected behavior
Loaded extension
Desktop (please complete the following information):

OS: Windows 11
Browser Chrome Version 116.0.5845.97 (Official Build) (64-bit)

Thanks!

whoops. My error. Failed to read.


Support dashboard is missing the email for some users

Some of the dashboard requests show up as from Anonymous and clicking the email button does not input an email address.
I can see the original support email which does have the address so I know this info exists.

@xavierdecoster

I know some of the support forms are submitted anonymously, so I'm surprised the email address pops up somewhere else. Will check.


python exec: remove numpy patching

@farizrahman4u if we get rid of this, are we going to have the same numpy problems in the new version? We can't just forget we had this problem.

If this doesn't have any undesired side effects, we can add the patch upstream here:
https://github.com/bytedeco/javacpp-presets/tree/master/numpy

@farizrahman4u can you send the PR for javacpp? I like @saudet 's suggestion.

We dont need this patch anymore in the new python executioner.

We dont need this patch anymore in the new python executioner.

Is it because it doesn't use multiple interpreters anymore? Or what's the reason?

@saudet exactly: https://github.com/KonduitAI/deeplearning4j/blob/fr_fastpy/datavec/datavec-python/src/main/java/org/datavec/python/PythonContextManager.java#L26


[FEAT] Clear Keyboard Shortcut

Is your feature request related to a problem? Please describe.
No.
Describe the solution you'd like
Allow users to set a customizable keyboard shortcut (e.g., Control + E) for clearing the chat history.

@tanchekwei Would you like to add this?

@tanchekwei Would you like to add this?

@sunner Do you mean just adding Clear Keyboard Shortcut or allowing Customizable keyboard shortcut?

@tanchekwei Would you like to add this?

@sunner Do you mean just adding Clear Keyboard Shortcut or allowing Customizable keyboard shortcut?

Add a shortcut is good enough

@sunner should we add shortcut for Setting as well.
For example, Ctrl + ,, following vscode

Included in https://github.com/sunner/ChatALL/pull/272


odyssee of a noob trying to get the ID of inserted row

This may seem like bashing node-sqlite3. But I am very thankful for this tool so please take it as input to make it more accessible to new users (= noobs).
It took me way too long to create a query that inserts a new row and returns lastID without adding any other data.
Noob-Trap Nr. 1
Coming from other databases, it is not so clear to use this syntax:
INSERT INTO
  table
default VALUES

Seems to me sqlite does not explain it's dialect of sql anywhere. I must have missed it. But that has nothing to do with node-sqlite3.
Noob-Trap Nr. 2
Then it did not seem clear to me what you have to do when you are not passing any params to db.run. Do I have to pass null? Can I simply emit params and the following ,? Seems like the last is true. The trouble here is: When you experiment with adding null, considering the other two problems (sql-syntax mentioned before and retrieving ID mentioned further down), it is hard to isolate the error that occurs.
Noob-Trap Nr. 3
Every node callback uses (error, result) signature. Every but sqlite3 in this case. Or am I understanding this wrong?
When running db.run(sql, (error, result) => {}) result is undefined.
So I searched google and read through the documentation again carefully. Hm. Data is returned in this?
So I try:
db.run(sql, (error, result) => {
  console.log(this)
})

...and get back undefined.
Now I admit that was very nooby. And finally I did realize it would have to be
db.run(sql, function (error, result) {
  console.log(this)
})

because node-sqlite3 is passing something into this. But this trouble only arises because data is returned in this which seems extremely odd to me. Any other comparable tool I have used so far (nano, craddle, pouchdb, pg, mysql) returns the new ID as part of result.
It would have been a great help if there were a simple example explaining how to insert a new row and retrieve the created ID.
Most other comparable tools add some simple examples to every part of the API. It may seem like noise to the expert. But to someone new to the tool, maybe even new to node, and expecially when things are different than what you expect, this can be VERY helpful.

Another problem with using this is that you can't use an arrow function as the callback (since they lexically bind the this value).

@barbalex SQLite's documentation actually has a section called SQL As Understood By SQLite. It's comprehensive and has nice diagrams.
As an alternative to Database#run(), you can use Database#prepare() to get a Statement:
let stmt = db
  .prepare(sql)
  .run(err => console.log('row:', stmt.lastID))

In practice, if you're inserting many rows it's faster to prepare a statement once and reuse it with different parameters than have SQLite prepare a new statement for each row.

@lvivier thanks!

Regarding Noob-Trap Nr. 2...
It is fairly common practice to use square brackets to indicate optionality, which is what the documentation does like so:
Database#run(sql, [param, ...], [callback])

The square brackets tell you that both the potential list of parameters and the callback is optional. Technically, you might argue it should be something like this:
Database#run.(sql [,param, ...] [,callback])

Since the commas only are necessary if the parameter is supplied, but I guess there is an assumption that you should know you wouldn't include the comma without supplying a parameter.

Thanks all - the docs have now been updated with the suggestions 🙂 https://github.com/TryGhost/node-sqlite3/wiki/API


Bad queries no longer return 500

In the past, I would get a 500 when I tried to create a databse two times.
See here
I updated from rc26 to rc30 and the issue appeared.
I would also get a 500 when dropping unexisting users, and other bad queries.

looks like ea5a321 is what changed this.  @toddboom is it right that trying to create a database that already exists is no longer an error? see https://github.com/influxdb/influxdb/blob/e09cdede4a6801163b6c2a754bb6a95588232f72/httpd/handler_test.go#L218-L232

@ReAzem this is actually intended behavior - changed in PR #2186. we decided that those specific queries should not be returning 500, since there's technically nothing wrong with the server (i.e. it's not an Internal Server Error). the queries are processed correctly, but the payload returned should have accompanying error messages.

@toddboom does it seem inconsistent to have a success code but then the body has an error message?  should a client consider it a success or an error?

i agree that 5XX statuses probably weren't correct.  what about some 4XX statuses though?  e.g. 404 for a database not found, 409 for trying to duplicate a database, etc.

@neonstalwart we've probably had some variant of this discussion about a dozen times internally, so your points are definitely justified. i do agree with you, but the goal was to get it away from 5XX codes to something a little more sane, and we can handle individual cases more specifically. some things like creating databases can be more idempotent-ish this way - there were a lot of cases where the 500 caused confusion or failing scripts.

i like 409, fwiw.

yeah, i can see there's some back and forth and i like some of these being allowed to be idempotent - for example, i opened #2458 - but i think it may have swung too far the other way now.

fwiw, since meaningful status codes can be just as useful as being idempotent for scripting (e.g. you can decide whether 409 is a really an error for your script or if it can be ignored) i could go either way on idempotent vs meaningful status codes but probably favor the status codes

I agree what 5xx was bad, but I think that they should be 4xx codes.

+1 for 4XX codes, they are semantic for bad queries etc as those are user/client errors.
200 OK is not semantically correct if things are not indeed "OK".
400 is nice for scripting as others have pointed out, most HTTP tools will return non-zero exit codes on non-2XX/3XX responses which is useful.

ok, i'm going to rename this issue and try to clarify the status codes for each case. thanks for all the feedback!

work began, discussion ensued. the group consensus is that for now, we're going to return a 400 for parser errors and continue to return a 200 for the time being, even for NOT FOUND or ALREADY EXISTS messages, partly due to the fact that queries can be grouped together and it may be difficult or impossible to determine a "proper" response code. additionally, most of the write path is going to change in the next week, which will obsolete some of these errors.

Believed fixed. Please open issues for specific return codes that seem problematic.


[Material] Lightweight Styling - ToggleSwitch Styles

Following the guidelines from https://github.com/unoplatform/Uno.Themes/issues/854, refactor the resources for all styles related to this control into ThemeDictionaries ("Default"/"Light") and make sure to reference these resources using the ThemeResource binding in ALL places within the style

Will need to wait for the new ToggleSwitch to be merged first
https://github.com/unoplatform/Uno.Themes/pull/1031

https://github.com/unoplatform/Uno.Themes/pull/1031 is now merged
Ready for Lightweight Styling

Closed with https://github.com/unoplatform/Uno.Themes/pull/1130


Add sqids as user for ocaml-ci

https://github.com/sqids/sqids-ocaml

Thank you for your interest in OCaml-CI. Please follow the instructions from https://ocaml.ci.dev/getting-started to get ocaml-ci installed into your GitHub user. Please let us know if you have any problems


model file

Hi,
Can you share your trained model file?

See here https://github.com/Cyanogenoid/vqa-counting/releases/tag/resources

Thanks！Can you please also share your vocabulary (for both question and answer). It seems that there are some differences of your provided pre-trained model and the code.
I received following error when load your model:
While copying the parameter named "text.embedding.weight", whose dimensions in the model are torch.Size([13759, 300]) and whose dimensions in the checkpoint are torch.Size([16139, 300]).

You are loading the trainval weights, right? Easiest way to get it working is to run git checkout trainval, then python preprocess-vocab.py. The issue is that the master branch creates the vocab from train, while the trainval model assumes the vocab to come from trainval.
Currently it always loads the vocab from the file system, but the correct vocab is stored in the .pth file. I'll change it so that it loads from the .pth when resuming.

I see. Now it's fixed. But we find the test-dev results on VQA-2.0 of this model is  {"other": 57.21, "overall": 66.58, "number": 48.79, "yes/no": 82.27}}. Which is different from your presented accuracy. Any thing we missed?
Thanks!

That's strange. Just to make sure, you are using the adaptive proposals (max 100 proposals per image) and not the 36 fixed proposals, correct?

I'm getting almost exactly your results (within 0.04) when I use the 36 fixed proposals instead of 100 adaptive proposals, so I'm pretty confident that that's the issue. Once you switch to the 100 adaptive proposals, you should be able to reproduce my numbers. Not sure where that tiny ~0.03 average difference comes from.

I use 100 adaptive proposals but I got
[{"test-dev": {"other": 58.8, "overall": 67.9, "number": 51.03, "yes/no": 83.05}}]

Yes, that is the expected result. sxjzwg told me that the issue is indeed because they were using 36 propsals instead of 100.


Form Recognizer GetCustomModel(); sdk error -> Azure.RequestFailedException: 'The Form Recognizer API version used to create the model and the current API version used for GET model are incompatible. Status: 400 (Bad Request) ErrorCode: 1027

Query/Question
Using form Recognizer's labelling tool https://fott-preview.azurewebsites.net/ on v2.1 public preview I have trained a Custom model with labels. But not able to fetch available models & custom model using  (trainingClient.GetCustomModels(); & trainingClient.GetCustomModel()) using C# SDK
Though I'm able to fetch using API
Using SDK - Azure.AI.FormRecognizer v3.0.0: Model is not fetched
Status - Error: Azure.RequestFailedException: 'The Form Recognizer API version used to create the model and the current API version used for GET model are incompatible. Status: 400 (Bad Request) ErrorCode: 1027
        static public FormTrainingClient AuthenticateTrainingClient()
        {
            string endpoint = "<End_Point>";
            string apiKey = "<Key>";
            var credential = new AzureKeyCredential(apiKey);
            var trainingClient = new FormTrainingClient(new Uri(endpoint), credential);
            return trainingClient;
        }

        static public void GetModelusingSDK()
        {
            FormTrainingClient trainingClient = AuthenticateTrainingClient();

            string modelId = "<Model_ID>";

            CustomFormModel model = trainingClient.GetCustomModel(modelId);
        }

Using API with same form recognizer credentials
Status:  Successful
        static async Task GetModelusingAPIAsync()
        {
            string endpoint = "<End_Point>";
            string apiKey = "<Key>";
            string modelId = "<Model_ID>";

            var client = new HttpClient();
            var queryString = HttpUtility.ParseQueryString(string.Empty);

            client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", apiKey);

            queryString["op"] = "full";
            var uri = endpoint + "formrecognizer/v2.1-preview.1/custom/models/" + modelId + "/?" + queryString;

            var response = await client.GetAsync(uri);
            string responseBody = await response.Content.ReadAsStringAsync();
        }

Also when calling list models using SDK - Models are not fetched BUT calling API serves the need
Pageable<CustomFormModelInfo> models = trainingClient.GetCustomModels();

Am I missing something here?
Environment:

Name and version of the Library package used:
Azure.AI.FormRecognizer v3.0.0
Hosting platform or OS and .NET runtime version (dotnet --info output for .NET Core projects):
1. Windows 10
2. Dot Net core 3.1
IDE and version:
Microsoft Visual Studio Enterprise 2019 Version 16.6.5

Thank you for your feedback.  Tagging and routing to the team member best able to assist.

Thanks @jsquire .
@sachinpatel248 when you say "Using API " you mean using directly the REST API? (looks like it but want to confirm).
Currently the 3.0.0 SDK only supports v2.0 of the service, which is why you won't be able to retrieve models created in later version.
We are working on 3.1-beta.1 which will start supporting v2.1-preview service version but estimated release date is mid October.
If you don't need the new functionalities that are supported in v2.1-preview, I would recommend training your models using labeling tool with v2.0 so then you can use the v3.0.0 SDK
FYI @ctstone

Thanks, @maririos
Yes, your assumption is correct I did mean REST API when said "using API".
And thanks very much for clarifications & planned release date for a newer version of SDK.

Sure. We will post more information in this issue: https://github.com/Azure/azure-sdk-for-net/issues/14675 so you can follow the progress of the work/features/release for 3.1-beta.1


Automatically change account when in a certain channel

What should be added?
The option to automatically change accounts when swtiching from tab to tab, or to assign a certain account whenever a certain channel is open.
Why should it be added?
Many times I accidentally type something on one account when I want to type it on another, this would help reduce the chance of this happening.

This issue is out of scope of the Chatterino project. Making logins per split would be a lot of effort.

I think the new addition of Send a message as bonta1... in the current build should cover this sufficiently. I don't see a good reason to implement this idea.


Fixed #633

This fixes #633

Thank you for your contribution :+1: It's now live as AutoFixture 3.47.2.


Spike: slas-react-sdk #2

Description

Status - Looking for architectural feedback
This is a spike PR exploring re-usable SLAS react hooks in a new package. The goal for this new package is to provide common shopper authentication functionalities for PWA projects. A pain point that we have today is the SLAS module (auth.js) is created inside template-retail-react-app, which means, after customer generate a project, they will not be able to receive new features and bug fixes. We'd like to extract the SLAS module into a separate package that we can maintain and distribute via npm.
In this PR, I created a new package in the monorepo called slas-react-sdk (name open to feedback).
API Interface
The public API interface of this package is consists of two parts.

Context Provider Component
useShopper hook

Let's take a look at how it works in a project:
Provider
First, you need to wrap your react application using the provider, in a PWA kit project, this usually is done in the _app-config component.
import {Provider} from 'slas-react-sdk'

const App = (props) => {
return (
        <Provider
            proxy={`http://localhost:3000/mobify/proxy/api`}
            organizationId="f_ecom_zzrf_xxx"
            clientId="c9c45bfd-0ed3-4aa2-9971-40f88962xxxx"
            siteId="RefArch"
            shortCode="8o7mxxxx"
            debug={true}
        >
            {children}
        </Provider>
    )
}

It is important to note that the Provider component will automatically initialize the "session".
The initialization flow is:

hydrate tokens from the storage (by default it's localstorage, it can also be Cookies, memories, external storage etc.)
if we have a valid access token, then we are done, the app will re-use the existing token.
if no valid access token, but we have a refresh token, we will use the refresh token in exchange for an access token
if neither access token nor refresh token is present, we login as a guest user following the PKCE flow.

The provider handles invalid/expired tokens and will make sure there is always an access token associated with the current shopper, either guest or registered user.
proxy and debug are two optional properties and the rest are mandatory commerce api configuration values.
debug prints additional logging to the console.
useShopper
Second, in a functional react component (or a hook), call useShopper to get access to the currently authenticated guest/registered user.
import {useShopper} from 'slas-react-sdk'

const SlasDemo = (props) => {
    const shopper = useShopper()

    return (

authType: {shopper.authType}

isAuthenticated: {shopper.isAuthenticated.toString()}

isInitialized: {shopper.isInitialized.toString()}

isInitializing: {shopper.isInitializing.toString()}

accessToken: {shopper.accessToken}

refreshToken: {shopper.refreshToken}

            <button onClick={shopper._refreshAccessToken}>start refresh token flow</button>
            <button onClick={shopper.loginAsGuest}>start guest user flow</button>
            <button onClick={shopper.logout}>logout</button>
            <button onClick={() =><EMAIL_ADDRESS>'Test1234!')}>
                login test user
            </button>

    )
}

Example 2 - use useShopper to power SCAPI data hooks:
import {useShopper} from 'slas-react-sdk'

const useProduct = async (props) => {
    // by using a selector, re-rendering is minimized, only accessToken change triggers re-rendering
    const accessToken = useShopper((state) => state.accessToken)

    const product = await fetch('/products/:productId', {
      headers:{
        Authorization: accessToken
      }
    })

    return ...
}

Shopper object:

Token storage
By default, tokens are stored in localstorage.

DEMO
👉  https://scaffold-pwa-test-env.mobify-storefront.com/
Implementation detail
An important implementation detail is, the package manages internal state using a library -> zustand, I think the use case of slas-react-sdk is perfect for this tiny state management library and I'll explain why.

first of all, it is tiny - 1.15kb
it has almost everything you need for state management, yet it has a very small API surface. Basically all you need to know is the create function and the understanding of the flux pattern
you can use selectors, so you don't need to worry about React Context rendering issues, "a single property update cause everything to re-render"
Most importantly, it handles syncing state and persist storage automatically. This is a very important feature for slas-react-sdk because the auth tokens must be stored in a browser storage (localstorage or cookie)
add to the point above, storage is versioned and it allows us to migrate storage schema and we don't need to worry about breaking changes so much
Way less boilerplate than React Context

Note: this should be implementation detail and the API must not force users to use zustand in user land.
What's next???

[ ] BLOCKING support server side SLAS
At the moment, this PR doesn't work on server side. We must either create another non-hook API that works on server side, likely an async method can be called in getProps, or wait for the SSR hook support in Ben's PR.

We could also take this opportunity to look at implementing private client auth flow on the server side, we will get better performance if we can implement private client flow, and potentially expose the flow with a few express handlers.

[ ] add phased rollout support
I can imagine we add a flag to enable phased rollout and make it work with plugin_slas.

[ ] add Federated Login support

How to develop/test locally?
At the moment, I'm just using template-typescript-minimal as a testing fixture and committed a few changes in the template for testing purposes. The changes will be reverted.
npm ci
cd ./packages/template-typescript-minimal
npm start

Ben says: We also need to support classical react component, a hoc

TODO: we need a promisy api to wait for authentication flow to finish

Can we revisit our interface, specifically how we handle promises? We have mentioned that we wanted a promise-based API (as one of the blocking next-action items). But from what I've seen in other data-fetching libraries (like react-query, react-async-hook, swr), they return data, states, and not promises.
Say, our hooks do return promises (I'm looking at the code sample for useProduct in the PR description). We're not setting up the end users for success. It's tricky to handle the async nature of data fetching correctly in React components (as seen in this article):

If a promise has not resolved, we still need to render something. They'll need to track the states of the promise via useState
Data fetching is a side effect, and thus they'll need to handle the promise within a useEffect And make sure to do some clean up to avoid race condition.
There is some repeating boilerplate code that is better if it's abstracted out

So what if our hooks return data and states (and not promises)? We would handle the promises for the end users behind the scene. Any asynchronous operations would return the same interface of {data, error, isLoading}. Imagine a useProduct hook like this:
// Either we implement `usePromise` ourselves
// (read https://lukstei.com/2019-10-27-doing-asynchronous-calls-using-react-hooks/)
// OR use a tiny library like https://github.com/slorber/react-async-hook
import {usePromise} from 'our-library'
import {useAccessToken} from 'slas-react-sdk'

const useProduct = (productId) => {
  const {accessToken, isLoading, error} = useAccessToken()

  if (isLoading) {
    return {
      data: undefined,
      error: undefined,
      isLoading
    }
  }

  // usePromise also returns the same interface {data, error, isLoading}
  // (this interface is also found in other data-fetching libraries)
  return usePromise(() => {
    return fetch(`/products/${productId}`, {
      headers: {
        Authorization: accessToken
      }
    })
  }
}

const PDP = (props) => {
  const {data, isLoading, error} = useProduct('12345')

  return (
    <>
      {isLoading &&
Loading...
}
      {data &&
{data}
}
    </>
  )
}

Can we revisit our interface, specifically how we handle promises? We have mentioned that we wanted a promise-based API (as one of the blocking next-action items). But from what I've seen in other data-fetching libraries (like react-query, react-async-hook, swr), they return data, states, and not promises.
Say, our hooks do return promises (I'm looking at the code sample for useProduct in the PR description). We're not setting up the end users for success. It's tricky to handle the async nature of data fetching correctly in React components (as seen in this article):

If a promise has not resolved, we still need to render something. They'll need to track the states of the promise via useState
Data fetching is a side effect, and thus they'll need to handle the promise within a useEffect And make sure to do some clean up to avoid race condition.
There is some repeating boilerplate code that is better if it's abstracted out

So what if our hooks return data and states (and not promises)? We would handle the promises for the end users behind the scene. Any asynchronous operations would return the same interface of {data, error, isLoading}. Imagine a useProduct hook like this:
// Either we implement `usePromise` ourselves
// (read https://lukstei.com/2019-10-27-doing-asynchronous-calls-using-react-hooks/)
// OR use a tiny library like https://github.com/slorber/react-async-hook
import {usePromise} from 'our-library'
import {useAccessToken} from 'slas-react-sdk'

const useProduct = (productId) => {
  const {accessToken, isLoading, error} = useAccessToken()

  if (isLoading) {
    return {
      data: undefined,
      error: undefined,
      isLoading
    }
  }

  // usePromise also returns the same interface {data, error, isLoading}
  // (this interface is also found in other data-fetching libraries)
  return usePromise(() => {
    return fetch(`/products/${productId}`, {
      headers: {
        Authorization: accessToken
      }
    })
  }
}

const PDP = (props) => {
  const {data, isLoading, error} = useProduct('12345')

  return (
    <>
      {isLoading &&
Loading...
}
      {data &&
{data}
}
    </>
  )
}

Can we revisit our interface, specifically how we handle promises? We have mentioned that we wanted a promise-based API (as one of the blocking next-action items). But from what I've seen in other data-fetching libraries (like react-query, react-async-hook, swr), they return data, states, and not promises.

I think this is a good idea. It's actually something very similar to a second spike on my server-side hooks support in the sdk. I'll make sure to share it with you when I have something to show. 👍

We'd like to extract the SLAS module into a separate package that we can maintain and distribute via npm.

Why do we want a separate package?

@alexvuong I'm not sure what exactly you're working on in your spike. But I feel there's some overlap here in this PR with regards to useProduct hook. Please see the comment: https://github.com/SalesforceCommerceCloud/pwa-kit/pull/638#issuecomment-1151418884


Ignore nested projects of same name as root

This is a fix for #1779

Thanks for the pull request, and welcome! The Rust team is excited to review your changes, and you should hear from @alexcrichton (or someone else) soon.
If any changes to this PR are deemed necessary, please add them as extra commits. This ensures that the reviewer can see what has changed since they last reviewed the code. The way Github handles out-of-date commits, this should also make it reasonably obvious what issues have or haven't been addressed. Large or tricky changes may require several passes of review and changes.
Please see the contribution instructions for more information.

Could you add a test for this as well?

I'd be happy to add a test. It would be super helpful to have a pointer or two on where that'd go and at what level you would like to see tested.
Looks like test_cargo_package.rs might be the place to add something?

I think I have a test, will push shortly.

@alexcrichton test added. It failed for me when I removed my patch.

I'm a little worried about this in the sense that it just blindly takes the first package with a particular name (if there are multiple with the same names in a repo) and we don't have any real guarantee about what order the repo is traversed in. That being said, I think that the semantics are of having multiple packages of the same name in a repo aren't super well defined today, so I think it's fine to just take the first one.

Updated with info! and less & :)
I can see what you mean about the potential ambiguity. For the case I ran into, I think the top-level package being read first is likely to stay consistent?

@bors: r+ 8790c820b690c27282d564bd399a9fc31c7ff3a7
Thanks!

I think the top-level package being read first is likely to stay consistent

Yeah this is definitely true.

:hourglass: Testing commit 8790c82 with merge e67c3c0...

:sunny: Test successful - cargo-linux-32, cargo-linux-64, cargo-mac-32, cargo-mac-64, cargo-win-gnu-32, cargo-win-gnu-64, cargo-win-msvc-64


Python: Fix parsing of paths to account for multiple nesting scenarios

One of the fixes that we applied here broke parsing for other scenarios.  This PR will fix things so that both scenarios work.
Pairing w/@feelepxyz on this.

@rebelagentm merged this fix from Grey https://github.com/dependabot/dependabot-core/pull/1420


Migration of code from SlicerCART

Code from : https://github.com/laurentletg/SlicerCART
I incorporated many features that were implemented in main (now moved to branch slicer-manual-annotation/mb_code for reference). The only feature that I did not migrate is the Assessment module for which I have created an issue. It was too bulky to address before my dissection course. If no one else wants to dive into it, I can perform the adaptations upon my return.
I have also moved the issues that were in our previous repository to this one.

Ok! That is excellent! Thanks @delphinepilon for your work. During another meeting today at the lab (about spinal cord toolbox), neuropoly team members (both students and teacher/staff) mentioned an interested of being involved and take from where the repo is actually. I accepted the merge pull request, so now we can start from this!

Thank you for your contributions @delphinepilon and @maxradx ! Excited to see this project moving forward


Uber’s Highly Scalable and Distributed Shuffle as a Service / Mayank Bansal, Bo Yang, Mayur Bhosale, Kai Jiang @ Uber Engineering Blog

URL: https://eng.uber.com/ubers-highly-scalable-and-distributed-shuffle-as-a-service/
Review (1-2 sentences): This article is worth reading in order to dive into a new level of understanding of data shuffle in Spark.

Published in Digest #21.


Add more conversion functions for PasswordHash

The following functions are added:

asciiTextToPasswordHash
asciiByteStringToPasswordHash

The idea is that there is this password ASCII format that looks like this:
$argon2id$v=19$m=262144,t=3,p=1$fpPdXj9mK7J4m…
Password hashes are created by hashByteString in this format.
Keys that are derived with hashByteStringWithParams are not stored like this. It's a binary format that needs base16 encoding. I think I'm not too comfortable with this, we should probably implement the ASCII format for the output of this function.

@kozross any remark?


Reconsider ValueGeneratedOnAddOrUpdate + HasDefaultValueSql = Computed Column

Consider the following model where I want a LastModified column to be generated by the database. The best way to do this is a default value to handle inserts and a trigger for updates. I'd have to do the trigger outside of EF, but I can setup the default value in my model.
public class MyContext : DbContext
    {
        public DbSet<Blog> Blogs { get; set; }

        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            optionsBuilder.UseSqlServer(@"Server=(localdb)\mssqllocaldb;Database=Sample;Trusted_Connection=True;");
        }

        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            modelBuilder.Entity<Blog>()
            .Property(b => b.LastModified)
            .HasDefaultValueSql("GETDATE()")
            .ValueGeneratedOnAddOrUpdate();
        }
    }

    public class Blog
    {
        public int BlogId { get; set; }
        public DateTime LastModified { get; set; }
    }

The issue is that DDL assumes that ValueGeneratedOnAddOrUpdate with a default value means I want a computed column. Which I don't... since that would give the current time whenever I select the entity... but I have no way to stop if being a computed column.
CREATE TABLE [Blog] (
    [BlogId] int NOT NULL IDENTITY,
    [Modified] AS GETDATE(),
    CONSTRAINT [PK_Blog] PRIMARY KEY ([BlogId])
);

This is probably because we collapse HasDefaultValueSql and HasComputedColumnSql into one piece of metadata: GeneratedValueSql. If we stop doing this, then Migrations can behave differently.

Exactly what I was trying to do now.
BTW, shouldn't be an EF way of defining a trigger for updates?
Something like:
HasValueSqlOnUpdate(string code)

With a lot of effort which probably doesn't worth it, it can even have an overload with Expression<Func<TEntity, object>> or something like that.
But the string overload should be relatively quite simple to implement.
What do you think @rowanmiller @ajcvickers?
I might even implement it myself and contribute the code if you think it's a good idea.

@gdoron yes I think that could be really useful - I doubt we'd get it into 1.0.0 release but I think it would provide a lot of value.

For Guid columns all that is needed is to say property.ValueGeneratedOnAdd(). No need to specify a default value nor any SQL here. They get to be UNIQUEIDENTIFIER NOT NULL without IDENTITY specification or a default and the GuidValueGenerator produces a value.
That is even true if I don't configure the Guid Id property at all - I expected there to be an IDENTITY specification by convention but there isn't - not in 7.0.0-rc1-final at least.
Perhaps it'd be easy to (also) add a value generation strategy for DateTime/DateTimeOffset the same as exists for Guid? Today (on 7.0.0-rc1-final) neither ValueGeneratedOnAdd nor ValueGeneratedOnAddOrUpdate do anything at all for DateTimeOffset columns. Would such a value generation strategy be present, it'd work to generate values for the common Created/Updated columns people seem to want this feature for, for table storage and other non-relational providers too - very convenient.
I'm not quite sure it'd be easy to add this, or whether there'd be interactions between other conventions, but it might be easier to add than patching the SQL and uncollapsing HasDefaultValueSql and HasComputedColumnSql as @ajcvickers mentioned.

@ericwj I think this is a decent idea... I'm not sure that "ValueGeneratedXyz" always means "set the current date/time" for datetime columns, so it may want to be a different method that sets up a few pieces.


chore(master): release 2.3.0

:robot: I have created a release beep boop
2.3.0 (2024-07-16)
Features

idl: allow more type with anno (4e00069)

This PR was generated with Release Please. See documentation.

:robot: Created releases:

v2.3.0
:sunflower:


Create Blog “aaaaa”

Automatically generated by Netlify CMS

👷 Deploy Preview for jade-beignet-f6b9de processing.

Name
Link

🔨 Latest commit
118cacec2f78b931c071c106afa020f8d1c1b14d

🔍 Latest deploy log
https://app.netlify.com/sites/jade-beignet-f6b9de/deploys/63c11a95bc9d4b000a095292

test


Conflicts with elm-date-format

Date.Format conflicts with elm-date-format.
All the modules in this package should be under Date.Extra

Fair point had not considered it, Ill move it tonight after work with a new version.

Thanks 💯

Ok published 4.0.0 moved all modules to Date.Extra. name space.


Space in typeAlias results in the IllegalArgumentException: "Result Maps collection already contains value for"

If you have a trailing space in the alias attribute of a typeAlias definition, like this:
<typeAliases>
  <typeAlias alias="User "  type="com.example.domain.User" />
</typeAliases>

at runtime you get an exception like this:
java.lang.IllegalArgumentException: Result Maps collection already contains value for com.example.persistence.UserMapper.mapper_resultMap[xxx]_association[xxx]

where the map and association referenced in the exception are ones defined in your mapper.
Removing the trailing space fixes the problem, but it took a long time to track down.

Hi,
Has there been a resolution to this issue?
Im updating from spring 3.1 to 4.1.6
mybatis 3.0.6 to 3.3.0
I get the issue with or without jrebel running. Im using the spring configuration.
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
		<property name="basePackage" value="com.mapperpackage" />
		<property name="sqlSessionFactory" ref="sqlSessionFactory"></property>
</bean>

Hi Eduardo,
Has there any solution?
I get this issue on the server start sometimes. And following my spring
<bean id="mapperScanner" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
	<property name="basePackage"
		value="com.neusoft.ibms.**.mapper; com.neusoft.framework.**.mapper;" />
	<property name="sqlSessionFactory" ref="sqlSessionFactory" />
</bean>

Hi mybatis team!
I got the issue in the following case:

there are several xml mappers which are specified in mybatis config

it is useful for using huge sqls and some features

there are several interface mappers which aren't specified in mybatis config

it is useful for using primitive CRUD features, and these interfaces have result mappers

xml mapper uses result mappers which are specified in interfaces

When application is starting then:

firstly, mybatis loads mappers from configuration <mappers>
these queries are using result mappers from interfaces don't load into MappedStatement map,
due to it didn't find result mappers in context.
Instead of this, these queries are putting in incompleteStatements collection.
when some code is using mappers, mybatis gets the mapper from MappedStatement map:
calls getMappedStatement(String id) and buildAllStatements() methods.
The method buildAllStatements() always checks incompleteStatements collection
and this collection is never cleaned.
Therefore we have the issue when trying to put existing query in MappedStatement map:
"Result Maps collection already contains value for"

org.apache.ibatis.session.Configuration

public MappedStatement getMappedStatement(String id) {
  return this.getMappedStatement(id, true);
}

public MappedStatement getMappedStatement(String id, boolean validateIncompleteStatements) {
  if (validateIncompleteStatements) {
    buildAllStatements();
  }
  return mappedStatements.get(id);
}
/*
 * Parses all the unprocessed statement nodes in the cache. It is recommended
 * to call this method once all the mappers are added as it provides fail-fast
 * statement validation.
 */
protected void buildAllStatements() {
if (!incompleteStatements.isEmpty()) {
   synchronized (incompleteStatements) {
     // This always throws a BuilderException.
     incompleteStatements.iterator().next().parseStatementNode();
   }
 }

I fixed it by eliminating <mappers> tag from mybatis configuration. Mybatis loads xml and interfaces without this tag. Also the issue can be fixed by specifying interface mappers before xml mappers in configuration, to get loading order.
But, there is concern:
if mybatis has collection incompleteStatements then should process this case correctly.

https://groups.google.com/forum/#!topic/mybatis-user/HrMIvWFim64

Hello, Is there any updates on the above issue? I am using mybatis 3.1.1 with SPring 3.2.0-RELEASE and everything works fine. Once I upgrade mybatis say 3.2.4 or even 3.4.6-SNAPSHOT , I am getting this only for 2 of the 40 mappers that are present.
Appreciate your help!

Hi, for me the problem was adding Tomcat's classpath the directory un level up the one with xml mappers.
My case was (with sample directory structure):
src/main/resources/mybatis
--- mapper1.xml
--- mapper2.xml
etc...
but in the classpath I set
src/main/resources
That caused the problem.
Logs showed the error for the first parsed mapper; I tried removing it but the error appeared again.
Changing classpath variable to
src/main/resources/mybatis
solved the problem.
Hope this helps.


Provide enablement material

We want to onboard apm-agent developers to this repository, to be able to work on open-telemetry mappings and to add new fields to the Intake API and processing.
For enablement we need to

add a high level overview over data flow and processing
provide a recorded video with a code-walkthrough
document which code changes, make commands, approval test adoptions, etc. are required for adding a new field; link to a reference PR
document which code changes are required for adding or changing open telemetry mappings
show which steps are required in the APM Server code base to update

@axw are you still intending on providing a short code walkthrough video? Otherwise I think we should close this out.

@simitt maybe eventually, but not right now. It'll probably be invalidated by the coming protobuf changes.


Conditional steps not working

Given the following pipeline
steps:
  - command: echo 'I should not be executed'
    if: false

the step isn't ignored when running bk local run. Same with other false conditions e.g. if: 1 == 0.
Tested using version 2.0.0.

👋 We don't currently support a local run command in the new CLI version (3.x.x). As you've seen, there are some complexities around having a local run command in the CLI and we're looking at other methods of providing this functionality.


New layer type=route

Related thread : #436
To create a renderer for public transport, I would like to request the creation of a new layer to support type=route objects.

@flha127 - you're suggesting a vector tile layer & not a layer like these, correct?

type=route will need to be added to the vector tiles, so these map objects can be styled:

https://openhistoricalmap.github.io/overpass-turbo/?q=LyoKVGhpcyBxdWVyeSBsb29rxIZmb3Igbm9kZXMsIHdhecSGYW5kIHJlbGF0aW9uxIYKd2l0aCDEsmUgZ2l2ZW4ga2V5L3ZhbMSJIGNvbWJpbsSpxKtuLgpDaMSPc8S2eW91xJXEpsS4xKwgxKLEpMSEdMS0aMS2UnXEvGJ1dHTFnWFib8S6IQoqLwpbxZh0OmpzxKxdW8SqbWXFuDoyNV07Ci8vxLfEqcWkxZrEmnVsdHMKKAogIMaKxIfEicSLIHBhcsWixJNyOiDDosKAwpx0eXBlPXLFuGXGp8KdxpfElsSYZVsixqrGrCI9IsavxaplIl0oe3tixa94fX0pxojGmMSeeca4xrrHgca9xr90x4HHg8eFx4dvx4nHi8eNxKXEp8WNxKzHkcarx5PGvsawx4LHhMeGx4jHiseMCsetxppwcsWLxaLEpnPGkcaTCsW4IMWvZHnGiD7GiMe6c8S-bMSHdDs&c=BLM7qZVPqN

Should there be a separate layer specifically for routes, or should the attributes from the route relation be copied onto the features corresponding to the member ways, as requested in #705? A separate layer could facilitate certain style treatments, such as a highlighter-like translucent overlay (as seen on CyclOSM and OpenCycleMap) or labels and shields (as seen on OSM Americana). On the other hand, #439 expresses a desire to shift as many tags as possible from the member ways to multilinestring relations and presumably route relations, implying completely separate features in the tiles, similar to the bloat we currently see with boundaries (#701).
I rather like OpenMapTiles’ approach of a separate layer for labels and shields that can draw from either the member ways or the route relations. This layer can also serve the highlighter use case more or less well. openmaptiles/openmaptiles#1620 recently landed in OpenMapTiles, creating an extensible schema for many-to-one relationships with member ways. A road that carries multiple routes results in a LineString feature with properties including route_1:ref, route_1:network, route_2:ref, etc.

@flha127 - you're suggesting a vector tile layer & not a layer like these, correct?

Yes.


feat: derive Clone trait for ScheduledThreadPool

Convenient to share a thread pool in multiple database connection pools in r2d2.

This will break the pool's shutdown logic: https://github.com/sfackler/scheduled-thread-pool/blob/master/src/lib.rs#L108
r2d2 takes an Arc<ScheduledThreadPool> to allow sharing: https://docs.rs/r2d2/0.8.3/r2d2/struct.Builder.html#method.thread_pool

Oh, I did't notice this, I will close this pr.


Update integrate with azure change

Removing --set apiserver.auth.enabled=false from the non-RBAC cluster instructions. We got a couple of issues w/r/t to this line, it seems to cause issues and removing it works correctly.

@jeremyrickard : Thanks for your contribution! The author, @sozercan, has been notified to review your proposed change.

See https://github.com/Azure/open-service-broker-azure/issues/504 for more info!


Failed to establish a new connection error when using command from a cron script

az feedback auto-generates most of the information requested below, as of CLI version 2.0.62

Describe the bug
az storage blob download command is failing when executed from cron job. Same command executes fine if the shell script ( containing the command ) is manually executed.
The error that is displayed when running via cron is:
ERROR: HTTPSConnectionPool(host='mystorage.blob.core.windows.net', port=443): Max retries exceeded with url: /mycontainer/myfile.tar.gz (Caused by NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 0x7ff1b7a9bcd0>: Failed to establish a new connection: [Errno -2] Name or service not known'))
To Reproduce
create a shell script with this command:
#!/usr/bin/sh
az storage blob download --account-name  --container-name  --name <file-name.tar.gz> --file /home/myuser/file-name.tar.gz --auth-mode login
then create a cron job to run the script.
Expected behavior
The script is executed and the file download is successfull.
Environment summary
Ubuntu 20.04.3

storage

Problem solved. It was a proxy issue. Since cron doesn't load by default environment variables, I had to explicitly define them within script containing az storage command.


Is this project still alive?

This is the only implementation of nanoid in python that I can find, but the last commit was over two years ago.
I was wondering if this project is totally abandoned or is still being maintained. Thanks.

This projects works well as new issues do not get published. We made sure that all tests were transferred correctly from the original NanoID and run well.
In this case, it doesn't matter if the new releases do not come out.


New Course - Recoding: Transforming Data into Different Structures

Contact Details
<EMAIL_ADDRESS>Course title
Recoding: Transforming Data into Different Structures
Topic

[X] SDMX data modelling
[ ] Labour statistics
[ ] European National Accounts
[ ] SDGs
[ ] SDMX tools
[ ] .Stat Suite
[X] Fusion Metadata Registry
[ ] SDMX Matrix Generator
[ ] SDMX Converter
[ ] Euro SDMX Registry
[ ] Other - suggest a new topic

Suggest a new topic if needed
No response
Course type
elearning, self-paced
Course price
Free
Summary
Throughout their lifecycle, data are subjected to many operations and transformations as they are massaged, aggregated, summarised, analysed, and customised for a wide range of outputs. The primary focus of this module is on recoding data using the SDMX standard and Fusion Metadata Registry (FMR).
Sponsor
BIS
Suggest a new sponsor if needed
No response
The URL of your course
https://www.sdmx.io/resources/elearning/recoding-transforming-data-into-different-structures/
The URL of an image for your course
https://sdmx.io/images/elearning/card-recoding-data.png

This issue has been sitting here for some time. Assigning everyone as the process is unclear. Thanks, Brian

please publish

@glenntav @ChallenerSJ I have created this pull request yesterday https://github.com/SDMX-Outreach/sdmx-learning-catalogue/pull/16 could you please review it.

Please do it from down and up so 14, 15, 16, 17

request merged


bug: VScode is not responding while searching regex.

procedure to reproduce: When I put .* before a word it is not reponding.

Thanks for creating this issue! We figured it's covering the same as another one we already have. Thus, we closed this one as a duplicate. You can search for similar existing issues. See also our issue reporting guidelines.
Happy Coding!


Cannot login

Hi there!
I've setup Symfony 3.1 from the scratch, and after - your bundle. I went through all the steps. But i cant register user (error": "Request parameter email must be set") or even login with existed (code": 401, "message": "Bad credentials")

Hi @AlexSanzharevskyy,
Thank you for using this bundle and reporting this issue.
I'll give it a try tomorrow and keep you informed here.

I think that this is problem with Content-Type header, if I set Content-Type:application/x-www-form-urlencoded this works, but with standard application/json the request in SecurityController is not decoded

I made a PR #10

I've setup all from scratch (FOSUser, JWT, FOSRest, NelmioCORS). And now it works. I think there were 2 problems - the first one you mentioned, the second - with cors.

I think, FOSRest has body listener which converts incoming json request automtically, I'm using RCHJWTUserBundle with Api Platform, which does not decode every request with listener I think, but I can be wrong

@cve Good catch, merged #10.
@AlexSanzharevskyy Do you think we can close this issue?

Yes, please. I'll write my configs, maybe it will help someone)
config.yml
#FOSRest
fos_rest:     body_listener: true     format_listener:  true     param_fetcher_listener: true     view:         view_response_listener: 'force'         exception_wrapper_handler:  null         formats:             jsonp: true             json: true             xml: false             rss: false         mime_types:             json: ['application/json', 'application/x-json']             jpg: 'image/jpeg'             png: 'image/png'         jsonp_handler: ~     routing_loader:         default_format:  json         include_format:  false     format_listener:         rules:             - { path: ^/, priorities: [ json, jsonp ], fallback_format: ~, prefer_extension: true }     exception:         enabled: true
JMS Serializer
jms_serializer:     metadata:         directories:             FOSUB:                 namespace_prefix: FOS\UserBundle                 path: %kernel.root_dir%/serializer/FOSUB
#Nelmio CORS
`nelmio_cors:
defaults:
allow_credentials: false
allow_origin: []
allow_headers: []
allow_methods: []
expose_headers: []
max_age: 0
hosts: []
origin_regex: false
paths:
    '^/':
        allow_origin: ['*']
        allow_headers: ['X-Custom-Auth', 'Content-Type', 'X-Requested-With', 'accept', 'Origin', 'Access-Control-Request-Method', 'Access-Control-Request-Headers', 'Authorization', 'Cache-Control', 'if-modified-since', 'pragma']
        allow_methods: ['POST', 'PUT', 'GET', 'DELETE']
        max_age: 3600`

security.yml
`security:
encoders:
FOS\UserBundle\Model\UserInterface: bcrypt
role_hierarchy:
    ROLE_ADMIN:       ROLE_USER
    ROLE_SUPER_ADMIN: ROLE_ADMIN

providers:
    fos_userbundle:
        id: fos_user.user_provider.username_email

firewalls:
    login:
        pattern:  ^/api/login
        stateless: true
        anonymous: true
        form_login:
            provider: fos_userbundle
            check_path: /api/login
            success_handler: lexik_jwt_authentication.handler.authentication_success
            failure_handler: lexik_jwt_authentication.handler.authentication_failure
            require_previous_session: false
            username_parameter: username
            password_parameter: password

    api:
        pattern:   ^/api
        stateless: true
        lexik_jwt:
            authorization_header:
                enabled: true
                prefix:  Bearer
                name:    Authorization
            cookie:
                enabled: false
                name:    BEARER
            query_parameter:
                enabled: false
                name:    bearer
            throw_exceptions: false
            create_entry_point: true
            authentication_provider: lexik_jwt_authentication.security.authentication.provider
            authentication_listener: lexik_jwt_authentication.security.authentication.listener

access_control:
    - { path: ^/api/doc,        roles: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/api/register,   roles: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/api/login,      roles: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/api,            roles: IS_AUTHENTICATED_FULLY }`

Just a comment on this.
After  having this exact same problem but with a very different cause, which was my own mistake (as is most of the time), I post this because someone else might have similar problems, finds this page, and made a similar mistake as I did.
I had to reinstall my devbox, so I pulled my project from github and got this error (401 on a call but able to login and register).
The problem was that I forgot to include:
RewriteEngine On
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule .* - [e=HTTP_AUTHORIZATION:%1]

In my vhost file (which is offcourse in the lexikjwt docs, i know) !
After inspecting the request using the symfony debugbar it was an easy fix but I made the mistake of googling first, inspect later :(.

Thank you for your feedback @rienk-git , really appreciated!


General Touch Press-Release Callback - for Audio Feedback

Before I found LittlevGL I was in the process of writing my own primitive GUI for my touchscreen. In it I had code that would play a "tick" noise each time any of my buttons registered a press or release.
If I only cared if I was touching somewhere on the screen then I'd put the clicking functionality in the input read callback. However I'd like the noise generation to exclusively be when an object has actually been triggered/released.
Is there a general callback that is called when any active object is pressed/released/held? Something like that would be preferable over having to add the click callback to every active object that I add.

You can do it with a little trick. In lv_obj.c in lv_obj_signal function add:
else if(sign ==  LV_SIGNAL_PRESSED) {
        printf("Clicked\n");       //Or start to play the click sound
    }

It will be called every time when an object is pressed (not only lv_obj, lv_btn, lv_ddlist etc as well).

Perfect. Thanks!
If that were built out so a callback could be registered, would you be interested in my submitting the change as a PR?
And if so, do you have any requirements/suggestions?

On Sep 28, 2018, at 17:20, Gabor Kiss-Vamosi<EMAIL_ADDRESS>wrote:
You can do it with a little trick. In lv_obj.c in lv_obj_signal function add:
else if(sign ==  LV_SIGNAL_PRESSED) {
printf("Clicked\n");       //Or start to play the click sound
}
It will be called every time when an object is pressed (not only lv_obj, lv_btn, lv_ddlist etc as well).
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or mute the thread.

Yes, a PR would be welcome! :)
First of all, we should find a good name for this feature. My idea is feedback.
I was thinking about maybe this feature should be connected to the input devices. Because it is possible that you want different feedback for a touch pad and an encoder.
So I can imagine an interface like lv_indev_set_feedback_cb(indev, my_feedback) where my_feedback has a bool parameter. true: an object activated; false: an object is deactivated.
In this case, the saved feedback function should be called with true with

LV_SIGNAL_PRESSED
LV_SIGNAL_FOCUS
and false with:
LV_SIGNAL_PRESS_LOST
LV_SIGNAL_RELEASED
`LV_SIGNAL_DEFOCUSE``

FYI, in lv_obj_signal the current input device can be got with lv_inedv_get_act(). (Can return NULL)
What do you think?

Hmm... feedback could work.

it is possible that you want different feedback for a touch pad and an encoder.

Good point. For a turning knob it might be nice to have it make a clicking noise, but perhaps not with another input.
While I haven't learned enough about your software to know it already, I feel that there might be instances where developers would want know the difference between a "pressed" event and a "focus" event". Is it possible that we could simply pass one of the six listed "LV_SIGNAL_" enums to the callback function if one of them is found, and if a callback has been registered? That way any processing could be done on the callback's side.

I tried to add the delimiters to the signals but I realized that there are some signals which are not relevant in this case. For example, there is nothing to do with:

LV_SIGNAL_DRAG_BEGIN
LV_SIGNAL_DRAG_END
LV_SIGNAL_GROUP_GET_EDITABLE

In addition LV_SIGNAL_LONG_PRESS is used only by lv_btn. This signal will have effect only if a long press action is set for a button. So it makes sense to me to call the feedback function by in the lv_button_signal if something happened on long press.
So I vote for choosing the signals manually. What do you think?

I was thinking that the delimiters would just be used to determine whether or not the feedback callback would be triggered or not. So instead of having an IF statement with all the Input related and Group related signals, we could just check to see if the signal was between the two sets of delimiters:
((Input related start < signal) && (signal < input related end)) || ((group related start < signal) && (signal < group related end))
Then it would pass the specific signal to the callback, and inside the callback it would choose whether to respond to the signal or not.
That way any specific signal processing is on the developer's side, while your code only checks for:
Is there a callback registered?
Is the signal between the Input related delimiters, or the group related delimiters?
This would in my mind simplify the code changes to your library, and offload any special programing to the developer to access any of those two groups of signals an do whatever they'd like to in their callback.
So while it might send "irrelevant" signals to the callback, the callback would decide whether to ignore or handle the signals at the developer's discretion. It's possible there are developer's that might find applications for receiving the otherwise "irrelevant" signals, and this would allow them the freedom to use them, instead of constraining the interface.
What do you think? Would there be a problem sending the "irrelevant" signals if the callback decided whether or not to respond to them?

On Oct 1, 2018, at 02:55, Gabor Kiss-Vamosi<EMAIL_ADDRESS>wrote:
I tried to add the delimiters to the signals but I realized that there are some signals which are not relevant in this case. For example, there is nothing to do with:
LV_SIGNAL_DRAG_BEGIN
LV_SIGNAL_DRAG_END
LV_SIGNAL_GROUP_GET_EDITABLE
In addition LV_SIGNAL_LONG_PRESS is used only by lv_btn. This signal will have effect only if a long press action is set for a button. So it makes sense to me to call the feedback function by in the lv_button_signal if something happened on long press.
So I vote for choosing the signals manually. What do you think?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or mute the thread.

It totally makes sense but:

LV_SIGNAL_LONG_PRESS will be sent if the object is pressed for enough time. But only the Button object knows whether something happened on long press or not (is there long press action callback registered or not). And giving feedback on long press if nothing happens might be confusing.
It's the same for LV_SIGNAL_LONG_PRESS_REP which makes send only for the Keyboard and button matrix object. It would be ugly to send feedback repeatedly when nothing happens.

So I say use as many signals as we can in lv_obj_signal but some of them need special handling. That's why it seems to me we can't pass all the indev and group related signals is lv_obj_signal.

Sounds good. I'll follow up once I have the changes implemented, tested, and ready.
Also, which branch/release/commit would you prefer I build my PR on? As we've discussed I cannot compile and run dev-5.2, but I can use v5.1.1.

And vibration...

@turoksama Thankfully with the future ability to register a callback, the custom function you write could do anything from playing a sound, activating a Taptic vibration, or light up an LED. If you can activate the idea from a function, you'll be able to tie it to this future feature 😀

@kisvegabor

From the following, which signals should I include?

/ *Input device related */
LV_SIGNAL_PRESSED,
LV_SIGNAL_PRESSING,
LV_SIGNAL_PRESS_LOST,
LV_SIGNAL_RELEASED,
LV_SIGNAL_LONG_PRESS,
LV_SIGNAL_LONG_PRESS_REP,
LV_SIGNAL_DRAG_BEGIN,
LV_SIGNAL_DRAG_END,

/* Group related */
LV_SIGNAL_FOCUS,
LV_SIGNAL_DEFOCUS,
LV_SIGNAL_CONTROLL,}

If necessary, would it be acceptable change the order of the items in each group such that the signals we report are adjacent? And could I insert delimited listings to create testable bounds? That way I could just test for ENUMs between the delimited ENUMs instead of testing for each included signal individually.

You mentioned the signal LV_SIGNAL_GROUP_GET_EDITABLE. Where is that from? I don't see it in the v5.1.1 list in lv_obj.h.

Hi,
I think this signals should be added to lv_obj_signal:

LV_SIGNAL_PRESSED
LV_SIGNAL_PRESS_LOST
LV_SIGNAL_RELEASED
LV_SIGNAL_DRAG_BEGIN
LV_SIGNAL_DRAG_END
LV_SIGNAL_FOCUS
LV_SIGNAL_DEFOCUS
LV_SIGNAL_CONTROLL
I think we can't use the delimiter

LV_SIGNAL_GROUP_GET_EDITABLE is in dev-5.2. It fine if you add these to v5.1.1 and I will merge it dev-5.2. I will add the LV_SIGNAL_LONG_PRESS and LV_SIGNAL_LONG_PRESS_REP because they are a little bit tricky. I will explain where to add these signal in v5.1.1 if you can't update to dev-5.2
Because some signals need special handling (as discussed above)  I think it might be confusing to add delimiters which work only in lv_obj_signal. So I would prefer to handle the signals one-by-one. If new signals come they need to be reviewed in this regard anyway.
If this feature will be added I will release v5.2! :)
(However, I know it's not so important for you. :( )

Sounds good. I'll add those signals individually then. I didn't want to have a bunch of if-statements the processor would have to check through during each polling, but if it's better for the code structure then I'll conform my code accordingly.
And yeah, since I cannot use v5.2 at the moment, I'll make the changes to v5.1.1 and submit my PR once I'm done with my current project.

Great, thank you! :)
I'd like to release v5.2 this week so it seems this feature will go into the next release instead.

No worries. The timing didn't line up this release, but the feature will make it in eventually.

On Oct 5, 2018, at 01:12, Gabor Kiss-Vamosi<EMAIL_ADDRESS>wrote:
Great, thank you! :)
I'd like to release v5.2 this week so it seems this feature will go into the next release instead.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

@embeddedt started to implement it here: https://github.com/littlevgl/lvgl/pull/641


Support for AWS bulk loading

Implemented mapper function similar to Azure to support bulk loading of secrets from AWS Secrets Manager.
Supports issue https://github.com/ConsenSys/web3signer/issues/499

perhaps requires additional unit tests;
listSecretsAndFetchSecretsWithSingleSecretSingleTag
listSecretsAndFetchSecretsWithSingleSecretMultipleTags
listSecretsAndFetchSecretsWithMultipleSecretsSingleTag
listSecretsAndFetchSecretsWithMultipleSecretsMultipleTags