FluentTimePicker icon color not changing when in dark mode.

🐛 Bug Report
FluentTimePicker icon color not changing when in dark mode.
💻 Repro or Code Sample
Here I have a FluentDatePicker and FluentTimePicker side by side.
        <FluentLabel>To</FluentLabel>
        <div style=" display: flex; flex-direction:row;">
            <FluentDatePicker @bind-Value=@(_logArgs.To) Style="margin-right: 2px; width: 120px" />
            <FluentTimePicker @bind-Value=@(_logArgs.To) />
        </div>

🤔 Expected Behavior
When i switch to dark mode I expect the color of the FluentTimePicker's icon to change in line with the other components.
😯 Current Behavior
When i switch to dark mode the color of the FluentTimePicker's icon doesn't change in line with the other components.

🌍 Your Environment

Browsers : Microsoft Edge (latest), Google Chrome (latest)
.NET 8.0
Fluent UI Blazor library Version 4.10.2

We already explained that: #1258
You could find a "solution" here: https://github.com/microsoft/fluentui-blazor/discussions/1193#discussioncomment-7930415


lowercase issue

Version
0.4.19
Platform
Linux home 5.15.0-43-generic #46-Ubuntu SMP Tue Jul 12 10:30:17 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
Description
i set response header  X-DTLS-MTU,
    let mut res = Response::builder().status(StatusCode::OK);

    let headers = res.headers_mut().unwrap();
    headers.insert("X-DTLS-MTU","1500");

and make server
.http1_title_case_headers(true)
.http1_preserve_header_case(true)
it return X-Dtls-Mtu
I expected to see this happen:
expect return  X-DTLS-MTU

I see you've found the other issues, so I'll close this one.


Agent fails with  'NoneType' object is not subscriptable on RPI

When running the dm agent outside of docker
c8ydm.start

on RPi IV using the settings:
tls = true
cert_auth = true

I get the following exception:
Starting...
2022-07-17 19:10:34,411 MainThread INFO root Serial: 3332221
2022-07-17 19:10:34,412 MainThread INFO c8ydm.client.mqtt_agent Starting agent
2022-07-17 19:10:34,706 Thread-1 INFO c8ydm.client.mqtt_agent Agent connected with result code: 0
2022-07-17 19:10:35,662 MainThread INFO c8ydm.client.mqtt_agent Starting refresh token thread
2022-07-17 19:10:35,664 TokenThread-1 INFO c8ydm.client.mqtt_agent Refreshing Token
SenseHat not available
2022-07-17 19:10:35,991 InitializerThread-AgentInitializer INFO c8ydm.agentmodules.agent_initializer Agent Initializer called...
2022-07-17 19:10:35,994 InitializerThread-DockerSensor INFO c8ydm.agentmodules.docker_watcher Docker Initializer called...
2022-07-17 19:10:36,001 InitializerThread-EventInitializer INFO c8ydm.agentmodules.event_initializer Event Initializer called...
2022-07-17 19:10:36,008 InitializerThread-Network INFO c8ydm.agentmodules.network Network Initializer called...
2022-07-17 19:10:36,032 InitializerThread-SmartRestInitializer INFO c8ydm.agentmodules.smartRest_inizializer SmartRest Template Initializer called...
2022-07-17 19:10:36,035 InitializerThread-SmartRestInitializer ERROR c8ydm.client.rest_client The following error occured while trying to check for existing SmartRest templates: 'NoneType' object is not subscriptable
2022-07-17 19:10:36,036 InitializerThread-SmartRestInitializer INFO c8ydm.agentmodules.smartRest_inizializer SmartRest Template does not exist, creating....
2022-07-17 19:10:36,036 InitializerThread-SmartRestInitializer ERROR c8ydm.client.rest_client The following error occured while trying to create SmartRest template: 'NoneType' object is not subscriptable
2022-07-17 19:10:36,071 MainThread INFO c8ydm.client.mqtt_agent Supported operations:
2022-07-17 19:10:36,240 MainThread INFO c8ydm.client.mqtt_agent {'c8y_DeviceProfile', 'c8y_MeasurementRequestOperation', 'c8y_RemoteAccessConnect', 'c8y_DownloadConfigFile', 'c8y_SoftwareList', 'c8y_Restart', 'c8y_UploadConfigFile', 'c8y_Firmware', 'c8y_Message', 'c8y_Command', 'c8y_SoftwareUpdate', 'c8y_Configuration', 'c8y_LogfileRequest', 'c8y_Docker'}
2022-07-17 19:10:36,807 MainThread INFO c8ydm.client.mqtt_agent Required interval: 10
2022-07-17 19:10:36,813 MainThread INFO c8ydm.client.mqtt_agent Model:
2022-07-17 19:10:36,814 MainThread INFO c8ydm.client.mqtt_agent ['3332221', 'raspberry', '1.0']
2022-07-17 19:10:36,950 MainThread INFO c8ydm.client.mqtt_agent Subscribing to XID: c8y-dm-agent-v1.0
2022-07-17 19:10:37,480 InitializerThread-DockerSensor ERROR c8ydm.client.rest_client The following error occured: 'NoneType' object is not subscriptable
2022-07-17 19:10:37,481 MainThread ERROR c8ydm.client.rest_client The following error occured: 'NoneType' object is not subscriptable
2022-07-17 19:10:37,548 InitializerThread-DockerSensor ERROR c8ydm.client.rest_client The following error occured: 'NoneType' object is not subscriptable
2022-07-17 19:10:37,582 MainThread ERROR c8ydm.client.rest_client The following error occured: 'NoneType' object is not subscriptable
--- Logging error ---
Traceback (most recent call last):
  File "/home/pi/.local/lib/python3.7/site-packages/c8ydm/client/mqtt_agent.py", line 100, in run
    self.__init_agent()
  File "/home/pi/.local/lib/python3.7/site-packages/c8ydm/client/mqtt_agent.py", line 283, in __init_agent
    self.rest_client.set_operations_to_failed(ops)
  File "/home/pi/.local/lib/python3.7/site-packages/c8ydm/client/rest_client.py", line 320, in set_operations_to_failed
    if len(operations) > 0:
TypeError: object of type 'NoneType' has no len()

The registration in the cloud works, but it seems that no measurements are send to the could tenant.
What could be the issue?

The same error has been fixed with https://github.com/SoftwareAG/cumulocity-devicemanagement-agent/commit/5b2465af25fc4e63b44ea3ccc6846f3ab3f97d43
Are you sure you're running the latest version? The Initializer will not run if the token is not there with the newest version.
The lines posted in the trace are not matching to the latest versions:
File "/home/pi/.local/lib/python3.7/site-packages/c8ydm/client/mqtt_agent.py", line 283, in __init_agent
self.rest_client.set_operations_to_failed(ops)
For me this is line 292


Video Undefined

i have to be missing something dumb here. in my on-streaming callback the passed in video param is always undefined even though i can see the video on the page. any ideas?

thanks!

I think it's because you're using 2.0.0 instead of 1.2.0.

what is the solution to get video element in 2.0.0?

I am getting error while using latest webcam with Angular 1.3.14
---- Cannot read property 'width' of undefined
Always getting video undefined, I see video on my screen but inside on-streaming's callback method onSuccess(), $scope.mywebcam is undefined.
Here is how my directive defined as shown in latest documentation -

Can someone please point me to the right direction?
Thanks.

same problem
$scope.mywebcam is undefined.
any updates?

are you guys using?
angular.module "yourapp"
  .controller "YourCtrl",
    $scope.video = null

    $scope.onSuccess = () ->
      console.log $scope.video #not null after accept the webcam

        <webcam
          on-stream="onStream(stream)"
          on-error="onError(err)"
          on-streaming="onSuccess()"
          video="video"></webcam>

here it works...

I've made changes that should fix this issue. It required changing the interface of the directive, so I've pushed the version to 3.0.0
You should use the new channel attribute to bind the scopes: https://github.com/jonashartmann/webcam-directive#set-a-channel-to-bind-data
Please try it out and let me know if you still have issues.

thanks @jonashartmann.


NFT plots

Is it possible to plot for NFT ( to pools )

That is correct. When you go to start a new job, you'll see under the 'Additional Parameters' section that there's a box for it. Check the box next to 'Pool Contract Address' and then add the proper value.

Yes it is possible and PhattyOgre correctly explained how to do so. Thank you PhattyOgre.


Make into plugin

I was just setting up a new project with OQT and thought it might be nice for new users to make things a little more automatic with a plugin. It could automatically add the vr singleton for them and remove one more step.

Can you detail a bit what this Plugin would mean (or point me to some documentation)? I am not familiar with this. Making the toolkit easier to use would be great.

Ok, I made a branch showing how it could work. This only look like 10 minutes do no pressure to merge the PR :P
I added 2 new files:
plugin.cfg and plugin.gd
It'll show up in the plugins tab of project settings now, and when enabled, it will automatically add the vr autoload singleton.
When disabled it'll remove it.
Since plugins generally live in the addons sub dir, I moved the OQ_Toolkit dir into there, but that's optional of course. It could stay in the project root if you want.
Personally I always move OQ_Toolkit to the addons dir as it cleans up the root for my project code, but that's just personal preference of course.
One last point for moving it into addons/ is when someone adds this via the asset library, they know they can just click the addons/ dir when intalling, and leave the rest out if they don't want demo code, since that seems to be the standard convention.

One more idea, if we have this plugin, we could add certain things as Nodes to the editor.
Some parts of the toolkit make sense as scenes to be instanced, but other parts I think should be named nodes that could instead be added by users via the normal "Add child node" interface.
These seem like good candidates to me:

OQ_ARVROrigin
OQ_ARVRCamera
OQ_RightController
OQ_LeftController

Example of adding the core scripts as nodes in the editor.

The last thing that would be sorta nice, is to automate the adding of vr.initialize() but it'd have to be done in a way that was still configurable for more advanced users... Maybe a check box on OQ_ARVROrigin that is checked by default, and when checked will call vr.initialize() in _enter_tree() or something? idk...
If that particular solution was chosen, we'd need a guard to prevent multiple calls to initialize I think. But that might be a nice safety feature anyway.

I added that (auto initialize of vr singleton) to the branch so you can see if you like it. We can cherry pick bits and pieces from this branch if you like any of it.


iptables rules churning

On commit cd781e4a84b0e5aa2237ec39d780ef71ec7d7308 (from the tip of iptables_proxy), if you run
watch -n 1 -d "sudo iptables -t nat -L -vn"
Wait 10-100s and you will see a bunch of churn in the iptables rules that are programmed, even when there are no changes to the services.
i) this is going to impose an additional CPU and i/o load on the system
ii) this blats the statistics for the iptables rules, which makes debugging harder
It would be desirable to have a deterministic ordering/naming of the rules, so that we don't delete and re-add the iptables rules when there is no change to the set of rules needed.

Agreed. I'll start working on the determinism next.
I have some things I have to do (exams) but I'll hopefully have both the
determinism and churn taken care of before Monday (I plan to make up for
time lost this weekend), as well as hopefully a clean slate with e2e tests.
Absolute determinism (IE 1-1 mapping) may be tricky but I can ptobably get
relative determinism (IE same config same rules). The problem is the
service / endpoint chains which need to be unique but must fit within the
iptables name limits which are pretty short (28 characters) so I can't just
use the service names, currently I use comments to make it clear what the
rules are for and just assign numbers in a loop but I could maybe use a
hashing method or a map to persist endpoint -> assigned number, or sort the
service and endpoints before the loop.
I'll look into it ASAP.
In the periodic sync we could parse iptables-save and compare to generated
rules but that would probably be more expensive than just generating and
restoring the rules given that a valid output may not exactly match the
text of the desired rules, but it could improve the rule churn possibly. We
could also remove the sync loop altogether but we currently handle failures
by expecting them to be reconciled on the next iteration.
On Jul 15, 2015 7:40 PM, "Paul Tiplady"<EMAIL_ADDRESS>wrote:

On commit cd781e4
https://github.com/BenTheElder/kubernetes/commit/cd781e4a84b0e5aa2237ec39d780ef71ec7d7308
(from the tip of iptables_proxy), if you run
watch -n 1 -d "sudo iptables -t nat -L -vn"
Wait 10-100s and you will see a bunch of churn in the iptables rules that
are programmed, even when there are no changes to the services.
i) this is going to impose an additional CPU and i/o load on the system
ii) this blats the statistics for the iptables rules, which makes
debugging harder
It would be desirable to have a deterministic ordering/naming of the
rules, so that we don't delete and re-add the iptables rules when there is
no change to the set of rules needed.
—
Reply to this email directly or view it on GitHub
https://github.com/BenTheElder/kubernetes/issues/4.

We have done a lot of work in iptables in Calico, and one approach we take is to use a hash where we don't have room for the string; that way you can (probably) be sure that a given ruleset matches what's programmed. Keeping a map is difficult because if kubelet fails then you've lost the mapping state.
We use iptables-save and then fill in the delta between the existing and desired state -- but our rules are doing complex white/blacklisting, so you might not need to be as careful. Here's the code in case any of the docs/examples are useful. https://github.com/Metaswitch/calico/blob/master/calico/felix/fiptables.py

Interesting. How do you handle hash collisions?
I chose the loop and number as the simplest way to handle that and was
currently leaning towards ensuring the services are sorted prior to ensure
the numbers are consistent.
On Jul 15, 2015 8:10 PM, "Paul Tiplady"<EMAIL_ADDRESS>wrote:

We have done a lot of work in iptables in Calico, and one approach we take
is to use a hash where we don't have room for the string; that way you can
(probably) be sure that a given ruleset matches what's programmed. Keeping
a map is difficult because if kubelet fails then you've lost the mapping
state.
We use iptables-save and then fill in the delta between the existing and
desired state -- but our rules are doing complex white/blacklisting, so you
might not need to be as careful. Here's the code in case any of the
docs/examples are useful.
https://github.com/Metaswitch/calico/blob/master/calico/felix/fiptables.py
—
Reply to this email directly or view it on GitHub
https://github.com/BenTheElder/kubernetes/issues/4#issuecomment-121783672
.

FWIW, I'm in favor of hashes (of course with a good hashing algorithm). The collision probability follows the same rules as UUID: there is a probability, but you will neither hit it in practice. For instance, if we still prefix rules by "KUBE-SERVICE-" (length=13), we have 15 chars remaining. With hexadecimal notation, it's 1/1615 = 1/260 (1/1.15e18); if we use "number+letters", it's 1/2.11e23; if we differenciate up/low case, it's 1/7.69e26.

Currently though we also need KUBE-SERVICE-<Service_Hash>-<Endpoint_Hash>, we use KUBE-SERVICE-_

You can hash "_" instead. Since we use KUBE instead of KUBERNETES, I think we can also use SVC instead of SERVICE to further reduce de probability.

@MikaelCluseau Yes KUBE-SVC- seems like a good idea to save space.
Can you elaborate on what you mean by hash "_" instead?

@BenTheElder I edited my comment, using > without escaping isn't good :)

Ah, that would work and limit collisions quite nicely but it would make it less easy to associate endpoint chains with services, it would be nice if they had the same prefix as they do now.
I'll keep that in mind as an option but I would like to keep the service and service_endpoint chains with the same prefix if possible.
Perhaps KUBESVC-<Hash(Service)>_<Hash(Endpoint)>, That gives 9 characters for the KUBESVC-_ with 19 for the two hashes, which admittedly might not be enough.
If we were only ipv4 i'd say use Bytes(address) for 4 characters used for the endpoint and with 15 for the service hash but if we plan to support ipv6 we will need more space for the endpoint.

I think iptables comments should be more than enough to be able to read and debug the rules. If you really want a stable prefix, the "_" between the hashes is not required to acheive that. Not sure about removing the "-" between KUBE and SVC though, "KUBE-" seems to be the prefix of choice for reserved chain names.
If you only talk about associating at the code level, any part of the software who know both the service and the endpoint names can compute the chain name, so it shouldn't be an issue.

True. I will go with KUBE-SVC-<Hash(Service)> and KUBE-SVC-<Hash({Service}_{Endpoint})> then.

https://github.com/GoogleCloudPlatform/kubernetes/commit/753d2a0796ebd5025309272e7645b2e2f5cb4b1d
Implemented initial version of hash based chain names, seems to work fine so far.

Hi @BenTheElder, deployed here. No regressions so far.

Thanks for the feedback, glad to hear it.
On Sun, Jul 19, 2015 at 6:39 PM, MikaelCluseau<EMAIL_ADDRESS>wrote:

Hi @BenTheElder https://github.com/BenTheElder, deployed here. No
regressions so far.
—
Reply to this email directly or view it on GitHub
https://github.com/BenTheElder/kubernetes/issues/4#issuecomment-122711959
.

BTW: as noted here I'll be back on this by tuesday afternoon, studying for summer finals has been more time consuming than expected, but I will be done with them by then and working on this and trying to solve #3.

It needs further debugging, but the latest commit should in theory preserve the counters, and as previously noted the rules are now deterministic.
We can still do more about point i) but ii) and your last point at least should be resolved.

Closing this for now. This can possibly be improved more upstream but it should be reopened there if necessary.


Cognizant Softvision rebrand

@jedstromcsv I found the issue with the jdk 11 webservice fails, because there are two WebServiceDrivers now in the database namespace the tests on set up are having issues going to the "correct" WebServiceDrivers class.
Not sure how you want to resolve it but putting 11 at the end of the class name (WebServiceDriver11) and changing the name reference in the unit tests solved the issue


Including tolerations in the definition of pre-delete-hook-job

Related to https://github.com/rancher/rancher/issues/34159


Shrine of Legends Bug

Cant jump after hitting it, its intermittent on whether i can jump or not, it also just cancels momentum sometimes.
I Have a clip to show everything that happened including the items that i had, the items that it took, and what i got.
https://lowkey.gg/v/c2366796-6ad4-4892-9e29-6f27e7cd34c3

Could you please share your profile with me? I tried to replicate the bug with the items from the video but it didn't happen, so I must be missing a mod that causes this behaviour.

Sorry for the late reply, I work overnights so I sleep during the day, when I get home I’ll send you the mod profile and anything else you need

Code for the mod profile
G0CmsFKBVx

Oh, that's not a bug with this mod. Apparently that's what "The Oddity" does, from LargeSpanish's ExtraItems https://thunderstore.io/package/LargeSpanish/ExtraItems/0.1.0/

Sorry for the misunderstanding.


1.2.2 release

Will be release after I tested

Thank you so much for this plugin, its a life saver and I really appreciate your work!
Looking forward to your 1.20.4 update!!


A problem about the carb

hello, I meet a problem about the carb. The error info is following. Thanks for your help!
/code/XXX/miniconda3/envs/multi2oie/lib/python3.7/site-packages/sklearn/utils/deprecation.py:144: FutureWarning: The sklearn.preprocessing.data module is  deprecated in version 0.22 and will be removed in version 0.24. The corresponding classes / functions should instead be imported from sklearn.preprocessing. Anything that cannot be imported from sklearn.preprocessing is now part of the private API.
  warnings.warn(message, FutureWarning)
[nltk_data] Error loading wordnet: <urlopen error [Errno 111]
[nltk_data]     Connection refused>
Traceback (most recent call last):
  File "train.py", line 8, in <module>
    from test import do_eval
  File "/home/wurui/spacy_ie/Multi2OIE-master/test.py", line 13, in <module>
    from carb.tabReader import TabReader
ModuleNotFoundError: No module named 'carb.tabReader'

If you suspect this is an IPython 7.14.0 bug, please report it at:
    https://github.com/ipython/ipython/issues
or send an email to the mailing list at<EMAIL_ADDRESS>
You can print a more detailed traceback right now with "%tb", or use "%debug"
to interactively debug it.

Extra-detailed tracebacks for bug-reporting purposes can be enabled via:
    %config Application.verbose_crash=True

same error

Fixed it by moving tabReader.py into the carb directory instead of carb/oie_readers

I apologize for the late reply. The https://github.com/youngbin-ro/Multi2OIE/issues/2#issuecomment-842205871 is correct answer.
The issue is closed because the problem is solved by the commit https://github.com/youngbin-ro/Multi2OIE/commit/de3df55dcfdcc3844fc0567e2ba26057a49a37d1.


[FEATURE] [Lethal Action Reborn] Improve configuration options and functionality.

Mod: Lethal Action Reborn
Add configuration of which weapons will / won't trigger murder on civilians.
Add configuration of how many hits are required to kill a civilian after they are downed.

Implemented for v1.0.4 of lethal action reborn


estimate delay days scenario.py + estimate_delay_days.ipynb

Related issues
#513
What was changed
Summary:

Added the notebook example/estimate_delay_days.ipynb
In scenario.py: added the methods estimate_delay() and ensure_records_confirmed()

estimate_delay():

Estimate the average delay (in days) between a policy measure taken and
the moment of change in for the given target value, for example Infected.
The change over time is calculated with penalized change point analysis.
More information about the method of change point detection can be found in:
https://ctruong.perso.math.cnrs.fr/ruptures-docs/build/html/detection/pelt.html.
Very long periods are taken out, using df.quantile(0.99).
Args:
oxcgrt_data (covsirphy.OxCGRTData): OxCGRT dataset
indicator (str): column variable from the OxCGRT dataset, default = Stringency_index.
target (str): one of the target columns to detect changes in, options are
["Infected", "Confirmed", "Fatal", "Recovered"]. Uses self.records().
value_range (int, int): tuple, giving the minimum and maximum range to search for change
over time. It is assumed that when a policy measure is taken, change will
occur after at least 7 days and before 30 days (= default).
Returns:
days: The estimated number of days of delay for a given country.
df: dataframe of target, indicator and calculated periods of change (in days).

Problem:
For some reason, self.records() does not return the column “Confirmed”, do you know where to get the ‘Confirmed’ column from?
Todo:

Added package ruptures to scenario.py, does this change package requirements anywhere?
Did not add functions to show plots of periods. I can add a function to show a plot of the same kind that is shown in estimate_delay_days.ipynb if that is desirable.

Thank you for your pull request. Before reviewing, I will answer some questions.

For some reason, self.records() does not return the column “Confirmed”, do you know where to get the ‘Confirmed’ column from?

Please use self.record_df.set_index(self.DATE). This dataframe has also Confirmed column.

Added package ruptures to scenario.py, does this change package requirements anywhere?

Becuase ruptures is used for S-R trend analysis (covsirphy/phases/sr_change.py), this will not change install requirement. Please refer to "pyproject.toml" file in the top directory.

Did not add functions to show plots of periods. I can add a function to show a plot of the same kind that is shown in estimate_delay_days.ipynb if that is desirable.

Tool to show "Calculate delay days for every country" graph is a excellent idea, but this tool will be implmented in PolicyMeasures class or a new class because Scenario class is for analysis with one selected country. Could you create a new issue for this?
Additional:
Please add example code of Scenario.estimate_delay() to example/usage_quick.ipynb and test codes to test/test_scenario.py. This will be tested automatically with pytest/flake8 and CI tool (Semaphore CI, https://semaphoreci.com/lisphilar/covid19-sir).

Thank you for your pull request. Before reviewing, I will answer some questions.

For some reason, self.records() does not return the column “Confirmed”, do you know where to get the ‘Confirmed’ column from?

Please use self.record_df.set_index(self.DATE). This dataframe has also Confirmed column.

Added package ruptures to scenario.py, does this change package requirements anywhere?

Becuase ruptures is used for S-R trend analysis (covsirphy/phases/sr_change.py), this will not change install requirement. Please refer to "pyproject.toml" file in the top directory.

Did not add functions to show plots of periods. I can add a function to show a plot of the same kind that is shown in estimate_delay_days.ipynb if that is desirable.

Tool to show "Calculate delay days for every country" graph is a excellent idea, but this tool will be implmented in PolicyMeasures class or a new class because Scenario class is for analysis with one selected country. Could you create a new issue for this?
Additional:
Please add example code of Scenario.estimate_delay() to example/usage_quick.ipynb and test codes to test/test_scenario.py. This will be tested automatically with pytest/flake8 and CI tool (Semaphore CI, https://semaphoreci.com/lisphilar/covid19-sir).

Thank you for your update!
I will merge this pull request and fix some minor issues.

Thank you for your update!
I will merge this pull request and fix some minor issues.


Modify example of BaseUrl

BaseUrl= "http://example.com" is confusing.
I think error occurs on this code.
<link rel="stylesheet" type="text/css" href="{{.Site.BaseURL}}css/screen.css" />

BaseUrl= "http://example.com/" is better.

Thanks !


Deref magic

Added some Deref helpers on CanoncialAddr, HumanAddr, and Binary. Finally solved something I was trying to do months ago... automatically convert to &[u8] or &str respectively in function args.
let human = HumanAddr::from("cosm");
fn_that_takes_str(&human);
// previously:
fn_that_takes_str(human.as_slice());

let canon = CanonicalAddr::from(b"foobar");
String::from_utf8_lossy(&canon);
// previously
String::from_utf8_lossy(canon.as_slice());

let b: Binary = Binary::from(b"1234");
let msg: Msg = from_slice(&b);
// no more need for from_binary

From the Deref docs:

Implementing Deref for smart pointers makes accessing the data behind them convenient, which is why they implement Deref. On the other hand, the rules regarding Deref and DerefMut were designed specifically to accommodate smart pointers. Because of this, Deref should only be implemented for smart pointers to avoid confusion.

The reason all of this works is not that we implement dereferencing (* operation), but that we get Deref coercions. Deref is implemented for Vec<T> (dereferencing to [T]) and String (dereferencing to str). Does this mean both of those are considered smart pointers?
Let's explore this further, but please without breaking existing APIs. We can deprecate and delete them over time when we are happy with the result.

AsRef trait is for use in a function when  it wants to explicitly accept multiple variables. Like Into does.
The only way to get the "automatic coercion " is to implement Deref. This was my learning after plenty of struggle with traits to simplify lifetimes and usage in the cosmwasm plus storage experiment.
Since a long time I wanted &Binary to convert to as &[u8] for function arguments, but failed (thinking it was AsRef and wondering why it didn't work).
This is the magic I was looking for. And this auto-implements len and is_empty and into_vec, which is why I removed that code. It just casts to a slice and uses those functions (which we had done manually)


Find or create a database of all politicians

As mentioned in articles, although Serenata de Amor is currently focused in the Chamber of Deputies, the same models could be adapted for other Brazilian quotas, like Senate, Legislative Chambers, City Halls... Having a database of whole Politicians life - which is public information - can be very useful for exploration and Supervised Machine Learning. Related hypotheses are many: is a suspicious expense made in a place where the politician has a lot of influence? Is the politician in the first term or we could infer a significant influence in the Congress?
Example:

Name
Full Name
Position
Place
Inauguration
Ending

Fernando Collor
Fernando Affonso Collor de Mello
Mayor
Maceió - AL
1979-01-01
1983-01-01

Fernando Collor
Fernando Affonso Collor de Mello
Federal Deputy
AL
1983-02-01
1987-02-01

Fernando Collor
Fernando Affonso Collor de Mello
State Governor
AL
1987-03-15
1989-05-14

Fernando Collor
Fernando Affonso Collor de Mello
President
Brazil
1990-03-15
1992-12-29

Fernando Collor
Fernando Affonso Collor de Mello
Senator
AL
2007-02-01

May be appealing to scrape Wikipedia for that, but I wish we could use TSE or other governmental sources. Candidacies is also a very important dataset to be collected next.

http://everypolitician.org/ aims to be a database for all politicians across the globe, and could be an interesting source/partner. For instance, this is the data they have for Brazilian politicians: http://everypolitician.org/brazil/.

Great data but they don't have the dates but is a start,
TSE have all data we need : http://www.tse.jus.br/eleicoes/estatisticas/repositorio-de-dados-eleitorais
But we are going to need to clean up the data ...

Hi, I am new here... About the suggestions, and the ID problem.  I prefer transparent identifiers (as an URN of completeName-birthDate-birthCity or its hash), based on essential metadata. Opaque IDs like  UUID are error-prone (essential metadata duplications)... Of course, when we have access to an official opaque ID like CPF, that is unique (RG is not unique), it is also perfect. So,

everypolitician.org have a big problem, the randomic ID.
TSE have all data (!), as I checked, CPF is there.

To clean up the TSE data: see LEIAME.pdf, some years are different... after unzip it, example of 2016-SP

iconv -f ISO-8859-1  -t UTF-8 consulta_cand_2016_SP.txt
it is a CSV file with separator ; without  header line.
Starting at field1, the name is field11 and  CPF is the field14.
All candidates of all years ... suppose an SQL database with all CSV imported into all_tse table, will be SELECT DISTINCT field11 as name, field14 as cpf FROM all_tse

Hi guys, I am also new here. I can contribute to this issue using jupyter, pandas and TSE data. I can start with the candicacies file. From that we can compose easily with pandas a table like Irio requested. We can further include campaing contributors data from TSE! Should I upload a notebook, a dataset or both?

Sounds great, @rafonseca! Have you had the chance to get started? I'm interested in this topic, let me known if you're interested in pairing or something ; )

Hi guys, after a brief look on chamber of deputes website I found the data about all deputes as hereafter:
numLegislatura>55
<EMAIL_ADDRESS>nomeProfissao>Administrador de Empresas
dataNascimento>01/09/1977
dataFalecimento>
ufRepresentacaoAtual>RN</ufRepresentacaoAtual>
situacaoNaLegislaturaAtual>Em Exercício
ideCadastro>141428
idParlamentarDeprecated>4460
nomeParlamentarAtual>FÁBIO FARIA
nomeCivil>FÁBIO SALUSTINO MESQUITA DE FARIA
sexo>M
partidoAtual>PSD
nome>Partido Social Democrático
gabinete>706
anexo>4
telefone>3215-5706

It is easy to catch, we only have to use their end-point, here:
http://www2.camara.leg.br/transparencia/dados-abertos/dados-abertos-legislativo/webservices/deputados/obterdeputados
Url to the mentioned example:
FÁBIO FARIA
It is also possible to take detailed information about this deputes using the following url:
http://www.camara.leg.br/SitCamaraWS/Deputados.asmx/ObterDetalhesDeputado
The returned data is:
email 	String 	Email do parlamentar
nomeProfissao 	String 	Profissão do parlamentar
dataNascimento 	String 	Data de nascimento
dataFalecimento 	String 	Data de falecimento
ufRepresentacaoAtual 	String 	UF da representação parlamentar
situacaoNaLegislaturaAtual 	string 	Situação do parlamentar na legislatura (Em exercício, Licenciado, Afastado, Vacância e Suplência)
ideCadastro 		Identificado único do parlamentar
nomeParlamentarAtual 		Nome parlamentar
nomeCivil 		Nome Civil
sexo 		Sexo
partidoAtual 		LIST
gabinete 		LIST
comissoes 		LIST<comissao>
cargosComissoes 		LIST<cargoComissoes>
periodosExercicio 		LIST<periodoExercicio>
historicoNomeParlamentar 		LIST
filiacoesPartidarias 		LIST<filiacaoPartidaria>
historicoLider 		LIST<itemHistoricoLider>

Could we start from here?

Hi @silviodc — many thanks for your interest.
However your proposal is only focused on the Chamber of Deputies (not all politicians as asked by @irio) and, even more restrict, only covering the deputies in charge (from the link you sent: Retorna os deputados em exercício na Câmara dos Deputados).
What we are looking for in this issue is data about all politicians: posts they had before getting into the Chamber of Deputies as well as where they headed afterwards, for example.
Maybe with this API you can contribute/enhance other parts os the project, such as the scripts that scrap politicians full name, for example.

Hi @cuducos.
Yes, I have started it. I have a Jupyter notebook that download candidacies data from TSE and import to pandas setting the correct header. They have three different versions for the headers. For the moment, we have a list of all candidates from 2004 to 2016 with useful information like if the politician was elected or not.
TSE informs that they are replacing the files from 1994 to 2002. Indeed, some of these files do not follow the format described in their pdf. For the year before 1994, they have no information about the politicians.
Yes, we could do something together. What is the proper way to share my code with you? That may sound strange, but I have been working alone for years and all this github stuff is new for me. I am sure you can help me :)

Hi @rafonseca, good, let's use TSE database (!).
see in the TSE zip file  the LEIAME.pdf, with instructions about  each range of years...
See my post above, no need of statistical analysis (Pandas), the data are reliable. What we need is to join all CSVs data, and filter it with standard SQL DISTINCT.
About Github stuff, you have a login, it is a first step (!), goo to https://github.com/rafonseca?tab=repositories and click in the green big button  "NEW".

Hi @ppKrauss  and @cuducos.
For the moment, I created a new repository in my account called tse-data and I put the notebook there. Maybe I should have created a branch on my fork of serenata ? Anyway, for now you can see what I did on the notebook.
@ppKrauss, I have used pandas just to import/export csv, join and filter the tables. Sorry, I don't know SQL. I am having problem with the years 2004 and 2008. Need to check it. Maybe SQL can do a better job there?
At the end of the notebook, we have a table similar to that requested by @Irio , but the dates are not so precise.

Hi @rafonseca it is very good that you want to contribute!

What is the proper way to share my code with you?

Though a branch on the fork of the project would sound ideal, you can always link the code you have on your repo here in the comment and move that code to a branch later (specially if you want to make a PR \o/)

What we need is to join all CSVs data, and filter it with standard SQL DISTINCT.

You don't exactly need SQL to do what @ppKrauss suggested, pandas should be enough to achieve that goal, I know I had to do similar csv operations and it worked just fine for me ;)

I am having problem with the years 2004 and 2008

maybe you could explain a little bit more about the problem that you are having?

Hi @jtemporal
wow, we can link the code here and it displays the notebook. Wonderful! Thanks. I really needed this information.
About the years 2004 and 2008, I have just checked. It is not a big issue. Just need to convert some '#NI#' to NaN if I want those columns to be int.

You don't necessarily need SQL to do what @ppKrauss suggested, pandas should be enough to achieve that goal, I know I had to do similar csv operations and it worked just fine for me ;

I think @ppKrauss was merely using DISTINCT to express his idea, not to point us towards SQL. Anyway I'm still not sure about the benefits of something in the lines of SELECT DISTINCT field11 as name, field14 as cpf — for me the point is to have information about the political career of each politician, so it's totally fine to have more than one line per name and cpf (just check @Irio's example, all these lines are from the same politician). Can you clarify that, @ppKrauss? It's not useful to have all candidacies of all years, but the info about when each politician was in the office, and where (which office).
@rafonseca — I think @jtemporal already gave you some tips. Now you can link to your notebook/repo and raise specific doubts ; ) We're here to help you!
Many thanks you all

Hi all, thanks @cuducos, @jtemporal  and @rafonseca.
Summary: let's get all <name,cpf> first, I can help @rafonseca  at his tse-data project.

Answering in detail:

yes @jtemporal  and  @cuducos the SQL here is only a  jargon to express the ideia.

about clarify request of @cuducos, "It's not useful to have all candidacies of all years, but the info about when each politician was in the office, and where". My view is that the best is normalized data,

name (full name) and CPF fields (simple <name,cpf> table), are central to define unically the public identity of Brazilian people. This table can be maintained by a little  "consortiun of projects", and I can collaborate as OKBR member. PS: the CPF in this case is a public ID, no problem about "transparent ID". This table also need, perhaps, "source of information" and "last updated in the source" fields.

other fields can be maintained into a JSON field (I am using  PostgreSQL9.5+ with  JSONb)... Or separate CSV file (or SQL table) normalized by CPF9 (CPF can be casted to a long integer ID using first 9-digits), to not repeat full name and associated fields. Imagining <cpf, position, place, inauguration, ending> as @Irio's illustration.

(next discusstion after get data) ideal database or format?  Example: LexML  (an ePING standard) use URN LEX... The "jurisdiction fragment" is a goot transparent ID for place field. Instead to use IBGE opaque IDs, we can adopt LexML transparent ones. "Federal"=br, "Estadual, SP"=br;sp or br.sao.paulo, and  "municipal, de Campinas"=br;sp;campinas.

(for future) the @vitorbaptista suggestion is good... Perhaps we can collaborate with everypolitician.org/brazil database, exporting our data to there.  Here and at  Popolo's classes and properties a good structure specification... My only objection, as comment above, is about UUID use,  is better to use CPF=vatID (or a transparent ID convention)... As collective we can discuss about IDs there.

... Seems complex? let's start with hands-on at @rafonseca's repo... And back to the discusion here with something simple and concrete.

Hey guys, the notebook is updated here Wow!
The first time you run it, you'll want to run all cells. The next time you skip the download and the unzip part. From all the columns provided, I selected (in sel_columns) 12 to stay with a reasonable csv file size. But it is easy to select more columns. Just uncomment there.
On python 2.7, I cannot export to csv using compression and encoding together. So, actually, I didnt try to export.
At section 'only elected politicians', I filtered the dataframe to obtain only elected politicians and the essential columns. Take a look in the last cell.

Hi @rafonseca , my suggestion of first-step is to create all basic CSV (filtered) files, that is, all  <name,cpf> tables, one for each year... See this example at datapackage-viewer.

Hello @cuducos, @jtemporal, @ppKrauss and other passing by!
First of all, it seems it is missing a point in this discussion. @ppKrauss is pointing us to a robust database of politicians to be used outside Serenata while others like me are thinking in a solution to use inside Serenata. That's why there are divergences about how the database should be structured. I have limited time, and so, I will restrict my collaboration to Serenata project.
I updated the notebook again. The purpose of this notebook is to generate TSE_politicians.csv and TSE_candidacies.csv. I restricted the columns to the following informations: CPF, name, function, city, state, year. TSE_politicians is a subset of TSE_candidacies based on the column DESC_SIT_TOT_TURNO. The filtering that defines the subset need some improvements. For example, I dont know if 'SUPLENTE' should always be included in TSE_politicians.
@Irio, do you think is useful to have both datasets, considering that one is a subset of the other?
@ppKrauss, at the end of this notebook I've included some lines that generate the csv files, one for each year, as you have requested.
In the near future, I intend to transform the notebook in a proper script following the coding guidelines, but I need to install python 3 before. I have some projects running on python 2 and I am afraid of causing conflicts...

Hi all, this is a first draft, I will publish with all data at git in the next week.
TSE-candidatos data analysis
There are 3.5 million (3520846) of CSV rows to be checked over uniqueness of person, it is expected that records are repeated for each election year.

all (100%) have name (full name) valid property.
59% (2081277 rows) have birthDate valid property.
43% (1523871 rows) have vatID (Brazilian CPF) valid property.

Profile of the CSV files:

There are 310 source files consulta_cand*.txt (state and year), and the its fields are not uniform.

Supposing uniformity, the relevant fields are at positions 3, 6, 11, 14 and 27 (from 1), and secondary positions 15, 28 and 31. Supposing corresponds respectivally to fields (of the LEIAME.PDF documentation) ANO_ELEICAO,SIGLA_UF,NOME_CANDIDATO,CPF_CANDIDATO,DATA_NASCIMENTO,  NOME_URNA_CANDIDATO,NUM_TITULO_ELEITORAL_CANDIDATO,SEXO.

Supposing "newer is better", so, when repeat we can select only the last version.

I am using pure SQL... After import all CSV lines to one table, filtering the  rows with  valid name, valid birth and valid CPF-checksum, removing duplicates, remains 1538241 rows:

89% (1375305 rows) have distinct names;
... There are some little of names with problems, as  "0DÁRICO", "0SEAS", and "ABRRAÃO".
89% (1375973 rows) have distinct CPFs (remained 11% of 135485 rows are repeated CPF for distinct name-birth);
~1% (14270 rows) have empty CPF;
~100 rows  have two or more distinct CPFs to the same name and same birth date.
... Grouping by CPF: there are 21 cases of "CPF<PHONE_NUMBER>9" (invalid but a lie approved by TSE), some with more than 5 repetitions (eg. CPFs<PHONE_NUMBER>9  and<PHONE_NUMBER>3), 859 cases with more tham 3 repetitions, 11419 cases with more tham 2 repetitions.

Commom examples of same person with two names:

ortographic error: Marli and Marly, both with birth date 1965-12-27 and CPF<PHONE_NUMBER>2. DELIZOM and DELIZON (CPF<PHONE_NUMBER>7), JOSE and JOSÉ (CPF<PHONE_NUMBER>9), etc.

Real change of name (eg. after marriage): "MARIA DO CARMO PRATES COSTA" and "MARIA DO CARMO PRATES MARQUES", both 1965-03-09 and CPF<PHONE_NUMBER>2.

The homonyms:

Main examples: "MARIA APARECIDA DA SILVA" (259), "MARIA JOSE DA SILVA" and "MARIA APARECIDA DOS SANTOS".

Same name and same birthDate: very rare, but not impossible. MARIA APARECIDA DA SILVA  of 1975-08-01, CPFs<PHONE_NUMBER>0 and<PHONE_NUMBER>2.

There are also cases of same  name, but less frequent name. Example to check perhaps is a father-and-son case, both "ABISAI DE OLIVEIRA SOUSA", "Vereador" at MA cities in 2016, supposed junior and  supposed older akin.

That's indeed a good overview of data.
Feel free to open a PR with a notebook exploring that and/or a script collecting this data — that would be awesome ; )

Just a friendly reminder:

I will publish with all data at git

Just a reminder: as stated in our CONTRIBUTING.md we do commit datasets to the git repository. What we do is add the script that gathers data to the repo (at src/), ok?

Hi @cuducos , it is a first proposal of OKBR-Serenata work for a commom  back-end. The repo is under construction, here.

Hi @cuducos,
I did a PR for the tse data collect script. Sorry for the delay. I have been busy last weeks.

Closed by #208


NestedRouter docs are misleading

You can't use a NestedRouter inside a Router because, as in the readme example, at route /app/dashboard the parentLocation will be /dashboard but the nestedBase will be /app/dashboard leading to the component always returning null. The readme is out of sync with the linked codesandbox which seems to indicate this. Is there a way to achieve multiple levels of nested routes? I can't seem to achieve this with the demo.

@justin-hackin Can you provide a code example/sandbox link? I think you have the parentLocation and nestedBased swapped. Here's what I see when I log those values in the example:

Thank you for reporting this. The docs have been updated: https://github.com/molefrog/wouter/tree/main#are-relative-routes-and-links-supported
The current recipe for route nesting isn't ideal, but I'm working on a newer nesting spec for v3 that will not require parent prop and will support dynamic nesting, e.g. nesting "/users/:id"


CellMeasurer optimizations

Hey, I have seen you did a great job already. I am now about to drop my own custom implementation of the measurer and port everything to the latest react-virtualized.
A few things I noticed are not good enough for my use case:
Row height caching.
Current row height caching is done using the index. However in my case, it is not possible to cache by index, I need a different caching mechanism based on custom id's.
Row element caching.
Currently you create a row element twice, once for measuring, once for representation. I can introduce a caching in the user code, so element creation happens only once, however you might want to solve this in the library.

Hey @kof,
Not sure how I could accommodate cache-by-id, since react-virtualized doesn't know anything about the underlying data (only that there's a collection of N items). Do you have a proposal in mind? Let's chat about it. :)
I understand the appeal of managing row-element caching in the base library, but I'm not sure how it would be possible given the HOC approach of CellMeasurer. Again I would be open to suggestions here, but at least caching in user land is an option for the time being. :)

One option is to provide a callback to the user which can return the key for caching.
Row height caching in the user land is bit dirty right now, because there is no param for turning off the index based caching. One needs to call reset methods before every getRowHeight call.

Element and size caching can be basically done in one caching logic and it is not very hard to do in user land anyways. So probably giving away that responsibility is not bad.

One more option is to provide a separate HOC for caching, make it based on indexes by default, make this HOC cache elements and heights.

Row height caching in the user land is bit dirty right now, because there is no param for turning off the index based caching. One needs to call reset methods before every getRowHeight call.

This hints at a problem though. You're implying that your underlying data (the ids) are not tied to index- and that the height varies per id. These 2 things would cause problems with react-virtualized since cell size (for a given index) is important.
That being said, react-virtualized is quick to recalculate its layout. The slow part is the rendering of a cell to measure its size. So if you were caching renders cells (based on id) in user land, and you had a way to map index-to-id, then I'd think you should be able to tell react-virtualized to clear its cache without a significant performance hit (since the next set of measurements would be taken from your user land cache).

Another reason I shy away from caching the result of render operations is that it's unclear when I should purge the cache, which can lead to memory bloat. I think that's something that varies per-application, so it's another reason to leave it in user land.

Yep, I agree, it may not fit all use cases and may need different caching strategies. So best thing would be to leave cache out of the library completely or make caching a separate optional HOC.

I like HOCs (obviously 😄 ) so I like that general idea.
Okay, so... I think we're settling on the fact that rendered-cell caching stays in user land (possibly with a HOC to help simplify it). But let's talk more about this row-height issue.
Can you explain to me why your data (ids) are shifting around within your collection (indexes)?
Also, if you were to be managing rendered-content-caching in user-land, then would that alleviate your performance concerns about CellMeasurer rendering you once for height and Grid (or whatever) rendering "again" for display? (Since the second render would be cached?)
You would still need to inform both that the underlying data (and thus the related cell sizes) may have changed though. (Grid has a method recomputeGridSize  for this and CellMeasurer passes similar functions resetMeasurementForColumn  and resetMeasurementForRow  to its child function.

Can you explain to me why your data (ids) are shifting around within your collection (indexes)?

My application is a chat with last-to-first message scrolling (reverse order). When I scroll back, index 0 becomes a different message than it was before.

Also, if you were to be managing rendered-content-caching in user-land, then would that alleviate your performance concerns about CellMeasurer rendering you once for height and Grid (or whatever) rendering "again" for display? (Since the second render would be cached?)

CellMeasurer would still mount the element to the dom and detect height/width on it using DOM properties. This is still dangerous because we never know when they might hit our performance, the only way is to ensure to touch dom as rare as possible.

Ah, gotcha. Reverse order scrolling. Makes sense. :D
Roger that about the mounting/layout hit. Okay. So let's talk about the interface to this cache. Currently, CellMeasurer just keeps an object that maps column and row indices to cached sizes. I could imagine this being moved into a caching util that could be overridden via a prop. Maybe something with an interface like...
interface CellMeasurerCache {
  clearAllColumnWidths(): void;
  clearAllRowHeights(): void;
  clearColumnWidth(index: Number): void;
  clearRowHeight(index: Number): void;
  getColumnWidth(): Boolean;
  getRowHeight(): Boolean;
  hasColumnWidth(): Number;
  hasRowHeight(): Number;
  setColumnWidth(value: Number): void;
  setRowHeight(value: Number): void;
}

Do you think we could have a caching interface for both, elements and height?

For elements it would need to be a component, because it will need to do shallowEqual of data.

In your interface example you have a typo with types.

Do you think we could have a caching interface for both, elements and height?

I thought we agreed to leave caching elements in user land (for the time being)? Since cache invalidation / expiration is kind of tricky to implement in the lib.

Although I assume your CellMeasurerCache implementation could also cache rendered cells.

I thought we agreed to leave caching elements in user land (for the time being)? Since cache invalidation / expiration is kind of tricky to implement in the lib.

I thought we were talking about both, heights caching and elements caching are equally tricky. So when we are able to create a good interface for both and have an optional class handling it - why not.

Although I assume your CellMeasurerCache implementation could also cache rendered cells.

Yes it does it already. I am just trying to simplify the whole thing when it is possible, because the logic for caching heights and elements seems to be mostly the same.

What if we reduce the caching interface to something minimal and universal for any data?

I thought we agreed to leave caching elements in user land (for the time being)? Since cache invalidation / expiration is kind of tricky to implement in the lib.
I thought we were talking about both, heights caching and elements caching are equally tricky. So when we are able to create a good interface for both and have an optional class handling it - why not.

They aren't equally tricky, actually. Caching numbers is a pretty lightweight thing. Caching rendered React elements would cause memory usage to climb much faster. (Basically the "expiration" problem.)

Although I assume your CellMeasurerCache implementation could also cache rendered cells.
Yes it does it already. I am just trying to simplify the whole thing if it is possible, because the logic for caching heights and elements seems to be mostly the same.

I think this is a reasonable thing to leave in user land. No reason you couldn't cache both with the same object, but I don't think I want to make it an official part of the interface. I don't think it's complex enough to need its own HOC anyway. It would just be a getter function and a map of index (or id, or whatever) to rendered object, right?

What if we reduce the caching interface to something minimal and universal for any data?

I think that would make it a bit harder to work with. For example, if it's a generic caching util, it would have an interface more like this:
interface Cache {
  clearAll(): void;
  clear(id: any): void;
  get(id: any): Number;
  has(id: any): Boolean;
  set(id: any, value: Number): void;
}

But at this point you wouldn't be able to use the same object to cache columns and rows. You'd have to have 2 (and a 3rd to cache rendered cells). Seems like this would make things more complicated on end users.

They aren't equally tricky, actually. Caching numbers is a pretty lightweight thing. Caching rendered React elements would cause memory usage to climb much faster. (Basically the "expiration" problem.)

This is right. However if it is all replaceable, shouldn't be a big deal once it is a problem. If your concern is to cache elements by default in the lib - you could make it optional and false by default.

But at this point you wouldn't be able to use the same object to cache columns and rows.

Yep, you would need a cache instance per use case. I am not sure this is less nicer. The interface itself is nicer, because simpler names and less methods. When user doesn't want to have a custom caching implementation, library creates the cache object automatically, user doesn't need to do anything.
In the rare case where user wants to have a custom caching logic like me, he created an own caching class, now he will need to create 2-3 instances of it and pass them to proper component. It looks actually very nice to me, based on imagination)

I still prefer the simplicity of a single cache (mentioned here) for cell sizes. I think it fits better within the rest of the Api.
I think it's reasonable to leave rendered-cell-contents entirely in user land. I don't see a need for an explicit interface for this. There's only 1 connection point (the cellRenderer method itself, a getter). Given that the default behavior is (and would continue to be) no-caching* then I don't think there would be any additional methods to add.

Grid does temporarily cache cells when a user is scrolling. This cache is immediately flushed once scrolling stops though. This helps when performance is most needed without introducing any tricky expiration problems. (I purge the cache once the scroll is complete each time, so I don't have to worry about a growing memory footprint.)

All right then, maybe my suggestions are over engineered, maybe it is enough to just make the heights caching optional in CellMeasurer.

Didn't mean to suggest they were over-engineered. I think you're focused on an application usage and I'm trying to think generically of library usage. We're just looking at it from different angles. :)
I am okay with adding a cache interface for cell sizes. Hopefully that will enable performance wins for your user case. :)

Just found the real bottleneck, I was measuring performance of the entire _measureCell call, which is pretty bad in my case. I was thinking it is the element creation step, but it turns out it is the renderSubtreeIntoContainer call.
renderRow: 0.292ms
renderSubtree: 17.716ms

Good to know. Caching heights will help a lot with this then, even if you didn't cache rendered rows. :)

My problem is even worth, it is too slow on initial render, it spends 20-50ms on every message, after rendering 30, the slowness to beg for the ux.

Ah, worse? Hm. Any other ideas?

Trying to find a way to not just reuse the element, but to reuse the whole mounted thing, so that there is almost no overhead for cell measuring.

Hm... this cache interface could actually provide an escape hatch to break out of the React ecosystem entirely... if your content is just text, you could use a single hidden/offscreen container to render into and measure...

Essentially you could just return true every time for hasColumnWidth and hasRowHeight and when asked for them, do a JIT render to this single, re-usable, offscreen container.
This would bypass most of the CellMeasurer really but... maybe it would help?

This sounds pretty hacky though. :/ Just tossing out some ideas.

Wouldn't help in my case, because the row is a complex dom structure, rendering it without react would be tricky.

Ah, gotcha.

One way is to get the dom snippet after react did render it and insert that dom snippet into the new place.

Is it the call to unstable_renderSubtreeIntoContainer and the subsequent unmountComponentAtNode that's slow? (Could we improve things by not mounting-and-unmounting between measurements?

unstable_renderSubtreeIntoContainer itself is slow.

Some bench samples:
renderRow: 2.481ms
CellMeasurer.js:237 renderSubtree: 43.706ms
CellMeasurer.js:246 unmountComponentAtNode: 1.465ms
CellMeasurer.js:224 renderRow: 0.618ms
CellMeasurer.js:237 renderSubtree: 16.514ms
CellMeasurer.js:246 unmountComponentAtNode: 3.390ms
CellMeasurer.js:224 renderRow: 0.504ms
CellMeasurer.js:237 renderSubtree: 21.071ms
CellMeasurer.js:246 unmountComponentAtNode: 2.768ms

Just tried to remove unmountComponentAtNode just to see whats happens. Numbers became just fine, but measurements are messed up, digging into it.
CellMeasurer.js:224 renderRow: 0.231ms
CellMeasurer.js:237 renderSubtree: 0.061ms
CellMeasurer.js:224 renderRow: 0.232ms
CellMeasurer.js:237 renderSubtree: 0.064ms
CellMeasurer.js:224 renderRow: 0.234ms
CellMeasurer.js:237 renderSubtree: 0.059ms
CellMeasurer.js:224 renderRow: 0.196ms
CellMeasurer.js:237 renderSubtree: 0.062ms

Great! I'm at work at the moment so I'm not able to dig in much. Keep me posted! 👍

The slowest part is ReactCompositeComponent.mountComponent. I found one specific component in my case which is very slow.

Still keep me posted, b'c I'm interested in any additional perf gains we can get with this component.
But I think the caching interface we described above would still help with your case (although it may not be enough by itself to get perf where you want it to be). But it still seems like an improvement. So for the time being, I'll move forward with that change (once I get the chance that is).

Is there any reason for not using shallowEqual in CellMeasurer?

Oh! Looks like an oversight. I can fix that while I'm in here too.

Added in 0678d20. Going to try to finish #342 and then push both out as version 7.19.0.

7.19.0 just released. Enjoy!

using the new cache interface now, works as expected.

Using a FIFO cache for elements and heights ... not sure if it is the best but works for me so far.

Sweet! Great to hear. :)
Reversed list for chat interfaces is a pretty common request. So I'm glad to hear it's viable to do in a performant way. If you feel like sharing back any of your setup (via a recipe or something) let me know and I could add it to the docs to point others at.

Certainly. If you find the time though, and are willing, I'd be happy to help clean it up or anything required. I bet what you're doing now is probably superior to the little chat example I have in playground. It's not something I've ever needed to do in an actual app (yet) so I haven't spent much time on it. :)

Lets see where it goes, https://github.com/facebook/react/issues/7460 maybe you can add something.

For the time being, I am thinking of something that ovoids the mounting overhead by mounting and empty div and simply doing appendChild of the rendered container. I need to test if this can be done.

Good React issue. Subscribed for updates.

Got another idea how to optimize it: what if we render the row for measuring in the right parent from the beginning, but position it somewhere far away from user. (top: -1000000000px; )
Then once the row is needed for visual rendering we just change it's position. No reparenting, no rerendering.

I wouldn't even know where to start to make it work this way ... seems like it would need adjustments in Grid.js or even be entirely built in to grid

I briefly considered the same approach, but we couldn't just leave the rendered/measured row lying around in the DOM, even if hidden, b'c (1) CellMeasurer and Grid aren't meant to be tightly and (2) the use-case where a user either quickly scrolls or programmatically jumps to a row in the middle/end of a list (we couldn't just render N cells and leave them hanging out there indefinitely).

Not saying there isn't potential with the idea. A clean solution didn't occur to me when I was thinking about it though.

So the problem is how to clean up the measured rows if they are not needed for visual rendering?

Well, that's a problem. The other is how to coordinate this kind of hand-off between CellMeasurer and Grid.

There might be a way to decouple those 2 also in this approach, will need some grid modifications though.

I'll admit up front that I'm reluctant to modify Grid for this.

And I know why)))) Grid code is way too complex....

The amount of performance tuning and edge-case handling that's gone into it is more complicated than you'd expect.

I don't know if I'd call it "too complex".

I didn't add features or code just for the fun of it.

Too complex means for me that understanding of that code is very hard.

Haha, gotcha. 😁 No worries. It is also sometimes hard for me to understand if I haven't looked at it in a while. That's why I write so many tests and inline comments.

From what I can see, modification in Grid would need allow having "ghost" cells, which are visually hidden and are ignored by auto positioning in the grid.
Every row can be wrapped into a CellMeasurer HOC. CellMeasurer measures it's, then tells the  grid (not sure how) that the row is measured now and can be used.
Once Grid knows that a cell can be used, it uses it. If he doesn't need to render that cell because (like you say) it's been scrolled away or jumped, it removes the ghost cell.

Unfortunately I don't have the bandwidth for any refactoring approaching the scale of what would be required to try out this idea.

I have been also trying to do the following approach:

wrap every row in a CachedRenderer HOC
once it is rendered clone the dom (node.cloneNode(true))
once it is rendered again and we have a clone, don't render children, render only wrapper, insert cloned children directly via dom.

There is one problem though ... events handling doesn't work. Didn't find a way to reactivate events handling on manually inserted dom nodes.

Hm. Afraid I don't have any experience in that area (working with cloned elements) so I'm not of any help.

Oh of course it won't work, handlers are registered once it's been measured, after that it was unmounted. In the second render, I don't do any createElement calls with handlers ... #selfrealized

Thanks, @bvaughn and @kof for the discussion in this thread, it has enabled me and my team to get a solution for a very similar problem we were having. I have a notification component that is displayed in reverse chronological order, where each notification has a unique height that is fixed through its lifetime, mounted inside a parent that can filter and reorder the collection. I needed a way to get the cache to work off a unique ID inside the data entity instead of the rowIndex, and making my own cache did the trick!
I figured I would post my solution here since @bvaughn asked for an example in https://github.com/bvaughn/react-virtualized/issues/341#issuecomment-238626868. I broke this out into a wrapper component and a cache and I will give you what the invocation looks like at the callsite too.
Here's the first part, IdCellSizeCache.js
export default class IdCellSizeCache {
  constructor(baseCollection, lookupFn) {
    this.baseCollection = baseCollection;
    this.lookupFn = lookupFn.bind(this);
    this.rowHeightCache = {};
    this.columnWidthCache = {};
  }

  /*
   * new methods
   */
  updateCollection(newCollection) { this.baseCollection = newCollection; }
  getId(index) { return this.lookupFn(this.baseCollection, index); }

  /*
   * required methods
   */
  clearAllColumnWidths() { this.columnWidthCache = {}; }
  clearAllRowHeights() { this.rowHeightCache = {}; }
  clearColumnWidth(index) { delete this.columnWidthCache[this.getId(index)]; }
  clearRowHeight(index) { delete this.rowHeightCache[this.getId(index)]; }
  getColumnWidth(index) { return this.columnWidthCache[this.getId(index)]; }
  getRowHeight(index) { return this.rowHeightCache[this.getId(index)]; }
  hasColumnWidth(index) { return this.columnWidthCache[this.getId(index)] >= 0; }
  hasRowHeight(index) { return this.rowHeightCache[this.getId(index)] >= 0; }
  setColumnWidth(index, value) { this.columnWidthCache[this.getId(index)] = value; }
  setRowHeight(index, value) { this.rowHeightCache[this.getId(index)] = value; }
}

the wrapper component, called VariableHeightList.jsx
import React from 'react';
import Immutable from 'immutable';
import { AutoSizer, CellMeasurer, VirtualScroll } from 'react-virtualized';

import IdCellSizeCache from './IdCellSizeCache';

export default class VariableHeightList extends React.Component {
  static propTypes = {
    /**
     * The collection that the list will be based off of
     */
    baseCollection: React.PropTypes.oneOfType([
      React.PropTypes.instanceOf(Immutable.Map),
      React.PropTypes.instanceOf(Immutable.List),
    ]).isRequired,

    /*
     * The function used to map indexes to collection ids
     * the signature should be (baseCollection, index) -> unique collection item id
     */
    idLookupFunction: React.PropTypes.func.isRequired,

    /*
     * The index -> element function used to measure and render the list items
     */
    elementGenerator: React.PropTypes.element.isRequired,
  };

  constructor(props) {
    super(props);
    const { baseCollection, idLookupFunction } = props;
    this.SizeCache = new IdCellSizeCache(baseCollection, idLookupFunction);
  }

  componentWillReceiveProps(nextProps) {
    // use strict equality checking (shallow compare) to determine whether the
    // cache needs a new index -> id map
    if (this.props.baseCollection !== nextProps.baseCollection) {
      this.SizeCache.updateCollection(nextProps.baseCollection);
    }
  }

  render() {
    const { elementGenerator, baseCollection } = this.props;
    const elementCount = baseCollection.count();

    return (
      <AutoSizer>
        {({ height, width }) => (
          <CellMeasurer
            cellRenderer={({ rowIndex }) => elementGenerator(rowIndex)}
            cellSizeCache={this.SizeCache}
            columnCount={1}
            rowCount={elementCount}
            width={width}
          >
            {({ getRowHeight }) => (
              <VirtualScroll
                height={height}
                rowCount={elementCount}
                rowHeight={getRowHeight}
                rowRenderer={({ index }) => elementGenerator(index)}
                width={width}
              />
            )}
          </CellMeasurer>
        )}
      </AutoSizer>
    );
  }
}

and here's what the callsite looks like
      <VariableHeightList
        baseCollection={notifications}
        idLookupFunction={(cacheNotifications, index) => (
          cacheNotifications.getIn([index, 'noteId'])
        )}
        elementGenerator={index => (
          <Notification
            key={`${index}-${notifications.getIn([index, 'noteId'])}`}
            notification={notifications.get(index)}
          />
        )}
      />

Great work with react-virtualized, too @bvaughn, we were in quite the pickle when we realized that Facebook's fixed-data-table component was being dumped but we switched and realized we could virtualize way more stuff in our application than we even thought, and this has been a huge boon to our optimization process.

If your company makes some profit, try to convince your boss to become a sponsor or baker. @bvaughn totally earned it. I have tried too, but my company is currently in a shift between seed and A-round and tries to stretch the money until then ...

Hopefully by the time this gets out and starts making money we can have a little bit to put back into the community that has enabled us to put our system together. React people all do such great work, its a very enjoyable community to watch and work with.

Oh, and one more thing @bvaughn, most of the actual virtualized code is lifted straight from the wizard on the excellent documentation, but one thing I did notice is that the CellMeasurer and VirtualScroll functions were not wrapped in {} and it took me a few minutes of scratching my head before i noticed it.

D'oh! Thanks for pointing that out @rexmondo. I'll update the wizard this afternoon. :)
I'm glad to hear it's useful for people. Put it together on a whim. Haven't used it myself yet. :D
Thanks for the kind words (both of you) and for sharing your approach too. Really cool to see!

@bvaughn how about using canvas api to measure the pixel size of text (or at least provide an option to the user to specify something like a measurer function)?
sure, we would need to know the font face, font size, etc, but it would be much more performant than using the DOM
I've done it before manually (that project didn't even use react at all), and I've seen an amazing performance improvement over any DOM based solution

There's nothing preventing you from doing this instead of using CellMeasurer. There's not a lot of react-virtualized-specific magic in CellMeasurer other than this and this but that would be easy enough to do in a custom measuring component. And if you think the custom measuring component is generically useful enough, submit it as a PR! 😄

😃  good point! thanks for a quick response) this project is awesome, btw

Thank you~


chore: improve webhook sig verification log msgs

0 of 0 apps with changes compared to live state
2:26PM UTC, 25 Jan 2024


Update sbt to 1.5.2

Updates org.scala-sbt:sbt from 1.2.8 to 1.5.2.
GitHub Release Notes - Version Diff
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.scala-sbt", artifactId = "sbt" } ]

labels: library-update, semver-minor

Superseded by #74.


Listeners are not stopped when Junit5-Test-Extension shuts down Spring

Hi,
When the JUnit5-Extension if used with Spring, it seems that registered RabbitListener are not shutdown, even if all the after... methods of the extension are called.
So when running a JUnit5-Test with Spring, and then stopping in another Test (e.g. Breakpoint), the connections to Rabbit from the first test are still open.
I expect, that on shutting down the Test, also the Listeners goes down.
cheers

Right, the application context is cached, in case you want to use the same context in other test cases, adding @DirtiesContext at the class level will shut down the context after all the tests in the class have completed.

What I actually ment is, that the Listener lives longer than the Test-Class.
I reproduces the behavior with
https://github.com/guenhter/spring-rabbit-test-closing-bug
Don't forget to start a rabbitmq instance before running the tests.
There, two tests are contained: Test1, Test2. Both do exaclty the same:

sending 1000 messages to rabbit
receiving those messages and assert that
** it are 1000
** the prefix is correct (test dependent prefix)

Running the tests individually works fine, but running both tests in one run, the second one fails, because there is still a Listener from the first Test-Class active.

It's also good practice to use different queues for each test, to further isolate them.
Also, consider using the @RabbitAvailable annotation with the queue - it uses the JUnit5 RabbitAvailableCondition - which will ensure the queue is empty before the test starts (and create it if necessary) and will delete it when the tests complete.

Thanks. And yes, I'll use Stackoverflow in the future at first.


IOS-5819 Return terra token

https://github.com/tangem/blockchain-sdk-swift/compare/develop-462...develop-462-hotfix-1

👍


ITAB Aggregation

I have the issue with ITAB Aggregation. I provided a solution, but I get a lot of unknown type errors.

Please scroll the image all the way to the right to see the errors.
Locally on my environment the code works well.
METHOD perform_aggregation.

     aggregated_data = REDUCE aggregated_data(
                         INIT aggregated = VALUE aggregated_data(  )
                              data = VALUE aggregated_data_type(  )
                         FOR GROUPS <group_key> OF <wa> IN initial_numbers
                           GROUP BY <wa>-group ASCENDING
                         NEXT data = VALUE #(
                                group = <group_key>
                                count = REDUCE i( INIT count = 0
                                        FOR m IN GROUP <group_key>
                                        NEXT count += 1 )
                                sum = REDUCE i( INIT sum = 0
                                        FOR m IN GROUP <group_key>
                                        NEXT sum += m-number )
                                max = REDUCE i( INIT max = 0
                                        FOR m IN GROUP <group_key>
                                        NEXT max = nmax( val1 = max
                                                         val2 = m-number ) )
                                min = REDUCE i( INIT min =<PHONE_NUMBER>
                                        FOR m IN GROUP <group_key>
                                        NEXT min = nmin( val1 = min
                                                         val2 = m-number ) )
                                average = data-sum / data-count )
                              aggregated = VALUE #( BASE aggregated ( data ) ) ).

  ENDMETHOD.

Thanks for your support.

wip, https://github.com/abaplint/abaplint/pull/2696

I am facing the same issue - Variable Unknown.. Works in Eclipse.

current problem: identical variable names to be handled somehow


Fix query quote char

Add quote chars for queries
Fixes #446

Coverage remained the same at ?% when pulling 898634063af4d9f9798b1e885b2adb927b011f8e on Shawe82:fix/query-quote-char into 26aed4385542c7db44b2c9211c85f8f78521022d on kayak:master.

@mikeengland here I tried to create a fix for the snowflake join quote char issue we've discussed. Have another option in mind if this one doesn't fit.


Using docker compose example on production website has spelling error in property

Hello,
I was using the docker compose example on Using docker compose from the website, and there is an alternative configuration that uses environment variables to declare the mail server settings. I noticed that while attempting to configure it, that environment is spelled environemnt in your example compose.

I am not sure if this is an appropriate place to submit an issue regarding the official website, however as I didn't see any direct dependencies in the repository itself that lines up with the production site, I figured this is the next best place to mention it.

Hey @kyle-mckay thank you for reporting this, this was the right place! I fixed the typo.


Feature request: add keyword to open all bookmarks in a folder

i.e. using a keyword would load all the bookmarks in a folder in tabs.

Duplicate of Issue #14
I've partially got bookmark folder searching working but have been hitting some snags.
I'll try to return to this later for v1.8.0.


Rerun sample

Description
This PR makes:

minor changes to SICMapper;
Adds new ONS emissions per employee;
Starts to make READMEs nicer 😉

Fixes # (issue)
#75 #77 #76
Instructions for Reviewer
In order to test the code in this PR you need to ...
Please pay special attention to ...
Checklist:

[ ] I have refactored my code out from notebooks/
[ ] I have checked the code runs
[ ] I have tested the code
[ ] I have run pre-commit and addressed any issues not automatically fixed
[ ] I have merged any new changes from dev
[ ] I have documented the code

[ ] Major functions have docstrings
[ ] Appropriate information has been added to READMEs

[ ] I have explained this PR above
[ ] I have requested a code review

So the following succeeds.. so I'm baffled! I'll keep investigating
from dap_prinz_green_jobs.pipeline.green_measures.industries.industries_measures import IndustryMeasures
job_ads = {'id': 1, 'company_name': "fake_company_name", 'job_text': 'We are looking for a software engineer to join our team. We are a fast growing company in the software engineering industry.'}
im = IndustryMeasures()
im.load()
im.get_measures(job_ads)

[{'SIC': '582', 'SIC_name': 'Software publishing', 'SIC_confidence': 0.77, 'SIC_method': 'closest distance', 'INDUSTRY TOTAL GHG EMISSIONS': 46.4, 'INDUSTRY GHG PER UNIT EMISSIONS': 0.01, 'INDUSTRY PROP HOURS GREEN TASKS': 9.700000000000001, 'INDUSTRY PROP WORKERS GREEN TASKS': 43.5, 'INDUSTRY PROP WORKERS 20PERC GREEN TASKS': 23.599999999999998, 'INDUSTRY GHG EMISSIONS PER EMPLOYEE': 0.6, 'INDUSTRY CARBON DIOXIDE EMISSIONS PER EMPLOYEE': 771.2}]

sorry - live reacting. I see it is the skills side of things which is breaking

If I comment out the skills measures it works. I think because the skills classifier was trained using an older sklearn it is incompatible with the new requirements. So I think this PR is fine to merge, but I have opened https://github.com/nestauk/dap_prinz_green_jobs/issues/79 to sort out the sklearn problem (the easiest option may be to train a new model with the new sklearn).
Also pytest fails due to the new numpy version.

@india-kerle Could you address a few minor things in this PR to also fix #79 ? They are only small:
requirements.txt 2 package version edits:
scikit-learn==0.23.2
ojd-daps-skills

and in test_industry_measures.py:
    assert len(industry_measures[0].keys()) == 11
    assert len(industry_measures[3].keys()) == 11

I removed and remade my conda env with the requirements like that and was able to run python dap_prinz_green_jobs/pipeline/ojo_application/extract_green_measures.py --config_name "base" --test_n 10 for all three measures.


upgrade to puppet 3.8.6 and facter 2.4.6

http://docs.puppetlabs.com/puppet/3.8/reference/release_notes.html#puppet-386

abandon. 3.8.6 is only available for windows at the moment. test harness fails with:
ERROR:  Could not find a valid gem 'puppet' (= 3.8.6), here is why:
          Found puppet (3.8.6), but was for platform x64-mingw32
ERROR:  Possible alternatives: puppet


Inquiry Report

Please see the attached file. Inquiry reporting details are presented within.https://app.zenhub.com/files/124335727/e6012754-25f5-4cde-9f7c-ec001caba49b/download

Do we have an icon for the Inquiry Report sidebar button @joesmare ?

We didn't define anything yet. I was thinking of using overlapping talk bubbles indicating two way conversation. I've attached a sample. Jeremy or I can transform it into whatever format you need. Thinking ahead I thought we could use a house for placements, indicating that the child has a new permanent home. Thoughts?

I like the talk bubbles and the house idea for placements - simple and topical.  Based on the icons that are currently being used for child/family matching, it looks like we would want to use a .PNG with a transparent background that's about 113 pixels wide and 90 pixels tall.

I'll have @jeremysMARE produce and send over early next week.

MODIFICATIONS to discuss:
Calendar:
-Can we look for a calendar that allows you to type in the date or modify the current calendar to do so?
-Can we add a button for past fiscal years (Jul 1 -Jun 30)? A minimum of the past two FY
EXPORT DATA
-Add column for sources (our source and user source 'how did you hear about MARE?' data)
-When MARE source isn't listed use free flow text source from user
-Remove spaces in Excel report to allow for meaningful sorting capabilities
PDF EXPORT
-Mirror Excel export fields
**CHILD FIELD
-Can we add a search field for a specific child? This can be accomplished in Keystone, but this report could also be a place to run a child specific report

Remaining tasks per discussion with Joe:

[ ] Add separate columns for Source, Additional Source(s), Intake Source
[ ] Comma separate children and disabilities
[ ] Add buttons to pre-fill previous fiscal years in date range inputs
[ ] Add search input field for Children

Hello @n-devr . I had Bridget review the updates and she had a few suggested modifications:

Please remove the column in the on-screen return labeled 'Inquiry Method' and replace instead with the inquiry date.  You may leave inquiry method on export.

Can you add legal status to export only?

Child social worker region is missing from the export version.

The left rail that houses the report buttons is taking-up space that could be used for the on-screen return results. I would like to discuss the following two options:
-After you make a report selection the left rail minimizes to the left with a tab to reopen, thereby giving us an extra row or two of space to present the data
-If the first option is too difficult, can we reduce the width of the left rail? There is a lot of white space in the buttons. Perhaps reduce the button size and rail?

OK, thanks @joesmare - 1 through 3 are fairly simple changes that I can tackle next week.  Just for the record, I didn't include SW Region in the exported versions because it wasn't included in the requirements doc.
For #4 - I totally agree that the on-screen results could use more room and are sometimes tough to read, especially when there are a lot of results.  Adjusting the left rail could help reduce the clutter a little bit, but it's a band-aid fix for the larger problem of trying to cram so many results into a page without proper structure.  I strongly recommend that we implement some sort of grid component that can support column resizing, horizontal scrolling, and content formatting at the very least.  If we're going to spend time making the results more readable, we should implement a solution that will address the root cause of the problem rather than addressing the symptoms.  A proper grid will also future-proof the dashboard against views with more data, and allow us to add more columns to existing views without being concerned about compromising legibility.

No worries about the SW piece. Just an oversight that I wanted to note. You are following the direction that is provided. These changes are an evolution of the reporting as we review what we initially staged.
Let’s discuss #4. I like your proposal. It makes more sense to have expandable space.
We can speak on Monday, as planned.
Joseph Sandagato
Director of Communications and Public Relations
Massachusetts Adoption Resource Exchange
[MARE]
We find adoptive homes for children and teens in foster care.
19 Needham Street, Suite 206 | Newton, MA 02461
Telephone:<PHONE_NUMBER> ext. 115
Websitehttp://www.mareinc.org | Facebookhttps://www.facebook.com/massadopt/ | Twitterhttps://twitter.com/massadopt | Instagramhttps://www.instagram.com/massadopt/
From: Noah<EMAIL_ADDRESS>Sent: Saturday, September 28, 2019 10:57 AM
To: mareinc/mare<EMAIL_ADDRESS>Cc: Joseph Sandagato<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [mareinc/mare] Inquiry Report (#307)
OK, thanks @joesmarehttps://github.com/joesmare - 1 through 3 are fairly simple changes that I can tackle next week. Just for the record, I didn't include SW Region in the exported versions because it wasn't included in the requirements doc.
For #4https://github.com/mareinc/mare/issues/4 - I totally agree that the on-screen results could use more room and are sometimes tough to read, especially when there are a lot of results. Adjusting the left rail could help reduce the clutter a little bit, but it's a band-aid fix for the larger problem of trying to cram so many results into a page without proper structure. I strongly recommend that we implement some sort of grid component that can support column resizing, horizontal scrolling, and content formatting at the very least. If we're going to spend time making the results more readable, we should implement a solution that will address the root cause of the problem rather than addressing the symptoms. A proper grid will also future-proof the dashboard against views with more data, and allow us to add more columns to existing views without being concerned about compromising legibility.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/mareinc/mare/issues/307?email_source=notifications&email_token=AJ2DLCTXHC2X3QCJL3ZDOMTQL5WEFA5CNFSM4INENRR2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD723NPA#issuecomment-536196796, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AJ2DLCUQJTMUUPEWQB6HPE3QL5WEFANCNFSM4INENRRQ.

One additional bit of feedback that I've received is with regard to separating the lines of on-screen returns with an alternating color scheme (white/gray or similar) to help with readability. Since we are reworking the section it makes sense to discuss this at the same time.

RE: #4 Let's do the following (pending your investigation of ability to do so):

At home screen present left rail until an action is taken (i.e. click on report). Upon that action have left side rail slide and hide to the left with a tab to retrieve it.
When presenting on-screen report data, alternate colors (zebra stripe) the return for ease of reading
Look for a solution to transition the on-screen return from a table to a grid which will also allow for expandable returns (i.e. a bar to navigate to the right).

This encompasses all of the current demands. I believe that you are breaking this out to a separate story, but I didn't see it staged.

I created #343 to cover the work to be done on the left rail.  My understanding was that you were collecting additional requirements for the grid from the wider team and creating a story to track that effort.


ToDoApp - FullStack - React + SpringBoot

Hi, can i participate?

@Henriquesb-1 Sure

Hi, can you provide the description of issue


Implement Easy Search

http://matteodem.github.io/meteor-easy-search/

Premature, closing for now.


⚠ GreatPosterWall has degraded performance

In a04b8ff, GreatPosterWall ($GPW) experienced degraded performance:

HTTP code: 200
Response time: 8653 ms

Resolved: GreatPosterWall performance has improved in 272fde3.


FIX - Merge from NPD to PRD - Practica_14

FIX - Merge from NPD to PRD - Practica_14

FIX - Merge from NPD to PRD - Practica_14


Typed Builder implementation part 13.7: User documentation of types

[ ] Tests added for any new code
[x] Ran make fmt-fix (or had formatting run automatically on all files edited)
[ ] Documentation added for any new functionality
[ ] Entries added to ./unreleased/ for any new functionality

closes #2002

Does this render to HTML? I tried both sbt doc and Generate Scaladoc from IntelliJ, but it seems not to pick up the package object.

Does this render to HTML? I tried both sbt doc and Generate Scaladoc from IntelliJ, but it seems not to pick up the package object.

It shouldn't be any different than typecomp. Renders just fine for me with IntelliJ, but interestingly, not with sbt doc.

Oh look:
https://github.com/scala/bug/issues/8124

Codecov Report

Merging #2005 (dd97c62) into unstable (d3a7284) will increase coverage by 0.00%.
The diff coverage is n/a.

:exclamation: Current head dd97c62 differs from pull request most recent head 8d968c7. Consider uploading reports for the commit 8d968c7 to get more accurate results

@@            Coverage Diff            @@
##           unstable    #2005   +/-   ##
=========================================
  Coverage     77.83%   77.84%
=========================================
  Files           418      418
  Lines         12824    12824
  Branches        570      570
=========================================
+ Hits           9982     9983    +1
+ Misses         2842     2841    -1

Impacted Files
Coverage Δ

.../scala/at/forsyte/apalache/tla/types/package.scala
100.00% <ø> (ø)

...a/at/forsyte/apalache/tla/lir/TlaLevelFinder.scala
100.00% <0.00%> (+2.63%)
:arrow_up:

Help us with your feedback. Take ten seconds to tell us how you rate us.


bug: blockHash() reverts with error for block.number-1

Bug Report
Kakarot version
v0.9.6

Current behavior

Calculating blockHash for previous block reverts with error:
execution reverted: Provider errror StarknetError(ContractError(ContractErrorData { revert_error: "Error at pc=0:49:\nGot an exception while executing a hint: Execution failed.

Expected behavior

It should return blockhash in bytes32
Steps to reproduce

Copy and paste the following contract in Remix or any contract tooling of your choice:

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

contract TestBlockNumber {

    function getPreviousBlockHash() public  view  returns (bytes32) {
        return blockhash(block.number - 1);
    }

    function getCurrentBlockHash() public view returns (bytes32) {
        return blockhash(block.number);
    }
}

Deploy the contract on kakarot starknet sepolia
Call getCurrentBlockHash() --- it will return valid hash
Call getPreviousBlockHash() --- it will revert with error:

execution reverted: Provider errror StarknetError(ContractError(ContractErrorData { revert_error: "Error at pc=0:49:\nGot an exception while executing a hint: Execution failed.


NSPredicate - Unable to generate SQL for predicate

There is a problem with setPredicate method in SugarRecordFinder where missing quotes symbols causes the app to crash when filtering an entity with by method.
The simple solution is to switch this line (SugarRecordFinder.swift:267)
self.predicate = NSPredicate(format: "\(key) == \(value)")

With this:
self.predicate = NSPredicate(format: "\(key) == '\(value)'")

This problem is mentioned (and solved the same way) here: http://stackoverflow.com/a/7662353/2242359

Pull request has been merged!


Windows CI testing

AppVeyor has been having issues running our CLI-focused tests for several weeks now, so it's been disabled for new PRs. We should look into either fixing that issue, or alternatively using Travis CI's Windows environment to run the CLI-focused tests.

This should be doable once we switch to GitHub Actions.


[Problems Panel] No problems are listed even though the count is shown and no filters (Screenshot)

VSCode Version: 1.52.0-insiders
OS Version: Windows 10

Steps to Reproduce:

Write code with syntax errors
open "Problems" panel

In this screenshot, there are no filters are enabled and problem count is shown to be 19

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

The duplicate tagged by the VS code is not actually a duplicate as that issue applies a filter and that is related to notebook editor

/duplicate
ttps://github.com/microsoft/vscode/issues/110410.


How to convert RefCursor to *sql.Rows

How to convert RefCursor to *sql.Rows

I investigate the code

I cannot convert RefCursor to sqlRows directly because sql.Rows contains hidden members that cannot be reached outside sql packages
I am search for some indirect ways
if you have any suggestion please help

fixed in v2.6.15

can you write in English please

1- There are 2 rows objects one returned from rows, err := conn.Query(sqlText) and other one returned from err = rows.Scan(&cursor) so the result is found in cursor not rows
2- no way to directly convert from RefCursor object into sql.Rows as sql.Rows contain hidden members that can't be reached outside sql package
when I review sql package conversion from RefCursor to sql.Rows is available only from Scan function so you should call Query then Scan.
Get RefCursor as sql.Rows from Exec still not supported in database/sql


document release process

[ ] Latest PDK sync has been applied
[ ] Bump version in metadata.json
[ ] Passing unit tests
[ ] Passing acceptance tests
[ ] Updated REFERENCE.md
[ ] Updated CHANGELOG.md
[ ] Release via Github Actions workflow


Month view is collapsed when there is not any pre-defined event

Hi,
Your calendar is awesome and modern.
But I have a problem with the calendar as it is initially collapsed when there is no event defined for the month. If view switches to year and returns to month, or going to the next month and returning back it will be showed up. Any mistake in my initialization?

It's intentional - I didn't see any point in showing an empty black box if there were no events.

My case is that at first show an empty calendar and then user inserts its own events.
before inserting any event is like following:

after inserting events:

Ah ok I see your point, I'll put out a fix soon :)

Fixed in https://github.com/mattlewis92/angular-bootstrap-calendar/commit/7193e6c8ffc5e9bbf4c7934fe48af650b23a4a7e, will release 0.12.1 momentarily

hi thanks your calendar is perfect but ı have been  a problem for along time in calendar day week is responsive but in year segment, months are not responsive how can ı fix this problem ?


Passing cancellation token into IResponseNegotiator

Methods in ResponseExtensions had an optional parameter but this wasn't used.  I've added a cancellation token to IResponseNegotiator.Handle and passed this into the call to WriteAsync.

Thanks!! 👍


Feature request: text entry for custom server

RapiDoc already supports switching servers through the server variables, but this assumes there is a finite list of servers that is known in advance. Developers might be implementing the API spec and want to make calls against a random instance, instead of the ones provided by whoever hosts the spec. Having a way to enable a text field where one could type in the address of their server would be useful for such cases.

Use Server Variable
Here is an example https://mrin9.github.io/RapiDoc/examples/server-vars.html#servers checkout the 3rd and 4th servers option where you can construct your own server url using variables
Hope it takes care of your issue

Cheers! I missed that without an enum it will behave as I need it to. That’s great, thanks.


requireSpacesInsideArrayBrackets: comments should be also taken into account

disallowSpaceBeforeBinaryOperators should include comments in the token list. This was found when using the autofixer with the mdcs prset against the three.js library.

Coverage remained the same at 98.86% when pulling 63ea39a5ea31859c8f038fc6e5062317354fb101 on gero3:allowComments into 28ba35b23ca70a767f7e03fbb9e56617f74203a4 on jscs-dev:master.

@gero3 what was the test case that was broken using the autofixer? Did it eat the comment token? If so, then we need to follow the "detect error, but don't fix" strategy from linesBetween when a rule itself doesn't account for comments.

It kept saying there was an error while there was already 1 space between the comment and the bracket. So It fixed the error but kept reporting it as an error.

@mikesherov Safe to land once rebased?
The merge conflict is basically this test being in the wrong folder (it's in test/rules instead of test/spec/rules). The rebase should resolve automatically.

@mrjoelkemp yeah, but really we also need to solve this at the autofixer level, like I did for linesBetween.

Thanks @gero3!


Add react ressources

What does this PR do?
Add resources
For resources
Description

ReactJS Full Course for Beginners | Complete All-in-One Tutorial | 9 Hours: one video made up of 23 tutorials for learning react that build upon each other much like the chapters of a book.
React Context & Hooks Tutorial: a playlist with practical examples of using context api and react hooks.

Why is this valuable?

ReactJS Full Course for Beginners | Complete All-in-One Tutorial | 9 Hours: a good tutorial for beginners to  help build projects and learn the fundamentals of react.
React Context & Hooks Tutorial: beginner friendly with practical examples.

How do we know it's really free?
YouTube videos.
For book lists, is it a book? For course lists, is it a course? etc.

ReactJS Full Course for Beginners | Complete All-in-One Tutorial | 9 Hours:  a course lists.
React Context & Hooks Tutorial: +9h video with chapters integrated in timeline.

Checklist:

[x] Read our contributing guidelines.
[x] Search for duplicates.
[x] Include author(s) and platform where appropriate.
[x] Put lists in alphabetical order, correct spacing.
[x] Add needed indications (PDF, access notes, under construction).
[x] Used an informative name for this pull request.

Follow-up

Check the status of GitHub Actions and resolve any reported warnings!

Thanks, and welcome to free-programming-books!