Server side rendering discussion

I would like to create a module that will make server-side rendering in node.js possible. I've done this before in my own project and wanted to discuss technical details.
So, the goals of the module:

Make server return fully rendered html on first request, then move to client side rendering seamlessly.
Support html5 routing defined through $routeProvider on the server.
As little changes to client-only rendering as possible.

How do I want to do that:

Module will be a Connect/Express middleware that you can app.use().
Use jsdom to create & work with DOM.
To enable client-side rendering, developer will need to provide all html code as templates and use only <ng-include> and <ng-view> in main html file.
On request, a new DOM is created and these <ng-include>-s are filled with rendered html. When ready (see below), the full DOM is serialized and sent to the browser (or crawler). In browser, the contents of <ng-include>-s are discarded and re-rendered, creating all services and controllers, binding all needed event handlers.
When rendering on server, $http requests are re-routed to use the same server.
If $routeProvider didn't match anything, the middleware will yield back to Express to serve later middleware or a 404 page.

Problems to solve:

jsdom will need to be extended with sufficient userAgent and location/history APIs.
The 'page ready' event is something to think about. I could use the $browser.notifyWhenNoOutstandingRequests() internal API, but maybe it could be better to introduce a $ready event on $rootScope.
I'll need a way to intercept angular bootstrapping to be able to catch this 'page ready' event. It is currently done in ngScenario, but I think it could be better (for example, it doesn't support asynchronous bootstrapping).
If we find a way to cleanly intercept angular bootstrapping on the page, we could have a single angular codebase residing in node process, serving all pages by just creating injectors. This should make page serving performance comparable to more traditional template-based servers.
$routeProvider will need to be extended to provide an event when no routes are matched. Currently it's an otherwise clause which usually redirects to base, but in server environment it's bad practice. Preferably even on the client side if a route is unknown, we should redirect the browser to new url, as the server can have something else there (statics, etc), or 404 page.
It would be nice to cache all $http requests that are done on the server, and package them together with html, so that first render in browser would not ask for the same information again.
I don't know how to test this whole endeavor. I can make e2e and unit tests to prove that jsdom is nice behaving browser, but I'm not sure what to do about ensuring that the browser will always get correct state when served with this method.

So, what do you think? Is it viable? Did you plan to do something similar?

So, the problem with running Angular 1.x apps on the server fundamentally is that you either need to use a headless browser or a framework built on top of a headless browser (i.e. like @apparentlymart's Angular Server project) which can be hard to make performant OR you can use something like the Jangular library I created (https://github.com/gethuman/jangular) which only supports a subset of Angular and you need to be really careful about how you implement it (but on the plus side it is extremely fast).
Fortunately, there is a much better solution that is in the works in Angular 2. I know that doesn't help with your Angular 1.x apps right now but if you are interested in learning more about what is coming, tune in to the livestream for our AngularU talk next week: https://angularu.com/ng/session/2015sf/angular-2-server-rendering
Btw, @kevinSuttle regarding the Google search crawler indexing HTML rendered on the client side, just realize that:

Google is getting better at it, but it is still not perfect. Server rendering is still a safer bet to guarantee what will actually get indexed.
Other search engines are not as good as Google at this. Also, you have other services like Facebook link preview that is purely server side only.
Indexing is different than ranking. Even if Google indexed your content perfect, that doesn't mean it will rank. And one of the biggest on-page factors for ranking is:
Initial page load performance. Even if you don't care about search ranking initial page load performance is really important for good UX, especially on low powered mobile devices.

Just wanted to add that Google has since deprecated their AJAX crawling scheme, making server-rendered apps even more important. https://googlewebmastercentral.blogspot.com/2015/10/deprecating-our-ajax-crawling-scheme.html

I'm all for having server-rendering capabilities, but how does deprecating Google's AJAX crawling scheme make this even more important ?

More important if you're currently only serving up a client-rendered app with no static HTML on the server. From that post: "Since the assumptions for our 2009 proposal are no longer valid, we recommend following the principles of progressive enhancement." How often do you see progressively enhanced Angular apps?

In the same article though:

Times have changed. Today, as long as you're not blocking Googlebot from crawling your JavaScript or CSS files, we are generally able to render and understand your web pages like modern browsers.

Yes progressive enhancement is good, yes server rendering is good, but the removal of the AJAX crawling scheme from google bot shouldn't be the motivation.

It's not just for that purpose...it's also important for performance and for users that don't have the latest and greatest (hello progressive enhancement). But we could probably argue the motivations all day, so I'll leave it at that.

Hello guys, I would like to notify you about ng1-server : https://www.npmjs.com/package/ng1-server
This is my pet project, it uses a headless browser to pre-render any angular 1 web-app.
The main functionalities are :

An angular module that detects the IDLE status, augment the $cacheFactory and tigger preboot.
An advanced caching system, that greatly boost headless rendering by caching every dependecies into redis
The possibility to cache $http calls to
Also once pre-rendered, it is possible to cache the pre-rendered page
And for a last cache bonus, all $http calls on the server are injected into teh client and replayed instantly.
All $logs are server side stored, and can be forwarded to Graylog
I am sure I forgot to mention some other interesting stuff.

I'd really appreciate if you guy have a look at it, and let me know what you think.
Cheers and great new 2017 year for Angular 1 & 2 !

Very cool @a-lucas. I like that you have preboot integrated. I don't have a lot of experience with slimer.js, but the challenge with any angular 1.x SSR solution has always been that you either have to:

Emulate the browser on the server side (you are using slimer.js to do this which seems similar to phantom, but another option would be something like Angular.js Server which has built their own custom phantom-like shim.
Heavily restrict Angular 1.x template syntax and force custom APIs everywhere so you can properly abstract out client/server rendering (this is the approach I took with Jangular and Pancakes)

Option number 2 is almost certainly going to scale and perform better, but I gave up trying to make it generalized so other people can use it. There is so much custom stuff in there that in retrospect I would have been better off not even attempting to open source it. So, definitely your path is superior as an OSS solution and it looks like you added a lot of great caching options. I also like that users can take an existing app and just add this on top.

Hi @jeffwhelpley ,
Thanks for the quick answer. I had a look at angular.js server you mentionned few month ago, and it seems lile they chose JSDOM to emulate a browser  environment. I went jsdom initially, but it came  as very unstable and has limited functionality. I haven't tested slimer performances yet, but it seems lile a better alternative than phantomjs. It uses the latest gecko engine which supports ES6 almost completly, and the same api as phantomjs. I though of going the electron way too, but I couldn't find a way to capture all http requests.
Concerning scaling, I intentionally separated the 3 servers , making it easier to scale it in the future (if needed). A good scaling strategy would be imo to modify the bridge_pool so it can span slimer process on severall servers.
As of preboot, I haven't tested it, I am not sure if document.body is the correct way of setting the Approot. I will get this tested soon.

@jeffwhelpley pancakes seems lile a very cool concept. I am an absolute fan of code generators.

I am using angular js and phantomjs driver to crawl google careers - https://example.com
I tried in the service_args = ['--ignore-ssl-errors=yes','--ignore-ssl-errors=true','--ssl-protocl=any']
Phantomjs version 2.1.1.
I tried in the service_args ,but is same ssl error. google crawl not accept the https://example.com/?escaped_fragment= request,In https but it still working in http.Like http://example.com/?escaped_fragment= .i don't understand why not take request https ?
please help me...
when i request the service_args:
phantomjs --disk-cache=no  --ignore-ssl-errors=yes --ignore-ssl-errors=true --ssl-protocol=any /opt/bitnami/apache-tomcat/stt/ROOT/js/angular-seo.js 9090 https://example.com/

Issue has fixed. Problem was in  port and SSL. thanks


feature - send device token

Github Issue URL/Tags (required)
What's this PR do? Please give a technical summary (required)

[x] save and push device token to server

Any references (stackoverflow …) (optional)

:+1: There are no linter violations.


[WIP] Update notification defaults to "instantly" on node creation

https://openscience.atlassian.net/browse/OSF-4685
Purpose
When a user creates a project, notification settings are automatically set to "none," and a user might not know notifications even exist. This PR adds a method that automatically adds a node's creator to subscriptions for files and comments so they know the option exists.
Changes

Add method that subscribes a nodes' creator to notifications
Call that method with signals when a node is first saved
Adjust many tests that were expecting nodes were not configured with notifications.

some tests remove notifications and then build them back up as necessary
some tests utilize the now-existing notifications set up on node creation or contributor adding

Side effects and Notes

the tearDown method for addon tests was removed entirely because of troubles removing specific elements when contributors were added and nodes created mid test . I'm not sure if this was the right - thing to do or if there will be reprocussions, but related tests seem to pass
Node settings for current projects are NOT touched

According to Jira ticket:

[All] notification emails must be double checked for their inclusion of the explanation of where to change the user's preferences.

This should apply to contributor_added, comments, comment_replies, invite, and perhaps new_public_project in website/templates/emails/. Maybe others, as well.

Closing this and reopening in the much simpler #5377


Type addition request - SVCMN

Requesting additional type designator for "service manual / 12 concepts" study-related meetings.  These meetings typically focus in service-related issues and how the they impact their lives.
Desired abbreviation == SVCMN

Please see this comment.


Additional LocalInfileHandler implementation

The existing example of using LocalInfileHandler doesn't actually read a file. Below, I've included an example that does.
https://github.com/blackbeam/mysql_async/blob/54dbffaaa108cb5a0c97862d0f759d2b9a0060b5/src/local_infile_handler/mod.rs#L45-L51
struct InfileHandler;

impl LocalInfileHandler for InfileHandler {
    fn handle(
        &self,
        file_name: &[u8],
    ) -> Box<Future<Item = Box<AsyncRead + Send>, Error = my::error::Error> + Send> {
        let path = std::str::from_utf8(file_name)
            .unwrap() // TODO: not panic
            .to_owned();

        let future = tokio::fs::File::open(path)
            .map(|file| Box::new(file) as Box<_>)
            .map_err(|e| e.into());

        Box::new(future)
    }
}

// let mut opts = my::OptsBuilder::from_opts(&*database_url);
// opts.local_infile_handler(Some(InfileHandler {}));

Oh. I'll rewrite WhiteListFsLocalInfileHandler using tokio::fs (there was no tokio::fs when it was implemented).
Also note that with your simple example you should be aware of security issues with LOAD DATA LOCAL.

Thanks! I see now that WhiteListFsLocalInfileHandler actually had a file reading mechanism.

@blackbeam I've gone ahead and made PR #61 for this.

Thanks for your contribution.


[Help] numpy 版本不匹配 求问这个项目中numpy的版本

Is there an existing issue for this?

[X] I have searched the existing issues

Current Behavior
(pytorch) D:\ChatGLM>web_demo.py
Traceback (most recent call last):
File "D:\ChatGLM\numpy\core_init_.py", line 23, in
from . import multiarray
File "D:\ChatGLM\numpy\core\multiarray.py", line 10, in
from . import overrides
File "D:\ChatGLM\numpy\core\overrides.py", line 6, in
from numpy.core._multiarray_umath import (
ModuleNotFoundError: No module named 'numpy.core._multiarray_umath'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "D:\ChatGLM\web_demo.py", line 1, in
from transformers import AutoModel, AutoTokenizer
File "D:\ChatGLM\transformers_init_.py", line 26, in
from . import dependency_versions_check
File "D:\ChatGLM\transformers\dependency_versions_check.py", line 17, in
from .utils.versions import require_version, require_version_core
File "D:\ChatGLM\transformers\utils_init_.py", line 30, in
from .generic import (
File "D:\ChatGLM\transformers\utils\generic.py", line 27, in
import numpy as np
File "D:\ChatGLM\numpy_init_.py", line 141, in
from . import core
File "D:\ChatGLM\numpy\core_init_.py", line 49, in
raise ImportError(msg)
ImportError:
IMPORTANT: PLEASE READ THIS FOR ADVICE ON HOW TO SOLVE THIS ISSUE!
Importing the numpy C-extensions failed. This error can happen for
many reasons, often due to issues with your setup or how NumPy was
installed.
We have compiled some common reasons and troubleshooting tips at:
https://numpy.org/devdocs/user/troubleshooting-importerror.html

Please note and check the following:

The Python version is: Python3.9 from "D:\deeplearning\python.exe"
The NumPy version is: "1.24.2"

and make sure that they are the versions you expect.
Please carefully study the documentation linked above for further help.
Original error was: No module named 'numpy.core._multiarray_umath'
Expected Behavior
No response
Steps To Reproduce
pytorch学习入门的无知脑瓜+项目散在c盘d盘
Environment
- OS:win10
- Python:3.8.16
- Transformers:4.27.1
- PyTorch:
- CUDA Support non（因为是amd的GPU所以选择CPU计算）

Anything else?
No response

跟这个项目没关系。是你 numpy 安装有问题，连 import numpy 都会报错。可以根据它给的网址 https://numpy.org/devdocs/user/troubleshooting-importerror.html 检查一下，或者用搜索引擎搜索一下报错


[SE-0379][Opt-In Reflection] Allow same file conformance declaration

Allow same file conformance declaration

@jckarter ping


Fix failed p2 hive statistics case. (#34663)

backport https://github.com/apache/doris/pull/34663

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run buildall


Incorrect parsing of Scottish address due to Road oddity

Hi,
Great library so far, thanks for the efforts. I've noticed an issue though:
Example:
County Road, Highland, John O'Groats, KW1 4YR
Results in incorrect parsing, however:
County Rd, Highland, John O'Groats, KW1 4YR
Results in correct parsing.

However this is not the case for all instances of road, so far this is the only one i've found.
I'm tempted to work around this by replacing Road with Rd but there might be areas that have this as part of the address which is not the street name, which could cause further issues.

It looks like most of the components in this address don't exist in OpenStreetMap, which is our primary source of training data for Scotland and the rest of the UK. In general the machine learning model doesn't need to see every single address in the world to parse them correctly i.e. it can learn patterns, but in this one case it's going to conflict a bit with US addresses, where "County Road" almost always occurs before another street name token e.g. "County Road 123A." As such, the resulting model's going to have a strong weight for the token following "County Road" to be part of the street name, and would need to be trained on specific patterns where that's not the case. There doesn't appear to be an OSM way named "County Road" in that part of Scotland either, so we're probably not able to get any examples in our training set for that case. One solution would be to add that address and maybe an alt_name tag on the road itself in OSM. Alternatively, if there's some convention where all roads of a certain type should occasionally be aliased to "County Road" instead, we can make a rule for that on the libpostal side for the next round of training.
The "County Rd" piece is something of an anomaly. We have many different synonyms listed for "County Road" like "CR", "C.R", etc. again mostly with the US in mind in that case, but we don't have that particular abbreviation listed, so the parser would treat it as two tokens "county" and "rd" vs. one contiguous token "county rd", and that affects the weights it's using. I wouldn't count on that always being the case, as we'll probably add that abbreviation at some point.
Also, can you explain the "Highland, John O'Groats" formulation? Haven't seen it written that way before, with the council and then the village after. Is that standard in Scotland, or the UK generally, and how often is it written that way?


Creating a new project results in a false positive.

Creating a new project with Ionide 3.18.0 on Windows 10 in Visual Studio Code 1.21.1 results in the error "Incorrect template number or name" being printed in Forge's Output tab yet the notification indiciates the project has been created successfully. No project is created at all as a result.
Would you please assist?

Should be fixed in 3.18.1


A function for finding the closest grid point in a lattice (3 dimensional space)

The sonora.py code currently takes in effective temperature, surface gravity, and metallicity as grid points in a three dimensional space. However, the points are in a jagged array (#31 ), so we need to create a function to find the nearest grid point whenever a grid point that doesn't exist is found.

In discussion with @Jiayi-Cao today, we agreed it would be useful to test this function.  Originally in a Jupyter notebook, but possibly in a standalone unit test.


implement matches() in issue #2081

Check List:

Fixes #2081
Unit tests : YES
Javadoc with a code example (on API only) : YES

matches() for AbstractMatcherAssert

@joel-costigliola Hi, we've implemented matches() in issue #2081 .

Thanks! We are going to fix them within the next few days.

When can we expect MatcherAssert in a release?


reveal node_modules in separate container

This allows to reuse docker fs layer with node_modules
in case if there were no changes in package*.json
As a result it decreases dependency on network and build times
in rebuilds at least in local environment.

related to https://github.com/umputun/remark/issues/119#issuecomment-401595070

To get fs layer reuse in CI we might tweak our setup like described at https://github.com/travis-ci/travis-ci/issues/5358#issuecomment-248915326

This is an interesting idea, but I'm not sure about that travis part. You can add travis's change to this PR, and we could see how it works. The second part - we will need smth similar for drone. And the last part I don't know if such complexity even justified. Initially, in #119 I hoped to make frontend build dependency vendored directly, which seems to be non-trivial. However, if the change also decreases build time (significantly), it could be another good reason,

@umputun Is there a way to see build log from drone.io? I tried to open link, but it says just Loading. Login attempt is also failed. Btw, what it used for?
It seems like drone.io have better docker integration and maybe it would be simpler setup.

It seems travis config didn't helped.

@Guria I think travis won't allow PR change for the .travis.yml due to security concerns. The only way to test it is your own travis against forked repo.

@umputun after series of experiments I decided to stop experimenting with enabling docker fs layer caching on CI. It seems like overhead on cache packing/unpacking is more then potential win in build time.
I also introduced custom image with git and cached binary for node-sass. It used only in step that collects node_modules. Build container is still based on official image.

I also introduced custom image with git and cached binary for node-sass

I don't like the new dependency on guria/build-node:latest as a part of our build process. If this image base-enough to be added to  https://github.com/umputun/baseimage - pls PR to that repo.

@umputun  removed custom dependency since we don't rely on node-sass binary anymore
This doesn't improve anything on CI. But it's very useful for local development since it speeds up build times and saves network bandwidth, especially on limited mobile connections.

LGTM


ENH: add CI and str to Dunnett's test

Follow up of #18107
Adds confidence interval around the mean based on the "allowance" and also provide a cleaner str.

I've done some investigation of alternatives, and using minimize_scalar() like this tends to have the most error and function evaluations. Since the problem is one of root-finding rather than minimization per se, recasting it as a minimization problem seems to just consume more resources for less payoff. Using the brentq() root-finder, off-the-shelf, seems to consistently do better on both counts. It's not specifically adapted for stochastic functions, but as mentioned in the aforementioned thread, if the tolerance is chosen appropriately to match the noise level, it usually won't do too bad. Unfortunately, there is no real guidance to use to convert between the two. But in practice, it seems to work okay on this problem for reasonable choices of the tolerance.
Even better is a variant of the noisy bisection algorithm given in that blog post using a secant instead of pure bisection. One of the real benefits of this algorithm is that it is self-adaptive to the noise level of function and will converge as soon as the random noise violates the monotonicity constraint. This is a sensible place to stop, so it doesn't need extra checking after the fact. If a typical use of minimize_scalar() uses about 18 evaluations, brentq will use about 10, and the noisy secant will use about 7.
There are a few things that we can bring from the Bornkamp paper even if we don't implement the local-linear regression root-finder. I do have an implementation of it, and it can lower the error a fair bit (rigorously), but it does so at the cost of additional function evaluations, at least for the convergence tolerances used in the paper and mvtnorm. Relaxing those a little gets more reasonable function evaluations, but no real improvements over the noisy secant method.
One thing we can bring over is the use of the ppf() of a relevant distribution to make the curve more of a straight line with more of a slope. When we get to high confidence levels like 0.99 or 0.999, we are well into the tail of the CDF where it gets hard to invert, even when it's smooth and deterministic. Using stats.t.ppf(x, df=df) makes this curve nearly a straight line with a nice not-close-to-zero slope that is easier to root-find on, particularly with a secant method. Bornkamp uses either norm.ppf() or cauchy.ppf() (when df<=7), but most likely just because he's reusing R's GLM capabilities that have those as named link functions. t.ppf(x, df=df) smoothly interpolates between those cases for us. This really helps out with the noisy secant method, but is relatively neutral with minimize_scalar(), and improves brentq() a little bit.
The second thing is to use the bracketing interval Bornkamp derives. This helps place put us in the right region rather than having to search for one using the defaults. Specifically, if we are looking for x that gives a CDF value of p in our multivariate_t.cdf(x, df=df), then it must be between stats.t.ppf(p, df=df) and stats.t.ppf(p ** (1/ndim), df=df). These correspond to the cases when all of the dimensions in the correlation matrix are perfectly correlated (all elements 1) or perfectly independent (all non-diagonals 0). All other cases are intermediate. Having these bounds opens up the use of the superior root-finding methods, which require starting bounds that bracket the root.
I am happy to clean up my investigation notebook if there is interest.

Ok if I am not mistaking, I addressed all suggestions.

I am happy to clean up my investigation notebook if there is interest.

Yes, definitely would be interested in a PR! The PPF transform idea and use of analytical bounds with an existing bracketing root finder sound like very simple improvements to this. I'd be curious to see how much the tolerances in the tests can be tightened with that alone (and I understand that it would also improve speed). After that, noisy bisection/secant ideas also sound good. I've thought before that optimize might benefit from rootfinders that take advantage of certain assumptions (e.g. these rely on monotonicity), but I understand if we don't want to expand SciPy's scope in this direction right now.

OK, added the test. Please correct the one-sided confidence interval direction and adjust the tests (I flipped them so that I could check that the rest of the test was correct).

Thanks @tupui. Please add documentation of DunnettResult attributes in a follow-up. See https://github.com/scipy/scipy/pull/18150#issuecomment-1481782950 - it sounds like it's worth experimenting with the ppf transform and bracketing rootfinder @rkern mentioned. Those changes sound be pretty simple to make, but they could make this a lot faster and more robust.

Thanks Matt, I will make the follow up.
For the optimization part, I would set a lower priority vs other topics since the current solution is reasonable.

Re: https://github.com/scipy/scipy/pull/18150#issuecomment-1481782950
I got this working, but I wasn't able to get some of the tests to pass.
@rkern any chance that

then it must be between stats.t.ppf(p, df=df) and stats.t.ppf(p ** (1/ndim), df=df)

is supposed to be

then it must be between stats.t.ppf(p, df=df) and stats.t.ppf(1 - (1-p)**(1/ndim), df=df)

? That's how I got a valid bracket in my (sloppy) tests https://github.com/scipy/scipy/commit/6449a153804f561846f9555fc47c364298f0c1c5.
Could you point out the part of the paper where this is derived? What tolerance did you use with the bracketing rootfinders? (If you linked to your notebook, it got buried.)

Specifically, if we are looking for x that gives a CDF value of p in our multivariate_t.cdf(x, df=df)

For what I wrote, p is the area under the relevant integral for the confidence level, not the p-value. For a one-sided CI, that's p = confidence_level (flipping the sign later if needed). In the two-sided case, p = confidence_level + (1 - confidence_level) / 2. This lets us work with integrals from -inf to some_t_value and thus use ppf().
There's no formal derivation written out per se, but one can think through the two extreme cases. When all dimensions are completely correlated, the ndim-d distribution is really just a 1-d distribution rotated into ndim-d space, so the integral reduces to the 1-d case, giving stats.t.ppf(p, df=df) as the relevant bound. That one's easy.
In the completely independent case, the ndim-d t-distribution is just the product of ndim 1-d t-distributions. You can move each dimension's integrand outside of all of the other integrals, so the result of integrating the ndim-d t-distribution is just the 1-d distribution's integral to the power of ndim. So if we want a final ndim-d integral to give us p, we can look up the bound that gets that by passing p**(1/ndim) to the 1-d t-distribution's ppf().

Ah ok, thanks.

But it would still be great if you'd submit a PR with those few changes (PPF transform and use of analytical bounds with an existing bracketing root).


AKS scale documentation missing Az PowerShell, Portal, API explination

The documentation for AKS scaling doesn't explain how to perform a scale operation using either Az PowerShell, the Azure Portal, or the Azure AKS/resource API. It would be better if it talked about these other methods of manipulating Azure resources as well as the az command line tool.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: f41a301e-1baf-984d-74d7-bfaf7156eadf
Version Independent ID: 6a92992b-0514-e969-025b-7071322b6ee4
Content: Scale an Azure Kubernetes Service (AKS) cluster
Content Source: articles/aks/scale-cluster.md
Service: container-service
GitHub Login: @iainfoulds
Microsoft Alias: iainfou

Hi @chwarr Thanks for your feedback. We will review and update as appropriate.

@chwarr Thanks for the feedback.
Most of the documents in AKS has azure cli only.  I will let the author to comment on this and update the doc if needed.

Thank you @chwarr for the feedback!
We've added a task to our backlog and will prioritize accordingly.
#please-close


Can not be compiled on ros2-jazzy

Starting >>> allan_ros2
--- stderr: allan_ros2
In file included from /home/gds/mmw_ws/src/allan_ros2/src/allan_node.cc:4:
/home/gds/mmw_ws/src/allan_ros2/include/allan_ros2/allan_node.hpp:5:10: fatal error: rosbag2_cpp/storage_options.hpp: 没有那个文件或目录
    5 | #include "rosbag2_cpp/storage_options.hpp"
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
gmake[2]: *** [CMakeFiles/allan_ros2_lib.dir/build.make:76：CMakeFiles/allan_ros2_lib.dir/src/allan_node.cc.o] 错误 1
gmake[2]: *** 正在等待未完成的任务....
gmake[1]: *** [CMakeFiles/Makefile2:139：CMakeFiles/allan_ros2_lib.dir/all] 错误 2
gmake: *** [Makefile:146：all] 错误 2
---
Failed   <<< allan_ros2 [1.41s, exited with code 2]

Summary: 5 packages finished [9.66s]
  1 package failed: allan_ros2
  1 package had stderr output: allan_ros2

It seems that the rosbag2 for jazzy (Ubuntu24, linux-6.8.0-41) has something changed and divided to rosbag2_cpp and rosbag2_storage (not sure), when i try to locate storage_options, it is in 'opt/ros/jazzy/include/rosbag2_storage/rosbag2_storage'
I changed this file to rosbag2_storage, then it reports that the bag_message has no timestamp, but send_timestamp and recv_timstamp can be found and i'm not sure which one should be used.
The code of allan_node.cpp from line 131 to 135
                if (first_msg) {
                    first_msg = false;
                    current_timestamp = bag_message->time_stamp;
                    last_timestamp = bag_message->time_stamp;
                }

I change it to recv_timstamp and the process of compile is okay, i record the cmap but the data int deviation.csv are all zero.
90.90000000000000568,0,0,0,0,0,0
91,0,0,0,0,0,0
91.10000000000000853,0,0,0,0,0,0
91.20000000000000284,0,0,0,0,0,0
91.30000000000001137,0,0,0,0,0,0
91.40000000000000568,0,0,0,0,0,0
91.5,0,0,0,0,0,0
91.60000000000000853,0,0,0,0,0,0
91.70000000000000284,0,0,0,0,0,0
91.80000000000001137,0,0,0,0,0,0
91.90000000000000568,0,0,0,0,0,0

So, i hope there is a new update for the support of ros2-jazzy, thanks.

Here is the bag file i used:
record.zip


Include fees in transfer amount

Story
As a user
I want to be able to include fees in my transfer amount
So that I can more easily transfer everything to a new key
Acceptance Criteria

[ ] I can easily transfer all funds in an account to a different account
[ ] I can include fees in my transfer amount

Tasks

[ ] Explore and sketch
[ ] Team and stakeholder review
[ ] Visual Design
[ ] Team review
[ ] Dev
[ ] Test

Sketch
Additional details / background info
https://vegaprotocol.slack.com/archives/C037STCKMGC/p1679415847321469

Would this do?
@neildawson  @mattrussell36


Vue.use(Vue2TouchEvents) is undefined

I had to change this Vue.use(Vue2TouchEvents)  as you have in your readme.md to Vue.use(vueTouchEvents) because in your index.js you export vueTouchEvents

Can you give me an example of your code?
If you use vue without webpack or other build tools, you don't need to write Vue.use . If you use webpack, it's not important vueTouchEvents or vue2TouchEvents.

I'm not using VUE.js as application per say (.vue extension files, nor components/templates, etc),  but using VUE.js as part of a website, so any vue code goes into a normal JS file, but it works as it was an application.
I'm using gulpjs for task runner
Here is a basic example of the code I'm using with your plugin
Vue.use(vueTouchEvents)
new Vue({
    el: '.example',
    data: {
        show: 0,
        example: []
    },

    methods: {
        getJson() {
            fetch('example.json')
                .then(response => response.json())
                .then(data => this.example = data)
        },

        swipeTabs(dir) {
            if (dir === 'left' && this.show < document.querySelectorAll('.example-item').length - 1)
                this.show++

            if (dir === 'right' && this.show > 0)
                this.show--
        }
    },

    created() {
        this.getJson()
    }
})

Yes you are correct. Maybe some update/info on that on the readme file? Thanks.

Thanks for your advice. I will add some tips in the README.


Create unit tests for existing ViewSets

[ ] TokenViewSet
[ ] SocialTokenViewSet

Hi @ziyapx, I've some questions regarding the task:

How can I get access_token to pass as an argument in /social endpoint.
How can I get refresh token to pass as an argument in /token/refresh and /token/blacklist endpoints.
How can I get token to pass as an argument in /token/verify endpoint.
I'm getting TypeError while accessing /token/signup endpoint with GET and POST method.

Hi @ziyapx, I've some questions regarding the task:

How can I get access_token to pass as an argument in /social endpoint.
How can I get refresh token to pass as an argument in /token/refresh and /token/blacklist endpoints.
How can I get token to pass as an argument in /token/verify endpoint.
I'm getting No matching authorization backend message while hitting /token/signup/ endpoint, with POST request.

Hi @ziyapx, I've some questions regarding the task:

How can I get access_token to pass as an argument in /social endpoint.
How can I get refresh token to pass as an argument in /token/refresh and /token/blacklist endpoints.
How can I get token to pass as an argument in /token/verify endpoint.
I'm getting No matching authorization backend message while hitting /token/signup/ endpoint, with POST request.

I think you can mock certain parts to by-pass code that isn't in our library. Also you might need to change test settings. What do you think @ayushin ?


about does not work in the Chinese region

Does not work in the Chinese region
I modified the code in the following part and he worked fine
manifest.json -> permissions
    "https://cn.bing.com/search?q=*",

DailyRewardStatus.js
const USER_STATUS_BING_URL = 'https://www.bing.com/rewardsapp/flyout?channel=0&partnerId=EdgeNTP&pageType=ntp&isDarkMode=0';

Link https://www.bing.com/rewardsapp/flyout?channel=0&partnerId=EdgeNTP&pageType=ntp&isDarkMode=0 is redirected to link https://cn.bing.com/rewardsapp/flyout?channel=0&partnerId=EdgeNTP&pageType=ntp&isDarkMode=0
I don't know about extension development, so I can only give this ide

Thank you. I will look into this when I have time.

Hi, can you test (this commit)[https://github.com/tmxkn1/Microsoft-Reward-Chrome-Ext/tree/951e1a1c756e9ccdefe5aa56adfd3d956dd370b8] please? I have updated site permissions. Hopefully, it should work.

Hi, can you test this develop version please? I have updated site permissions. Hopefully, it should work.

of course

At China Mainland, the Google Trends is blocked. So googleTrend.js might catch an error of connection timeout when running.
A temporary solution is to make a proxy or reverse-proxy and edit _getGoogleTrendUrl's return value (line 95) to your proxy url.
    _getGoogleTrendUrl(yyyymmdd) {
        return `https://google-trends-proxy.yourdomain.com/trends/api/dailytrends?hl=en-US&ed=${yyyymmdd}&geo=US&ns=15`;
    }


Riemann Sum

Submission Title
Riemann Sum
Submission Type
Maths_And_Stats
Submission Description
Riemann Sum is a certain kind of approximation of an integral by a finite sum. The sum is calculated by partitioning the region into shapes (rectangles, trapezoids, parabolas, or cubics) that together form a region that is similar to the region being measured, then calculating the area for each of these shapes, and finally adding all of these small areas together.
Folder Related To
Maths_And_Stats => Calculus =>  Riemann Sum =>  Riemann Sum.extension
Contributors

[ ]  C++ -
[ ]  C -
[ ]  Python -
[ ] Java -
[ ] JavaScript -
[ ] TypeScript -
[ ] Golang -
[ ] Ruby -
[ ] php -
[ ] Swift -
[ ] C# -

I'd like to try this in C#. Also, shouldn't this be under Calculus?

I want to work on this issue in C++

I want to work on this issue in python

I would want to work on this in python

i would like to do this in C , C++, python ? @ahampriyanshu @Mr-Vaibhav-Shukla

Hi @Astrogeek77 ,
Please opt a different language/issue.

thanks everyone :v:


Update networking documentation for chrony UDP ports

The documentation needs to be updated to be more specific about the UDP ports required for correct chrony operation.
https://www.balena.io/docs/reference/OS/time/#networking-requirements
https://www.balena.io/docs/reference/OS/network/2.x/#network-requirements

About this issue tracker
Before creating a issue, check for duplicates. If there is another issue describing
the same bug or problem, please add comments to pre-existing issues or link them to add more context.
While creating a new issue, always make sure to provide as much context as possible with an
expected solution or change that you would like to see in the documentation. This helps
contributors understand the issue and execute a better solution.
If applicable, please add additional links to GitHub projects, forums.balena.io threads,
gist.github.com, Google Drive attachments, screenshots, JF/FD/Front threads for reference, etc.
Thank you for creating an issue and helping us improve balenaCloud's documentation!

Upon review I don't think that it is necessary to include information regarding the incoming UDP ports for chrony as it seems that this is normally handled transparently by stateful firewalls or routers using UDP hole punching (or similar technique).
I will update https://www.balena.io/docs/reference/OS/time/#networking-requirements to state that UDP port 123 only needs to be opened for outgoing connections.

Re-opening based on this thread - https://jel.ly.fish/inbox/e8bad089-1c87-4d91-aaef-09b7818c7ce6


Using Protocol for custom field types

Initial Checks

[X] I have searched Google & GitHub for similar requests and couldn't find anything
[X] I have read and followed the docs and still think this feature is missing

Description
Hi! I have been using pydantic for a while and I find it quite difficult to work with custom types that cannot be wrapped as a model. I would like to ask if it would make sense to add Protocols to implement behavior of custom types (basically something akin to MarshalJSON and UnmarshalJSON in golang)
A use-case for this: DateTime. DateTime is uses isoformat for serialization by default, which produces an iso-8601 string, but I would like to enforce rfc-3339 org-wide. So I create a custom DateTime library that all components use. With the current implementation I will have to add
class Config:
    json_encoders = {DateTime: DateTime.my_rfc_3339_formatter_function}

in every model that uses it.

This is the best solution I was able to dig up

Moreover, afaik, I will also have to add it to all parent top-level models as well, since json_encoders don't seem to propagate from my testing (in pydantic v1). But even if this is fixed in v2, my point still stands

Proposal:
JsonType = None | int | float | str | dict[str, "JsonType"] | list["JsonType"]
T = typing.TypeVar("T", covariant=True)

class JsonEncodable(typing.Protocol):
    def encode_json(self) -> JsonType:
        raise NotImplementedError

class JsonDecodable(typing.Protocol, typing.Generic[T]):
    def decode_json(self, value: JsonType) -> T:
        raise NotImplementedError

...
def dumps(obj: any) -> JsonType:
    if ininstance(obj, JsonEncodable):
         return obj.encode_json()

so that the custom type can look like this:
import datetime

class DateTime(datetime.datetime):
    def encode_json(self) -> JsonType:
        return self.isoformat("T") + "Z"

The idea is that there would be an ability for a custom class to implement a certain function a certain way, such that it would be used for serialization and de-serialization, If it's present and is typed appropriately. I envision it being lower priority that dict method, json_encoders, validators and so on. But it would basically serve as a layer between pydantic and json.loads/json.dumps.
Motivation:
I believe this would allow pydantic to support custom types and make their behavior predictable and consistent. It would eliminate errors stemming from misconfiguration of encoders for each downstream class. It would also eliminate boilerplate code, when serializing (having to add dict everywhere)
Notes:
Sorry, if the pseudocode is not pythonic, I am not a python developer, but hopefully it conveys the general idea.
The specific use-case example is just one of many such cases.
If this is a silly idea or if I am missing a better solution that's already implemented, or the entire point of pydantic/python, please let me know, cause I've been struggling with this for a while (I catch bugs relating to this on a regular basis) and couldn't find a way to solve this
I considered writing a custom encoder/decoder, but then I have to pass it to json/dict methods for every call, which seems very error-prone
Affected Components

[ ] Compatibility between releases
[X] Data validation/parsing
[X] Data serialization - .model_dump() and .model_dump_json()
[ ] JSON Schema
[ ] Dataclasses
[ ] Model Config
[ ] Field Types - adding or changing a particular data type
[ ] Function validation decorator
[ ] Generic Models
[ ] Other Model behaviour - model_construct(), pickling, private attributes, ORM mode
[ ] Plugins and integration with other tools - mypy, FastAPI, python-devtools, Hypothesis, VS Code, PyCharm, etc.

Hi @ramilmsh,
Thanks for submitting this feature request.
In version 2.5 we released a new JsonValue type that's very similar to that which you've defined above.
Additionally, I'm wondering if the ability to attach custom validators serializers to any given type via the use of the Annotated keyword might make this more simple. Check out the docs on how to do that.
I think, if I'm understanding your use cases correctly, that Pydantic as it stands now offers pretty clean support for what you're hoping to achieve 👍.


[RN 0.64.0] pod lib lint stopped working

Description
I'm developing a react native native module. Building the module, building the example app and running pod lib lint worked on 0.63.4. After upgrading to 0.64.0 by integrating the changes via the RN upgrade helper, pod lib lint fails with .../ios/Pods/Headers/Private/RCT-Folly/folly/math.h:26:10: 'limits' file not found.
React Native version:
System:
OS: macOS 11.2.3
CPU: (16) x64 Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz
Memory: 1.50 GB / 32.00 GB
Shell: 5.8 - /bin/zsh
Binaries:
Node: 10.15.3 - ~/.nvm/versions/node/v10.15.3/bin/node
Yarn: 1.22.4 - ~/.nvm/versions/node/v10.15.3/bin/yarn
npm: 7.5.2 - ~/.nvm/versions/node/v10.15.3/bin/npm
Watchman: 4.9.0 - /usr/local/bin/watchman
Managers:
CocoaPods: 1.10.1 - /usr/local/bin/pod
SDKs:
iOS SDK:
Platforms: iOS 14.4, DriverKit 20.2, macOS 11.1, tvOS 14.3, watchOS 7.2
Android SDK:
Android NDK: 21.1.6352462
IDEs:
Android Studio: 4.1 AI-201.87<IP_ADDRESS>42882
Xcode: 12.4/12D4e - /usr/bin/xcodebuild
Languages:
Java: 13.0.2 - /usr/bin/javac
npmPackages:
@react-native-community/cli: Not Found
react: 17.0.2 => 17.0.2
react-native: 0.64.0 => 0.64.0
react-native-macos: Not Found
npmGlobalPackages:
react-native: Not Found
Steps To Reproduce

yarn
cd ios; pod install
pod lib lint --allow-warnings --verbose --no-clean

Expected Results
Pod linting passes just like in 0.63.4.
Podfile
require_relative '../node_modules/react-native/scripts/react_native_pods'
require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules'

platform :ios, '11.0'

target 'ADEUMReactNative' do
  config = use_native_modules!
  use_react_native!(
    :path => config[:reactNativePath],
    # to enable hermes on iOS, change `false` to `true` and then install pods
    :hermes_enabled => false
  )

  # Enables Flipper.
  #
  # Note that if you have use_frameworks! enabled, Flipper will not work and
  # you should disable the next line.
  # use_flipper!()

  post_install do |installer|
    react_native_post_install(installer)
  end
end

Podspec:

  ...

  s.source_files = "ios/ADEUMReactNative.m", "ios/ADEUMReactNative.h"
  s.vendored_framework = "ios/ADEUMInstrumentation.framework"

  s.dependency "React"

  s.user_target_xcconfig = {
    'HEADER_SEARCH_PATHS' => "'#{__dir__}/ios/Pods/Headers/**'",
    "CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES" => TRUE
  }

  s.pod_target_xcconfig = {
    'HEADER_SEARCH_PATHS' => "'#{__dir__}/ios/Pods/Headers/**'",
    "EXCLUDED_ARCHS[sdk=iphonesimulator*]" => 'arm64'
  }

Podlib lint project building (debug or release)

It seems that .../ios/Pods/Headers/Private/Yoga/yoga/Yoga.h:11:10: Non-portable path to file '<Math.h>'; specified path differs in case from file name on disk this might affect somehow. I'm estimating that something changed in the react-native pod when upgrading.

Hey,
We're cleaning up the React Native issue tracker to make sure we focus on the most important issues first.
I'm closing this one because it's stale and related to a version of React Native we no longer support. If the issue persists on the latest version, please re-open a new issue and reference this one.
Thank you.


Fix getS3Objects for parent directories.

Previously, getS3Object was called with a path containing the bucket
path, which will fail, because getS3Object expects a path relative to
the bucket.
The path filtering may return folders too, so a folder is not
automatically a stored object.

Thanks @timoe ! Do you have plans when to release this?

Sorry for the delay @mattelacchiato. I did a release recently. Docker image got pushed to Docker Hub / Docker Cloud and libraries got uploaded to Maven Central

BTW @mattelacchiato: As you contributed I´d like to add you to the list of authors. I´ll do that in a separate commit if you don’t mind.

Sure! Thanks for the release!


enable CainIdentify with CharacterCfg option

Added option to enable the existing CainIdentify code from here. Tested on SP and it seems to work pretty well.

Added option to UI and tested to make sure it saves to the config file

Hehe, forgot to enable this as I didn't test it extensively after adding it. Glad to hear it's working as expected.
Few notes though:

Wording for the UI option is bad. Change it to Identify with Cain, omit the long explanation afterward.
Move the UI element above the minimum gold option
Most important: We need fallback logic in case identifying with Cain fails. For example if Cain wasn't found (ie wasn't rescued), it should fallback to normal way of identifying.

Hehe, forgot to enable this as I didn't test it extensively after adding it. Glad to hear it's working as expected.
Few notes though:
* Wording for the UI option is bad. Change it to Identify with Cain, omit the long explanation afterward.

* Move the UI element above the minimum gold option

* Most important: We need fallback logic in case identifying with Cain fails. For example if Cain wasn't found (ie wasn't rescued), it should fallback to normal way of identifying.

Thanks for the comments. I'll get the first two points fixed. Regarding the fallback logic, we'll need this PR merged first unfortunately: https://github.com/hectorgimenez/d2go/pull/54 as currently the quest data is not present.
In addition, the UpdateQuestLog function is currently bugged because https://github.com/hectorgimenez/koolo/blob/72ea47af0c5836d7cfbfc42c36555b5c9f6ca042/internal/action/step/close_all_menus.go#L16 does not actually check if QuestMenu is open. Related discussion here: https://discord.com/channels/1163042152985661480/1316961789191389254/1317256132594765897. I'll submit a separate PR to fix this

Revert this: https://github.com/hectorgimenez/koolo/pull/569/commits/09ac51a12d25a7b7dd6bc09852f8b4eb3ccbe9d5.
We don't need anything from d2go. If it doesn't find Cain in town, the Identify with Cain will return an error, in which case we can proceed and use old logic.
Don't try to overly complicate stuff.

Revert this: 09ac51a.
We don't need anything from d2go. If it doesn't find Cain in town, the Identify with Cain will return an error, in which case we can proceed and use old logic.
Don't try to overly complicate stuff.

Done

Maybe switch line 119 and 120 in character_settings.gohtml, so the checkbox for "Use teleport when available" is also in front of the text like all other checkboxes.

I assume that should be a separate PR since it's an unrelated change to Cain? I can make the change on this PR if the maintainer wants me to though


Infinit watch() calls

Hey,
I got a normally closed switch connected to GPIO22 on a RPI3. The Pin voltages are 2960mV in closed state and 20mV in opened state, so everything seems fine. But if I watch the switch with
const referenceSwitchMeasure = new Gpio(22, 'in', 'falling');

referenceSwitchMeasure.watch((err, value) => {
  console.log('Switch value: ' + value);
});

I get a single line for Switch value: 0 but infinit Switch value: 1 :(
Linux raspberrypi 4.4.34-v7+ #930 SMP Wed Nov 23 15:20:41 GMT 2016 armv7l GNU/Linux
Node.js 4.5.0
onoff v1.1.1

I also don't know why that example does interrupt for falling and rising edges?!

Does this happen without opening the switch or must the switch be opened to see this behavior?
Is the switch really connected to pin 15 (GPIO22) on the GPIO header and not to pin 22 (GPIO25)?
Is an external pull-down resistor resistor being used? The internal pull-down resistor which is configured by default for GPIO22 may be too weak.
The example watches for falling and rising edges in order to turn the LED on when the button is pressed and turn it off when the button is released.

@mathiask88 were you able to make any progress here?

I'm seeing similar behavior with watch events firing unexpectedly when there's no change in the input. It happens apparently randomly a few times an hour and I've updated my code to ignore it if there's been no change since the last event. Mostly I see them on 0 since the doors are mostly closed.
It seems to happen on a smaller kind of reed switch I have and not the larger roller door ones. I wondered if it was just wind or something and these are momentarily going open but too quick for the value on the event to show it. I only ever get one event, duplicating the previous event, and not a pair of events like it had two edges being detected.
My hardware is reed switches attached to doors which ground the GPIO inputs and there's 10K pull-up resistors on each input. I'm using GPIO 5, 6, 13, and 26. All are configured in onoff as this code snippet: new Gpio(5, 'in', 'both')
I'm running OnOff 1.1.1, Node.js v7.2.1, Raspberry Pi Linux 4.4.34-v7+ #930 SMP

@pandrew1 are you 100% sure that events are being fired with no change in the input? Do you have the possibility to attach an oscilloscope to verify whether or not the input is changing?

@fivdi No not yet. The hardware is in the university, maybe next week. I definitely will try an oscilloscope.

@fivdi I don't have a scope. These are the reed switches I'm using. There's a small air gap between them around the door so I can improve that but the door is not being opened when I get the extraneous firing of the event. I can excluded these easy enough because the value is the same as the previous event. https://www.amazon.com/gp/product/B015NI9W20

I think the issues here are hardware issues rather than software issues. If they are hardware issues finding their source isn't always easy. #61 is similar to this issue.
@pandrew1 I would imagine that you are seeing short spikes on the digital inputs. They're probably there for only a few microseconds. This would explain why the the value of the input doesn't appear to change. Internally onoff uses a module called epoll to detect hardware interrupts. When a interrupt is detected onoff is informed that the interrupt occurred but it's not informed about the value of the input when the interrupt occurred. It needs to read the digital input to determine what the value is. It will take a number of microseconds before onoff gets around to reading the digital input. By the time onoff gets around to reading the digital input it's value may have changed again, for example, due to a short spike on the input.
@mathiask88 please keep us updated on how things go.

This is most likely a hardware problem so I'm going to close the issue. If it turns out to be a problem with onoff the issue can be reopened.


Question: Older template with webpack vs newer template with angular-cli

@SteveSandersonMS I would love some direction and feedback on the templating.  It was first here and the one published currently that used the webpack middleware, and has a webpack.config.js and the webpack vendor files.
However, it seems there is a newer one https://github.com/aspnet/templating/tree/dev/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/content/Angular-CSharp that uses the angular-cli.
Going forward, what are the pros and cons of using the angular-cli middleware template vs the webpack middleware template?
Thanks!  and btw.. looking good on Blazor!

The newer SPA templates (based on Angular CLI and create-react-app) entirely replace the older ones. We've moved to the new structure because of so many customer requests saying it's preferable to work within the de-facto standard project structure and build system for their chosen client-side SPA framework.
We continue to support the underlying .NET packages used by the earlier templates, so anyone who's already working on an app created from that template should have no reason to change. They are not deprecated - they are still part of the shipping product. But if creating a new project we recommend using the new templates because it produces a structure that most developers prefer.


Code examples please

Some code examples in the README.md would be helpful and appreciated.

true, in the meantime you can check the tests for example code

Re What @deviantmk said:
check here: https://github.com/SermoDigital/jose/blob/master/jws/jwt_test.go for testing examples.

please add some example code.. as a golang  newbie it's hard to understand this library from test code.

I'm quite struggling to work with this library because the separation between JWT and JWS with no easy to convert between each other make the things very complicated.
I've spent quite a few time with it for a simple token validation with a "kid" protected header value which I want to check that it's present in the token; when I thought that I've got it, I struggle to generate a token in the test to test that validation.
As a result, I've got the PR #24
The work in this library is much appreciated because it's open source with the very open MIT license, but I would like to know if this library has been used to build something (difficult to see clear after the time that I need to do something which should be simple) and if you consider that it's implemented in idiomatic GO. Nothing wrong, but that information would help to people to make better decisions on using it and potentially encourage people to contribute improving it.

Tests should rather check if ANY (instead of ALL) expectations are broken, right?
https://github.com/SermoDigital/jose/blob/master/jws/jwt_test.go#L40

@ifraixedes I'll put up some examples inside the documentation today so it'll show up on godoc.

I've put a example to use Jose onto github. It's not very optimized but it works.

ETA on examples? 👍  :)

The code and tests were more than sufficient :)

@robbyoconnor yay, they are better than nothing. When they are good, they could be really good.
@nanoninja way to go!!! Thank you for the samples for human beings.

This issue is about the Readme file code examples not just the documentation/examples in tests....
Please re-open.

Code comments on how to setup a simple encode/decode example would help a lot. This library really seems well written!


[L5.5.13]: Resource route ordering

Laravel Version: 5.5.13
PHP Version: 7.1
Database Driver & Version: MySQL

Description:
See also: #21258
Hmmmm...this seems to be an order of operations problem, which I might have noticed if route:list displayed them in the order they are interpreted. There might also be a better way to do what I'm trying to do.

I have a resource.
The index and show are publicly visible.
Everything else is behind auth.

Steps To Reproduce:
// Handle the public
Route::resource('your-resource', YourResourceController::class, [
        'only' => [
            'index',
            'show'
        ]
    ])
    ->middleware(['web']);

// Put everything else behind a wall
Route::resource('your-resource, YourResourceController::class, [
        'except' => [
            'index',
            'show'
        ]
    ])
    ->middleware(['web', 'auth']);

Create (/create) ends up with show (/{your-resource}). route:list shows the following.
your-resource
your-resource
your-resource/create
your-resource/{your-resource}

Thereby hiding the "defect", which is that the interpretation order is really:
your-resource
your-resource
your-resource/{your-resource}
your-resource/create

Due to the ordering of the route blocks. Switching them fixes the problem:
// Put everything else behind a wall
Route::resource('your-resource, YourResourceController::class, [
        'except' => [
            'index',
            'show'
        ]
    ])
    ->middleware(['web', 'auth']);

// Handle the public
Route::resource('your-resource', YourResourceController::class, [
        'only' => [
            'index',
            'show'
        ]
    ])
    ->middleware(['web']);

Maybe route:list can be made to list the routes in literal interpretation order?

Yeah it seems like the list command just needs to be fixed to output the order correctly. If indeed the command should be responsible for that. It definitely makes sense for the "create" to be defined first.

No doubt. That is the question. If there's a more logical way to get feedback on the order the routes are interpreted...then it should definitely be there. From a UX perspective, route:list was the first place I went when the route was doing what was not expected. My literal thought was: "I bet the parameterized route is being hit first; therefore, it's going to show() instead of create(). I'll run route:list to verify."
When it wasn't in that order, I didn't knwo where else to look (you know what I'm saying?); so, started writing this and said, "I wonder..." then flipped them, which changed the nature of this ticket. :)

I wouldn't consider this is a bug. More of a proposal that can be made in laravel/internals

You can use php artisan route:list --sort to get a sorted list.

@Dylan-DPC: Yeah. Wasn't considering a bug either. Is there a different format to use or something more explicit I can do in the future to differentiate? First time posting.
@themsaid: Thanks! Didn't know that was a thing already.


No Metadata if Positive or Negative Prompt is Omitted

if the positive prompt is omitted when creating an image, SD-Manager won´t read / display the metadata. same is true if the negative prompt is omitted.

What did you use to generate the image ?

What did you use to generate the image ?

a1111

Fixed in v1.5.4
If it keeps happening for some reason, open other issue.


Stability and service life

hi,
Can you share your experience on this module? I love its feature(2g gprs+gps+soc) but I doubt its stability for deploying to iOT projects. I need it for Farm iot projects. Our minimum requirement is 2 years+ service life.
I am testing it on a project for 3+ months now and no issue.
Thanks

Hi, I  used this module in  2020  to build a small IoT project sending meter readings to IoT Cloud, so I observed that the module needs to reset from time to time using an external device(another MCU) and also sometimes does not connect to the server. I think it is better to find some solution in the case mentioned errors occurred to your system.

Hi, I used this module in 2020 to build a small IoT project sending meter readings to IoT Cloud, so I observed that the module needs to reset from time to time using an external device(another MCU) and also sometimes does not connect to the server. I think it is better to find some solution in the case mentioned errors occurred to your system.

Thanks for your response. Did you investigate further the main cause? Is it due to hardware or software issue? Internet connection stability is kind of difficult thing to maintain 100% uptime.

Having an external mcu is a must because when the gprs disconnects there is no way to reconnect unless you reset the module. Also u need to monitor the power supply to the A9, it doesn't like resetting too much. Overall, The module itself has been working for me since 2019 and I have 150 devices in the field that work for straight two years

Thanks. Among the 150 devices, how many failed so far?
I used micropython which I have to reset the device every two days to avoid mqtt connection issue which hanged the device and watchdog comes to the rescue. GPRS reconnect work after several retries in micropython.

@garudaonekh maybe 3 or 4 died because of A9 failure. The Mqtt connection on my part can last up to two weeks max (I am not using micropython btw) and gprs reconnect doesn't work because the SIM cards that I use don't require a valid apn to work.

@faithware did you have to pay for a mobile data packet for the GPS to work properly? Is it suitable for urban applications where there are high buildings?

@faithware did you have to pay for a mobile data packet for the GPS to work properly? Is it suitable for urban applications where there are high buildings?

GPS is independent chip and it is free so it is not related with GPRS data package that you have to pay to Telecom.
However, its GPS chip is very weak and accuracy is bad. I think it is up to 50 to 100 meter errors and may not work inside a tall building

Thank you @garudaonekh . Did you have troubles getting the coordinates in real-time? It seems that  it sometimes loses the connection with the satellites. Did a 2G module really match your needs? I think I'll have to go for a 4G module.

It is very slow to start, it needs sometimes 5 minutes to track 4
satellites. It is not good enough honestly
On Wed, 29 Nov 2023, 09:05 Benedito Kolamy, @.***>
wrote:

Thank you @garudaonekh https://github.com/garudaonekh . Did you have
troubles getting the coordinates in real-time? It seems that it sometimes
loses the connection with the satellites. Did a 2G module really match your
needs? I think I'll have to go for a 4G module.
—
Reply to this email directly, view it on GitHub
https://github.com/Ai-Thinker-Open/GPRS_C_SDK/issues/516#issuecomment-1831400347,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AJE6DQCNICASJMP4VYKDLJLYG3UC3AVCNFSM5ZOWI7TKU5DIOJSWCZC7NNSXTN2JONZXKZKDN5WW2ZLOOQ5TCOBTGE2DAMBTGQ3Q
.
You are receiving this because you were mentioned.Message ID:
@.***>

What @faithware said is right. Its hot fix is very slow. Good enough or not depending on your use case. If you just need to know a rough location, then it fits the job with the price. 2G is dead in some countries. Please note that in some developing countries, 2G and SMS is still the best choice because of its long coverage in rural area. If you just need to send data occasionally with small payload, then it's ok.


Make displayed attributes configurable

It is already possible to sort and remove attributes from the current table view. It should also be able to add some, and do not show all of them by default, as there could be a lot of them.
By default, at max, show 10 attributes? 20 attributes? Fit screen width? 1.5 as many attributes to the user as would fit on their screen width?
Sort the default ones by their interest (not implemented yet)

Fixed
By default, 20 are shown, sorted by their usage count.


Why does the app need these twitter permissions?

The twitter link now works (Yay!) however the app seems to be greedy and I - for one - wouldn't trust it with access to my twitter account. Please review what permissions the app needs to have and what users should be able to optionally grant for each of the social network logins.

This application will be able to:
Read Tweets from your timeline.
See who you follow, and follow new people.
Update your profile.
Post Tweets for you.

@julianharty, I was the last one working on the external authorization providers.
Have you looked at what the other login providers require you to share with the application? That might help for us to gauge how "greedy" Twitter is vs. Google for example.
Thanks

Good feedback, we will review our ability to minimize that but often there is one thing we need that only comes in a package with many other permissions - similar to other providers as @mgmccarthy as well as an unfortunate pattern on mobile OS's as well (have to get perms to access all files in order to show photos for example).
We for sure are not looking to grab more than we need and it only creates a vector for issues we don't want to have as we purely use it for identity sakes.
Thanks

@mgmccarthy the permissions being asked for twitter are wide-ranging at the moment and more than for other forms of authentication. @tonysurma @mgmccarthy I've just created a test twitter application (really I've just registered the details on twitter, no line of code needed) and discovered that there are 3 broad permissions. The least is read permission, and the one I've selected for my test app. You should hopefully be able to quickly and easily change the settings for your 'twitter app' to read only, and then check what permissions are displayed when someone who hasn't granted you permission to their twitter* clicks the twitter button in AllReady.
FWIW I found twitter's dev documentation is hard to make sense of. Perhaps it's just me though...

BTW: there's what seems a clear tutorial at https://code.tutsplus.com/tutorials/how-to-authenticate-users-with-twitter-oauth-20--cms-25713 albeit written in PHP.

@julianharty, I wrote a blog about what it takes to get read-permission access from Twitter (which is the only way to pull the user's email address in to the registration page when picking Twitter for logon)... and it's involved: https://mgmccarthy.wordpress.com/2016/07/07/asp-net-core-retrieving-a-users-email-and-name-from-the-twitter-external-login-provider/
I'll check out the tutorial written in PHP as we might want to shoot for the least invasive form of Twitter requiring information from the user, which I assume, would result in nothing pre-populated on the registration form when a user picks to authenticate with Twitter.

@julianharty cc @tonysurma
I set up a new Twitter account tonight and created a new Twitter app. I did NOT go through all the steps listed in my blog(https://mgmccarthy.wordpress.com/2016/07/07/asp-net-core-retrieving-a-users-email-and-name-from-the-twitter-external-login-provider/) yet.
I wanted to see what type of page I would get while running the application locally using the new Twitter account as the Twitter account for the allReady application:
This is the screen I received:

Much different than the screen the @julianharty received, and a lot less invasive. I'm not too sure who's Twitter account is used on the "live" site for hosting the Twitter application, but it sounds like that account might have checked off more information required from the application when authenticating via Twitter.
I'm going to keep investigating as well as take a look at how to fix Issue #1304, which is a bug.
Thanks

@julianharty and @mgmccarthy I am going to look at the live config and see what is right/wrong in our live config.  Thanks!

@tonysurma - Just following up on this ticket. Did you manage to look at the liveconfig?


⚠ Bofrost.de has degraded performance

In cbf8f6c, Bofrost.de (https://www.bofrost.de) experienced degraded performance:

HTTP code: 200
Response time: 1380 ms

Resolved: Bofrost.de performance has improved in cecdf2d.


Fix precomputed hash optimization

The precomputed hash optimization skips rows where any column is NULL.
This results in an uninitialized read in PrecomputedHashGenerator, which
causes all of those rows to hash to zero, which in turn causes
GroupByHash to de-generate into a linked list resulting in O(n^2)
running time.

Looks good.


AG scraper with wrong date

Today the scraper added a new entry with the same numbers as yesterday. When checking the website, these numbers were not there.
But the scraper code extracts the first entry in the timeline and then proceeds to get the first numbers on the page (in this case from yesterday). So they were erroneously assigned with todays date.

Looking into it.

It looks like the code is not very smart, and captures numbers from different days.
The solution would be to find most recent article with numbers, then download only the one article, and parse it. We do similar thing  few other scrapers.


Problems with arithmetic operation

Query.build("data(#){ {1 a } },atad(#){ {2 b }} {a * b / 6 c}")
14.04.2021 11:32:15.195 DEBUG org.wabase.tresql.tresql  - data(#){ {1 a } },atad(#){ {2 b }} {a * b / 6 c}
java.util.NoSuchElementException: key not found: b

Query.build("data(#){ {1 a } },atad(#){ {2 b }} { (1 / 6) * a * b  c}")
14.04.2021 11:37:15.372 DEBUG org.wabase.tresql.tresql  - data(#){ {1 a } },atad(#){ {2 b }} { (1 / 6) * a * b  c}
res3: org.tresql.Expr = with data as (select 1 as a), atad as (select 2 as b) select (1 / 6) * a * b as c

Resolved in commit
In hsqldb dialect generates sql like this:
with data as (select 1 a from (values(0))), atad as (select 2 b from (values(0))) select a * b / 6 c from (values(0))


User display, edit, delete functionalities are missing.

User display, edit, delete functionalities are missing.

Working on it.

Fixed.


Update to nixpgks 22.11 & fix test suite

update nixpkgs to 22.11
update nix to 2.13.2
create /nix/var/nix to prevent nix from falling back to chroot store
add tests using nix#nix-static instead of nix-portable to see how we compare to it
remove tests for centos8
add tests for fedora
re-enable tests for nixos

using proot as a runtime triggers a problem on arch, nixos, fedora and inside docker containers.
For arch, nixos, fedora it is not an issue, because nix-portable will use bubblewrap on theses systems by default anyways.
But for docker it is currently a blocker
The error:
hello> unpacking sources
hello> unpacking source archive /nix/store/pa10z4ngm0g83kx9mssrqzz30s84vq7k-hello-2.12.1.tar.gz
hello> source root is hello-2.12.1
hello> setting SOURCE_DATE_EPOCH to timestamp<PHONE_NUMBER> of file hello-2.12.1/ChangeLog
hello> patching sources
hello> configuring
hello> no configure script, doing nothing
hello> building
hello> build flags: SHELL=/nix/store/zcla0ljiwpg5w8pvfagfjq1y2vasfix5-bash-5.1-p16/bin/bash
hello> There seems to be no Makefile in this directory.
hello> You must run ./configure before running 'make'.
hello> make: *** [GNUmakefile:108: abort-due-to-no-makefile] Error 1
error: builder for '/nix/store/2rymqf3xf6qknxvpbc46jssnli8xsskg-hello-2.12.1.drv' failed with exit code 2

@Mic92

... updated the OP with some more info

Merging this now. The tests succeed for all environments except docker, which is an improvement over the last version.
The proot issue can be fixed later.


Frontend/Backend: Connect chat interface to agent

We now are close to having a prototype frontend design, so a natural next step is to connect the frontend to an agent.
We have an issue (#20) and PR (#35) for this, and also a prototype API design (#44) that would allow all of them to communicate.
These are not yet merged into main, but if we assume that these or something similar will be merged, then a next step would be to make it so that when we press the "send" button on the frontend chat interface, it uses the websocket API to send a message to the agent, and the agent provides a response which is displayed in the frontend.

I've been thinking more about this. I think we're going to need two websocket layers, at least the way the agent in #35 is currently set up.
The agent runs in docker for a layer of safety (wouldn't want it running rm -rf / on your host system 😅). So that will need to communicate to the host system e.g. via websocket.
We could connect the frontend directly to the docker container, and this might work well for an MVP. But that would mean our API server is bundled into the docker container, and tightly coupled to the Agent. We wouldn't be able to e.g. spin up multiple agents at once. And end-users would have to start the app with docker run, rather than just starting a server and letting the server handle the docker commands.
So I'm thinking the basic architecture is:

Frontend connects to API server via websocket
API server spins up a docker container running the agent
API server establishes a websocket connection with the agent
API server forwards all frontend messages straight into the docker container

But maybe for an MVP we can just do the simple Frontend -> Docker websocket connection and call it a day.

@rbren That makes sense to me. If I'm understanding you correctly, the flow is

Frontend --> API server
Frontend establishes a WebSocket connection.

API server --> Agent
API server spins up an agent to handle the frontend's requests.

Frontend <--> API server <--> Agent
Frontend and API server establish a WebSocket connection. API server and Agent establish a WebSocket connection. Requests from the frontend are forwarded by the API server to the agent.

In my opinion, it's worth writing both layers from the start. Curious to hear what others think.

Yeah, this totally makes sense, I agree!

@yimothysu exactly.
I put together a sample handshake: https://github.com/OpenDevin/OpenDevin/pull/57

Here's my latest take on the handshake: https://github.com/OpenDevin/OpenDevin/pull/97


Intel Galileo and Edison Support

added #include <avr/pgmspace.h> and this library is now compatible with Intel Galileo and Intel Edison boards

Have approached this slightly differently with acc9fe500e4cac80707e526b95f4fdcddb9082c5 - put ifdef PROGMEM around references to progmem sections. That means we can support more platforms that don't have progmem, nor have avr/pgmspace.h available.


Property prop_rebalanceSelection occasionally fails.

Context
https://hydra.iohk.io/build/4063979/nixlog/7/tail
Another failure: https://github.com/input-output-hk/cardano-wallet/pull/2168#issuecomment-698275912
Test Case
prop_rebalanceSelection
Failure / Counter-example
      Falsifiable (after 5023 tests):
         SaveMoney
         Coin {getCoin = 105080}
         selection (before):
         inputs: - 2nd 409786d4 (~ 166350 @ 61646472...64722d33)
         withdrawal: 618680
         reclaim: -0
         outputs:
           - 74251 @ 61646472...64722d33
           - 76285 @ 61646472...64722d33
           - 163463 @ 61646472...64722d32
           - 198051 @ 61646472...64722d30
         change: [272980]
         deposit: -0

         selection (after):
         inputs: - 2nd 409786d4 (~ 166350 @ 61646472...64722d33)
         withdrawal: 618680
         reclaim: -0
         outputs:
           - 74251 @ 61646472...64722d33
           - 76285 @ 61646472...64722d33
           - 163463 @ 61646472...64722d32
           - 198051 @ 61646472...64722d30
         change: [105080]
         deposit: -0

         delta (before): 0
         delta (after):  167900
         total fee:      167900
         remaining fee:  0

  To rerun use: --match "/Cardano.Wallet.Primitive.Fee/prop_rebalanceSelection/The fee balancing algorithm converges for any coin selection./"

Randomized with seed<PHONE_NUMBER>

Resolution

QA

Seen again here: https://hydra.iohk.io/build/4605661/nixlog/55/tail.
Extract:
  test/unit/Cardano/Wallet/Primitive/FeeSpec.hs:379:9:
  1) Cardano.Wallet.Primitive.Fee.prop_rebalanceSelection The fee balancing algorithm converges for any coin selection.
       Falsifiable (after 1412 tests):
         SaveMoney
         Coin {getCoin = 75091}
         selection (before):
         inputs: - 1st 1b0e0d01 (~ 191127 @ 61646472...64722d33)
         withdrawal: 661092
         reclaim: -0
         outputs:
           - 179239 @ 61646472...64722d30
           - 65871 @ 61646472...64722d31
           - 169386 @ 61646472...64722d32
           - 194332 @ 61646472...64722d31
         change: [243391]
         deposit: -0

         selection (after):
         inputs: - 1st 1b0e0d01 (~ 191127 @ 61646472...64722d33)
         withdrawal: 661092
         reclaim: -0
         outputs:
           - 179239 @ 61646472...64722d30
           - 65871 @ 61646472...64722d31
           - 169386 @ 61646472...64722d32
           - 194332 @ 61646472...64722d31
         change: [75091]
         deposit: -0

         delta (before): 0
         delta (after):  168300
         total fee:      168300
         remaining fee:  0

  To rerun use: --match "/Cardano.Wallet.Primitive.Fee/prop_rebalanceSelection/The fee balancing algorithm converges for any coin selection./"

Randomized with seed 826758594

Saw locally once:
 test/unit/Cardano/Wallet/Primitive/FeeSpec.hs:374:9:
  1) Cardano.Wallet.Primitive.Fee.prop_rebalanceSelection The fee balancing algorithm converges for any coin selection.
       Falsifiable (after 1996 tests):
         SaveMoney
         Coin {getCoin = 151662}
         selection (before):
         inputs: - 2nd 3bfc8bf9 (~ 183483 @ 61646472...64722d31)
         withdrawal: 556018
         reclaim: -0
         outputs:
           - 47175 @ 61646472...64722d32
           - 36274 @ 61646472...64722d31
           - 192524 @ 61646472...64722d33
           - 145066 @ 61646472...64722d32
         change: [318462]
         deposit: -0

         selection (after):
         inputs: - 2nd 3bfc8bf9 (~ 183483 @ 61646472...64722d31)
         withdrawal: 556018
         reclaim: -0
         outputs:
           - 47175 @ 61646472...64722d32
           - 36274 @ 61646472...64722d31
           - 192524 @ 61646472...64722d33
           - 145066 @ 61646472...64722d32
         change: [151662]
         deposit: -0

         delta (before): 0
         delta (after):  166800
         total fee:      166800
         remaining fee:  0

  To rerun use: --match "/Cardano.Wallet.Primitive.Fee/prop_rebalanceSelection/The fee balancing algorithm converges for any coin selection./"

Randomized with seed<PHONE_NUMBER>

Seen again here: https://github.com/input-output-hk/cardano-wallet/pull/2335#issuecomment-730285682

https://buildkite.com/input-output-hk/cardano-wallet/builds/12201#551d00fe-857e-45a4-96eb-df60a02a37f5

I think this is fixed, isn't it?

We've not seen it recently, so yes, hopefully #2357 fixed it 👍
Closing, can re-open if we do see again.


Display dry-run generated files contents in verbose mode

Bug Report or Feature Request (mark with an x)
- [ ] bug report -> please search issues before submitting
- [x] feature request

Area
- [x] devkit
- [ ] schematics

Desired functionality

Current DryRun lists the files that will be created/touched but not their contents.
Proposing a verbose variant that would output the files themselves. The developer could scroll through the console log or (more likely) capture the stdout to file.
Maybe this happens with the flag combo --dry-run --verbose

This issue was moved to angular/angular-cli#12155


fix the UE security capabilities

retest this please

As per spec, We should send the Ue security capabilities as it is received in the Ue Network capability and MS Network capability. This would require more code changes.
Can Commit as of now cause this fix is able to help run the attach successfully.

Bad, Yes, this fix can help the phone attach.

+1

retest this please

retest this please

retest this please

retest this please

retest this please

retest this please

retest this please


ActionCable errors are not reported

I've fixed it by monkey patching ActionCable in initializer.
module ActionCable
  module Channel

    class Base
      alias perform_action_without_rollbar perform_action

      def perform_action(*args, &block)
        perform_action_without_rollbar(*args, &block)
      rescue Exception => exception
        Rollbar.error(exception)
        raise exception
      end
    end

  end
end

@husam212 Thank you for the report.

to help anyone else, I was able to do this using the above monkey-patch as a guide but using prepend instead. I implemented both because I wasn't entirely sure if it was only needed in one place or not
module ActionCableRollbarSupport
  module Channel
    def perform_action(data)
      super
    rescue Exception => exception
      Rollbar.error(exception)
      raise exception
    end
  end

  module Connection
    def execute_command(data)
      super
    rescue Exception => exception
      Rollbar.error(exception)
      raise exception
    end
  end
end

ActionCable::Channel::Base.send(:prepend, ActionCableRollbarSupport::Channel)
ActionCable::Connection::Subscriptions.send(:prepend, ActionCableRollbarSupport::Connection)

Code above is not working anymore. Rails ActionCable in master is allowing to use rescue_from gracefully.
For  6.0.X < rails =< 6.1  I applied that patch:
# turn on reporting by rollbar errors on action cable server
# https://github.com/rollbar/rollbar-gem/issues/894
module ActionCableEnhancements
  module RollbarReport
    def add(data)
      super
    rescue Exception => e # rubocop:disable Lint/RescueException
      Rollbar.error(e)
      raise e
    end

    def perform_action(data)
      super
    rescue Exception => e # rubocop:disable Lint/RescueException
      Rollbar.error(e)
      raise e
    end

    def remove(data)
      super
    rescue Exception => e # rubocop:disable Lint/RescueException
      Rollbar.error(e)
      raise e
    end
  end
end

ActionCable::Connection::Subscriptions.prepend ActionCableEnhancements::RollbarReport

Are there any plans to add support for Action Cable out of the box?

FYI, Action Cable provides exception handling that can be used to forward errors to Rollbar:
# app/channels/application_cable/connection.rb
module ApplicationCable
  class Connection < ActionCable::Connection::Base
    rescue_from StandardError, with: :report_error

    private
      def report_error(e)
        Rollbar.error(e)
      end
  end
end


Curating a new collection [Country: Singapore]

Please confirm this pull request meets the following requirements:

[x] I followed the contributing guidelines: https://github.com/github/explore/blob/main/CONTRIBUTING.md.
[x] I have no affiliation with the project I am suggesting (as a maintainer, creator, contractor, or employee).

Which change are you proposing?

[ ] Suggesting edits to an existing topic or collection
[x] Curating a new topic or collection
[ ] Something that does not neatly fit into the binary options above

Editing an existing topic or collection
I'm suggesting these edits to an existing topic or collection:

[ ] Image (and my file is *.png, square, dimensions 288x288, size <= 75 kB)
[ ] Content (and my changes are in index.md)

Please replace this line with an explanation of why you think these changes should be made.

Curating a new topic or collection

[x] I've formatted my changes as a new folder directory, named for the topic or collection as it appears in the URL on GitHub (e.g. https://github.com/topics/[NAME] or https://github.com/collections/[NAME])
[x] My folder contains a *.png image (if applicable) and index.md
[x] All required fields in my index.md conform to the Style Guide and API docs: https://github.com/github/explore/tree/main/docs

Hi I'm Chad from Singapore, I've curated this collection to showcase open-source software projects made in Singapore that can address issue in Singapore public sector to improve the quality of life for its residents (Healthcare, Smart-City, Transportation, etc.).

Something that does not neatly fit into the binary options above

[ ] My suggested edits are not about an existing topic or collection, or at least not a single one
[ ] My suggested edits are not about curating a new topic or collection, or at least not a single one
[ ] My suggested edits conform to the Style Guide and API docs: https://github.com/github/explore/tree/main/docs

Please replace this line with an explanation of your proposed changes.

Please note: we will close your PR without comment if you do not check the boxes above and provide ALL requested information.

requested a review from as a code owner 14 hours ago


Add Marpou Ceiling Lamp Ledlight

Hi,
I don't know if I do this correctly, if I do something wrong please let me know.
Best Regards.

@robsonmantovani, thanks for this. I've recently acquired a similar light. I can add it to tuya-local using this device profile but I'm unable to control the RGBIC part of the light. In the Tuya app, I noticed this light exposes 2 switches - one for the main white light and another for the RGBIC called auxiliary. The tuya-local integration does not appear to expose the RGBIC switch?

Hello,
You are correct, in Tuya App this light has 2 switches, but the API doesn't
have it. So I couldn't  make it work.
Take a look:
[
{
"code": "switch_led",
"value": false
},
{
"code": "work_mode",
"value": "scene"
},
{
"code": "bright_value",
"value": 1000
},
{
"code": "temp_value",
"value": 974
},
{
"code": "colour_data",
"value": "{"h":40,"s":1000,"v":969}"
},
{
"code": "countdown",
"value": 0
},
{
"code": "music_data"
},
{
"code": "control_data"
},
{
"code": "debug_data",
"value": ""
},
{
"code": "sleep_mode"
},
{
"code": "wakeup_mode"
},
{
"code": "do_not_disturb",
"value": false
},
{
"code": "mix_light_scene"
},
{
"code": "remote_switch",
"value": false
},
{
"code": "mix_rgbcw"
},
{
"code": "cycle_timing"
},
{
"code": "random_timing"
}
]
Em qui., 23 de mai. de 2024 às 02:11, bfg100k @.***>
escreveu:

@robsonmantovani https://github.com/robsonmantovani, thanks for this.
I've recently acquired a similar light
https://github.com/make-all/tuya-local/pull/967/commits/fcca3609c3827c33ed5bbdd9ba5d045bd24a5715.
I can add it to tuya-local using this device profile but I'm unable to
control the RGBIC part of the light. In the Tuya app, I noticed this light
exposes 2 switches - one for the main white light and another for the RGBIC
called auxiliary. The tuya-local integration does not appear to expose the
RGBIC switch?
—
Reply to this email directly, view it on GitHub
https://github.com/make-all/tuya-local/pull/967#issuecomment-2126246065,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AB26GB4BR75WXI4Q7FJKCZDZDV3A5AVCNFSM6AAAAAA3G6GWTSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCMRWGI2DMMBWGU
.
You are receiving this because you were mentioned.Message ID:
@.***>

--
At.
Robson Mantovani


fix(EpochTime): fix unmarshal/marshal of empty EpochTime

Change json tag from 'alert_events' to 'recent_events'.
Provide fix and unit tests for marshaling/unmarshaling EpochTime struct, add case when we try to unmarshal previously marshaled empty EpochTime's object.
Related to: https://github.com/newrelic/newrelic-client-go/issues/995
and
https://github.com/newrelic/newrelic-client-go/issues/992
Please review
@sanderblue
@NSSPKrishna

Guys, please, could someone review the PR, it's a major blocker for me right now ((
@NSSPKrishna
@kidk
@sanderblue

@diabeticMike it looks like the associated unit test for alerts needs an update based on your change. After that, we can get this merged :)

Hi @sanderblue, thank you for the response, did you mean unit tests for json tag change?
Because for Epoch time I've already added them.

Hi @sanderblue, tests are done, waiting for your review :)


Allow UuidProvider to be used with IAccessEvent

UuidProvider is currently restricted to ILoggingEvent but may be useful with IAccessEvent as well.

net.logstash.logback.composite.loggingevent.UuidProvider is now deprecated and replaced by net.logstash.logback.composite.UuidJsonProvider. This new version is usable for both ILoggingEvent and IAccessEvent.


Python testing: nosetests and if __name__ == "__main__"

As far as I understand the only "supported" way to run all python test cases is with nosetests. Nevertheless most (if not all) python test cases run some tests when started as python test_X.py.
Unfortunately the two ways to start the tests are inconsistent, as the if __name__ == "__main__" part of the test_X.py file is not guaranteed to run all tests run by nosetests.
For example when running python test_operator_gpu.py the method test_upsampling_bilinear_with_type is not run, though it is run by nosetests.
This is confusing and I therefore propose to change the current behaviour. I think there are two possible approaches:

Make sure that if __name__ == "__main__" runs all relevant test cases.
Don't run any test cases in if __name__ == "__main__" but print an error message requesting the user to run nosetests.

The first option seems inferior, as it requires constant care when adding new test cases, while option two is a one time change.
What do you think?

This issue is closed due to lack of activity in the last 90 days. Feel free to ping me to reopen if this is still an active issue. Thanks!


AI PROJECT FOR LANGUAGE TRANSLATION

Key takeaways
-Change the language.
-Change sprite and background.
-Explore and build your own program.
-Create your own code block to enable the user to change language to another language.
References
N/A

Good afternoon and thank you for submitting your topic suggestion.
Your topic form has been entered into our queue and should be reviewed (for approval) as soon as a content moderator is finished reviewing the ones in the queue before it.


extract parsed function

Introduce parsed function that can be used outside upload api

Sorry, I don't understand this change, and the diff looks like you changed the spacing on all my lines.

@jhuckaby as for spacing - that was my editor i can fix it.
As for my PR
You have upload method that generate Blob and than send it.
But sometimes we just need parsed Blob, so i just extracted your logic where you parse blog into parsed method

Okay, thanks for the explanation.  I really don't like the name parsed.  It makes no sense to me, and as a user I would be confused as to what it actually did.  I'll try to implement this in a future version with another name.

Great. Thanks @jhuckaby