DPS5015 display freezes

My DPS5015 display freezes every time if I press buttons too fast. Firmware self still seems to work because I can switch output on and off but display doesn't update.
I tried to debug it my self but this hw platform is new for me, so I haven't managed to setup debugger yet..

My DPS5015 does the same. I thought it was my bad compiler and changes in the CC mode, see issue #1.
While the display is stuck at the previous value, the buttons still work

That's odd. Do any of you have a UART connected for debug output? If so, I'll have a look and see if there are any printf:s that can be added to debug this.

Yes, I can test this on the weekend.

Seems I am witnessing a similar problem, also on DPS5015
The output enable button is not very responsive, I need to press it slowly and sometimes it works (on release), sometimes there is no effect after pressing, and a second or third press does the job. If I press that button too fast several times, the output indicator in the bottom right corner locks in whatever state it was. The output is still toggled but the indicator stays either on or off all the time. If I continue pressing the button several times (10-20 times), at some point the screen goes white and I have to cycle power to restore the functionality.

Hi @vahegan. Could you try building with make COMMANDLINE=1which removes the binary protocol from the UART and add some printfs in eg. event_put(...) and event_get(...) so we can see what is going on with the button presses? I tried hammering the enable button on a '5005 and see no problems.
@gojimmypi: Have you seen this issue too?

Hi Johan. I can recompile but I am absolutely new to this platform and don't know which files to modify and what printfs to put and where. If you can send me a modified file, I can do that on Monday and will post the UART output.

I have same issue. Before i found this thread I found this: Controls are working when LCD in freeze. I tried add command to reinit LCD into CLI (ili9163c_init(); and set roataion), and after reinit LCD continue to work. Also after reading this topic I checked event_put and event_get functions. Nothing changed between working and freezed states. I will dig bit more.

@cleverfox, could you see if the LCD is connected in a different manner? I recall the 5005 LCD had its SPI nCS pin grounded and I am thinking this might have changed.

I desoldered LCD but there is no pin labels on it :(.
I found 8 pin header on LCD and and 8 pin cable between blocks.
here is pinout
LCD pin / cable pin / MCU pin
1 / 1 / GND
5 / 2 / pin B7 (43) inverted by transistor
7 / 3 / VCC
3 / 4 / B12-NSS (25)
4 / 5 / B13-SCK (26)
8 / 6 / B14-MISO (27)
6 / 7 / B15-MOSI (28)
2 / 8 / A8 (29)

ooops, i misaligned screen in this pinout. 1 -> 8, 2->7, 3->6 etc

@kanflo you was right about slave select pin. I have added handling of NSS pin (A8), and I can't reproduce LCD hanging anymore. Beta testera are welcome to test it at cc branch :)

Interesting thing: When I was testing a hypothesis about NSS, I added just gpio_set(...); gpio_reset(...); before SPI transfer and it also solved problem. But of cource before commit I made NSS handling as it should be.

Thanks, @cleverfox , I will test it tomorrow morning.

@cleverfox can you help me? I am unable to compile: in graphics.h there is an include of cl.h, and cl.h is not available

Oh, yeah. I don't done image yet. You can add temporary hacked image. It is a little bit corrupted CV to distinguish mode from others.  Seems to work without problems now. And special thanks for bringing the calibration constants into the header file, I was looking into something like that. Do you have any suggestions about the calibration procedure? I have about (50mV + 1% of the output voltage) difference from the value sent to the DAC and the actual output voltage and that makes me a bit nervous. :)

I have +/- 0.1v mistake too. But I did not touched voltage calibration yet. I will do it soon. I just made current calibration, because DPS5005 parameters is absolutely uncompatible with dps5015 (it displays value under 0.5A when real current already 4-6A)

How do you calibrate for current? Current seems to be not working for me at all. When I short circuit the output in CC mode and then press output enable, there is no current flowing. When I first press the output enable and then short the output terminals, there is a spark (the capacitors discharge), the screen flashes white and the protection disables the output. I haven't figured it out yet how to switch it to CL mode; in CV mode it disables the output when I short the output terminals.

I don't know why it not working on short circuit yet, I seen this problem, but not investigated it yet. I tested it on few meters of LED strip. For let strip I tried current under 6Amps and it was nearly same as showing my ammeter.
Try to use any load instead of short circuit yet, but I will try to fix it soon.

@vahegan I fixed overcurrent protection for short circuit in CC and CL modes. I disable protection for 2ms after start (as for now for all modes).
To all: Let's decide if we need to do 2ms delay only for CC/CL mode or it is ok for all modes?

@vahegan I added example of calibration calculations inside dps-model.c.

Thanks, @cleverfox
Now I see a very strange behavior. I set it up for 2.1A current output at about 10V. When I power enable with short circuit, it works as expected. But when I apply a load (a car light bulb) the screen flashes and protection is activated. However, if I short the light bulb terminals, then power enable, then remove the short from the terminals, the bulb goes on.

Is this problem CL mode? I can check it only today at evening.  I can give you patch for debug it?
Did you checked voltage after my calibration?

I see this both in CC and CV/CL modes. I soldered the serial wires to the board but have not connected it to the computer yet. I have a Serial2USB adapter lying somewhere, need to find it, but I will be able to do it on Monday.
I have not done the calibration yet, only compiled it and was testing the protection. Will play with calibration later today and will let you know, thanks!

I just remembered another thing I wanted to mention:
In CC mode it would be useful instead of -.-- on the voltage line to display the actual voltage measured on the load.
Also, in setting mode for CC it would be great to have the possibility of setting the max voltage limitation i.e. the maximum voltage after which it would switch to CV mode if the current setting cannot be achieved (similar to switching to CC in CL mode).

@vahegan in case if I add voltage setting in CC mode it will become same as CL mode :) I personally not fully understand what for CC mode is really useful. But I not going to destroy something already done by someone other and I created new mode CL.

I seem to have fried my board. I pressed output enable several time and got a white screen (just like before mods by @cleverfox ), but the board was working. I then cycled power and again pressed power enable several times. Then the screen went black and the board died. When I cycle power even LCD backlight is not available anymore and when I try to launch openocd I get an error "Inti mode failed (unable to connect to the target)". Don't know what caused this. Will try to check if there is power on the chip legs - maybe the board's power supply died.

I'm so sorry this happened, but I don't think the cause was the firmware. Check voltage on C27 capacitor (near LCD socket), it should be 3.3v.

Yes, seems it was a coincidence, has nothing to do with the firmware. I think XL7005 is dead: there is voltage on its input but no 1.25V on the feedback pin, which means there is no switching. Unfortunately this chip is only available in China, which means 2-3 weeks wait time. I have another DPS5015 board but I would like to keep it with factory firmware until OpenDPS is fully functional.

Glad to have the display freeze sorted out, I will close this issue. Sorry to hear about your '5015 @vahegan.

@kanflo I am afraid too early to close as I am not sure its fully sorted out: I have seen the same behavior with white screen but buttons working just before the unit died. Further testing is required. I will do if my board works from external power supply to the CPU.


Image file name bug while resizing

Expected behaviour
I'm creating an application that converts images to ASCII characters and at some point in my algorithm, an input image have to be simply resized.
Actual behaviour
Unfortunately, when I try to scale an image whose file name consists of characters that are not in the English alphabet (such as ą, ż, ć, â), the application crashes and the following message appears in the console:
Exception in thread Thread-1:
Traceback (most recent call last):
  File "C:\Program Files (x86)\Python37\lib\threading.py", line 926, in _bootstrap_inner
    self.run()
  File "C:\Program Files (x86)\Python37\lib\threading.py", line 870, in run
    self._target(*self._args, **self._kwargs)
  File "E:/Dokumenty/Projekty Python/artif/main.py", line 183, in convert_to_ascii
    img = cv.resize(self.img, (self.reducedWidth, self.reducedHeight))
cv2.error: OpenCV(4.2.0) C:\projects\opencv-python\opencv\modules\imgproc\src\resize.cpp:4045: error: (-215:Assertion failed) !ssize.empty() in function 'cv::resize'

Steps to reproduce
#Example code:
img = cv.resize(self.img, (self.reducedWidth, self.reducedHeight))

#Operating system:
Windows 10 Home version 1809
#Architecture:
x64
#OpenCv version:
<IP_ADDRESS>

OpenCV supports only a subset of ASCII characters. There's nothing I can do in this repository to fix that "feature". Please open an issue to the actual OpenCV repository: https://github.com/opencv/opencv

All right. Thank you!


grammar for input json files

Would you please let me know where can I find the grammer for input json files?

Thank you for your question! Please refer to our user guide:

@zehuanw . thanks. the link you provided has just a couple of examples. What I am interested in is a grammar file that defines the input json file. For example (just making up):
an input file consists of solver + optimizer + layers (you can also give me something like input = ( solver, optimizer, layers)
layers = ( layer1 | layer2 | layer3 .... | layern )+ ...... )
a layer can be among these: layer1, layer2, layer3
parameters of layer1 is [this, that, and that one as well]
...
parameters of layern is [that, thatone, thatoneaswell]
I hope this makes sense.
Thanks

Added labels and milestone. This requirement will be addressed in our next release. THX!

just to give you and idea why I am interested in this: https://github.com/ethem-kinginthenorth/HugeCTRpy

Closing. Starting from v3 HugeCTR provides a Python API, that has matured over the past months and can now be considered as stable.


Add initialization of hints to request/response modification.

@re6exp Please sign the Contributor License Agreement!
Click here to manually synchronize the status of this Pull Request.
See the FAQ for frequently asked questions.

Tomorrow is fine

Codecov Report

Merging #299 into master will increase coverage by 0.08%.
The diff coverage is 0%.

@@            Coverage Diff             @@
##           master     #299      +/-   ##
==========================================
+ Coverage   72.52%   72.61%   +0.08%
==========================================
  Files         114      111       -3
  Lines        2963     2877      -86
  Branches      208      207       -1
==========================================
- Hits         2149     2089      -60
+ Misses        704      678      -26
  Partials      110      110

Impacted Files
Coverage Δ

...cloud/gateway/route/builder/GatewayFilterSpec.java
55.29% <0%> (ø)
:arrow_up:

...ewrite/ModifyResponseBodyGatewayFilterFactory.java
5.26% <0%> (-0.2%)
:arrow_down:

...rewrite/ModifyRequestBodyGatewayFilterFactory.java
5.26% <0%> (-0.2%)
:arrow_down:

...framework/cloud/gateway/sample/AdditionalRoutes.kt

...rk/cloud/gateway/sample/ThrottleGatewayFilter.java

...cloud/gateway/sample/GatewaySampleApplication.java

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update b682af4...d376074. Read the comment docs.

I've checked the code before commiting to the PR at my app. It works, finally, as was conceived! :)
Thanks again!
Spring Cloud Finchley.RC1 + Spring Boot 2.0.1.RELEASE + local version of Spring Cloud Gateway (master branch).
I have tests in my branch, it covers sse too. There is some problem which will be fixed with Spring WebFlux 5.0.6.

@re6exp Thank you for signing the Contributor License Agreement!

@spencergibb
Hm... do not merge, I've found some errors while I've been adding tests. Now I'm fixing them.

@spencergibb
I've fixed some issues with response body modification (MediaType, . Tests covering response body modification were copied from my old branch with some modification. They work. With Spring Web 5.0.6 BUILD-SNAPSHOT all of them run successfully including SSE.
BUT tests for request body modification can't even run because of IllegalStateException in RewriteUtils. I have no idea how to fix it.

rebuilding

Build is timing out
Running org.springframework.cloud.gateway.filter.body.RewriteRequestBodyFilterTest

Hm, it had work... 23 days ago. :)

I can do it tomorrow.

Tests for response body modification run perfectly - thx to Rossen, he fixed problem with sse serialization in v. 5.0.6 which has been released some tima ago.
But RewriteRequestBodyFilterTest doesn't work - neither before nor now, as I wrote in comments before. Because I don't use request body modification in my app I can't confirm this code does work realy. Tests do not. These tests worked on my original branch, with old API - this API was bad I know but it worked, tests were passed. After I change API to the new, I always get an exception throwed in RewriteUtils while testing request body modification. I have no idea how to fix it.
Time out while running RewriteRequestBodyFilterTest, the cause is:
java.lang.IllegalStateException: SyncInvocableHandlerMethod should have completed synchronously.
	at org.springframework.cloud.gateway.filter.factory.rewrite.RewriteUtils.process(RewriteUtils.java:49) ~[classes/:na]
	at org.springframework.cloud.gateway.filter.factory.rewrite.ModifyRequestBodyGatewayFilterFactory.lambda$0(ModifyRequestBodyGatewayFilterFactory.java:66) ~[classes/:na]
	at org.springframework.cloud.gateway.filter.OrderedGatewayFilter.filter(OrderedGatewayFilter.java:44) ~[classes/:na]
	at org.springframework.cloud.gateway.handler.FilteringWebHandler$DefaultGatewayFilterChain.lambda$0(FilteringWebHandler.java:115) ~[classes/:na]
	at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:44) ~[reactor-core-3.1.7.RELEASE.jar:3.1.7.RELEASE]
	at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) ~[reactor-core-3.1.7.RELEASE.jar:3.1.7.RELEASE]
	at reactor.core.publisher.Mono.subscribe(Mono.java:3080) ~[reactor-core-3.1.7.RELEASE.jar:3.1.7.RELEASE]
	at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.drain(MonoIgnoreThen.java:167) ~[reactor-core-3.1.7.RELEASE.jar:3.1.7.RELEASE]

I've only had a very brief look, but RewriteUtils#process seems to be written in a way that assumes no blocking can occur. When I look at places where it's used, that's not the case, like here reading from the body.
The error message is referring to a Spring Framework class, the SyncInvocableHandlerMethod, which is not relevant or used here AFAICS, but that class has a similar check and it's guaranteed to not block because it can only be configured with synchronous argument resolvers.

So, this leads to when I run tests, they can't be successfully finished, do I understand right?
Reading the body cause to blocking operation, which is disallowed (so isTerminated() check returns false) and leads junit tests to crash... Do I understand your comment correct?
There is an example of a gateway application, which somehow can be executed and uses httpbin.org-like backend. I did not run it. May be it works, OK, but the tests do not. :(
I can assume it my fault, but this code works with another API and should, in principle, working here too.

Reading the body cause to blocking operation, which is disallowed (so isTerminated() check returns false) and leads junit tests to crash... Do I understand your comment correct?

The body may not be read immediately, so the isTerminated check makes no sense. It cannot be guaranteed to return true.

And in case of using junits it crashs. As I guessed...
Thank you, Rossen!


Gulp task is not using gulp-cli but gulp

The task should be using the node module gulp-cli and not gulp. https://github.com/gulpjs/gulp/blob/master/docs/getting-started.md
This is the old way of invoking gulp, and does not work with newer versions of gulp.
The default configuration of the gulp runner can be found here: https://github.com/Microsoft/vsts-tasks/blob/c932e92b4db984e06dcec9d6537bd9ca2a0de72c/Tasks/Gulp/task.json#L78-L84
It would be okay to use the locally install gulp as a default, or have a flag to make this the priority. But there should be no global gulp module.

Hi, is this someone that can be looked at. We are trying to update to gulp4 and we have to go an manually uninstall/update the global version of gulp on each build task...
Thanks.

@wawyed, I'm running into the same and looking for a workaround until the fix is provided. How did you "uninstall/update the global version of gulp" in the build definition?
+1 for looking at this issue sooner than later.

We have an internal bug filed for fixing this. Gulp should be using v4 in the next few releases.
In the meantime, the next Azure DevOps release will include a new version of the Gulp task that will let you supply a path to a custom gulp.

In the meantime, the next Azure DevOps release will include a new version of the Gulp task that will let you supply a path to a custom gulp.

Just for completeness/reference, see https://github.com/Microsoft/azure-pipelines-tasks/issues/7839 regarding Matt's comment.
Thanks, Matt!


[Question] how is it going to work with the new 5.5 auto discovery

Description
with the new release v5.5 , service providers are no longer being added to the config, so how the package tackle this if laravel already register all discovered SP as global providers ?

from what i understand is laravel run the auto-disc after the dump-autoload, which means after you have registered your sp under config/app,
so the question is
does laravel override whatever you have already registered and still use the auto-disc instead ?

update
adding packages to dont-discover works

Great idea about using the package name, will look into that. Would only be possible if Laravel somehow lets us dynamically add packages to Composer's dont-discover though. Then I can unregister the package if it's in an conditional environment array and re-register if in that specific environment.
With Laravel 5.5, I find that you have 2 options:

Fully rely on Laravel 5.5's auto-discovery and composer's require and require-require keys. Then run composer install --no-dev on your production server so development packages won't get installed nor auto-discovered. Works great if you only want to conditionally load packages in a local and/or production environment.
Add the environment-specific package to composer.json's dont-discover first and then add it to a specific environment provider or facade key(s) like you would usually do. Best solution if you have more environments than just local and production (require vs require-dev) and need to load it conditionally.

I'll update the readme asap.

for the prev idea, actually we can have a work around.

laravel save the auto-disc in bootstrap/cache/packages.php,
we make a command that gets add under post-autoload-dump script
cleanup packages.php according to config

however we need a better GLOBAL solution, to handle both auto-disc & normal packages sp registration.

Sorry about the late reply.
For now, I'd rather stick to a near-native solution. I don't want to meddle in generated files. Most people will only have a local and production environment anyway, so they can use composer's require and require-dev keys and let Laravel do its magic.
For those of us that have additional environments like staging and need to conditionally load package, we just need to add those to composer's dont-discover key and use this package to load them in the desired environment. I suppose that's still pretty easy to do for the limited situations it's needed?
For anyone using Laravel 5.4 and before, nothing changes anyway.

i think that same, cuz any solution we come up with will require the usre defining what package to be reg under which env, so sticking to dont-discover will suffice

I'll update the readme to make this more clear when I have some time.


Python 3.9 support

Hi,
I noticed there's a Python 3.9+ requirement mentioned in the README,

but after installing via pip and running with Python 3.9.6, I encountered the following error:
Traceback (most recent call last):
  File "/Users/aa/Library/Python/3.9/bin/nougat", line 5, in <module>
    from predict import main
  File "/Users/aa/Library/Python/3.9/lib/python/site-packages/predict.py", line 17, in <module>
    from nougat import NougatModel
  File "/Users/aa/Library/Python/3.9/lib/python/site-packages/nougat/__init__.py", line 8, in <module>
    from .utils.dataset import NougatDataset
  File "/Users/aa/Library/Python/3.9/lib/python/site-packages/nougat/utils/dataset.py", line 21, in <module>
    from nougat.dataset.rasterize import rasterize_paper
  File "/Users/aa/Library/Python/3.9/lib/python/site-packages/nougat/dataset/rasterize.py", line 18, in <module>
    pdf: Path | bytes,
TypeError: unsupported operand type(s) for |: 'type' and 'type'

because this syntax was introduced in python 3.10.
So, as I'm not sure what is better solution for you — update python version or maintain 3.9 support, I don't do any PR to it.
Thank you!

Sorry about that. Fixed now
Will release a new pypi version shortly


Implement prototyping datalog-to-datafrog compiler

From a set of Soufflé-like declarations, and simple (valid) rules, this can generate a skeleton datafrog computation, complete with Relations, Variables, joins (regular joins, no leapjoins yet), antijoins, map and index maintenance, tuple wrapping when the predicate is consumed as a key, and "main intensional relation inference".
This can generate 90% of the Naive computation (which has many subtleties): the skeleton compiles but doesn't know where to get the input data of course. After filling these 5-6 lines, this generated variant passes the tests.
No leapjoins are generated yet and can be left as future work, as they are mostly an optimization over regular joins, and this datafrog skeleton generator's purpose is to help with prototyping rules quickly (or having a base when doing rule transformations à la magic sets / demand transformation, which is what I'm using this for).
From these declarations:
.decl borrow_region(O: Origin, L: Loan, P: Point)
.decl cfg_edge(P: Point, Q: Point)
.decl killed(L: Loan, P: Point)
.decl outlives(O1: Origin, O2: Origin, P: Point)
.decl region_live_at(O: Origin, P: Point)
.decl subset(O1: Origin, O2: Origin, P: Point)
.decl requires(O: Origin, L: Loan, P: Point)
.decl borrow_live_at(L: Loan, P: Point)
.decl invalidates(L: Loan, P: Point)
.decl errors(L: Loan, P: Point)

and the Naive rules:
subset(O1, O2, P)    :- outlives(O1, O2, P).
subset(O1, O3, P)    :- subset(O1, O2, P), subset(O2, O3, P).
subset(O1, O2, Q)    :- subset(O1, O2, P), cfg_edge(P, Q), region_live_at(O1, Q), region_live_at(O2, Q).
requires(O, L, P)    :- borrow_region(O, L, P).
requires(O2, L, P)   :- requires(O1, L, P), subset(O1, O2, P).
requires(O, L, Q)    :- requires(O, L, P), !killed(L, P), cfg_edge(P, Q), region_live_at(O, Q).
borrow_live_at(L, P) :- requires(O, L, P), region_live_at(O, P).
errors(L, P)         :- borrow_live_at(L, P), invalidates(L, P).

Here's what it generates:

// Extensional predicates, and their indices

let borrow_region: Relation<(Origin, Loan, Point)> = Vec::new().into();

// Note: `cfg_edge_p` is an indexed version of the input facts `cfg_edge`
let cfg_edge_p: Relation<(Point, Point)> = Vec::new().into();

let invalidates: Relation<((Loan, Point), ())> = Vec::new().into();
let killed: Relation<(Loan, Point)> = Vec::new().into();
let outlives: Relation<(Origin, Origin, Point)> = Vec::new().into();
let region_live_at: Relation<((Origin, Point), ())> = Vec::new().into();

// `errors` inferred as the output relation
let errors = {

let mut iteration = Iteration::new();
// Intensional predicates, and their indices

let borrow_live_at = iteration.variable::<((Loan, Point), ())>("borrow_live_at");
let errors = iteration.variable::<(Loan, Point)>("errors");
let requires = iteration.variable::<(Origin, Loan, Point)>("requires");

// Note: `requires_lp` is an indexed version of the `requires` relation
let requires_lp = iteration.variable::<((Loan, Point), Origin)>("requires_lp");

// Note: `requires_op` is an indexed version of the `requires` relation
let requires_op = iteration.variable::<((Origin, Point), Loan)>("requires_op");
let requires_step_6_1 = iteration.variable("requires_step_6_1");
let requires_step_6_2 = iteration.variable("requires_step_6_2");
let subset = iteration.variable::<(Origin, Origin, Point)>("subset");

// Note: `subset_o1p` is an indexed version of the `subset` relation
let subset_o1p = iteration.variable::<((Origin, Point), Origin)>("subset_o1p");

// Note: `subset_o2p` is an indexed version of the `subset` relation
let subset_o2p = iteration.variable::<((Origin, Point), Origin)>("subset_o2p");

// Note: `subset_p` is an indexed version of the `subset` relation
let subset_p = iteration.variable::<(Point, (Origin, Origin))>("subset_p");
let subset_step_3_1 = iteration.variable("subset_step_3_1");
let subset_step_3_2 = iteration.variable("subset_step_3_2");

// R01: subset(O1, O2, P) :- outlives(O1, O2, P).
subset.extend(outlives.iter().clone());

// R04: requires(O, L, P) :- borrow_region(O, L, P).
requires.extend(borrow_region.iter().clone());

while iteration.changed() {

    // Index maintenance
    requires_op.from_map(&requires, |&(o, l, p)| ((o, p), l));
    requires_lp.from_map(&requires, |&(o, l, p)| ((l, p), o));
    subset_o2p.from_map(&subset, |&(o1, o2, p)| ((o2, p), o1));
    subset_o1p.from_map(&subset, |&(o1, o2, p)| ((o1, p), o2));
    subset_p.from_map(&subset, |&(o1, o2, p)| (p, (o1, o2)));

    // Rules

    // R01: subset(O1, O2, P) :- outlives(O1, O2, P).
    // `outlives` is a static input, already loaded into `subset`.

    // R02: subset(O1, O3, P) :- subset(O1, O2, P), subset(O2, O3, P).
    subset.from_join(&subset_o2p, &subset_o1p, |&(_o2, p), &o1, &o3| (o1, o3, p));

    // R03: subset(O1, O2, Q) :- subset(O1, O2, P), cfg_edge(P, Q), region_live_at(O1, Q), region_live_at(O2, Q).
    subset_step_3_1.from_join(&subset_p, &cfg_edge_p, |&_p, &(o1, o2), &q| ((o1, q), o2));
    subset_step_3_2.from_join(&subset_step_3_1, &region_live_at, |&(o1, q), &o2, _| ((o2, q), o1));
    subset.from_join(&subset_step_3_2, &region_live_at, |&(o2, q), &o1, _| (o1, o2, q));

    // R04: requires(O, L, P) :- borrow_region(O, L, P).
    // `borrow_region` is a static input, already loaded into `requires`.

    // R05: requires(O2, L, P) :- requires(O1, L, P), subset(O1, O2, P).
    requires.from_join(&requires_op, &subset_o1p, |&(_o1, p), &l, &o2| (o2, l, p));

    // R06: requires(O, L, Q) :- requires(O, L, P), !killed(L, P), cfg_edge(P, Q), region_live_at(O, Q).
    requires_step_6_1.from_antijoin(&requires_lp, &killed, |&(l, p), &o| (p, (l, o)));
    requires_step_6_2.from_join(&requires_step_6_1, &cfg_edge_p, |&_p, &(l, o), &q| ((o, q), l));
    requires.from_join(&requires_step_6_2, &region_live_at, |&(o, q), &l, _| (o, l, q));

    // R07: borrow_live_at(L, P) :- requires(O, L, P), region_live_at(O, P).
    borrow_live_at.from_join(&requires_op, &region_live_at, |&(_o, p), &l, _| ((l, p), ()));

    // R08: errors(L, P) :- borrow_live_at(L, P), invalidates(L, P).
    errors.from_join(&borrow_live_at, &invalidates, |&(l, p), _, _| (l, p));
}

errors.complete()
};

After we've polished a couple details, like adding leapjoins and the likes, maybe it could be of interest to datafrog itself.

@lqd Why this pull request is for Polonius repository and not for the DataFrog one? Is there something about implemented rule generation that is Polonius specific?

Not exactly Polonius specific in the generation, however it still has bugs I know on more complicated rules that we don't use (and which I'll fix over time) but is still useful as-is for prototyping (specifically the transforms I'm looking at).
So I thought we could dogfood it here in its current state to discover the problems — before making it a bit more generic, polishing, and then upstreaming to datafrog.
Does that make sense or is it a bad idea ?

I have one small project that currently uses DDlog because I need support for code generation. However, with your changes, I could also try using datafrog and hopefully contribute to it. However, what you say also makes sense to me and probably I could just temporarily have a dependency on Polonius for rule generation.

Alright I'll move this to a dedicated repo then, so it can be tested and stabilized by itself before being upstreamed wherever needed (probably in the datafrog repo), so I'll close this PR and move it there.

Could you please tell me which repo are you going to use for testing and development?

He might be referring to datafrog repository.

@vakaras I'm setting it up as we speak (and fixing the last couple easy bugs I see), I'll notify you shortly :)

Thank you!


Add LSP support for Dockerfile

Description

Add LSP support for Dockerfile. This enables:

code completion
documentation
diagnostics

Currently the server doesn't complete file paths.

Looks good to me. Thanks again!


Fix and improve README

Thanks for this interesting project! 🚀
I've noticed the broken Roadmap section, fixed that along with a few other suggestions for improvement.

Thanks


[harfbuzz] Build error on x64-windows

Hi all,
I am trying to install the skia library and it is driving me around the bend...
vcpkg always gets stuck when trying to install a package named harfbuzz. The error log is below.
Setup: I am using Windows 11 home
Steps to reproduce: vcpkg install harfbuzz
Expected output: getting harfbuzz installed
Actual outcome: [Error: ](error: building harfbuzz:x64-windows failed with: BUILD_FAILED)
I really don't know how this problem could be fixed and any help would be greatly appreciated. Unfortunately I'm a bit of a noob when it comes to build tools, package managers and the like...
Package<EMAIL_ADDRESS>Host Environment

Host: x64-windows
Compiler: MSVC 19.37.32824.0
vcpkg-tool version: 2023-12-12-1c9ec1978a6b0c2b39c9e9554a96e3e275f7556e
vcpkg-scripts version: 45c8b198b 2024-01-03 (7 weeks ago)

To Reproduce
vcpkg install harfbuzz
Failure logs
-- Using cached harfbuzz-harfbuzz-8.3.0.tar.gz.
-- Cleaning sources at C:/Tools und Libs C++/vcpkg/buildtrees/harfbuzz/src/8.3.0-222d759c60.clean. Use --editable to skip cleaning for the packages you specify.
-- Extracting source C:/Tools und Libs C++/vcpkg/downloads/harfbuzz-harfbuzz-8.3.0.tar.gz
-- Applying patch fix-win32-build.patch
-- Using source at C:/Tools und Libs C++/vcpkg/buildtrees/harfbuzz/src/8.3.0-222d759c60.clean
-- Found external ninja('1.11.0').
-- Getting CMake variables for x64-windows
-- Configuring x64-windows-dbg
-- Using cached mingw-w64-x86_64-pkgconf-1~2.1.0-1-any.pkg.tar.zst.
-- Using cached msys2-msys2-runtime-3.4.9-3-x86_64.pkg.tar.zst.
-- Using msys root at C:/Tools und Libs C++/vcpkg/downloads/tools/msys2/023cdb3ca06f77f2
-- Configuring x64-windows-dbg done
-- Configuring x64-windows-rel
-- Configuring x64-windows-rel done
-- Package x64-windows-dbg
CMake Error at scripts/cmake/vcpkg_execute_required_process.cmake:112 (message):
    Command failed: "C:/Program Files/Microsoft Visual Studio/2022/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/Ninja/ninja.exe" install -v
    Working Directory: C:/Tools und Libs C++/vcpkg/buildtrees/harfbuzz/x64-windows-dbg
    Error code: 1
    See logs for more information:
      C:\Tools und Libs C++\vcpkg\buildtrees\harfbuzz\package-x64-windows-dbg-out.log

Call Stack (most recent call first):
  scripts/cmake/vcpkg_install_meson.cmake:33 (vcpkg_execute_required_process)
  ports/harfbuzz/portfile.cmake:85 (vcpkg_install_meson)
  scripts/ports.cmake:170 (include)

See logs for more information:

  C:\Tools und Libs C++\vcpkg\buildtrees\harfbuzz\package-x64-windows-dbg-out.log

Detailed error information will be in the log mentioned in the output.
Using a working folder with spaces and pluses in the name is asking for a bad time.  I'd suggest simplifying that if the log file doesn't immediately reveal the issue.

Using a working folder with spaces and pluses in the name is asking for a bad time. I'd suggest simplifying that if the log file doesn't immediately reveal the issue.

Thank you very much! This has fixed the problem.

Since this issue has been resolved, so I am closing this issue for now.

Forgive me, but this is not completed. I have to install HarfBuzz as part of Qt5. This is the component number nnn, and I do not want to reinstall everything just because one component cannot handle spaces in the paths. Please advise on how to do this in a better way.


Uses multiline string literal for readme html.

This makes the html much easier to read.

@philium, my html is not so great, can you have someone else look at this?


Attachments manager

Hopefully this will successfully remove the password.

shoot. I thought I was submitting a pull request to my own repo.


moving premainnet tests out of main repo.

Moving premainnet tests.
Motivation
Noise in libra branch.
Have you read the [Contributing Guidelines on pull requests]
y
Test Plan
CI
Related PRs

Looks like bors never saw this.
@bors-libra r=mgorven

:pushpin: Commit 27d432a has been approved by mgorven

:hourglass: Testing commit 27d432ab3c2fa5e36feaf67d8d3ef7c4adf0d5c2 with merge 04afc063ffdf9675d874147b29e0ec9199f7b503...

:broken_heart: Test failed - checks-actions_land_blocking_test

@bors-libra retry

:hourglass: Testing commit 27d432ab3c2fa5e36feaf67d8d3ef7c4adf0d5c2 with merge e1d081d11df2f51427f7bd287e97a5a527111ac7...

:sunny: Test successful - checks-actions_land_blocking_test, checks-circle_commit_workflow
Approved by: mgorven
Pushing e1d081d11df2f51427f7bd287e97a5a527111ac7 to master...


Add '.uniq' method

https://ruby-doc.org/core-2.6/Enumerable.html#method-i-uniq

i would like to work on this

implemented in #65

@rultor merge

@rultor merge

@dgroup It is an issue, not a pull request

@rultor merge

@dgroup I'm sorry, I don't understand you :( Check this page and try again please

@dgroup , we have Unique class already

Added in #81


Rewrote head

The head utility is in a pretty poor state. This rewrite is to address that.
Newly supported features:

moved to clap
support all CLI arguments + NUM syntax (-c 5b, -1c,  -n 4kiB) (better output for --help too).
Some bug fixes & feature support, e.g. the following tests fail on the current master:

test_head::test_byte_syntax
test_head::test_line_syntax
test_head::test_negative_zero_lines
test_head::test_zero_terminated_syntax_2

Support for arbitrary data (the current version relies on utf8 encoding when it filters by lines)

We're close to 100% compatibility, albeit I messed up tracking all the features, so there are some obscurities & edge cases.
The most notable of these is that head will write a newline if not present as the last character of output if in terminal.
It won't do this if the output is piped, or redirected to a file. There is a wrapper for isatty on crates.io (+ the windows counterpart), which could be helpful.
On performance & memory:
The performance of head can certainly be improved.

Here's a small table of my local measurements (using hyperfine for perf and valgrind for memory (heap)):
Noop:

head -c 0
Time
Memory

GNU
0.5 ms
44 bytes

Current
0.8 ms
25,575 bytes

Rewrite
1.6 ms
489,631 bytes

Bytes (on data from /dev/random):
First 512 bytes of a random file (size 1k)

head -c 512 {random_file}
Time
Memory

GNU
0.5 ms
1k

Current
1.5 ms
17k

Rewrite
1.6 ms
534k

First 32 mega bytes of a random file (size ~513M)

head -c 33554432 {random_file} > /dev/zero
Time
Memory

GNU
7.5 ms
4k

Current
3074 ms
17k

Rewrite
6.3 ms
534k

All but the last 32 mega bytes of a random file (size ~513M)

head -c -33554432 {random_file} > /dev/zero
Time
Memory

GNU
99.5 ms
4k

Current
FAILED
FAILED

Rewrite
63.2 ms
534k

Note: I couldn't get the current version to work, the error was
head: error: Argument to option 'c' missing

Lines (on The complete works of Shakespeare):
The whole file is ~5.4M
First 2048 lines:

head -n 2048 {text} > /dev/zero
Time
Memory

GNU
0.6ms
4k

Current
1.8ms
100k

Rewrite
1.5ms
534k

All but the last 4096 lines

head -n -4096 {text} > /dev/zero
Time
Memory

GNU
1.9ms
4k

Current
52.5ms
5942k

Rewrite
2.3ms
534k

Note: this benchmark only includes data read from files, which the rewrite optimizes for. This also means that memory usage isn't really put to test, better benchmarks can be made
In summary, the rewrite has some constant startup and memory issues but is superior to both GNU and the current version in terms of scalability, and medium+ sized workloads, for run time, and superior to just the current version in terms of memory.
I think the startup time could be improved and will be doing some work in this area in the following days/weeks.
Tests:
I un-ignored most tests and added one. I think testing can & should be improved.
Some tests were not correct (i.e. they'd assert output not compatible with GNU), and were fixed.

@Mikadore benchmarks looks interesting and the difference in memory usage looks huge,  which version of GNU coreutils did you used?

@ycd head (GNU coreutils) 8.32
The memory usage would be more interesting for piped data, where it is necessary to buffer some of it, imo.
Tbh, it's just late here and I didn't have the energy to run more of these.
Overall, I think benchmarking this project as a whole (and comparing it against GNU) would be interesting to see, maybe I'll get to it some time.

Looks great, just a small nitpick, if it is working can you add a test for #1799?

I can't add a test for this as the API can't handle invalid strings for stdout.

@ycd head (GNU coreutils) 8.32

Ah i see, as far as i remember old head (GNU coreutils <= 8.21) had a similar memory usage because it was allocating the memory up front based on the value passed to -c.

I just realized that head supports arguments in the form of head -123zv, this means that parse_obsolete needs some adjustments in the API + new tests

I'm happy to report a significant speedup with the rewritten version of the argument parsing. From my basic measurements, basic argument parsing is about 30-60% faster.
We also now completely support the obsolete syntax (e.g. -123zvqvcvmk (- this is bad, please don't do this)).
I am however unhappy with the implementation side of things (it's ugly), and the fact that we have some (big? - need to profile) overhead for supporting the obsolete syntax. The only way for this to be resolved, really, (imo) is to either

stop using clap
get clap to support -123abc

The former is very unappealing in regards to consistency and simplicity, and the latter might not be wanted in clap.
However, it's also worth mentioning that our performance is really good, that is, ~0.5ms slower than GNU for very small workloads, and even faster beyond that! Of course, the faster the better, but I think if left as is even the current performance is satisfactory.

get clap to support -123abc

Can you elaborate this? which cases are failing without parse_obsolete?
We had a similar case in echo, i fixed it by allowing the leading hyphens (see: https://github.com/uutils/coreutils/pull/1887)

get clap to support -123abc

Can you elaborate this? which cases are failing without parse_obsolete?
We had a similar case in echo, i fixed it by allowing the leading hyphens (see: #1887)

This isn't the same (as far as I see), in  head -123zvc, the meaning of zvc changes than if it were head -123 -zvc (let alone that -zvc needs an argument for the c part).
head -123zvc is parsed as (in order) "print the first 123" (default is lines), "use \0 as a line terminator", "set verbose mode", "print the first 123 bytes". The c isn't the same as --bytes here.
So, clap would need some sort of NUM type of argument, in the form of -NUM{modifiers}, it would then also need to parse flags correctly, and sort out ambiguities (NUM c vs normal c).
If there is something like this in clap, I'd be more than happy to use it, but I don't know of it.

it is ready to be reviewed?
btw, bravo for
 codecov/project Successful in 1s — 63.48% (+0.59%) compared to 52997b6

it is ready to be reviewed?
btw, bravo for
 codecov/project Successful in 1s — 63.48% (+0.59%) compared to 52997b6

Thanks!
And yes, I think it's ready.

Bravo for this impressive work.

Bravo for this impressive work.

Thank you very much! This was my first contribution to a real open source project, and it's been a blast!
Looking forward to work on other things as well


Adding functionality for the --strip-dot-git flag

What’s this PR do?
This PR adds some functionality so that the already-present --strip-dot-git flag does what it says, following the pattern of librarian-chef’s code for --strip-dot-git.
Motivation
As it is, modules checked out from git by librarian-puppet can’t be added to another repo because the .git directory causes .git to think they’re submodules. In some cases, people want to check these modules into another git repo, as noted in #78.
Thanks for taking a look at this!

@carlossg, since you had looked at/responded to #78, would you have time to look at this PR?

It would make sense to open a PR here: https://github.com/voxpupuli/librarian-puppet as I believe project has transferred over there.


Entries with errors can't be removed from upload screen

Entries with errors aren't removed in upload screen when pressing the delete button.
how to reproduce

Edit a node in OsmGo
Edit the same node using another program and upload the change (to bump the node version number)
Try to upload the change made in step 1 using OsmGo. A version mismatch error will appear. This is how it should be.
Try deleting the change made on OsmGo using the delete button of the upload screen.
-> the change doesn't disappear

device information
tested using a Xiaomi Redmi Note 5 with Android 9
further information

Step 1 to 3 are simply a way of creating an error and can be replaced by other steps with similar results.
happens both in the OsmGo 0.11.1 app and PWA

I've now tried clearing the changes using the "delete all application cache", without success.
Nothing visibly changed, as the edits are still there, the application is still logged in, the icons are still being displayed, etc.
Tested on both the PWA and normal application.

Hi,
Thank you for this good issue!
It looks like #19 but I've never been able to reproduce this.
By following your instructions, I have an error but I still can delete the changes.
So I fixed this error, I think that's your problem too.
Can you test the PWA app with this fix ? You have to wait a few minutes (sec?) for the changes to be downloaded, then you need to restart the app.
It should be version 11.0.2
Thank you !
PS: After  "delete all application cache", you need to kill and restart the app

I experienced the same behavior this afternoon

Resulting changeset : https://www.openstreetmap.org/changeset/74814772
When sending again

The faulty node is the IBIS hotel. All other nodes have been sent in changeset #74814772. The"delete" button has no effect (after confirmation the changes do not disappear) .

Thank you,
I hope that the new version will fix this bug (0.11.2) .. If it's not the case, please reopen this issue

Fix works for me. Tested with v0.11.2 :

Added yesterday a node amenity=toilets in OSM Go! Changeset 75243171
Added today wheelchair=yes on this node with josm
Added same info in OSM Go! + other changes => changeset 75274652. The toilets node is in error.
When I went back in the upload screen I've deleted the node in error with the "delete" button

Thank you !
The next release of the app will bring big changes...
Good by Codova, hello PWA with only browser APIs (geolocation, device orientation and vibration)
PWA has a lot of advantages for Osm Go! (fastest, lighter, update only some files in the background, caching tiles, etc )
I already integrated the Oauth login ( it was impossible with the cordova sandbox...)
I also code a new openstreetmap data converter that runs entirely in the background (in a webworker)
I plan to push this update ( a TWA) on the play store during the next week.
You can already install  and test this latest PWA on https://osmgo.dogeo.fr
Your returns are welcome.
PS : @JVillafruela with this version, you can switch from the OSM prod server to the OSM dev server. (Convenient to find bugs)
To activate the "developer mode", go to About page and tap 5 times on version card.  Now you can switch to the osm dev  server in setting page (at the bottom) .
The OSM dev: http://api06.dev.openstreetmap.org
You must create an account for this server.


It's rename only android project name.

Please help me out.

./android/app/src/main/res/values/strings.xml MODIFIED
./index.android.js MODIFIED
./package.json MODIFIED
./app.json MODIFIED
./index.ios.js MODIFIED
./android/app/src/main/java/com/example BUNDLE INDENTIFIER CHANGED
./android/app/src/main/java/com/example BUNDLE INDENTIFIER CHANGED
./android/settings.gradle MODIFIED
./android/app/BUCK MODIFIED
./android/app/src/main/java/com/example/MainActivity.java MODIFIED
./android/app/src/main/java/com/example/MainApplication.java MODIFIED
./android/app/src/main/java/com/example/MainActivity.java MODIFIED
./android/app/build.gradle MODIFIED
./android/app/src/main/java/com/example/MainApplication.java MODIFIED
./android/app/src/main/AndroidManifest.xml MODIFIED
./app.json MODIFIED

@nilesh0074444 I met the same problem when renaming project twice. after going back to the original one and rename then it's work

i found this to be the case as well in version 2.1.5 of this package and react native version 0.49.3

I had revised the app_name value in the android strings.xml, which seems to be the starting point for the rename process.  After I changed it back to the original, everything worked as expected.

I had revised the app_name value in the android strings.xml, which seems to be the starting point for the rename process. After I changed it back to the original, everything worked as expected.

I renamed partially my app (including app_name) to display to the user the new app name without changing file names. After that, react-native-rename rename only some files because it doesn't find files with their original name.
I suggest to add this precision to the readme.


Typescript Types

@types/react-pure-lifecycle package would be a nice addition to this project. I really like the idea but I can't use it in my TS project :/

Sadly, I'm not a TS user... The typings in my other packages were all provided by the community, so if you wanted to put together a PR I'd welcome the contribution!


Sign API Overview | WalletConnect Specs

https://specs.walletconnect.com/2.0/specs/clients/sign/

Spam.


How to disable ECHO on /dev/ttyUSBo

Is any chance to disable hardware echoing on /dev/ttyUSB0 device ?
trick like:
const port = new SerialPort('/dev/ttyUSB0',{bindingOptions:{echo:false``});
does not help as well as stty -F /dev/ttyUSB0 -echo

Most probably yes, but my question - how to disable it (echoing)

Mar 19 21:40:07 raspberrypi kernel: [   16.536172] usbserial: USB Serial support registered for FTDI USB Serial Device
Mar 19 21:40:07 raspberrypi kernel: [   16.536518] ftdi_sio 1-1.4:1.0: FTDI USB Serial Device converter detected
Mar 19 21:40:07 raspberrypi kernel: [   16.536725] usb 1-1.4: Detected FT232RL
Mar 19 21:40:07 raspberrypi kernel: [   16.544243] usb 1-1.4: FTDI USB Serial Device converter now attached to ttyUSB0

Just made several tests and figure out that issue comes from "logic" itself. The device itself do not produce any echo (confirmed with several test in regular terminal app),
Issue comes from "data" event handler. Once data sends to serial port, it's emit "data" event as well. So seems it's can't be used for "listening" data comes from serial

Here is the code
cat ./serial.js
var SerialPort = require('serialport');
var port = new SerialPort('/dev/ttyUSB0', { autoOpen: true });
var i=0;

port.open(function (err) {
  if (err) {
    return console.log('Error opening port: ', err.message);
  }

  // write errors will be emitted on the port since there is no callback to write
  port.write('main screen turn on');
});

port.on('data', function (data) {
  console.log('Data: ' + data);
});

var timerId = setInterval(function() {
  port.write('hello'+i);
  i++;
}, 2000);

and output
nodejs ./serial.js Error opening port:  Port is opening Data: hello0 Data: hello1 Data: hello2 Data: hello Data: 3 Data: hello4 Data: hello5 Data: hello Data: 6 Data: h Data: ello7 Data: hello8 Data: hello9 ^C pi@raspberrypi:~ $

@khvalov if autoOpen: true is specified when creating a new SerialPort instance then it's not necessary to call port.open.
I tried the test program exactly as posted above with a serial cable and can't reproduce the problem. The serial cable was not connected to anything at the other end and there was no echo. If there was a bug in serialport I would have expected there to be a echo.
If the transmit on the serial cable is directly connected to receive on the serial cable to create a loopback then there is of course what looks like an echo.

Just made several tests and figure out that issue comes from "logic" itself. The device itself do not produce any echo (confirmed with several test in regular terminal app),

When you used the terminal app and hit a key, for example the key 'A', did you see 'A' printed to the screen? If you saw 'A' printed on the screen then the device at the other end of the serial connection is echoing the data it receives.

@fivdi , thanks for following this up.
The major differences in our cases is probably - i do have exact eqipement hooked via serial (Cisco ASA 5510).
As I mentioned - I have done few tests:

Using Windows + Putty - no echo when communicating with Cisco
Raspberry PI + Screen - no echo when communicating with Cisco
Raspberry PI + cu - no echo when communicating with Cisco
Please find screenshot as evidence
code used
`var SerialPort = require('serialport');
var port = new SerialPort('/dev/ttyUSB0');

port.open(function (err) {
if (err) {
return console.log('Error opening port: ', err.message);
}
});
setTimeout(function(){
port.write('help\n\n');
}, 3000);
port.on('data', function (data) {
process.stdout.write(data.toString('utf8'));
});`
so as you can see port.write ('help\n\n') were exists on stdout (echoed...)

The major differences in our cases is probably - i do have exact eqipement hooked via serial (Cisco ASA 5510)

This is not the case.
While using the cu utility in the screenshot above you were making a FALSE assumption. You think that cu is printing "help" to the screen when you type it on the keyboard but this is not the case. cu is sending "help" via the serial port to the Cisco ASA 5510 and the Cisco ASA 5510 is echoing it back.
To help understand, please try the following command and post a screenshot of what you see and explain what you see after you understand it.
cu --halfduplex -l /dev/ttyUSB0 -s 9600

here is output. Seems you were right

--halfduplex tells cu to do a local echo.
Maybe there's a way to tell the Cisco ASA 5510 not to echo. If not, it looks like your program will need to take the echo into account and ignore it if it's not needed.
There's no TODO for serialport here so I'll go ahead and close the issue.


Pinch to zoom in zoom out

How do you implement
pinch zoom and zoom out in our videocore apps, i am using a uiview and slide to zoom
This would be a great to use ui feature for recording

Zoom is explained in Issue #155.  If you have a programming question, say how to implement a pinch gesture, your question is better suited for StackOverflow.

UIPinchGestureRecognizer *pinchGestureRecognizer = [[UIPinchGestureRecognizer alloc]
initWithTarget:self
action:@selector(handlePinch:)];
[self.mView addGestureRecognizer:pinchGestureRecognizer];

(void) handlePinch:(UIPinchGestureRecognizer*) recognizer
{
// set videoZoomFactor
}

I tried using the videoZoomFactor but I don't see any difference.

This is how I did it
- (void)handlePinchReceived:(UIPinchGestureRecognizer*)sender {
    if (sender.scale > 1) {
        // Zoom in
        if (_session.videoZoomFactor  * sender.scale > 5) {
            _session.videoZoomFactor = 5;
        } else {
            _session.videoZoomFactor = _session.videoZoomFactor * sender.scale;
        }
        NSLog(@"Zoom: %f", _session.videoZoomFactor);
    } else {
        // Zoom out
        if (_session.videoZoomFactor * sender.scale < 1) {
            _session.videoZoomFactor = 1.0;
        } else {
            _session.videoZoomFactor = _session.videoZoomFactor * sender.scale;
        }
        NSLog(@"Zoom: %f", _session.videoZoomFactor);
    }
    //NSLog(@"%f", sender.scale);
    sender.scale = 1.0;
}


Fix issue with dark mode button

Fixes #10.
Now we can switch to dark mode when clicking on any part of the button. The trick is to call changeDarkMode() at the enclosing button element of DarkModeButton.
Wanted to give thanks for this issue because it is a good opportunity to get my feet wet in contributing to open source projects.

Thanks @josuaaah
Good job!


Wrong Subtitle for 2.9_CG05

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
2.9_CG05_mux has a completely wrong Sub which is exactly the same as the sub from 2.9_CG04. The game always downloads the wrong subtitle for this CG.
Describe alternatives you've considered
I am not sure how your Launcher works but I have transcibed the chinese hardsubs from the CN CG and used MTL to translate them and create my own en subfile. While the accuracy is probably somewhat questionable its still better then the completely wrong ones there are now. If your launcher can swap files then it would just swap the existing wrong sub with the replacement one.
Additional context
2.9_CG05_mux_en.txt
(files has to be swapped to srt again)
If you want I can instead just give you the CN transcription so you may get more accurate subs from more professional translators.

What server are you on? 2.9_CG05_mux_en.srt seems totally fine to me. Here's what's in my file:
1
00:00:00,250 --> 00:00:01,500
Bronya: What's happening?

2
00:00:03,300 --> 00:00:06,250
Fu Hua: Still disturbed by
your nightmares?

3
00:00:07,800 --> 00:00:10,550
Bronya: Class Monitor, the ability to
invade the private memories of others...

4
00:00:10,800 --> 00:00:12,825
Bronya: ...is nothing to be proud of.

5
00:00:13,425 --> 00:00:14,575
Bronya: But...

6
00:00:14,900 --> 00:00:15,750
Bronya: ...Spasiba.

7
00:00:16,175 --> 00:00:19,350
Gray Serpent: Hmm. How did you
get in here?

8
00:00:19,700 --> 00:00:22,450
Gray Serpent: It matters not, Bronya.

9
00:00:22,600 --> 00:00:25,050
Gray Serpent: No one can save you now.

I am on Global. So its probably a problem with Global in general. I saw a streamer with the same bug.

I'm generally not a fan of hardcoded solutions, so seems to need more info, something's not right here. If you download the original sub, what is its modification date?

If I delete the CG and Subs and redownload I get this Zip
2.9_CG05_mux.zip
The modification date of the subs itself is 14.12.2020 12:02

This problem is btw consistent between both PC and Mobile client

Hrm, that is interesting. My file is from April 2019, perhaps they've changed something. Alright, I'll keep this case in mind for the future subtitle fixer enhancements!

Oh and also, are there any other files with such a problem that you know? If it doesn't trouble you, wanna take a look at all of them? Don't need to do this right away, but it will surely help.

Thats the only case I have encountered thus far. I am in the process of going through the mainstory and chronicles rn so if I notice some other cases like this I will add them here.

For 3.0_CG10_mux_1 the subtitles have a wrong name so they dont show. Each of the 4 subfiles are named 3.0_CG010_mux_1 so they dont get played.
3.0_CG10_mux_1.zip

3.2_CG05_mux_1.zip
3.2_CG05_mux_1 has the same problem as 2.9_CG05_mux. The subtitles are from same as the previous CG missing correct subs.

3.6CG_08_mux_3.zip
3.6CG_08_mux_3 is another case of wrong file name. The subfiles mis the _3 so they dont get played.

4.4CG_04_mux_0D243C6E5E5DE5E8.zip
4.4CG_04_mux_0D243C6E5E5DE5E8 has no subs because the subs files in the zip are named "4.3CG_07_mux_0D243C6E5E5DE5E8_1" which is exaclty the same CG in a chapter before.

Closing due to this not being relevant anymore.


Trouble with ResourceRedirector callbacks

Hello. I'm struggling to get ResourceRedirector to work. For now I'm just testing a simple callback method that logs to the console, but no logging is ever done.
Here is the entire plugin as it stands:
using BepInEx;
using XUnity.ResourceRedirector;

namespace TestPlugin
{
    [BepInPlugin(PluginInfo.PLUGIN_GUID, PluginInfo.PLUGIN_NAME, PluginInfo.PLUGIN_VERSION)]
    [BepInDependency("gravydevsupreme.xunity.resourceredirector")]
    public class TestPlugin : BaseUnityPlugin
    {
        private void Awake()
        {
            Logger.LogInfo($"Plugin {PluginInfo.PLUGIN_GUID} is loaded.");
            ResourceRedirection.RegisterAssetLoadedHook(HookBehaviour.OneCallbackPerResourceLoaded, AssetLoaded);
        }

        private void AssetLoaded(AssetLoadedContext context)
        {
            Logger.LogInfo("Callback.");
        }
    }
}

And here is the logged output:
LogOutput.log
Not sure exactly what I could be doing wrong here. Tried making the method public, running the Complete method, altering the context... No results in any case. Am I missing something?

I can certainly see in the log some objects are being loaded. I think it may likely caused by them be loaded as resources rather than assets.
Try using RegisterResourceLoadedHook as well.
Take a look at: https://github.com/bbepis/XUnity.AutoTranslator/blob/master/src/XUnity.AutoTranslator.Plugin.Core/AssetRedirection/AssetLoadedHandlerBaseV2.cs#L23

Yep, seems like that was it. Apologies for such a simple error, was thrown off by the logs specifying Asset. Thanks for clearing that up!


feat: Support event callbacks and custom exceptions in MockFileSystem

Observing Changes
Implements #805
Allows registering a callback to be executed whenever a file or directory event is triggered in the file system:
    var fs = new MockFileSystem()
        .OnFileEvent(f => { /* Do something */ })
        .OnDirectoryEvent(d => { /* Do something */ });

The callback parameter provides the path of the file or directory and the event type.
Throw custom exceptions
Implements #877
Additionally the callback allows throwing a custom exception. This callback is executed before the actual change in the  MockFileSystem, thus allowing simulating e.g. OutOfMemoryException or other edge cases...

I like the general direction here 👍
Any reason to not expose this as regular events, as e.g. suggested here?

This callback is executed before the actual change

Maybe we could use the *ing/*ed scheme e.g. (FileCreating/FileCreated) for naming the events to support callbacks both before and after the actual change is made?

@fgreinacher

Any reason to not expose this as regular events, as e.g. suggested https://github.com/TestableIO/System.IO.Abstractions/issues/168#issuecomment-263130564?

It probably boils down to personal preference :-)
I think callbacks are easier and for unit testing I don't see the requirement to support registering multiple event handlers. Also I think it is clearer for callbacks to allow throwing an exception. With events I wouldn't be sure how exceptions are treated, as I could have registered multiple event handlers and only some of them throw exceptions.

Maybe we could use the *ing/*ed scheme e.g. (FileCreating/FileCreated) for naming the events to support callbacks both before and after the actual change is made?

I think this is a good idea, but I am not sure about the naming.
If I split it into too many different events ("FileCreating", "FileUpdating", "FileDeleting", "FilePermissionChanging", ...) and its counterparts it gets hard to register to all relevant events. That's why I only suggested OnFileEvent and OnDirectoryEvent and then I can filter on the events I want to handle.
What about OnFileEventOccuring and OnFileEventOccured?

Ah sorry @vbreuss, I got derailed by other topics 🙇
The main problem I see with the callback approach is that it's not easily possible to unregister the handlers.
I think we should for something like this:
var fs = new MockFileSystem();
fs.Events.DirectoryCreating += (sender, args) => {}
fs.Events.FileCreated += (sender, args) => {}
...

Yes, it's a bit verbose if you want to register the same handler to different events. But on the other hand it's quite intuitive and future-proof (no breaking change when adding new events).
WDYT?

@fgreinacher :
I think in the end it boils down to preference.
Especially in unit tests I like the fluent syntax (I also use FluentAssertions in my xUnit tests). Regarding the unregistering, you could return an IDisposable which would be quite easy to handle.
Unfortunately, I won't be able to continue working on this pull request!
In my application, where I used this library I had quite some inconsistencies, that were not detected by the unit test suite due to incorrect handling of times on different operating systems. Even after my previous contribution here, I stumbled on differences between Linux, Mac and Windows. That was the reason, why I started my own implementation of a broader approach to testing abstractions including a FileSystemMock where I build an extensive test suite that also runs on a real file system to ensure, that the behaviour matches the real file system.
There I already implemented notification handling as follows:
var fileSystem = new FileSystemMock();
fileSystem.Intercept.Creating(FileSystemTypes.Directory, _ => throw new Exception("custom exception"));
fileSystem.Notify.OnCreated(FileSystemTypes.Directory, c => DirectoryWasCreated(c.Path));

Maybe a similar approach would also work for you?

@vbreuss All good, fully understood! I'm maintaining this at super low capacity and want to keep changes as non-invasive as possible. I personally also like the fluent syntax a lot, but none of the existing APIs use it, and in doubt I also favor consistency.
I like your library a lot! I'm wondering whether it would make sense if you implement the System.IO.Abstractions interfaces instead of duplicating them. In that case I'd be happy to link your lib from the README here, as an alternative, way of mocking things. Let me know what you think 🙇

@fgreinacher :
In the beginning I started doing exactly that, however the interfaces are not completely identical:

I separated the interfaces from the default implementation with wrappers in separate projects. In this project they are both in the main DLL, so I can't just use the interfaces, but would always get the implementations as well.
You included the ACL-related functionality directly in the interfaces. I extracted them to a separate DLL (Testably.Abstractions.AccessControl), so if they are not required, I don't need a reference to System.IO.FileSystem.AccessControl
I replaced the Stream in the IFileStreamFactory with a custom stream class FileSystemStream (similar to #793)
I added and used a ITimeSystem interface to simulate the system time, which I need for determining the correct time. This interface is not available in "System.IO.Abstraction" (and wouldn't really fit, as it is not IO-related)
You didn't replace the WaitForChangedResult as return value in the IFileSystemWatcher interface. As this struct only has internal constructors, it is not possible to mock. Changing these now, would unfortunately be a breaking change...
I would also be sceptical of using two completely distinct namespaces ("System.IO.Abstractions" and "Testably.Abstractions.Testing") and adding more projects under the "System.IO.*" namespace would not be possible, if I understand this comment correctly...

All in all I really like the idea, but my goal with Testably.Abstractions is for a broader approach to unit testing helpers and I don't see, how we could make these two libraries 100% compatible :-(
Do you have an idea how to overcome these challenges?

@fgreinacher : In the beginning I started doing exactly that, however the interfaces are not completely identical:

I separated the interfaces from the default implementation with wrappers in separate projects. In this project they are both in the main DLL, so I can't just use the interfaces, but would always get the implementations as well.

I would have no problem changing that so that the interface are separate.

You included the ACL-related functionality directly in the interfaces. I extracted them to a separate DLL (Testably.Abstractions.AccessControl), so if they are not required, I don't need a reference to System.IO.FileSystem.AccessControl

I tried to mirror what .NET does and I think on modern versions we don’t actually need that reference. Or at least it is a no-op.

I replaced the Stream in the IFileStreamFactory with a custom stream class FileSystemStream (similar to feat: Add Name to IFile.Create (and others) #793)

As said the PR I like this, just a matter of getting it merged IMO 😀

I added and used a ITimeSystem interface to simulate the system time, which I need for determining the correct time. This interface is not available in "System.IO.Abstraction" (and wouldn't really fit, as it is not IO-related)

Agreed, this is not something I’d like to have in SIOA. But is this really a problem at the Interfaxe level?

You didn't replace the WaitForChangedResult as return value in the IFileSystemWatcher interface. As this struct only has internal constructors, it is not possible to mock. Changing these now, would unfortunately be a breaking change...

I would have no problem with changing this. Yes, it’s breaking, but easy to adapt.

I would also be sceptical of using two completely distinct namespaces ("System.IO.Abstractions" and "Testably.Abstractions.Testing") and adding more projects under the "System.IO.*" namespace would not be possible, if I understand this comment correctly...

Yes, new things need to go with the TestableIO prefix. Any option would be fine for me, either you stay on your own or you move to this org.
All in all I’d say nothing really blocking. Let me know what you think @vbreuss

@fgreinacher

@fgreinacher : In the beginning I started doing exactly that, however the interfaces are not completely identical:

I separated the interfaces from the default implementation with wrappers in separate projects. In this project they are both in the main DLL, so I can't just use the interfaces, but would always get the implementations as well.

I would have no problem changing that so that the interface are separate.

Would this be possible? I think you can't create new projects in the System.IO.Abstractions namespace?
Or do you suggest to move the interface to e.g. TestableIO.Abstractions.Interface and use them in the System.IO.Abstractions library? This would also mean a breaking change to consumers, as they all need to adjust their using-statements...
And I fear this would become quite confusing, especially in my library:

TestableIO.Abstractions.Interface
Defines the IO-related interfaces
System.IO.Abstractrions
Contains the default implementation of the IO-related interfaces
Testably.Abstractions.Interface
Defines the time and random related interfaces
Testably.Abstractions
Contains the default implementation of the time and random related interfaces
Testably.Abstractions.Testing
Testing helper

If I were to split my interface DLL, so that one only contains the file-related interfaces (e.g. Testably.Abstractions.Interface.IO), would it be possible for you to use these interfaces?
If you think this approach feasible, I could create a draft-PR...

You included the ACL-related functionality directly in the interfaces. I extracted them to a separate DLL (Testably.Abstractions.AccessControl), so if they are not required, I don't need a reference to System.IO.FileSystem.AccessControl

I tried to mirror what .NET does and I think on modern versions we don’t actually need that reference. Or at least it is a no-op.

In modern versions it was extracted to extension methods. I implemented the same behaviour in Testably.Abstractions.AccessControl. For this to work, I had to implement the IFileSystemExtensionContainer interface, but this would be quite a trivial change in "System.IO.Abstractions", so no blocker...

I replaced the Stream in the IFileStreamFactory with a custom stream class FileSystemStream (similar to feat: Add Name to IFile.Create (and others) #793)

As said the PR I like this, just a matter of getting it merged IMO 😀

Agreed :-)

I added and used a ITimeSystem interface to simulate the system time, which I need for determining the correct time. This interface is not available in "System.IO.Abstraction" (and wouldn't really fit, as it is not IO-related)

Agreed, this is not something I’d like to have in SIOA. But is this really a problem at the Interfaxe level?

Agreed, as said above, I think I could split my interface to only contain the file-related interfaces. However the ITimeSystem was quite handy, especially when implementing the "CreationTime", "LastAccessTime" and "LastWriteTime"...

You didn't replace the WaitForChangedResult as return value in the IFileSystemWatcher interface. As this struct only has internal constructors, it is not possible to mock. Changing these now, would unfortunately be a breaking change...

I would have no problem with changing this. Yes, it’s breaking, but easy to adapt.

I would also be sceptical of using two completely distinct namespaces ("System.IO.Abstractions" and "Testably.Abstractions.Testing") and adding more projects under the "System.IO.*" namespace would not be possible, if I understand this comment correctly...

Yes, new things need to go with the TestableIO prefix. Any option would be fine for me, either you stay on your own or you move to this org.
All in all I’d say nothing really blocking. Let me know what you think @vbreuss

Would this be possible? I think you can't create new projects in the System.IO.Abstractions namespace?
Or do you suggest to move the interface to e.g. TestableIO.Abstractions.Interface and use them in the System.IO.Abstractions library? This would also mean a breaking change to consumers, as they all need to adjust their using-statements...

True, we cannot upload new NuGet packages with the System.IO prefix. But we can keep using the System.IO prefix for the namespaces.
I think a simple way would be keep the namespaces as-is and change the NuGet package structure a bit:

Add TestableIO.System.IO.Abstractions with just the interfaces
Add TestableIO.System.IO.Abstractions.Wrappers with the wrapper implementations, referencing TestableIO.System.IO.Abstractions
Keep System.IO.Abstractions for backward compatibility, referencing TestableIO.System.IO.Abstractions.Wrappers

You could then reference just TestableIO.System.IO.Abstractions and plugin in your implementations.

Agreed, as said above, I think I could split my interface to only contain the file-related interfaces. However the ITimeSystem was quite handy, especially when implementing the "CreationTime", "LastAccessTime" and "LastWriteTime"...

Agreed that it helps with the implementation, but I'd like to keep it out of the interfaces and implementation here. But that should be fine, right?

I like your library a lot! I'm wondering whether it would make sense if you implement the System.IO.Abstractions interfaces instead of duplicating them. In that case I'd be happy to link your lib from the README here, as an alternative, way of mocking things. Let me know what you think 🙇

I now released v2.0.0 which references the interfaces from TestableIO.System.IO.Abstractions (see https://github.com/Testably/Testably.Abstractions/pull/225) and also mentioned the System.IO.Abstractions in the Readme.md...
What do you think, @fgreinacher ?
Would it make sense to merge the two projects further together?

I now released v2.0.0 which references the interfaces from TestableIO.System.IO.Abstractions (see https://github.com/Testably/Testably.Abstractions/pull/225) and also mentioned the System.IO.Abstractions in the Readme.md...
What do you think, @fgreinacher ?
Would it make sense to merge the two projects further together?

Looks great @vbreuss, I think we're good then. I'll prepare a small PR to mention the Testably library.


Update CODEOWNERS

Update codeowners
Description:

Related issue(s):
Fixes #
Notes for reviewer:

Checklist

[ ] Documented (Code comments, README, etc.)
[ ] Tested (unit, integration, etc.)

Closed duplicate: https://github.com/hashgraph/hedera-transaction-tool/pull/1374/files


Add docs about Windows Containers

Also fixed Capitalization typo with PerfVIew->PerfView in docs

Codecov Report

Merging #729 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #729   +/-   ##
=======================================
  Coverage   17.37%   17.37%
=======================================
  Files         221      221
  Lines      137752   137752
  Branches    12193    12193
=======================================
  Hits        23940    23940
  Misses     112873   112873
  Partials      939      939

Flag
Coverage Δ

#2017
17.37% <ø> (ø)
:arrow_up:

#Debug
17.37% <ø> (ø)
:arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 9d8a9b9...b4549a3. Read the comment docs.


Fix SideNav button toggling behavior

Old behavior being fixed:
1- SideNav is not out
2- Press button to slide out
3- Press button again
=> the pane is going out with a second [third, fourth...] overlay (and with same id)
You can also call "show" several time creating the same behavior.
Note: the code looks for whether "menu_id" has CSS class "active", but class is never set nor removed.
New behavior post fix:

SideNav is not out
Press button to slide out
Press button again
=> the pane is removed and overlay is removed. The button is effectively toggling.

The fix offers to add the CSS class "active" to "menu_id" when the show action is acted, and to remove the class in "removeMenu".
The fix also modifies "show" and "hide" only when the menu is in the desirable state.
Note: you probably need to regenerate your complete file + mimified versionif you accept this change

+1 for @licryle

I can't figure out how to do 3- Press button again The button is under the overlay, and clicking on the button, hides the sidenav.
But two subsequent call for show, still creates an additional overlay - http://codepen.io/kmmbvnr/pen/qNLEXg

Looks fixed in 1d4bbe3a56815dcf1ef66162e342c5e4f09cc0e2 by @acburst
Here is codepen with github master js: http://codepen.io/kmmbvnr/pen/ZOVYao

This seems to be fixed.  Using your codepen, if I run $('.button-collapse').sideNav('show'); twice, however with a 0.1s delay between, it works as expected (rehides, overlay is removed). The issue is how the sideNav function works, as it does its action asynchronously, allowing for 2 calls simultaneously to occur.  This PR should be closed and a separate one made to fix this issue.


the textview will crash app

I placed two textviews in two different view, and somehow one of textview is fine, but the other one will crash app when open the view.

Can you show me your code?

Sure, here is the code that crash app in simulator

@State private var isEditing:Bool = true
@State private var str_title: String = “"
@State private var str_content: String = “"
var body: some View {
VStack(alignment:.leading){
	Text("Title").lineSpacing(10).padding(10)
        	TextField("Placeholder", text: $str_title)
       	.onAppear{
               	self.str_title = “test title."
      	 }
        	 .textFieldStyle(RoundedBorderTextFieldStyle())
       	 .autocapitalization(.none)
      	 .font(.system(size: 20))
      	 .lineSpacing(10)
       	 .padding(10)

       	 Text("Detail").lineSpacing(10).padding(10)
	 TextView(
         		   text: $str_content,
         		   isEditing: $isEditing,
        		    placeholder: ""
      	  ).onAppear{
            	    self.str_content = “hello, test"
             }
     }.frame(height: 100)

   //there are some other code like Button Click action

}
————————————————————————————
The result was :  ” Thread 1: EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)”
I used swiftUI, Xcode 11.4
In other view, I use almost same code and it is working fine. The app was crash when presented to this view.  It took me half day to figure out it was the textview because I can’t locate the detail line and I didn’t  expect it was textview, everything will work fine if I disable textview or replace textfield with textview. And I was disable other code in the same view first and still crash until I  disable textview.
Hope it will help.
Thanks
Michael

On Apr 21, 2020, at 6:54 PM, Ken Mueller<EMAIL_ADDRESS>wrote:
Can you show me your code?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub https://github.com/kenmueller/TextView/issues/15#issuecomment-617500193, or unsubscribe https://github.com/notifications/unsubscribe-auth/AKP7XHIBICVSFIPNBRWL7G3RNZE37ANCNFSM4MNWMEUA.

Hmm... Try removing the .onAppear on the TextView.

I did, and it still crash .
I guess two reason:
1: presented
2: two textview in same app

Thanks
Michael

On Apr 22, 2020, at 3:03 PM, Ken Mueller<EMAIL_ADDRESS>wrote:
Hmm... Try removing the .onAppear on the TextView.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub https://github.com/kenmueller/TextView/issues/15#issuecomment-618064295, or unsubscribe https://github.com/notifications/unsubscribe-auth/AKP7XHIG77WRWEPHLJOHALTRN5SUPANCNFSM4MNWMEUA.

I don't see two TextViews in that view. If you could share your repository I could take a look and see what the issue is.

The code of the other view is almost same
——————————
TextView(
text: $str_content,
isEditing: $isEditing,
placeholder: messageinfo.messagecontent
).onAppear{
self.str_content = self.messageinfo.messagecontent
}.frame(height: 100)
—————————---
But the view never cause crash, and this view was show by NavigationLink
Thanks
Michael

On Apr 23, 2020, at 1:10 AM, Ken Mueller<EMAIL_ADDRESS>wrote:
I don't see two TextViews in that view. If you could share your repository I could take a look and see what the issue is.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub https://github.com/kenmueller/TextView/issues/15#issuecomment-618250495, or unsubscribe https://github.com/notifications/unsubscribe-auth/AKP7XHKKC52A7ND2K35CQATRN7ZW5ANCNFSM4MNWMEUA.

In my App-Store-available app, two TextViews in the same view works fine.

It works!!! Thank you so much!
Do you mind tell me more  detail about why it crash app when two textviews or more textviews ?
Thanks
Michael

On May 13, 2020, at 5:48 AM, Shibo Lyu<EMAIL_ADDRESS>wrote:
In my App-Store-available app, two TextViews in the same view works fine.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub https://github.com/kenmueller/TextView/issues/15#issuecomment-627960250, or unsubscribe https://github.com/notifications/unsubscribe-auth/AKP7XHJKW4BMXQVC6YD2PCDRRKJLRANCNFSM4MNWMEUA.


update json parser

https://nvd.nist.gov/vuln/detail/CVE-2018-7489

@strehle What's the story here? Do you think this change is needed?

Story is the CVE https://nvd.nist.gov/vuln/detail/CVE-2018-7489
and related information from https://github.com/FasterXML/jackson-databind/issues/1931 which means in <IP_ADDRESS> and 2.9.5 fixed, but UAA uses 2.9.4 and 2.9.5 is not released yet.

hi @jhamon  , update available, therefore please use it for next version


Game Component

Userstory
As a Player, I want to be able to see the state of the game including the terrain of the map and unit locations.
Details
This component will be extremely pared down for the MVP.
It will display one tile for every Location on the Map for the given Game. Tiles will be 50px x 50px thus a map that is 5 x 5 will be 250px x 250px.

A green tile is displayed if the Location is NOT occupied
A red tile is displayed if the Location is occupied

Not implementing


Generate a markdown or JSON list of contributors for a project and update in Readme contributors sesion

Update contributors in a single project
Update contributors in multiple projects
Update contributors in All projects under an organization or a user

@charithsoori I'm interested in taking this up, could you elaborate on what exactly you are looking for?

Thats great .
Intention is to append Collaborators and Contributors (name,avatar and url) to readme file under Collaborators and Contributors  section

@charithsoori Do you want this to be done manually ie. a change to the Markdown README.md file?

Basically list of collobarators should be generated programmatically for each repo in README.md.

It should be a clip command . Just like we add labels using cmd
On Sunday, October 23, 2016, Divay Prakash<EMAIL_ADDRESS>wrote:

@charithsoori https://github.com/charithsoori Do you want this to be
done manually ie. a change to the Markdown README.md file?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/99xt/github-manager-cli/issues/24#issuecomment-255603959,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAebGOuKpcV_-iDr3tunXCxcoV6zMUj8ks5q26LMgaJpZM4KeMDf
.

--
Sent from IPhone


Notification

Work to be done:

add general notices page
add tenders page

I can't self assign. Made this issue to ensure no one else takes up the same task. @fahad-israr @Saratchandraogirala

Closing the issue against PR #48


global option to disable/enable add statusbar on fullscreen detection

this bug was driving me insane the last few days because I was not able to see if its produced by cordova-plugin-statusbar, meteor 1.3beta11 or framework7.
http://framework7.io/docs/status-bar.html
please add an option to manually disable/enable the auto detection which is adding a statusbar when the app is in fullscreen or not.
Problem with cordova builds on iOS Device/Simulator
I had the problem that your auto detection was adding some kind of margin/padding on top of my view so I had my native ios statusbar and an empty space with the same size right under the native statusbar. this space was driving me crazy because it even appears when I dont add a statusbar-overlay div in my html container. The detection code was adding the with-statusbar-overlay so the space was empty and you have seen the background color of body.
to fix this removed the complete statusbar block in the css
but this is just a workaround because the fake html statusbar is now broken and cant be used anymore. It would be nice if it would be possible to disable this auto detection or make it more stable to avoid the statusbar when its not necessary.

I had the same problem yesterday, you can hide the statusbar with
statusbarOverlay: true;
within
var myApp = new Framework7();
Its very hidden in the docs: http://framework7.io/docs/init-app.html

Detection works correct. It happens because i guess you hide/show statusbar in deviceready event AFTER you init Framework7. And as @martinr77 said there is an statusbarOverlay app parameter to control it

I have this same problem and I have tried adding statusbarOverlay: true into the new Framework7() call in app.js. This is not woking, I literally cannot get rid of this top gap. I'd prefer an official solution and not to change the core css if possible. I'm using the latest build of Framework 7 and Phonegap. Please help.

There is no statusbarOverlay parameter, check docs please http://framework7.io/docs/statusbar.html#statusbar-app-parameters

@nolimits4web Thank you for the reply Vladimir, and thank you for your amazing framework. Sorry for posting a silly comment without checking the documentation. But I still can't get rid of the gap at the top of each of my pages. Do you have any idea what causes this?

Do you mean the gap between navbar and the list? This is the default CSS margin on .list. You can disabled it by no-margin class on list

Excellent! So I assume I can add this no-margin class to the first element within .page-content on each page. Thank you.


add rudimentary zio-stream support

This is still a work in progress and is missing tests and some implementations. Feedback welcome.
That being said, zio streams don't translate well to a reactive-streams style api. Especially ZSink is kinda dodgy.
Zio streams are completely functionally pure, while reactive streams rely on impure behavior here and there. Especially when subscribing, cancelling and in subjects.
Speaking of which, I have no Idea how I should implement subjects because ZStream and ZSink both are abstract classes and not traits, so they cannot be combined.
This approach currently includes the following type aliases:
type TSink[A]   = ZSink[Any, Throwable, A, A, Unit]
type TStream[A] = ZStream[Any, Throwable, A]

These are necessary to pass the type to the type parameter of Sink and Source respectively.
I thought this would look a little nicer than using type lambdas.
The T in TSink and TStream stands for Task since their static type parameters are identical to zio's type Task[A] = ZIO[Any, Throwable, A]

That is awesome! :heart:
Thank you so much, I always wanted zio-stream to be supported.
What this PR also shows is that we should really return effect types for the function onNext, onError on Observer and subscribe on Observable. All the usages of unsafeRun show this problem.

In the long-run, we could think about support the Environment type for streams. That would make a super nice integration for ZIO.

Speaking of which, I have no Idea how I should implement subjects because ZStream and ZSink both are abstract classes and not traits, so they cannot be combined.

I think, it is okay to leave out Subjects. I am not even sure, whether the typeclasses around Subject like CreateSubject belong in this library. We can always create a colibri subject from anything with a Source and Sink instances. It just gets to complex and, as you say, do not translate well in all cases.

What this PR also shows is that we should really return effect types for the function onNext, onError on Observer and subscribe on Observable. All the usages of unsafeRun show this problem.

Yes, not returning F[_] on those is annoying to work with when implementing a library that tries to be as pure as zio does. I can imagine that the same problems will also arise when implementing fs2.
Right now the runtime also has to be passed implicitly which is not very zio-like.
Zio.runtime.map(runtime => ???): URIO[R, A] would be the way to go, if we need to use a runtime at all. That would also be compatible with cats if I am not mistaken.
Supporting environments is a different beast, but I am not sure if we should at all. Especially in outwatch it would require to pass the environment through the entire library using something like cats-mtl's Ask.
Right now I am providing the environment to the stream before giving it to outwatch which looks like this:
object Example extends zio.App {
  def run(args: List[String]): ZManaged[zio.ZEnv, Nothing, ExitCode] = for {
    stream = ZStream.fromSchedule(Schedule.spaced(1.second) >>> Schedule.forever)
    streamWithEnv <- ZIO.access.apply(env => stream.provide(env))
    _ <- OutWatch.renderReplace[Task]("#app", div(streamWithEnv)).ignore
  } yield ExitCode.success
}

I do not use any Subjects at all in my own code. I am experimenting with the actor pattern instead, especially zio-actors looks interesting.
I have this typed actor message passing project which I would like to release at some point, but currently it's not much of a library.

Supporting environments is a different beast, but I am not sure if we should at all. Especially in outwatch it would require to pass the environment through the entire library using something like cats-mtl's Ask. Or maybe using something like izumi's BIO, but that looks insane to me. I am not sure if I'd like the idea of having generic trifunctor types allover the library, although it will probably be faster than mtl.

Actually, we are kind of doing this in a PR in outwatch. We make the VDomModifier[Environment] have a type parameter for the Environment. So normally, you work with VDomModifier[Any]. But you can actually render Kleisli or ZIO in your dom tree and provide the environment only at the end, when rendering :)

Maybe it would also be possible to wrap the whole VDomModifier file in a trait since the environment doesn't change down the tree, right?

What this PR also shows is that we should really return effect types for the function onNext, onError on Observer and subscribe on Observable. All the usages of unsafeRun show this problem.

I feel like this won't be as trivial as implementing some unsafe zio stream conversions.
Generally what you mean is to implement sink as follows, right?
trait Sink[F[_], -G[_]] {
  def onNext[A](sink: G[A])(value: A): F[Unit]
  def onError[A](sink: G[A])(error: Throwable): F[Unit]
}

Generally what you mean is to implement sink as follows, right?

Yes, kind of. But I would pull the F[_] into the method, like this:
trait Sink[-G[_]] {
  def onNext[F[_], A](sink: G[A])(value: A): F[Unit]
  def onError[F[_], A](sink: G[A])(error: Throwable): F[Unit]
}

Thereby trying to reduce the number of times F[_] has to be mentioned. To me it makes sense, that the effect type can be selected for each method. What do you think?

This PR depends on #126

This PR depends on #126

I took the liberty to rebase this PR on the current master in #170. Thank you so much :)


Release CSV with results of simulations

I would love to be able to download a file with the results of the simulations. I am curious to see how states are correlated with each other in your model. Thank You. I love your model. It's the best, most open model in existence. I hope more data journalists follow your lead.

Done now. Linked at the bottom of our site https://projects.economist.com/us-2020-forecast/president


SuperCooKey – A SuperCookie Built Into TLS 1.2 and 1.3

I am not aware if this has been addressed in upstream Chromium but I thought it may be worth mentioning (perhaps another flag to implement?):
https://www.privateinternetaccess.com/blog/2018/11/supercookey-a-supercookie-built-into-tls-1-2-and-1-3/

AFAIK 0-RTT is not implemented in Chromium right now and this should not be an issue. This might change with future releases though.

You may be right but considering how serious this sounds it deserves a more in-depth look.

Wow nice find anchev. Looks like they are actively working on it right now in chromium.
Interesting flags

@azdps the link you shared seems to be about QUIC flags. How is that related?
BTW speaking of QUIC: I see it as the next anti-privacy thing by G because Tor works with TCP only. Of course that's a whole other big topic to discuss separately.

Zero Round Trip Time Resumption (0-RTT) is included into Alphabet (Google) efforts.
A good explanation is here

Zero Round Trip Time Resumption (0-RTT) is included into QUIC, an Alphabet (Google) effort.
A good explanation is here


adding missing link to github page

Type: Missing
Summary:
adding missing link to github page
Details:
missing link to github page
Resolution:
adding missing link to github page
Affected definitions:

deodr 0.1.19

@martinResearch The commit ID you provided is for version 0.1.14, but submitted it for version 0.1.19. It looks like the commit ID for 0.1.19 is https://github.com/martinResearch/DEODR/commit/cd59689e56566077e217ac5987fddc71a0914d3f.
Which version are you trying to curate?

I would like to curate version 0.1.19  , what should I do ?


Monitoring TimeSeries.Query docs: broken links

Today (9 March), I received a notice from a link checker that the file at http://gcloud-python.readthedocs.io/en/latest/monitoring/query.html had two bad links to the Stackdriver Monitoring API reference.
Here are two warnings I found:
W,https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.timeSeries/list#Aligner,http://gcloud-python.readthedocs.io/en/latest/monitoring/query.html,Anchor: Aligner not found.
W,https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.timeSeries/list#Reducer,http://gcloud-python.readthedocs.io/en/latest/monitoring/query.html,Anchor: Reducer not found.
The Aligner and Reducer tags are no longer in the monitoring/api/ref_v3/rest/v3/projects.timeSeries/list.html file. This is a generated file, and in the most recent regeneration of the API (published on 8 March), these two tags and the content associated with them was moved (by the generating tool) to monitoring/api/ref_v3/rest/v3/projects.alertPolicies.html.
Here's the alertPolicies page.
I apologize for this. I was able to pre-emptively fix the links in my own docs that this change would break, but I had no way to know from where else these anchors might be linked to. And I cannot "fix" this with the usual URL redirects mechanism we use when pages move. This is content in a page.
I have filed a bug against the generator for this behavior.

@chemelnucfin can you take care of this?


Bump to 2.68.0

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.


Add controller revision resource

Short description:
Add controller revision resource to ocp_resources
More details:
controller revision is used to control and log the version (changed on edits) of the resource it is attached to

!verified

!verified

!verified

!cherry-pick v4.12

!cherry-pick v4.12


WIP: Pretty results of dump() for Syntax

The result of dump() with Syntax is not useful. For example,
the dumped result of Tests/SwiftSyntaxTest/Inputs/closure.swift is the following:
▿ // A closure without a signature. The test will ensure it stays the same after
// applying a rewriting pass.
let x: () -> Void = {}
  ▿ data: SwiftSyntax.SyntaxData
    - parent: nil
    ▿ absoluteRaw: SwiftSyntax.AbsoluteRawSyntax
      - raw: // A closure without a signature. The test will ensure it stays the same after
// applying a rewriting pass.
let x: () -> Void = {} #0
        ▿ super: Swift.ManagedBuffer<SwiftSyntax.RawSyntaxBase, Swift.UInt64>
          ▿ header: SwiftSyntax.RawSyntaxBase
	  ...

This patch improves this result to the following:
▿ SourceFileSyntax
  ▿ statements: CodeBlockItemListSyntax
    ▿ CodeBlockItemSyntax
      ▿ item: VariableDeclSyntax
        - attributes: nil
        - modifiers: nil
        ▿ letOrVarKeyword: TokenSyntax
          - text: "let"
          ▿ leadingTrivia: SwiftSyntax.Trivia
            ▿ pieces: 4 elements
              ▿ TriviaPiece
                - lineComment: "// A closure without a signature. The test will ensure it stays the same after"
                ...

@swift-ci Please test

I'm working for necessary tests.

@swift-ci please test

Build failed
Swift Test OS X Platform
Git Sha - 9d1393f72f790494bf2a40cc4606d7187f3cb6c3

I added the tests for full output of a Syntax node against the expected string at 1ff1a22.
Then, I found type names without the thier module name. But it was not intended so I also fixed it at 5fc0f00.

@Kuniwak Thank you for your patience. Could you resolve the conflict?

I'm reading the diff for resolving the conflict.

@rintaro I resolved the conflict.

@swift-ci please test

Build failed
Swift Test OS X Platform
Git Sha - 5fc0f00c6af94bfd3e426ad05f922cfb0bc48c4c

Thanks again, @Kuniwak!