bug: test/Assert (ProverSucceeded, ...) may incorrectly cache a compiled circuit

To speed up testing, and avoid recompiling the same circuit when testing against several witnesses, test/Assert have a cache of compiled circuits.
However, the key for the circuits is too weak;
key := curveID.String() + backendID.String() + reflect.TypeOf(circuit).String()

If you consider the case where a circuit is define like so;
type MyCircuit struct {
A frontend.Variable
somethingMutable XXX
}

were somethingMutable could be a hash function or a twisted edwards curve ID, which alters the Define behavior. Then the 2nd compilation after changing this variable will not be reflected.

There is Run method on assert which takes additional description arguments (for running as subtests). Maybe an easy fix would be to include the subtest name in the cache key?

I don't think it'll work ; subtests name are derived from backendID and curveID.
So same problem applies ; a same circuit compile with same backend and curve, but with a behavior that changes will not be correctly added into the cache.
Adding the pointer (unsafe) in the key works, but, I'm also aiming for adding a t.Parallel in the assert.Run, WIP 👍

I don't think it'll work ; subtests name are derived from backendID and curveID. So same problem applies ; a same circuit compile with same backend and curve, but with a behavior that changes will not be correctly added into the cache.

In general, it is possible to define any additional string context for the subtest (https://pkg.go.dev/github.com/consensys/gnark@v0.6.4/test#Assert.Run), but yes, currently in the most of the cases the context is just the curve and backend.


Passing whole ChartPointData to all custom formatter functions

I am not sure why the formatter function for <HorizontalAxis /> does not support using the meta entry in points' data. Currently it works like this:
<HorizontalAxis theme={{
  labels: { formatter: (v) => moment(v).format("H:mm") },
}} />

I am trying to include extra characters in the x axis using the meta property. I think it would be great if it was possible to pass all the data to the formatter function! for example:
<HorizontalAxis theme={{
  labels: { formatter: (v, meta) => moment(v).format("H:mm") + " - " + meta },
}} />

I believe it may break backward compatibility if the v input becomes the ChartPointData but I think it is even better to do so if possible (identical to the Tooltip formatter).

Hi BlackWild,
The reason for this is that ticks on the horizontal axis do no necessarily line up with data points of the chart.
It would be quite a breaking change to implement this now, because it would remove a lot of existing functionality for the axis at this moment, like specifying number of ticks or axis tick values.
Unless I am missing something?

Since I am not familiar with the source code of this project, please close this issue if you think this change will break a lot of current functionalities. However, what I had in mind was that being able to use additional information in labeling of the points on the axis. I didn't think it would break any functionality if we only change the place in the code where the label of the points are going to be created via the formatter function, and pass the meta property to the function alongside the x or y values.
My exact case is this: We have a chart that our data is ordered and the x axis shows time. However since the time of several points in our situation is not from a 100% accurate source, if I use time as the value for x, the chart becomes messy. We prefer to keep the ordering of the data fixed but since the order does not show time we couldn't use index numbers as x values. Our solution was to use the order of the points for drawing the chart (x values), and use each point's time just for labeling points on the x axis.


Add aspect ratio support

The UK101 used a domestic TV which wasnt a 1:1 aspect ratio
Add potenial scaling support horizontally

Merged and tested


Simple link button

Link as simplie as can be

We spoke about using Link from 'react-router-dom` right?
Is it still the case? Can we close this issue?

That is correct, we can close it :)
Od: Wtykło Arkadiusz<EMAIL_ADDRESS><EMAIL_ADDRESS>Odpowiedz: arteneo/forge
<EMAIL_ADDRESS><EMAIL_ADDRESS>Data: 25 lutego 2021 at 13:14:17
Do: arteneo/forge<EMAIL_ADDRESS><EMAIL_ADDRESS>DW: GrzeGab<EMAIL_ADDRESS><EMAIL_ADDRESS>Author<EMAIL_ADDRESS><EMAIL_ADDRESS>Temat:  Re: [arteneo/forge] Simple link button (#9)
We spoke about using Link from 'react-router-dom` right?
Is it still the case? Can we close this issue?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/arteneo/forge/issues/9#issuecomment-785852212, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/ACID66EHEOCZYOP5PSYTSKDTAY5JTANCNFSM4YGEP47Q
.


chore(deps): upgrade dev dependencies

Upgrades project dependencies. See details in workflow run.

Automatically created by projen via the "upgrade-dev-dependencies-1.x" workflow

⚪ Backport skipped
The pull request was not backported as there were no branches to backport to. If this is a mistake, please apply the desired version labels or run the backport tool manually.
Manual backport
To create the backport manually run:
backport --pr 1741

Questions ?
Please refer to the Backport tool documentation


Upgrade to Next 15

Next 15 is out
Let's upgrade the starter and see what issues we face
Worth noting:

New caching strategy of 'use cache' with dynamicIO is interesting
New fetch caching strategy, off by default - might need review
All headers() and cookies() became async, but this is likely not affecting us yet.

Contentful live-preview issue: https://github.com/contentful/live-preview/issues/778


SyntaxErrors with Python 3.2

$ python3.2 -m compileall -fq spyderlib spyderplugins
*** Error compiling 'spyderlib/plugins/layoutdialog.py'...
  File "spyderlib/plugins/layoutdialog.py", line 155
    if to_text_string(text) == u'':
                                 ^
SyntaxError: invalid syntax

*** Error compiling 'spyderlib/pygments_patch.py'...
  File "spyderlib/pygments_patch.py", line 72
    yield pos, Text, u'\n'
                         ^
SyntaxError: invalid syntax

*** Error compiling 'spyderplugins/widgets/condapackagesgui.py'...
  File "spyderplugins/widgets/condapackagesgui.py", line 53
    def sort_versions(versions=(), reverse=False, sep=u'.'):
                                                         ^
SyntaxError: invalid syntax

Are these all errors you found?

The unicode literal was added in 3.3:  https://www.python.org/dev/peps/pep-0414/

The first one should be  if not to_text_string(text):

I'll fix the error in pygments_patch for 2.3.4. The others were introduced by @goanpeca.
But I think we should just drop support for 3.2 for 2.4 because very few people are running Spyder there (that I know of).
@spyder-ide/core-developers, what do you think?

I say dump it!  Matplotlib dropped 3.2 support recently.  I've been trying to get scikit-image to drop it...

I am :+1: on dumping it!

But I will fix it nevertheless. The package manager has some issues right now besides that, and will get fixed soon. I am normally only testin py2.7 and py3.4 on linux and 3.3 on win (what i can get install with anaconda)

anaconda can't get install 3.4 on win ?

I rephrase... I normally use: Lin (2.7, 3.4) and on win (2.7, 3.3, 3.4)

@goanpeca, don't worry about it. I'm going to follow @blink1073 advice and drop support for Python 3.2 (and 2.6 too) in our next major release. Since your contributions are planned for that release, you don't need to fix those u' cases.
It doesn't make sense to try to support versions which we are not able to test easily, but thanks @Arfrever for letting us know about the problem in pygments_patch

:+1: for dropping 2.6 and 3.2. It is coherent with the compatibility with Qt5, new-types signals... Spyder is getting some fresh air !


Fix deepseek vocab mismatch

Thank you for the tips on Dingding, this pr should fix https://github.com/alibaba/Pai-Megatron-Patch/issues/338

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


fix(*): make go vet ./... happy

Make go vet happy ;)

not merging this one?

The commit got changed due to rebasing, so the PR wasn't automatically closed. It's been merged to master already.


Authentication with 2FA

I was attempting to use the library, but because of 2FA it is not able to login to Robinhood. Is there a way to authenticate with 2FA enabled?

@GarryKnimble you will have to install the project from source. That feature is currently only on the master branch.

This is probably a trivial question, but how does one install the library from the master branch?

@GarryKnimble no worries, basically you can point pip to a git repo and ask it to download that specific repo like so:
$ pip install git+https://github.com/robinhood-unofficial/pyrh.git#egg=pyrh

Thank you, that worked.

How does this version deal with the 2FA? When I run it, it still gets the following:
No 2FA Given email code:
Do I need to have some way of getting inputs for it to receive the email code?

@GarryKnimble you only need to type the email code once, and you can save the oauth token to disk as mentioned in the docs. Afterward the system will auto-refresh the token for you.

I attempted to enter the code, but then this error occurred
`Traceback (most recent call last):
File "/robinhood.py", line 215, in login
res2.raise_for_status()
File "/models.py", line 941, in raise_for_status
raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 404 Client Error: Not Found for url: https://api.robinhood.com/challenge//respond/
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "<pyshell#3>", line 1, in
rh.login(username="", password="")
File "/robinhood.py", line 228, in login
raise RH_exception.LoginFailed()
pyrh.exceptions.LoginFailed`
Looking at the error, it seems self.challenge_id never gets assigned, or gets an empty string, resulting in the url that causes a 404 exception.
`                res = self.session.post(endpoints.login(), data=payload, timeout=15)
res_data = res.json()
            if (
                "access_token" in res_data.keys()
                and "refresh_token" in res_data.keys()
            ):
                self.auth_token = res_data["access_token"]
                self.refresh_token = res_data["refresh_token"]
                self.headers["Authorization"] = "Bearer " + self.auth_token
                return True

            if self.challenge_id == "" and "challenge" in res_data.keys():
                self.challenge_id = res_data["challenge"]["id"]
            self.headers[
                "X-ROBINHOOD-CHALLENGE-RESPONSE-ID"
            ] = self.challenge_id  # has to add this to stay logged in
            sms_challenge_endpoint = (
                "https://api.robinhood.com/challenge/"
                "{}/respond/".format(self.challenge_id)
            )`

I attempted to enter the code, but then this error occurred
Traceback (most recent call last):
  File "<directory>/robinhood.py", line 215, in login
    res2.raise_for_status()
  File "<directory>/models.py", line 941, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 404 Client Error: Not Found for url: https://api.robinhood.com/challenge//respond/

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<pyshell#3>", line 1, in <module>
    rh.login(username="<email>", password="<password>")
  File "<directory>/robinhood.py", line 228, in login
    raise RH_exception.LoginFailed()
pyrh.exceptions.LoginFailed

Looking at the error, it seems self.challenge_id never gets assigned, or gets an empty string, resulting in the url that causes a 404 exception.

                res = self.session.post(endpoints.login(), data=payload, timeout=15)
                res_data = res.json()

                if (
                    "access_token" in res_data.keys()
                    and "refresh_token" in res_data.keys()
                ):
                    self.auth_token = res_data["access_token"]
                    self.refresh_token = res_data["refresh_token"]
                    self.headers["Authorization"] = "Bearer " + self.auth_token
                    return True

                if self.challenge_id == "" and "challenge" in res_data.keys():
                    self.challenge_id = res_data["challenge"]["id"]
                self.headers[
                    "X-ROBINHOOD-CHALLENGE-RESPONSE-ID"
                ] = self.challenge_id  # has to add this to stay logged in
                sms_challenge_endpoint = (
                    "https://api.robinhood.com/challenge/"
                    "{}/respond/".format(self.challenge_id)
                )

EDIT: I did some digging, and I noticed that res_data returns the following json
{'mfa_required': <content>, 'mfa_type': '<content>'}
Which makes sense why challenge_id is blank.

yep, that's right

i have the same result: No 2FA Given email code.
"you only need to type the email code once, and you can save the oauth token to disk as mentioned in the docs." Can I get some help on how to enter the code? appreciate it

i have the same result: No 2FA Given email code.
"you only need to type the email code once, and you can save the oauth token to disk as mentioned in the docs." Can I get some help on how to enter the code? appreciate it

If you are running the script in IDLE, you should be able to enter the code you were sent via SMS. You will probably have to click under the "No 2FA Given email code" text. Also, make sure you are pulling from the master branch and installing that module.

oauth

Can you show me where this is in the docs? I cant find anywhere in the docs that mentions saving the token to the disk.

cc @adithyabsk

putting here because i believe it is related ...
i'm getting a strange error
2023-05-30 06:44:43,759 - pyrh.models.sessionmanager - DEBUG - Logging in to Robinhood
2023-05-30 06:44:43,759 - pyrh.models.sessionmanager - DEBUG - POSTing to https://api.robinhood.com/oauth2/token
2023-05-30 06:44:43,760 - pyrh.models.sessionmanager - DEBUG - POSTing to https://api.robinhood.com/oauth2/token
2023-05-30 06:44:43,760 - pyrh.models.sessionmanager - DEBUG - POST data: {'password': 'xxx', 'username': 'xxx', 'grant_type': 'password', 'client_id': 'c82SH0WZOsabOXGP2sxqcj34FxkvfnWRZBKlBjFS', 'expires_in': 734000, 'scope': 'internal', 'device_token': 'xxx', 'challenge_type': None}
2023-05-30 06:44:44,076 - pyrh.models.sessionmanager - DEBUG - oauth: OAuth(detail='Method "GET" not allowed.')
2023-05-30 06:44:44,076 - pyrh.models.sessionmanager - DEBUG - oauth is not valid```

ok if i change raise_errors to true in the
            urls.OAUTH,
            data=oauth_payload,
            raise_errors=True,
            auto_login=False,
            schema=OAuthSchema(),
        )```
        I get a new error `requests.exceptions.HTTPError: 405 Client Error: Method Not Allowed for url: https://api.robinhood.com/oauth2/token/`


Problems with using --srun-args "--async -o ${work_dir} " on Slurm

I tried to use mim to submit training tasks asynchronously on Slurm, using the following command:
mim train mmcls resnet101_b16x8_cifar10.py --launcher slurm --gpus 1 --gpus-per-node 1 --partition aide_dev --work-dir tmp --srun-args "--async -o /mnt/petrelfs/gaoshiqi/"
In order to be able to commit asynchronously on slurm and redirects the log to /mnt/petrelfs/gaoshiqi/, I added the parameter  --srun-args "--async -o /mnt/petrelfs/gaoshiqi/"
However, the execution of the command success but the task is not committed to the Slurm cluster, and I cant find my log /mnt/petrelfs/gaoshiqi/phoenix-slurm-5181985.out.
the  log is as follows：

Trying to find my log, but not exited:

I found the cause of the problem: after using asynchronous submission, a batchscript is automatically generated, and I found a problem with the content.

If the job-name parameter is not added, mim will automatically generate it, causing the batchscript content to be misplaced and thus causing the task submission to fail.

It seems a bug of srun:


Width 100%??

I am trying to set the width of the chart to 100%, but nothing is happening. Is it possible to do with your charts?
My Code:
<View>
<PureChart data={sampleData} type='line' width='100%'/>
</View>

PureChart inherits parents width.
Try:
<View style={{width: '100%'}}>

still not be able to have charts at 100% width on a view

Hi @oksktank , are there any work arounds that you can suggest here? thanks

same here

Did u guys find a solution?

use defaultColumnWidth instead of width
defaultColumnWidth:{500}
@tofijak @violabg @shierro @erdemkosk @oksktank


Use 'ident' argument instead of explicit assign to the $scope object if controllerAs presents + allow to use forms with controllerAs syntax

controllerAs presents

+1 for the forms with controllerAs fix. I spent a lot of time trying to figure out why it wasn't working today, your fix is working for me.

Thanks @poporul merged this now :)


Fixed link to "How-To" section of docs

The button on the main page labeled How-To is actually hyperlinked to https://ratatui.rs/how-to/layout/dynamic/, which is not the main page of the "How-To" section of the docs. This PR fixes the link by changing the link from /how-to/layout/dynamic/ to /how-to/.

Thanks for the PR!


Encoding for parameters

Hi, we use a different encoding of Alamofire, is possible modify/parameterize the CharacterSet used ?
thanks
public extension CharacterSet {
    /// Creates a CharacterSet from RFC 3986 allowed characters.
    ///
    /// RFC 3986 states that the following characters are "reserved" characters.
    ///
    /// - General Delimiters: ":", "#", "[", "]", "@", "?", "/"
    /// - Sub-Delimiters: "!", "$", "&", "'", "(", ")", "*", "+", ",", ";", "="
    ///
    /// In RFC 3986 - Section 3.4, it states that the "?" and "/" characters should not be escaped to allow
    /// query strings to include a URL. Therefore, all "reserved" characters with the exception of "?" and "/"
    /// should be percent-escaped in the query string.
    static let afURLQueryAllowed: CharacterSet = {
        let generalDelimitersToEncode = ":#[]@" // does not include "?" or "/" due to RFC 3986 - Section 3.4
        let subDelimitersToEncode = "!$&'()*+,;="
        let encodableDelimiters = CharacterSet(charactersIn: "\(generalDelimitersToEncode)\(subDelimitersToEncode)")

        return CharacterSet.urlQueryAllowed.subtracting(encodableDelimiters)
    }()
}

URLEncodedFormEncoder can take a CharaterSet of escaped characters at initialization. You can read more in the API documentation. It does need a callout in our usage docs.


Feat/es5 examples

These require a vite downgrade in order to get a core-js to work with Chrome 38 - closing for now.


Release sdk 672

https://github.com/Azure/sdk-release-request/issues/672

/azp run python - appplatform -ci

/azp run python - automanage - ci


Build issue

Use "Release" compiler in both solution
Execute "Server_0.4\Server_0.4\bin\Release\Lime Worm.exe"
Copy "Client_0.4\Client_0.4\bin\Release\Stub.exe", To "Server_0.4\Server_0.4\bin\Release\Stub\Stub.exe"

just fallowed this steps, and tried to build WORM.exe but i dont see any option like build or how i can build it ??
Screenshot-
https://prnt.sc/itq9al

You are using virtualbox right? I tested on VMware and it's working just fine, but I will fix this bug in next update.

yes its a vm (windows 7),
will this works fine normally ??

I didn't test it on virtualbox , I only tested it on real PC and VMware.
But I will fix this issue for virtualbox soon

yeah i got you,
but in my case im also using vmware 12 which is installed in Linux mint.

I'm using latest vmware on windows 10 and it's woking 100% fine

okay cool ..! let me test it on windows 10.
Thanks for the quick update.

Just released a new update. https://github.com/NYAN-x-CAT/Lime-Worm/releases/tag/0.4.2A
Fixed VirtualBox bug

awesome .!
thanks bro.


Specify workload identity as requirement

When following the guide to install Preflight in cluster on GKE having workload identity enabled on the cluster should be listed as a requirement. Without it the second Terraform project cannot be applied.

Closing because #32 lists workload identity as a requirement.


Level Design Ideas

Throw any ideas you want into this.
Level Design

Secret Shops in levels
Hidden Areas
Sub Missions in Levels

3 levels a world

Zombies and normal People that are on a timer
If you take too long there are more zombies on the level and Less people
you are are rewarded in special currency based off of how many people you save

Can go back to already completed levels with gear you have acquired to go to hidden areas that are bonus levels.
Unsure what these hidden levels will have for the players

Potentially these levels have parts to a potion that will heal the zombie plague.


HIVE-25908: Upgrade thrift from 0.13.0 to 0.14.1

What changes were proposed in this pull request?

Thrift version bump from 0.13.0 to 0.14.1
Why are the changes needed?

To fix existing security issued in 0.13.0  https://nvd.nist.gov/vuln/detail/CVE-2020-13949
Does this PR introduce any user-facing change?

No
How was this patch tested?

Since this is version upgrade only. If all the existing test case cleared then we are good to go.

What about the seperate standalone-metastore Hive project? It specifies the libthrift.version

Yes seperate standalone-metastore also specifies the libthrift.version. I have bumped the version for that also.

For the new 0.14.1 methods such as getMinSerializedSize, do we understand:

why the method was added?
Is it possible the Thrift library call it on our objects now? What is the expected behavior? Is there a way to indicate not implemented like returning -1

This methods got added as part of interface changes in thrift 0.14.1. We don't understand and use this methods as of now. So i will return  -1;


swarm services logs

It would be awesome to see logs and manage containers of cluster services just like it is for node containers.

What would you need here? You're aware that Docker does not have any built in way to have a look at the logs of a service? Do you think an aggregated vision of all the containers related to a service logs would be useful? Same for the services, an aggregated view of the containers associated to a service?

Yes aggregated version with timestamp | node_name | logentry would be amazing (https://docs.docker.com/docker-cloud/getting-started/deploy-app/8_view_logs/). I know docker swarm does not support this yet but for example miniswarm uses a bash hack for it https://github.com/docker/docker/issues/23710#issuecomment-239004208
Maybe also viewing swarm-node logs one by one could be enough, or even better in some cases.
Then for each single swarm-node service container it would be nice to be able to stop or exec bash into it like we can already do with single node containers. This is great for inspecting/debugging.

In docker 1.13 there's an experimental option (docker service logs) of check the service logs across the cluster.
More info here: https://github.com/docker/docker/pull/28089

Can this be considered for Portainer's roadmap, given Docker 1.13.0's imminent release this week?

Any news about this feature?

As stated in the Docker release note for 1.13, this is still an experimental feature:

(experimental) Add docker service logs command to view logs for a service

But it looks like @Glowbal started working on that ;)

Guys as the Docker documentation states, the same command can be used both for services and tasks:
Usage:  docker service logs [OPTIONS] SERVICE|TASK
So, I  guess that this issue is a duplicate of #1004 , and there is a pull request trying to solve it: #1005
Should this issue be closed?

Woops, indeed this one is a duplicate of #669
This feature has been merged recently and is available in the develop branch, you can check it out in our unstable build at portainer/portainer:develop.


[BUG] elasticApiKey is ignored and not added to the requests' header

Describe the bug
Hello. I think I found an issue with configuring a KtorRestClient using the elasticApiKey parameter.  I think this parameter is ignored because my resulting queries don't have any security header like "Authorization"-> "ApiKey xxxx"
When running a query to my Elasticsearch instance, I run into this error:
{
  "error": {
    "root_cause": [
      {
        "type": "security_exception",
        "reason": "missing authentication credentials for REST request [/myindex]",
        "header": {
          "WWW-Authenticate": [
            "Basic realm=\"security\", charset=\"UTF-8\"",
            "ApiKey"
          ]
        }
      }
    ],
    "type": "security_exception",
    "reason": "missing authentication credentials for REST request [/myindex]",
    "header": {
      "WWW-Authenticate": [
        "Basic realm=\"security\", charset=\"UTF-8\"",
        "ApiKey"
      ]
    }
  },
  "status": 401
}

When debugging into the kt-search code,  I see that no header are present:

If at that point, I manually add the "Authorization"-> "ApiKey xxxx" header in the debugger, then the query works fine.
To Reproduce
Here how to reproduce the problem locally:

Run a local instance of Elasticsearch configured with an API key using docker. You can do that easily by running this command: curl -fsSL https://elastic.co/start-local | sh (more info here)
Run this kotlin snippet using the API key that appeared in your env file after executing the previous script:

package com.test.ktsearch

import com.jillesvangurp.ktsearch.KtorRestClient
import com.jillesvangurp.ktsearch.SearchClient
import com.jillesvangurp.ktsearch.getIndex
import kotlinx.coroutines.runBlocking

fun main() {
    val searchClient = SearchClient(
        KtorRestClient(
            host = "localhost",
            port = 9200,
            https = false,
            elasticApiKey = "xxxxxx",
            logging = true,
        ),
    )

    runBlocking {
        searchClient.getIndex("myindex")
    }
}

Expected behavior
No error about security should be raised from the previous snippet
Your context
I am adding my snippet project with IntelliJ if you want to bootstrap faster:
KtSearchTest.zip
libs:

kt-search version 2.3.4
kotlin 2.0.21
what operating system are you using: MacOS Sequoia

Will you be able to help with a pull request?
Optional of course, but do let me know if you plan to do work.

Hey, thanks for reporting. I recently got a report from somebody else related to this. I'll see if I can address this soon. For now, either use basic authentication or indeed do what you are currently doing as a workaround.

See #155


build from source error

tilequeue wof-process-neighbourhoods --config tilequeue-config.yaml
File "/usr/local/lib/python2.7/dist-packages/tilequeue-0.8.0-py2.7.egg/tilequeue/format/mvt.py", line 1, in
from mapbox_vector_tile.encoder import on_invalid_geometry_make_valid
ImportError: cannot import name on_invalid_geometry_make_valid

It looks like this is caused by running an earlier version of tilequeue with a later version of vector-datasource. This is because we've made changes in the development ("master") branch of vector-datasource which requires corresponding changes in the development branch of tilequeue.
There are two ways to resolve this:

Use the tagged releases of vector-datasource - at this time, the latest is v0.10.3, and the release notes give the corresponding tagged releases of the dependencies to use. This is what we are currently running in production.
Use the development ("master") branches of vector-datasource, tilequeue and tileserver. The easiest way to do this is to pip install -Ur vector-datasource/requirements.txt. Please bear in mind that, as a development branch, there may be issues with the install, and the content of the tiles may not be as expected. Additionally, the WOF dump will not work (it's from a v0.10.3 database), so it will be necessary to either install WOF data from scratch, or run the migrations (vector-datasource/data/migrations/run_migrations.sh) after loading the dump, and possibly rolling back any l10n schema changes. There is, I'm sorry to say, very little documentation on this.

I recommend using the tagged release.
Please also see the installation instructions for more details.

@zerebubuth
thank you but v0.10.3 do not have "setup.py" in its root directory.
vector-datasource-0.10.3# python setup.py develop
python: can't open file 'setup.py': [Errno 2] No such file or directory

Yes, v0.10.3 is before vector-datasource had any code in it. Instead, it has an extra dependency on the integration-1 branch of our TileStache fork. The current installation instructions I linked to are probably updated and won't work for that older version, sorry. You might have better luck following an older revision of the instructions.

@zerebubuth
Thank you for your reply!
I just want get the ,mvt data  and use it in android by offline model  how can i do it

If you are happy to use the data which we serve through our production API then the easiest way is to sign up for an API key, and download the area which interests you. All of our tiles can be cached for offline use. API keys are rate-limited, so please pay attention to the amount of tiles you download. If you are using our mobile SDK then you need not download any zoom levels higher than z16, as z17, 18 and higher tiles can be "over zoomed" from the z16 ones.
If you find that your download requirements are higher than can be supported through our rate-limited service, then you will probably want to generate vector tiles. This is, unfortunately, not yet an easy process. I would recommend persevering with vector-datasource, as this will provide a server that you can download as much as you want from.
Finally, if you want a different data set, or control over the details of the data downloaded, then I do (of course) recommend vector-datasource, but there are also alternatives:

MAPS.ME OMIM is a mobile-native offline format and mapping SDK for iOS and Android. It doesn't generate MVT format tiles, but has its own format. I have no experience of using it personally, but I've used the Android app and it's very impressive.
Tilemaker is a much more lightweight tile generating tool, which does not include a server, but should be fine for generating small areas of MVT tiles for offline use.

Hope that helps.

@zerebubuth
Thank you for your integrated suggestion.
I am sorry my english is not very good ,and i do not find the way.
How can i download your service data "Manhattan" mvt data for example and use it in android by offline model.

If I understand what you're trying to do, the Tilemaker approach that @zerebubuth recommended sounds like easiest approach for you. You can download the source pbf data for Manhattan from our metro extracts and point Tilemaker at it to generate mvt tiles.

@rmarianski
thank you!
I can do it!


How to cleanup if thaliMobile decides peer is unavailable

Issue split from a code review at https://reviewable.io/reviews/thaliproject/thali_cordovaplugin/583 where @yaronyg was asking following:
Let's imagine this is a non-tcp peer and let's further imagine that it hasn't gotten an update in awhile and thaliMobile decides to declare it not present. What is thaliMobileNativeWrapper doing? In other words when thaliMobileNativeWrapper sent up the peerAvailability event it sent along with it a port number it was listening on for connections to that peer. If thaliMobile has decided that the peer is no available then nobody is going to call that port (at least not unless another peer availability event shows up). So do we just let thaliMobileNativeWrapper sit on that port waiting for a connection that will never come? Does thaliMobileNativeWrapper have its own separate logic for when the peer won't be available and when it will clean things up? Certainly the native layer has its own logic on these things. Are we depending on that native layer to eventually send up a peerAvailability event saying the peer isn't available? Who is going to make sure that the port is closed?

I am adding a method to tcpServersManager that I will expose via thaliMobileNativeWrapper that the peer pool manager will use when it wants to kill a listener in order to free up a slot on Bluetooth. But in general I don't think there is a problem here. We limit how many outstanding listeners we have. So unconnected listeners will just sit there until we hit our listener limit and then we will recycle them. No harm done. A connected listener (e.g. one that is actually communicating with someone) has a time out on it so if it goes quiet for too long it will be closed automatically. So I think having thaliMobile call the new kill interface when it sends out a peer not available message is a nice to have, but it's not a must have.


OmniSharp Agenda » Meeting Tuesday March 22th @ 20:30 UTC

Recording
You can view the meeting at https://youtu.be/wmGsYBUupjY
Time

PST (UTC-7)
EST (UTC-4)
London (UTC)
Zürich (UTC+1)
Helsinki (UTC+2)
Sydney (UTC+11)

1:30 PM
4:30 PM
8:30 PM
9:30 PM
10:30 PM
7:30 AM

NOTE: I realize this is very short notice, this is entirely my fault, I'll make sure to get the next one with at least a weeks notice for April!!!
Meeting info
Join skype meeting
Join by Phone
Toll-free number: +1<PHONE_NUMBER> or Toll number: +1<PHONE_NUMBER>
Find a local number
Conference ID: 280856
Help
Agenda
If you can think of any more agenda items, feel free to edit the issue (if you have permissions) or just comment on this thread and we'll make sure to group them up before the meeting.
Also feel free to discuss any agenda items early as part of this issue, we can make sure to recap during the start of the meeting, and may cut down on the time we have to spend on some of them.
Project Management
There's a lot of stale issues and backlog items. Let's chat about how we get clean and stay clean.
Telemetry
No updates yet, see #5 for details.
C# Team's Ambitions for OmniSharp  via @dustincampbell
Assuming no new updates here, but we'll keep it as a talking point. :smile:
dotnet cli
dotnet cli has been merged to both master (pinned) and of course dev.  Moving forward we want to keep dev as stable as possible.
OmniSharp-atom

Removed most react dependencies, might be a few remaining.
Focusing on making it easier to work with atom text editor instances.
Migration has started for rxjs5.beta3!

OmniSharp-node-client

Added the ability to download the runtime, worked through a few hiccups there.

Now the node client downloads an appropriate runtime for the user
Currently defaults to mono
If they are on mac/linux, and do not have mono, we fall back to coreclr.
The end game is to have this configurable, and move to CoreClr as the default eventually.

With v4 migrated to rxjs5.beta3

OmniSharp-vscode

Landed! https://github.com/OmniSharp/omnisharp-vscode
Updates? Progress? Goals?
Contributors outside Microsoft?

plumbing is currently in progress to accept cla contributions

OmniSharp-roslyn

We've now moved to cli, off of dnx.
What else?

OmniSharp-scaffolding

Any information / updates?

OmniSharp-brackets

Any information / updates?

OmniSharp-sublime

Any information / updates?

OmniSharp-emacs

Any information / updates?
cc @ianbattersby

Additional agenda items?
Either update the issue, or add them in the comments below!
cc @OmniSharp/all

22 March is Tuesday :)

I would also like to point out that USA and Canada are on DST right now but Europe isn't yet, so what was 6h time difference to Zurich is today just 5h time difference :smile:

I am just full of win today.
@OmniSharp/all times updated, and the title updated it is supposed to be today (Tuesday)

Can someone please record today's meeting?

I am so looking forward to this; missed the last two.

dotnet waffle!!! https://youtu.be/6dBm1_SI8jE

@sayedihashimi dotnet-waffle looks great at first glance :+1: I love that you can add github sources.
Random notes during watching:

it'd be nice if the cwd or git root are auto included as sources so projects can ship local templates in checkouts without poluting the overal available templates.
support org_or_user/repository syntax for github repositories
Another good thing to have from the get go are namespaces, so a full template id is namespace@template in case of template name clashes. You would only need to specify the namespace in case of ambiguity (the org/repos could be default namespace for github sources and local@ for cwd git root sources)

Noticed small typo spotted in the video PathReplacemets, which brings me to a super small nag to use camelCase for keywords in the templating language over PascalCase

Also like the idea of camel case, local templates, and namespaces; watching the video now; yay!

@Mpdreamz

it'd be nice if the cwd or git root are auto included as sources so projects can ship local templates in checkouts without poluting the overal available templates.

Good idea, issue created https://github.com/sayedihashimi/dotnet-waffle/issues/1.

support org_or_user/repository syntax for github repositories

What do you mean? Is there not an https url for that which can be used?

Another good thing to have from the get go are namespaces, so a full template id is namespace@template in case of template name clashes. You would only need to specify the namespace in case of ambiguity (the org/repos could be default namespace for github sources and local@ for cwd git root sources)

I was thinking to add support for a list of aliases. So for the template name/id you put the full name and then short names in aliases. When you search, look for name matches first and then if not found look for alias match.

Noticed small typo spotted in the video PathReplacemets, which brings me to a super small nag to use camelCase for keywords in the templating language over PascalCase

Thanks, issues opened.
https://github.com/sayedihashimi/dotnet-waffle/issues/3
https://github.com/sayedihashimi/dotnet-waffle/issues/2

FYI I have added the video link to the issue text https://youtu.be/wmGsYBUupjY

What's the plan with dotnet new? Are MS shipping with only MVC / WebAPI
templates? With dotnet waffle and yeoman are they going to use any of them?
On Tuesday, 22 March 2016, Sayed Ibrahim Hashimi<EMAIL_ADDRESS>wrote:

FYI I have added the video link to the issue text
https://youtu.be/wmGsYBUupjY
—
You are receiving this because you are on a team that was mentioned.
Reply to this email directly or view it on GitHub
https://github.com/OmniSharp/OmniSharp/issues/11#issuecomment-200050622

As of right now; dotnet new is 'bare bones' with no intent to support template sources or anything extravagant, which is what is driving the need to create something like this in the first place.  :)

I've raised this FYI https://github.com/dotnet/cli/issues/2000
On Tuesday, 22 March 2016, Deavon M. McCaffery<EMAIL_ADDRESS>wrote:

As of right now; dotnet new is 'bare bones' with no intent to support
template sources or anything extravagant, which is what is driving the need
to create something like this in the first place.  :)
—
You are receiving this because you are on a team that was mentioned.
Reply to this email directly or view it on GitHub
https://github.com/OmniSharp/OmniSharp/issues/11#issuecomment-200062543

Sorry for the late chime in. But ran across this over the last couple days. Appears this maybe where the dotnet new Is headed for templates. TemplTes will be nuget packages and then you will be able to dotnet new -t <package>
https://github.com/DamianEdwards/dotnet-new2
@sayedihashimi @jchannon

I've been discussing with @damianedwards for the past few days. Here is where we are at.
For RC2 we're laser focused on investing in the core components and getting the release out the door. For dotnet new we are going to enable an experience where users can create projects from the command line. It will be pretty basic, but enough to get past go. Templates will be contained in NuGet packages like what's shown in Damian's video. I'm not sure about the exact templates that will be available on day 1 but it should include templates that are already available in dotnet new plus some web template(s). For the web templates I think we'll enable 1 or 2, but I'm not really sure yet.
Since it will be based on NuGet packages it should be possible for you to create templates that can be used by dotnet new. In future versions you may need to update your package to get templates to work.
For the more long term we are looking to create something that's more feature rich and that can meet the needs of being plugged into:

Visual Studio
Yeoman
Whatever is next

Some of the ideas that you see in my dotnet-waffle project will make it's way into dotnet-new. The long term hope is that we can author templates in one spot and then plug them into the right experiences. I think we can use this time to work together on dotnet-waffle to flesh out our ideas and how we want the experience to be, so that we can feed that into the RTM/RTM+ version of dotnet new

So; here's a thought... what if dotnet-new supported the ability to specify within the template.json (or whatever the entry point of the template is) another cli tool to execute... so you could do something like...
template.json:
{
    tooling: {
        cli: 'dotnet-waffle',
        src: 'http://nuget.org/packages/dotnet.waffle.nupkg'
        args: '-dowhatever we want'
    }
}

Probably opens up some security vulnerabilities; but as long as we allow the user to opt-in the first time they use a template that calls an external tool with a message like:
"This template wishes to execute a third-party tool (dotnet-waffle) from http://nuget.org/packages/dotnet.waffle.nupkg. Do you want to allow this? y/n?"
I think that avoids any repercussions. Anyway, the main point of this is, we can enable dotnet-new to execute any pipeline, including dotnet-waffle, yo, mustache, or any other templating engine out there through a common CLI interface -- making it immensely flexible in the future without requiring any modifications to dotnet-new itself to support them in the future.
Thoughts?

I think the idea that you can add templates etc is great.
My only question is what MS will ship as a default set of templates?
Ideally I'd like them to ship a Nancy template but in all honestly I expect
hell will freeze over before that happens (maybe that's a little too
strong).
The issue comes down to what 90% of devs are going to do, I imagine most
will just use the templates that are provided OOTB however, imagine if none
were shipped and that then changed the behaviour of the 90% so they have to
go and find them and so all template authors are at an equal standing so to
speak.
Thoughts?
On 24 March 2016 at 04:15, Deavon M. McCaffery<EMAIL_ADDRESS>wrote:

So; here's a thought... what if dotnet-new supported the ability to
specify within the template.json (or whatever the entry point of the
template is) another cli tool to execute... so you could do something
like...
template.json:
{
tooling: {
cli: 'dotnet-waffle',
src: 'http://nuget.org/packages/dotnet.waffle.nupkg'
args: '-dowhatever we want'
}
}
Probably opens up some security vulnerabilities; but as long as we allow
the user to opt-in the first time they use a template that calls an
external tool with a message like:
"This template wishes to execute a third-party tool (dotnet-waffle) from
http://nuget.org/packages/dotnet.waffle.nupkg. Do you want to allow this?
y/n?"
I think that avoids any repercussions. Anyway, the main point of this is,
we can enable dotnet-new to execute any pipeline, including dotnet-waffle,
yo, mustache, or any other templating engine out there through a common CLI
interface -- making it immensely flexible in the future without requiring
any modifications to dotnet-new itself to support them in the future.
Thoughts?
—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub
https://github.com/OmniSharp/OmniSharp/issues/11#issuecomment-200656511

Also I guess we should move this discussion to dotnet.waffle repo..

@dmccaffery I have some thoughts. Give me a few days to write something up and I'll share it.

Also I guess we should move this discussion to dotnet.waffle repo..

The dotnet-waffle repo is in a temporary location and likely to move at some point, so issues there will be lost at some point. Instead I have created a new issue at https://github.com/aspnet/Templates/issues/464 where we can share thoughts on the command line experience for asp.net projects.
FYI for RC2 it looks like dotnet-new will not significantly change. We have other more critical items that we are going to be focusing on. We will revisit that after RC2 of course and have something for the next release.

@sayedihashimi Sounds like a tasty read... looking forward to it. :+1:

I have shared my thoughts at https://github.com/dotnet/cli/issues/2052#issuecomment-207031714


How to add another checkbox like Required for the question element.

Is there a way to create another checkbox near Required, Can anyone help me with this, I cant find a way to do this.

I have tried adding another check box to mw-form-question-builder.html but it didn't work.

                    <md-button class="md-accent md-raised" type="button" role="button" ng-click="ctrl.save()" translate="mwForm.buttons.questionReady">
                        Ready
                    </md-button>

                    <md-checkbox  ng-model="ctrl.question.required" ng-disabled="ctrl.readOnly" flex>
                        Required
                    </md-checkbox>
                    <md-checkbox  ng-model="ctrl.question.calc" flex>
                        New CheckBox
                    </md-checkbox>


Could not read path ...

C:\Users\AhmedRazas\ReactNativeProjects\EventApp>react-native run-android
Scanning 603 folders for symlinks in C:\Users\AhmedRazas\ReactNativeProjects\Eve
ntApp\node_modules (144ms)
JS server already running.
Building and installing the app on the device (cd android && gradlew.bat install
Debug)...
To honour the JVM settings for this build a new JVM will be forked. Please consi
der using the daemon: https://docs.gradle.org/2.14.1/userguide/gradle_daemon.htm
l.
Observed package id 'build-tools;26.0.0-rc2' in inconsistent location 'C:\Progra
m Files (x86)\Android\android-sdk\build-tools\26.0.0-preview' (Expected 'C:\Prog
ram Files (x86)\Android\android-sdk\build-tools\26.0.0-rc2')
Observed package id 'build-tools;26.0.0-rc2' in inconsistent location 'C:\Progra
m Files (x86)\Android\android-sdk\build-tools\26.0.0-preview' (Expected 'C:\Prog
ram Files (x86)\Android\android-sdk\build-tools\26.0.0-rc2')
Incremental java compilation is an incubating feature.
:app:preBuild UP-TO-DATE
:app:preDebugBuild UP-TO-DATE
:app:checkDebugManifest
:app:preReleaseBuild UP-TO-DATE
:react-native-maps:preBuild UP-TO-DATE
:react-native-maps:preReleaseBuild UP-TO-DATE
:react-native-maps:checkReleaseManifest
:react-native-maps:preDebugAndroidTestBuild UP-TO-DATE
:react-native-maps:preDebugBuild UP-TO-DATE
:react-native-maps:preDebugUnitTestBuild UP-TO-DATE
:react-native-maps:preReleaseUnitTestBuild UP-TO-DATE
:react-native-maps:prepareComAndroidSupportAppcompatV72301Library UP-TO-DATE
:react-native-maps:prepareComAndroidSupportSupportV42400Library UP-TO-DATE
:react-native-maps:prepareComFacebookFbuiTextlayoutbuilderTextlayoutbuilder100Li
brary UP-TO-DATE
:react-native-maps:prepareComFacebookFrescoDrawee130Library UP-TO-DATE
:react-native-maps:prepareComFacebookFrescoFbcore130Library UP-TO-DATE
:react-native-maps:prepareComFacebookFrescoFresco130Library UP-TO-DATE
:react-native-maps:prepareComFacebookFrescoImagepipeline130Library UP-TO-DATE
:react-native-maps:prepareComFacebookFrescoImagepipelineBase130Library UP-TO-DAT
E
:react-native-maps:prepareComFacebookFrescoImagepipelineOkhttp3130Library UP-TO-
DATE
:react-native-maps:prepareComFacebookReactReactNative0484Library UP-TO-DATE
:react-native-maps:prepareComFacebookSoloaderSoloader010Library UP-TO-DATE
:react-native-maps:prepareComGoogleAndroidGmsPlayServicesBase1024Library UP-TO-D
ATE
:react-native-maps:prepareComGoogleAndroidGmsPlayServicesBasement1024Library UP-
TO-DATE
:react-native-maps:prepareComGoogleAndroidGmsPlayServicesMaps1024Library UP-TO-D
ATE
:react-native-maps:prepareComGoogleAndroidGmsPlayServicesTasks1024Library UP-TO-
DATE
:react-native-maps:prepareOrgWebkitAndroidJscR174650Library UP-TO-DATE
:react-native-maps:prepareReleaseDependencies
:react-native-maps:compileReleaseAidl UP-TO-DATE
:react-native-maps:compileReleaseNdk UP-TO-DATE
:react-native-maps:compileLint UP-TO-DATE
:react-native-maps:copyReleaseLint UP-TO-DATE
:react-native-maps:compileReleaseRenderscript UP-TO-DATE
:react-native-maps:generateReleaseBuildConfig
FAILURE: Build failed with an exception.

What went wrong:
Could not read path 'C:\Users\AhmedRazas\ReactNativeProjects\EventApp\node_modul
es\react-native-maps\lib\android\build\generated\source\buildConfig\release\com
airbnb\android\react\maps'.

C:\Users\AhmedRazas\ReactNativeProjects\EventApp\node_modules\react-native-map
s\lib\android\build\generated\source\buildConfig\release\com\airbnb\android\reac
t\maps

Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug
option to get more log output.

BUILD FAILED
Total time: 36.649 secs
Could not install the app on the device, read the error above for details.
Make sure you have an Android emulator running or a device connected and have
set up your Android development environment:
https://facebook.github.io/react-native/docs/android-setup.html
I am using Windows Machine

Besides suggesting " Don't use windows " go for mac or linux  :)
I see that you might be using Android Studio 3 beta ? I would not recommend using it.
The current build tools version is 26.0.2 so it could be an issue of your local dev tools installation

Did't you solve this problem ? @ahmedraza11

Awesome :)
Prepare to migrate to gradle 4.3 and you'll have to change gradle file too :)
the nice thing is you'll then be able to remove build tools version


ENH: Pythan support for additional scipy.special functions

In scipy/scipy#17410, we'd like to pythranize our translation of Genz' multivariate_t integrals, but to do that, we'd need some scipy.special functions that Pythran does not yet support. Specifically, we'd ask for:

[x] gammaincinv
[x] ndtri
[ ] ndtr (we could work with math.erf if need be, but having it vectorized and being able to use ndtr directly would be very nice)

Thanks for considering it!

Thank you!


Problem using multiple terms in a rule

Hello,
I made a rule to alert me when a new member is added to certain groups.
To do that I use :

terms :
groupe : ["group1", "group2", group3", ...]

If I add a members to more than one group, for example group1 and group3, I will only receive on alert for the first group but not for group3.
Or if I add two members to a group, I will only have one alert for the last added member.
Thank you.

Just find my answer : https://github.com/Yelp/elastalert/issues/1044


Adding multiple surfaces to 3D view causes error

🐛 Bug
I wanted to add a grayscale surface for a 3D image (the allen brain atlas in this case), then overlay a surface with the label values. I got an "axis out of bounds error".
To Reproduce
Here's a reproducible example using binary blobs:
from skimage import data, measure
import napari

image = data.binary_blobs(128, n_dim=3)
verts, faces, normals, values = (
    measure.marching_cubes_lewiner(image.astype(float), level=0.7)
)

labels = ndi.label(image)[0]
vertex_labels = ndi.map_coordinates(labels, verts.T, order=0).astype(int)
viewer = napari.view_surface((verts, faces, values))
surf_layer = viewer.add_surface((verts, faces, vertex_labels),
                                colormap='gist_earth')

Results in this error:
https://gist.github.com/jni/41e2d3686a6822a2748860413762fb43
The last few lines:
/Volumes/Projects/napari/napari/_vispy/vispy_base_layer.py in <lambda>(e)
     44
     45         self.layer.events.refresh.connect(lambda e: self.node.update())
---> 46         self.layer.events.set_data.connect(lambda e: self._on_data_change())
     47
     48         self.layer.events.visible.connect(lambda e: self._on_visible_change())

/Volumes/Projects/napari/napari/_vispy/vispy_surface_layer.py in _on_data_change(self)
     47             )
     48         ):
---> 49             self._on_display_change()
     50
     51         if len(self.layer._data_view) == 0 or len(self.layer._view_faces) == 0:

/Volumes/Projects/napari/napari/_vispy/vispy_surface_layer.py in _on_display_change(self)
     32         self.reset()
     33         for b in range(self.layer.dims.ndisplay):
---> 34             self.node.bounds(b)
     35
     36     def _on_data_change(self):

/Volumes/Projects/vispy/vispy/visuals/visual.py in bounds(self, axis, view)
    249             view = self
    250         if axis not in self._vshare.bounds:
--> 251             self._vshare.bounds[axis] = self._compute_bounds(axis, view)
    252         return self._vshare.bounds[axis]
    253

/Volumes/Projects/vispy/vispy/visuals/mesh.py in _compute_bounds(self, axis, view)
    535         if self._bounds is None:
    536             return None
--> 537         return self._bounds[axis]

IndexError: list index out of range

suggest that there is an issue with the data bounds not being updated to have the correct dimensionality. Inspecting with %debug shows that self._bounds is a list containing just two len-2 lists of float.
Expected behavior
The new surface should appear without issue.

That's no good! I'll take a look - I'm also now getting the same error for
viewer = Viewer(ndisplay=3)
layer = viewer.add_surface((verts, faces, values))

and I know that used to work, likely a regression after I removed some of the repeated _on_data_change calls a couple PRs back. Will need a fix and some better tests

Ah, yes, just updated the issue based on further exploration. On the plus side, writing a test for this should be nice and easy, once fixed. =)


Crash on placeSubviews

Thank you for contributing to MarkdownUI!
Before you submit an issue, please complete the report with all the relevant details for your bug and go through every item in the checklist.
Describe the bug
FlowLayout > placeSubviews > line 24 is crashing

Thread 1: Fatal error: view origin is invalid: (nan, 8.0), UnitPoint(x: 0.0, y: 0.0), (0.0, 0.0)

Checklist

[x] I can reproduce this issue with a vanilla SwiftUI project.
[x] I can reproduce this issue using the main branch of this package.
[x] This bug hasn't been addressed in an existing GitHub issue.

Steps to reproduce
I use this Markdown in a list of text, the user sends. This text is crashing
Markdown(MarkdownContent("Words: words words word \n----\n---\n\\\n\\\n![](https://i1.wp.com/vaventura.com/wp-content/uploads/2018/04/archeVA.jpg?resize=1600%2C1774&ssl=1)"))

Expected behavior
It shouldn't crash
Screenshots

Version information

MarkdownUI: main
OS: iOS 17.2
Xcode: 15.1.0

Additional context

I could not reproduce the crash with the information you provided. MarkdownUI is rendering the content in the issue description just as expected.

Given that the crash cause is the invalid coordinates provided by the system in placeSubviews(in:proposal:subviews:cache:), the root cause must lay in the view hierarchy particular to your app.
I can only help if you provide a project reproducing the crash in isolation.


CACHE: dest_domain don't work.

In server <IP_ADDRESS> has Apache web server 2.4.29 on port 443 with:
domain1.com -> Wordpress
domain2.com -> Wordpress
domain3.com -> Custom site
domain4.com -> Custom site on local.domain4.com

In server <IP_ADDRESS> has ATS 7.1.2 on port 443:
in records.config:
CONFIG proxy.config.url_remap.remap_required INT 1
CONFIG proxy.config.url_remap.pristine_host_hdr INT 0
CONFIG proxy.config.reverse_proxy.enabled INT 1

in remap.config:
map https://domain1.com/ https://<IP_ADDRESS>/ @plugin=conf_remap.so @pparam=proxy.config.url_remap.pristine_host_hdr=1
map https://domain2.com/ https://<IP_ADDRESS>/ @plugin=conf_remap.so @pparam=proxy.config.url_remap.pristine_host_hdr=1
map https://domain3.com/ https://<IP_ADDRESS>/ @plugin=conf_remap.so @pparam=proxy.config.url_remap.pristine_host_hdr=1
map https://domain4.com/ https://local.domain4.com/

in cache.config:
dest_domain=domain1.com pin-in-cache=1h
dest_domain=domain2.com action=never-cache
dest_domain=domain3.com revalidate=3h
dest_domain=domain4.com action=ignore-no-cache

This config don't work.
dest_host=<IP_ADDRESS> pin-in-cache=1h
dest_domain=local.domain4.com action=ignore-no-cache

This config work. With this config can't discriminate domain1.com, domain2.com, domain3.com resources. For example, domain1.com and domain2.com have same paths and files but I need no cache domain2.com.

In other files dest_host is a specific hostname, whereas dest_domain matches all subdomains. For instance, in parent.config, dest_domain=example.com would match both foo.example.com and example.com, while dest_host=example.com would only match example.com, not foo.example.com. Want to try that?
In general I'd recommend staying away from cache.config. IMHO pin-in-cache is a real corner case -- if an object is not popular enough to remain in cache, its unusual to make ATS remove a more recently requested thing in its favor.
For domain=2, this would be equivalent:
map https://domain2.com/ https://<IP_ADDRESS>/  @plugin=conf_remap.so @pparam=proxy.config.url_remap.pristine_host_hdr=1 @pparam=proxy.config.http.cache.http=0
For domain4, I'd use another header_rewrite to get replace Cache-Control matching no-store with some other value.

My problem is dest_domain, not pin, action, revalidate or other. When use remap.config with map to host IP address and set pristine_host_hdr to 1 on remap.config line, dest_domain it stop working with domain name.
When use remap.config with pristine to 1, Primary Destinations of the cache.config file equals to destination map. I need Primary Destinations of the cache.config file equals to primary (origin) destination of map file.
For example:
map https://domain1.com/ https://<IP_ADDRESS>/ @plugin=conf_remap.so @pparam=proxy.config.url_remap.pristine_host_hdr=1

Primary destination of the cache.config is: https://<IP_ADDRESS>/.
Sorry my bad english.

The root issue here is cache.config uses post-remap data, e.g. the proxy request and not the client request. Therefore if various domains are remapped to the same upstream, cache.config can't distinguish between them. On the other hand, I'm not sure I see why that would be useful - why cache something differently from the same upstream depending on which the inbound request? That would give you some odd race conditions, the cache state depending on which particular client first requested the resource.

If this is still an issue please reopen.


[ceskatelevize] Fix initial url replace()s

Please follow the guide below

You will be asked some questions, please read them carefully and answer honestly
Put an x into all the boxes [ ] relevant to your pull request (like that [x])
Use Preview tab to see how your pull request will actually look like

Before submitting a pull request make sure you have:

[ ] At least skimmed through adding new extractor tutorial and youtube-dl coding conventions sections
[x] Searched the bugtracker for similar pull requests

In order to be accepted and merged into youtube-dl each piece of code must be in public domain or released under Unlicense. Check one of the following options:

[x] I am the original author of this code and I am willing to release it under Unlicense
[ ] I am not the original author of this code but it is in public domain or released under Unlicense (provide reliable evidence)

What is the purpose of your pull request?

[x] Bug fix
[ ] Improvement
[ ] New extractor
[ ] New feature

Description of your pull request and other information
Fixes: https://github.com/rg3/youtube-dl/issues/7411
Test cases:
From: http://www.ceskatelevize.cz/porady/1126666764-toulava-kamera/217562221500004
To:   http://www.ceskatelevize.cz/ivysilani/1126666764-toulava-kamera/217562221500004

From: http://www.ceskatelevize.cz/porady/1126666764-toulava-kamera/217562221500004/video/519429
To:   http://www.ceskatelevize.cz/ivysilani/1126666764-toulava-kamera/217562221500004/obsah/519429

From: http://www.ceskatelevize.cz/ivysilani/1126666764-toulava-kamera/217562221500004/obsah/519429-na-bezkach-po-ceskem-raji
To:   http://www.ceskatelevize.cz/ivysilani/1126666764-toulava-kamera/217562221500004/obsah/519429-na-bezkach-po-ceskem-raji

Does not fix #7411:
PS C:\dev\youtube-dl\master> py -3.6 .\youtube_dl\__main__.py http://www.ceskatelevize.cz/porady/10150778447-historie-cs/216452801400033-co-cech-to-muzikant -F
-v
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['http://www.ceskatelevize.cz/porady/10150778447-historie-cs/216452801400033-co-cech-to-muzikant', '-F', '-v']
[debug] Encodings: locale cp1251, fs utf-8, out utf-8, pref cp1251
[debug] youtube-dl version 2017.04.03
[debug] Git HEAD: ddceff9
[debug] Python version 3.6.0 - Windows-10-10.0.10240-SP0
[debug] exe versions: ffmpeg N-83622-gdcd3418, ffprobe N-83622-gdcd3418, rtmpdump 2.4
[debug] Proxy map: {}
http://www.ceskatelevize.cz/ivysilani/10150778447-historie-cs/216452801400033-co-cech-to-muzikant
[CeskaTelevize]<PHONE_NUMBER>00033-co-cech-to-muzikant: Downloading webpage
ERROR: Unable to download webpage: HTTP Error 404: Not Found (caused by <HTTPError 404: 'Not Found'>); please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; see  https://yt-dl.org/update  on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
  File "C:\dev\youtube-dl\master\youtube_dl\extractor\common.py", line 498, in _request_webpage
    return self._downloader.urlopen(url_or_request)
  File "C:\dev\youtube-dl\master\youtube_dl\YoutubeDL.py", line 2100, in urlopen
    return self._opener.open(req, timeout=self._socket_timeout)
  File "C:\Python\Python36\lib\urllib\request.py", line 532, in open
    response = meth(req, response)
  File "C:\Python\Python36\lib\urllib\request.py", line 642, in http_response
    'http', request, response, code, msg, hdrs)
  File "C:\Python\Python36\lib\urllib\request.py", line 570, in error
    return self._call_chain(*args)
  File "C:\Python\Python36\lib\urllib\request.py", line 504, in _call_chain
    result = func(*args)
  File "C:\Python\Python36\lib\urllib\request.py", line 650, in http_error_default
    raise HTTPError(req.full_url, code, msg, hdrs, fp)

The new class is unnecessary. The test case you pointed out is easily fixed with:
url = re.sub(r"(/\d+)-[^/]+", r"\1", url)

Won't work for expired videos: http://www.ceskatelevize.cz/porady/10570561091-stardance-vii/214522160450001-stardance-vii-kdyz-hvezdy-tanci
Enough hacks.


Align airlock tags

Fixes #2121
What is being addressed
Some of the airlock resources weren't tagged correct which would impact the cost figures.
How is this addressed

Make sure all airlock resources have tags needed for cost figures
Remove data objects for things that could be passed between modules

/test

/test

/test

/test


Explicitly track which secrets come from the hub

Another iteration of secrets toggling. Currently a secret is "toggled" implicitly based on the secrets value in the session, but now that we store which secrets are toggled it can lead to unexpected behaviour:

When the secret value changes upstream, the secret is "untoggled" but it stays in the session. This means everything still works, but we wouldn’t persist that secret name as used and it doesn't work right away when opened the next time (in particular when deploying an app)
When someone adds session secret with the same value as hub secret, it is implicitly "toggled" and we persist that, but maybe they don’t want to make it toggled for anyone opening the notebook

So we change it to keep the whole secret struct, which means we know where it comes from. We no longer duplicate secrets in the session section:

And when the value changes:

Another change we decided on is moving startup secrets out of personal hub. Instead they are kept separately and we always use them as initial session secrets.
One of the issues this will solve is deploying apps to HF spaces. If startup secrets are a part of personal hub then we need to toggle them and they are stamped in the notebook. However, recovering from the stamp would only work if we use the same personal hub secret key in the HF space Livebook. We could provide an env var for the token, but it provides more friction when deploying an app, so we avoid that by always making startup secrets accessible in the session.
Another way to view startup secrets is as any other env vars, except we show them in the UI and they can be removed from the session if desired.

@josevalim good call, done :)


Image: add support for offset, size, and mirroring

AddImage() should allow placement (and flipping) anywhere
Right now it just has X/Y coordinates which describe position based on an alignment enumeration
https://github.com/ScottPlot/ScottPlot/blob/643257946637becbbb5ba207ef4e17a1c8bf2f75/src/ScottPlot/Plottable/Image.cs#L15-L16
https://github.com/ScottPlot/ScottPlot/blob/643257946637becbbb5ba207ef4e17a1c8bf2f75/src/ScottPlot/Plottable/Image.cs#L19

I added a Scale property #1504 but won't implement the rest at this time
This Image plot type is weird: it is currently only rendered in pixel (not coordinate) units, so there isn't a great way to do this currently. Properly solving this is probably creating an ImageCoordinated plot type that takes X1, Y1, X2, and Y2 positions and does not allow rotation.


add some config for project

What does this PR do?

add husky
add prettier config
add commitlint conventional - https://github.com/conventional-changelog/commitlint
update readme
add prettier config
add lint-staged

Hi @fiqryq, thank you for your contribution. Sorry for the lateness.

@all-contributors please add @fiqryq for code


🔧  Update Kubernetes Version on all Airflow Clusters

User Story
Our Kubernetes version for the existing Airflow setup is 1.24, which is going into extended support on Jan 31st 2024 (end of this month). At this point, we will incur higher costs with keeping these clusters running. Given we don't rely on anything that is specific to lower versions, we should be seeking to upgrade the existing clusters to a supported version. We cannot afford to wait for migration, as this is unlikely to occur prior to the cutoff date.
Value / Purpose
This will prevent us from incurring unnecessary additional costs, and allow us to bring our systems up to date.
Useful Contacts
Jacob Hamblin-Pyke
User Types
Airflow Users
Hypothesis
If we... [do a thing]
Then... [this will happen]
Proposal
Upgrade in Sandpit to test, then do a standard deployment via Dev to Prod.
Additional Information
Supported Kubernetes Versions in AWS
Definition of Done

[ ] All airflow EKS clusters are on kubernetes >1.24
[ ] Any issues found during testing are remediated before rollout.
[ ] Any helm charts that need updating are updated accordingly.

sandpit and dev are done
sandpit was clickopsed
dev had an issue with kube-proxy, @jhpyke please add resolution notes
prod to be done on Tuesday 16/01, comms to go out on Monday 15/01

Addons for vpc-cni, kube-proxy, and coredns in code successfully deployed in dev
prod to be done Tuesday 23/01, Comms to go out Monday 22/01

Following comms on Monday and Today, will be running the upgrade in Prod. Updating ticket with order of operations for upgrade.


Optimus Commands functions are all package scoped, it is better to group them under specific group command structs

The current cmd package contains many implementations in the scope of accepting the user input on how to execute Optimus. There are some issues being observed for the current approach:

many functionalities are defined within one package, making the package itself seems bigger with a lot of functions, variables, and constants that are accessible accross the package
with many components defined within one package, some of it could conflict with one another, and there were cases during development that two components (in this example, variables) were defined but served the same purpose
during development, IDE or text editor's suggestion could clutter with other functionalities

To address the mentioned issues above, one approach that can be done is by restructuring the package to grouping some similar functionalities, like for job command, it is put in one place like struct and/or package.

The following is the approach internally discussed to address this issue. Basically, it is to group the related components into its own structure within a dedicated package.

main.go

package main

// ...

func main() {
	// ...
	root := cmd.NewRoot()
	if err := root.Execute(); err != nil {
		panic(err)
	}
	// ...
}

cmd/root.go

package cmd

type root struct {
	*cobra.Command
}

func NewRoot() *cobra.Command {
	output := &root{
		Command: &cobra.Command{
			// ...
		},
	}
	jobCommand := job.NewCommand()
	output.AddCommand(jobCommand)
	return output.Command
}

cmd/job/job.go

package cmd

type job struct {
	*cobra.Command
}

func NewCommand() *cobra.Command {
	output := &job{
		// ...
	}
	jobCreateCommand := NewCreateCommand("inside job create")
	output.AddCommand(jobCreateCommand)
	return output.Command
}

cmd/job/job_create.go

package cmd

type jobCreate struct {
	*cobra.Command

	message string
}

func (j *jobCreate) GetMessage() string {
	return fmt.Sprintf("message: %s", j.message)
}

func (j *jobCreate) Execute(cmd *cobra.Command, args []string) error {
	fmt.Println(j.GetMessage())
	return nil
}

func NewCreateCommand(msg string) *cobra.Command {
	output := &jobCreate{
		// ...
	}
	output.message = msg
	output.RunE = output.Execute
	return output.Command
}

The following is the approach internally discussed to address this issue. Basically, it is to group the related components into its own structure within a dedicated package.

main.go

package main

// ...

func main() {
	// ...
	root := cmd.NewRoot()
	if err := root.Execute(); err != nil {
		panic(err)
	}
	// ...
}

cmd/root.go

package cmd

func NewRoot() *cobra.Command {
	output := &cobra.Command{
		Use:   "playground",
		Short: "commands that handle command",
	}
	jobCommand := job.NewCommand()
	output.AddCommand(jobCommand)
	return output
}

cmd/job/job.go

package cmd

func NewCommand() *cobra.Command {
	output := &cobra.Command{
		Use:   "job",
		Short: "command to handle job operation",
	}
	jobCreateCommand := NewCreateCommand("inside job create")
	output.AddCommand(jobCreateCommand)
	return output
}

cmd/job/job_create.go

package cmd

type jobCreate struct {
	message string
}

func (j *jobCreate) GetMessage() string {
	return fmt.Sprintf("message: %s", j.message)
}

func (j *jobCreate) RunE(cmd *cobra.Command, args []string) error {
	fmt.Println(j.GetMessage())
	return nil
}

func NewCreateCommand(msg string) *cobra.Command {
	jobCreate := &jobCreate{
		message: msg,
	}
	output := &cobra.Command{
		Use:   "create",
		Short: "command to create a job",
	}
	output.RunE = jobCreate.RunE
	return output
}

updated the approach, from previously embedding the cobra command to currently not. this is to avoid confusion and to separate responsibility when more methods are to be added. as of writing, put some update in the mentioning draft PR.

The following is the approach internally discussed to address this issue. Basically, it is to group the related components into its own structure within a dedicated package.

main.go

package main

// ...

func main() {
	// ...
	root := cmd.NewRoot()
	if err := root.Execute(); err != nil {
		panic(err)
	}
	// ...
}

cmd/root.go

package cmd

func NewRoot() *cobra.Command {
	output := &cobra.Command{
		Use:   "playground",
		Short: "commands that handle command",
	}
	jobCommand := job.NewCommand()
	output.AddCommand(jobCommand)
	return output
}

cmd/job/job.go

package cmd

func NewCommand() *cobra.Command {
	output := &cobra.Command{
		Use:   "job",
		Short: "command to handle job operation",
	}
	jobCreateCommand := NewCreateCommand("inside job create")
	output.AddCommand(jobCreateCommand)
	return output
}

cmd/job/job_create.go

package cmd

type jobCreate struct {
	message string
}

func (j *jobCreate) GetMessage() string {
	return fmt.Sprintf("message: %s", j.message)
}

func (j *jobCreate) RunE(cmd *cobra.Command, args []string) error {
	fmt.Println(j.GetMessage())
	return nil
}

func NewCreateCommand(msg string) *cobra.Command {
	jobCreate := &jobCreate{
		message: msg,
	}
	output := &cobra.Command{
		Use:   "create",
		Short: "command to create a job",
	}
	output.RunE = jobCreate.RunE
	return output
}

updated the approach, from previously embedding the cobra command to currently not. this is to avoid confusion and to separate responsibility when more methods are to be added. as of writing, put some update in the mentioning draft PR. cc: @sravankorumilli

I mean directly using the RunE of cobra command. Check this for example.
https://github.com/odpf/guardian/blob/main/cmd/appeal.go
What is our need to collect a message in command constructor and having a dedicated jobCreate struct?

I mean directly using the RunE of cobra command. Check this for example. https://github.com/odpf/guardian/blob/main/cmd/appeal.go What is our need to collect a message in command constructor and having a dedicated jobCreate struct?

Based on this example, it's similar to the current approach being used by Optimus. In the current Optimus, there are a lot of functions, vars, and constants within one package. Sometime it's not easy to read without better segregation between one command and another. This update is to group some similar functionalities. The grouping is in two levels, the structure level and the package level.

the struct level allows us group some highly related functionalities into one. take an example of job and job_create command. some functions are only specific for job create not job, and vice versa. if these job and job create are to be in the same package, then some functions will be cluttered again. and during developement, sometime IDE (depending on which IDE being used) will provide some unnecessary suggestions.
for the package level, sometime in a package we want some "public" values that will be used by some commands, but not available to the outside. for example, some regex expression meant for surveys, but not for actual job commands. similar with the struct level, this helps to reduce verbosity during developement.

There are two concerns (so far) that will be addressed when we are using struct:

parameter functions

With grouping by struct, we can reduce the number of parameter being passed to one or more functions (or methods). If we check the current implementation, there are some functions that accepts many arguments, such as the one for deploy command. With the struct, we can just put any state into the struct and access it when it's needed. If we do not send it as argument, another way is to make a "public" variable within package. But, adding more of these variables being accessible within the package is not recommended.

naming functions

With the struct, we can just focus the grouping with the struct name. If we only use functions, then in order to add more context, we will need to use a longer name.
If we don't use struct, we have to deal with longer naming functions with more parameters on it.

@irainia Can you give more concrete example of this?

@irainia Can you give more concrete example of this?

Sure, one example that we can observe can be found here. And if we look further back, another example can be checked here.

What I feel is it was fine as it was before, it's just people have low tolerance of these things now working with languages like java and gets easily annoyed/confused. There are three kinds of scoping we can observe here overall
...

This issue is not only about "function to get the related command" like jobCreateCommand, but it's also about all functions required to accomplish the instruction in those command. For example, when we try to deploy a job, there are some functions being called. Like, if we check the current implementation, we need to call function to deploy job only, then resource, and some other function in between. Surely we can combine them into one big function. But, putting all those things in one function makes it hard to maintain it.


Search method is not utilizing filter conditions

Thank you for dev team!
It appears that the search criteria filters are not being used.
https://github.com/getmetal/metal-ts/blob/main/src/metal.ts#L76
Please investigate and address this issue.
Thank you.

@jtakahashi64 you can search by filters so i think this is ok to close! lmk if anything is skipped over


Ensure GWT backward compatibility for #5280 and #5373

This is to ensure the newly added inpendendent parameter (added here #5280) does not break the gwt module (as described here #5373)
Instead of using mark() and reset() which are not supported we read the line,
if it contains the new parameter we use it, if not we move on..
Tested on Desktop and as HTML module.

Ready to merge

Tests .p descriptor independent parameter should be set to false. by default. I also believe it's a good idea to update them to the latest version as in https://github.com/libgdx/libgdx/pull/5374 (just open and save again on latest Particle Editor).

updated p files (opened with editor, saved, ran test again..).
ready to merge.

There still seems to be some independent paramenters set to true

That’s ok I would think.
Any reason they should all be set to false?
Probably to have some set to true too to test.

Those tests were made when as independent was set to false, the question is why should any test be changed and set to true, the point of the tests is to verify things keep working as usual. Unless there's a good reason they should be kept as they were.

as you wish...
done


Bug; README is missing python version

Best fix this quickly before you start having a flood of dependency issues raised.
I created this ticket; https://github.com/xai-org/grok-1/issues/121 but it was closed by overzealous mods.
It needs to be addressed still.

I got an error on pip install and yes knowing the python version would be very helpful.


refactor: Migration for Tabbed Sql Editor

SUMMARY

This is the first portion of a larger bug issue of retaining a query's saved status when refreshing the page in sql lab. In order to create this we needed to create a foreign key in the tab state view that links it to the saved query.
This migration does that, and the subsequent logic is here: https://github.com/apache/superset/pull/17771
I was running this through the benchmark migration, however I was hitting a TypeError.
BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF

TESTING INSTRUCTIONS

ADDITIONAL INFORMATION

[ ] Has associated issue:
[ ] Required feature flags:
[ ] Changes UI
[ ] Includes DB Migration (follow approval process in SIP-59)

[ ] Migration is atomic, supports rollback & is backwards-compatible
[ ] Confirm DB migration upgrade and downgrade tested
[ ] Runtime estimates and downtime expectations provided

[ ] Introduces new feature or API
[ ] Removes existing feature or API

This looks great! But let's wait until we have the sibling PR ready and approved before merging this, in case we need to change the migration.


azure-cli-extension: Release for MicrosoftCache.RedisEnterprise - 2024-09-01 PREVIEW

This checklist is used to make sure that common guidelines for a pull request are followed.
Related command

General Guidelines

[ ] Have you run azdev style <YOUR_EXT> locally? (pip install azdev required)
[x] Have you run python scripts/ci/test_index.py -q locally? (pip install wheel==0.30.0 required)
[ ] My extension version conforms to the Extension version schema

For new extensions:

[ ] My extension description/summary conforms to the Extension Summary Guidelines.

About Extension Publish
There is a pipeline to automatically build, upload and publish extension wheels.
Once your pull request is merged into main branch, a new pull request will be created to update src/index.json automatically.
You only need to update the version information in file setup.py and historical information in file HISTORY.rst in your PR but do not modify src/index.json.

Thank you for your contribution! We will review the pull request and get back to you soon.

Please fix CI failures

"azdev style redisenterprise is failing for files/area which I have not changed. @evelyn-ys can you pls help here why is failing ?

"azdev style redisenterprise is failing for files/area which I have not changed. @evelyn-ys can you pls help here why it is failing ?

No matter why, just fix it. It's not difficult linter rules, right?

"azdev style redisenterprise is failing for files/area which I have not changed. @evelyn-ys can you pls help here why it is failing ?

No matter why, just fix it. It's not difficult linter rules, right?

Its coming on autogenerate code, I am not able to fix it. And this checks seems not mandatory for merge.


Row count does not go above 50

<table-lite
  :page-size="100"
>...</table-lite>

When I set the page-size to any number above 50, it fallbacks to 10?

Closing issue, got to realize that i can do something ling
<table-lite
    :page-size="100"
    :page-options="[{ value: 100, text: 100 }, { value: 200, text: 200 } ,...]"
>...</table-lite>


Not working in Grafana 6.

Hello, I have installed the plugin with yarn, but when I try to use it on Grafana I get this error: Cannot use 'in' operator to search for '_ec_inner' in undefined. Can you help me please?

Is this error still present when running yarn dev ?

I running yarn dev,still report this error:Cannot use 'in' operator to search for '_ec_inner' in undefined.

It has been fixed


Macro support

https://github.com/algorand/go-algorand/pull/4737 is introducing support for macros in TEAL.
One useful thing to do with macros is use them to define the constants Tealish supports.
I believe the following patch will enable that:
diff --git a/tealish/expression_nodes.py b/tealish/expression_nodes.py
index 4b365ac..409daca 100644
--- a/tealish/expression_nodes.py
+++ b/tealish/expression_nodes.py
@@ -78,9 +78,9 @@ class Constant(BaseNode):

     def write_teal(self, writer):
         if self.type == "int":
-            writer.write(self, f"pushint {self.value} // {self.name}")
+            writer.write(self, f"pushint {self.name} // {self.value}")
         elif self.type == "bytes":
-            writer.write(self, f"pushbytes {self.value} // {self.name}")
+            writer.write(self, f"pushbytes {self.name} // {self.value}")

     def _tealish(self, formatter=None):
         return f"{self.name}"
diff --git a/tealish/nodes.py b/tealish/nodes.py
index 62f9ce1..d5a53d9 100644
--- a/tealish/nodes.py
+++ b/tealish/nodes.py
@@ -334,6 +334,7 @@ class Const(LineStatement):
         scope["consts"][self.name] = [self.type, self.expression.value]

     def write_teal(self, writer):
+        writer.write (self, f"#define {self.name} {self.expression.value}")
         pass

     def _tealish(self, formatter=None):

this will result in tealish that goes from
#pragma version 8

struct Item:
    id: int
    foo: int
    name: bytes[10]
end

const int KNOWN_ID = 64738
const bytes BOX_NAME = "tealishbox"
const bytes KNOWN_ITEM = "fearghal"

box<Item> item1 = CreateBox(BOX_NAME)
item1.id = KNOWN_ID
item1.foo = KNOWN_ID + 1
item1.name = KNOWN_ITEM

log(itob(item1.id))
log(itob(item1.foo))
log(item1.name)

to TEAL
#pragma version 8

#define KNOWN_ID 64738
#define BOX_NAME "tealishbox"
#define KNOWN_ITEM "fearghal"

// box<Item> item1 = CreateBox(BOX_NAME) [slot 0]
pushbytes BOX_NAME // "tealishbox"
dup
pushint 26
box_create
assert // assert created
store 0 // item1
// item1.id = KNOWN_ID [box]
load 0 // box key item1
pushint 0 // offset
pushint KNOWN_ID // 64738
itob
box_replace // item1.id
// item1.foo = KNOWN_ID + 1 [box]
load 0 // box key item1
pushint 8 // offset
pushint KNOWN_ID // 64738
pushint 1
+
itob
box_replace // item1.foo
// item1.name = KNOWN_ITEM [box]
load 0 // box key item1
pushint 16 // offset
pushbytes KNOWN_ITEM // "fearghal"
box_replace // item1.name

// log(itob(item1.id))
load 0 // box key item1
pushint 0 // offset
pushint 8 // size
box_extract // item1.id
btoi
itob
log
// log(itob(item1.foo))
load 0 // box key item1
pushint 8 // offset
pushint 8 // size
box_extract // item1.foo
btoi
itob
log
// log(item1.name)
load 0 // box key item1
pushint 16 // offset
pushint 10 // size
box_extract // item1.name
log

Most of the constraints regarding macro names in TEAL are resolved by the Tealish Const pattern (?P<name>[A-Z][a-zA-Z0-9_]*), particularly the requirement for an initial uppercase letter, including the requirement for a non-digit leading character, support for the underscore, and not collide with any branch labels.  Also, since consts are either integers or quoted strings (which are treated as one token by the AVM), there will be no inception-style macro expansion, as in
#pragma version 8

struct Item:
    id: int
    foo: int
    name: bytes[10]
end

const int KNOWN_ID = 64738
const bytes BOX_NAME = "tealishbox"
const bytes KNOWN_ITEM = "macro BOX_NAME macro"

would not expand known_item to "macro tealishbox macro".
TEAL macros can not, however, be named after field names, stuch as "ApplicationID", or "RekeyTo", or "VoteLast", or "Sender", or a dozen or so others.  One way around this might be to detect them using the TEAL langspec.json and erroring out or possibly postfixing the name automatically with one of the allowable TEAL special characters disallowed in Tealish consts (like %).

This looks great! It definitely improves the Teal output and is a very simple change.
I think the const pattern can be updated to only allow uppercase and digits. That was my intention and usage until now so allowing lowercase seems like it was a mistake: (?P<name>[A-Z][A-Z0-9_]*). It's also documented as such actually.
If there is still a possibility for conflicts still we can definitely make use of the langspec.
Before opening a PR for this I'll warn you there is significant work on the develop branch for some internal refactoring (mostly by Barnji). I'd like to merge that (#47) first to avoid unnecessary conflicts. I can't make promises on when but I've been aiming to do it this week so let's see if it happens today :)


Fix imports of FCM to keep it as an optional dependency

As pointed out in this comment https://github.com/jazzband/django-push-notifications/pull/702#discussion_r1489160018 importing firebase_admin or gcm at top level in models.py turns the firebase_admin package as a mandatory requirements while it should not.
To address this I have moved the imports inside the appropriated methods. This allow the codebase to run even without the firebase package (which is optional).

Thank you for making this MR. The patch was instead resolving two issues, making firebase_admin optional as well as moving the required .gcm methods to appropriate area.
#707 resolved the firebase_admin issue, not required. That said, once this conflict herein is fixed. It is good as merged

I have rebased over #707, now this PR makes a single import statement instead of two to handle FCM in models.py.

I have rebased over #707, now this PR makes a single import statement instead of two to handle FCM in models.py.

I would make one more quick pass, and merge into the main trunk.
Once again, thank you for pulling in this patch.


Workaround for #25

With this change rulerz is running for me again. I haven't bumped version numbers or anything, first experience hacking atom. :-)

How can I apply this workaround to my local installation ? I really miss the vertical line.

@mokhet Copy the changes from this PR into ~/.atom/packages/rulerz/lib/. That's what I've done locally.

@chmac Thanks a lot, it worked perfectly.


Assets missing?

Hi,
after compiling the game, it doesnt start because assets are missing.
Is it me, or are they not in the repo?
Have a nice weekend,
midzer

Hello!
It's strange because the assets are well included in the build folder.
Normally the executable generated after compilation should be in the build folder too.
It's possible that you have to run it from the build folder and not from its parent folder to be sure that the executable finds the paths to the assets:
$ cd build/
$ ./bomberman


[Event Request] Codeunit::"Whse.-Activity-Register" - Function CheckBinContent - OnAfterCheckBinContent

We like to request the following Event:
Object: Codeunit::"Whse.-Activity-Register"
Function: CheckBinContent
Publisher Event: OnAfterCheckBinContent
Reason: To implement custom business logic
Where is the event placed:
end else begin
Bin.Get("Location Code", "Bin Code");
Bin.CheckWhseClass("Item No.", false);
end;
OnAfterCheckBinContent(TempBinContentBuffer, Bin);
until Next = 0;
Event Code:
[IntegrationEvent(false, false)]
local procedure OnAfterCheckBinContent(var TempBinContentBuffer: Record "Bin Content Buffer"; var Bin: Record Bin)
begin
end;

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. We will update this issue with information about availability. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.


Handle errors in pkg/controller

What this PR does / why we need it:

Removed unused parameter from a function in expectations_test.go.
Ignores error returned by logger in panic handler.

Release note:
None

/retest


fix phalcon/cphalcon#14160 incorrect usage of zend_declare_class_constant in 7.2+

see phalcon/cphalcon#14160

closing, covered by #1868


JWST filters?

Hey all,
Would it be possible to include the JWST filters by any chance?
Cheers!
Miles
By the way, what is the proper way to specify a custom set of filters? (e.g., if I simply have a numpy arrays specifying a bandpass)

Hi Miles!
The JWST filter set is already included. To get the full list of JWST filters, try:
import artpop
artpop.get_filter_names('JWST')

To add a new custom set of filters, please see Johnny's reply to issue #17.
Please let me know if you have any questions!

Thanks!
For what it's worth I think my confusion arose because most filters are prefixed by the observatory (like 2MASS_H or DECam_g or GALEX_FUV) but JWST is not (like F070W rather than JWST_F070W).


Play All Random

This will be an addition to the current functionality by providing a "random play" feature. Should be simple enough when using the default latest playlists and journaling watched videos. Accessible with a new switch next to Latest / Popular, by adding Random in the videos section. There you can see the current journal and start or resume your random play session.

Feature is now in beta!
Install by clicking here

Currently all already watched randomly played videos will be excluded from playing again.
The cache can be cleared by clicking the bin:

(Mobile probably does not work at this moment, it is untested)

UI was changed to an x-mark instead of the bin to clear the random cache.

Randomness is now actually random, not limited to the 100 visible videos YouTube provides in the playlist widget.

I'm in! I did not saw any reference that i was installing a beta code, maybe add something like the title or some first line with this notice?
I had to verify twice that i was installing the beta version and not the stable version

@bolach Thank you for the feedback. From now on beta versions will have the -beta suffix to distinguish them from stable releases, visisble in line 4 (@version). The dev tools wil also inform you if using a non-stable version.
// ==UserScript==
// @name            YouTube Play All
// @description     Adds the Play-All-Button to the videos, shorts, and live sections of a YouTube-Channel
// @version         20241028-0-beta
                               ^
                               '- beta version

The commits just added are caused by a rebase onto the main branch since additional Chrome compatibility was merged in #14.

I tested the Play Random button with a channel i never saw before. It opened a new window and started playing from newest to the oldest:

I opened the same channel it seems autoplay doesn't play random anymore. I'll look into it.
Skipping with the "Next Video" Button to the right of Play/Pause (make sure its random when hovering) works still.
Notes for further implementation:

[ ] Shift + N is not randomized yet
[ ] Miniplayer controls are not randomized
[ ] Timestamp-Parameter is not cleared (Relevant for YouTube O Clock
[ ] index-Parameter is not set correctly

I suspect the issue is the detection:
if (progressState.current / progressState.duration >= 0.999) {
    markWatched(videoId);
    playNextRandom();
}

The videos are fairly short, I previously tested on longer content. Presumably 0.999 is far too narrow for the ~90s videos.

@bolach the issue should be fixed now. Please update to 20241028-2-beta.

I tested with a new random channel
I can already see by the created playlist that the videos are still by the order newest-oldest
channel

))

The playlist itself will always list them in order. They will still be selected randomly. This is intentional. Random play occurs when skipping or reaching the end of the video. The first video of the random play is the newest but will automatically skip if it was previously watched in random play.

The first video in random play will no longer be the most recent. It will jump to a random video.
The playlist will display a notice now:

Hovering over it still allows for manual selection of a video.

First tests seems to be working @RobertWesner , i will continue using it.

Questions

1.1 - At the moment, the 2 buttons, Play all and Play Random are one the page /channel/videos. It is possible to be on /channel homepage?
1.2 - This random button will play all the videos, even if the channel has several thousands?
1.3 - It will not repeat the same video on the channel? Or random is truly random and it can play several times the same video before a never watched appears?
1.4 - My chromium based browsers auto start playing the video. The geckos not. This is something related to the browsers or it was just me?

Glad everything is working now.

The buttons are intentionally on the videos sections as they also exist for shorts and streams in their respective sections. Someone else has made a plugin based on my documentation to make many playlists available in the home section. See here. The usersrcipt is meant to be close to the original "Play All" button we had in the 201Xs.

Yes, it has a local storage for all known videos which updates dynamically the more you watch, it will select randomly from that storage. Storage updates from the 100 videos visible in the playlist widget on the watch page. The further you go down the list, the more it will store, eventually collecting all. At the beginning it has a slight bias towards the most recent ~100 videos since those are the only ones available but quickly fills up after one or two videos have been played randomly.

Said storage remembers watched videos. If you disable random play by clicking the badge (see here the cache will be cleared and previously watched videos will not remembered. If you instead close the tab or just close your browser, it will keep the watched videos the next time you click "Play Random".

This is an intended feature of Firefox, unrelated to the script. You can change that behavior.

Thank you for that @RobertWesner
I will continue testing. I will report if something fails

I did not change anything, but for some reason, I can't see play all or random buttons anymore. It is just me?

@bolach this is probably related to #5 since the channel has only very few videos and doesnt show the latest/popular buttons.

@bolach have you encountered any more problems? If everything is working fine, I will release this tomorrow.

@bolach have you encountered any more problems? If everything is working fine, I will release this tomorrow.

@RobertWesner everything working fine here

Perfect, I'll set everything up to have this available to the public. Thanks again for all the testing! Could not have gotten this far with just my tests.

Perfect, I'll set everything up to have this available to the public. Thanks again for all the testing! Could not have gotten this far with just my tests.

Of course you could do it. You did all the work and deserve the credit and gratitude for sharing this with everyone!