Add SSD in models

I've been working with PyTorch for several months, and with SSD for a few months. I'd like to add SSD to torchvision's "model zoo".
I will combine the good parts of https://github.com/amdegroot/ssd.pytorch and https://github.com/kuangliu/torchcv. Both implementation have some problems and refactoring will be needed to come to the level of refinement expected from torchvision.
I will begin in the coming weeks if there's no opposition.
@fmassa

Hi,
Thanks!
Yes, having training / evaluation code is definitely necessary for object detection, as the models are not enough.
I'm still figuring out the right balance between having things in torchvision and in external repos. I think everything that is quite generic and reusable should come here.
So if the training code doesn't live here, then I'm unsure if the models should be here as well or in the repo where the training code lives. For imagenet classification, all the models that we have in torchvision (with only a few exceptions) were trained using examples/imagenet.
One thing that needs to be improved is support for other data types than images (like bounding boxes). We've addressed that with the functional interface in some way, but we are still missing a good story on how to tie things together.
What do you think? If you find time to start working on SSD, it might be good to list here your proposed action points so we can discuss.

I would add a COCO/VOC example that would contain the training procedure, just like for classification nets. I think it's a good practice.
Could you tell me a bit more how you added support for bounding boxes? And how far would you like to go with bounding box support? Do you mean add utils like Jaccard overlap and that kind of stuff? Or maybe you're thinking about transforms?

TODO

[ ] Add COCO/VOC example (in pytorch/examples). I already have a good training script. Since there's a lot of code, I've separated things into multiple methods for easy navigation.
[ ] Make sure that the results are satisfying.
[ ] Polish the code, add comments, etc.
[ ] Extract the model out to torchvision
[ ] Upload weights trained on COCO/VOC

The thing I noticed while writing an initial version of Faster R-CNN in 2016 was that it requires a lot of code. This made me unsure if the examples repo was the good place to put it.
About bounding box, I was mostly thinking about basic transforms, but other functionality (like intersection over union) might be worth considering.

There is clearly code that is not part of the model but that is needed to use it. With SSD there is the box encoding/decoding procedure which is specific to this model, and that is quite heavy. There is the prior box management, the non-max suppression in the decoding... Do you think we could have a ssd folder in torchvision/models instead of only one script?
Something like:
ssd/
    ssd.py              model, layers
    box_coder.py        bounding box encoding/decoding using prior boxes
    multibox_loss.py
    utils.py            some parts may later be integrated in the library

I think that's reasonable.

Hi guys,
Just read #425.  I think it would be awesome if segmentation and detection could be included in torchvision.
In ssd.pytorch I've tried to avoid modifying the current torchvision datasets (COCO, Pascal) and transformations as much as possible, but I think there would still need to be some slight modifications made to the current torchvision code to support detection, which I would be more than happy to help with, if we end up deciding on this route.
That being said, I agree Francisco that most detection implementations out there are a little heavier and would potentially require a lot more to support (e.g. yolo, faster-rcnn), so I think it makes sense to consider whether or not a torchvision "detection module" could be made extensible to more than just SSD before we jump into it.

@lemairecarl what are your thoughts on how to

[ ] Move the data augmentation code to torchvision/transforms

Do you want to merge the current transforms.py with ssd.pytorch augmentations or create a separate a file with similar classes like Compose, RandomCrop etc ?

I think we'll see in the process if we need to break things into multiple files. I'll rely on the pull request comments. I want to start working on this next week.

Yes. I'm still thinking on how to integrate the transforms in a way that it fits nicely with torchvision, while not requiring much boilerplate and being generic.

We can inspire from tensorpack.
For example, there is a proxy dataset that applies transformations on a dataset according to the indices:
class XYTransformedDataset(Dataset):

    def __init__(self, dataset, transformations, img_index=(0, 1), coords_index=(2, )):
        self.ds = dataset
        self.transformations = transformations
        self.img_index = img_index
        self.coords_index = coords_index

    def __getitem__(self, index):

        dp = self.ds[index]  # For example, dp = (im, mask, polygons, labels)
        output_dp = list(dp)
        # HERE WE NEED TO PASS input image AS PARAMETER
        params = self.transformations.get_params(dp[0])

        # Transform images:
        for idx in self.img_index:
            output_dp[idx] = self.transformations(dp[idx], params)

        # Transform coords:
        for idx in self.coords_index:
            output_dp[idx] = self.transformations.transform_coords(dp[idx], params)
        return output_dp

A base class for transformations:
class BaseRandomTransformation:

    def get_params(self):
        return None

    def __call__(self, img, params=None):
        raise NotImplementedError()

    def transform_coords(self, coords, params):
        raise NotImplementedError()

such that all other classes from torchvision derive  from it. For example, Compose
class Compose(BaseRandomTransformation):

    def __init__(self, transforms):
        self.transforms = transforms

    def __call__(self, img, params=None):
        for t in self.transforms:
            img = t(img, params=params)
        return img

    def transform_coords(self, coords, params):
        for t, p in zip(self.transforms, params):
            coords = t.transform_coords(coords, params=p)
        return coords

    def get_params(self, img):
        return [t.get_params(img) for t in self.transforms]

and another example:
class RandomCrop(BaseRandomTransformation):

    def __init__(self, size, padding=0):
        # Same as in torchvision.RandomCrop
        pass

    def get_params(self, img):
        return

    @staticmethod
    def _get_params(img, output_size):
        # Same as in torchvision.RandomCrop
        w, h = img.size
        th, tw = output_size
        if w == tw and h == th:
            return 0, 0, h, w

        i = random.randint(0, h - th)
        j = random.randint(0, w - tw)
        return i, j, th, tw

    def __call__(self, img, params=None):
        """
        Args:
            img (PIL Image): Image to be cropped.

        Returns:
            PIL Image: Cropped image.
        """
        if self.padding > 0:
            img = F.pad(img, self.padding)

        if params is None:
            params = self._get_params(img, self.size)

        i, j, h, w = params

        return F.crop(img, i, j, h, w)

    def transform_coords(self, coords, params):
        i, j, h, w = params
        return F.crop_coords(coords, i, j, h, w)

transformations = Compose(
    [
        RandomCrop(300),
        ColorJitter(),
        ToTensor()
    ]
)

Here, the problem is that some transformation parameters can not be generated without the input image.

Yes. I'm still thinking on how to integrate the transforms in a way that it fits nicely with torchvision, while not requiring much boilerplate and being generic.

@fmassa any updates on this ?

@vfdev-5 Yes, I have some proof-of-concept implementations.
I'm holding on on making a PR yet because I want to see how well they fit the object detection framework I'm writing (I have Fast R-CNN, Faster R-CNN, and FPN working for training and evaluation, I'm now implementing Mask R-CNN).
If I'm happy with how they mix with the framework, I'll be pushing them as is to torchvision.

@fmassa that's super!
For impatient as me, can we take a look on your work to make an idea, please, if it is opensourced somewhere ?

It's not yet open-source, but it will be open-sourced. Stay tuned!

@vfdev-5 One can find an SSD implementation in the fast.ai course lectures also. However, it is a bit hidden under the hood of author's wrappers.

@devforfu yes, it is going to be similar to Detectron.

@fmassa I've built a generic bounding box library for both 2D and 3D bounding boxes. I need to get some legal stuff taken care of before I can release it, but I believe it has everything you would need for object detection in general (including IoU computation).

@varunagrawal we will be releasing a library for object detection which will contain bounding box abstractions, and once it gets a bit more mature we might move it to torchvision.

Hi @fmassa, was it released?

@mattans yes, check it out in https://github.com/facebookresearch/maskrcnn-benchmark/

I'm closing this for now, since I have moved on to other projects. I might come back to it later.

I look forward to this project going on, as I always love torchvision's elegant implementation.
But for a NewBee, I think torch.hub works well:
import torch
precision = 'fp32'
ssd_model = torch.hub.load('NVIDIA/DeepLearningExamples:torchhub', 'nvidia_ssd', model_math=precision)


add Vietnamese translation

Motivation
I added the Vietnamese translation. Feel free to correct any mistakes.
Have you read the Contributing Guidelines on pull requests?
Yes

@quanengineering seems good, thanks!


📃: Add Meme Generator Project. I want to contribute under GSSOC'24.

:red_circle: Title : Meme Generator
:red_circle: Aim : To add a project under the Javascript section.
:red_circle: Tech Stack Used : Html, CSS and Js.
Screenshots 📷

:white_check_mark: To be Mentioned while taking the issue :

Full name : Parna Roy Chowdhury
What is your participant role? GSSOC'24.

Happy Contributing 🚀
All the best. Enjoy your open source journey ahead. 😎

@ParnaRoyChowdhury777 go ahead.


ARROW-15688: [C++] add_checked doesn't error out on duration overflow

This is to resolve ARROW-15688.

@pitrou thanks for spotting that one!


Missing privilege information in the README

After updating to 1.4.0, we didn't get any index information anymore and saw this in the logs:
Jul 22 11:17:30 node01 elasticsearch_exporter[2662308]: level=warn ts=2022-07-22T09:17:30.456212729Z caller=indices.go:1207 msg="failed to fetch and decode index stats" err="HTTP Request failed with code 403"

It seems like it is now necessary to grant the view_index_metadata privilege. After granting this privilege, metrics showed up again and the log messages disappeared.
Another one is es.slm, which can't run /_slm/stats and /_slm/status with only read_slm. I get this error when manually trying to run a GET on these endpoints (by the way, it would be nice to see this in the logs):
{
  "error" : {
    "root_cause" : [
      {
        "type" : "security_exception",
        "reason" : "action [cluster:admin/slm/stats] is unauthorized for user [prometheus] with roles [remote_monitoring_collector,prometheus], this action is granted by the cluster privileges [manage_slm,manage,all]"
      }
    ],
    "type" : "security_exception",
    "reason" : "action [cluster:admin/slm/stats] is unauthorized for user [prometheus] with roles [remote_monitoring_collector,prometheus], this action is granted by the cluster privileges [manage_slm,manage,all]"
  },
  "status" : 403
}

Giving the privileges cluster:admin/slm/stats and cluster:admin/slm/status fixed this problem. I didn't want to give the complete manage_slm privilege.

Could this be updated in the official docs, took us quite a while to find this.


BZ (with Environmental Science) - Mod Compatibility

Integrate various mods into the Environmental Science mod.  The Environmental Science mod adds a fifth "flavor" of space catalog for Space Exploration, enabling more efficient significant data collection.
To be fair, the mod already probably needs some work itself (vulcanite core, for example), and I don't know if the correct method would be to add all BZ cores to the extended environmental catalogue, or if it would be to make many different options, or what.
(Source: Xynariz)

Related Mod Portal discussion on the Environmental Science mod.


Not processing 'every' correctly

Hi,
When I either create or load a line like this:
newjob = crontab.create('ls -l', '*/1 * * * *', '');
newjob.toString or .render display this:

* * * * ls -l

Is this an actual issue or am I doing it wrong?

@joe-parente Both */1 * * * * and * * * * * mean the same thing, which is At every minute.
Refer: https://crontab.guru


Point yum repo at gitbuilder_host

Signed-off-by: Zack Cerza<EMAIL_ADDRESS>

LGTM

Tests passed for this pull request.
Refer to this link for build results: http://jenkins.ceph.com/job/teuthology-pull-requests/776/

For folks following along at home (like me), this relates to http://tracker.ceph.com/issues/10495

Thanks @ktdreyer :)


Add a Requisitions table as the child of the Computations table.

This change is

src/main/kotlin/org/wfanet/measurement/duchy/deploy/gcloud/spanner/computations.sdl, line 141 at r1 (raw file):
Previously, wangyaopw (Yao Wang) wrote…
Good catch, Yes.
Based on https://github.com/world-federation-of-advertisers/cross-media-measurement/blob/933284c02cff0be89991c31178bb9538de70f01b/src/main/kotlin/org/wfanet/measurement/kingdom/deploy/gcloud/spanner/kingdom.sdl#L273
ExternalRequisitionId is an index in the kingdom database's Requisition table.  so surely the duchy can just use it as an index.

ExternalDataProviderId was added back in the most recent commit? Why can it not be RequisitionId only?


Live update descriptor

Is your feature request related to a problem? Please describe.
View needs a way to know what properties to update during acquisition.
Describe the solution you'd like
Create descriptor class to decorate certain classes
Acceptance Criteria

[ ] create descriptor class

@adamkglaser I've been mulling over how to do this during an acquisition without running the risk of querying a device at the same time and causing a crash. I think creating device specific threading locks for each device would be a good option. I do this in the view ui  and then I share these locks with the acquisition ui. We could do something similar for voxel and then create another thread during the acquisition to query through all of the signals we want to keep track of and yield them to the ui to handle.  This way we can run something simultaneously to the acquisition to get things like temperature, latest image, stage coordinates etc., but not worry about crashing.
If you don't love that idea, we can also go through and make the drivers thread safe. Here's a quick preview on how to maybe do that. Seems relatively simple although going through every driver may be laborious. The bonus there is that we could be more relaxed about calling devices. However, one major downfall is that it relies on every driver that people use to be thread safe which I think is a bit unrealistic.
Let me know what you think and I can start moving forward with either one or if you have a other ideas let me know

Agreed I think that handling the locks outside of the drivers would be more ideal. Since it would make adding additional drivers simpler? For us and if others added drivers.
If I understand option 1 correctly, this would be coded once and live in the acquisition run() function?

I was thinking the locks would be created in the instrument in the _construct_device function since we are already looping through all of the devices and know what devices share com ports. Since you have to pass in an instrument object anyway into the acquisition, you can share the locks that way. Then, whenever you call a device in the run function you would need to call the corresponding lock. I can start a rough branch of this if you think this would be a good way of approaching?

Ah that makes sense to me. I agree I think this is the most logical implementation.


Plot and summarise the distribution of tree spans

breakpoints = tinfo.ts.breakpoints(as_array=True)
spans = breakpoints[1:] - breakpoints[:-1]

Need to trim first and last spans, as they're not informative
plot the distribution of tree spans. Need to handle the fact that there's a huge difference in size, somehow. Crude first pass:

spans = spans[1:-1]
plt.hist(spans, range(1, 50))

closed in #16


Sharing the loop with other libraries

If we don't pass a loop to the run method, it creates a new loop and sets it as the event loop for asyncio.
loop = loop or async_loop.new_event_loop()
asyncio.set_event_loop(loop)

But if any other libraries (for example motor) run any code involving the event loop, before we call the run method, they are likely to get the default event loop from asyncio before the above code executes. So they would be running on a separate event loop and my server would be on another event loop.
The obvious solution is to create an uvloop ourselves and passing it to run method. Or deferring any event loop related codes until the server starts (may await from other async functions inside views). We can also choose use get_event_loop method. If uvloop is available and the get_event_loop is not using uvloop, we display a warning.
Or we can simply add a detailed note somewhere as part of the documentation.

My 2 cents on this: starting with Python 3.6 and 3.5.3, it will be recommended to never pass the loop explicitly. asyncio.get_event_loop was fixed to always return you the correct event loop when called from a coroutine.

Instead of new_event_loop, calling get_event_loop should also fix this issue. But users might forget to use uvloop, so if uvloop is not being used, Sanic could print a warning or a message to let the user know that uvloop is available.

@masnun How should we go about knowing if the user isn't using the uvloop.EventLoopPolicy with their asyncio loop?

Hi, we should be able to use this function - https://docs.python.org/3/library/asyncio-eventloops.html#asyncio.get_event_loop_policy to do so?
I didn't try it out, a quick google got me there.

Taken care of in sanic 0.2.0 I think. Closing for now!

Don't think it's fixed, but ok.

I'll reopen then @masnun

Thanks. I will try to come up with some ideas or perhaps a PR. Let's see.

I'm having some problems/confusion around mixing sanic loops and workers when using asyncio or aiohttp as well.
Passing in an both explicit loop (asyncio / uvloop) and specifying multiple wokers e.g.: app.run(host="<IP_ADDRESS>", port=8000, loop=loop, workers=4) gives these errors:
2017-01-21 16:30:58,476: INFO: Goin' Fast @ http://<IP_ADDRESS>:8000
2017-01-21 16:30:58,476: INFO: Spinning up 4 workers...
Assertion failed: (unsigned) fd < loop->nwatchers (src/unix/linux-core.c: uv__io_poll: 336)
Assertion failed: (unsigned) fd < loop->nwatchers (src/unix/linux-core.c: uv__io_poll: 336)
Assertion failed: (unsigned) fd < loop->nwatchers (src/unix/linux-core.c: uv__io_poll: 336)

However, now, omitting the loop=loop will give these errors:
File "/usr/lib/python3.5/asyncio/subprocess.py", line 212, in create_subprocess_exec
    stderr=stderr, **kwds)
  File "uvloop/loop.pyx", line 2176, in __subprocess_run (uvloop/loop.c:39551)
  File "uvloop/loop.pyx", line 2173, in uvloop.loop.Loop.__subprocess_run (uvloop/loop.c:39469)
  File "uvloop/future.pyx", line 241, in __await__ (uvloop/loop.c:110786)
RuntimeError: Task <Task pending coro=<Sanic.handle_request() running at /usr/lib/python3.5/site-packages/sanic/sanic.py:228>> got Future <Future pending> attached to a different loop

I'm attempting to create a simple video thumbnail service using ffmpeg:
https://github.com/ubergarm/pythumbio/blob/aiohttp/server.py
Both of these issues can be easily reproduced using the existing aiohttp_example.py and either omitting the loop=loop or adding workers=4 etc.
Anyway, its exciting to see python beginning to catch up a little in the concurrent services world!
Thanks,
-John

@ubergarm that example was incorrect, I'm updating it. Below is the updated version (which works). With multiple workers (at least) it doesn't seem that passing the event loop is the correct way.
from sanic import Sanic
from sanic.response import json

import asyncio
import aiohttp

#Create an event loop manually so that we can use it for both sanic & aiohttp

app = Sanic(__name__)

async def fetch(session, url):
    """
    Use session object to perform 'get' request on url
    """
    async with session.get(url) as response:
        return await response.json()

@app.route("/")
async def test(request):
    """
    Download and serve example JSON
    """
    url = "https://api.github.com/repos/channelcat/sanic"

    async with aiohttp.ClientSession(loop=
                                     asyncio.get_event_loop()) as session:
        response = await fetch(session, url)
        return json(response)

app.run(host="<IP_ADDRESS>", port=8000, workers=2)

Note that we no longer pass the loop, and we don't create a new event loop, instead we use asyncio.get_event_loop() to use the current event loop.

@masnun based on the above comment by @1st1, I think the problem here is actually twofold:

our examples are showing the wrong way of doing it
it probably doesn't even make sense to allow passing the loop, at least in the multiple workers implementation

instead we use asyncio.get_event_loop() to use the current event loop directly in test.

This seems to be the correct approach.

Thanks for clearing this up, things are moving fast!
I still wanted a way to limit the maximum concurrency and the way I came up with to get the sanic app's loop out to a global semaphore object was to use the before_start method which seems to pass the sanic app itself and the loop.
Is there a cleaner or preferred way to do something like this yet?
from sanic import Sanic
from sanic.response import json

import asyncio
import aiohttp

app = Sanic(__name__)

sem = None

def init(sanic, loop):
    global sem
    MAX_CONCURRENCY = 5
    sem = asyncio.Semaphore(MAX_CONCURRENCY, loop=loop)

async def bounded_fetch(session, url):
    """
    Use session object to perform 'get' request on url
    """
    async with sem, session.get(url) as response:
        return await response.json()

@app.route("/")
async def test(request):
    """
    Download and serve example JSON
    """
    url = "https://api.github.com/repos/channelcat/sanic"

    async with aiohttp.ClientSession(loop=
                                     asyncio.get_event_loop()) as session:
        response = await bounded_fetch(session, url)
        return json(response)

app.run(host="<IP_ADDRESS>", port=8000, workers=2, before_start=init)

The before_start solution is smart. May be we can promote that in the examples / docs as a way of passing the loop to external libraries which need the event loop.

instead we use asyncio.get_event_loop() to use the current event loop

If the code is executed before you call the run method on Sanic, it will get a different loop.
One solution is to use before_start like mentioned above to initialize other libraries before the app actually starts up.

I'm not sure it is even necessary to call asyncio.get_event_loop() when using aiohttp's ClientSession. Looks like this happens for you:
http://aiohttp.readthedocs.io/en/stable/client_reference.html#aiohttp.ClientSession (read about the loop param a few lines down)
https://github.com/KeepSafe/aiohttp/blob/add3bd9e32b0712dfaa4466194e165145a46e6d4/aiohttp/connector.py#L130-L131

I think this should be closed per https://github.com/channelcat/sanic/pull/348

#348 Won't really work until https://github.com/channelcat/sanic/blob/master/sanic/server.py#L301 is removed. What if user called asyncio.get_event_loop() before sanic set it? Or wants to explicitly set uvloop by himself instead of relying on some magic that happens in third party library. This concept of library changing global settings of asyncio seems conceptually very wrong and dangerous to me.
It's nice you want sanic to be fast and it is fastest with uvloop, but it should be resolved by documentation and not magic.

@JendaPlhak which is why we recommend that users (if they need to share the event loop that gets created by sanic) use the before_start or after_start server events to share the loop amongst their other libraries.
Sorry if that wasn't clear through the documentation. I agree that we shouldn't be setting the global loop like that as well.

Ok, and are you going to change that? (Since usage of mentioned arguments is fairly inconvenient)

`import asyncio
from sanic import Sanic
from sanic.response import json
from motor.motor_asyncio import AsyncIOMotorClient
mongo_connection = AsyncIOMotorClient()
contacts = mongo_connection.test.t1
app = Sanic(name)
@app.route("/")
async def list(request):
data = await contacts.count()
 return json({"count": data})

app.run(host="<IP_ADDRESS>", port=8000, workers=5)
`
If I run thie program, a error will appear.
 File "/root/py3env/lib/python3.5/site-packages/sanic/sanic.py", line 232, in handle_request     response = await response   File "sanic_test2.py", line 24, in list     data = await contacts.count()   File "/usr/lib/python3.5/asyncio/futures.py", line 361, in __iter__     yield self  # This tells Task to wait for completion. RuntimeError: Task <Task pending coro=<Sanic.handle_request() running at /root/py3env/lib/python3.5/site-packages/sanic/sanic.py:232>> got Future <Future pending cb=[_chain_future.<locals>._call_check_cancel() at /usr/lib/python3.5/asyncio/futures.py:431]> attached to a different loop
How to solve this?

Sharing a global loop, that's instantiated before a sanic application is run is, in my opinion, an anti-pattern. Going to close this again, will reopen if necessary.

@1st1 sorry, late to this party. But can you clarify what you mean by:

My 2 cents on this: starting with Python 3.6 and 3.5.3, it will be recommended to never pass the loop explicitly. asyncio.get_event_loop was fixed to always return you the correct event loop when called from a coroutine.

Do you mean passing the loop specifically in the context of coroutines? Or do you mean to workers, etc? How else are we to add tasks to a loop from an executor?

Do you mean passing the loop specifically in the context of coroutines? Or do you mean to workers, etc? How else are we to add tasks to a loop from an executor?

Whenever you're in async/await context, i.e. in the body of a coroutine, it's safe to call asyncio.get_event_loop() to get the loop the is running the coroutine. So there is no need to pass the loop around in your async/await code.
If, however, you're writing some callback based code (read Protocols) then you'll still need to pass the loop reference.

Hey , i want use before start and after_start but the are no more in the args of the run call function
what is the best way to do ? thank you
def run(self, host=None, port=None, debug=False, ssl=None,
        sock=None, workers=1, protocol=None,
        backlog=100, stop_event=None, register_sys_signals=True,
        access_log=True):


Fake error in TypeScript vscode validation

Type: Bug
vscode say "Event dont get .deltaY" but it works in JS when event comes from "wheel" event
I just tried to access wheel events and determine up and down,
This code works when exported to js but print an error in typescript :
$("body").on('wheel', function(event: Event) {
console.log(event.originalEvent.deltaY)
})
VS Code version: Code 1.71.2 (74b1f979648cc44d385a2286793c226e611f59e7, 2022-09-14T21:03:37.738Z)
OS version: Windows_NT x64 10.0.22000
Modes:

Sandboxed: No

This looks an issue with the jQuery typings, not VS Code: https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/jquery/JQuery.d.ts
You can workaround it by telling us that originalEvent is a WheelEvent instead of a generic Event:
$(targetSelector).on('wheel', e => (/** @type {WheelEvent} */(e.originalEvent)).deltaY);


fix bug on bounty update

Bug in contract:

bounty with e.g. 100 Juno
owner updates to 50 Juno
owner gets 50 Juno returned
if owner accidentally sends 50 Juno on update, then 100 Juno needs to be send back - not 50

Question is whether for Close, PayOut and UpdateOwnership funds should also be checked and send back.


Java instrumentation for Xpedite profiling

Please add the required version of java to .travis.yaml
-- Found Java: /usr/local/lib/jvm/openjdk11/bin/java (found version "11.0.2")
-- Found JNI: /usr/local/lib/jvm/openjdk11/lib/libjawt.so
-- Found Java: /usr/local/lib/jvm/openjdk11/bin/java (found suitable version "11.0.2", minimum required is "1.8")
CMake Error at /usr/local/cmake-3.12.4/share/cmake-3.12/Modules/UseJava.cmake:1316 (message):
  create_javah: not supported with this Java version.  Use
  add_jar(GENERATE_NATIVE_HEADERS) instead.
Call Stack (most recent call first):
  java/Xpedite/java_setup.cmake:37 (create_javah)
  CMakeLists.txt:151 (java_setup)

-- Configuring incomplete, errors occurred!
See also "/home/travis/build/Morgan-Stanley/Xpedite/build/CMakeFiles/CMakeOutput.log".
See also "/home/travis/build/Morgan-Stanley/Xpedite/build/CMakeFiles/CMakeError.log".
make: *** No rule to make target 'install'.  Stop.
~/build/Morgan-Stanley/Xpedite
travis_time:end:053847fb:start=1565389317690072184,finish=1565389319326944130,duration=1636871946
The command "./build.sh" exited with 2.

Codecov Report

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

@@           Coverage Diff           @@
##           master      #96   +/-   ##
=======================================
  Coverage   67.32%   67.32%
=======================================
  Files          80       80
  Lines        5753     5753
=======================================
  Hits         3873     3873
  Misses       1880     1880

Continue to review full report at Codecov.

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


Failed to add feature to server.xml

start dev mode
add mpHealth-2.0 to server.xml
got following error messages:

[INFO] Installing features: [mpconfig-1.3, cdi-2.0, jsonp-1.1, mpmetrics-2.0, jaxrs-2.1]
[INFO] CWWKF1250I: The following assets already exist: [cdi-2.0, jaxrs-2.1, jsonp-1.1, mpConfig-1.3, mpMetrics-2.0]. They will not be reinstalled. To modify an existing feature, you must manually uninstall it first.
[INFO] The features are already installed, so no action is needed.
...
[INFO] [AUDIT   ] CWWKG0016I: Starting server configuration update.
[INFO] [ERROR   ] CWWKF0001E: A feature definition could not be found for mphealth-2.0
[INFO] [AUDIT   ] CWWKG0017I: The server configuration was successfully updated in 0.224 seconds.
[INFO] [AUDIT   ] CWWKF0008I: Feature update completed in 0.203 seconds.

Why the ERROR message show mphealth-2.0 instead of mpHealth-2.0? As well as the first 2 INFO messages, the cases not match?
Tried by today liberty-maven-plugin:3.0.2-SNAPSHOT. Failed in Mac and Windows. It worked before on Mac.

looks like caused by pr #614

Since liberty:install-feature is called before the changed server.xml is copied to the target, the new features added to the server.xml is not installed,  Change the code to call install-features with the list of new features when source server.xml is changed


Port: Add apply_grants call to materialization macros (dbt-labs/dbt-spark#381)

Description
Ports in the upstream: Add apply_grants call to materialization macros (dbt-labs/dbt-spark#381).

Thanks! merging.


⚠ ESPN has degraded performance

In e7cb4ec, ESPN (https://espn.com) experienced degraded performance:

HTTP code: 200
Response time: 1615 ms

Resolved: ESPN performance has improved in c8fbf93.


tf.random_normal_initializer produces inconsistent results with fixed seed on GPU

System information

Have I written custom code (as opposed to using a stock example script provided in TensorFlow): yes
OS Platform and Distribution (e.g., Linux Ubuntu 16.04): Linux Ubuntu 16.04
TensorFlow installed from (source or binary): binary
TensorFlow version (use command below): 1.0.0, 1.1.0, 1.2.1
Python version: 2.7.10, 3.5.2
Bazel version (if compiling from source): -
CUDA/cuDNN version: CUDA release 8.0, V8.0.46; cuDNN 8.0
GPU model and memory: GeForce GTX TITAN X 12GB, GK210GL [Tesla K80] 12GB
Exact command to reproduce: below

Describe the problem
Setting both graph-level and op-level random seeds to fixed values, I still get inconsistent results initializing variables with tf.random_normal_initializer. Here's the code to reproduce the problem
import numpy as np
import tensorflow as tf

tf.set_random_seed(0)
np.random.seed(0)
shape = (100, 2048)
seed = 0
for i in range(100):
    seed += 1
    init = tf.random_normal_initializer(stddev=0.02, seed=seed)
    tf.get_variable(str(i), shape, initializer=init)

session = tf.Session()
session.run(tf.global_variables_initializer())
var_dict = {}
for var in tf.trainable_variables():
    var_dict[var.name] = session.run(var.name)

np.savez_compressed("weights.npz", **var_dict)
session.close()

Here I initialize 100 variables with tf.random_normal_initializer with a fixed op-level seed and with a fixed graph-level seed.
Running this two times I get different results saved in weights.npz. Interestingly, this happens only when using GPU and the difference between the saved weights is very slight: usually only some of the variables are different, and they only differ in some small number of positions.
I experience this problem on Tensorflow 1.0.0 (Python2), 1.1.0, 1.2.1 (Python3) and on two different GPUs.

@zheng-xq Do you have any insights here, or can you suggest someone to investigate?  Thanks!

It has been 14 days with no activity and the awaiting tensorflower label was assigned. Please update the label and/or status accordingly.

Nagging Awaiting TensorFlower: It has been 14 days with no activity and the awaiting tensorflower label was assigned. Please update the label and/or status accordingly.

Nagging Awaiting TensorFlower: It has been 14 days with no activity and the awaiting tensorflower label was assigned. Please update the label and/or status accordingly.

Nagging Awaiting TensorFlower: It has been 14 days with no activity and the awaiting tensorflower label was assigned. Please update the label and/or status accordingly.

Nagging TensorFlower: It has been 14 days with no activity and the awaiting tensorflower label was assigned. Please update the label and/or status accordingly.

Nagging Assignee @asimshankar: It has been 14 days with no activity and this issue has an assignee. Please update the label and/or status accordingly.

Nagging Assignee @asimshankar: It has been 15 days with no activity and this issue has an assignee. Please update the label and/or status accordingly.

Nagging Assignee @asimshankar: It has been 273 days with no activity and this issue has an assignee. Please update the label and/or status accordingly.

Nagging Assignee @asimshankar: It has been 289 days with no activity and this issue has an assignee. Please update the label and/or status accordingly.

Nagging Assignee @asimshankar: It has been 304 days with no activity and this issue has an assignee. Please update the label and/or status accordingly.

Nagging Assignee @asimshankar: It has been 319 days with no activity and this issue has an assignee. Please update the label and/or status accordingly.

Nagging Assignee @asimshankar: It has been 334 days with no activity and this issue has an assignee. Please update the label and/or status accordingly.

Nagging Assignee @zheng-xq: It has been 14 days with no activity and this issue has an assignee. Please update the label and/or status accordingly.

Nagging Assignee @zheng-xq: It has been 29 days with no activity and this issue has an assignee. Please update the label and/or status accordingly.

Nagging Assignee @zheng-xq: It has been 44 days with no activity and this issue has an assignee. Please update the label and/or status accordingly.

Nagging Assignee @zheng-xq: It has been 59 days with no activity and this issue has an assignee. Please update the label and/or status accordingly.

Nagging Assignee @zheng-xq: It has been 74 days with no activity and this issue has an assignee. Please update the label and/or status accordingly.

Nagging Assignee @ymodak: It has been 89 days with no activity and this issue has an assignee. Please update the label and/or status accordingly.

Is this still an issue with the latest version of TensorFlow for you?

Automatically closing due to lack of recent activity. Please update the issue when new information becomes available, and we will reopen the issue. Thanks!


Fix/dropdown styles

fix: remove click listener that was setting active
This was setting active outside of the navbar component, making route changes inside the component a breaking change that was hard to see.

fix: change anchor to stencil-route-link
This sets the active class based on the stencil router state just like any other route component.

fix: add less exclusive active class
At some point, the items in the navbar lost their active state, likely due to the nesting of its styles being moved around, so there's a more general style, since setting the active class is likely scoped to the dropdowns there.

https://openforge.teamwork.com/#/tasks/17477929

Just need to add the select state to the "work with us" button as well.

Just need to add the select state to the "work with us" button as well.

I PM'd some questions on style, the button has the active tag, but it seems like the active styles are gone for that as well. Just asking if the background of the button changes.

QA Passes


Exponential backoff

Resolves  pozotron/audiobookstudio#697

Additional tests required

Everything else is done

It looks good, can you please make a PR for audiobookstudio, which changes the requirements.txt to use this version? We can give it a test, and if all is good get it submitted to the central repo.

@jakepoz this should fix the build bug.

Thank you for those updates!


Instantiated BoundingBox resets to (0,0)

Resistor's default BoundingBox should always be Vector2i(4,2). However, after running, it always goes back to being (0,0). Maybe something weird going on with @export and set-get

358b2249035d8ef55f738b363b48fba4f0529fe8


Contrary loss update direction of CS-FMU and changeless loss of ME-FMU with FMUParameterRegistrator

Currently, I am trying to use FMUParameterRegistrator to do parameter calibration/estimation but encounter some issues.
I do experiments on both ME-type & CS-type FMU：

For ME-type FMU

Model：SpringPendulum1D.mo (from FMIZoo.jl)
Exporting Tool：Dymola (I dircetly use the FMU from FMIZoo.jl)
Result：good, parameter can be tuned correctly after training

Model：SpringPendulum1D.mo (from FMIZoo.jl)
Exporting Tool：OpenModelca v1.23.0 (64-bit)
Result：the loss doesn't change during training so the parameter is not tuned correctly, below is the loss function I use and part of info during training process

function lossSum(p)
    global neuralFMU, x₀, posData, params, w, counter

    w = p[1].value
    if FMU_SOURCE == "OpenModelica"
        params = Dict(zip(initStates, [w, 0.0, 1.0, 0.5, 0.0, 10.0, 1.0]))  # for OM
    elseif FMU_SOURCE == "Dymola"
        params = Dict(zip(initStates, [0.5, 0.0, w, 10.0, 1.0, 1.0, 0.0]))  # for Dymola
    end

    solution = neuralFMU(x₀; parameters=params, p=p, showProgress=true, saveat=tSave)
    #solution = neuralFMU(x₀; p=p, showProgress=true, saveat=tSave)

    if !solution.success
        return Inf
    end

    posNet = fmi2GetSolutionState(solution, 1; isIndex=true)
    velNet = fmi2GetSolutionState(solution, 2; isIndex=true)

    loss_value = FMIFlux.Losses.mse(posData, posNet)
    if counter % 100 == 0 || counter == 1
        @info "LossSum[$counter] - Loss: $(round(loss_value.value, digits=5)), p: $(p[1].value)"

    end

    return loss_value
end

Parameters Before: Params([[0.1]])
t=4.0000e+00s | Δt=1.3271e-01s | STPs=7 | EVTs=0 | 100%|██████████████████████████████████████████████████████████████████████████████████████████████████| Time: 0:00:01
[ Info: LossSum[0] - Loss: 1.59984, p: 0.1
[ Info: LossSum[1] - Loss: 1.59984, p: 0.09900000000013325
[ Info: LossSum[100] - Loss: 1.59984, p: 0.005808103062422814
[ Info: LossSum[200] - Loss: 1.59984, p: -0.0730673163153592
[ Info: LossSum[300] - Loss: 1.59984, p: -0.15119005659167525
[ Info: LossSum[400] - Loss: 1.59984, p: -0.20746426846536525
[ Info: LossSum[500] - Loss: 1.59984, p: -0.2559694377722006
[ Info: LossSum[600] - Loss: 1.59984, p: -0.30465139280630354
[ Info: LossSum[700] - Loss: 1.59984, p: -0.36115693613792765
[ Info: LossSum[800] - Loss: 1.59984, p: -0.4481988144390695
[ Info: LossSum[900] - Loss: 1.59984, p: -0.5573190402714133
Parameters After: Params([[-0.6396949635848143]])
p: [-0.6396949635848143, 0.0, 1.0, 0.5, 0.0, 10.0, 1.0]

Actually, I found this issue comes from the wrong return value of neuralFMU(x₀; parameters=params, p=p, showProgress=true, saveat=tSave) in lossSum because the posNet is an array with same value for all time steps and velNet is an array with linear incremental values. For example, the posNet = [0.5, 0.5, 0.5, ..., 0.5, 0.5, 0.5] and the velNet = [0.0, 0.1, 0.2, 0.3, ..., 40.0], however, both of them should be like a string wave.
By the way, this only happens when doing FMIFlux.train!. It is normal if I run neuralFMU(x₀; parameters=params, p=p, showProgress=true, saveat=tSave) independently.
I am not sure whether canGetAndSetFMUstate="false" may be the possible reason that cause weird FMU solution? Because OpenModelica seems not support ME-type FMU to support this functionality even I follow the guideline of OpenModelica to enable it.
#################### Begin information for FMU ####################
        Model name:                     SpringPendulum1D
        FMI-Version:                    2.0
        GUID:                           {07765a18-d4d2-45bf-9416-dceca504316f}
        Generation tool:                OpenModelica Compiler OpenModelica v1.23.0 (64-bit)
        Generation time:                2024-08-02T16:27:51Z
        Var. naming conv.:              structured
        Event indicators:               0
        Inputs:                         0
        Outputs:                        0
        States:                         2
                0 ["mass.stateSelect", "mass.s"]
                1 ["mass.v"]
        Supports Co-Simulation:         true
                Model identifier:       SpringPendulum1D
                Get/Set State:          true
                Serialize State:        true
                Dir. Derivatives:       true
                Var. com. steps:        true
                Input interpol.:        true
                Max order out. der.:    1
        Supports Model-Exchange:        true
                Model identifier:       SpringPendulum1D
                Get/Set State:          false
                Serialize State:        false
                Dir. Derivatives:       true
##################### End information for FMU #####################

For CS-type FMU

Model：SpringPendulumExtForce1D.mo (from FMIZoo.jl)
Exporting Tool：Dymola (I dircetly use the FMU from FMIZoo.jl)
Result：the loss keeps increasing so the result is totally on the contrary like below

Parameters Before: Params([[0.1]])
[ Info: LossSum[1] - Loss: 181.8703, p: 0.1
[ Info: LossSum[100] - Loss: 201.47267, p: 0.00014190570528661807
[ Info: LossSum[200] - Loss: 222.8067, p: -0.10304300700040245
[ Info: LossSum[300] - Loss: 245.72902, p: -0.20853901980968
[ Info: LossSum[400] - Loss: 270.22067, p: -0.3160940123411269
[ Info: LossSum[500] - Loss: 296.40281, p: -0.42552168988779004
[ Info: LossSum[600] - Loss: 324.23064, p: -0.5368072061518109
[ Info: LossSum[700] - Loss: 353.77287, p: -0.6497765138005717
[ Info: LossSum[800] - Loss: 384.96156, p: -0.7641253579239035
[ Info: LossSum[900] - Loss: 417.84708, p: -0.87971473337163
[ Info: LossSum[1000] - Loss: 452.41874, p: -0.9964353941757557
Parameters After: Params([[-0.9964353941757557]])
p: [0.5, -0.9964353941757557, 10.0, 1.0, 1.0, 0.0]

If I negtivelize the return value of loss, the training is relatively normal but I think this is not a good way to do
Parameters Before: Params([[0.1]])
[ Info: LossSum[1] - Loss: 40.81055, p: 0.1
[ Info: LossSum[200] - Loss: 25.41111, p: 0.28985541311617846
[ Info: LossSum[400] - Loss: 14.79257, p: 0.4581509689040884
[ Info: LossSum[600] - Loss: 7.93092, p: 0.6032038680923282
[ Info: LossSum[800] - Loss: 3.82994, p: 0.7242404129508137
[ Info: LossSum[1000] - Loss: 1.60288, p: 0.8213334851987159
[ Info: LossSum[1200] - Loss: 0.54577, p: 0.8955987417197941
[ Info: LossSum[1400] - Loss: 0.12857, p: 0.9491589358950395
[ Info: LossSum[1600] - Loss: 0.01049, p: 0.9853109597389106
[ Info: LossSum[1800] - Loss: 0.00367, p: 1.0079643085069332
[ Info: LossSum[2000] - Loss: 0.02329, p: 1.0210428955494268
Parameters After: Params([[1.0210428955494268]])
p: [0.5, 1.0210428955494268, 10.0, 1.0, 1.0, 0.0]

Model：SpringPendulumExtForce1D.mo (from FMIZoo.jl)
Exporting Tool：OpenModelca v1.23.0 (64-bit)
Result：good, parameter can be tuned correctly after training

Conclusion
There is two issues when using FMUParameterRegistrator：

Wrong FMU output during FMIFlux.train! for ME-type FMU
Contrary update direction of loss during training for CS-type FMU

If more information is needed, please tell me, thank you!

Thanks for the issue, this is very interesting!
For canGetAndSetFMUstate="false" the default fall-back is to use sampling and finite differences.
We will check that!

Hi @ThummeTo , I doubt that the first issue not only happened when using FMUParameterRegistrator.
I also do experiment about learning unknown effect example like the example of hybrid_ME on SpringPendulum and I get worse result
# NeuralFMU setup
numStates = fmiGetNumberOfStates(referenceFMU)
net = Chain(x -> referenceFMU(x=x, dx_refs=:all),
            Dense(numStates, 8, identity),
            Dense(8, 8, tanh),
            Dense(8, numStates)
            )
optim = Adam()
solver = Tsit5()
neuralFMU = ME_NeuralFMU(referenceFMU, net, (tStart, tStop), Tsit5(); saveat=tSave)

solutionBefore = neuralFMU(x₀; parameters=init_params, saveat=tSave)
posNet_before, velNet_before = extractPosVel(solutionBefore)

paramsNet = Flux.params(neuralFMU)
params_before = deepcopy(paramsNet)

for i in 1:length(paramsNet[1])
    if paramsNet[1][i] < 0.0
        paramsNet[1][i] = -paramsNet[1][i]
    end
end

NUMSTEPS = 1000
GRADIENT = :ReverseDiff
FMIFlux.train!(lossSum, neuralFMU, Iterators.repeated((), NUMSTEPS), optim; gradient=GRADIENT, cb=()->callb(paramsNet), printStep=false)

[ Info: LossSum[0] - Loss: 125.24109
[ Info: LossSum[1] - Loss: 124.58794
[ Info: LossSum[100] - Loss: 53.56777
[ Info: LossSum[200] - Loss: 1.509
[ Info: LossSum[300] - Loss: 0.81575
[ Info: LossSum[400] - Loss: 0.76544
[ Info: LossSum[500] - Loss: 0.76557
[ Info: LossSum[600] - Loss: 0.76563
[ Info: LossSum[700] - Loss: 0.76606
[ Info: LossSum[800] - Loss: 0.76679
[ Info: LossSum[900] - Loss: 0.76561

It seems like it easily stucks at local optimum and the result is show below

The difference of calling neuralFMU(x₀; p=p, showProgress=true, saveat=tSave) in and out FMIFlux.train!() is below, where in FMIFlux.train!() means the calling of neuralFMU(...) is in loss function during the training process and out FMIFlux.train!() means calling neuralFMU(...) outside the training process like solutionBefore = neuralFMU(x₀; saveat=tSave)

this plot shows that the FMU output in the training process is linear, which is weird I think
NOTE: the fmu I use in above results is exported by OpenModelica v1.23.0 (64-bit), which may be the main reason but not sure why

Can you compare the gradients?
Like applying ForwardDiff.gradient(loss, p) (or ReverseDiffGradient(loss, p)).

There are some tests in FMISensitivity.jl that you can check out: (FMISensitivity tests)[https://github.com/ThummeTo/FMISensitivity.jl/blob/main/test/jacobians_gradients.jl]


Client

Client
Does anyone want me to make an official client for this project ?

Yes! Will the client have its own protocol?

Yeah!

@ZfsrGhS953 Once I get the base done I will work on protocols :D

Cool!

Why not just make Cigar compatible with it?

It is compatible with Cigar but our own client would be more "Expandable"

Expandable to what?

To adding more features as we go along :)


Set up redis service automatically

While the DB container worked out of the box, the redis container was missing. I got it running quickly with ddev get drud/ddev-redis. The PLATFORM_RELATIONSHIPS variable was missing the configuration for the redis service defined in services.yaml, so I had to create a fallback. Would be great if this works out of the box.
.platform.app.yaml
relationships:
  database: "mysql:mysql"
  rediscache: "cacheredis:redis"

services.yaml
mysql:
  type: mysql:10.5
  disk: 4096
cacheredis:
  type: redis:6.2

redis config
$platformRelationships = json_decode(base64_decode(getenv('PLATFORM_RELATIONSHIPS')));

return [
    'redis'   => [
        'host' => $platformRelationships['rediscache'][0]['host'] ?? 'redis', // Fallback for DDEV
        'port' => $platformRelationships['rediscache'][0]['port'] ?? 6379, // Fallback for DDEV
    ],
]

Thanks @aimfeld - Would you be willing to put your .platform.app.yaml and .platform/services.yaml here (or in a gist on gist.github.com)? Perhaps edited.

Sure, there you go:
.platform.app.yaml
name: "surveylab"
type: php:8.1
build:
  flavor: composer
timezone: Europe/Zurich
runtime:
  extensions:
    - redis
relationships:
  database: "mysql:mysql"
  rediscache: "cacheredis:redis"
disk: 1024
mounts:
  "/data": "shared:files/data"
  "/temp": "shared:files/temp"
  "/filebeat": "shared:files/filebeat"
dependencies:
  php:
    composer/composer: '^2'
  nodejs:
    gulp: "4.0.2"
    yarn: "1.22.19"
variables:
  env:
    # Update these for your desired versions.
    NVM_VERSION: v0.39.1
    NODE_VERSION: v16.15.1
    FILEBEAT_VERSION: 7.15.2
hooks:
  build: |
    bin/build-hook
  deploy: |
    bin/deploy-hook
crons:
  events:
   ...
web:
  locations:
    "/":
      root: "public"
      passthru: "/index.php"
      headers:
        X-Frame-Options: SAMEORIGIN
      rules:
        ...

.platform/services.yaml
mysql:
  type: mysql:10.5
  disk: 4096
cacheredis:
  type: redis:6.2

Thanks so much. I imagine the failure was a result of

https://github.com/platformsh/ddev-platformsh/issues/57


Royal family gem pickaxe function bug

Tooltip of royal family gem states copper ore can produce gold chunks
This behavior does not happen instead iron ore produces gold chunks.
Playing on divnectar server in dimension of twilight first apotheosis version 1.20.1-7.4.0

sounds like a modpack issue
they changed the tag:
https://github.com/Shadows-of-Fire/Apotheosis/blob/fd032772692339e136d247daa6301c5657065bfe/src/main/resources/data/apotheosis/gems/overworld/royalty.json#L65-L68
but didn't update the description:
https://github.com/Shadows-of-Fire/Apotheosis/blob/fd032772692339e136d247daa6301c5657065bfe/src/main/resources/assets/apotheosis/lang/en_us.json#L345

Thank you.


Bug: Deleting tags after changing layout may cause crash

Description
As the title described. It is always reproduced by the following steps.
Steps To Reproduce

Set "Home" tag and "Work" tag to a folder in the details layout.
Change the layout to the grid layout.
Change the layout back to the details layout.
Delete "Home" tag.
Delete "Work" tag.
The app will crash.

Requirements
Fix crash.
Files Version
<IP_ADDRESS>
Windows Version
10.0.22621.1848
Log File
debug.log

Thank you for reporting this issue.

Certainly this avoids crashes, but the underlying problem is that the binding to the grid layout occurs despite the change to the details layout. This may cause other problems besides this crash.


[Docs] How versions work

I've seen some users assume that playwright-sharp latest is equivalent to playwright latest. Would it be useful to add a readme section to explain how the version matching between playwright-sharp and playwright works? Happy to send a PR if this sounds good.

Our Readme needs some love for sure. PRs are welcome :)
To be on the same page, and based on the Core Guidelines I mentioned here:

We won’t (technically speaking) respect semver. We will always try to match Playwright’s versions, so you will know that e.g., PlaywrightSharp 1.5, will have the same features as Playwright 1.5.

We won't consider revisions there. That would give us some room for our own hotfixes.


Clarify whitespace handling for multi-line Raw String Literals

In the section entitled "Raw String Literals", please consider clarifying the documentation of whitespace handling for strings that span multiple lines.  In that section, the following sentence does not fully convey the behavior:

In multi-line raw string literals, any whitespace to the left of the closing quotes is removed.

Specifically, it is unclear that this whitespace is also removed from the lines prior to the single line containing the closing quotes.  For example, something like the following might be clearer...

In multi-line raw string literals, any whitespace to the left of the closing quotes is removed from all lines in the string.

Also, clarification of the handling of whitespace following the opening quotes would be helpful. While it is somewhat covered in the comments in the code snippet, adding an additional bullet point to the article text might be more helpful.
Finally, while it is apparent (from the comments) that line breaks following the opening quotes are removed, it is unclear if all trailing whitespace (spaces, tabs, etc.) is also removed. Assuming it is removed, it is similarly unclear if this "trimming" behavior extends to subsequent lines of that same string.

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

ID: c7aa6134-64e2-28a7-f7d0-d0c1512f4520
Version Independent ID: 3317fd4a-9cd3-57cd-66f7-abb271e302e8
Content: Strings - C# Programming Guide
Content Source: docs/csharp/programming-guide/strings/index.md
Product: dotnet-csharp
Technology: csharp-fundamentals
GitHub Login: @BillWagner
Microsoft Alias: wiwagn

Hi @techfan101
One obvious fix is to link to the specification.
However, I'd rather not replicate the spec here. For that reason, this page may (probably should) miss some details. Of the items you mention above, which do you think are common? Which do you think are maybe less needed?
Thanks for the discussion.

@BillWagner, thank you for taking the time to consider this request. I had not seen the specification.
While the specification is indeed helpful, I think it may be overkill for casual consumers of this feature :)
I don't suggest significantly altering the article. I think the level of detail already present comes very close to providing enough detail. There are only two minor clarifications that would be helpful.
Regarding the removal of leading whitespace, adding a few words to the end of the existing bullet point should suffice.
Regarding the removal of trailing whitespace, I think a single additional bullet point would suffice. Something like the following, where new text is bolded, should suffice for both:

In multi-line raw string literals, any whitespace to the left of the closing quotes is removed from all lines in the string.

In multi-line raw string literals, trailing whitespace on the initial line containing the opening quotes is removed.  Trailing whitespace on subsequent lines is not altered.

Given the importance of whitespace handling with regard to multi-line string literals, I think this small amount of extra clarification is appropriate.
That said, please fact-check me. I did have a bit of difficulty interpreting the specification. Hopefully, my suggested additions accurately summarize what it specifies.
Thanks again for your time.

Thanks @techfan101
That helps a lot. I'll address it this month.


Prepare Azure Core for Feb 20 Release

Updates the Azure Core versions being consumed from downstream libraries. Additionally, updates a few CHANGELOG and README files based on a recent hotfix.

/azp run java - appconfiguration - tests


Engine: Pressing different keys produces an error

When pressing a key different that the arrows the game throws an error

Fixed and added wasd keys as an alternative way for the player to move


Service Bus BrokeredMessage support for F#

Currently only works with C#, in F# I get the following error
mscorlib: Method not found: 'Void Microsoft.Azure.WebJobs.ServiceBusTriggerAttribute..ctor(System.String, System.String, Microsoft.ServiceBus.Messaging.AccessRights)'

Could you share the F# metadata and function definition?

Run.fsx
open System
open Microsoft.ServiceBus.Messaging

let Run(msg : BrokeredMessage, log: TraceWriter ) = log.Info("Received")

function.json
{
  "bindings": [
    {
      "name": "msg",
      "type": "serviceBusTrigger",
      "direction": "in",
      "topicName": "test",
      "subscriptionName": "test"
    }
  ]
}

project.json
{
  "frameworks": {
    "net46": {
      "dependencies": {
        "WindowsAzure.ServiceBus": "*"
      }
    }
  }
}

There shouldn't be a language difference here at all - it's the same underlying code for all languages. Can you try removing the ServiceBus entry from your project.json? Microsoft.ServiceBus is a built in assembly - you can add it via #r "Microsoft.ServiceBus". Another thing to try would be to add accessRigghts explicitly in your metadata as in this sample. Perhaps we have a bug there requiring this to be specified?

I've removed the project.json completely and added #r "Microsoft.ServiceBus" and now get this error:
Could not resolve this reference. Could not locate the assembly "Microsoft.ServiceBus".

Mathew's recommendation was good and should work, sot it looks like we have an issue here. We'll investigate and update this with our findings.

@JonCanning @lindydonna @fabiocav @tpetricek @christopheranderson - @sylvanc and I are actively looking into this bug this week. We think nearly all the existing F# issues boil down to the one same bug (not finding assemblies at runtime which have been resolved statically)
Suspected duplicate of #650

I think this should now be resolved with the recent assembly changes https://github.com/Azure/azure-webjobs-sdk-script/commit/2dd244d549adab46b5aa5752d3a6481754b81650?

I'm still seeing the error, here's the full stack trace from the logs
2016-11-18T20:07:45.913 Starting Host (HostId=tbrtest, Version=1.0.10604.0, ProcessId=4164, Debug=True)
2016-11-18T20:07:45.913 A ScriptHost error has occurred
2016-11-18T20:07:45.913 System.MissingMethodException: Method not found: 'Void Microsoft.Azure.WebJobs.ServiceBusTriggerAttribute..ctor(System.String, System.String, Microsoft.ServiceBus.Messaging.AccessRights)'.
   at System.ModuleHandle.ResolveMethod(RuntimeModule module, Int32 methodToken, IntPtr* typeInstArgs, Int32 typeInstCount, IntPtr* methodInstArgs, Int32 methodInstCount)
   at System.ModuleHandle.ResolveMethodHandleInternalCore(RuntimeModule module, Int32 methodToken, IntPtr[] typeInstantiationContext, Int32 typeInstCount, IntPtr[] methodInstantiationContext, Int32 methodInstCount)
   at System.ModuleHandle.ResolveMethodHandleInternal(RuntimeModule module, Int32 methodToken, RuntimeTypeHandle[] typeInstantiationContext, RuntimeTypeHandle[] methodInstantiationContext)
   at System.Reflection.CustomAttributeData..ctor(RuntimeModule scope, CustomAttributeRecord caRecord)
   at System.Reflection.CustomAttributeData.GetCustomAttributes(RuntimeModule module, Int32 tkTarget)
   at System.Reflection.CustomAttributeData.GetCustomAttributesInternal(RuntimeParameterInfo target)
   at System.Reflection.RuntimeParameterInfo.GetCustomAttributesData()
   at Microsoft.Azure.WebJobs.Host.Indexers.FunctionIndexer.<IsJobMethod>b__5(ParameterInfo p)
   at System.Linq.Enumerable.Any[TSource](IEnumerable`1 source, Func`2 predicate)
   at Microsoft.Azure.WebJobs.Host.Indexers.FunctionIndexer.IsJobMethod(MethodInfo method)
   at System.Linq.Enumerable.WhereArrayIterator`1.MoveNext()
   at Microsoft.Azure.WebJobs.Host.Indexers.FunctionIndexer.<IndexTypeAsync>d__0.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.Azure.WebJobs.Host.Indexers.FunctionIndexProvider.<CreateAsync>d__3.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.Azure.WebJobs.Host.Indexers.FunctionIndexProvider.<GetAsync>d__0.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task)
   at Microsoft.Azure.WebJobs.Host.Executors.JobHostContextFactory.<CreateAndLogHostStartedAsync>d__d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.Azure.WebJobs.Host.Executors.JobHostContextFactory.<CreateAndLogHostStartedAsync>d__0.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.Azure.WebJobs.JobHost.<CreateContextAndLogHostStartedAsync>d__12.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.Azure.WebJobs.JobHost.<StartAsyncCore>d__2.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.Azure.WebJobs.Script.ScriptHostManager.RunAndBlock(CancellationToken cancellationToken)
2016-11-18T20:07:45.913 Stopping Host

@JonCanning I'm assuming this is with the package reference, correct? Can you set a specific reference and point to 3.4.1?

By the way, the work that addresses this by allowing you to use a shared assembly (#r reference) has been merged but not released yet.

Still the same when setting a specific reference. Do you know when it will be released?

We hope to have it (at least in beta, which you could switch to) in about a week or so.

It's great this is fixed, but whatever changed has done this:
https://social.msdn.microsoft.com/Forums/sharepoint/en-US/db373923-129f-48d6-905a-ce1a42d54399/retrieve-the-loaderexceptions-property-for-more-information?forum=AzureFunctions
Can I set my apps to use an earlier version of the runtime until I can figure out a repro?

Yes, you can set your FUNCTIONS_EXTENSION_VERSION to ~0.9 in the meantime.
I took a closer look st this yesterday an I believe I found the issue. To test, you can disable your F# functions, particularly if you have multiple of them and they are being triggered, and try to compile and invoke one of the failing functions from the portal.
I was aldo able to repro this, so we'll have a fix out ASAP


Parameter optimization finished (w/o surface chem)

Using scipy.optimize.minimize, a routine was written to minimize the chi_sq between the model output and data from Owejan et. al. Three cases were used for different sets of parameters as listed below:
1.) Constant R_naf, theta, i_o, and offset for all Pt loadings
2.) Constant R_naf, theta, and offset for all Pt loadings. Instead of a constant i_o, parameters a and b were varied and i_o was treated as a linear function of Pt loading (i.e. i_o = aw_Pt + b).
3.) Constant theta, i_o, and offset for all Pt loadings. Instead of a constant R_naf, parameters c and d were varied and R_naf was treated as a power function of Pt loading (i.e. R_naf = (cw_Pt^d + 35) *1e3).
In all cases, the chi_sq values were reduced and shown to be lower than the fits done by hand. Strictly based on the chi_sq value, case 3 provided the best fit followed by case 2 and then case 1.
Note that this base case optimization was done still assuming a global reaction and before incorporating the surface chemistry into the Pt phase.

Alright, option 1 is now done. It didn't take much time to rerun since I already gave it a pretty good starting point from where it was before. It did improve the fit, slightly. The updated files have been committed and pushed to my param_opt branch (the one for this pull request).

Looks good - thanks!
For the record, you don't necessarily need to commit after running the model optimization - the commits are of the code, not necessarily the specific results.  No need to change anything, just "for future reference"...
Nice work!


first pass at a migration script for TDS

Description

Include a summary of the changes and the related issue.
Include relevant motivation and context.

Resolves #(issue)

No indices in this pass?


Fix bug with missing moving dates summary in shipments.

Description
Probably a product of some major refactoring a while ago, the call to get data about a shipment was changed from being made to the internal api to the public api. This resulted in the loss of the move_dates_summary object within a shipment for the homepage. This change has been reverted.
Also there were a few fixes for the logic around what statuses are completed.
Setup
Add any steps or code to run in this section to help others prepare to run your code:
make server_run
make client_run

Code Review Verification Steps

[x] Request review from a member of a different team.
[x] Have the Pivotal acceptance criteria been met for this change?

References

Pivotal story for this change

Screenshots

This looks good. I think we need to replace the use of [].includes() with includes from lodash as [].includes() isn't supported by IE 11.

On it!


Fails with jest

Using ViewPagerAndroid within a test fails with:
  ● Test suite failed to run

    Jest encountered an unexpected token

    This usually means that you are trying to import a file which Jest cannot parse, e.g. it's not plain JavaScript.

    By default, if Jest sees a Babel config, it will use that to transform your files, ignoring "node_modules".

    Here's what you can do:
     • To have some of your "node_modules" files transformed, you can specify a custom "transformIgnorePatterns" in your config.
     • If you need a custom transformation specify a "transform" option in your config.
     • If you simply want to mock your non-JS modules (e.g. binary assets) you can stub them out with the "moduleNameMapper" config option.

    You'll find more details and examples of these config options in the docs:
    https://jestjs.io/docs/en/configuration.html

    Details:

    node_modules/@react-native-community/viewpager/js/index.js:3
    export {default} from './ViewPagerAndroid';
    ^^^^^^

    SyntaxError: Unexpected token export

      at ScriptTransformer._transformAndBuildScript (node_modules/jest-runtime/build/script_transformer.js:403:17)
      at Object.<anonymous>

Adding the repos to transformIgnorePatterns solves the problem. But wouldn't it be better to transpile this to ES5 when bundling?

Hey @danilobuerger, thanks for your response, could you share an example of how to do this, specifically for react-native-viewpager.
I have tried adding this but no success.
  "transformIgnorePatterns": [
      "node_modules/(?!(jest-)?viewpager|react-native)"
    ],


Commands not found on version 0.8.4

It seems that 0.8.4 version is bugged in some way. No commands are working (D2.SomethingSomething command not found). Reinstallation does not help. Rolling back to 0.8.3 solves the issue.

I'm going to close this, same issue as #74 and the discussion ended up there.


Assets not visible for "Child Columns" (1.1)

Affected module
Glossary
Describe the bug

I have a table. A column of STRUCT type has 2 child columns
I have tagged the table, the primary column and the child columns with Glossary terms

ONLY the Glossary Terms tagging the Table and Primary Column, display Asset Info on the Glossary Term page.
To Reproduce

Create a table with child columns.
Tag with Glossary Terms the table, the Parent and the Children
Check  which terms display Asset

        {             "name": "Parent",             "dataType": "STRUCT",             "dataLength": 10,             "dataTypeDisplay": "struct",             "description": "Customer Number. Explicit search help attachment to field ",             "fullyQualifiedName": "testcc.ECC.LO.KNA1.Parent",             "constraint": "NOT_NULL",             "ordinalPosition": 3,             "children": [                 {                     "name": "Child",                     "dataType": "CHAR",                     "dataLength": 10,                     "description": "child",                     "fullyQualifiedName": "testcc.ECC.LO.KNA1.Parent.Child",                     "constraint": "NOT_NULL",                     "ordinalPosition": 1                 },                 {                     "name": "GrandChild",                     "dataType": "CHAR",                     "dataLength": 10,                     "description": "grandchild",                     "fullyQualifiedName": "testcc.ECC.LO.KNA1.Parent.GrandChild",                     "constraint": "NOT_NULL",                     "ordinalPosition": 2                 }             ]         }
Expected behavior
All terms used for tagging columns / tables should show asset
Version:

OS: [e.g. iOS]
Python version:
OpenMetadata version: [e.g.1.0]
OpenMetadata Ingestion package version: [e.g. openmetadata-ingestion[docker]==XYZ]

Additional context
Add any other context about the problem here.

Parent term tagged to column = shows asset
GrandParent term tagged to child column, assets 0

still a problem for 1.1

Hi, do we have a roadmap fix for this bug?

@harshach still not there for 1.1.3, yes?
Example out of Sandbox: https://sandbox.open-metadata.org/table/BigQueryProd.modified-leaf-330420.sdoh_cms_dual_eligible_enrollment.nested_struct
tagged struct column with https://sandbox.open-metadata.org/glossary/Lead.lead_address_city, but no assets is shown.

https://github.com/open-metadata/OpenMetadata/pull/13539 this will fix thie issue


fix: update jwt secret format

:tada: This PR is included in version 1.40.2 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


which variable of te_instruction_record_t means "retire"?

Asking this, because in Instruction deta trace algorithm diagram in spec, if next inst is exc_only , will sent te_inst : format0/1/2.
but in encoder-algorithm-public.c line 1085, for "if ***" I can't see the exception without retirement information or condition.
also, if a uninferable jump instruction following a exception with retirement, what kinds te_inst will the c encoder send out?
as we know, it should send out te_inst format 2 following te_inst format 3 sub1, but actually , the c encoder send out two te_inst format 2 following te_inst format 3 sub1, could you please help check it?
Thanks,
Lihua

Another question is , in hart interface, there is a signal "itype", then what value of itype can be used to indicate te_instruction_record_t.is_updiscon=1?

The interface supports signalling an exception with or without retiring the instruction which caused it. The reference flow should have cases that cover this.


chore(deps): update dependency typescript to v4

This PR contains the following updates:

Package
Type
Update
Change

typescript (source)
devDependencies
major
3.9.7 -> 4.0.3

Release Notes

Microsoft/TypeScript
v4.0.3
Compare Source
For release notes, check out the release announcement.
For the complete list of fixed issues, check out the

fixed issues query for TypeScript v4.0.0 (Beta).
fixed issues query for TypeScript v4.0.1 (RC).
fixed issues query for TypeScript v4.0.2.
fixed issues query for TypeScript v4.0.3.

Downloads are available on:

npm
Visual Studio 2017/2019 (Select new version in project options)
NuGet package

v4.0.2
Compare Source
For release notes, check out the release announcement.
For the complete list of fixed issues, check out the

fixed issues query for TypeScript v4.0.0 (Beta).
fixed issues query for TypeScript v4.0.1 (RC).
fixed issues query for TypeScript v4.0.2.

Downloads are available on:

npm
Visual Studio 2017/2019 (Select new version in project options)
NuGet package

Renovate configuration
:date: Schedule: At any time (no schedule defined).
:vertical_traffic_light: Automerge: Disabled by config. Please merge this manually once you are satisfied.
:recycle: Rebasing: Whenever PR becomes conflicted, or if you modify the PR title to begin with "rebase!".
:no_bell: Ignore: Close this PR and you won't be reminded about this update again.

[ ] If you want to rebase/retry this PR, check this box

Available now for Enterprise: Renovate Pro with real-time webhook handling and priority job queue.

PR has been edited
:construction_worker: This PR has received other commits, so Renovate will stop updating it to avoid conflicts or other problems. If you wish to abandon your changes and have Renovate start over you may click the "rebase" checkbox in the PR body/description.

PR has been edited
:construction_worker: This PR has received other commits, so Renovate will stop updating it to avoid conflicts or other problems. If you wish to abandon your changes and have Renovate start over you may click the "rebase" checkbox in the PR body/description.

we're suffering from https://github.com/microsoft/TypeScript/issues/40239. will be fixed in 4.1. closing for now.

Renovate Ignore Notification
As this PR has been closed unmerged, Renovate will ignore this upgrade and you will not receive PRs for any future 4.x releases. However, if you upgrade to 4.x manually then Renovate will then reenable updates for minor and patch updates automatically.
If this PR was closed by mistake or you changed your mind, you can simply rename this PR and you will soon get a fresh replacement PR opened.


Support for module imports and exports

Hey! I came across this project from a panic stacktrace I got when trying to use https://github.com/adamchainz/django-minify-html. Following that, I found that import and the different variants of export statements are still left as todo!(): https://github.com/wilsonzlin/minify-js/blob/eb27a22535a3bbef7c568a597bb7e470f1bc3797/rust/src/emit/mod.rs#L795
I wanted to ask whether support for these statements is planned anytime soon. Are there any particular problems, or has just no one come around to implementing it yet? In that case, I could also try to file a PR myself, it may take some time though. Until then, I already found the option to disable js minification when using minify-html
Looking forward to using your library. Thanks!

Any updates on this @wilsonzlin? I'd love to integrate JS minification into Perseus (a Rust web development framework), but this issue renders that infeasible at the moment.

I just implemented support in the latest version 0.2.0, try it out and let me know how it goes. Imports and exports are quite tricky to implement, and have some complex syntax and semantics, which is why I've delayed implementing it until now. If there are any issues with the implementation let me know, there's some more polishing I'd like to do in this area.

Fantastic, thank you very much! I'm using this library through minify-html, does that need a new version to update for this as well?

Yes, I've just released version 0.10.1 of minify-html  which contains the latest minify-js.

Perfect, I'll check it out later today!

@wilsonzlin everything's working with the basic examples in my framework now, and the others are running on CI at the moment. Looking great though, much appreciated!

Sounds great, I'll close this issue for now.


iltorb has been deprecated

according to iltorb's author:
The zlib module provides APIs for brotli compression/decompression starting with Node.js v10.16.0, please use it over iltorb

how to use zlib to initialize cacheable-response with option cache is true?

this package is using compress-brotli that can detect in a smart way Node.js iltorb or backup into npm package


add explicit @symbol highlight group

Contributing guidelines

[X] I have read CONTRIBUTING.md
[X] I have read CODE_OF_CONDUCT.md

Module(s)
base16
Description
While nvim-treesitter does export a lot of capture groups as built-in neovim groups, some are unaffected.
A particularly relevant one is the @symbol capture group, which refers to atoms (the most common term).
Atoms are essentially immutable strings with different comparison semantics, used in several languages such as Elixir, many lisps, and others.
They're very commonly used, and need to be differentiable from variables, but by default the highlight groups end up the same under Mini16.
I've achieved this in my theme temporarily using vim.api.nvim_set_hl(0, '@symbol', { fg = palette.base0E }), which roughly matches what non-compliant (since @symbol is the correct capture to use) grammars use.
The equivalent in base16.lua would be hi('@symbol', { fg=p.base0E, bg=nil, attr=nil, sp=nil}), which I would submit if I was sure that this is the desirable outcome.
While @symbol is the specific one of note for me today, it may be interesting to set up highlight groups for all the treesitter groups (though it is also out of scope for today).

Thanks for constructive suggestion! (And special thanks for opening an issue first and not PR straight away)
Around couple of weeks ago I'd reject right away, but since then I decided to add selective tree-sitter support. I'll take a look at what base color might suit best (base0C looks like a good option as it is used for Special which is described as "any special symbol") and update it myself.

Thanks again for suggestion! I decided to go with "same as Keyword" (the one you suggested), as it indeed seems to be the most appropriate choice here.


Imrpove DX on collection import

It would be beneficial to provide general functions getCollection and getXYZbySlug to eliminate the need for defining custom functions, as they often have similar structures for each collection.
The getCollection function should take the collection name as a parameter and return the entire collection.
The getXYZbySlug function should also take a parameter representing the slug. It should return the matching entry or execute specific code if the action fails, such as calling notFound().

Thanks for your idea!
I have considered generating some data access helpers, but the main reason I haven't implemented this feature is that each user's scenario may not be exactly the same. I prefer that Velite doesn't overly dictate how users should use it.
Maybe providing a recipe or code snippet in the document is a better choice.

@robinsmith-source anything else?


Symbol is not defined

Hi, im ussing squel 5.3.3 in Ionic , works in Browser but in a phone make this error, well here i include the both version of squel (minified and vanilla) but always i got that error.

If i use the version squel 4.4.1 give error in Browser in this line:
root.squel = factory();

What actual error message do you get with 4.4.1?

Hi
I'm having a similar problem using explorer, while on chrome everything works fine.
On explorer the problem was:
HTML1300: È stata eseguita la navigazione.
ex_squel.html
SCRIPT5009: 'Symbol' non è definito
squel.min.js (1,2447)
jQuery.Deferred exception: 'squel' non è definito ReferenceError: 'squel' non è definito
   at Anonymous function (http://localhost:8080/ex_squel.html:14:3)
   at mightThrow (http://localhost:8080/bower_components/jquery/dist/jquery.js:3508:10)
   at Anonymous function (http://localhost:8080/bower_components/jquery/dist/jquery.js:3576:12) undefined
SCRIPT5009: 'squel' non è definito
jquery.js (3793,3)

The code of the page used for manual testing is:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>testing squel.js</title>

<script src="bower_components/jquery/dist/jquery.min.js"></script>
<script type="text/javascript" src="bower_components/squel/dist/squel.min.js"></script>

<script type="text/javascript">
	$(function() {
		var sql = squel.select().from('example_table');
		console.log(sql);
	});
</script>

</head>
</html>

where I'm using the latest libraries versions, gathered from bower:
bower install jquery
bower install squel

What version of IE are you using?

Hi
I'm having issues over Exporer 11 (11.212...), while on the latest Chrome (still on win 10) it works correctly

Hmm this is clearly due to a lack of support for the Babel translation of the for-of iterator, which uses Symbols. Perhaps I can rewrite these loops.

Yep, IE doesn't support it -> https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol/iterator

Edge does support it, but not Android browsers -> https://kangax.github.io/compat-table/es6/

The strange thing is that squel.js actually shims Symbol at the top.

Hi,
Getting the same issue in Android 5.0. Can you please inform the fix, or which line causes the issue in squel.js?
Thank you.

This also isn't supported in Safari

I'm still seeing this issue on a number of browsers. What do you think the issue is? I will dig some more. Thanks!

I found this helpful: http://stackoverflow.com/a/33831169/2805018
<script src="https://cdnjs.cloudflare.com/ajax/libs/babel-core/5.6.15/browser-polyfill.min.js"></script>


FSMKeyField does not prevent direct state field modification when protected=True

I have a FSMKeyField set with protected=True, however it does not raise AttributeError when the field is edited directly.
class DbState(models.Model):
    id = models.CharField(primary_key=True, max_length=50)
    label = models.CharField(max_length=255)

    def __unicode__(self):
          return self.label

class BlogPost(models.Model):
     state = FSMKeyField(DbState, default='new', on_delete=models.CASCADE, **protected=True**)

model = BlogPost()
model.state = 'invalid' # doesnt raise AttributeError

It seems that under the class  FSMFieldDescriptor’s set function, instance.dict references the field name with a prefix “_id” when it’s a foreign key. That’s why it didn’t get through to raise the AttributeError

@chrisnghs were you able to get this working?   Do you have a patch?
@kmmbvnr I think protected=True is a pretty valuable feature for maintaining state/transition data integrity.  Would be nice to get this fixed.  I've only been POCing the project, but if I wind up using it in production I'll look into it myself.

@chrisnghs were you able to get this working? Do you have a patch?
@kmmbvnr I think protected=True is a pretty valuable feature for maintaining state/transition data integrity. Would be nice to get this fixed. I've only been POCing the project, but if I wind up using it in production I'll look into it myself.

@yekibud i haven't yet actually, cause there weren't much instances that we are editing directly on the field itself

FSMKeyField is actually newer works properly. Closing this since not enough resource to fix


Consistent 12/24 hour clock in DateTime ticks

Purpose:
#2132
This solution detects if a locale uses a 24-hour clock and adjusts some hard-coded time formats to generate 24-hour times.

Also discussed (but not acted upon) in #2132 was how the format of times involving milliseconds is not locale aware.
For example, under the locale fr-CA (Canadian French), we would generate the time 23:59:59.999, but we should generate 23h59m59.999 (I think, depends how well I remember from French class).


Instrument class validator in the proxy.create_instrument

The instrument_class send from proxy to server needs to be checked in the proxy side first.(i.e. check if the class and driver exist or not )

See
Duplicate of #2


Can`t install

There was three errors:

gyp info it worked if it ends with ok
gyp info using<EMAIL_ADDRESS>gyp info using<EMAIL_ADDRESS>| linux | x64
gyp http GET https://atom.io/download/electron/v2.0.9/iojs-v2.0.9.tar.gz
gyp WARN install got an error, rolling back install
gyp ERR! install error
gyp ERR! stack Error: getaddrinfo EAI_AGAIN gh-contractor-zcbenz.s3.amazonaws.com:443
gyp ERR! stack     at Object._errnoException (util.js:1024:11)
gyp ERR! stack     at errnoException (dns.js:55:15)
gyp ERR! stack     at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:92:26)
gyp ERR! System Linux 4.18.0-10-generic
gyp ERR! command "/usr/share/atom/resources/app/apm/bin/node" "/usr/share/atom/resources/app/apm/node_modules/node-gyp/bin/node-gyp.js" "install" "--runtime=electron" "--target=2.0.9" "--dist-url=https://atom.io/download/electron" "--arch=x64" "--ensure"
gyp ERR! cwd /home/khuzha/.atom
gyp ERR! node -v v8.9.3
gyp ERR! node-gyp -v v3.4.0
gyp ERR! not ok

Second:

npm ERR! code EAI_AGAIN
npm ERR! errno EAI_AGAIN
npm ERR! request to https://www.atom.io/api/packages/atom-ternjs/versions/0.18.3/tarball failed, reason: getaddrinfo EAI_AGAIN www.atom.io:443
npm ERR! A complete log of this run can be found in:
npm ERR!     /home/khuzha/.atom/.apm/_logs/2018-10-31T20_07_10_772Z-debug.log

Third:

npm ERR! code EAI_AGAIN
npm ERR! errno EAI_AGAIN
npm ERR! request to https://codeload.github.com/tststs/atom-ternjs/legacy.tar.gz/v0.18.3 failed, reason: getaddrinfo EAI_AGAIN codeload.github.com:443
npm ERR!


Fix crc bootstrap guide for chains/ec development

If you don't start the enterprise-contract app you won't get the
enterprise contract controller and its related CRD which is used by
EC for defining policy configuration.

/lgtm

/retest


Graylog dashboard that aggregates logs

As a scientist I would like to see all issues across the stack on the beamline. As such I would like a single graylog page that shows logs from:

Odin
Hyperion
Analysis

This is going to be a very chatty log so maybe by default have it set to warnings/errors.
Acceptance Criteria

There is a graylog dashboard that contains logs from software running on i03
Logs for software running on other beamlines is not included

FYI @graeme-winter and @ndevenish, not sure how easy it would be to filter logs per beamline in anlaysis land

An initial first draft https://graylog.diamond.ac.uk/dashboards/66900671c6a24a627ef46e9e. You have GDA, eiger and hyperion (but only when you switch to the new version) in there. I appreciate this needs improvement:

Need to get rid of all the PUT messages from the eiger, these should be debug, not error
The eiger also produces a lot of Failed to parse a JSON response: messages I made https://github.com/dls-controls/eiger-detector/issues/22 to take a look at this
GDA produces a bunch of errors on the motor when the robot is loading/unloading - I'm not going to put too much effort into this unless we see the same errors in hyperion


Bride Model

Two men enter, one man leave

@jcasado6 + @Adam-DeLessio - based on client feedback, I'm deleting the bride model. It's good in theory but in practice, they only want to be emailed the bride's information as a sales lead, not storing the data into our site.
And even if they did want to store the data, we'd use something like a CRM - maybe salesforce? - to do it. A CMS could do this job, it just doesnt make a lot of sense.


pd-client: add request duration metric

What's the different with CmdDuration metric?

cmdDuration measures only the RPC duration, but we encounter a problem when the cmdDuration  seems find but GetTS() takes very loog.
requestDuration measures the whole cost of the request.

LGTM

PTAL @overvenus


"Starting TSDB ..." log message contains a newline

What did you do?
Downloaded and ran latest version of Prometheus (2.24.1)
What did you expect to see?
Various logs, one per line.
What did you see instead? Under which circumstances?
level=info ts=2021-02-06T09:50:22.517Z caller=main.go:738 msg="Starting TSDB ...
"

Environment

System information:
Darwin 18.7.0 x86_64

Prometheus version:
prometheus, version 2.24.1 (branch: HEAD, revision: e4487274853c587717006eeda8804e597d120340)
build user:       root@0b5231a0de0f
build date:       20210120-00:18:07
go version:       go1.15.6
platform:         darwin/amd64

Weird, can't reproduce it anymore. Probably a terminal issue.


Connection Session Ending Abruptively

Hello,
Me and my team are trying to work on the same collaboration session but lately it keeps on kicking us out of the collaboration session after about one minute. We've tried everything, even changed the internet connection, but nothing seems to help. Any clues why this error pops up?
Regards,
Miro

Hey @Miro8896 , I'm sorry to hear that. It looks like one of your extensions is causing a stack overflow and crashing VS Code's extension host process.
I can't quite tell if it's Live Share. It might be possible that there's some bad interaction going on between Live Share and one of your other extensions. Could you try disabling all other extensions except for Live Share and see if you still have this problem?

Hello,
We also noticed that we are getting kicked when we try to search css related code. For example, I tried searching 'form--inline' and immediately after that, we get kicked. Might be some other cases too. This is the only search that we noticed.

Have you noticed any patterns around when you get disconnected? E.g. is it right after running a command in the terminal? Or does it seem to happen randomly?

Hello @daytonellwanger,
The pattern we noticed is that it happens more frequently when we're searching for specific files and folders. I'm not sure why specifically those ones, they either may have been removed or are not synchronized with the host, but that's the only sort of pattern we noticed. Sometimes it happens randomly, but, for instance, we had one specific line of code that, if we searched by it, it'd crash every time, hence this conclusion. Hope this information offers some sort of a lead.
Regards,
Miro.

That's super helpful! Even now, if you start a new session, does searching by that problem line of code still crash the session?
Your logs might contain helpful info. You can grab them by running the Live Share: Export Logs command from the command palette (ctrl+shift+p) (we clean them up every 2 days though. So if your bad session was more than two days ago, it won't be included).

Apologies for the delay here. As is, this issue doesn’t have enough information to be reproduced. Please reopen if the issue persists with necessary details. Thank you


Edit README

Edit README
User Story
As an employer
I want to view a potential employee's deployed portfolio of work samples
So that I can obtain a quick summary of his portfolio in the README file
Acceptance Criteria
Given the portfolio's github address,

When I view the README for the repository,
Then I can see a professional README that provides information about the portfolio.

Developed a professional README file


Error if searching an non existing user

Hi,
I get an error if i search a user that is not on Keybase.io
$ keybase search stefano   #search for a existing name
stefano github:steadicat
stefanobaghino twitter:stefanobaghino github:stefanobaghino reddit:stefanobaghino hackernews:stefanobaghino coinbase:stefanobaghino http:://baghino.me
[…]

$ keybase search UnknownName   #search for a unknown name
▶ ERROR missing non-optional field uids (bad fields: uids) (error 100)

thanks for the bug report! putting it into our issue tracker, we'll update you when it's licked.


Increases the GCE machine type to n1-standard-8 for mlab-staging

We are currently experiencing a memory issue on the script-exporter in mlab-staging; it runs out, invoking the oom-killer, taking down the Docker containers. Until we can figure out the root cause, this PR will up the memory substantially. This can likely be undone once we figure out why memory usage is spiking.

This change is

Reviewed 1 of 1 files at r1.
Review status: :shipit: complete! 1 of 1 LGTMs obtained

Comments from Reviewable


VSL-26: Added test case with 20 signers

Based on branch jackson/VSL-43-events
Added util function that creates an array of signers
Added verification for signers in TestTreasurySetup
Added TestTransferTokensToAccountActionsWith20Signers which has the same flow as TestTransferTokensToAccountActions but has 20 signers

Created new branch from the same repo


Turn off default cert verification in attack function

Starting in 2.7.9, urllib and urllib2 have certificate verification enabled by default. If the target server uses a self-signed cert, attack raises a URLError. This PR provides the context argument to urllib2.urlopen to disable certificate verification.
See https://www.python.org/dev/peps/pep-0476/

with that correction I get: "AttributeError: 'module' object has no attribute '_create_unverified_context'"
If I remove it from the code it works.

Fixed in https://github.com/newsapps/beeswithmachineguns/pull/117. Sorry bout that.