ASGI - Starlette Framework

We will build support in our agent for the ASGI web framework Starlette.

Glad to see this. Starlette is an amazing framework and is, in conjunction with fastapi, seeing a lot of adoption.
Just in case you're planning to leverage exclusively newrelic.agent.register_application in application code or newrelic-admin run-program from the command line to patch in the agent, could you also expose a middleware similar to this? It would make integration a lot easier.

There's a bug in previous version that I assume it's happening only in FastAPI. I opened this issue.


Bugfix/block-rpcbind-when-not-needed

This reverts commit 1e49a20be196b62ce837e06da610fa3d6b75334a.
rpcbind should only be installed if needed. Otherwise should be removed.

@bra1ncramp Can you please update the PR description to clearly explain why this commit is being reverted?

See also this commit.


[release-4.6] Bug 1940649: Allow non-CSV-owned ServiceAccounts to satisfy CSV requirements.

The existing check, intended to prevent a race condition that could
occur during CSV upgrades, marks a ServiceAccount as NotPresent when
it has at least one owner but is not owned by the current CSV. It's
expected for the ServiceAccount "default" not to be have an
ownerreference to a CSV, so the check can be relaxed to only consider
owners of kind ClusterServiceVersion.
This also combines two ServiceAccount checks that were independently
added to address the same race condition into a single check.

/bugzilla refresh
/lgtm

/retest


unable to setup tiller-tls on 0.7.2

Hi!
I'm trying to make swift work with a tls enabled tiller without luck. After adding the following parameters to swift run:
        - --tiller-ca-file=/etc/swift-certs/ca.pem
        - --tiller-client-cert-file=/etc/swift-certs/cert.pem
        - --tiller-client-private-key-file=/etc/swift-certs/key.pem
        - --tiller-insecure-skip-verify

and having tiller tls secured (helm with --tls works flawlessly), if a curl swift using http I get:
*   Trying <IP_ADDRESS>...
* Connected to swift.kube-system.svc (<IP_ADDRESS>) port 80 (#0)
> GET /tiller/v2/version/json HTTP/1.1
> Host: swift.kube-system.svc
> User-Agent: curl/7.47.0
> Accept: */*
>
< HTTP/1.1 503 Service Unavailable
< Access-Control-Allow-Methods: POST,GET,OPTIONS,PUT,DELETE
< Access-Control-Allow-Origin: *
< Content-Type: application/json
< X-Content-Type-Options: nosniff
< Date: Fri, 09 Mar 2018 11:12:26 GMT
< Content-Length: 44
<
* Connection #0 to host swift.kube-system.svc left intact
{"code":14,"message":"transport is closing"}

swift logs:
I0309 11:16:23.274773       1 resolver_conn_wrapper.go:68] dialing to target with scheme: ""
I0309 11:16:23.274832       1 resolver_conn_wrapper.go:117] ccResolverWrapper: sending new addresses to cc: [{tiller-deploy.kube-system:44134 0  <nil>}]
I0309 11:16:23.274847       1 clientconn.go:741] ClientConn switching balancer to "pick_first"
I0309 11:16:23.274893       1 pickfirst.go:71] pickfirstBalancer: HandleSubConnStateChange: 0xc4202703a0, CONNECTING
I0309 11:16:23.276677       1 pickfirst.go:71] pickfirstBalancer: HandleSubConnStateChange: 0xc4202703a0, READY
I0309 11:16:23.276931       1 pickfirst.go:71] pickfirstBalancer: HandleSubConnStateChange: 0xc4202703a0, TRANSIENT_FAILURE
I0309 11:16:23.276954       1 pickfirst.go:71] pickfirstBalancer: HandleSubConnStateChange: 0xc4202703a0, CONNECTING
I0309 11:16:23.276963       1 pickfirst.go:71] pickfirstBalancer: HandleSubConnStateChange: 0xc4202703a0, TRANSIENT_FAILURE
W0309 11:16:23.276931       1 server_interceptors.go:97] {"error":"rpc error: code = Unavailable desc = transport is closing","grpc.code":"Unavailable","grpc.method":"GetVersion","grpc.service":"hapi.services.tiller.ReleaseService","grpc.time_ms":0.215,"level":"warning","msg":"finished client unary call","span.kind":"client","system":"grpc"}
W0309 11:16:23.277096       1 clientconn.go:1277] grpc: addrConn.transportMonitor exits due to: context canceled

and using https I get:
*   Trying <IP_ADDRESS>...
* Connected to swift.kube-system.svc (<IP_ADDRESS>) port 443 (#0)
* found 148 certificates in /etc/ssl/certs/ca-certificates.crt
* found 592 certificates in /etc/ssl/certs
* ALPN, offering http/1.1
* SSL connection using TLS1.2 / ECDHE_RSA_AES_256_GCM_SHA384
* 	 server certificate verification SKIPPED
* 	 server certificate status verification SKIPPED
* 	 common name: swift (does not match 'swift.kube-system.svc')
* 	 server certificate expiration date OK
* 	 server certificate activation date OK
* 	 certificate public key: RSA
* 	 certificate version: #1
* 	 subject: CN=swift
* 	 start date: Fri, 09 Mar 2018 08:48:39 GMT
* 	 expire date: Thu, 04 Mar 2038 08:48:39 GMT
* 	 issuer: CN=tiller
* 	 compression: NULL
* ALPN, server accepted to use http/1.1
> GET /tiller/v2/version/json HTTP/1.1
> Host: swift.kube-system.svc
> User-Agent: curl/7.47.0
> Accept: */*
>
< HTTP/1.1 503 Service Unavailable
< Content-Type: application/json
< Date: Fri, 09 Mar 2018 11:14:48 GMT
< Content-Length: 60
<
* Connection #0 to host swift.kube-system.svc left intact
{"code":14,"message":"all SubConns are in TransientFailure"}

and swift logs nothing.
Also I found that the documentation for securing the connection (https://appscode.com/products/swift/0.7.2/guides/security/) specifies the parameters
--tiller-cacert-file string        File containing CA certificate for Tiller server
--tiller-client-cert-file string   File container client TLS certificate for Tiller server
--tiller-client-key-file string    File containing client TLS private key for Tiller server
which doesn't exist (they should be  --tiller-ca-file, --tiller-client-cert-file, - --tiller-client-private-key-file)

Thanks for pointing out the issues in docs. I have updated them.
Regarding tiller tls, remove the flag --tiller-insecure-skip-verify and check. When --tiller-insecure-skip-verify is set, Swift will try to connect without using any cert, as you can see here: https://github.com/appscode/swift/blob/master/pkg/connectors/common.go#L42
Let me know if this fixes the issue.

Ok, I thought this option was to disable certificate validation, not to disable https.
After removing it, I found that although I run swift with the option:
--tiller-endpoint=https://tiller-deploy:44134
swift is complaining about:
W0313 13:25:55.289577       1 clientconn.go:830] Failed to dial tiller-deploy.kube-system:44134: connection error: desc = "transport: authentication handshake failed: x509: certificate is valid for tiller-deploy, not tiller-deploy.kube-system"; please retry.

I modified the cert to be valid for tiller-deploy.kube-system and it is working now, but it seems swift is not using tiller-endpoint properly (or I misunderstood the option)
regards,

I have updated the doc to point out that you should include the following names in your Tiller server cert as subject alternative name:

.
..svc

This will allow Swift to connect to it whether running same namespace or different namespace.


unityhub: 2.3.2 -> 3.4.1

Description of changes
Resolves #176783.
Major version bump of unity hub, switches from appimage installation to new deb installation.
Main thing I'm not sure on is the difference between targetPkgs and multiPkgs in this situation. Which should I use for all these libraries?

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
22.11 Release Notes (or backporting 22.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

I ran the app, logged in. At some point, I wanted to change the project directory, so I clicked a button that was going to open a file explorer. It crashed. Now I cannot open unityhub anymore, it crashes with a gpu related error:
[162555:1227/174555.154527:ERROR:gpu_process_host.cc(974)] GPU process exited unexpectedly: exit_code=256
[162555:1227/174555.354212:ERROR:gpu_process_host.cc(974)] GPU process exited unexpectedly: exit_code=256
[162555:1227/174555.536978:ERROR:gpu_process_host.cc(974)] GPU process exited unexpectedly: exit_code=256
[162555:1227/174555.680980:ERROR:gpu_process_host.cc(974)] GPU process exited unexpectedly: exit_code=256
[162555:1227/174555.804655:ERROR:gpu_process_host.cc(974)] GPU process exited unexpectedly: exit_code=256
[162555:1227/174555.934669:ERROR:gpu_process_host.cc(974)] GPU process exited unexpectedly: exit_code=256
[162729:1227/174555.939717:ERROR:gpu_init.cc(481)] Passthrough is not supported, GL is disabled, ANGLE is

Not sure if this is reproducible by others or a problem on my end.

Temporary workaround:
unityhub --disable-gpu

Hm can't seem to reproduce it on my end, might be an upstream electron error. I'll do some more research.

@huantianad I gave up as unityhub was freezing the whole xserver with simple demo projects. Not sure if it's related to either nvidia drivers or to x11 (versus wayland).

Huh I haven't experienced that myself on Nvidia and X11 myself. There was a recent bug with the editor that could cause it to crash on Linux, but probably unrelated.

Could be also related to me using a different kernel and the beta nvidia driver:
  boot.kernelPackages = pkgs.linuxPackages_xanmod;
  hardware.nvidia.package = config.boot.kernelPackages.nvidiaPackages.beta;

I don't know if this might help, and it is not strictly related to UnityHub, but I personally have had the best experience using Unity 2021.2.17f1, as other versions fail to launch, or can crash when the Play button is pressed.

@headblockhead is this the same error as mentioned in this unity bug report?

I don't believe so, as I have done some testing, and Unity LTS 2021.3.16f1 works, but Unity 2022.2.2f1 has some weird errors and graphical issues rendering the Universal Render Pipeline example project - as seen in the images.

Both were marked as fixed for the issue you sent me, and the symptoms don't match what I experienced before, so I don't believe that that issue is related.

@headblockhead I see, I personally don't use unity 2022, only 2021 so I haven't encountered this issue.

I've made the requested changes, as well as split the packages into targetPkgs and multiPkgs, which I'm not sure is necessary.

Gonna @SuperSandro2000 for further review

I should mention that I tried this, and had to disable firewall for signup to work

Interesting, I didn't sign up in the hub itself, just on their website, so I didn't notice anything. Is there anything we could do about that?

Yeah, similar experience here.. The signup process is basically:

open the hub
click sign in, it opens the default browser window (likely with xdg-open)
sign in on the browser, it redirects to a unityhub://login?... URL <-- firefox by default (?) prevents this from going through
if x-scheme-handler is set up correctly, and the browser allows redirection, the hub picks up the URL <-- possible failure point
once the token is picked up from the URL, finalize the sign-in process in the hub <-- fails here because of firewall (?)

I'm not sure how much of this process are we supposed to streamline from our side.

Well it's obviously a NixOS issue (thus the package may already be fine as is, I haven't tested it yet, maybe I'll come to this later).
So I guess the best way to fix it, is to provide a NixOS option programs.unityhub.enable that does all the relevant things necessary to run it on NixOS without issues (i.e. set xdg-mime and maybe open the relevant port(s) on the firewall, or at least assert that this port needs to be open, so that the user can set it manually).
But I think this can be done in a separate PR.

Just tested it, works great so far.
The xdg-scheme-handler is also working for me, as it's provided in the .desktop file.
@hyphenrf have you installed it correctly?

I've run it through a shell, so scheme handlers (expectedly) did not work for me, but the firewall problem was present no matter the way I installed it (shell or switch).

Do we know if the there's a specific port that the app uses? Ideally we'd be able to just open that port.
Imo this feels like a bug either in the app or NixOS: the user shouldn't be required to disable or open their firewall to have full functionality of Unity Hub. Maybe we should file a report upstream?

I do receive a crash when launching a new project based on the 3D (URP) template:
Builtin Sky manager started.
Caught fatal signal - signo:11 code:128 errno:0 addr:(nil)
Obtained 28 stack frames.
#0  0x00558a97df3edc in burst_signal_handler(int, siginfo_t*, void*)
#1  0x007f6834791bf0 in __sigaction
#2  0x007f683bad16d9 in g_type_check_instance
#3  0x007f683bac5d74 in g_signal_handlers_disconnect_matched
#4  0x00558a9940c033 in DisconnectGtkSignal(void*, GtkCallbackResponse (*)(), void*)
#5  0x00558a98c90cfd in MenuItem::~MenuItem()
#6  0x00558a98c95673 in RemoveItemFromMenu(std::list<MenuItem, std::allocator<MenuItem> >*, core::basic_string_ref<char>)
#7  0x00558a98c956b3 in RemoveItemFromMenu(std::list<MenuItem, std::allocator<MenuItem> >*, core::basic_string_ref<char>)
#8  0x00558a98c954e3 in MenuController::RemoveMenuItem(core::basic_string_ref<char>)
#9  0x00558a978fe81c in Menu_CUSTOM_RemoveMenuItem(ScriptingBackendNativeStringPtrOpaque*)
#10 0x00000041a2f243 in (wrapper managed-to-native) UnityEditor.Menu:RemoveMenuItem (string)
#11 0x00000041a2e51f in UnityEditor.EditorApplication/<>c__DisplayClass110_0:<CallDelayed>b__0 ()
#12 0x007f6654046258 in mono_get_runtime_build_info
#13 0x007f66541e513a in mono_runtime_invoke
#14 0x007f66541e5084 in mono_runtime_invoke
#15 0x00558a98212903 in scripting_method_invoke(ScriptingMethodPtr, ScriptingObjectPtr, ScriptingArguments&, ScriptingExceptionPtr*, bool)
#16 0x00558a981f0a67 in ScriptingInvocation::Invoke(ScriptingExceptionPtr*, bool)
#17 0x00558a9831e50f in Scripting::UnityEditor::EditorApplicationProxy::Internal_InvokeTickEvents(ScriptingExceptionPtr*)
#18 0x00558a9936ba93 in Application::TickTimer()
#19 0x00558a9940b67e in MainMessageIteration(void*)
#20 0x007f6837d1a8e4 in g_main_context_dispatch
#21 0x007f6837d1ac88 in g_main_context_iterate.constprop.0
#22 0x007f6837d1af73 in g_main_loop_run
#23 0x007f6834e1e3c5 in gtk_main
#24 0x00558a9940a81c in main
#25 0x007f683477d24e in __libc_start_call_main
#26 0x007f683477d309 in __libc_start_main
#27 0x00558a97599029 in _start

Is something missing from the environment?

@mainrs what Unity version is this template using?

@mainrs what Unity version is this template using?

2022.1.23f1 is what I have installed. However, it also crashes if I load a sample project.

Looks like this: https://issuetracker.unity3d.com/issues/linux-editor-crashes-at-burst-signal-handler-when-opening-floating-windows
Use a recent Unity version. I think this is unrelated to this PR

Yep, I also had the same crash before with older Unity versions and was fixed with an update.

This is the first time I'm trying to review a nixpkgs pr and not very good with Nix yet, so sorry if I'm missing something obvious.
Here's what I did and where I'm stuck:

I cloned nixpkgs
Ran  nix run nixpkgs#nixpkgs-review pr 204005
In the nix-shell I then ran unityhub
It starts correctly
I click "sign in"
It then tries to redirect me, I guess back to the hub application itself, but that doesn't seem to work

Is there something I can do to make the sign-in work from this nix-shell so I can test further?

It then tries to redirect me, I guess back to the hub application itself, but that doesn't seem to work
Is there something I can do to make the sign-in work from this nix-shell so I can test further?

I guess for that you may have to install it really, so that your host browser (or rather xdg-open) knows where to find the desktop file of unity-hub

It seems it picked up the unity installs I installed through the flatpak image. And opening a project with those worked.
I also installed a new version of Unity and created a new project with that, and that worked as well.

Yes Unity is installed in the home directory at ~/Unity that's why the flatpak package and this can share the same package.

It would be great if a new issue is created once this PR is merged to keep track for it. And to have a place to exchange and list the problems that still need a fix.

@Philipp-M @mainrs sounds good, I'll open an issue to track this.
Also just added git as a dependency, thanks!

Just to make sure, there isn't anything else I need to do to get this PR done, adding the approvals label should make it noticeable to nixpkgs maintainers to consider for merge? I'm assuming it's just somewhere in the backlog hehe

Perhaps @headblockhead, are you still having trouble with Unity 2022 and could this possibly be a NixOS and not unity bug?

Hello! Sorry for the late reply, I think that my issues are probably from Unity than NixOS as since upgrading to the latest LTS version of Unity, I have had no issues. Sorry for bringing it up!
If I find any other issues, I will check to make sure it is a NixOS problem first. :P

Thanks for letting me know! Yeah it’s tricky to tell sometimes if an error is because of Unity or NixOS, no need to regret mentioning it. Better to be thorough!


Show "unsupported" alert in Safari

This begins work on #36 but is blocked until message copy is available.

[x] Add UnsupportedModal component
[x] Use UnsupportedModal if we detect that we're in safari
[ ] Fix styling to match existing alert modal
[ ] Update copy

Code Review Checklist (to be filled out by reviewer)

[ ] Description accurately reflects what changes are being made.
[ ] Description explains why the changes are being made (or references an issue containing one).
[ ] The PR appropriately sized.
[ ] New code has enough tests.
[ ] New code has enough documentation to answer "how do I use it?" and "what does it do?".
[ ] Existing documentation is up-to-date, if impacted.

Currently (1fc405e) it looks like this:

Currently (6e7e78d) it looks like this:

Sorry about the re-formatting.


[Question] Aggregate trait API

I'm super interested in this crate, and just starting to dig through the codebase. I hope you don't mind me asking questions along the way?
I'm curious about the Aggregate trait. In particular, the Aggregate::handle method returns a Result<Option<Vec<Self::Event>>. Is there a semantic difference in this return type between an Option::None and an empty Vec? If there is, where is it documented?

Hey there! Glad to have you here and please, ask all the questions you want! 😄
Next time consider using the Github Discussion space rather than opening issues though 🙏🏻

I'm curious about the Aggregate trait. In particular, the Aggregate::handle method returns a Result<Option<Vec<Self::Event>>. Is there a semantic difference in this return type between an Option::None and an empty Vec? If there is, where is it documented?

No difference, when I wrote the API (too long ago) I was not aware that an empty Vec does not cause memory allocations 😄
This change was supposed to be part of the v0.5.0 release 👍🏻

Next time consider using the Github Discussion space rather than opening issues though

totally. i thought that as soon as i created the two issues... you used to be able to convert issues to discussions. did that feature get pulled, or do you need to be a repo owner to see the option?


executeCommand() can crash the application

If you send an empty ping the executeCommand method runs and crashes due to index out of bounds.
I don't know the best practice to work around this in order to stop the application from crashing. I did try a simple try-catch block (as seen in the screen clipping below) and it prevented it from crashing at least.

If anyone got a better solution do not hesitate to make suggestions.

I'm thinking we could split the input into two variables - one String/Enum that holds the command, and one list/array/string that holds the rest of the information to complete the command (which will be passed as a parameter to the function handling the command in question). If there is a lack of such information, like in your example with a simple "Ping\r\n", that list/array/string would simply be empty.
I think maybe this could be done already outside of this executeCommand function and then be passed in like parameter/parameters instead of the inputList. Or adjust that inputList to hold those values, like: string/enum  would be a string at index 0 and the list/array/string would be a string at index 1.
Sorry for really confusing explanation, but those are my thoughts 😀

Also if catching an error here we shouldn't really throw a new RunTimeException from the catch block. That will still most probably stop the thread handling the client, and instead an -Error response for invalid command might be the right answer.
Since we are sending a response with client.getOutputStream we can get some sort of IOException telling us something is wrong with the network connection. In that case it's more appropriate to throw an exception higher up in the hierarchy.
Maybe this method executeCommand should return the response as String or List or byte[] instead of sending the response to the socket directly? That would have some positive things:
We don't need to take the Socket as a parameter.
No IOExceptions to handle in our code.
We can write Unit tests for the method if it's made public.


update author and date of article that was updated recently

Hi @crwilcox, I'm your friendly neighborhood Azure Pull Request Bot (You can call me AZPRBOT). Thanks for your contribution!

It looks like you're working at Microsoft (crwilcox). If you're full-time, we DON'T require a contribution license agreement.

If you are a vendor, DO please sign the electronic contribution license agreement. It will take 2 minutes and there's no faxing! https://cla.azure.com.

TTYL, AZPRBOT;


Py3k migration

Should we switch to python 3.4 ? :)

closing, pull request is out-of-date
however, we should migrate to python3 as soon as possible


esp32:    uart_poll_in never ready for UART2 only

for this simple uart poll
#include <zephyr.h>
#include <sys/printk.h>
#include <device.h>
#include <drivers/uart.h>

void main(void)
{
    printk("Hello World! %s\n", CONFIG_BOARD);

    struct device * uart = device_get_binding("UART_2");
    if (!uart) {
        printk("no UART_2\n");
        return;
    }

    printk("going\n");
    unsigned char recvChar;
    for (;;) {
        int r = uart_poll_in(uart, &recvChar);
        if (r == 0) {
            printk("%c", recvChar);
        } else if (r == -1) {
            continue;
        } else {
            printk("\n\nERR %d\n\w", r);
        }
    }

}

this dts does not work:
/dts-v1/;

#include <espressif/esp32.dtsi>

/ {
	model = "esp32";
	compatible = "espressif,esp32";

	aliases {
		uart-0 = &uart0;
		i2c-0 = &i2c0;
	};

	chosen {
		zephyr,sram = &sram0;
		zephyr,console = &uart0;
		zephyr,shell-uart = &uart0;
		zephyr,flash = &flash0;
	};
};

&cpu0 {
	clock-frequency = <ESP32_CLK_CPU_240M>;
};

&cpu1 {
	clock-frequency = <ESP32_CLK_CPU_240M>;
};

&uart0 {
	status = "okay";
	current-speed = <115200>;
	tx-pin = <1>;
	rx-pin = <3>;
	//rts-pin = <22>;
	//cts-pin = <19>;
};
&uart2 {
	status = "okay";
	current-speed = <115200>;

	tx-pin = <17>;
	rx-pin = <16>;
};

but if you change uart2 to uart1,  it works fine. so this ONLY affects uart2. uart0 is also working.
just to be super clear, ONLY changing "uart2" to "uart1" while keeping the pin config.
- &uart2 {
+ &uart1 {

Hi @aep, are you using ESP32 WROOM or WROVER?
Could you describe the error? Building issues or  UART_2 device not found?

Wroom. As described in the subject, running the posted code works fine, but poll will just never return a character. Same with the async api.


Error installing  error: could not create '/etc/bash_completion.d': Permission denied

I get this issue:
Which seems to indicate that this MUST be installed as root because it is changing files in /etc
Is that necessary?
Installing collected packages: s4cmd
  Running setup.py install for s4cmd ... error
    Complete output from command /Users/x/devel/x.com/venv3.5/bin/python3.5 -u -c "import setuptools, tokenize;__file__='/private/var/folders/dw/60dbyvqd7v92pkm_515486x00000gw/T/pip-build-c3aqofg5/s4cmd/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /var/folders/dw/60dbyvqd7v92pkm_515486x00000gw/T/pip-_my13cw8-record/install-record.txt --single-version-externally-managed --compile --install-headers /Users/x/devel/x.com/venv3.5/include/site/python3.5/s4cmd:
    running install
    running build
    running build_py
    creating build
    creating build/lib
    copying s4cmd.py -> build/lib
    running build_scripts
    creating build/scripts-3.5
    copying s4cmd -> build/scripts-3.5
    copying and adjusting s4cmd.py -> build/scripts-3.5
    changing mode of build/scripts-3.5/s4cmd.py from 644 to 755
    running install_lib
    running install_data
    creating /etc/bash_completion.d
    error: could not create '/etc/bash_completion.d': Permission denied

    ----------------------------------------
Command "/Users/x/devel/x.com/venv3.5/bin/python3.5 -u -c "import setuptools, tokenize;__file__='/private/var/folders/dw/60dbyvqd7v92pkm_515486x00000gw/T/pip-build-c3aqofg5/s4cmd/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /var/folders/dw/60dbyvqd7v92pkm_515486x00000gw/T/pip-_my13cw8-record/install-record.txt --single-version-externally-managed --compile --install-headers /Users/x/devel/x.com/venv3.5/include/site/python3.5/s4cmd" failed with error code 1 in /private/var/folders/dw/60dbyvqd7v92pkm_515486x00000gw/T/pip-build-c3aqofg5/s4cmd/

I can also confirm this problem, using virtualenv. Specially for us, purist who use pip under user-space instead system-wide to avoid conflicts with package managers.

s4cmd is unusable in a lot of scenarios. Can't use it without elevating user to root permissions. Doesn't work in a lot of CI environments either. It would be great if the installation was as simple as s3cmd.


Develop Plan for Measuring Organizations’ Likelihood of Referral

Problem Statement
As ReportStream, we would like to measure an organizations’ likelihood of referring ReportStream to their peers so that we can gauge overall product satisfaction.
Hypothesis
Organizations will recommend the use of ReportStream to others in their industry/state
Results

We would like to be able to generate an average referral score
Question: what is the industry standard for measuring this?

Acceptance Criteria

Brainstorm and decide on a method for capturing this metric
Generate a list of currently onboarded Organizations
Create a plan to capture the metric
Create a plan for documenting, storing, and visualizing the metrics over time

TO DO

Write up the plan, including

Content for a survey
Ranking (what is the industry standard?)
Implementation recommendation for O&O team

Scratchpad

Notes for method to capture metric + plan for capturing metric

@drew-usds saw your question about Touchpoints - is this something we might consider here
@victorialb-usds created a draft research plan on user satisfaction need to focus purpose of research  can share in (potential) meeting on Friday 11/19
@rachelhanster do we have clarity on if it is just receivers or also senders VLB under assumption was receivers but think it might include both

This is for all reportstream users. Let's hold off considering touchpoints as an option for gathering this initial data.


dbeaver/pro#1489 don't write bytes for printStreamProgressMonitor

Closes dbeaver/pro#1489

Verified


fix texts

in sign in

should say "these steps" and not "this steps",
"magic link" and not "magic mail"

in recover

top help text should be removed (text above form input)

The issue isn't reproduce. Text is fixed as per ticket's requirement


Click event not working on a button positionned on the map

Hey,
I have a menu on the map with buttons in it.
All my click events on these buttons are not fired at all. The map seem to catch everything.
I also tried with your small project in the documentation to put the Fullscreen button on the map and it's not working either.
Do you have any idea how to fix this / how to do this?
Thanks!

Could you tell me your html code?
And did you read this description?
https://github.com/wf9a5m75/phonegap-googlemaps-plugin/wiki/Map#mapsetclickable

Thank you for your quick response.
The map.setClickable is not what I'm looking for because my menu is always there.
It's always on the map.
I'm trying to do the same thing you did with your searchBox here:
https://github.com/wf9a5m75/phonegap-googlemaps-plugin/wiki/Map#put-html-elements-on-the-map
But the button is not clickable, I always zoom on the map when I try to click on the button.

Turn on the debug option:
map.setDebuggable( true )
And could you take a screen record, then share it?
( video recording, then upload youtube or something)

Hey, thank you for your help.
It finally worked. I didn't realize HTML elements have to be in the map container to be able to catch events on them.
Also, I have two other questions:
1- I'm using a CSS3 transition to move a HTML element on the map when it is clicked. It works at the first click but when I try to click again on it after the transition, it's not working. Is there any refresh I need to do to make it work? I tried the refreshLayout() but it's still not working. If you have any ideas.
2- 50% of the time, my app is just a blank screen. The first view of my app needs a map. So I was thinking maybe there was some loading time issue with other plugins or with something else before trying to load the plugin or use it? Do you know anything about something like this? I'm thinking about that because sometimes it works perfectly.
Thank you!

Answer 1:
I have no idea. map.refreshLayout() is not related with CSS3.
And this plugin does not manage any CSS transition.
Answer 2:
Is there any error message in Logcat or xcode?

Wow that was quick!
There is no error in Xcode and I tried to log something at the initialization of my app but nothing happened. But I feel like Xcode is not logging all the errors which makes it hard to debug. But for sure, something is going wrong 50% of the time...

Do you wait the MAP_READY event properly?
var map = plugin.google.maps.Map.getMap(...);

// map.addMarker(...);   <-----Not good timing.

map.on(plugin.google.maps.event.MAP_READY, function() {

   map.addMarker(...);

});

I have tried that but I still have the blank screen.
But something is happening before going into any code because I have put log everywhere and nothing is displayed. I also don't have the usual message "your application is using google maps plugin" or something like that. It's probably a log coming from you.

Could you show me the screen capture?

Please check my answer at #395
I had some similar problems in the start of my app-development but managed to fix them.

For no console output problem, did you installed cordova console plugin? By default it is not installed in cordova 3 or later: https://github.com/apache/cordova-plugin-console
For javascript console.log to appear in xcode, you need this plugin, or you could inspect the console from Safari's Web Inspector.

@iDams Any update for this?

Hey,
Sorry for the long time response.
For the blank screen, it still happens sometimes but less than before. I don't know what changed.
I am waiting for the map ready event before adding markers. I didn't before so maybe it was part of the problem. When the blank screen appears none of my console log appear at all, so it's not even going through the code. Could it be a loading issue with all the plugins I use?
Here is a list of my plugin just in case:
com.googlemaps.ios 1.9.2 "Google Map iOS SDK for Cordova"
com.ionic.keyboard 1.0.4 "Keyboard"
com.ququplay.websocket.WebSocket 0.1.0 "WebSocket"
org.apache.cordova.camera 0.3.5 "Camera"
org.apache.cordova.console 0.2.13 "Console"
org.apache.cordova.device 0.3.0 "Device"
org.apache.cordova.dialogs 0.3.0 "Notification"
org.apache.cordova.file 1.3.3 "File"
org.apache.cordova.geolocation 0.3.12 "Geolocation"
org.apache.cordova.inappbrowser 0.6.0 "InAppBrowser"
org.apache.cordova.media-capture 0.3.6 "Capture"
org.apache.cordova.plugin.softkeyboard 1.0.3 "SoftKeyboard"
org.apache.cordova.statusbar 0.1.10 "StatusBar"
plugin.google.maps 1.2.4 "phonegap-googlemaps-plugin"
plugin.http.request 1.0.0 "phonegap-http-request"
Also, I am getting this Objective-C error but I'm having a hard time to debug it.
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'data parameter is nil'
Any tips to debug Objective-C errors? I am pretty sure it's coming from the bounds or the marker because it happened either when the app starts or when I move the map but I can't find what happened.

Regarding of blank screen, there was a similar person who is experienced like you.
In his case, he didn't wait the MAP_READY event.
#384
I guess your case is the same as his one.
var div = document.getElementById("map_canvas");
var map = plugin.google.maps.Map.getMap(div);

// You have to wait the MAP_READY event
map.addEventListener(window.plugin.google.maps.event.MAP_READY, function(map) {
    console.log('MAP READY');

    //map.addMarker();
});

@iDams
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'data parameter is nil'

is important information. Please post the whole xcode log, and the screen capture of Xcode.
Also if you are available, please take the screen record of iOS Simulator.
(Quick time) Read record your screen
http://support.apple.com/en-us/HT201066
or
iShowU
http://www.shinywhitebox.com/

Here is a screenshot of xCode with the full log

I'm not allowed by my company to show you the application sorry...

@iDams Thanks, but the screen shot of xcode is really unuseful.
Please show me the log (copy & past here), otherwise I can not help you.

And in order to confirm your JS steps, please add the below code in your platforms/ios/(your project)/Plugins/plugin.google.maps/GoogleMaps/GoogleMaps.m
Line 211 (if you use master)
https://github.com/wf9a5m75/phonegap-googlemaps-plugin/blob/master/src/ios/GoogleMaps/GoogleMaps.m#L211

NSLog("classAndMethod =%@", classAndMethod);

This outputs how did you execute JS code (just only class and method names, that does not include any data)

I saw your screenshot carefully, but I can not detect anything.
NSInvalidArgumentException means you pass invalid data that I don't design for it (typically number format is mismatch, or you pass JSON object rather than number, something like that).

Hmm I use a lot of JSON actually...
I'm going to add the NSLog and paste you the result.

At least I need to know what the methods order log.
Probably I don't need your JSON data at this moment.

I agree some people don't(can't) want to publish their code.
If your company allows to you share with me in closed, send me to my email<EMAIL_ADDRESS>Or if you use private git, invite me.
I'll keep your secret. (I'm not interested in your secret)

Here is the Xcode log with the NSLog, hope it helps.
2015-02-23 17:06:07.199 Zup[41152:5854149] DiskCookieStorage changing policy from 2 to 0, cookie file: file:///Users/phonegap/Library/Developer/CoreSimulator/Devices/4E090854-CCD7-4CD9-B94E-59DDD45422BD/data/Containers/Data/Application/C800A064-F35F-4D1C-A1C4-19C9C5C07B20/Library/Cookies/Cookies.binarycookies
2015-02-23 17:06:07.554 Zup[41152:5854149] Multi-tasking -> Device: YES, App: YES
2015-02-23 17:06:07.572 Zup[41152:5854149] Unlimited access to network resources
2015-02-23 17:06:07.590 Zup[41152:5854149]
Started backup to iCloud! Please be careful.
Your application might rejected by Apple if you store too much data.
For more information please read "iOS Data Storage Guidelines"
You could find it at the following address https://developer.apple.com/icloud/documentation/data-storage/ .
2015-02-23 17:06:07.954 Zup[41152:5854149] [CDVTimer][keyboard] 0.056982ms
2015-02-23 17:06:08.002 Zup[41152:5854149] [CDVTimer][file] 47.964036ms
2015-02-23 17:06:08.393 Zup[41152:5854149] [CDVTimer][statusbar] 390.475035ms
2015-02-23 17:06:08.393 Zup[41152:5854149] [CDVTimer][TotalPluginStartup] 439.049006ms
2015-02-23 17:06:08.962 Zup[41152:5854149] Resetting plugins due to page load.
2015-02-23 17:06:09.631 Zup[41152:5854149] This app uses phonegap-googlemaps-plugin version 1.2.4
2015-02-23 17:06:09.650 Zup[41152:5854149] locationManager::didFailWithError (null)
2015-02-23 17:06:09.717 Zup[41152:5854149] locationManager::didFailWithError (null)
2015-02-23 17:06:10.784 Zup[41152:5854149] Finished load of: file:///Users/phonegap/Library/Developer/CoreSimulator/Devices/4E090854-CCD7-4CD9-B94E-59DDD45422BD/data/Containers/Bundle/Application/DADE78B6-D2E9-4B5E-B2B4-348FD868E662/Zup.app/www/index.html
2015-02-23 17:06:11.130 Zup[41152:5854362] classAndMethod =Map.setOptions
2015-02-23 17:06:11.130 Zup[41152:5854369] classAndMethod =Map.setCenter
2015-02-23 17:06:11.131 Zup[41152:5854318] classAndMethod =Map.setZoom
2015-02-23 17:06:11.131 Zup[41152:5854315] classAndMethod =Map.getVisibleRegion
2015-02-23 17:06:11.131 Zup[41152:5854317] classAndMethod =Map.getCameraPosition
2015-02-23 17:06:11.132 Zup[41152:5854366] classAndMethod =Marker.createMarker
2015-02-23 17:06:11.161 Zup[41152:5854366] classAndMethod =Marker.setIcon
2015-02-23 17:06:11.192 Zup[41152:5854149] Google Maps SDK for iOS version: 1.9.14591.0
2015-02-23 17:06:12.788 Zup[41152:5854366] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'data parameter is nil'
*** First throw call stack:
(
0   CoreFoundation                      0x00000001091bef35 __exceptionPreprocess + 165
1   libobjc.A.dylib                     0x000000010c9dbbb7 objc_exception_throw + 45
2   CoreFoundation                      0x00000001091bee6d +[NSException raise:format:] + 205
3   Foundation                          0x000000010c6801bf +[NSJSONSerialization JSONObjectWithData:options:error:] + 67
4   Zup                                 0x00000001088e8b48 -[NSString(CDVJSONSerializing) JSONObject] + 120
5   Zup                                 0x00000001088e5486 __39-[CDVCommandQueue enqueueCommandBatch:]_block_invoke + 54
6   libdispatch.dylib                   0x000000010cd32ba6 _dispatch_call_block_and_release + 12
7   libdispatch.dylib                   0x000000010cd507f4 _dispatch_client_callout + 8
8   libdispatch.dylib                   0x000000010cd3b15d _dispatch_root_queue_drain + 1097
9   libdispatch.dylib                   0x000000010cd3c612 _dispatch_worker_thread2 + 52
10  libsystem_pthread.dylib             0x000000010d0e8ef8 _pthread_wqthread + 314
11  libsystem_pthread.dylib             0x000000010d0ebfb9 start_wqthread + 13
)
libc++abi.dylib: terminating with uncaught exception of type NSException
(lldb)

Ah, ok.
I guess you pass strings for marker.setIcon() instead of JSONObject, because I wrote wrong description.
The correct way to use marker.setIcon(), like this.
marker.setIcon({
    'url': 'www/images/icon-yellow.png'
});

This problem is fixed in the next version, but I haven't released it yet.
(Because many issues are still registered in the issue list)

I already had this issue and fixed it.
Now this the arguments I pass to setIcon:
{"url":"www/img/mypos.png","size":{"width":12,"height":12}}

Is your app fine everything?

What do you mean?

Is this issue still occurred?

Yes. The setIcon was already good, I fixed it few weeks ago. So this is not the problem :/

Ok, there is no more information in your log.
Please find out which statement cause this error by yourself (except if you share your code with me).

Tentatively, please insert many NSLog into setIcon_ in the Marker.m file,
then show me the log.
-(void)setIcon_:(GMSMarker *)marker iconProperty:(NSDictionary *)iconProperty
                pluginResult:(CDVPluginResult *)pluginResult
                callbackId:(NSString*)callbackId {
  NSString *iconPath = nil;
  CGFloat width = 0;
  CGFloat height = 0;
  CGFloat anchorX = 0;
  CGFloat anchorY = 0;

  NSLog(@"-----> setIcon_ is started.");

  // The `url` property
  iconPath = [iconProperty valueForKey:@"url"];
  NSLog(@"-----> iconPath = %@", iconPath);

  // The `size` property
  if ([iconProperty valueForKey:@"size"]) {
    NSDictionary *size = [iconProperty valueForKey:@"size"];
    width = [[size objectForKey:@"width"] floatValue];
    height = [[size objectForKey:@"height"] floatValue];
    NSLog(@"-----> width = %d, height = %d", width, height);
  }

  if (iconPath) {
    NSRange range = [iconPath rangeOfString:@"http"];
    if (range.location == NSNotFound) {
      Boolean isTextMode = true;

      UIImage *image;
      if ([iconPath rangeOfString:@"data:image/"].location != NSNotFound &&
          [iconPath rangeOfString:@";base64,"].location != NSNotFound) {

      NSLog(@"-----> Base64 icon");
        /**
         * Base64 icon
         */
        isTextMode = false;
        NSArray *tmp = [iconPath componentsSeparatedByString:@","];

        NSData *decodedData;
        if ([PluginUtil isIOS7_OR_OVER]) {
          decodedData = [[NSData alloc] initWithBase64EncodedString:tmp[1] options:0];
        } else {
          decodedData = [NSData dataFromBase64String:tmp[1]];
        }
        image = [[UIImage alloc] initWithData:decodedData];
        if (width && height) {
          image = [image resize:width height:height];
        }

        // The `anchor` property for the icon
        if ([iconProperty valueForKey:@"anchor"]) {
          NSArray *points = [iconProperty valueForKey:@"anchor"];
          anchorX = [[points objectAtIndex:0] floatValue] / image.size.width;
          anchorY = [[points objectAtIndex:1] floatValue] / image.size.height;
          marker.groundAnchor = CGPointMake(anchorX, anchorY);
        }

      } else {
      NSLog(@"-----> Load the icon from local path");

        /**
         * Load the icon from local path
         */
        image = [UIImage imageNamed:iconPath];

        if (width && height) {
          image = [image resize:width height:height];
        }
      }

      NSLog(@"-----> image is created.");
      marker.icon = image;
      // The `anchor` property for the icon
      if ([iconProperty valueForKey:@"anchor"]) {
        NSArray *points = [iconProperty valueForKey:@"anchor"];
        anchorX = [[points objectAtIndex:0] floatValue] / image.size.width;
        anchorY = [[points objectAtIndex:1] floatValue] / image.size.height;
        marker.groundAnchor = CGPointMake(anchorX, anchorY);
      }

      // The `infoWindowAnchor` property
      if ([iconProperty valueForKey:@"infoWindowAnchor"]) {
        NSArray *points = [iconProperty valueForKey:@"infoWindowAnchor"];
        anchorX = [[points objectAtIndex:0] floatValue] / image.size.width;
        anchorY = [[points objectAtIndex:1] floatValue] / image.size.height;
        marker.infoWindowAnchor = CGPointMake(anchorX, anchorY);
      }
      NSLog(@"-----> send plugin result.");
      [self.commandDelegate sendPluginResult:pluginResult callbackId:callbackId];
    } else {
      NSLog(@"-----> Load the icon from over the internet.");
      /***
       * Load the icon from over the internet
       */
      NSData *imgData = [self.iconCache objectForKey:iconPath];
      if (imgData != nil) {
      NSLog(@"-----> imgData != nil");
        UIImage* image = [UIImage imageWithData:imgData];
        if (width && height) {
          image = [image resize:width height:height];
        }
        marker.icon = image;
        [self.commandDelegate sendPluginResult:pluginResult callbackId:callbackId];
      } else {
        dispatch_queue_t gueue = dispatch_queue_create("GoogleMap_addMarker", NULL);
        dispatch_sync(gueue, ^{
          NSURL *url = [NSURL URLWithString:iconPath];
      NSLog(@"-----> url = %@", url);
          NSData *data = [NSData dataWithContentsOfURL:url options:NSDataReadingMapped error:nil];

      NSLog(@"-----> iconPath = %@", iconPath);
          [self.iconCache setObject:data forKey:iconPath];

          UIImage* image = [UIImage imageWithData:data];
          if (width && height) {
            image = [image resize:width height:height];
          }
      NSLog(@"-----> image is created");
          marker.icon = image;

          // The `anchor` property for the icon
          if ([iconProperty valueForKey:@"anchor"]) {
            NSArray *points = [iconProperty valueForKey:@"anchor"];
            CGFloat anchorX = [[points objectAtIndex:0] floatValue] / image.size.width;
            CGFloat anchorY = [[points objectAtIndex:1] floatValue] / image.size.height;
            marker.groundAnchor = CGPointMake(anchorX, anchorY);
          }

          // The `infoWindowAnchor` property
          if ([iconProperty valueForKey:@"infoWindowAnchor"]) {
            NSArray *points = [iconProperty valueForKey:@"infoWindowAnchor"];
            CGFloat anchorX = [[points objectAtIndex:0] floatValue] / image.size.width;
            CGFloat anchorY = [[points objectAtIndex:1] floatValue] / image.size.height;
            marker.infoWindowAnchor = CGPointMake(anchorX, anchorY);
          }

      NSLog(@"-----> send plugin result");
          [self.commandDelegate sendPluginResult:pluginResult callbackId:callbackId];
        });
      }
    }
  }
}

Ok I'm going to try that. Thanks.
Also, I have put a exception breakpoint and it gives me this.
Apparently it's coming from the JSON.

So with your NSLog, I got this:
2015-02-23 18:51:31.594 Zup[54597:5915716] -----> setIcon_ is started.
2015-02-23 18:51:31.594 Zup[54597:5915716] -----> iconPath = www/img/mypos.png
2015-02-23 18:51:31.594 Zup[54597:5915716] -----> width = 4, height = 173770741
2015-02-23 18:51:31.594 Zup[54597:5915716] -----> Load the icon from local path
2015-02-23 18:51:31.667 Zup[54597:5915716] -----> image is created.
2015-02-23 18:51:31.667 Zup[54597:5915716] -----> send plugin result.
2015-02-23 18:51:31.691 Zup[54597:5915716] Google Maps SDK for iOS version: 1.9.14591.0
2015-02-23 18:51:32.144 Zup[54597:5915716] Finished load of: file:///Users/phonegap/Library/Developer/CoreSimulator/Devices/4E090854-CCD7-4CD9-B94E-59DDD45422BD/data/Containers/Bundle/Application/36DA813F-3B5D-4889-A8BA-5B4BE82D3D63/Zup.app/www/index.html
And then the error.

Hmm, the height is really weird.

The value should be 4 as the same as width.

Could you show me the iconValue?
Insert the below code, please.
NSLog(@"-----> setIcon_ is started.");

NSLog(@"---iconProperty");
NSLog(@"%@", iconProperty);

2015-02-23 19:13:21.720 Zup[58052:5930202] -----> setIcon_ is started.
2015-02-23 19:13:21.720 Zup[58052:5930202] ---iconProperty
2015-02-23 19:13:21.733 Zup[58052:5930202] {
size =     {
height = 12;
width = 12;
};
url = "www/img/mypos.png";
}
2015-02-23 19:13:21.733 Zup[58052:5930202] -----> iconPath = www/img/mypos.png
2015-02-23 19:13:21.734 Zup[58052:5930202] -----> width = 4, height = 51111925
2015-02-23 19:13:21.734 Zup[58052:5930202] -----> Load the icon from local path
2015-02-23 19:13:21.789 Zup[58052:5930202] -----> image is created.
2015-02-23 19:13:21.789 Zup[58052:5930202] -----> send plugin result.

Ok, I think this issue is already fixed in the test branch.
Please try the test branch.
$> cordova plugin rm plugin.google.maps
$> rm -rf platforms/ios/(your project)/Plugins/plugin.google.maps
$> cordova plugin add https://github.com/wf9a5m75/phonegap-googlemaps-plugin#test --variable API_KEY_FOR_ANDROID=... --variable API_KEY_FOR_IOS=...

If you don't want to use the test branch, replace the setIcon_ method with this code
https://github.com/wf9a5m75/phonegap-googlemaps-plugin/blob/test/src/ios/GoogleMaps/Marker.m#L408-L606

I just tried your test branch and I still get the error unfortunately.
And I don't think the huge height is the problem because here is what I have when it's working good:
2015-02-24 11:29:36.517 Zup[63172:5956347] -----> setIcon_ is started.
2015-02-24 11:29:36.518 Zup[63172:5956347] ---iconProperty
2015-02-24 11:29:36.518 Zup[63172:5956347] {
size =     {
height = 15;
width = 15;
};
url = "www/img/marker_rtpush_2.png";
}
2015-02-24 11:29:36.518 Zup[63172:5956347] -----> iconPath = www/img/marker_rtpush_2.png
2015-02-24 11:29:36.518 Zup[63172:5956347] -----> width = 4, height = 185935861
But then when I move the map, the error appears at some point.

That is good news. Thanks for finding out. I'll wait for new updates from you.

Hey, so without doing anything except trying your test branch, I don't get the error anymore.
There might have a cache somewhere and this is why I was still having the error at the beginning.
Thank you.
Also now, I'm trying to debug the blank screen problem where I only see your log "This app uses phonegap-googlemaps-plugin version %@". And none of the logs in my application.
I have put NSLog in all the pluginInitialize function in GoogleMaps.m file but when the blank screen appears, it still goes until the end of this function.
So I have a question, which function is called after pluginInitialize? Because something happens between this function and the moment it goes to my application.

@iDams
In the test branch, I deprecated the marker image caching.
The marker image caching helps to improve the loading speed for the same icon, however, most of people doesn't use the same icons.
In the end, it causes out of memory error.
There is some code in the test branch, but I will remove them before releasing the next version.

After pluginInitialize() function, you will get deviceready event in the JS side.
Then you might call plugin.google.maps.Map.getMap() at the first time.
In www/googlemaps-cdv-plugin.js file, find getMap() method.
This method executes cordova.exec function.
cordova.exec(successCallback, errorCallback, PLUGIN_NAME, 'getMap', args);

https://github.com/wf9a5m75/phonegap-googlemaps-plugin/blob/test/www/googlemaps-cdv-plugin.js#L306-L311
cordova.exec() invites the native side.
In Cordova iOS version, Cordova framework always execute exec method in GoogleMaps.m file.
https://github.com/wf9a5m75/phonegap-googlemaps-plugin/blob/test/src/ios/GoogleMaps/GoogleMaps.m#L222
In this method, using refactoring technique, execute other methods.
For example,

cordova.exec(success, error, PLUGIN_NAME, "Map.setOptions", args) invites the setOptions method in the Map.m file
cordova.exec(success, error, PLUGIN_NAME, "getMap", args) invites the getMap method in the GoogleMap.m file.

Finally, the getMap method is executed.
https://github.com/wf9a5m75/phonegap-googlemaps-plugin/blob/test/src/ios/GoogleMaps/GoogleMaps.m#L140

code flow
(native) pluginInitialize() ->
   (js) deviceready ->
     (js) Map.getMap() ->
       (native) exec in the GoogleMaps.m ->
         (native) getMap() method ->
           (native) sendResult ->
             (js) successCallback or errorCallback

Thank you for all these information.
I might have find something but I'm not sure.
I have noticed that when the blank screen appears, it doesn't go in my event listener of the deviceready event. But apparently, you are using this event too and it always goes into yours. So the event is being fired but I'm not catching it sometimes.
Could you give some information about this code please?
document.addEventListener("deviceready", function() {
document.removeEventListener("deviceready", arguments.callee);
plugin.google.maps.Map.isAvailable();
});
I don't understand the removeListener part. It might be because of this that I can't catch it sometimes because of some loading/running time issue?

The deviceready event is fired from the Cordova framework, not from this plugin.
All Cordova plugin have pluginInitialize method.
The Cordova framework executes all the pluginInitialize methods, then fire the deviceready event.
The deviceready event is fired only one time. So you can not catch it. (And you don't need it)

And if you can not deviceready event when you get the black screen, you need to check the pluginInitialize methods of all plugins you uses.
success case
App start ->
   plugin1.pluginInitialize() -> ok ->
      plugin2.pluginInitialize() -> ok ->
         googlemaps.pluginInitialize() -> ok ->
           deviceready

error case
App start ->
   plugin1.pluginInitialize() -> ok ->
      plugin2.pluginInitialize() -> error -> no more.

At least until @iDams , I have never heard the black screen issue.
So I wonder one of plugins you use causes this error.

I finally found what was causing the blank screen error.
You were right, there was an error in another plugin I use (com.ionic.keyboard).
Sometimes, cordova.plugins.Keyboard is not defined. This is weird. I commented it and now it works!
Last problem, the app crash when I test on a real device. I think it's the memory crash you were talking about in another comment. This is happening when I move on the map and load other markers. I tried with less markers and it works fine.

Good job, @iDams
The last problem is probably already fixed, because you use the test branch.
The test branch does not cache marker images anymore.
So do you still happen, or no more (I hope)

I'm not using the test branch, I just replaced the _setIcon method with the code you gave me.
Is there anything else on the test branch?
Because my app crash with the new _setIcon method :/

Many issues are fixed in the test branch.
On Fri, Feb 27, 2015, 12:04 PM iDams<EMAIL_ADDRESS>wrote:

I'm not using the test branch, I just replaced the _setIcon method with
the code you gave me.
Is there anything else on the test branch?
Because my app crash with the new _setIcon method :/
—
Reply to this email directly or view it on GitHub
https://github.com/wf9a5m75/phonegap-googlemaps-plugin/issues/374#issuecomment-76462239
.

Oh I'm going to test this branch then and I'll let you know

So it's working better on the test branch but my app still crash when I unzoom and get more markers... :/

How many markers do you use?

Using many markers with custom images domain large memory.
Reduce the markers outside the display.
The marker cluster does that automatically, but it's still under development.

When I first load my map, I use about 400 markers and it's working fine.
But if I unzoom, it can go to 500 markers or more.
I thought about the marker cluster but as you said it's not developed yet for this plugin :/

Hey,
I've changed my way to display markers on the map so I have less markers now and it's working fine.
Also, my app was still crashing sometimes when I create markers with the same error as I told you at the beginning of this thread:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'data parameter is nil'
I finally found out why. It was because of a special character in the title parameter of the marker (an emoji) which mess up completely with the NSDictionnary that your plugins is creating for the marker. It might be useful to someone else so I thought I could share it.

Ahh, emoji. I didn't consider it.

Congratulation, and thank you for letting me know :)


provide an option to run swagger UI with custom server URL

Currently the Xpanse's server URL runs only with the default localhost URL.
We need to add a configuration to allow custom URLs when the application is hosted anywhere else.

I will do this.

@jinyangyang222 just an FYI.. after adding correct HTTP headers from LB.. the URL is updated. but it always shows HTTP.. It must be HTTPS in this specific case. Can you please see how springdoc handles this?

@jinyangyang222 i was able to get this working by adding correct headers on the load balancer. I would say we can close this.
Sorry for the confusion.

@jinyangyang222 i was able to get this working by adding correct headers on the load balancer. I would say we can close this. Sorry for the confusion.

Okay, that's okay. Let's close this one then

@jinyangyang222 sure. Let me keep this with me until i document what is exactly needed.


Loading 10x data from multiple Cell Ranger runs

❓ Questions and Help
Hello, I'm in a situation where I have barcoded data from multiple Cell Ranger runs, and I'm wondering if there's a recommended way to load all of the data into a single repertoire for combined analysis.

My apologies, I looked at the source and realized that repLoad can accept a list of paths and then I noticed that the documentation does in fact mention this as well.


Can't get the camera to work

Hey, I can see the camera working in your examples, and that's exactly what I need, but I don't seem to be able get even the basics working.
Maybe you could spot what I'm doing wrong:
<!DOCTYPE html>
<html lang="en">
    <head>
        <title></title>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">
        <style>
            * { padding 0; margin: 0; overflow: hidden; }
        </style>
    </head>
    <body>
        <script src="THREE_71/build/three.min.js"></script>
        <script src="THREE_71/THREE.TargetCamera.js"></script>
        <script>

            var container;
            var scene, camera, renderer;
            var box;

            init();

            function init() {

                container = document.createElement( 'div' );
                document.body.appendChild( container );

                // Basic 3d Evironment
                scene = new THREE.Scene();

                // Target Camera & Test Object
                //camera = new THREE.PerspectiveCamera( 45, window.innerWidth / window.innerHeight, 1, 2000 );
                camera = new THREE.TargetCamera( 45, window.innerWidth / window.innerHeight, 1, 2000 );
                scene.add(camera);
                //camera.position.set( 0, 0, 100 );

                var box = new THREE.Mesh(
                    new THREE.BoxGeometry( 10, 10, 10 ),
                    new THREE.MeshNormalMaterial()
                );
                camera.addTarget({
                    name: 'myTarget',
                    targetObject: box,
                    cameraPosition: new THREE.Vector3(0, 0, 100),
                    fixed: false,
                    stiffness: 0.1,
                    matchRotation: true
                });
                camera.setTarget( 'myTarget' );
                scene.add(box);

                // Lights
                scene.add( new THREE.AmbientLight( 0xffffff ) );

                // Renderer
                renderer = new THREE.WebGLRenderer({ antialiasing: true });
                renderer.setSize( window.innerWidth, window.innerHeight );
                container.appendChild( renderer.domElement );

                animate();
            }

            function animate() {
                camera.update();
                requestAnimationFrame( animate );
                renderer.render( scene, camera );
            }
        </script>
    </body>
</html>

I know the scene works when I put the THREE.PerspectiveCamera in there....

Hm, I wonder if the newer versions of THREE have changed something. I've not tested this in a while, esp. not with THREE r71... I'll try to have a gander soon for you.

Cheers mate.
Sent from my iPhone

On 13 Apr 2015, at 17:11, Luke Moody<EMAIL_ADDRESS>wrote:
Hm, I wonder if the newer versions of THREE have changed something. I've not tested this in a while, esp. not with THREE r71... I'll try to have a gander soon for you.
—
Reply to this email directly or view it on GitHub.

Are you just seeing a black screen?

Found the issue, should be fixed now. Do a pull from master and let me know if you're still having problems.

Yes that's exactly the problem....
Sent from my iPhone

On 14 Apr 2015, at 12:58, Luke Moody<EMAIL_ADDRESS>wrote:
Are you just seeing a black screen?
—
Reply to this email directly or view it on GitHub.

Will give it a shot when I get home....
Sent from my iPhone

On 14 Apr 2015, at 13:17, Luke Moody<EMAIL_ADDRESS>wrote:
Found the issue, should be fixed now. Do a pull from master and let me know if you're still having problems.
—
Reply to this email directly or view it on GitHub.

Works a treat now! Thanks very much for fixing it so quickly.

Could I just ask what is the _isTransitioning property for? Were you going to report if the camera is in a transition state between targets? A property like that might help keep conditioning to see if it's ok to switch targets inside your script as opposed to the main app/game script's logic.

Ah, that thing... To be honest I think it was something I was going to use internally; it's probably a relic left over from a when I did things a little differently. Not sure why it's still there! I might see if I can resurrect it...


The ability to disable or ignore update of a mod when doing update all

packwiz update -all simply updates all the mods it can, however, sometimes some of the mods are in alpha, beta or release stage that might be causing the game to crash. It would be nice to disable updates for specific mods (when doing update all) instead of doing the only alternative of typing every single other name of the mods that I want to update. Even more advance we can do something like packwiz update -all -release or adding an extra field within the mod toml file to disable update.

Not a solution, but what I've done so far is to just run the update --all command, look at the list of changed files, and then revert the ones for mods that I did not want to update. Obviously this is only feasible when you've got version control set up with a GUI that easily allows you to revert changes.

Alright then, so with your method, I'll just have to make sure I have a clean tree and run the following script to ignore changes for specific mods, nice. Okay now I just have to place these into a script file and job done.
packwiz update -all
git checkout HEAD -- ./mods/example-1.pw.toml
git checkout HEAD -- ./mods/example-2.pw.toml
packwiz refresh

Not a solution but a good workaround.

Of the possible solutions for this problem, a version pinning option (e.g. packwiz pin <mod> that sets a flag pin = true) seems like it would be the most elegant. It'd also be useful for the update confirmation dialog to allow interactively opting out of specific updates.
The pack format used to have a field for specifying the release channel so you could indicate that you only want to use release/beta versions; I never implemented it, so it was removed (but do I want to add it back, see https://github.com/packwiz/packwiz/issues/87)


FlexLayout position absolute reference is not available

FlexLayout position absolute reference is not available

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

ID: 1b597471-8e79-032f-e023-f14ad564405d
Version Independent ID: 1b597471-8e79-032f-e023-f14ad564405d
Content: FlexLayout - .NET MAUI
Content Source: docs/user-interface/layouts/flexlayout.md
Product: dotnet-mobile
Technology: dotnet-maui
GitHub Login: @davidbritch
Microsoft Alias: dabritch

Afraid this needs reporting in the engineering repo so that the engineers can fix the problem.


How to use imagemin with multer?

I've looked over the documentation but I'm still a little confused. When a user uploads an image (jpeg, png) with multer I want it to compress with imagemin, then overwrite the original, uncompressed file. Is this possible with imagemin? Thanks in advance.

Why do you want to "overwrite" the file? Why not just use the different file object.

Should be possible by doing something like this:
const fs = require('fs');
const imagemin = require('imagemin');

app.post('/foo', upload.single('unicorn'), async (req, res, next) => {
	const buf = await imagemin.buffer(req.file.buffer);
	fs.writeFileSync(req.file.filename, buf);
});

I try the last solution but it's not working right now. Anyone have another solution ?


Use TFRecord as a sequential data source

LMDB supports random access but is often not useful when you want speed.
TFRecord should be supported as it is a default tensorflow data format.

[x] a dataflow which produces raw string or deserialized data from a TFRecord file (use tf.python_io.tf_record_iterator)
[x] a function to dump a dataflow to TFRecord file (tf.python_io.TFRecordWriter)
[x] benchmark

Please Note, that TF-record files do not support random-access as they contain only compressed information. Even for the number of entries, one need to iterate over the entire DB (similar to the LMDB without having a keys entry).

On a HDD RAID with 1GB/s bandwidth, running the equivalent of:
ds = LMDBData('/path/to/ILSVRC-train.lmdb', shuffle=False)
ds = BatchData(ds, 256, use_list=True)

LMDB sequential: 42it/s
TFRecord sequential 35it/s.

@ppwwyyxx, interestng. Is LMDB always faster than TFRecord?

That's what I observed at least. After all LMDB has more low level optimizations.

This is awesome!


Problems with .eps

My version of Matlab generates an .eps file (Effort_z_0.eps) which is fine, except that it is not selectable in LaTex. A simple plot does inherit all the good properties of the .eps format.
Any advice?
figure('Name','Esfuerzo_z_0');
subplot(1, 2, 1);
%surf 1
surf(a(2:20,1:50), z1(2:20,1:50),os_g1(1:50,2:20)')
%surf 2
ylabel('Unemployment benefits; $b$', 'interpreter','latex')
xlabel('Wealth, $a$', 'interpreter','latex'), zlabel('Search effort, $s_0(a;b)$','interpreter','latex')

subplot(1, 2, 2)
[~, hCont] = contour(real(a(2:20,1:50)), real(os_g1(1:50,2:20)'),real(z1(2:20,1:50)), levels, 'linewidth', 2 );
contourLegend(hCont)
xlabel('Wealth, $a$', 'interpreter','latex')
ylabel('Search effort, $s_0(a;b)$','interpreter','latex')

print -depsc Esfuerzo_z_0.eps

You're using the print command in your script, not export_fig, so I'm not sure why you opened an issue here - you should report this to MathWorks.
If this issue is related to export_fig and not to the print function, then fix your script to explain exactly what's wrong with export_fig's output, and upload relevant output files/screenshots - just saying "it is not selectable in LaTex" makes no sense and does not describe the problem. If you want me to help you, then you should make an effort to make the issue description clear and reproducible.

No additional information or feedback received in 2 weeks so I'm closing this issue.
If and when you send me more information then this issue can be reopened.


Updating status of a couple of projects

This PR updates the following :
-CVS book
-Vision framework tutorial

I think this looks pretty good --- good work


Drop the hard requirement on arrow_prev/arrow_next

It occurred to me that we're most likely doing a scumm/daiza inventory, with so few items we don't need arrows. Why make them and hide them when we can make them optional?

Good point. :+1: Can you also remove the commented out calls to set_focus_mode? The constants have moved to the FocusNode enum, but if it's not in use, we might as well drop it, I think.

Thanks, @fleskesvor! I didn't know what they were so I left them in just in case they're something that could be uncommented to (re-)enable a feature. We've had that before, and sounds like FocusNode not in use either could or could not be useful, I'd have to understand what it is first :D
It's gone now and I updated to the new get syntax too!

The purpose of FOCUS_NONE is to make the arrow keys unselectable with controller mode. Presumably, there's some custom logic for cycling the inventory when using the controllers, but I think we will have to rethink how that works if we want to make the abstractions we've talked about. If we do need it in the future, we can find it with Git.
Thanks for the fixes, @mjtorn. :slightly_smiling_face:


master to main updates, typos

Signed-off-by: anaxceron<EMAIL_ADDRESS>
Changed mentions of "master" to "main" in Explorer file names used in Zowe Docs
Fixed minor consistency deviation in Using environment variables
Added Information Roadmap for Zowe Explorer to the sidebar ToC

Publishing...


IOS 12.2 (iPhone 8) video call isn`t working.

Please provide us with the following information:

This issue is for a: (mark with an x)
- [x] bug report -> please search issues before submitting
- [ ] feature request
- [ ] documentation issue or request
- [ ] regression (a behavior that used to work and stopped in a new release)

OS and Version?

IOS 12.2

Mention any other details that might be useful

JS framework: Angular 11+
Iphone 8
Browser: Safari
Please provide a list of supported devices (IOS
and Android)
Thanks! We'll be in touch soon.

Hi, thanks for filing this issue.
It would help to understand your environment a bit better. The OP says that you're using Angular 11, but this sample uses React. If you're building an Angular application off of @azure/communication-react directly, I'd recommend asking your question at https://docs.microsoft.com/en-us/answers/topics/azure-communication-services.html
There is a bigger community to provide answers via that channel.

Closing issue due to inactivity


Updating block explorer for Canto

Fixes # .
Changes proposed in this pull request:

Closing this as stale, feel free to reopen if needed