Redis and Feathers service API are butting heads

Problem
Redis is fast because it is like the "RISC" implementation of databases.  A reduced number of operations, and simplification where everything is based on the IDs for the records; the only keys are the IDs.  Only the record IDs/keys can be searched using a pattern.
As a result, there is no search by other criteria, unless the fields to be searchable have been extracted and built a separate parallel namespace ("table") of ID keys with the values for the original fields stored as the IDs to the index records.  i.e. The caller must manually create an index for each searchable field, otherwise the only query option is to load the whole database and do a linear search over all records, or at least those that match a certain key namespace (i.e. table), like "users:*".
Basically, Redis provides some very cool db storage types, like 'hash' and 'set' (ideal for indices), as building blocks for this, and assumes the db administrator creates ID-based records appropriate for needs.  There is no inherent search by criteria other than by IDs.
Solutions
To provide a Redis service adapter for Feathers, there are a couple of options:

Auto-construct and consistently maintain parallel "system index tables" for each query-ready field in a caller record (e.g. for all fields in all records).
Search for efficiently for matching IDs if a query happens to be limited to the id field, otherwise inefficiently search all records for matching criteria (linear search).
Limit the queries to the id field.

#1 is very intrusive for an adapter, that is intrusive for it to do that in the caller's db. In fact I'd be pretty annoyed if I called feathers-redis functions and it started adding records beyond the ones explicitly indicated in a create.  We could do this, but another problem is that it would also not support existing Redis databases. This adapter would need to be used as the database access mechanism and the only (exclusive) such service with access to the db data.  Or for existing data, it would have to run some kind of index builder before you could issue finds.  I think this is prohibitively horrible.
#2 isn't a bad approach although it runs the risk of failures due to exhausting memory if the data set is large and the caller finds the query facilities convenient.  It hides the complexity of providing and supporting a Redis database, in a potentially dangerous way.
#3 actually matches Redis functionality.  More complex queries are supported the Redis way, by adding more keys in a parallel "index" of records.  Thus, you can't query on the phoneNumber field if you haven't created an index with phoneNumber:nnn for IDs.
Proposal
In the initial version, I'm going to go with #3 and limit the find criteria to ID fields.  We could extend this for small databases but even if they do this via feathers-redis, they could and should be using feathers-redis to add more indexed data.
Unfortunately the 'set' Redis data type is ideal for this, but cannot be used since we only have get and set operations (for a single type).  Redis has a whole families of set-commands.  There isn't even an options parameter passed on these operations where we could indicate an alternate type of data (e.g. to store an object of fields names and values as a Redis 'hash') or in this case as a 'set'.  But string or JSON-based records could still be used; it's not ideal but it's what we can support via the generic interface.
Future
We might also be able to recognize special object fields (as we do now for id or _id, etc) for Redis types or options specification.  Or, if set also accepted a recognized object, with two members: redis (with options) and data (the actual record data), or feathersOptions and feathersData. So for example, feathersOptions could indicate that the data is a Redis 'list' or 'set' and then accept an array in feathersData, or feathersOptions could indicate that the data is a Redis 'hash' and then accept an object full of fields and values in feathersData. I beleive this could be done in a backwards-compatible way with existing calls and code.
For background understanding of how Redis is used for more complete general queries, see this article as a good example.

Note, I don't like the Future stuff above, because it violates the whole purpose of feathers db adapters maintaining a consistent cross-adapter implementation.  I don't really like option 2 above because it hides a huge performance hit.
However, other feathers contributors may have already encountered this dilemma and established a philosophy on it. I'm very open to suggestions or alternatives, and I do think maintaining consistency across adapters is a primary objective.  So if others are resolving queries via linear searches, feathers-redis could do so as well.
Redis does support paging directly, so memory during a query could be controlled (except for the matching records of course).

It seems others have commented on this problem in a more general way:
The SELECT problem in redis

There is a second issue with Redis in relation to paging.  When a query does not include all records, it will return less records than specified by a count option, however it will include a non-zero scan cursor position to indicate that more data is available in the next iteration.  In fact, it is quite common for Redis to return more than the count specified.  Thus if the Feathers service interface's paging options are fairly rigid, and stateless, it's not really possible to provide the data paged, at least not without rescanning from the start at each iteration.
I think the only way to implement $skip and $limit is to either buffer all results (but it's stateless so perhaps in a LRU cache) or, more likely, to scan from the beginning of the data each time and pluck and return only the records that match the paging criteria.
Also worth noting that the $skip value does not correspond to the Redis cursor in any way.  Note the example here where the first scan for 10 items actually returned 11 items and a new cursor value of 17 for the next page. It returned 0 on the second scan indicating it was the final page.
Suggestions? We could just say that pagination (and non-ID queries too) are horribly inefficient in feathers-redis and to be avoided, but there are serious architectural conflicts here with Redis, to the point where almost all the capabilities and benefits of using Redis (square peg) are negated by trying to force it through the Feathers services interface (in this case, a round hole).

Actually that linear search for paging may not be so bad. It's only a scan through all records to extract the IDs of the target page.  That's probably still fast and uses little memory.  But to provide strict (i.e. correct) $skip and $limit implementations, we'd need to scan from the beginning on each call.

@appurist really nice writeup and detailed thoughts. 🍻
A couple of mine:

.

In the initial version, I'm going to go with #3 and limit the find criteria to ID fields. We could extend this for small databases but even if they do this via feathers-redis, they could and should be using feathers-redis to add more indexed data.

I agree and I think this is the best approach. At least for a v1. It doesn't have to support everything from the get go. Just having a redis adapter that we can use as a basic cache is a huge win.

Handling special adapter params we kind of already do with Mongoose and Sequelize. We would have a params.redis object where you can pass DB specific options.

-.

Actually that linear search for paging may not be so bad. It's only a scan through all records to extract the IDs of the target page. That's probably still fast and uses little memory. But to provide strict (i.e. correct) $skip and $limit implementations, we'd need to scan the keys (IDs) from the beginning on each call. (That's what I'll do.)

That's what I was going to suggest for now and we can see how it works in practice. I think with a bit of finagling we could buffer the cursor and do the strict paging in memory in JS in the service if we really needed to but let's go with what you were thinking for now.

This has been kicking around for a little bit now. In order to keep our maintenance overhead (and issues like #2 and #5) down I'd either like to make the repository private until there is a releasable version and/or transfer it to @appurist if that's ok.

I think you should make delete it or make it private until such time as someone claims for active development.
My priorities took a dramatic turn and I haven't been able to contribute here and I'm unlikely to have a chance to come back to this.  I know it seems weird to delete it, but when something is stale it is often better to start from scratch next time someone comes along to champion the project.  I was mostly doing it as a learning experience for both feathers and redis and I have my own copy anyway should it ever make sense to revive it. If I do pick it back up again, even I might start over from one of the other feathers db adapters and by that point we'll probably all be using async/await and it would need a major overhaul anyway. ;) So... I'd probably just delete the repo and let someone start fresh if they want.
Although bear in mind the issues I describe above with trying to map redis into feathers service methods.  It doesn't really fit, and if you try, you'll probably eliminate most of the features of redis and have an inefficient access to it.  Private or delete, I won't be offended at all either way. And I'll have a copy should you ever want it.

Sounds good and thank you very much for the work you put in @appurist! It's too bad there wasn't an easy way to get it to play nicely as a full fledged adapter.


[⭐FEATURE] Add a new page to display all contributors ✨

I want to add a page to showcase all the contributors of this website..
@vishanurag PA please assign me this task.

@vishanurag


Make pedestrain walk cross the road

Hi all,
I am the new to Carla. Now my project requires making the pedestrians walk cross the roads and interact with vehicles. But how could I do that?
I am using the 0.9.6. I have tried to run the spawn_npc.py and set the destination to what I want in the map, but it doesn't work. Is there any way to make them go cross street?
Thanks in advance.

Hi @Siqi-Wang47,
Did you find any solution to this problem? I need to simulate a similar behaviour where I want pedestrians to cross the road.

Hi @ndeshp2s ,
Unfortunately, I haven't got any solution to that. I think to solve this problem, we need to modify the map in which pedestrians could navigate on roads. You could try the method mentioned in #1899. I have tried that, but I couldn't install the Recast&Detour library.

Hi @Siqi-Wang47,
Thanks for the information. I was wondering if it could be possible to use the older version of Carla where is functionality was available?


Add new logo

Closing to continue the discussion in this issue: https://github.com/levibostian/Wendy-Android/issues/40


Remove "margin-bottom" class from 'Light' f-color-chip

I think the class was mistakenly attached to the chip but it bothered me and I've been playing around with fabricator quite a bit lately.

Good catch :+1:


Yuv color gamut conversion and transformYuv420 using Arm Neon.

These 2 patches add a Arm Neon version for the YUV color gamut conversion as well as the transformYuv420 function.

@ram-mohan, @DichenZhang1 Do we need to do anything else here before this can be merged?

@jwright-arm The changes look good to me. I will check perf numbers with and with out the changes once. Nothing is required from you side. Thank you.

@cmacdonald-arm @jwright-arm I have profiled from my side. The numbers look really good. Thank you for this change. Couple of observations, with neon enabled the change is not bit exact. Is this expected. Further i am seeing an improvement of 16x for convertYuvNeon method. This seems to be on the larger side because neon module is processing 8 pixels per iteration in comparison with non-vector implementation which is doing 1 per iteration. I am unable to explain the additional 2x gain.

@ram-mohan This change is expected to not to be bit exact, it contains a possible off by one errors. This is due to the usage of fixed point rather than floating point coefficients. In terms of the uplift, 16 Y values and 8 U & V values are processed per loop iteration, also with the usage of fixed point, conversions from integer to floating point and vice versa are no longer needed.

Thank you, @DichenZhang1 This can be merged as well.

Thank you! @cmacdonald-arm @ram-mohan


removeDestination should use unification

Fix this TODO:
https://github.com/kframework/kore/blob/11769a0e62d62eba17b5b5a9a9a8123745aa4bf6/kore/src/Kore/Strategies/Goal.hs#L980
If unification fails (not \bottom, but two patterns that aren't handled) then we should abort execution, as we do when applying rules.

This needs #1767 to be fixed first.


10 homepage testimonials block

Please always provide the GitHub issue(s) your PR is for, as well as test URLs where your change can be observed (before and after):
Fix #10
Test URLs:

Before: https://main--piramal--aemsites.hlx.page
After: https://10-homepage-testimonials-block--piramal--aemsites.hlx.page

still needs a padding fix for the section

@mind-adobe yes, we need to add them!
I was about to mention that

For section padding - I will create a separate issue then so it can be taken care of in one shot

@mind-adobe , please see and address the issues under accessibility: https://pagespeed.web.dev/analysis/https-10-homepage-testimonials-block--piramal--aemsites-hlx-page/926ft22tc1?utm_source=psi&utm_medium=redirect&form_factor=mobile
this gets highlighted in SEO as well

@mind-adobe , please see and address the issues under accessibility: https://pagespeed.web.dev/analysis/https-10-homepage-testimonials-block--piramal--aemsites-hlx-page/926ft22tc1?utm_source=psi&utm_medium=redirect&form_factor=mobile
this gets highlighted in SEO as well

Fixed it, should be good now


feat: add custom tls config support to mysql

Description of your changes
This PR adds support for custom TLS configuration to mysql implementation. In provider config file, if tls is set to custom, it reads custom TLS configuration from tlsConfig property, reading CA cert and client key/pair from K8s secret(s), and registering that config in mysql driver under the custom key.
Even though the mysql driver allows for multiple tls config key/value pairs, in the context of the provider it didn't appear to make sense to allow user to configure multiple TLS configurations and select only one of them, therefore the tlsConfig property is not a map, but rather a single config entry.
I have:

[X] Read and followed Crossplane's [contribution process].
[X] Run make reviewable to ensure this PR is ready for review.

How has this code been tested
Because e2e tests require a totally different setup with a TLS-enabled mariaDB instance (but with same test cases), the current test script was duplicated and modified to add TLS, making sure that make test-integration runs both the no-tls and tls test scripts. It would be possible to refactor both scripts to combine them together and reduce duplication of setup and test code, however to the cost of readability. Let me know if that is a blocker and I will address it, I just didn't want to introduce more complexity in e2e test script until you confirm that's really what you prefer.

@Duologic @chlunde @iainlane sorry for pinging you directly, I saw you seem to have been active here recently. Would just appreciate your cue on whether you think such a PR is likely to be reviewed on the short term, or if we should rather assume that we'll need to build and use our own fork for the next few months? Thanks! 🙏

@silphid not sure if we should duplicate the full integration test, because there's also talk about adding PG integration tests.
Two ideas:

Create a common library script with at least functions for  "setup cluster + install provider" and "teardown cluster", and reuse that code by importing it as a library using source
Have a main driver script to run integration tests, calls smaller "integration_test_mysql_tls.sh", integration_test_mysql_no_tls.sh, integration_test_postgresql.sh, before cleanup. Each script can assume a working and "fairly clean" cluster. Each script must cleanup the cluster (but keep the provider installed).

@Duologic @Bastichou what do you think?

Thanks for this, I don't have any objections on either proposals, I gladly follow what ya'll think is a good path forward.
Thanks @chlunde for the review, I'm lacking bandwidth to review this but don't mind rubberstamping your approval and get this merged.
@silphid don't forget to sign the DCO ;)

@silphid not sure if we should duplicate the full integration test, because there's also talk about adding PG integration tests.

All right, I went ahead and refactored all integration tests into more modular shell functions. I kept them inline for now, as we only have mysql tests, but eventually if we add tests for PG, they would be easy to extract into other files can could be sourced. I'm pretty satisfied with the result, which is IMO much cleaner and readable. Let me know what you think! :)

@chlunde @Duologic I just rebased on latest master, resolved conflicts and signed all commits (also see my above comments/improvements). Anything else I should do before you can run the workflow again?

@chlunde I appreciate everyone is busy with their own projects, with little spare time left, but if it was possible to get a quick review on this one, I would be extremely grateful! 🙏☀ We're hoping to start using those changes via the official release channel, but otherwise the plan is to setup the CI/CD for our fork internally, which I would sincerely prefer to avoid, if possible! 😅

Bump @chlunde @Duologic.
Would so much appreciate your review and ideally unblocking the execution of the checks/workflows! 🙏

Last bump @chlunde @Duologic 🤞 before we move on to setting up the build and publishing of our own fork, as a last resort.


Prevent capturing network info when Perf data collection off

We're treating data collection off as SDK not installed
#no-changelog

We're treating data collection off as SDK not installed
#no-changelog

I'm not sure if I understand the intent of this PR @samedson. Can you clarify it a bit more?

@visumickey
The main change is before we didn't care if data collection was disabled.

BEFORE: We would collect NetworkInfo / MCCMNC if FirePerf was installed regardless of data collection
NOW: We only collect if Perf installed && Data Collection Enabled for Perf

    // Only set restricted fields if Data Collection is enabled. If it's disabled,
    // we're treating that as if the product isn't installed.
    if isDataCollectionEnabled {
      setRestrictedFields(subscriber: subscriber,
                          appInfo: appInfo)
    }


Add "Name" in TimeOut

ADD "Name"
$setTimeout[duration;timeout data;timeout heartbeat (optional);name]
bot.timeoutCommand({
name: "test",
//    channel: "ID", (This is optional)
code: $sendDM[$timeoutData[userID];$timeoutData[message]]
});

You can add name property in timeout data and use
$onlyIf[$timeoutData[name]==namehere;]

You can add name property in timeout data and use
$onlyIf[$timeoutData[name]==namehere;]
@KamexGaming

thx <3

Closed Issue for Resolved.


sendNonFatalCrash Integration

You have the Java code that works, but you are missing the JavaScript.

Do you want to create a PR? I will be pleased to merge it.


[Bug]: FAQ Page is not Scrollable

Give a brief about the bug ✍
Description

FAQ page is not scrollable , height is fixed content is hidden
Menubar is hidden behind in game.html
Navigation is not consistent in all pages , width is getting changed
4.No footer available in howtoplay.html page

What is the expected behavior? 🤔
Description
1.Page should be scroll able
2. Menu should be visible
3. add footer in howtoplay.html
Provide step by step information reproduce the bug 📄
Description

I will adjust height of page fix the UI
Will adjust width and bring Menu to front
add footer in howtoplay.html

@ayush-848 kindly assign me this issue
Select program in which you are contributing
GSSoC24
Code of Conduct

[X] I follow CONTRIBUTING GUIDELINE of this project.

I would like to work on this issue , as I have a strong background in CSS and HTML. Please assign me under GSSOC'24 extended and level 2 atleast.


Schema error on Taxonomy Term pages.

Describe the bug
When accessing a Taxonomy term page I get an uncaught error as the schema file cannot be found.
To Reproduce
Steps to reproduce the behavior:

Go to 'https://demo.druxtjs.org/en/tags/alcohol-free'
Page doesn't display content
Error in console

Expected behavior
Content displays as per Drupal Umami.
Media

Your Environment (please complete the following information):

Browser: Chrome

Additional context
Uncaught (in promise) Error: Cannot find module './taxonomy_term--tags--default--view.json'
    at 9a4069c.js:1

Fixed.


Clues for adding SSL certificate to Wordpress container

Any clues for adding an SSL certificate to the Bitnami ACI wordpress configuration? I am trying to get the big picture of how this would work.
I guess that it would not be possible to generate a certificate for the container, because there is no persistent volume to store it on, and possibly no tool to generate the cert.
An alternative might be to put an NGINX container in front of the Wordpress container. If I adapt the ACI template to serve only port 443, then I guess I could just publish the NGINX URL in DNS. If a user went direct to the Wordpress container IP address on 443 they would just get a certificate error, which is not a problem.

Hi @Air-Git,
This template use bitnami/wordpress image that includes a apache, so you can access the running container and add what you need. The problem is if you delete the container you will loose what ever you added.

This is the problem: how to customise the config. I am thinking the simplest thing might be to deploy a NGINX container in front of the Wordpress container. I would need to turn off the public ports of the Wordpress container, and have the NGINX instance with a front end SSL, and back end talking to Wordpress. Its clumsy.
An alternative would be a Bitnami ACI template for Wordpress with NGINX.

Hi @Air-Git
These templates are just meant to provide a starting point so you can create you own templates to deploy containers on Azure ACI. We don't plan to publish new templates with more complex scenarios (such as WP+MariaDB with NGINX as a proxy providing TLS support).
The instructions to include your own SSL certificates in the Bitnami WordPress image are detailed in the link below:
https://github.com/bitnami/bitnami-docker-apache#using-custom-ssl-certificates
As an alternative to these templates, you can deploy Bitnami containers on Azure AKS using Bitnami helm charts. These charts already provide mechanisms to customize your setups (for instance, you can use Ingress and TLS secrets to deploy the WordPress Helm chart with your own TLS certificates). Find more information in the link below:

https://docs.bitnami.com/azure/get-started-aks/


[BUG] TypeError: Cannot read properties of undefined (reading 'messageChannel')

Duplicate issue

[X] I've searched for any related issues and avoided creating a duplicate issue.

Description
TypeError: Cannot read properties of undefined (reading 'messageChannel')
at exports.DynamicThreadPool.sendToWorker (/usr/src/app/node_modules/poolifier/lib/index.js:1:44151)
at exports.DynamicThreadPool.executeTask (/usr/src/app/node_modules/poolifier/lib/index.js:1:42339)
at /usr/src/app/node_modules/poolifier/lib/index.js:1:33310
at new Promise ()
at exports.DynamicThreadPool.execute (/usr/src/app/node_modules/poolifier/lib/index.js:1:32582)
at HttpModeTask.process (/usr/src/app/dist/lib/Task/task.service.js:475:18)
at HttpModeTask.execute (/usr/src/app/dist/lib/Task/task.service.js:289:32)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async Object.processJob [as fn] (/usr/src/app/dist/utils/agenda/jobs/task.js:24:24)
Expected behavior
no error
Actual behavior
throws error
Steps to reproduce
when using DynamicThreadPool for a long time (got after 26hrs)
poolifier version
^3.0.1
Node.js version
v18.18.0
System
System:
OS: Linux 5.15 Zorin OS 16.3
CPU: (6) x64 AMD Ryzen 5 3600 6-Core Processor
Memory: 21.76 GB / 29.20 GB
Container: Yes
Shell: 5.8 - /usr/bin/zsh
Attachments
No response

Should be fixed in https://github.com/poolifier/poolifier/releases/tag/v3.0.2

Still has this error on 3.1.20
TypeError: Cannot read properties of undefined (reading 'messageChannel')
    at exports.DynamicThreadPool.sendToWorker (/Users/dmitry/Code/platform/node_modules/poolifier/src/pools/thread/fixed.ts:55:37)
    at exports.DynamicThreadPool.executeTask (/Users/dmitry/Code/platform/node_modules/poolifier/src/pools/abstract-pool.ts:1915:10)
    at /Users/dmitry/Code/platform/node_modules/poolifier/src/pools/abstract-pool.ts:944:14
    at new Promise (<anonymous>)
    at exports.DynamicThreadPool.exe…r.service.ts:30:30)

Do you have way to reliability reproduce it?

Still has this error on 3.1.20
TypeError: Cannot read properties of undefined (reading 'messageChannel')
    at exports.DynamicThreadPool.sendToWorker (/Users/dmitry/Code/platform/node_modules/poolifier/src/pools/thread/fixed.ts:55:37)
    at exports.DynamicThreadPool.executeTask (/Users/dmitry/Code/platform/node_modules/poolifier/src/pools/abstract-pool.ts:1915:10)
    at /Users/dmitry/Code/platform/node_modules/poolifier/src/pools/abstract-pool.ts:944:14
    at new Promise (<anonymous>)
    at exports.DynamicThreadPool.exe…r.service.ts:30:30)

Do you have a way to reliability reproduce it?

No, I don't. Here is pool info just before error:
2024-02-27T05:45:12.439Z <debug>                [PlatformWorkerService] Pool worker nodes: [{"_events":{},"_eventsCount":0,"worker":{"_events":{"error":[null,null],"exit":[null,null]},"_eventsCount":6,"performance":{}},"info":{"id":3,"type":"thread","dynamic":false,"ready":true,"stealing":false,"taskFunctionNames":["default","fn1"]},"usage":{"tasks":{"executed":195,"executing":0,"queued":0,"maxQueued":0,"sequentiallyStolen":0,"stolen":0,"failed":0},"runTime":{"history":[]},"waitTime":{"history":[]},"elu":{"idle":{"history":[]},"active":{"history":[]}}},"messageChannel":{"port1":{},"port2":{}},"tasksQueueBackPressureSize":100,"tasksQueue":{"size":0,"maxSize":0},"onBackPressureStarted":false,"taskFunctionsUsage":{}}]
2024-02-27T05:45:12.439Z <debug>                [PlatformWorkerService] Pool worker info: {"version":"3.1.20","type":"dynamic","worker":"thread","started":true,"ready":true,"strategy":"ROUND_ROBIN","strategyRetries":0,"minSize":1,"maxSize":10,"workerNodes":1,"idleWorkerNodes":1,"busyWorkerNodes":0,"executedTasks":195,"executingTasks":0,"failedTasks":0}
2024-02-27T05:45:12.440Z <error>                [PlatformWorkerService] TypeError: Cannot read properties of undefined (reading 'messageChannel')


Sort order for documents and sections

Is there any way to define sort order for documents and sections ?

Hi, no - but you can update source-code here:
https://github.com/totaljs/wiki/blob/master/schemas/pages.js#L93

For now, I have added numbering into page titles and it is working well.


Add SSO to the enterprise features list

Fixes #10812

This change is

PTAL, @chriscasano.
Also, I suspect that we weren't listing this feature in the enterprise list previously because it's marked as experimental. @thtruo, @aaron-crl, can you share your perspective on whether it's still experimental and whether or not it's ok to call it out in the enterprise features list? It does require an enterprise license, in the end.

Pinging @dhartunian as he lead this effort. To my knowledge the feature is still experimental.

The reason for marking this experimental last year was that the API was built for a single enterprise client at the time and wasn't widely tested with many OAuth providers and configurations. We decided to mark the API as experimental in case we got more feedback from other customers that led to adjustments.
@thtruo if there aren't any pending asks here I'm happy with removing the experimental designation. It would involve some minimal code changes to remove the experimental labeling on cluster settings as well

Thanks for the context David. To be fully transparent, I haven't been close to this area since this shipped in 20.2 and don't have the latest feedback around what customers have been reporting back, if any. Furthermore, I believe Piyush would want to chime in on whether or not we remove the experimental designation. Perhaps the decision to remove the experimental label could wait when he returns?
cc @mwang1026
Having said that, it still feels relatively low risk to add SSO to the enterprise features list even when we maintain the experimental label, so this looks okay to me.

Thanks, all. I'll merge this.


GHA for updating versioneer

xref https://github.com/pysal/spopt/pull/340, #46, #45

xref https://github.com/pysal/mapclassify/pull/167 – make sure to skip versioneer files when running isort

xref #24


Pass arguments by reference

Change some arguments to be passed by references instead of value. This is to avoid copying.

Closing as this was fixed / completed in #58.

Thanks @de-vri-es :+1:


shared/storage/certpool: fix PoolBuffer.Bundler handling of self-signed certs

shared/v0.2.3 tagged


Types in Microsoft.VisualBasic.MyServices namespace not supported

Types in Microsoft.VisualBasic.MyServices namespace not supported
The types in the Microsoft.VisualBasic.MyServices namespace are not supported.
Version introduced
3.0 Preview 9
Change description
The types in the Microsoft.VisualBasic.MyServices namespace were available in some .NET Core 3.0 Preview releases,. They are no longer available starting with .NET Core 3.0 Preview 9.
Reason for change
The implementation failed its architectural review. The namespace and its types will be available sometime in a future release.
Recommended action
If your code depends on the use of Microsoft.VisualBasic.MyServices types and their members, there are corresponding types and members in the .NET class library. The following is a mapping of  Microsoft.VisualBasic.MyServices types to their equivalent .NET class library types:

Microsoft.VisualBasic.MyServices type
.NET class library type

ClipboardProxy
[System.Windows.Clipboard]https://docs.microsoft.com/dotnet/api/system.windows.clipboard) for WPF applications, and System.Windows.Forms.Clipboard for Windows Forms applications

FileSystemProxy
types in the System.IO namespace

RegistryProxy
registry-related types in the Microsoft.Win32 namespace

SpecialDirectoriesProxy
Environment.GetFolderPath

Category

Visual Basic

Affected APIs

Microsoft.VisualBasic.MyServices

Issue metadata

Issue type: breaking-change

//cc @KathleenDollard @cston


NfcManager.requestNdefWrite(bytes) not resolving promise successfully or catching error (until NfcManager.cancelNdefWrite())

When I call NfcManager.requestNdefWrite(bytes) the promise never resolves nor is an error ever caught. It just fires off the request and waits as though it's taking forever to write the Ndef. Is this the expected behavior?
I imagine that it should complete immediately after requesting a write. Am I understanding this correctly, that NfcManager.requestNdefWrite(bytes) is creating the "radio wave" output of the bytes input, and once that process is completed successfully it should log "write completed"? If that is the case, can someone please point out the reason why this output is not generated?
  _startDetection = () => {
    NfcManager.registerTagEvent(this._onTagDiscovered)
    .then(result => {
        console.log('registerTagEvent OK', result)
        // Make sure I register tag event first
        if (Platform.OS === 'android') this._requestNdefWrite();
    })
    .catch(error => {
        console.warn('registerTagEvent fail', error)
    })
  }

  _requestNdefWrite = () => {
    function strToBytes(str) {
        let result = [];
        for (let i = 0; i < str.length; i++) {
          result.push(str.charCodeAt(i));
        }
      return result;
    }

    let { isWriting } = this.state;
    if (isWriting) {
        return;
    }

    const urlBytes = strToBytes('https://google.com');
    const headerBytes = [0xD1, 0x01, (urlBytes.length + 1), 0x55, 0x01];
    const bytes = [...headerBytes, ...urlBytes];

    this.setState({isWriting: true});
    NfcManager.requestNdefWrite(bytes)
      .then(() => console.log('write completed')) // Doesn't ever complete!
      .catch(err => console.warn(err)) // Logs "cancelled" after calling NfcManager.cancelNdefWrite()
      .then(() => {
        this.setState({isWriting: false})
        console.log('set state writing false') // Logs after calling NfcManager.cancelNdefWrite()
      });
  }

  _stopDetection = () => {
    NfcManager.unregisterTagEvent()
    .then(result => {
        console.log('unregisterTagEvent OK', result)
        NfcManager.stop();
        if (Platform.OS === 'android') NfcManager.cancelNdefWrite();
    })
    .catch(error => {
        console.warn('unregisterTagEvent fail', error)
    })
  }

Hi, thanks for adapting this library.
Regarding your question, a successful NDEF write flow is like this:

Call registerTagEvent to start NFC tag detection.
Call requestNdefWrite to issue a write request, this will returns a pending promise, which means that the request is issued but not yet completed.
Now you can put NFC tag close to your Android device
When the tag is detected, the native part of this library will try to actually write NDEF into the tag
If the NDEF write process is completed, the pending promise (from step 2) will now be resolved. Otherwise it will be rejected with error.
After write request finished (no matter resolved or rejected), the library will resume to read tags and still fire NFC tag event when it reads any.

I think maybe you put NFC tag close to Android device too early, which means at that point there're no write request yet been issued.
Thank!

Ah, I see! The promise resolves "on" writing the Ndef to the NFC tag. That explains it very well, thank you.
One extra question for clarification on the ability of this library. You mentioned that requestNdefWrite writes to a "tag" when it's detected. Does "tag" mean literally that this will only work with NFC tags or is it also a pseudonym for the NFC chip within another phone? The reason I ask is because I'm trying to transfer data between two mobile devices with this library. Is this a possibility?

Hi, thanks for the feedback!
As far as I know, the scenario you mentioned (two Android devices, one tries to write NDEF into another), might not work.
The reason for that is because normally the NFC-tag-mode system has two roles, the tag and the reader, and an Android device clearly acts as a reader rather than a tag. (There may be few Android devices can act as virtual tag, but there seems no public API available for us to implement)
So, in order to implement device communication via NFC, we should still utilize P2P mode. The P2P feature isn't currently supported by this library, and I hope to hear from you if this is a need (or, propose a PR, I will be glad to accept it^^)
Hope that helps!

Wow, that clears things right up. Thank you!
P2P is definitely a feature that I think would bring a great benefit to developers and users alike. I read somewhere recently that NFC is nearing its plateau of trending rank since 2014 and that NDEF can transfer up to 2^32 bits of information.
I would be glad to look into a PR. Will check back in!


[Project] Improve neighbor count query experience

Neighbor counts are queried when a node is added to the graph. This can be from search or through expansion.
Sometimes these queries take a long time or fail. The UI currently does not surfaces these errors to the user and the progress reporting is inconsistent.
The neighbor count queries can also be taxing to the graph database server. Typically, a request per node added to the graph will be executed. This can amount to hundreds of requests executed in parallel. This can be improved with batching or combining multiple queries together. And many of the neighbor count queries are inefficient and can be improved.
Related Issues

Addresses #256
Addresses #184
Addresses #263
Partially addresses #324
Partially addresses #269
Partially addresses #240
Partially addresses #358
Partially addresses #304

Tasks

[x] #338
[x] #339
[x] #438
[x] #380
[x] #342
[x] #388
[x] #389
[ ] #344
[ ] #384
[x] #442
[x] #444
[ ] #459

[!TIP]
Please use a 👍 reaction to provide a +1/vote.
This helps the community and maintainers prioritize this request.

[!IMPORTANT]
If you are interested in working on this issue or have submitted a pull request, please leave a comment.

Closing this project since the remaining open tickets are tracked by another project:

#371


Prevent user from joining more than 2 rooms

Until TheDiscordian/native-ipfs-building-blox#3 is fixed, we shouldn't allow users to join more than 2 rooms because the interface locks up.

Being in just 2 rooms is pretty unstable too, but it's workable.


Update dates based on May 24th meeting

Please update it here: https://github.com/FlaskCon/flaskcon_orchestration
As this one will be overidden. We are using  Hugo ^^

Created new PR on https://github.com/FlaskCon/flaskcon_orchestration/pull/2


Bugfix/speedup estimators

Maintenance work on reweighted estimators:

new functions growth_estimator_analysis and mixed_estimator_analysis to compute the estimators over a range of reweighting depths
moderate speedup of exponential weights w_exp (and thus growth_estimator and mixed_estimator)
fixed the significant slowdown of reweighted estimators when calculated on DataFrames read from large Arrow files

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

97 of 100 (97.0%)  changed or added relevant lines in 6 files are covered.
23 unchanged lines in 3 files lost coverage.
Overall coverage decreased (-0.4%) to 88.377%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

src/StatsTools/reweighting.jl
72
75
96.0%

Files with Coverage Reduction
New Missed Lines
%

src/Interfaces/hamiltonians.jl
1
96.15%

src/RMPI/mpidata.jl
3
52.23%

src/StatsTools/convenience.jl
19
72.06%

Totals

Change from base Build<PHONE_NUMBER>:
-0.4%

Covered Lines:
3931

Relevant Lines:
4448

💛  - Coveralls


Removes context parameter from instruction-scoped operations

*Issue #16
Description of changes: https://github.com/tetratelabs/wazero/commit/126bd9050d3a1a19d74ca82f5875e5ce766fd2e8
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

thanks for raising this #18 incorporated it and released as v0.5.0


NaN score

Student post in piazza today: NaN score
Anyone else got this? [Image Link]

(Steps to reproduce: access by clicking the triangle beside Contributors, then click your name on the dropdown.)
Possible cause include finishing the optional mission.

Possibly related: A mission with overall 0 grade was published two days ago, the "experimental optional" mission on Machine Learning.

Moving this issue to the frontend since it is a display bug that does not concern any backend component.


Error importing dataset at cartodbfy

I can use ogr2ogr with a free account
ogr2ogr --config CARTODB_API_KEY BLAH -nln barriosSHP  -s_srs "EPSG:4326" -t_srs "EPSG:4326" -f "CartoDB" "CartoDB:xurxosanz" barrios.shp

But I can't do the same with an account at the team organization, running the last version of the extension. This get stuck
ogr2ogr --config CARTODB_API_KEY BLAH -nln barriosSHP -s_srs "EPSG:4326" -t_srs "EPSG:4326" -f "CartoDB" "CartoDB:solutions" barrios.shp

But if I run it without specifying a SRS (the SHP doesn't have a prj) file then it finishes with a warning saying:
Warning 1: Cannot register table in dashboard with cdb_cartodbfytable() since its SRS is not EPSG:4326

I'm running ogr2ogr coming from gisinternals, the release-1800-gdal-mapserver refering to this commit.
cc. @pramsey

what's the ogr2ogr --version ?

GDAL 2.1.0dev, released 2015/99/99```

for the record, gdal version: r29819

I made some tests with this input files:

barrios.shp

polygons
88 features
104 KB

stations.shp

points
11K features
324 KB

and got these results against these accounts:

rtorre3

cartodb-postgresql extension v 0.8.2
1 table
barrios: 3.757s
stations: 56.387s

rtorre2

cartodb-postgresql extension v 0.9.2
6 table
barrios: 3.978s
stations: 59.730s

As @rochoa pointed out in a mail thread, seems like we have a performance degradation because of the quota trigger, but there's almost no difference in that regards between v0.8.2 and v0.9.2. The ultimate test would be to rollback in team to v0.8.2 and repeat the experiment.

The current workaround for this is using the CARTODBFY=NO layer option and then running the SELECT CDB_CartodbfyTable() after the import.

With my team account, after the tweak above:
$ time ogr2ogr2 --config CARTODB_API_KEY abcdef123 -nln barriosSHP -s_srs "EPSG:4326" -t_srs "EPSG:4326" -f "CartoDB" "CartoDB:rtorre" barrios.shp
real    0m25.303s
user    0m0.172s
sys     0m0.020s


colors washed out, possibly color an issue around color spaces?

I think something is off with the colors when capturing via full page screen capture. both png and jpg seem to show this behaviour. Potentially an issue with the color space or rendering intent? On my screen the first image looks washed out and different from what Chrome renders, while the second one look ok.

macOS X 10.12.6
Chrome 65.0.3325.181

compare:
full page screen capture

exif data:
ExifTool Version Number         : 10.80
File Name                       : screencapture-edition-cnn-2018-03-26-09_38_04.png
File Size                       : 1769 kB
File Modification Date/Time     : 2018:03:26 09:39:06+02:00
File Access Date/Time           : 2018:03:26 09:41:12+02:00
File Inode Change Date/Time     : 2018:03:26 09:39:06+02:00
File Permissions                : rw-r--r--
File Type                       : PNG
File Type Extension             : png
MIME Type                       : image/png
Image Width                     : 1707
Image Height                    : 1750
Bit Depth                       : 8
Color Type                      : RGB with Alpha
Compression                     : Deflate/Inflate
Filter                          : Adaptive
Interlace                       : Noninterlaced
SRGB Rendering                  : Perceptual
XMP Toolkit                     : XMP Core 5.4.0
Orientation                     : Horizontal (normal)
Image Size                      : 1707x1750
Megapixels                      : 3.0

manually taken screencapture:

exif data:
ExifTool Version Number         : 10.80
File Name                       : Screen Shot 2018-03-26 at 09.38.27.png
File Size                       : 1273 kB
File Modification Date/Time     : 2018:03:26 09:38:34+02:00
File Access Date/Time           : 2018:03:26 09:42:12+02:00
File Inode Change Date/Time     : 2018:03:26 09:38:34+02:00
File Permissions                : rw-r--r--
File Type                       : PNG
File Type Extension             : png
MIME Type                       : image/png
Image Width                     : 1689
Image Height                    : 1275
Bit Depth                       : 8
Color Type                      : RGB with Alpha
Compression                     : Deflate/Inflate
Filter                          : Adaptive
Interlace                       : Noninterlaced
Profile Name                    : ICC Profile
Profile CMM Type                : Apple Computer Inc.
Profile Version                 : 2.1.0
Profile Class                   : Display Device Profile
Color Space Data                : RGB
Profile Connection Space        : XYZ
Profile Date Time               : 2018:01:05 12:50:24
Profile File Signature          : acsp
Primary Platform                : Apple Computer Inc.
CMM Flags                       : Not Embedded, Independent
Device Manufacturer             : Apple Computer Inc.
Device Model                    :
Device Attributes               : Reflective, Glossy, Positive, Color
Rendering Intent                : Perceptual
Connection Space Illuminant     : 0.9642 1 0.82491
Profile Creator                 : Apple Computer Inc.
Profile ID                      : 0
Profile Description             : Display
Profile Description ML (hr-HR)  : CG2730
Profile Description ML (ko-KR)  : CG2730
Profile Description ML (nb-NO)  : CG2730
Profile Description ML (hu-HU)  : CG2730
Profile Description ML (cs-CZ)  : CG2730
Profile Description ML (da-DK)  : CG2730
Profile Description ML (uk-UA)  : CG2730
Profile Description ML (it-IT)  : CG2730
Profile Description ML (ro-RO)  : CG2730
Profile Description ML (nl-NL)  : CG2730
Profile Description ML (he-IL)  : CG2730
Profile Description ML (es-ES)  : CG2730
Profile Description ML (fi-FI)  : CG2730
Profile Description ML (zh-TW)  : CG2730
Profile Description ML (vi-VN)  : CG2730
Profile Description ML (sk-SK)  : CG2730
Profile Description ML (zh-CN)  : CG2730
Profile Description ML (ru-RU)  : CG2730
Profile Description ML (fr-FR)  : CG2730
Profile Description ML (ca-ES)  : CG2730
Profile Description ML (th-TH)  : CG2730
Profile Description ML (es-XL)  : CG2730
Profile Description ML (de-DE)  : CG2730
Profile Description ML          : CG2730
Profile Description ML (pt-BR)  : CG2730
Profile Description ML (pl-PL)  : CG2730
Profile Description ML (el-GR)  : CG2730
Profile Description ML (sv-SE)  : CG2730
Profile Description ML (tr-TR)  : CG2730
Profile Description ML (ja-JP)  : CG2730
Profile Description ML (pt-PT)  : CG2730
Profile Copyright               : Copyright Apple Inc., 2018
Media White Point               : 0.95251 1 1.08606
Red Matrix Column               : 0.58685 0.26527 0.00107
Green Matrix Column             : 0.22815 0.68222 0.0531
Blue Matrix Column              : 0.1492 0.05251 0.77074
Red Tone Reproduction Curve     : (Binary data 2060 bytes, use -b option to extract)
Video Card Gamma                : (Binary data 48 bytes, use -b option to extract)
Native Display Info             : (Binary data 62 bytes, use -b option to extract)
Chromatic Adaptation            : 1.04576 0.02182 -0.04945 0.02797 0.99156 -0.01674 -0.00919 0.01505 0.75375
Make And Model                  : (Binary data 40 bytes, use -b option to extract)
Blue Tone Reproduction Curve    : (Binary data 2060 bytes, use -b option to extract)
Green Tone Reproduction Curve   : (Binary data 2060 bytes, use -b option to extract)
XMP Toolkit                     : XMP Core 5.4.0
Exif Image Width                : 1689
Exif Image Height               : 1275
Image Size                      : 1689x1275
Megapixels                      : 2.2

Hi @asmod3us!
I’m curious if this is the chrome’s captureVisibleTab API or something in the extension. Do you see this issue if you try loading this repo as an unpacked extension and capture the same page? https://github.com/mrcoles/test-chrome-extension-capturetab

Hi @mrcoles,
cloned the repo and loaded it as an unpacked extension. Then took another screenshot with full page screen capture. The colors are still different. Easy to spot in the faces and the CNN logo.
left original web page, right full page screen capture:

I'm using Flux but disabled it for this.

Hrm, ya, everything looks slightly grayer after the capture.
This might be an issue in Chrome itself. You could try reporting it via this info: https://developer.chrome.com/extensions/faq#faq-fea-01
This is the specific API call being used: https://developer.chrome.com/extensions/tabs#method-captureVisibleTab and you could use that test repo as an example.


Only subdomain submissions.

Where can I find the list of pointers, in order to delete the ones that will no longer be used?

Now that you say it.. this isn't possible yet. But good point, I think there should be some command-line interface to list and edit/delete existing pointers. I will add this soon.


Add documentation on how to manipulate log levels in zebrad

In particular we need to document that we use a non-standard env variable for manipulating our log level, ZEBRAD_LOG.
We should probably follow chalk's example on how to structure the section on how to manipulate the log level. https://rust-lang.github.io/chalk/book/contribution_guide.html?highlight=log#running-and-debugging
I already had plans for creating a mdbook for the various zebra design documents we create, we might want to also have a dev guide in that same book as a different section where this gets placed.

We should probably document this.
Originally posted by @hdevalence in https://github.com/ZcashFoundation/zebra/pull/648

Sounds good.  Should we keep a tracking issue for all of the facts we need to document, or should it be a milestone?

I think its fine to just leave them as individual issues. If we need a way to organize them I'd start with adding a docs tag or something.

This is now in the book.


MINOR: Fix descriptions of raft-metrics in docs/ops.html

The current documentation has descriptions of raft-metrics like the following.

kafka.server:type=raft-metrics,name=current-state

However, raft-metrics such as current-state are exposed as attributes, not as names.
To fix it, I removed "name=..." from the descriptions and updated "METRIC/ATTRIBUTE NAME" with reference to https://kafka.apache.org/36/documentation/#selector_monitoring.
Appendix:
Below are the results with Kafka 3.6.1.
$ JMX_PORT=9999 bin/kafka-server-start.sh -daemon config/kraft/server.properties

$ bin/kafka-jmx.sh --object-name kafka.server:type=raft-metrics,name=*
Trying to connect to JMX url: service:jmx:rmi:///jndi/rmi://:9999/jmxrmi
No matched attributes for the queried objects [kafka.server:type=raft-metrics,name=*].

$ bin/kafka-jmx.sh --object-name kafka.server:type=raft-metrics
Trying to connect to JMX url: service:jmx:rmi:///jndi/rmi://:9999/jmxrmi
"time","kafka.server:type=raft-metrics:append-records-rate","kafka.server:type=raft-metrics:commit-latency-avg","kafka.server:type=raft-metrics:commit-latency-max","kafka.server:type=raft-metrics:current-epoch","kafka.server:type=raft-metrics:current-leader","kafka.server:type=raft-metrics:current-state","kafka.server:type=raft-metrics:current-vote","kafka.server:type=raft-metrics:election-latency-avg","kafka.server:type=raft-metrics:election-latency-max","kafka.server:type=raft-metrics:fetch-records-rate","kafka.server:type=raft-metrics:high-watermark","kafka.server:type=raft-metrics:log-end-epoch","kafka.server:type=raft-metrics:log-end-offset","kafka.server:type=raft-metrics:number-unknown-voter-connections","kafka.server:type=raft-metrics:poll-idle-ratio-avg"
1702009513502,0.553877139979859,0.0,0.0,2.0,1.0,leader,1.0,NaN,NaN,0.0,760.0,2.0,760.0,0.0,1.0
^C

Committer Checklist (excluded from commit message)

[ ] Verify design and implementation
[ ] Verify test coverage and CI build status
[ ] Verify documentation (including upgrade notes)

@hachikuji  @showuon
I am sorry to bother you, but could you please review this PR?


Settings Sync osx and windows

Issue Type: Bug
Settings sync is attempting to write to keychain (possibly, osx feature) on windows. I had setup Code to Sync settings between my Windows Desktop and OSX laptop.
VS Code version: Code - Insiders 1.51.0-insider (f5d3ba4d61146b78f0c75c82f3f85232d3409bc1, 2020-10-09T05:34:54.647Z)
OS version: Windows_NT x64 10.0.19041

System Info

Item
Value

CPUs
Intel(R) Core(TM) i7-8700 CPU @ 3.20GHz (12 x 3192)

GPU Status
2d_canvas: enabledflash_3d: enabledflash_stage3d: enabledflash_stage3d_baseline: enabledgpu_compositing: enabledmultiple_raster_threads: enabled_onoop_rasterization: disabled_offopengl: enabled_onprotected_video_decode: enabledrasterization: enabledskia_renderer: disabled_off_okvideo_decode: enabledvulkan: disabled_offwebgl: enabledwebgl2: enabled

Load (avg)
undefined

Memory (System)
15.80GB (2.59GB free)

Process Argv
--crash-reporter-id 9d87ec80-aa09-4bab-b1b1-5ba3b7443c05

Screen Reader
no

VM
0%

Extensions (20)

Extension
Author (truncated)
Version

ng-template
Ang
0.1001.0

vscode-eslint
dba
2.1.10

docs-markdown
doc
0.2.81

xml
Dot
2.5.1

gitlens
eam
10.2.2

EditorConfig
Edi
0.15.1

vscode-npm-script
eg2
0.3.13

vs-code-http-server-and-html-preview
Fli
2.2.2

Angular-BeastCode
Mik
10.0.3

csharp
ms-
1.23.2

mssql
ms-
1.9.0

remote-wsl
ms-
0.50.0

azure-account
ms-
0.9.3

vscode-typescript-tslint-plugin
ms-
1.2.3

vsliveshare
ms-
1.0.2902

debugger-for-edge
msj
1.0.15

vscode-react-native
msj
1.0.1

vscode-yaml
red
0.11.1

vscodeintellicode
Vis
1.2.10

vscode-icons
vsc
11.0.0

@VasuInukollu I assume you mean you see an error about writing to the keychain, can you please paste the error text? Although the error text says "keychain", it writes to the Windows Credential Manager on windows

The new build seems to have resolved the problem.


Add reservoirs sf data

This PR adds a target containing sf objects of dam outlet point locations and reservoir polygons.
The output file filtered_reservoirs_dams.rds from the delaware-model-prep repo is committed to 1_fetch/in, and that file is loaded in a target.
Closes #183
Also updated the README to describe how reviews should be completed.
Closes #193

@galengorski suggesting you to review because this is mostly a README update. Did I capture what we discussed?


Fix URL encoding for FilterBy

Change Summary
The current parsing assumes it has been encoded/escaped already, so this change adds escaping.
Seems to resolve #71 , though perhaps this file really shouldn't be touched and it should be done some other way?
PR Checklist

[x ] I have read and signed the Contributor License Agreement.

@kishorenc yes, we should add the mentioned test to check that the original issue was fixed.

Yes, the tests were failing without this change.
The changes made in this PR to typesense/documents.go are not reached/executed by the mockAPIClient, yet this is the earliest place that I think we could make the change.


Network stuck

Based on substrate 2.0.0-rc4.
Block time: 6s
Epoch: 30minutes
Era: 3hours
267 nodes, 200 validators.
The network has been running normally for a few days. Suddenly, it stuck. After about 30 minutes, the network gradually recovered. What may be the problem?


[Bug]: CelesteNet Players are able to push down factoryhelper buttons

Before You Report

[X] My mods and Everest install are up to date.
[ ] I have recreated the bug with a minimum number of mods installed.

What platform are you playing on?
Windows 11
Bug Description
If playing on CelesteNet, and in a map with FactoryHelper buttons, if another player stands on said buttons, then they get activated on both player's ends. Here's a video showing the issue. https://youtu.be/IiTLdmSZHNI
I expected for other players to not be able to interact with the buttons on my end.
Steps to Reproduce
Step 1. Join a factoryhelper map on celestenet
Step 2. Have other player stand on factoryhelper button
Step 3. See the object connected to factoryhelper button get activated
Log Output
No response

Issue is caused by CelesteNet ghosts being being handled as Actors with collision. Behavior may or may not be changed by the CN team, no plans to address this in Factory Helper for now.


Download script will no longer work

Due to upcoming data privacy regulations, MaxMind are making significant changes to how users access free MaxMind GeoLite2 databases starting December 30, 2019. The databases will continue to be available without charge and for redistribution. However, you will be required to create an account and use a license key to download the databases, and agree to a new EULA that addresses applicable data privacy regulations.
Learn more on the MaxMind blog: https://blog.maxmind.com/2019/12/18/significant-changes-to-accessing-and-using-geolite2-databases/.
Mark Fowler
MaxMind

@2shortplanks thanks for raising it!
Would it require each user who downloads the package to have their own license key or I can use shared one?

@runk Either each user can create a MaxMind account and get their own license key, or you can re-distribute the databases under the terms of our license. In the latter case, you would need to be able to pass along Do Not Sell requests to each of those you'd redistributed the database to along with abiding by the other terms of the agreement. We would recommend having each user obtain their own license key.

Seems like this package is no longer installing. Is this related to this issue?
Error: getaddrinfo ENOTFOUND geolite.maxmind.com
    at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:64:26)
Emitted 'error' event on ClientRequest instance at:
    at TLSSocket.socketErrorListener (_http_client.js:423:9)
    at TLSSocket.emit (events.js:305:20)
    at emitErrorNT (internal/streams/destroy.js:84:8)
    at processTicksAndRejections (internal/process/task_queues.js:84:21) {
  errno: -3008,
  code: 'ENOTFOUND',

Turns out the download scripts (e.g., https://geolite.maxmind.com/download/geoip/database/GeoLite2-City.tar.gz) are no longer operational. You now need to login to your account to download the .mmdb file using a token and they don't have publicly accessible URLs.
The new license the database is under is GeoLite2 End User License Agreement which is summarized below (please note that I am not a lawyer and this is not legal advise, only my understanding of the license):

You still need to give Creative Commons-like attribution
You cannot use the data for Fair Credit Reporting Act (FCRA) purposes
You cannot use the data identify a specific person or address
You need to update the database as soon as a new one comes out, and stop using the older version within 30 days of update

This seems like we are still allowed to create a public mirror, as long as we keep updating it. My team has started using Git LFS for a local database copy, which is something that perhaps this package can do too, and then users can download the database from the  https://raw.githubusercontent.com... URL?
The only other option is making people login and download the package and use the maxmind package directly, making this one redundant.

You need to update the database as soon as a new one comes out, and stop using the older version within 30 days of update

This one is going to be hard to enforce if a Git LFS mirror is setup in this package. How frequent have these updates been so far? Does @runk have a way to get notified when a new one comes out?

you would need to be able to pass along Do Not Sell requests to each of those you'd redistributed the database to

Would changing the license to prevent commercial use be enough? It would be great to warn dependents of this package to ensure they're aware of the new limitations.

How frequent have these updates been so far?

The last two versions were uploaded on 17 Dec 2019 and 24 Dec 2019 according to their Last-Modified Header, so I'm assuming they are updated weekly.

I really want to avoid this package hiding the end user license. Indeed it's going to make it less convenient for npm users, but it is what it is. You either download it manually and manage ad-hoc or setup env var with license and continue using this package.

https://github.com/runk/node-geolite2/pull/18

<EMAIL_ADDRESS>is out, give it a go guys

While I agree with your solution, requiring each individual user to sign up for and accept an EULA is not doable in my case - nor in any public open-source project of any significant size, I believe.

Either each user can create a MaxMind account and get their own license key, or you can re-distribute the databases under the terms of our license. In the latter case, you would need to be able to pass along Do Not Sell requests to each of those you'd redistributed the database to along with abiding by the other terms of the agreement.

From what I understand from MaxMind's blog post and a quick reading of the different EULAs, "being able to pass along Do Not Sell requests" is mostly a matter of keeping the redistribution up to date. Turns out they do have more info on how to stay current.
I think it should be possible to create an npm package with a suitable redistribution license, which would fetch an always-updated mirror of the databases (through Git LFS or something else), while displaying clear warning messages in install logs about significant details of MM's EULA - like precision & FCRA limitations.
We could even force the package to invalidate the downloaded DBs after 30 days to ensure that newer versions get pushed out to end-users in compliance with Do Not Sell requests.
(Of course this is not a perfect enforcement system and you can work around it, but if you do, you'll be breaking the different licenses & agreements for both the redistribution and the source.)
@2shortplanks Do you think such a redistribution system is something your company would be OK with?
@runk Would you want me to create a new package or perhaps you'd be okay with updating this one instead?

I'm happy for you to give it a go - writing licences is clearly not my passion.
Re up to date databases - apparently it's fine to omit version (date) of the database you want to download, which results in latest version:
https://github.com/runk/node-geolite2/blob/master/scripts/postinstall.js#L17

If we go forward with this, you will need to manage a MaxMind license in your name that will be used for redistribution - which is also why we need to setup a mirror, otherwise you're not redistributing anything and you can't hide your license.
I will look into the technical aspects pf this and try to draft a new license for this package - maybe open a PR.

Every account using Git Large File Storage receives 1 GB of free storage and 1 GB a month of free bandwidth. If the bandwidth and storage quotas are not enough, you can choose to purchase an additional quota for Git LFS.
(from GitHub Support)

This will be a problem.

This will be a problem.

That’s right, I already finished my quota in the past 2 days, so I switched back to this package earlier today.

Either someone assumes the costs of transfer, we setup a redistributing proxy in front of MM's URLs, or we bundle a URL+License combo in this package but then we might lose control of that license. In both of those other solutions MaxMind may block us if we reach a certain # of downloads.
This is starting to sound tricky.

TBH not using Git LFS but directly putting the tar.gz in this repo might work as well. The file is merely 30 MB compressed, and the limit to GitHub repos is 100 GB storage and no hard bandwidth limit, so it shouldn't be a problem. The package's postinstall script will simply extract the file (which now becomes ~60 MB).
NPM packages also don't have a hard size/bandwidth limit, so publishing/installing shouldn't be bad. Alternately, the database file can be in .npmignore, stay in this repo but not be published to NPM, and then use the https://raw.githubusercontent.com/... URL to download and extract it, like the package currently does. That also doesn't have a hard bandwidth limit, and this package would probably use ~90 GB/month (3000 downloads/month), which is basically nothing.

Indeed, if we can keep it way below 100mb compressed, this could be a long-lasting solution.

Alternately, the database file can be in .npmignore, stay in this repo but not be published to NPM, and then use the https://raw.githubusercontent.com/... URL to download and extract it, like the package currently does.

Music to my ears. I'll get back to that PR of mine.

Lastly, we can probably use GitHub Actions to schedule a cron job (see Scheduler) that fetches the database files with the "master" API key, updates the repo (see GitHub Push), and then bumps the patch version of the package and publish to NPM (see Publish) once every week.

@GitSquared

@2shortplanks Do you think such a redistribution system is something your company would be OK with?

I'm not the best person at MaxMind to answer questions about redistribution directly, but if you email
<EMAIL_ADDRESS>they'll be able to help you out

@2shortplanks All right, thank you. I will send them an email once I have something more concrete to show them.

@runk @AnandChowdhary WIP PR opened at #19


RemoteApp window being spawned and hanging, unable to launch windows binaries from within WSL

Environment
Windows build number: Microsoft Windows [Version 10.0.22000.434]
Your Distribution version: Ubuntu Release:        20.04
Your WSLg version: 1.0.25

WSLg ( x86_64 ): 1.0.30+Branch.main.Sha.18884f996f5e851af4842010b434db17d3caa7aa
Mariner: VERSION="1.0.20210224"
FreeRDP: 81cfc08b9c745c941be23bd8dd43b9ffeb5b6991
weston: 6a3f1f669f6e53c0db3057d4f62da3a473c07c71
pulseaudio: 2f0f0b8c3872780f15e275fc12899f4564f01bd5
mesa:

Steps to reproduce
Unknown, happened randomly.
WSL logs:

Attach WSLg logs from  /mnt/wslg
stderr.log.gz
pulseaudio.log
versions.txt
weston.log

Expected behavior
Should not have a visible RDP Window that does nothing but fail to connect.
Also, unable to launch Windows binaries from bash.
Actual behavior

msrdc.exe is running with the following command line args:
CommandLine=msrdc.exe /v:9D2CC20B-F0CA-4044-8191-6928394D97EC /hvsocketserviceid:14043FFB-FACB-11E6-BD58-64006A7986D3 /silent /wslg /plugin:WSLDVC_PACKAGE /wslgsharedmemorypath:WSL\9D2CC20B-F0CA-4044-8191-6928394D97EC\wslg "C:\Program Files\WindowsApps\MicrosoftCorporationII.WindowsSubsystemforLinux_<IP_ADDRESS>_x64__8wekyb3d8bbwe\wslg.rdp"

CommandLine=msrdc.exe /v:9D2CC20B-F0CA-4044-8191-6928394D97EC /hvsocketserviceid:14043FF1-FACB-11E6-BD58-64006A7986D3 /silent /wslg /plugin:WSLDVC_PACKAGE /wslgsharedmemorypath:WSL\9D2CC20B-F0CA-4044-8191-6928394D97EC\wslg "C:\Program Files\WindowsApps\MicrosoftCorporationII.WindowsSubsystemforLinux_<IP_ADDRESS>_x64__8wekyb3d8bbwe\wslg.rdp"

CommandLine=msrdc.exe /v:9D2CC20B-F0CA-4044-8191-6928394D97EC /hvsocketserviceid:14044005-FACB-11E6-BD58-64006A7986D3 /silent /wslg /plugin:WSLDVC_PACKAGE /wslgsharedmemorypath:WSL\9D2CC20B-F0CA-4044-8191-6928394D97EC\wslg "C:\Program Files\WindowsApps\MicrosoftCorporationII.WindowsSubsystemforLinux_<IP_ADDRESS>_x64__8wekyb3d8bbwe\wslg.rdp"

Another thing I noticed is I used to be able to run notepad.exe / code.exe:
$ notepad.exe stderr.log
bash: /mnt/c/WINDOWS/system32/notepad.exe: cannot execute binary file: Exec format error

$ code stderr.log
/mnt/c/Users/Elan Hasson/AppData/Local/Programs/Microsoft VS Code/bin/code: 61: /mnt/c/Users/Elan Hasson/AppData/Local/Programs/Microsoft VS Code/Code.exe: Exec format error

core dumps from /mnt/wslg/dumps:
core.zip

@ElanHasson, thanks for reporting the issue, do you see any core dump is created under /mnt/wslg/dumps? if so, please share with us. I do see, from log, msrdc.exe has been restarted repeatedly, and came to connect to weston, but it looks weston has terminated/restarted. Restarting weston causes disconnection in RDP, then WSLGd will respawn both weston and msrdc.exe again. If there is any dump created, that might help to understand why weston has been terminated. Thanks!

@hideyukn88 Updated above!

This just started for me today, I'm not sure why.  I thought I had a virus at first.  What are these and why are they spawning every time I open wsl???

@scarolan, does the dialog box disappear once you started any Linux GUI application? thanks!

@ElanHasson, sorry for late response, the issue causing the weston crash should be fixed in recent WSL release, but still not sure why you saw the connecting status window. Do you still the window after upgrading WSL to the recent version? thanks!

If memory serves I got it maybe once a month or so ago.
I'm up to date on everything and haven't seen it since so I would say whatever is causing it has been resolved.

@hideyukn88  I would say close the issue and I'll re-open if it occurs again.

So to necromance this... same issue different look. Press OK and it happens again.
@hideyukn88, new issue?
Platform ServicePack Version      VersionString

Win32NT             10.0.22621.0 Microsoft Windows NT 10.0.22621.0
Ubuntu 22.04

NO DUMPS EXISTED
weston.log
wlog.log
pulseaudio.log
stderr.log
versions.txt

@ElanHasson, if you press 'OK' on that dialog, does same dialog reappear again? and would you please share a few *.etl files in %TEMP%\DiagOutputDir\RdClientAutoTrace which has timestamp close to the time when this issue occurred, thanks!

I have a similar error with the same error screen, and apps like VS Code WSL won't even open my projects from the command line. I fixed by removing all the WSL components from Apps and Feautures.

@hideyukn88 sorry for delays.pressing OK results in same dialog.
Did a wsl terminate and it went away.
Next time it happens I'll capture traces.

Ok, it is happening now!
I have traces, but I'm not sure what data is in there and can't really upload them here. I'm happy to provide to you directly.
Here is some stuff that seems releveant:
Provider Name/Event Name	Text	Timestamp (ms)
Microsoft.Windows.RemoteDesktop.ClientCore/MSRDC_WILFailure	[File, D:\a\_work\1\s\RdClient\RdClient.SessionHost\exe\msrdc\MSRDCRecoveryManager.cpp], [LineNumber, 175], [Message, ], [Module, msrdc.exe], [ThreadID, 1,768], [FailureType, 1], [FailureFlags, 0], [ErrorCode, -2,147,024,894], [IsHRESULT, True]	5
Microsoft.Windows.RemoteDesktop.ClientCore/MSRDC_WILFailure	[File, D:\a\_work\1\s\RdClient\RdClient.SessionHost\exe\msrdc\MSRDCRecoveryManager.cpp], [LineNumber, 42], [Message, ], [Module, msrdc.exe], [ThreadID, 1,768], [FailureType, 1], [FailureFlags, 0], [ErrorCode, -2,147,024,894], [IsHRESULT, True]	5
Microsoft.Windows.RemoteDesktop.ClientCore/MSRDC_WILFailure	[File, D:\a\_work\1\s\RdClient\RdClient.SessionHost\exe\msrdc\MSRDCRecoveryManager.cpp], [LineNumber, 31], [Message, ], [Module, msrdc.exe], [ThreadID, 1,768], [FailureType, 1], [FailureFlags, 0], [ErrorCode, -2,147,024,894], [IsHRESULT, True]	5
Provider Name/Event Name	Text	Timestamp (ms)
UnknownProvider/Task(09d79535-bf4e-312b-8fe7-3f7d4a51ff96)	[Bytes, AAAAAA==]	5
Windows Kernel/EventTrace	[BufferSize, 524,288], [Version, 83,951,626], [ProviderVersion, 22,621], [NumberOfProcessors, 8], [EndTime, 17:17:51.741719 (9,160.225 MSec)], [TimerResolution, 156,250], [MaxFileSize, 100], [LogFileMode, 2], [BuffersWritten, 9], [StartBuffers, 1], [PointerSize, 8], [EventsLost, 0], [CPUSpeed, 2,803], [BootTime, 2/8/2023 6:18:17 AM], [PerfFreq, 10,000,000], [StartTime, 17:17:42.581494 (0.000 MSec)], [ReservedFlags, 1], [BuffersLost, 0], [SessionName, RdClientAutoTrace], [LogFileName, C:\Users\ELANHA~1\AppData\Local\Temp\DiagOutputDir\RdClientAutoTrace\RdClientAutoTrace-WppAutoTrace-20230208-221742-581.etl], [UtcOffsetMinutes, 300]	0
MSNT_SystemTrace/EventTrace/PartitionInfoExtensionV2	[EventVersion, 0], [Reserved, 0], [PartitionType, 0], [QpcOffsetFromRoot, 0], [PartitionId, ], [ParentId, ]	0
MSNT_SystemTrace/EventTrace/BuildInfo	[BuildString, 22621.1.amd64fre.ni_release.220506-1250]	0
MSNT_SystemTrace/EventTrace/DbgIdRSDS	[Guid, 08df7704-00c1-4414-a0dd-5314f2009494], [Age, 1], [PdbName, D:\a\_work\1\s\RdClient\RdClient.SessionHost\dll\rdclientax\bin\x64\Release\rdclientax.pdb]	0
MSNT_SystemTrace/EventTrace/DbgIdRSDS	[Guid, 0b7c526e-b0be-49fc-9c86-3394f1b26588], [Age, 1], [PdbName, D:\a\_work\1\s\RdClient\RdClient.SessionHost\exe\msrdc\bin\x64\Release\msrdc.pdb]	0


🔴 BUG: decrease the size of search bar

Describe the bug
The size of search bar is too big.
Expected behavior
Reduce the width of the search bar to be in the middle.
Screenshots

hey there. I can resolve this issue.If you kindly assign it to me I will start working.

hey i will solve this issue , can u assign me

@KarthikShetty5 i asked him to assign the issue to me first.

@KarthikShetty5 i asked him to assign the issue to me first.

let me see

@KarthikShetty5 Please don't start working on the issue without getting assigned to it.

@farhadjaman As per the rules of this project, This issue will be assigned to you.

Thank you.on it!

Can I get assigned? let me know how to start.

@Pulkitxm This issue has already been assigned to someone. Look for other issues to work on

hello, the package.json file is missing in the GitHub file, can you kindly direct me to how  set up the project.

@farhadjaman web/README.md Read these guidelines carefully

@ArslanYM I have made a PR. Would you kindly review it?

Hey, can you assign me this issue, seems it hasn't been fixed

Sure thing. Assigned to you.

Can I please be assigned to this @ArslanYM

Can I please be assigned to this @ArslanYM

@PawanAK This issues is resolved. Thankyou.

@ArslanYM
I think the appearance of the search bar on the phone is still unsatisfactory. It looks like this 👇🏼👇🏼👇🏼
making it difficult to see the words we type, resulting in a poor user experience.

I can fix it now if you want

@Ayoubrabiae  Please go ahead.

I think the issue has been resolved for now.

can i work on this issue if no one is working

@kumar2023jha2000 This issue has been resolved


Wrong/new location for fan info

On my Raspi 5 with a brand-new installation of Bookworm 64bit, the directory for getting the fan speed info is /sys/devices/platform/cooling_fan/hwmon/hwmon3 instead of .../hwmon2.
No idea about other hardware and OS versions.

Good point. However, I just restarted the Pi three times and the path remains .../hwmon3.
I am using the stand-alone fan ("Raspberry Pi Active Cooler") without any further modifications to it.
In addition, I have a Geekworm X1001 NVMe Shield installed as well as a Geekworm X1200 UPS Shield. Thinking of that – I recently transferred the OS from the SD card to a NVMe SSD. Might that be the cause...? 🤔
I am only using the software locally. For the time being, I just modfied the path within my RpiInfo.js and it works fine.

On a local Pi, I could probably check which path is used

In v1.8.16.


Use LIEF for the ELF collector

@serge-sans-paille There are some bugs that are related to Python Interface that I can't understand. (cf Travis build).

Already done Serge: https://travis-ci.org/serge-sans-paille/binmap/jobs/307462288


Proper Shared Memory support for large COCO Datasets

Describe the feature
When training on a COCO format dataset only one copy of the dataset annotations should be loaded into RAM by the primary process and all other GPU process dataloaders should pull from this copy in shared memory.
Motivation
Duplicating a large COCO dataset's annotations in a distributed training environment quickly eats all available system RAM. This makes training on large datasets impossible even in systems with over 1TB of RAM.

Sounds like a fun project!
A quick workaround would be to serialize the annotations on a per-image basis and load them by index just like images in the pipeline.  Then the annotation file would only need contain image paths and annotation file paths.
BaseDataset has a load_data_list method that should be overwritten to handle a path to a serialized annotation file as an annotation.  The COCO dataset in MMDet has an example of overwriting this method to handle COCO specific annotations.
LoadAnnotations should be subclassed to first read in the annotation from disk, then proceed through the rest of the original LoadAnnotations methods as appropriate.
Make sure filter_data still behaves as it should.

I'm a little confused as to how exactly you would go about implementing this. From looking at CocoDataset and BaseDetDataset I would've assumed that I'd have to modify getitem to deserialize each individual annotation file. I've never worked with the LoadAnnotations transform directly and I think my understanding of exactly how MMDetection dataloaders work is a little poor. Would getitem simply fetch a filename and LoadAnnotations would actually read the annotation in? In what method would I read the annotations from the disk? How would filter_data be able to actually filter out annotations without reading them?

I've been working on a solution for this as @PeterVennerstrom described. I assume this approach would also require reimplementing the coco_metric evaluator such that it also lazily loads annotations?

If anybody stumbles upon this thread looking for answers, it is a little more complicated than the initial reply makes it sound. You will have to do the following:

Reformat your dataset to consist of one main dataset file listing image/annotation path pairs and individual annotation files for each image
Create a Dataset class to handle loading your list of image and annotation path pairs
Create a Lazy Loading Annotation transform which not only loads in your individual annotation file but formats it precisely how the detection code expects it to be formatted (this was the source of many headaches, the original COCOdataset loader converts [x, y, w, h] boxes into [x1, y1, x2, y2] boxes and will fail silently with a GPU-related error if this format is not met).
Completely refactor the coco_metric evaluator to not rely on pycocotools at all (currently stuck at this step)

I'm not sure if any other changes are necessary to make this work, but I'm trucking along regardless. It would be really cool if proper lazy loading could be implemented. My solution is very hacky and I'm sure the ability to work with very large datasets is not unique to my use case.

Apologize if I made this sound easier than it ended up.
On evaluation, unless there is a need to evaluate a test set too large to fit into memory it could be performed as before from a standard COCO dataset loaded into memory.  The train/val/test sets are independently defined and created.  In 3.x the COCO metric evaluation object is separate from the dataset object.  In any case, if COCO metrics are needed recommend calculating them with pycocotools.
Filter GT could be applied separate to the training code when converting the annotations to their serialized format.  For COCO it filters out images based on height and width and the existence of an instance.


eye.getEyeView() and eye.getEyePerspective() return NaN matrices

Hello! In my app, at first launch, everything seems to be fine. After getting back to the main menu, and starting a new game (with every object recreated, every static field reinitialized), only 2D objects are rendered. I looked into it, and it seems that in the onDrawEye method, the given view and perspective matrices are NaN. Is there something i forgot to reset, or is this a bug in the api?

This may be due to the HeadTracker matrix degenerating under some some circumstances. As a workaround, I'd try pausing and resuming the CardboardView on game restart. Like this:
     getCardboardView().onPause();
     getCardboardView().onResume();

which resets the HeadTracker as a side effect.

Thanks for your reply, it doesn't seem to fix it though :(
The HeadTransform instance i get in the onNewFrame() method is also NaN, and the eye matrices stem from that matrix. I recreate the activity on every new game launch (and also the CardboardView with it), so it's strage...maybe some system resources are not released properly? or is there a static field that should be resetted inside the api?
Any tips for any other workarounds?

You can close the issue if you want.


investigate using spoonacular api

looks like spoonacular would let me add recipe searching and nutritional information stuff to the meal planner. might be an easier way to add recipes than manually adding in a recipe with ingredients lists and whatnot. it also has meal planning features...
need to make sure i can use it in a way that meets my needs without violating their TOS....

they said, "You can cache recipe IDs, titles, and preview images. Everything else must be refreshed hourly."
so i could just have the recipe details be load on demand.

hmm... on further consideration i think a lot of the stuff i might want to do with this api could be violations of the TOS: "You may not scrape the spoonacular API or in any way attempt to copy or store the information it provides, including any derived, hashed, or transformed data."
this means that while i could use my custom recipes i've manually entered into my database to do stuff like tracking how much of any given ingredient we probably have on hand... so that i can then use that availability in selecting what to cook on different days...
i dunno... maybe i just make something that can parse a recipe pasted into a text box.... and maybe see if i can make my own page scraper to "extract" recipes from webpages.... it's kinda bullshit that spoonacular is basically using scraped recipes from other people's websites but i'm not allowed to track how much of an ingredient i've used in a day if i've got that ingredient amount value from their api...


How to download the raw videos of YouCook2?

Does anyone know it?

Do you have the raw videos of YouCook2 Now?


Getting 0 features returned and unknownFeature value for features that exist.

I followed the docs to intialize the SDK, but am getting 0 features returned from the initialized object.

Could you please specify SDK version?

I am using:
1.0.3 as stated in the documentation.
  val attrs = HashMap<String, Any>()
    attrs["userEncodedUuid"] = userId ?: ""
    gb = GBSDKBuilder(
        // Fetch and cache feature definitions from GrowthBook API
        // If self-hosting, we recommend using a CDN in production
        apiKey = "-----",
        hostURL = "https://cdn.growthbook.io",
        attributes = attrs,
        trackingCallback = { gbExperiment, gbExperimentResult ->
            // track in your analytics system
            Segment.analytics.track("User Viewed Experiment",
                Properties()
                    .putValue("experimentId", gbExperiment.key)
                    .putValue("variant", gbExperimentResult.variationId.toString()))
        }
    ).initialize()

Strangely it works fine on iOS SDK so I know the feature and experiment is configured properly.

I just tried. It is still the same unfortunately. How is it possible that 0 features get returned? Is this an issue on the Android SDK or is it an issue with the features setup a certain way? It works for our iOS app so I am stuck now.

<EMAIL_ADDRESS>

Solved with refreshCache() call.


INFRA-9518 Remove IRC bot config

Remove IRC bot from common medic config so we don't get a bot for every installation of medic. The actual IRC bot config will remain only in the SVN copy of cordova.conf that is used by Apache Infrastructure.

LGTM


View not updated after ionViewWillEnter or ionViewDidEnter in Ionic2 RC.0

View is not updated after ionViewWillEnter or ionViewDidEnter model change in Ionic2 RC.0
ts example:
@Component({
    templateUrl: 'test.html',
})
export class TestPage {
    test:string='false';

   ionViewWillEnter() {
       this.test = 'true';
   }
 }

html example:
  <ion-header></ion-header>
  <ion-content>
       {{test}}
  </ion-content>

=> displayed will always be
  false

Am I the only one facing that problem? Is that a bug? If no, what should be done instead?

I tried the same example in the starter app and it worked, but unfortunately didn't find any way to solve that in my app.
Furthermore, I also noticed I've got some refresh problem too with other component, like the following:
ts:
import {Component, Input} from '@angular/core';
@Component({
    templateUrl: 'image-loader.html',
    selector: 'image-loader'
})
export class ImageLoader {
    @Input() src;

    loaded:boolean = false;

    imageLoaded() {
        this.loaded = true;
    }

}

html:
<ion-spinner *ngIf="!loaded">
<img [hidden]="!loaded" (load)="imageLoaded()" [src]="src"/>

I added an alert to image loaded and I effectively see that "this.loaded = true;" is set but still nothing happens in the browser.
Seems that both problem are related to me, so is it like there is a configuration to tell Ionic2/Angular2 how to survey and refresh according the model changes?

Looking into this issue. can you test if it does update if wrapping your changes around:
this.zone.run(() => {
        this.loaded = true;
});

you should inject NgZone. Obviously this is only a workaround. Let me know it that fixed the issue.

First thx a log for looking this issue @manucorporat !!!
I tried following. Unfortunately didn't worked or helped. Did I miss something?
 import {Component, Input, NgZone} from '@angular/core';

 @Component({
     templateUrl: 'image-loader.html',
     selector: 'image-loader'
 })
 export class ImageLoader {
     @Input() src;

     loaded:boolean = false;

     constructor(public zone:NgZone) {

     }

     imageLoaded() {
         this.zone.run(() => {
             this.loaded = true;
             console.log(this.loaded);
         });
     }

 }

I also just did a test on my login page and there the update work.
So I guess that I do something wrong in the meantime which break the zone update or something like that...gonna continue to dig

Don't know what but what is wrong is something with the component I include in other component.
In pages where I do not use other component, like that ImageLoader, I don't have any problem with update and binding of the model. As soon as I include one single component  of my own, then these update/zone problem occurs.

Well then found nothing more. Tried to reproduce the problem with the starter app, can't :(
Seems I really have got problems with my custom components, as for event firing as for updating the gui.
The other task I opened is most probably linked with that one...
https://github.com/driftyco/ionic/issues/8345
Any idea is most welcomed in advance

F*CK found the problem I think.
So basically on my login page I've got an "automatic login" which trigger a login with a cordova plugin. This crash an error in the browser, it always did, but wasn't a problem because I was working with enableProdMode() which isn't the case anymore.
Since this error crash all other occurring afterwards aren't displayed in the console. I removed this "auto login" and could discover where my app was crashing for real aka where my problem was.
Actually in two different custom components, an error "Expression has changed after it was checked" is throw. Not fixed the error but commented the error part and everything is back to normal.
How to loose 6 hours of your life...at least I found where the problem is.
Sorry for bothering everybody who read this post, specially @manucorporat


Creator can Undo or Redo any Action They Take

[x] cmd/ctrl-z should always undo my most recent action
[x] cmd/ctrl-shift+z should always redo most recent action
[x] alt. use redo/undo buttons

Verified in RC1


HTTP::Server Leftovers after chunking

Summary
Server response will have leftovers. (Transfer-Encoding)
Some "unknown" numbers will appear.
I can't find the source of the error. :(
Example

Server

require "http/client"

server = HTTP::Server.new do |context|
  puts [context.request]

  context.response.headers.add "Transfer-Encoding", "chunked"
  context.response << String.new Bytes[10, 13]
  context.response.flush
  context.response.close
end

tcp = server.bind_tcp "<IP_ADDRESS>", 8888
puts "Listening on #{tcp}"
server.listen

Curl Leftovers (GET)

$ curl -v <IP_ADDRESS>:8888 --raw -k
* Rebuilt URL to: <IP_ADDRESS>:8888/
*   Trying <IP_ADDRESS>...
* TCP_NODELAY set
* Connected to <IP_ADDRESS> (<IP_ADDRESS>) port 1087 (#0)
> GET http://<IP_ADDRESS>:8888/ HTTP/1.1
> Host: <IP_ADDRESS>:8888
> User-Agent: curl/7.54.0
> Accept: */*
> Proxy-Connection: Keep-Alive
>
< HTTP/1.1 200 OK
< Connection: keep-alive
< Transfer-Encoding: chunked
< Proxy-Connection: keep-alive
<
2

0

0

* Leftovers after chunking: 5 bytes
* Connection #0 to host <IP_ADDRESS> left intact

I can't reproduce the error.
What is the curl argument -x <IP_ADDRESS>:1234 supposed to mean in the failing example? Do you have some kind of proxy in between? In it's description you mention POST, but this is not a POST request.

I can reproduce the error (see "Leftovers after chunking" in curl).
This seems to fix it:
diff --git a/src/http/server/response.cr b/src/http/server/response.cr
index f8798b3d7..f033c413b 100644
--- a/src/http/server/response.cr
+++ b/src/http/server/response.cr
@@ -204,6 +204,8 @@ class HTTP::Server
       end

       def close
+        return if @closed
+
         unless response.wrote_headers?
           response.content_length = @out_count
         end

I can't find the source of the error. :(

I don't think you should call close on the response, the server will do that for you. I mean, it's fine, but we didn't contemplate that use case and so the response is being closed twice, with unexpected results.

@straight-shoota Sorry, POST problem I am narrowing the scope test, temporarily remove.

@asterite Okay 😅.

@straight-shoota Sorry, POST problem have nothing to do with this.
According to the asterite solution, the problem is solved. Thanks.

It's not solved, I was just suggesting a solution.

@asterite The leftovers hint disappears,
But some "unknown" numbers still appear. 😅 2 ... 0
iMac:~ User$ curl -v "<IP_ADDRESS>:8888" --raw -k
* Rebuilt URL to: <IP_ADDRESS>:8888/
*   Trying <IP_ADDRESS>...
* TCP_NODELAY set
* Connected to <IP_ADDRESS> (<IP_ADDRESS>) port 1087 (#0)
> GET http://<IP_ADDRESS>:8888/ HTTP/1.1
> Host: <IP_ADDRESS>:8888
> User-Agent: curl/7.54.0
> Accept: */*
> Proxy-Connection: Keep-Alive
>
< HTTP/1.1 200 OK
< Connection: keep-alive
< Transfer-Encoding: chunked
< Proxy-Connection: keep-alive
<
2

0

* Connection #0 to host <IP_ADDRESS> left intact

I want to write a test for this. It's something like this:
    it "..." do
      server = Server.new do |context|
        context.response.print "hello"
        context.response.flush
        context.response.close
      end

      address = server.bind_unused_port

      run_server(server) do
        TCPSocket.open(address.address, address.port) do |socket|
          socket << requestize(<<-REQUEST
            GET / HTTP/1.1

            REQUEST
          )
          socket << "\r\n"
          socket.flush

          response = Client::Response.from_io(socket)
          response.status_code.should eq(200)

          # <------- Check that socket has no more data
        end
      end
    end

However, I can't do it. I need to check that the socket has no more data. But if I read from it, in the working case it will block because there's no more data.
I think we need some kind of read_nonblock(slice : Bytes) that would try to read from the socket once and return immediately if there's no data, even if C says EAGAIN.
It's a bit more complex with buffered because read_nonblock should return whatever is in the buffer and try to read_nonblock from the wrapped IO if there's still more space in the given slice.
I think someone else needed this too...
Otherwise I can send a PR with just the diff above but no specs.
Thoughts?

I don't think you should call close on the response
But sometimes I need to shut down the client ahead of time.
Some clients, if not closed early, will continue to connect until they disconnect after a timeout (≈ 30-60s).
This will take up a lot of FileDescriptor  and will eventually lead to a faster "too many open files".
If you add return if if closed, it will solve the problem of Leftovers, but there will be problems with the connection (Reference above).

@asterite I don't think you should call close on the response
But sometimes I need to shut down the client ahead of time.
Some clients, if not closed early, will continue to connect until they disconnect after a timeout (≈ 30-60s).
This will take up a lot of FileDescriptor  and will eventually lead to a faster "too many open files".
If you add return if if closed, it will solve the problem of Leftovers, but there will be problems with the connection (Reference above).

@73616c74 I'm not sure I understand: the server will call close for you at the end of the block. So you calling close is just redundant. Or am I missing something? Do you close the response in the block and do some kind of sleep before the end of the block?

@asterite
I am making an HTTP proxy(Including relay server),
I use some other auxiliary tools to view client connection requests.
I found that when I "close" the client, the request ends quickly.
I can see that after adding "close", the "Transfer-Encoding" client will be disconnected quickly.
I added "close" to solve the timeout problem.
Maybe the client has some similar things like #7944 ?

@asterite Sorry, you are right. He will have a timeout problem, but it has nothing to do with it. He is related to #7794. Sorry.

Some clients will disconnect quickly after the response is completed (e.g. curl).
some clients are still hanging (waiting for timeout) after the server response is complete, #7944.
But in these suspended (waiting for timeout) clients, "Transfer-Encoding" is unusual.
There are also some ("Transfer-Encoding" [https/tls] clients) that are quickly disconnected after the server "Close".
If you do not "close" the ("Transfer-Encoding" [https/tls] clients), these clients will hang (until timeout) and then disconnect. (These clients do not include Curl).
I can't figure out why, because these client requests come from third-party applications.
If something happens (server sleep/server hangs), Curl will also encounter this type of problem, but I have not seen such problems with Curl.
"Transfer-Encoding" client timeout problem, in order not to waste everyone's time, I will solve it through the "Close" patch.

One more thing: the context.response.headers.add "Transfer-Encoding", "chunked" line is not needed. This is done automatically by the server. So maybe removing that will fix something else. We should probably take care of that too, but I don't know exactly how.

@asterite Okay.

@asterite Thank you for your help and all the problems have been solved.
These hangs (timeout) clients, through the close can not close the client, I use context.response.upgrade &.close or<EMAIL_ADDRESS>to completely disconnect the hangs client.
Very Very Very Thanks. This bothered me for a week. 😀


Company Address Issue

Describe the bug
When creating new company that time company address field is by default disabled can not enter any value.
To Reproduce
Steps to reproduce the behavior:

Go to https://ac-74.s1.easycloudbooks.com/user/company/list#
Click on create company button
Scroll down to address field it is by default not editable
See error

Expected behavior
When click on address field should be editable and can enter address field
Screenshots

issue resolved