After Run LE4ISPC not work url right for phpmyadmin

Hello! After run LE4ISPC, i have a problem with the phpmyadmin.
I see that sub.dominio.com/phpmyadmin 1 not work
but dominio.com/phpmyadmin 1 work for me. Oo
And my host is:
root@server:~# hostname -f
server.ispvultr.tk
concluding the url >>> server.ispvultr.tk/phpmyadmin not work.
Just ispvultr.tk/phpmyadmin that work.
Thx

That only conclude that the script failed to create LE SSL certs for your ISPConfig server FQDN.
Please check whether certs are properly created and symlinked:
ls -lath /etc/letsencrypt//$(hostname -f)
ls -lath /usr/local/ispconfig/interface/ssl/ispserver.*

My apps.vhost in apache2
`Listen 8081
NameVirtualHost *:8081

  ServerAdmin webmaster@localhost
<FilesMatch ".ph(p3?|tml)$">
SetHandler None

        RequestHeader unset Proxy early

    DocumentRoot /var/www/apps
    AddType application/x-httpd-php .php

                Options FollowSymLinks
                AllowOverride None
                                Require all granted

    DocumentRoot /var/www/apps
    AddType application/x-httpd-php .php

                Options FollowSymLinks
                AllowOverride None
                                Require all granted

    DocumentRoot /var/www/apps
    SuexecUserGroup ispapps ispapps

                Options +Indexes +FollowSymLinks +MultiViews +ExecCGI
                AllowOverride AuthConfig Indexes Limit Options FileInfo

                        SetHandler fcgid-script

                FCGIWrapper /var/www/php-fcgi-scripts/apps/.php-fcgi-starter .php
                                Require all granted

`
Thx, i run the code and just this work>>
root@server:/# ls -lath /etc/letsencrypt//$(hostname -f)
ls: cannot access '/etc/letsencrypt//server.ispvultr.tk': No such file or directory
and secound command
root@server:/# ls -lath /usr/local/ispconfig/interface/ssl/ispserver.* lrwxrwxrwx 1 root root   54 Sep 10 20:05 /usr/local/ispconfig/interface/ssl/ispserver.crt -> /etc/letsencrypt/live/server.ispvultr.tk/fullchain.pem lrwxrwxrwx 1 root root   52 Sep 10 20:05 /usr/local/ispconfig/interface/ssl/ispserver.key -> /etc/letsencrypt/live/server.ispvultr.tk/privkey.pem -rw------- 1 root root 5.2K Sep 10 20:05 /usr/local/ispconfig/interface/ssl/ispserver.pem -rw------- 1 root root    0 Sep 10 19:54 /usr/local/ispconfig/interface/ssl/ispserver.pem-190910200523.bak -rwxr-x--- 1 root root 3.2K Sep 10 16:06 /usr/local/ispconfig/interface/ssl/ispserver.key-190910200523.bak -rwxr-x--- 1 root root 2.0K Sep 10 16:06 /usr/local/ispconfig/interface/ssl/ispserver.crt-190910200523.bak -rwxr-x--- 1 root root 1.7K Sep 10 16:06 /usr/local/ispconfig/interface/ssl/ispserver.csr -rwxr-x--- 1 root root 3.3K Sep 10 16:06 /usr/local/ispconfig/interface/ssl/ispserver.key.secure

Your ISPConfig server has its LE SSL certs but you might have set your phpmyadmin in the wrong vhost. Check in which vhost did you enable phpmyadmin. It should be enabled without any domain.


[Springiness] Incorrectly sized message bubbles until I rotate - iPad and UITabBarController

I've implemented a messaging app on my iPad.  The messaging portion is inside of a UITabBarController, and is implemented as a UISplitViewController with the "Master" side a list of active conversations and the "Details" side the JSQMessagesViewController itself.  I find that when I select an item from the Master side and refresh the Details side, the message bubbles are incorrectly size.  They only end up 1-2 characters wide, and VERY tall.  (See the first screenshot)  After I rotate the device, however, the bubbles are resized and appear as expected.  (Second screen shot) When I select another conversation, however, they go back to being messed up.  Additionally, I get the following error messages...
Please check the values return by the delegate.
the behavior of the UICollectionViewFlowLayout is not defined because:
the item width must be less than the width of the UICollectionView minus the section insets left and right values.

My assumption is that I'm not invalidating the layout or something properly.  Any idea what could be going on and how I could go about fixing it?

EDIT  More info:  It seems that when I turn of the springiness of the collection view layout this problem resolves itself.  I don't know how this would cause a problem, but it definitely resolves the issue.

Also of concern is that the text entry bar at the bottom does not appear on the iPad when the JSQMessagesViewController is contained within a UITabBarController.  Thoughts on that?

Thanks @sdnakhla

I got this problem when using react native with JSQMessagesViewController and I set         messageViewController.view.frame = self.bounds;
after I called
[self addSubview:messageViewController.view];
By changing the order. (First setting the frame) the issue went away.

I had the same issue but only on iOS 9. Commenting out these lines of code in JSQMessagesViewController fixed it for me. The collection view frame is not properly calculated in viewWillAppear so invalidating the layout there doesn't work:

(void)viewWillAppear:(BOOL)animated
{
NSParameterAssert(self.senderId != nil);
NSParameterAssert(self.senderDisplayName != nil);
[super viewWillAppear:animated];
//    [self.view layoutIfNeeded];
//    [self.collectionView.collectionViewLayout invalidateLayout];
if (self.automaticallyScrollsToMostRecentMessage) {
dispatch_async(dispatch_get_main_queue(), ^{
[self scrollToBottomAnimated:NO];
[self.collectionView.collectionViewLayout invalidateLayoutWithContext:[JSQMessagesCollectionViewFlowLayoutInvalidationContext context]];
});
}
[self jsq_updateKeyboardTriggerPoint];
}

I'm affected by this issue as well. The workaround suggested by @pirocso seems to fix the problem but presumably that code was in there for a reason. @jessesquires care to comment on what the right solution is here? That seems like a pretty core change to make even though it appears to fix the issue.

Hey all -- I think #1238 fixes this properly. @harlanhaskins - can you confirm?
If so, looks like this issue is a dupe of #1212

I really think it will fix it. Can you try your application with my PR?

Jesse, Harlan,
The fix for #1238 fixes the problem I was seeing. It's funny though bc the
bubbles were sizing incorrectly on view load. As far as I can tell there
was no size class transition or anything like that so weird how this ended
up fixing it.
Jesse - is that the correct fix from a performance and maintainability
standpoint. I'm not at all familiar with those methods -
viewWillTransitionToSize:withTransitionCoordinator: but otherwise it seems
less scary than the other fix. Just don't want something else to break as a
result of this change - not knowing what caused the bug in the first place.
Thanks!
Cheers,
Yang Forjindam
Co-founder, PocketSuite
Voted* "best app for solopreneurs"
http://www.forbes.com/sites/steveolenski/2015/01/27/3-top-apps-for-freelance-marketers-and-solopreneurs/
*in
2015 by Forbes
On Wed, Nov 11, 2015 at 11:23 AM, Harlan<EMAIL_ADDRESS>wrote:

I really think it will fix it. Can you try your application with my PR?
—
Reply to this email directly or view it on GitHub
https://github.com/jessesquires/JSQMessagesViewController/issues/1122#issuecomment-155884705
.

@yforjindam - Yes -- this would be the correct/proper fix.
The size class is likely transitioning because it the views are loaded from a .xib file.

Thanks!
Cheers,
Yang Forjindam
Co-founder, PocketSuite
Voted* "best app for solopreneurs"
http://www.forbes.com/sites/steveolenski/2015/01/27/3-top-apps-for-freelance-marketers-and-solopreneurs/
*in
2015 by Forbes
On Wed, Nov 11, 2015 at 5:50 PM, Jesse Squires<EMAIL_ADDRESS>wrote:

@yforjindam https://github.com/yforjindam - Yes -- this would be the
correct/proper fix.
The size class is likely transitioning because it the views are loaded
from a .xib file.
—
Reply to this email directly or view it on GitHub
https://github.com/jessesquires/JSQMessagesViewController/issues/1122#issuecomment-155971316
.

We should probably merge #1238 sooner rather than later...

Based on discussion above, closing at dupe of #1212


Split xdg-shell into multiple files

I had to rename xdg-shell-unstable-v6 functions because of conflicts with xdg-shell stable (both the generated Wayland protocol code and the new private functions).

Breaking changes

Are they really breaking changes? Nothing under include/wlr/ changed, just include/types/, so it should be internal changes.
And just skimming the diffs, it looks like mostly "if it compiles, it works" changes, should I do indepth review?

Are they really breaking changes? Nothing under include/wlr/ changed, just include/types/, so it should be internal changes.

Removed one function which was incorrectly used on popups with a layer surface parent.

And just skimming the diffs, it looks like mostly "if it compiles, it works" changes, should I do indepth review?

Mostly. I also tested it to make sure assertions still hold, but yeah, there are no logic changes.

Bump

Thanks!


All containers in a TaskRun's Pod are combined to calculate required resources

Expected Behavior
We're only running one container per TaskRun pod at a time, so the required resources for that pod should be the max values needed amongst all the containers we're running. While we were using init containers, that's how things worked.
Actual Behavior
With containers instead of init containers, the pod's required resources are the sum of the required resources for each container. See https://kubernetes.io/docs/concepts/workloads/pods/init-containers/#resources for more info on how pod resource requirements are calculated. The result is that a TaskRun of 10 steps results in a pod that thinks it needs the resources to be able to run all 10 step containers concurrently. So the required resources jumps a ton from what it had been with init containers.
Steps to Reproduce the Problem

Run a TaskRun with 10 steps, on a cluster with sufficient resources available for a pod with <10 concurrent containers with the resource requirements of one of those steps.

Additional Info

fyi @pivotal-nader-ziada @ImJasonH @bobcatfish

Given this (same for both Memory and CPU requests/limits):
Memory requests and limits are associated with Containers, but it is useful to think of a Pod as having a memory request and limit. The memory request for the Pod is the sum of the memory requests for all the Containers in the Pod. Likewise, the memory limit for the Pod is the sum of the limits of all the Containers in the Pod.

Pod scheduling is based on requests. A Pod is scheduled to run on a Node only if the Node has enough available memory to satisfy the Pod’s memory request.

I believe we could choose the largest of the memory/cpu requests, stuff that on a single Container, and leave the requests unset on all the other Containers in the Pod. Containers could keep their individual memory/CPU limits as scheduling is not based on limits.
An example:
Container A requests 512MB, Container B 2048MB, Container C 1024MB.
Today:
Pod gets scheduled with a request of 3584MB, as the requests of each Container get summed up.
Proposal:
Pod gets scheduled with a request of 2048MB, as the requests for all containers are set to 0 except the largest (or first? does it matter?) container, Container B.

Aaaaaah, that sounds reasonable - if I understand correctly, does that mean we'd effectively use the full resources (assuming no limits specified on steps) of the whole pod for each step?

To answer my own question above about leaving the resource request on the largest or first pod - you leave it on the largest pod. That's the only pod guaranteed to have a limit greater than or equal to the largest request.

@abayer If you don't specify limits then yes, you can use as much CPU/memory as the node has available. But I believe that behavior is unchanged from InitContainers or the current Containers implementation.
You can still set CPU/memory limits per Container and those limits will get enforced. The requests value is just to help the scheduler decide which Node your Pod gets placed on.

@bbrowning Gotcha - that's actually a nice result anyway. =)

@dwnusbaum has a memory of this coming up at the working group meeting on Wednesday, but I wasn't paying enough attention to remember myself. =) But regardless, yeah, I endorse this approach.

@bbrowning I thought the containers without any limits set would get the max or default limit, would setting a high limit on one container override that for all containers? or do set this limit on the pod?
If you do not specify a memory limit for a Container, one of the following situations applies:
The Container has no upper bound on the amount of memory it uses. The Container could use all of the memory available on the Node where it is running.
The Container is running in a namespace that has a default memory limit, and the Container is automatically assigned the default limit. Cluster administrators can use a LimitRange to specify a default value for the memory limit.

there is anything in the api currently to set limits on a taskrun so @abayer doesn't that mean it's not set and you are still getting the problem? or are you setting them somehow?

I think we're seeing it with no explicit limits set - @jstrachan, can you verify?

@pivotal-nader-ziada The scheduling problem stems from a Container's requests - not its limits. And Task Steps are just Containers - https://github.com/tektoncd/pipeline/blob/bbe504a83f66181d0662e16b596ebeb072b099c2/pkg/apis/pipeline/v1alpha1/task_types.go#L49
Containers can set memory and/or CPU requests and/or limits. Unless you're explicitly forbidding the setting of those somewhere in a webhook or reconcile loop that I missed.
Limits are enforced per Container as far as I know. Requests, on the other hand, are summed together for all Containers in a Pod and used by the scheduler when choosing node placement.

has a memory of this coming up at the working group meeting on Wednesday

Yeah, as I recall the discussion was that this was a known issue that didn't make it into the PR to switch from init container to containers, but that we definitely want to do something to fix it.
Relevant discussion starts around 9:20 in the 3/6/2019 meeting recording.

Containers can set memory and/or CPU requests and/or limits. Unless you're explicitly forbidding the setting of those somewhere in a webhook or reconcile loop that I missed.

@bbrowning you are correct, we don't forbid that anywhere

@pivotal-nader-ziada The scheduling problem stems from a Container's requests - not its limits. And Task Steps are just Containers -

@bbrowning @abayer trying to catch up here - as far as I can tell (and I think you're saying this above), the taskrun controller isnt setting any of these values, this would only come into play if a user set the request and/or limit values themselves in the Container spec for the step, is that right?
In steps to repro right now we've got:

Run a TaskRun with 10 steps, on a cluster with sufficient resources available for a pod with <10 concurrent containers with the resource requirements of one of those steps.

but you'd have to actually set the request values for the step in order to for this to be a problem, is that right?
If I'm understanding correctly it seems like we'd have a few options:

@bbrowning 's suggestion, which I think is to take the values the user specified for request and actually change them?
Warn the user but not change anything
Document this behavior but not actually change any code (probably not a great solution 😅 )

(Not sure I'm understanding the problem entirely tho - maybe we can see some example container specs that would have this problem?)

I don't think you do need to manually set the request values - @jstrachan hit this in Jenkins X, and we don't explicitly set request values anywhere when generating our Tasks.
Anyway, lemme create a concrete reproduction.

got it - https://gist.github.com/abayer/41cc9db17600dfe845f06002fb0492ed - when you get somewhere between 30 and 40 steps in a single Task with no explicit request, with a cluster of 3 n1-standard-4s, autoscaling up to 10, you get
message: 'pod status "PodScheduled":"False"; message: "0/3 nodes are available:
        3 Insufficient cpu."'

And fwiw, https://gist.github.com/abayer/1fe81f3813d777167590b2523a3fff6e is the same Task but with an explicit request on the first step, and zeroed-out requests on the others. This one actually works.

And it also works with no explicit request on the first step and the rest zeroed out.

Awesome, thanks for adding the repro case @abayer !

when you get somewhere between 30 and 40 steps in a single Task with no explicit request

Quick question, are you creating Tasks that have 30+ steps in them?

Apparently? =) More likely is that the cases where this showed up were on a cluster running other pipelines etc, so that the nodes weren't as empty as they were in my test case.

Whether you have to explicitly define requests in your steps or not depends on how your underlying Kubernetes cluster is configured. Some clusters are configured to provide default request values for all containers if one isn't otherwise specified. See https://kubernetes.io/docs/tasks/administer-cluster/manage-resources/cpu-default-namespace/
In the cluster @abayer is using it sounds like perhaps there is a LimitRange providing default request values here.

It was GKE, fwiw

I'd like to pick this up. @bbrowning's proposal to unset all of the requests except for the largest one seems good to me. A few things that I'm not sure about are:

What should we do if there are no requests set at all? I guess we check if there is a LimitRange in the current namespace and use its defaultRequest setting?

What happens if a container specifies a cpu/memory limit but not a request? This page says that for CPU, the request will be automatically set to the limit. My understanding is that all containers in a Pod for a Task start simultaneously (please correct me if that is wrong!), but their entrypoints wait and cause the containers to be executed in the order specified in the Task. If that is the case, then the requests could easily go over the limit, but I'm not sure what would actually happen (i.e. if everyone requested the maximum amount of memory up front, will the node run out of memory, or will it be ok as long as the containers are just waiting in the entrypoint?). Here are the most relevant docs I could find:

If a Container exceeds its memory request, it is likely that its Pod will be evicted whenever the node runs out of memory.
A Container might or might not be allowed to exceed its CPU limit for extended periods of time. However, it will not be killed for excessive CPU usage.

/assign @dwnusbaum

Here's an example from some local testing I've done showing that we can't just unset requests other than the largest one. Say we have a cluster whose Nodes all have 5Gi of memory, and we want to run a Task with 3 steps with the following resource settings:
steps:
  - name: step1
    ...
    resources:
      limits:
        memory: "3Gi"
      requests:
        memory: "1Gi"
  - name: step2
    ...
    resources:
      limits:
        memory: "3Gi"
      requests:
        memory: "1Gi"
  - name: step3
    ...
    resources:
      limits:
        memory: "3Gi"
      requests:
        memory: "2Gi"

The resulting Pod requires a Node with 4Gi of memory, and each container has a 3Gi limit. If we delete the requests on  step1 and step2 so that we only request 2Gi initially, then the limits for step1 and step2 get used as their requests and we end up requesting 8Gi of memory instead,  oops!
However, based on my testing it looks like we can set the requested memory to 0 (or maybe better to use some small value like 10-50m for the entrypoint command?) for the containers that aren't requesting the max value. From what I can tell each container is able to use memory as needed up to its limit without subsequent containers being affected.

@dwnusbaum Great catch, and you're right we can't just clear most of the requests but instead need to explicitly request something very small or perhaps 0. I don't actually know if 0 has any special meaning compared to a very small request value.

As reported here: https://github.com/tektoncd/pipeline/issues/1045 if there's a LimitRange setting the container requested resources to 0 makes the deployment not work.


An id must be provided to format a message.

Describe the Bug
using umami image: ghcr.io/umami-software/umami:postgresql-v2.3.1
and postgres:15-alpine
[@formatjs/intl] An `id` must be provided to format a message. You can either: 1. Configure your build toolchain with [babel-plugin-formatjs](https://formatjs.io/docs/tooling/babel-plugin) or [@formatjs/ts-transformer](https://formatjs.io/docs/tooling/ts-transformer) OR 2. Configure your `eslint` config to include [eslint-plugin-formatjs](https://formatjs.io/docs/tooling/linter#enforce-id) to autofix this issue
Error: [@formatjs/intl] An `id` must be provided to format a message. You can either:
1. Configure your build toolchain with [babel-plugin-formatjs](https://formatjs.io/docs/tooling/babel-plugin)
or [@formatjs/ts-transformer](https://formatjs.io/docs/tooling/ts-transformer) OR
2. Configure your `eslint` config to include [eslint-plugin-formatjs](https://formatjs.io/docs/tooling/linter#enforce-id)
to autofix this issue
    at ep (https://statistic.wokalek.ru/_next/static/chunks/pages/_app-d25b7d6c3a248600.js:1:160)
    at eE (https://statistic.wokalek.ru/_next/static/chunks/pages/_app-d25b7d6c3a248600.js:6:577936)
    at e4 (https://statistic.wokalek.ru/_next/static/chunks/pages/_app-d25b7d6c3a248600.js:6:587683)
    at q (https://statistic.wokalek.ru/_next/static/chunks/pages/websites/%5Bid%5D-549d2825f0ffde57.js:1:4501)
    at ab (https://statistic.wokalek.ru/_next/static/chunks/framework-2c79e2a64abdb08b.js:9:60915)
    at ud (https://statistic.wokalek.ru/_next/static/chunks/framework-2c79e2a64abdb08b.js:9:72801)
    at i (https://statistic.wokalek.ru/_next/static/chunks/framework-2c79e2a64abdb08b.js:9:120370)
    at oO (https://statistic.wokalek.ru/_next/static/chunks/framework-2c79e2a64abdb08b.js:9:99112)
    at https://statistic.wokalek.ru/_next/static/chunks/framework-2c79e2a64abdb08b.js:9:98979
    at oF (https://statistic.wokalek.ru/_next/static/chunks/framework-2c79e2a64abdb08b.js:9:98986)

Database
PostgreSQL
Relevant log output
No response
Which browser are you using? (if relevant)
Chrome
How are you deploying your application? (if relevant)
docker

I also have this problem

I also have this problem

Try to update to new 2.4.0 version. For now, I do not have this issue. But before I already had this problem in version 2.3.0 and updated to 2.3.1 and for some time I did not see this problem, but today it appeared again.

Also randomly started having this issue on 2.3.0. Works on 2.4.0.

I also have this problem

I also have this problem. Before deploying the v1 version with dockers, this problem did not occur. Now I use vercel to deploy the v2 version. This problem occurs. I have a headache and ask for help.

I also have this problem. Before deploying the v1 version with dockers, this problem did not occur. Now I use vercel to deploy the v2 version. This problem occurs. I have a headache and ask for help.

Try update to 2.4.0.

Fixed in 2.4.0:
https://github.com/umami-software/umami/issues/2113#issuecomment-1657770707

https://github.com/umami-software/umami/issues/2162#issuecomment-1658581783

Since https://github.com/umami-software/umami/issues/2162 is closed I assume it's safe to close this one too?

Since #2162 is closed I assume it's safe to close this one too?

I will close myself after a week of checking that the bug does not exist.

I also confirm it's resolved with v2.4.0

just updated to 2.5.0 (was probably at 2.30 or earlier) and I'm still having this issue. Upon starting Umami (running under pm2) I get this in error log…
16:36UTC:root@ns:~/.pm2/logs# cat umami-error.log
warn  - "next start" does not work with "output: standalone" configuration. Use "node .next/standalone/server.js" instead.
[DEPRECATED] Default export is deprecated. Instead use `import { create } from 'zustand'`.

just updated to 2.5.0 (was probably at 2.30 or earlier) and I'm still having this issue. Upon starting Umami (running under pm2) I get this in error log…
16:36UTC:root@ns:~/.pm2/logs# cat umami-error.log
warn  - "next start" does not work with "output: standalone" configuration. Use "node .next/standalone/server.js" instead.
[DEPRECATED] Default export is deprecated. Instead use `import { create } from 'zustand'`.

View Umami shows…
Something went wrong.
[@formatjs/intl] An `id` must be provided to format a message. You can either: 1. Configure your build toolchain with [babel-plugin-formatjs](https://formatjs.io/docs/tooling/babel-plugin) or [@formatjs/ts-transformer](https://formatjs.io/docs/tooling/ts-transformer) OR 2. Configure your `eslint` config to include [eslint-plugin-formatjs](https://formatjs.io/docs/tooling/linter#enforce-id) to autofix this issue
r@https://**REDACTED**/_next/static/chunks/pages/_app-37cd5caf026cf410.js:1:155
m@https://**REDACTED**/_next/static/chunks/pages/_app-37cd5caf026cf410.js:6:545701
Y@https://**REDACTED**/_next/static/chunks/pages/_app-37cd5caf026cf410.js:6:554727
Y@[native code]
R@https://**REDACTED**/_next/static/chunks/pages/dashboard-1a2eb42529af40b3.js:1:4927
ab@https://**REDACTED**/_next/static/chunks/framework-2c79e2a64abdb08b.js:9:60916
i@https://**REDACTED**/_next/static/chunks/framework-2c79e2a64abdb08b.js:9:119475
oO@https://**REDACTED**/_next/static/chunks/framework-2c79e2a64abdb08b.js:9:99113
@https://**REDACTED**/_next/static/chunks/framework-2c79e2a64abdb08b.js:9:98981
oF@https://**REDACTED**/_next/static/chunks/framework-2c79e2a64abdb08b.js:9:98986
ox@https://**REDACTED**/_next/static/chunks/framework-2c79e2a64abdb08b.js:9:95740
oC@https://**REDACTED**/_next/static/chunks/framework-2c79e2a64abdb08b.js:9:96129
oC@[native code]
r4@https://**REDACTED**/_next/static/chunks/framework-2c79e2a64abdb08b.js:9:44777
@https://**REDACTED**/_next/static/chunks/framework-2c79e2a64abdb08b.js:9:93632

After removing the line "output: 'standalone'" from line 81 of the next.config.js file, I temporarily resolved this issue. However, I'm not sure if it will have any impact on Umami. You can give it a try to ensure your Umami runs smoothly.

Strange, on my iMac the Umami interface works fine. On my MacBook, the error persists.

@craigconstantine interesting issue, because I have the same one
On my MacBook, I have this issue, but on my PC and iMac

This issue has been reported already on July on version 2.2.0  and seemed to be fixed on 2.3.0.
But unfortunatelly the error does still exist even on the latest build and just appears randomly.
I am using the Docker build, fresh updated and restarted - as of today - still exists and randomly appearing on a couple coworkers browser.
So maybe the simplest way would be to implement a fallback instead of crashing the whole frontend?

2.7.0


Symbol's function definition is void: some

It looks like there's an implied package dependency from the use of some in cmake-ide--is-src-file. What package does this come from?

It's in cl-extra which should be autoloaded. Which version of Emacs and on which OS? I can't reproduce this.

same issue here
emacs version: GNU Emacs 24.5.1
requiring cl before fixes it for me
(require 'cl)
(require 'rtags) ;; optional, must have rtags installed
(cmake-ide-setup)

I'm also on Arch Linux and can't reproduce. 'cl is deprecated and there's a (require 'cl-lib) right there.

Same problem
Arch + 24.5.1

I can't speak for others, but I'm using use-package if that makes any difference. Manually adding (require 'cl) resolves this issue for me.

I don't use use-package, that might be the difference, I'll try it and report back.

Tried a minimal dotfile.
(require 'package) ;; You might already have this line
(add-to-list 'package-archives
             '("melpa" . "https://melpa.org/packages/"))
(when (< emacs-major-version 24)
  ;; For important compatibility libraries like cl-lib
  (add-to-list 'package-archives '("gnu" . "http://elpa.gnu.org/packages/")))
(package-initialize) ;; You might already have this line
(cmake-ide-setup)

with cmake-ide-build-dir in a local vars file.
Nothing new.

@BorisCarvajal I tried your minimal init, nothing went wrong

Why not just prefix "some" function? using cl-some works flawless.

@BorisCarvajal PR?


Numbers binding

Hi,
I'm evaluating your library for keyboard navigation in my project. I really
like the concept but I have some difficulties with number keys.
I want to bind numbers, from 0 to 9, so I started with this :
jwerty.key('[0-9]', function (e) {
    alert(e.which);
});

It didn't work for me because I have an azerty keyboard and I obtain '0' by pressing 'shift+0'
(http://www.computerhope.com/help/azerty.gif). This leads to :
jwerty.key('shift+[0-9]', function (e) {
    alert(e.which);
});

Works great, but I don't care if the numbers come from the numpad or the left of the keyboard.
I have to handle all of them the same way. So I tried this :
// does not work
jwerty.key('shift+[0-9],num-[0-9]', function (e) {
    alert(e.which);
});

// does not work
jwerty.key('shift+[0-9],num-0,num-1,num-2,num-3,...', function (e) {
    alert(e.which);
})

and finally this :
jwerty.key('shift+[0-9]', function (e) {
    alert(e.which);
});
jwerty.key('num-0', function (e) {
    alert(e.which);
});
jwerty.key('num-1', function (e) {
    alert(e.which);
});
.
.
.
jwerty.key('num-9', function (e) {
    alert(e.which);
});

The last code works, but is not as easy as promising :)
I think the more inuitive way of handling numbers would be the first solution : '[0-9]'.
In my case, I don't need the distinction between numpad and normal keyboard (do some people really need that?).
What do you think?
Best regards
Olivier

The issue with Azerty keyboards is not something that can be easily fixed; there is no way to check of the type of keyboard, and the number keys fire the same keyCode, regardless of modifier keys. You would be better off checking for shift key on or off combined with the number keys (we'll get to that).
The second problem is a slight misinterpretation of the syntax; 'shift+[0-9],num-[0-9]' is a key sequence, in other words: shift+(number key) followed by a numpad number key. So instead you want to use a /, to denote an optional key.
Lastly, the engine isn't advanced enough to pick out fragments of a key label, so 'num-[0-9]' won't work. You'll instead need to use '[num-0-num-9]'.
So in summary, to capture both sets of number keys you need to express a combo like so: '[0-9]/[num-0-num-9]'. If you wanted to check for those numbers, regardless of shift key then you want something like: 'shift+[0-9]/[0-9]/shift+[num-0-num-9]/[num-0-num-9]'. This obviously is fairly verbose, and it'd be great to use some kind of optional key syntax like RegEx's ? key (so doing 'shift?+[0-9]') but I think that is out of scope for the issue you're reporting. As such I'm closing this as I don't think there is a valid issue within your description.
tl;dr: Use jwerty.key('shift+[0-9]/[0-9]/shift+[num-0-num-9]/[num-0-num-9]', function (e) {     alert(e.which); });

Thx you for your fast and very detailed answer. I ended up with 'shift+[0-9]/[0-9]/[num-0-num-9]'.


Fix bug with Zoltan

The first commit updates the documentation that I forgot to do in the previous PR.
The second commit fixes a bug when using Zoltan to create agglomerates. The problem is that Zoltan was creating agglomerates with IDs between 0 and n-1 but we have reserved ID for artificial and ghost cells. So now we renumber the agglomerates from 1 to n.

Can I merge this?


Why is dt not used in the PID computation?

While looking at the PID Controller algorithm, I was confused by the omission of the time differential (dt) in the gains A0, A1, A2.
The algorithm used by the CMSIS library is
y[n] = y[n-1] + A0 * x[n] + A1 * x[n-1] + A2 * x[n-2]

A0 = Kp + Ki + Kd
A1 = (-Kp ) - (2 * Kd )
A2 = Kd

But, to my understanding, it should be
y[n] = y[n-1] + A0 * x[n] + A1 * x[n-1] + A2 * x[n-2]

A0 = Kp + Ki*dt + Kd/dt  //< notice dt
A1 = -Kp - 2*Kd/dt       //< notice dt
A2 = Kd/dt               //< notice dt

What is the underlying mathematical assumption here?
Is dt assumed to always be 1 ?
Or Ki and Kd should be computed with sampling time in it?
Regards,

@g-berthiaume Sampling period is only useful to make a correspondence between the continuous time version of your PID and the discrete time version.
If you remain only in discrete time, you don't really need a sampling period. But of course, the coefficients will be different since at the end your discrete time system must work with real sampled signals.
Said differently, you can imagine that dt is part of the definition of the constant.
So, for a given continuous constant K, you'll get different discrete values K' where K' is K/dt or K dt depending on the constant.
But for the CMSIS-DSP implementation, you only care about K'.
Also, the correspondence between continuous and discrete is not only about the sampling time but also how the derivative and integral are approximated.
I don't know what method is used by CMSIS-DSP for integration : forward Euler, backward, trapezoidal ...
I have not been able to derive above formula from Laplace version of the PID.
I'll need to spend more time on it to find what method was used and to improve the documentation.
The discrete PID may be more complex than the one provided by CMSIS-DSP. It depends on how the discrete approximation is computed from the continuous one.

Thanks for your detailed answer. I now understand the K' silent assumption.
Let me know if you find something.
Thanks


CI optimization

Here I will try to cache dependecies and reduce CI script execution time

I think rust dependencies cached successfully, will try cache others

@shishkin-pavel, @birchmd here I cached some dependencies and reduced CI running time from 15 minutes to 9 minutes. Please, take a look


Improve unit testing, up to 66% coverage for lib/create.js

Fix typos
Fix indentation
Specific exit func (utils) to determine test

i will fixed some conflict

thankyou @herpiko  you are my hero


messages: Add support for passing user IDs for pm-with clause.

I normally don't work in Python so there could be some obvious things wrong! @eeshangarg you might want to have a look at this given your previous work on this area.
I currently trying to work on making the frontend use this syntax but haven't got time to do so and it's not as easy to trace back all the narrow_state and Filter code.
Testing Plan:

Added tests
Verified that narrow view works as expected in development environment.

This generally looks great.  I posted a few comments; can you also update https://zulipchat.com/api/construct-narrow (or really, the "search" article it links to) to make clear we now support passing user IDs in the narrow?
I think ideally we'd restructure the by_pm_with function to have a cleaner structure (in general, going through IDs is much better than going through email addresses), but after fiddling a bit I can see it's probably not going to be a super simple refactor to do so, and I think it's reasonable to open a follow-up issue for that as it's not on the critical path to doing this feature.

Updated this to: pass in the bad operand with the error, add the comment mentioned, and add the documentation. I also added one more commit for adding json syntax highlighting to /api/construct-narrow page

This is great, merged, thanks @priyank-p!  I made one tweak, which was to move the doc update to /api/construct-narrow, since I felt listing the user ID there did make the user-facing search docs worse.

For follow-ups:

You can do similar adjustments for what the "sender:" syntax supports.
You can migrate the frontend to use the new API
Looking at how this looks on /api/construct-narrow, we might want to add an example of the new syntax for group PMs of doing a list ... I'm actually not confident the docs we just added are correct on this front for the /api context of actual API clients...
I opened https://github.com/zulip/zulip-mobile/issues/3525 to notify the mobile team.


[JS] Topic: Socket.io in JavaScript(#7993)

Description 📜
A Documentation on Socket.io:
The following concepts is to be included in this documentation:

What is Socket.io?
Installation of Socket.io
Different types of Events in Socket.io
Features of Socket.io

Fixes #7993

Type of change 📝

[ ] Au#dio (Should be in mp3 format Includes speech clarity, Concise ,Low distortion)
[ ] Vi#deo (Animations, screen-recordings, presentations and regular explanatory films are all possibilties etc)
[ ] Documentation (Content Creation in the form of codes or tutorials)
[ ] Other (If you choose other, Please mention changes below)

Domain of Contribution 📊

[ ] Android Dev #(Flutter)
[ ] Android Dev #(Java)
[ ] Android Dev #(Kotlin)
[ ] Backend Dev #(Java)
[ ] Backend Dev #(.NET)
[ ] Backend Dev #(PHP)
[ ] Backend Dev #(Python)
[ ] C/#CPP
[ ] Competitive #Programming
[ ] Cyber #Security
[ ] DS#A
[ ] Data#base
[ ] Datascience with #Python
[ ] Datascience with #R
[ ] Frontend Dev #HTML/CSS/JS
[ ] Frontend Dev #React/Angular/Vue
[ ] Go#lang
[ ] Interview #Prep
[ ] Java_#Domain
[ ] JavaScript_Domain
[ ] ME#RN
[ ] Machine #Learning
[ ] Open #Source
[ ] Python_#Domain
[ ] Ru#st
[ ] Statis#tics
[ ] UI/#UX

Checklist ✅

[x] I follow Contributing Guidelines & Code of conduct of this project.
[x] I have performed a self-review of my own code or work.
[x] I have commented my code, particularly in hard-to-understand areas.
[x] My changes generates no new warnings.
[x] I'm GWOC'21 contributor

Looks good to me


For nuScenes, is the 360 degree point clouds input into the detector?

I found that you set the sweep as 10, which leads to the create_groundtruth_database() in create_data.py can't perform. So for nuScenes, does the create_data only generate some infos, but not generate reduced point clouds and gt database? Is the origin point cloud input into the detector?

create_groundtruth_database can be used for bus, truck and trailers. other class seems have no effect.
Yes, for nuscenes, I use raw point cloud as input.


Generate histogram when process cloud points

Generate histogram when process clouds,  and pass it to starplanner.

Hi, what is the reason for making the polar histogram outside?

@jkflying To make it more efficient.
Since polar histogram/final cloud points are made from the raw cloud points, they can be generated at the same place in processPointcloud, then don't need to read these cloud points again.
And for buildLookAheadTree in star planner, the first polar histogram is the same one generated in local planner, so don't re-create it.

My issue with this is that we now have 2 separate places where we generate the histogram, so any changes we do we will need to remember to do it in 2 places, and to keep the exactly the same. Also, the pointcloud is very small now so this is histogram generation is now very fast, so if we do it twice for the first node it isn't really a problem.

@jkflying emm... it's not a problem, result is same. But it's unnecessary,we don't need read the cloud points twice or re-create the same histogram.

I'd rather not mix in two different algorithms into the same loop, it is ok while that is what we are working on but will be difficult in the future for bugfixes and new features.
Also I don't think that the performance is a big issue, since the point cloud is so small now.


Unable to add manga

Unable to click on the option "Add manga+".
What happens is that left tab disappear. I was expecting input file window.
Version 1.5.0
OS X: 10.12.4

@L3rchal Hi, thanks for the report!
Hmm weird, I can't reproduce the error on my machine. I tried with:

Empty manga collection and click on it
Non-empty manga collection and click on it

So I think I would need you to post a screenshot of it and can you please try with older versions? https://github.com/sendyhalim/Yomu/releases

@L3rchal Oh I know (it's a bad UX issue), you just need to click the "Search Manga" and type a manga title that you want to search. Any suggestion on how to improve the UX?

I'm closing this issue for now, feel free to re-open 🍻

I am sorry for long reply.
For some reason it didn't work at time I opened issue (probably problem on my side - firewall)
App is awesome, what server are you downloading from?
And my ideas for your application.
Double page reading - next to each others (I think you can enjoy more reading manga like that)
Is it possible to input manga (in format cbz/cbr/zip)? I've got lot of manga however it would awesome to input them into some application which would help me to order them.
PS love that app icon.

No worries. Yea I'm requesting from manga eden, I don't want to keep the manga data just to be safe.

Double page reading + dark mode sound awesome, I'll get into it this weekend, thanks for the input!.
For reading manga from cbz / cbr / zip, I need to do some research first (I never read / use manga in those formats)

https://icons8.com provided the free icons :beers:


Julia kernel died in Jupyter notebook and  Pkg.build("IJulia") also fails

Hello all, I am new to Julia and Jupyter notebook. My Julia kernel keep dying and Pkg.build("IJulia") also fails. The following is the error message. Could anyone help me with that? I appreciate lots for your warm-hearted help!
ERROR: LoadError: Failed to precompile IJulia [7073ff75-c697-5162-941a-fcdaad2a7d2a] to C:\Users\xh9\.julia\compiled\v1.0\IJulia\nfu7T.ji.
Stacktrace:
[1] error(::String) at .\error.jl:33
[2] macro expansion at .\logging.jl:313 [inlined]
[3] compilecache(::Base.PkgId, ::String) at .\loading.jl:1184
[4] _require(::Base.PkgId) at .\logging.jl:311
[5] require(::Base.PkgId) at .\loading.jl:852
[6] macro expansion at .\logging.jl:311 [inlined]
[7] require(::Module, ::Symbol) at .\loading.jl:834
[8] include at .\boot.jl:317 [inlined]
[9] include_relative(::Module, ::String) at .\loading.jl:1038
[10] include(::Module, ::String) at .\sysimg.jl:29
[11] exec_options(::Base.JLOptions) at .\client.jl:229
[12] _start() at .\client.jl:421
in expression starting at C:\Users\xh9\.julia\packages\IJulia\4VL8h\src\kernel.jl:1
[I 16:57:32.668 NotebookApp] KernelRestarter: restarting kernel (1/5), keep random ports
kernel e6fced9e-5afe-4332-a7b8-6819eee4e5aa restarted
[ Info: Precompiling IJulia [7073ff75-c697-5162-941a-fcdaad2a7d2a]
ERROR: LoadError: IJulia not properly installed. Please run Pkg.build("IJulia")
Stacktrace:
[1] error(::String) at .\error.jl:33
[2] top-level scope at none:0
[3] include at .\boot.jl:317 [inlined]
[4] include_relative(::Module, ::String) at .\loading.jl:1038
[5] include(::Module, ::String) at .\sysimg.jl:29
[6] top-level scope at none:2
[7] eval at .\boot.jl:319 [inlined]
[8] eval(::Expr) at .\client.jl:389
[9] top-level scope at .\none:3
in expression starting at C:\Users\xh9\.julia\packages\IJulia\0cLgR\src\IJulia.jl:45
ERROR: LoadError: Failed to precompile IJulia [7073ff75-c697-5162-941a-fcdaad2a7d2a] to C:\Users\xh9\.julia\compiled\v1.0\IJulia\nfu7T.ji.
-----
When I run `Pkg.build("IJulia")`, new error message appears:
julia> using Pkg

julia> Pkg.build("IJulia")
  Building Conda ──→ `C:\Users\xh9\.julia\packages\Conda\uQitS\deps\build.log`
  Building ZMQ ────→ `C:\Users\xh9\.julia\packages\ZMQ\ABGOx\deps\build.log`
  Building MbedTLS → `C:\Users\xh9\.julia\packages\MbedTLS\mkHpa\deps\build.log`
  Building IJulia ─→ `C:\Users\xh9\.julia\packages\IJulia\0cLgR\deps\build.log`
┌ Error: Error building `IJulia`, showing the last 100 of log:
│ doesn't recognize. It may have been created by another package manager.
│
│
│ ClobberError: The package 'defaults::notebook-5.7.0-py36_0' cannot be installed due to a
│ path collision for 'lib/site-packages/notebook/tree/tests/__pycache__/test_tree_handler.cpython-36.pyc'.
│ This path already exists in the target prefix, and it won't be removed
│ by an uninstall action in this transaction. The path is one that conda
│ doesn't recognize. It may have been created by another package manager.
│
│
│ ClobberError: The package 'defaults::notebook-5.7.0-py36_0' cannot be installed due to a
│ path collision for 'lib/site-packages/notebook/tree/tests/test_tree_handler.py'.
│ This path already exists in the target prefix, and it won't be removed
│ by an uninstall action in this transaction. The path is one that conda
│ doesn't recognize. It may have been created by another package manager.
│
│
│ ClobberError: The package 'defaults::notebook-5.7.0-py36_0' cannot be installed due to a
│ path collision for 'lib/site-packages/notebook/utils.py'.
│ This path already exists in the target prefix, and it won't be removed
│ by an uninstall action in this transaction. The path is one that conda
│ doesn't recognize. It may have been created by another package manager.
│
│
│ ClobberError: The package 'defaults::notebook-5.7.0-py36_0' cannot be installed due to a
│ path collision for 'lib/site-packages/notebook/view/__init__.py'.
│ This path already exists in the target prefix, and it won't be removed
│ by an uninstall action in this transaction. The path is one that conda
│ doesn't recognize. It may have been created by another package manager.
│
│
│ ClobberError: The package 'defaults::notebook-5.7.0-py36_0' cannot be installed due to a
│ path collision for 'lib/site-packages/notebook/view/__pycache__/__init__.cpython-36.pyc'.
│ This path already exists in the target prefix, and it won't be removed
│ by an uninstall action in this transaction. The path is one that conda
│ doesn't recognize. It may have been created by another package manager.
│
│
│ ClobberError: The package 'defaults::notebook-5.7.0-py36_0' cannot be installed due to a
│ path collision for 'lib/site-packages/notebook/view/__pycache__/handlers.cpython-36.pyc'.
│ This path already exists in the target prefix, and it won't be removed
│ by an uninstall action in this transaction. The path is one that conda
│ doesn't recognize. It may have been created by another package manager.
│
│
│ ClobberError: The package 'defaults::notebook-5.7.0-py36_0' cannot be installed due to a
│ path collision for 'lib/site-packages/notebook/view/handlers.py'.
│ This path already exists in the target prefix, and it won't be removed
│ by an uninstall action in this transaction. The path is one that conda
│ doesn't recognize. It may have been created by another package manager.
│
│
│ ClobberError: The package 'defaults::notebook-5.7.0-py36_0' cannot be installed due to a
│ path collision for 'scripts/jupyter-bundlerextension.exe'.
│ This path already exists in the target prefix, and it won't be removed
│ by an uninstall action in this transaction. The path is one that conda
│ doesn't recognize. It may have been created by another package manager.
│
│
│ ClobberError: The package 'defaults::notebook-5.7.0-py36_0' cannot be installed due to a
│ path collision for 'scripts/jupyter-nbextension.exe'.
│ This path already exists in the target prefix, and it won't be removed
│ by an uninstall action in this transaction. The path is one that conda
│ doesn't recognize. It may have been created by another package manager.
│
│
│ ClobberError: The package 'defaults::notebook-5.7.0-py36_0' cannot be installed due to a
│ path collision for 'scripts/jupyter-notebook.exe'.
│ This path already exists in the target prefix, and it won't be removed
│ by an uninstall action in this transaction. The path is one that conda
│ doesn't recognize. It may have been created by another package manager.
│
│
│ ClobberError: The package 'defaults::notebook-5.7.0-py36_0' cannot be installed due to a
│ path collision for 'scripts/jupyter-serverextension.exe'.
│ This path already exists in the target prefix, and it won't be removed
│ by an uninstall action in this transaction. The path is one that conda
│ doesn't recognize. It may have been created by another package manager.
│
│
│
│
│ [ Info: Installing Jupyter via the Conda package.
│ [ Info: Running `conda install -y jupyter` in root environment
│ ERROR: LoadError: failed process: Process(setenv(`'C:\Users\xh9\.julia\conda\3\Scripts\conda.exe' install -y jupyter`,["USERDOMAIN_ROAMINGPROFILE=AD", "HOMEPATH=\\Users\\xh9", "ProgramData=C:\\ProgramData", "ProgramW6432=C:\\Program Files", "PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC", "SESSIONNAME=Console", "APPDATA=C:\\Users\\xh9\\AppData\\Roaming", "PUBLIC=C:\\Users\\Public", "USERDOMAIN=AD", "OS=Windows_NT", "PROCESSOR_REVISION=8e09", "TMP=C:\\Users\\xh9\\AppData\\Local\\Temp", "ALLUSERSPROFILE=C:\\ProgramData", "Path=C:\\WINDOWS\\system32;C:\\WINDOWS;C:\\WINDOWS\\System32\\Wbem;C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\;C:\\Program Files\\MATLAB\\R2018a\\bin;C:\\Program Files\\MATLAB\\R2017b\\runtime\\win64;C:\\Program Files\\MATLAB\\R2017b\\bin;C:\\WINDOWS\\System32\\OpenSSH\\;C:\\Program Files\\Intel\\WiFi\\bin\\;C:\\Program Files\\Common Files\\Intel\\WirelessCommon\\;C:\\Users\\xh9\\AppData\\Local\\Microsoft\\WindowsApps;C:\\Users\\xh9\\AppData\\Local\\Programs\\MiKTeX 2.9\\miktex\\bin\\x64\\;C:\\Users\\xh9\\AppData\\Local\\GitHubDesktop\\bin", "COMPUTERNAME=XHUOLT", "USERNAME=xh9", "CommonProgramFiles(x86)=C:\\Program Files (x86)\\Common Files", "CommonProgramFiles=C:\\Program Files\\Common Files", "CONDARC=C:\\Users\\xh9\\.julia\\conda\\3\\condarc-julia.yml", "USERPROFILE=C:\\Users\\xh9", "LDMS_LOCAL_DIR=C:\\Program Files (x86)\\LANDesk\\LDClient\\Data", "PSModulePath=C:\\Program Files\\WindowsPowerShell\\Modules;C:\\WINDOWS\\system32\\WindowsPowerShell\\v1.0\\Modules", "PROCESSOR_LEVEL=6", "USERDNSDOMAIN=AD.GATECH.EDU", "=C:=C:\\Users\\xh9\\.julia\\packages\\IJulia\\0cLgR\\deps", "TEMP=C:\\Users\\xh9\\AppData\\Local\\Temp", "SystemDrive=C:", "HOMEDRIVE=C:", "PYTHONIOENCODING=UTF-8", "LOCALAPPDATA=C:\\Users\\xh9\\AppData\\Local", "PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 142 Stepping 9, GenuineIntel", "DriverData=C:\\Windows\\System32\\Drivers\\DriverData", "NUMBER_OF_PROCESSORS=4", "=::=::\\", "ComSpec=C:\\WINDOWS\\system32\\cmd.exe", "SystemRoot=C:\\WINDOWS", "OneDrive=C:\\Users\\xh9\\OneDrive", "UATDATA=C:\\windows\\CCM\\UATData\\D9F8C395-CAB8-491d-B8AC-179A1FE1BE77", "ProgramFiles(x86)=C:\\Program Files (x86)", "LOGONSERVER=\\\\GTAD02", "CONDA_PREFIX=C:\\Users\\xh9\\.julia\\conda\\3", "windir=C:\\WINDOWS", "FPS_BROWSER_USER_PROFILE_STRING=Default", "JULIA_LOAD_PATH=@;C:\\Users\\xh9\\AppData\\Local\\Temp\\jl_76C3.tmp", "CommonProgramW6432=C:\\Program Files\\Common Files", "ProgramFiles=C:\\Program Files", "FPS_BROWSER_APP_PROFILE_STRING=Internet Explorer", "PROCESSOR_ARCHITECTURE=AMD64", "OPENBLAS_MAIN_FREE=1"]), ProcessExited(1)) [1]
│ Stacktrace:
│  [1] error(::String, ::Base.Process, ::String, ::Int64, ::String) at .\error.jl:42
│  [2] pipeline_error at .\process.jl:705 [inlined]
│  [3] #run#504(::Bool, ::Function, ::Cmd) at .\process.jl:663
│  [4] run at .\process.jl:661 [inlined]
│  [5] macro expansion at .\logging.jl:307 [inlined]
│  [6] runconda(::Cmd, ::String) at C:\Users\xh9\.julia\packages\Conda\uQitS\src\Conda.jl:112
│  [7] add at C:\Users\xh9\.julia\packages\Conda\uQitS\src\Conda.jl:181 [inlined] (repeats 2 times)
│  [8] top-level scope at logging.jl:311
│  [9] top-level scope at C:\Users\xh9\.julia\packages\IJulia\0cLgR\deps\build.jl:38
│  [10] include at .\boot.jl:317 [inlined]
│  [11] include_relative(::Module, ::String) at .\loading.jl:1041
│  [12] include(::Module, ::String) at .\sysimg.jl:29
│  [13] include(::String) at .\client.jl:388
│  [14] top-level scope at none:0
│ in expression starting at C:\Users\xh9\.julia\packages\IJulia\0cLgR\deps\build.jl:9
│
│ Full log at C:\Users\xh9\.julia\packages\IJulia\0cLgR\deps\build.log
└ @ Pkg.Operations C:\cygwin\home\Administrator\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.0\Pkg\src\Operations.jl:1069

It looks like you have may an earlier broken installation that is confusing the Anaconda installer.  Try deleting the old installation:
rm(raw"C:\Users\xh9\.julia\conda", recursive=true)

and trying Pkg.build("IJulia") again.

Had a similar problem building IJulia when moving to a different Julia installation. Removing ~/.julia/conda/ fixed it.

Closing — if you can find a way to reproduce this reliably, please file a Conda.jl issue.


Add a mechanism for Events Function to reuse AccessTokens

Description
Event functions are currently performing many thousand requests against KeyVault every day. The goal with this issue is to implement a mechanism so that a generated AccessToken can be reused for as long as it is valid.
It should be possible do to this by implementing a service to be registered as a singleton: https://www.rahulpnath.com/blog/dependency-injection-in-azure-functions/#understanding-azure-function-service-lifetimes
Initial idea is to create a new class to work as an AccessTokenProvider. The class should hold on to and provide the same AccessToken as long as it is valid. It should then automatically create a new one. The function app should have a single instance of the service across multiple calls.
Additional Information
No response
Tasks

[ ] Consider changing the lifetime of AccessTokens generated by EventsFunction to be longer than default.
[ ] Build a new AccessTokenProvider class that can hold on to an access token for as long as it is valid and then create a new one when needed.
[ ] Change EventsRegistration function to use the new provider.
[ ] Change EventsOutbound function to use the new provider.
[ ] Change EventsInbound function to use the new provider.
[ ] Create and Update tests as needed.
[ ] Add extra logging that can be used to analyse whether a singleton service is actually reusable.
[ ] Cleanup logging once we've assured that the mechanism works.

Acceptance Criterias

[ ] AccessTokens are reused across multiple calls to Events.

This issue is blocked by this issue: https://github.com/Altinn/altinn-accesstoken/issues/81
Also need to have it's own ISigningCredentialsResolver (from altinn-accesstoken) implementation to resolve the signing credentials.


cli: add quickstart flow for new users

This commit changes the CLI so it prints a custom Dagger Cloud trace URL
when the user is not logged in or no DAGGER_CLOUD_TOKEN has been set.
Additionally, a custom message gets printed at the end of dagger init
and fro any commands that the user supplied the -v or --debug flags.
Fixes DEV-4269 DEV-4268
Here's some screenshots about how the feature looks:
Log-in message when init is called and CLI is not authenticated

Full logged out trace URL:

Log-in message when -v is supplied:

The custom /traces/$id URL will take the user to the quickstart flow which will create a Dagger Cloud organization after logging in.
Signed-off-by: Marcos Lilljedahl<EMAIL_ADDRESS>

@jedevc just reverted the call prints and changed the URL to be more clear about signup. Mind taking one more quick :eyes: ?

LGTM once lint/tests are passing :tada:

mergint as-is since the test failure is a flake.


Request: Icon to show streamer is streaming

In AOE2 lobby (voobly) the player list will indicate someone is streaming to twice and provide a quick way to view the stream in their browser. In voobly it has to be setup by the streamer but it is easy to do so an optional.

I wonder if tags could eventually play this role - ie, if you had the tag of "Streamer::WinterGaming" that, when clicked, took you to Winter's twitch stream but only if a) the individual is in the lobby and b) if the Twitch API indicates that WinterGaming is currently streaming. Would require a bit of logic on the backend and added complexity to the tag system but I think that would be a pretty versatile system. That way you could then filter lobbies by people that are also streaming.


Fixed some setup instructions

thanks, merged into 0.6.1
ps. pull requests over https://github.com/clehner/git-ssb are prefered!


Added tomcat owner and group to copied war files

Added tomcat owner and group to copied war files to ensure they can be successfully deployed by tomcat

Thank you! Sorry it took so long to merge...


Update monitoring module to 1.2.0

More details in the PR:
https://github.com/ministryofjustice/cloud-platform-terraform-monitoring/pull/75,
https://github.com/ministryofjustice/cloud-platform-terraform-monitoring/pull/76,
https://github.com/ministryofjustice/cloud-platform-terraform-monitoring/pull/77

Duplicate PR. closing


integrate repairnator with Github Actions

See https://github.com/features/actions
a first prototype would be so nice :-)

I really like that idea. JabRef would be open for tests. Initial workflow: https://github.com/JabRef/jabref/blob/master/.github/workflows/deployment.yml

Cool idea. Would you be interested in having a first look on how to do this? We're super happy to provide you with intensive support :)

FYI @slarse has done something very similar for Sorald in https://github.com/SpoonLabs/sorald-buildbreaker


[Recommendation] - Add section for youtube playbooks from companies

Some companies may have articles/videos explaining their approach to youtube marketing. I thought it might be helpful to include these in here.

very cool!


fix(button base): dont set href if disabled is true

Overview

Allow links to be disabled by not setting href attribute if disabled prop is true

Context:
I'd like to disable a link to the workspaces/new page if the user is not verified
I passed in disabled to the gamut button but bc the component did have an href, the button was still clickable despite appearing disabled
https://github.com/codecademy-engineering/Codecademy/pull/28066#issuecomment-962027582
PR Checklist

[ ] Related to designs:
[ ] Related to JIRA ticket: EGG-1981
[ ] I have run this code to verify it works
[ ] This PR includes unit tests for the code change

📬Published Alpha Packages:@codecademy/gamut-kit@0.6.8-alpha.60ac54.0@codecademy/gamut-labs@28.0.3-alpha.60ac54.0@codecademy/gamut@40.0.1-alpha.60ac54.0@codecademy/monaco@0.5.6-alpha.60ac54.0<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://618570eaf24ded0c47ece3d1--gamut-preview.netlify.appDeploy Logs

📬Published Alpha Packages:@codecademy/gamut-kit@0.6.8-alpha.311079.0@codecademy/gamut-labs@28.0.3-alpha.311079.0@codecademy/gamut@40.0.1-alpha.311079.0@codecademy/monaco@0.5.6-alpha.311079.0<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://61857cc28720d81cb6116fda--gamut-preview.netlify.appDeploy Logs

📬Published Alpha Packages:@codecademy/gamut-kit@0.6.9-alpha.7dd2d4.0@codecademy/gamut-labs@28.0.4-alpha.7dd2d4.0@codecademy/gamut@40.1.1-alpha.7dd2d4.0@codecademy/monaco@0.5.7-alpha.7dd2d4.0<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://61858950772100252ae1a65e--gamut-preview.netlify.appDeploy Logs

📬Published Alpha Packages:@codecademy/gamut-kit@0.6.10-alpha.46aa39.0@codecademy/gamut-labs@28.0.5-alpha.46aa39.0@codecademy/gamut@40.1.2-alpha.46aa39.0@codecademy/monaco@0.5.8-alpha.46aa39.0<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://618591d7e9b9f1009fe52e91--gamut-preview.netlify.appDeploy Logs

📬Published Alpha Packages:@codecademy/gamut-kit@0.6.10-alpha.313366.0@codecademy/gamut-labs@28.0.5-alpha.313366.0@codecademy/gamut@40.1.2-alpha.313366.0@codecademy/monaco@0.5.8-alpha.313366.0<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://61894e1f7965fe008581ac6d--gamut-preview.netlify.appDeploy Logs

📬Published Alpha Packages:@codecademy/gamut-kit@0.6.10-alpha.cb8fbd.0@codecademy/gamut-labs@28.0.5-alpha.cb8fbd.0@codecademy/gamut@40.1.2-alpha.cb8fbd.0@codecademy/monaco@0.5.8-alpha.cb8fbd.0<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://61895f4141f13912713f603a--gamut-preview.netlify.appDeploy Logs


Adding execute permissions to shell scripts

Changes aren't obvious here, but each of these scripts have had their umask changed to 755. Ensuring consistency

Does not change functionality - changes are mostly visual


Spoofing iPhone device

Is it possible to spoof gps on iphone device? Works well with my android smartphone, but doesn't work for iphone (13 mini, ios 15.2). Tried with HackRF and LimeSDR. Tried to set air mode, turn off wifi and mobile data (there is no sim anyway), but no result. It either shows my current location, or it doesn't show any at all

are you using the latest BRDC file?

are you using the latest BRDC file?

Yeah, im using the latest BRDC. So is it even possible to spoof GPS in latest iphones with gps-sdr-sim? I just haven't found any info about it

Have you tried doing the experiment indoors? Are there other satellite constellations as well?
I think the latest smartphones are relying on multiple positioning i.e. IMU, Bluetooth, cell towers, etc that's why it is a bit difficult to spoof them. One of the methods that I tried to spoof my phone was turning off the auto-update time and date but since you aren't even using SIM card so I don't think this will be an issue

Have you tried doing the experiment indoors? Are there other satellite constellations as well?
I think the latest smartphones are relying on multiple positioning i.e. IMU, Bluetooth, cell towers, etc that's why it is a bit difficult to spoof them. One of the methods that I tried to spoof my phone was turning off the auto-update time and date but since you aren't even using SIM card so I don't think this will be an issue

Yes, i do it indoors, wifi and bluetooth is off, no sim. It works fine with android device, doesn't work only with iphone

Well, now it works fine. To spoof iphone you should set up air mode and wait for some time (like one day), after that spoofing will work

I tried while SIM is enabled, with multi-sdr-gps-sim, use realtime mode.


PUT method /api/v1/topics - not changing description field

Affected module
backend
Describe the bug
Using PUT method on /api/v1/topics to update a topic, changing the description field, does not changes the description.1
To Reproduce
Using the PUT/POST method to create a topic:
> PUT /api/v1/topics HTTP/1.1
> Host: openmetadata:8585
> Content-Type: application/json
> Accept: */*
> Content-Length: 129

| {
|   "name": "test-topic-bug-reproduce",
|   "partitions": 1,
|   "service": "kafka-service-test",
| 	"description": "original value"
| }

< HTTP/1.1 201 Created
< Date: Mon, 18 Sep 2023 12:52:31 GMT
< X-OpenMetadata-Change: entityCreated
< Content-Type: application/json
< Content-Length: 840

> PUT /api/v1/topics HTTP/1.1
> Host: openmetadata-staging.fulltext-dev.ko1.os.scif.cz:8585
> Content-Type: application/json
> Accept: */*
> Content-Length: 128

| {
|   "name": "test-topic-bug-reproduce",
|   "partitions": 1,
|   "service": "kafka-service-test",
| 	"description": "changed value"
| }

< HTTP/1.1 200 OK
< Date: Mon, 18 Sep 2023 12:54:00 GMT
< X-OpenMetadata-Change: entityNoChange
< Content-Type: application/json
< Content-Length: 939

response:
{
	"id": "48ebcade-717f-488a-9370-1caf96901df5",
	"name": "test-topic-bug-reproduce",
	"fullyQualifiedName": "kafka-service-test.test-topic-bug-reproduce",
	"description": "original value",
	"version": 0.1,
	"updatedAt":<PHONE_NUMBER>221,
	"updatedBy": "ingestion-bot",
	"service": {
		"id": "c82e2d03-5817-44b5-8f9c-c0e9cabe8bbc",
		"type": "messagingService",
		"name": "kafka-service-test",
		"fullyQualifiedName": "kafka-service-test",
		"description": "kafka-service-test",
		"displayName": "kafka-service-test",
		"deleted": false,
		"href": "http://openmetadata:8585/api/v1/services/messagingServices/c82e2d03-5817-44b5-8f9c-c0e9cabe8bbc"
	},
	"serviceType": "Kafka",
	"partitions": 1,
	"cleanupPolicies": [],
	"retentionSize": -1.0,
	"href": "http://openmetadata:8585/api/v1/topics/48ebcade-717f-488a-9370-1caf96901df5",
	"changeDescription": {
		"fieldsAdded": [],
		"fieldsUpdated": [],
		"fieldsDeleted": [],
		"previousVersion": 0.1
	},
	"deleted": false
}

Expected behavior
Expecting the description field to be changed.
Version:

OS: Debian 11
Python version: 3.9.13
OpenMetadata version: [1.1.0]
OpenMetadata Ingestion package version: [e.g. openmetadata-ingestion[docker]==<IP_ADDRESS>]

Additional context
Its possible to change with the PATCH method using jsonPatch object, but the PUT should do the job too, if it accepts the description field, it should change it.

@etele we do not allow bot accounts to override the existing description. This is by design

@harshach
If its a design decision then it fails in 2 ways

it the model of update should not have that attribute, its misleading having it there
the PATCH method allows to modify this field, so eve if you dont want to allow bots to override it, you still allow it with PATCH

thanks for your reply

@etele its taken into account of how the ingestion framework works today.
The design decision we are talking about here is following

OpenMetadata allow users to update descriptions through markdown. You can add much richer description from OM UI compare to anywhere else , ex: snowflake or dbt etc..
Ingestion will pull all the descriptions from the source if there are no descriptions being set in OpenMetadata
The reason for this decision is not to override user supplied documentation by default. We believe user supplied / carefully constructed documentation is better than what something may have captured in source table as comments.
Apart from above, OpenMetadata provides lot richer features for requesting descriptions, tags from the UI. This enables teams to crowd source documenting the assets right with-in the UI. Not just the engineers but business users, data consumers can contribute to the documentation

Our goal here is to encourage teams to use OpenMetadata to get better description from various personas in an organization not just engineering team.
So if there is a description that exists we don't want to override that by default, because of above reasons.
Now there might be teams who prefer forcing the description, to support that use case , we support that through PATCH call instead of PUT call override. Someone consciously making this decision to override rather hitting a PUT call and accidentally overriding carefully built documentation by a user in OpenMetadata.  PATCH is better approach here because the api caller must make a decision on exactly what specific field they are updating.
Having said that in our connector configuration we have an option to force it. But if you are using API calls directly and using ingestion bot token you'll be running into above design decision.
We are enabling user token's in 1.2 release and you can use user's token to use PUT apis to override if that fits your usecase.
This has been discussed many times :) feel free to hop into slack


Replicate mysql-helpers from machine charm

Issue
Replication of machine charm code into k8s.
Ticket is DPE-204
Solution
Necessary to make adaptations in order to use container.exec calls instead of subprocess ones.
NOTE: Event though we made decision about how to manage shared code, it wont be done unitl we have HA working on both machine and k8s charm.
Context
Machine charm is driving the development and code must be replicated in k8s charm.
Testing
Test is initially implemented in unit tests, also adapted from the machine charm.
NOTE: integration testing is not implemented due to the charm not implementing any functionality yet. This will be the follow up PR.
Release Notes

add mysqlsh_helpers
add test_mysqlsh_helpers with unit tests
bump ops version + add tenacity for retrying things

I decided to close this one and re-submit it after a rebase from the PR #6 of the machine charm, instead of the main, since it already fix many of the comments in this PR.


Update Composer dependencies (2021-11-05-00-03)

Visual regression test passed!
View the visual regression test report


Fixed Session add_package filepath, adding version to init

All tests passed, I'm going to merge into main so I can render docs


Crash

Version
2.2.1 (bd54d6c)
Seed
R621-TCF9-ZT853MZ9FE2QK49AM4ZZZZZZZZZZZZZ
Scenario
RE 2 (Claire A)
What happened?
After blowing up the helicopter and entering chief irons door which leads to birkin fight (g1) it crash's

I think I have fixed this, it is due to a crow in room 10A sharing the same kill ID as G adult. So when you killed the crow, it didn't spawn G adult which caused the crash.


Update README.md, app.json (button fix + env value fix)

README.md: One-click install button fix. Now the button works as it should.
app.json: "DB_POSTGRESDB_SSL_REJECT_UNAUTHORIZED" env value fixed. The default value there is now "false", not an empty field

Knock, knock, is anybody home?

I can confirm that @Tjeker61's commit works, and the actual one isn't!
Thanks @Tjeker61, for saving me a headache!

Thanks @Tjeker61 ! This worked for me


Support verifying arbitrary PodSpec-like k8s Objects

Right now, verify-manifest supports a set of built-in Kubernetes Objects which are known to define images. Ideally, we'd use some form of 🦆 typing to support verifying images in arbitrary PodSpec-like Objects. This will allow us to elegantly support CRDs and updates the k8s API as it evolves over time.

/cc @n3wscott


REST image upload load testing

[x] Load file over network via REST
[x] Continue the process for more iteration
[x] Observe how the local client code and BMC REST sever behaves

A sample code to play with
*** Settings ***
Documentation    Module to test REST upload stability.
Resource         ../syslib/utils_os.robot
Test Teardown   FFDC On Test Case Fail
*** Variables ****
${LOOP_COUNT}     ${50}
*** Test Cases ***
REST Upload Stability Test
    [Documentation]  Execute upload stress in loop.
    [Tags]  REST_Upload_Stability_Test
    Repeat Keyword  ${LOOP_COUNT} times  REST Upload File To BMC

https://gerrit.openbmc-project.xyz/7264


How to use inside node?

After npm install html.js I just tried to var HTML = require('html.js') but I got the following error:
/Users/diniscruz/GitHub_REPOS/TM_4_0_QA/node_modules/html.js/dist/HTML.min.js:4
=e,b.addEventListener("DOMContentLoaded",function(){d.node(e,!0)})}(window,doc
                                                                    ^
ReferenceError: window is not defined
  at Object.<anonymous> (/Users/diniscruz/GitHub_REPOS/TM_4_0_QA/node_modules/html.js/dist/HTML.min.js:4:3194)
  at Module._compile (module.js:456:26)
  at Object.Module._extensions..js (module.js:474:10)
  at Module.load (/Users/diniscruz/GitHub_REPOS/TM_4_0_QA/TM_4_0_Design/node_modules/teammentor/node_modules/coffee-script/lib/coffee-script/register.js:45:36)
  at Function.Module._load (module.js:312:12)
  at Module.require (module.js:364:17)

I saw another issue with this error, but that was related to NW (node-webkit).
It seems that the problem is that the window (and document) objects are not available.
Does this mean that this api cannot be used directly on node?

This API requires a DOM. You need node-webkit or some other DOM provider to work. Node doesn't have a native DOM.

ok, that is what I was thinking but wanted to make sure
Thx for the answer


Troubling rendering times

So I am trying to use this library alongside the ESP32-HUB75-MatrixPanel-I2S-DMA to display scrolling images with an LED matrix. I started off by adapting the example that uses your animated GIF library to render GIF's to the matrix panel https://github.com/mrfaptastic/ESP32-HUB75-MatrixPanel-I2S-DMA/blob/master/examples/AnimatedGIFPanel/AnimatedGIFPanel.ino
I have uploaded several PNG's to flash, and using SPIFFS to open and display them. I am getting really weird rendering times for some images and I am unable to track down why. In short an 83 byte PNG is taking 57ms to render to the screen, while even an 8KB image is only taking 13ms to render. I am running the same exact code so I am completely confused. I have been using gimp to export my images with the correct dimensions with nothing bigger than a 32 pixel height.
Here is how I am testing:
    DRAW_ARGS args;
    args.xoff = 0;
    args.yoff = 0;

    long start_tick = millis();
    int res = png.open("/pngs/uparrow.png",PNGOpenFile, PNGCloseFile, PNGReadFile, PNGSeekFile, PNGRender);
    png.decode((void*)&args,PNG_FAST_PALETTE);
    int width = png.getWidth();
    png.close();

    Serial.printf("Render time up arrow: %d\n",millis() - start_tick);

    start_tick = millis();
    res = png.open("/pngs/uparrow2.png",PNGOpenFile, PNGCloseFile, PNGReadFile, PNGSeekFile, PNGRender);
    png.decode((void*)&args,PNG_FAST_PALETTE);
    width = png.getWidth();
    png.close();

    Serial.printf("Render time uparrow2: %d\n",millis() - start_tick);

    start_tick = millis();
    res = png.open("/pngs/uparrow3.png",PNGOpenFile, PNGCloseFile, PNGReadFile, PNGSeekFile, PNGRender);
    png.decode((void*)&args,PNG_FAST_PALETTE);
    width = png.getWidth();
    png.close();
    //test.renderImage();
    Serial.printf("Render time uparrow3: %d\n",millis() - start_tick);

    start_tick = millis();
    res = png.open("/pngs/blue.png",PNGOpenFile, PNGCloseFile, PNGReadFile, PNGSeekFile, PNGRender);
    png.decode((void*)&args,PNG_FAST_PALETTE);
    width = png.getWidth();
    png.close();
    //test.renderImage();
    Serial.printf("Render time blue: %d\n",millis() - start_tick);

Here are my callbacks:
typedef struct custom_draw_args
{
  int xoff, yoff; // corner offset

} DRAW_ARGS;

// Draw a line of image directly on the LED Matrix
void PNGRender(PNGDRAW *pDraw)
{

  DRAW_ARGS* drawArgs = (DRAW_ARGS*)pDraw->pUser;

  uint16_t *s;
  uint16_t usPixels[320];
  int x, y, iWidth;

  iWidth = pDraw->iWidth;
  if (iWidth > MATRIX_WIDTH)
      iWidth = MATRIX_WIDTH;

  y = pDraw->y; // current line

  // Translate the 8-bit pixels through the RGB565 palette (already byte reversed)
  //drawArgs->currPNG->getLineAsRGB565(pDraw, usPixels, PNG_RGB565_LITTLE_ENDIAN, 0xffffffff);
  png.getLineAsRGB565(pDraw, usPixels, PNG_RGB565_LITTLE_ENDIAN, 0xffffffff);
  s = usPixels;

  for (x=0; x<pDraw->iWidth; x++)
  {

    dma_display->drawPixel(drawArgs->xoff + x, drawArgs->yoff + y, *s++); // color 565
  }

}

void * PNGOpenFile(const char *fname, int32_t *pSize)
{

  f = FILESYSTEM.open(fname);

  if (f)
  {
    *pSize = f.size();
    return (void *)&f;
  }
  return NULL;
}

void PNGCloseFile(void *pHandle)
{
  File *f = static_cast<File *>(pHandle);
  if (f != NULL)
     f->close();
}

int32_t PNGReadFile(PNGFILE *pFile, uint8_t *pBuf, int32_t iLen)
{
    int32_t iBytesRead;
    iBytesRead = iLen;
    File *f = static_cast<File *>(pFile->fHandle);
    // Note: If you read a file all the way to the last byte, seek() stops working
    if ((pFile->iSize - pFile->iPos) < iLen)
       iBytesRead = pFile->iSize - pFile->iPos - 1; // <-- ugly work-around
    if (iBytesRead <= 0)
       return 0;
    iBytesRead = (int32_t)f->read(pBuf, iBytesRead);
    pFile->iPos = f->position();
    return iBytesRead;
}

int32_t PNGSeekFile(PNGFILE *pFile, int32_t iPosition)
{
  int i = micros();
  File *f = static_cast<File *>(pFile->fHandle);
  f->seek(iPosition);
  pFile->iPos = (int32_t)f->position();
  i = micros() - i;
  return pFile->iPos;
}

Here are the properties of the 4 images I am testing:

uparrow.png -- 721 bytes, 21x20. This is a green arrow
uparrow2.png -- 8kb, 21x20. This is the same png but without compressing size down
uparrow3.png -- 151 bytes, 21x20. Same arrow but in a blue color
blue.png -- 83 bytes, 15x9. This is as simple as it gets: a blue rectangle.

Here are the runtimes I am currently getting:

Render time uparrow: 6
Render time uparrow2: 13
Render time uparrow3: 3
Render time blue: 57

Why is the smallest image taking the longest time to render? Is there some sort of specific settings I am missing when exporting my PNG from gimp? 57ms is drastically longer than everything else.
Your decoding test is extremely quick so something weird is going on.
If there is a more optimal way I should be using this library please let me know!
Here is a link to my zipped platformIO project that includes the actual images: https://drive.google.com/file/d/11PT4aziMz-JiPMY_gxZDcFyuHViaZgTn/view?usp=sharing

Calling drawpixel() on each pixel in the PNGDRAW callback means that you're not really measuring the time to decode the PNG. Try removing that call and see how much time it takes.

I reduced my render call back function to the following and I am still getting the same results:
void PNGRender(PNGDRAW *pDraw)
{
  return;
}

################# STARTING DISPLAY #################
Render time up arrow: 6
Render time uparrow2: 13
Render time uparrow3: 3
Render time blue: 56

Something really weird is going on here...

Added more time debug statements and the Open callback is the issue

################# STARTING DISPLAY #################
----> Open: 3
----> Read: 1
----> Seek: 0
----> Read: 0
----> Seek: 0
----> Close: 0
Render time up arrow: 7
----> Open: 1
----> Read: 3
----> Seek: 0
----> Read: 3
----> Seek: 1
----> Read: 2
----> Seek: 0
----> Read: 0
----> Seek: 2
----> Close: 0
Render time uparrow2: 14
----> Open: 1
----> Read: 1
----> Seek: 0
----> Read: 0
----> Seek: 0
----> Close: 0
Render time uparrow3: 14
----> Open: 55
----> Read: 1
----> Seek: 0
----> Read: 0
----> Seek: 0
----> Close: 0
Render time blue: 57

void * PNGOpenFile(const char *fname, int32_t *pSize)
{

    long start = millis();
    f = FILESYSTEM.open(fname);

    if (f)
    {
    *pSize = f.size();
    Serial.printf("----> Open: %d\n",millis() - start);
    return (void *)&f;
    }
    return NULL;
}

So there is likely some sort of issue with the file itself...

That's good detective work. I've used SPIFFS before and saw some perf hiccups, but didn't investigate it further. I'm not sure why you're going to run into issues with storage limitations because SPIFFS = FLASH. If you move the images into .H files, you're using the same physical memory to store them. You can just change the FLASH partitioning to make your app area larger and the SPIFFS area smaller.

That's good detective work. I've used SPIFFS before and saw some perf hiccups, but didn't investigate it further. I'm not sure why you're going to run into issues with storage limitations because SPIFFS = FLASH. If you move the images into .H files, you're using the same physical memory to store them. You can just change the FLASH partitioning to make your app area larger and the SPIFFS area smaller.

I need to dynamically be able to store images and then read and display them. I don't think the .h way would work in that instance?

yes, dynamic changing of FLASH should probably be done through the SPIFFS API. I guess your other option is to use the second core of the ESP32 to cache them in RAM right before you use them so that a SPIFFS hiccup won't delay your main display thread.


[Suggestion] Reorganizing some Parts of the Readme file

I was looking over the Readme and I found some areas I feel should to be together and not separated. Specifically these two parts below.

The section below right here is about halfway down the Readme file. Unless this was done for a specific reason I think it makes more sense to move it upwards the top of the Readme just under 'npm install recompose --save' line.

This way everything from API docs, Flow support, and different language translations are all at the top of the Readme in a 'Getting Started section for recompose'.

It's a good suggestion. A PR is welcome :)


Won’t Go Invisible

When I am in vanish, it does not make me invisible until I leave and rejoin the server.

I will need some more information. Just to clarify: the mod does not show any difference to you, just other players.
Could you provide your server logs as well, for further info.


props firing for child component but not NAMED child component

Version
3.0.1
Reproduction link
https://codepen.io/anon/pen/gBzNQQ
Steps to reproduce
Click the route. Notice that the child props() function does not fire. I researched the documentation but cannot figure out why this is any different than a default router-view component which DOES fire.
Example named component not firing: https://codepen.io/anon/pen/gBzNQQ
Example default component which DOES fire: https://codepen.io/anon/pen/aRGggy
The only difference between these two codepen examples is having the router-view named.
What is expected?
route() function would fire for named component
What is actually happening?
route() function is not firing

Nevermind, I see I was mistaken in how props are defined for named components. The proper way to do the first pen is like so:
https://codepen.io/anon/pen/oadKjy
reference:
https://router.vuejs.org/guide/essentials/passing-props.html (// for routes with named views, you have to define the props option for each named view:)


Fix bug in _project_onto_surface

FIx a bug when calling _project_onto_surface with method != "accurate" and return_nn == True.
Thanks for contributing a pull request! Please make sure you have read the
contribution guidelines
before submitting.
Please be aware that we are a loose team of volunteers so patience is
necessary. Assistance handling other issues is very welcome. We value
all user contributions, no matter how minor they are. If we are slow to
review, either the pull request needs some benchmarking, tinkering,
convincing, etc. or more likely the reviewers are simply busy. In either
case, we ask for your understanding during the review process.
Again, thanks for contributing!
Reference issue
Example: Fixes #1234.
What does this implement/fix?
Explain your changes.
Additional information
Any additional information you think is important.

@larsoner These CI fails do not seem to be related to this PR (i.e., moved one line of code two lines above (from inside to outside an if-else statement). How do you normally get these passed?

Thanks for the feedback, @larsoner. Sorry about that; I should have better checked the log of the CI to debug it myself. I was working on faulty assumptions.
Nop. This error was not reached through the use of the public API, and don't worry, I am well aware that there is no guarantee of stability on private methods. Regardless of the fact that it is a corner case, it seemed to me that if there was an erroneous piece of logic in the code it was best to fix it for all than just fix it on my side... just for the sakes of code base robustness.
These changes fixed the CI issues, except for this error which does not seem to be related to my edit (?):
mne\fixes.py:462: in __repr__
    from sklearn.base import _pprint
E   ImportError: cannot import name '_pprint' from 'sklearn.base' (C:\hostedtoolcache\windows\Python\3.10.5\x64\lib\site-packages\sklearn\base.py)

do we know why it was not detected by current tests?

Not sure, but it would be simple to test.
FYI, in my case, I was just needing to display an overlay of a net on a head for a small GUI app that I coded to digitize electrode positions with the Polhemus Fastrak system (https://github.com/christian-oreilly/fastrak_digitizer/blob/main/fastrakdigitizer/main.py#L532). Somehow, in some instances, the accurate method was taking forever whereas the nearest neighbor method was very fast and I did not need accuracy for this operation since it is just a visualization to guide the user so I don't care for it to be precise to the mm.

These changes fixed the CI issues, except for this error which does not seem to be related to my edit (?):

that one should be fixed now by #10933, so if you merge in (or rebase against) main it should pass now.

Something like that would test that. Check if that code seems kosher to your @drammock , and if so, I can wrap it in a test function and commit it.
from pathlib import Path
import mne
from mne.datasets import sample
from mne.transforms import _get_trans, transform_surface_to, apply_trans
from mne.bem import read_bem_surfaces
from mne.surface import _project_onto_surface
import pandas as pd
import numpy as np

data_path = Path(sample.data_path())
surf_path = data_path / "subjects" / "sample" / "bem" / "sample-head.fif"

trans_fname = data_path / 'MEG' / 'sample' / 'sample_audvis_raw-trans.fif'
trans = mne.read_trans(trans_fname)
head_surf = transform_surface_to(surf=read_bem_surfaces(surf_path)[0],
                                 dest="mri",
                                 trans=_get_trans(trans, 'head', 'mri'),
                                 copy=True)

montage = mne.channels.make_standard_montage('GSN-HydroCel-129')
info = mne.create_info(montage.ch_names, 100, ch_types='eeg')
raw = mne.io.RawArray(np.zeros((len(montage.ch_names), 100)), info)
raw.set_montage(montage)

mri_fiducials = mne.coreg.get_mni_fiducials("sample", data_path / "subjects")
mri_fid_loc = pd.DataFrame(np.array([fid["r"] for fid in mri_fiducials]),
                           index=[fid["ident"]._name.split("_")[-1] for fid in mri_fiducials],
                           columns=["x", "y", "z"])

eeg_picks = mne.pick_types(info, meg=False, eeg=True, ref_meg=False)
eeg_loc = np.array([raw.info['chs'][k]['loc'][:3] for k in eeg_picks])

cap_fid_loc = pd.DataFrame(np.array([fid["r"] for fid in raw.info["dig"][:3]]),
                           index=[fid["ident"] for fid in raw.info["dig"][:3]],
                           columns=["x", "y", "z"])

trans = mne.coreg.fit_matched_points(cap_fid_loc.values, mri_fid_loc.values,
                                     out='trans', scale=True)

eeg_loc = apply_trans(trans, eeg_loc)
eeg_loc = _project_onto_surface(eeg_loc, head_surf, project_rrs=True,
                                return_nn=True, method="nearest neighbor")[2]

looks reasonable.  Couple of quick comments:

no need to wrap sample.data_path() in Path(); all our data_path() functions return pathlib objects now.
for the two pandas dataframes you create (mri_fid_loc and cap_fid_loc), only their .values are used; why not create as numpy arrays directly, and avoid the overhead of importing pandas?
I don't see any assert statements, so I'm assuming that on main it is the last line (the call to _project_onto_surface) that fails?  What is the error?

side comment: here's why we never caught this before: _project_onto_surface is only used in 3 places in our codebase, and only one of those specifies return_nn=True, but that time it uses the default method='accurate' (not 'nearest').

1 - Great
2 - Sure.
3 - Yes, as you've seen, this was the error.
Side comment: yeah... that is part of the exchange we had with @larsoner where he was saying it is a corner case,  currently impossible to reach from the public interface. Nevertheless, if it raises an exception, I guess it is worth fixing, 1) for people like me who hack their way around (after all, this is a toolbox used mainly for research I expect, so people hacking its inner functions to make them do things not currently supported by the public interface is to be expected) and 2) it makes it more robust to future development which may call this function internally for new use cases/functionalities...
I'll commit the test.

only remaining CI failures will be addressed by #10944, so this is good to go!  Thanks @christian-oreilly


Fix quoting bug

The server was not expecting paths to be quoted, but we were doing so on the client. I've also added a trace-level print of the actual arguments we will use to start the server, which helped me figure this out.

With this fix, the compiler developer extension is alive!

the compiler developer extension

what is this?

@genlu https://github.com/333fred/compiler-developer-sdk. We're using this as a testing ground for C# LSP extensibility.


Add Tokenizer functionality to API

Having access to the models tokenizer is extremely useful for counting tokens, and managing the context window. In a lot of cases its essential to get an LLM implementation to work properly. The model already has the tokenizer loaded, and ollama's backend, llama.cpp, already has an interface for the tokenizer, so it shouldn't be that difficult to implement into the API.
Unless this is already a functionality on the API, in which case I'm sorry, but I just didn't see it in the documentation.

https://github.com/ollama/ollama/pull/6586


Fixed compiler warnings

Fixed comiler warnings by adding a type cast and commenting out a couple of unused variables.

Hi Christopher,
Thanks for the submision, however I prefer to fix the warning avoiding the cast you suggest.
I think the commit 55ea4b8932deb412c49b2857557a596363766996 & ca560171649ea9238ae893fb24d7a81bf65d3ff7 fix the warning you like to avoid.
Best  Regards,
Michel.

works for me.


SPM Analytics 7.2.0

FIRAnalyticsConnector is now included in FirebaseAnalytics
#no-changelog

This needs another update to get recent fixes.

Updated to rc1


add the VulkanMemoryAllocator library

I've followed this guide
step by step carefully. **[Yes

I've tested this package remotely and have excluded all broken builds.
Here is the links to the Travis/AppVeyor with status "All passed":

https://ci.appveyor.com/project/jhs67/hunter-vfmrx/build/1.0.20
https://travis-ci.com/jhs67/hunter/builds/80523076

I have submitted CI configs to https://github.com/ingenue/hunter targeting pkg.template branch,
see this merged pull request https://github.com/ingenue/hunter/pull/272

My change will resolve this "New package" request: https://github.com/ruslo/hunter/issues/1507

Testing:

https://ci.appveyor.com/project/ingenue/hunter/build/1.0.4278
https://travis-ci.org/ingenue/hunter/builds/410454082?utm_source=github_status&utm_medium=notification

Released: https://github.com/ruslo/hunter/releases/tag/v0.23.6


Module vpc-sc not creating egress/ingress policies

Hi, i have tried both examples in /module/vpc-sc and /fast/stages/02-security, i was able to create everything within the module except for egress and ingress policies which are not created neither are shown in the plan file
vpc-sc configuration example i used:
locals {
  _vpc_sc_restricted_services = yamldecode(
    file("${path.module}/vpc-sc-restricted-services.yaml")
  )

  vpc_sc_explicit_dry_run_spec = false
}

module "perimeters" {
  source        = "./modules/vpc-sc"
  access_policy = null
  access_policy_create = {
    parent = "organizations/${var.tenancy.id}"
    title  = "${var.tenancy.prefix}-access-policy"
  }
  access_levels = {
    onprem = {
      conditions = [{
        ip_subnetworks = ["<IP_ADDRESS>/24"]
      }]
    }
  }

  egress_policies = {

    iac-gcs = {
      from = {
        identities = [
<EMAIL_ADDRESS>        ]
      }
      to = {
        operations = [{
          method_selectors = ["*"]
          service_name     = "storage.googleapis.com"
        }]
        resources = ["projects/123456782"]
      }
    }
  }
  ingress_policies = {

    terraform-sa = {
      from = {
        identities = [
<EMAIL_ADDRESS>        ]
        access_levels = ["*"]
      }
      to = {
        operations = [{ method_selectors = [], service_name = "*" }]
        resources  = ["*"]
      }
    }

  }
  service_perimeters_regular = {
    common_perimeter = {
      status = {
        access_levels       = ["onprem"]
        resources           = [local.projects["common"].platformsvc]
        restricted_services = local._vpc_sc_restricted_services
        egress_policies     = ["iac-gcs"]
        ingress_policies    = ["terraform-sa"]
      }
      use_explicit_dry_run_spec = local.vpc_sc_explicit_dry_run_spec
    }
  }
}

can you advise please

Yep, thanks for flagging this there were a couple of typos in the module where status was looking at spec policies. The above PR fixes it.


error getting auth for sessionToken TypeError: Cannot read property 'iso' of undefined

Environment Setup
Server running on Heroku & MongoLab.  Built from Parse server example
Steps to reproduce
Making a request with a session token in the header.  Auth is trying to access an iso property on what I'm guessing is a Date object.  I'm thinking this has something to do with a missing polyfill, but I don't know what I need to get it working.
Logs/Trace
error: error getting auth for sessionToken TypeError: Cannot read property 'iso' of undefined
at /app/node_modules/parse-server/lib/Auth.js:88:50
at run (/app/node_modules/babel-polyfill/node_modules/core-js/modules/es6.promise.js:89:22)
at /app/node_modules/babel-polyfill/node_modules/core-js/modules/es6.promise.js:102:28
at flush (/app/node_modules/babel-polyfill/node_modules/core-js/modules/_microtask.js:14:5)
at _combinedTickCallback (internal/process/next_tick.js:67:7)
at process._tickDomainCallback (internal/process/next_tick.js:122:9)

More information about this trace - I got this error after upgrading parse-server 2.1.4 to 2.2.6.  Also, it looks like it's happens to users where the session originated from an older parse-server (possibly even from Hosted Parse).

Would you be able to grab the _Session row from the DB for the user that is having issues and post it here?

@drew-gross Unfortunately I had to rollback the changes since it was a production system, and the first people that reported the problem fixed it by logging out and back in.  I haven't been able to repro on our development server.  I'll have to come up with another setup so I can test without affect our production users.

There was a bug in 2.2.6 where that error would be thrown if your session tokens did not have an expiration date. Fixed in commit https://github.com/ParsePlatform/parse-server/commit/1bd804693c45130dad141ddc24a2305935b0e11e


Latest Release on F-Droid is Broken on Android 11

Looks like something in the latest F-Droid release breaks compatibility with Android 11. None of my current shortcuts do anything, and when I click Apps to see more, only Play Store and Settings show. I believe this was an issue with Slim that was just recently fixed.

Yep, it's a permission problem:
https://github.com/sduduzog/slim-launcher/pull/119

Thank you for reporting this!  I just wanted to let everyone know that I hope to push an update for Unlauncher ASAP to address this issue.  Should have it out today and then it may take another day for the new version to get picked up by F-Droid.

This issue should be fixed in https://github.com/jkuester/unlauncher/releases/tag/v0.1.3
This update should also be pushed to the FDroid repository soon!