stackImagePositionSynchronizer should only synchronize images on approximately the same plane

I've had a number of users report to me directly that the stackImagePositionSynchronizer exhibits unexpected behavior. For example:

Two axial stacks
Two coronal stack

When scrolling one of the axial stack's, I would expect the other to update it's image to the closest slice. I would expect both coronal stack's, because their for a different orientation, to remain on their current image.
Unfortunately, in some instances, we stacks in other orientations "jump" to a new image. Often the first or last one in their stack.
We can accomplish this by updating the synchronizer to discount images that aren't in the same orientation. I think the math here is making sure the row dot product and column dot product are ~1 for the two images being compared (the source image, and each target image in the stack)

We are implementing this function as a new command in our (public) fork¹ of OHIF (a toggle synchronizer command) and we are having the same problem.
¹ https://gitlab.nursoft.cl/foss/ohif-viewer

You can have multiple synchronizers and it is up to the developer to decide
which stacks should be synchronized in this manner.  Stacks often have
images in the same orientation, but not always (e.g. 3 plane localizer, MRA
3D rotation, etc).  I don't think it is cornerstone's responsibility to
decide which stacks should and should not be synchronized.  It is
cornerstones responsibility to document how the synchronization behavior
works and to caution developers against using it improperly (e.g. blindly
add all stacks to a single synchronizer)
On Tue, Feb 23, 2021 at 11:20 AM rmasad<EMAIL_ADDRESS>wrote:

We are implementing this function as a new command in our (public) fork¹
of OHIF (a toggle synchronizer command) and we are having the same problem.
¹ https://gitlab.nursoft.cl/foss/ohif-viewer
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/cornerstonejs/cornerstoneTools/issues/980#issuecomment-784364882,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAJVXWX4ZSBV5GWHNWSOR2DTAPPWBANCNFSM4HY7VPLA
.

We are implementing this function as a new command in our (public) fork¹ of OHIF (a toggle synchronizer command) and we are having the same problem.
¹ https://gitlab.nursoft.cl/foss/ohif-viewer

Im unable to access your public fork of OHIF....can you kindly fix the link

Hi @ranasrule. Yesterday we had some problems with our Gitlab server, now it's back online. Please try again, sorry for the inconveniences.

Hi @ranasrule. Yesterday we had some problems with our Gitlab server, now it's back online. Please try again, sorry for the inconveniences.

thank you...I can access it fine now and have been able to build the source but get the following when I open any study

@racacere could you help me out with this please?

Sorry for the delay, we change the repository url to: https://gitlab.nur.dev/foss/ohif-viewer
You can see the change in: https://gitlab.nur.dev/foss/ohif-viewer/-/commit/6167cbd5731013382d0b29cc1aac6e549ab8ab7d#1d12cde93c37b86545343949bdce2a625b44dbce_0_70

Sorry for the delay, we change the repository url to: https://gitlab.nur.dev/foss/ohif-viewer
You can see the change in: https://gitlab.nur.dev/foss/ohif-viewer/-/commit/6167cbd5731013382d0b29cc1aac6e549ab8ab7d#1d12cde93c37b86545343949bdce2a625b44dbce_0_70

Which change are you referring to? Does the code in your repository contain 3d reconstruction feature?

Hi @ranasrule,
I'm very sorry for the response delay. The commit mentioned above, is our implementation of the solution to the scroll synchronization error between viewports. In brief, we added a sync botton to the toolbar when two or more viewports are active and that component has the needed logic to sync the viewports in a correct way.
The error that you described earlier is because we use a custom field in the ohif settings that indicates the study instance UID that you want to visualize, here are an example of this settings:
  ...
  servers: {
    dicomWeb: [
      {
        name: 'SomeName',
        wadoUriRoot: 'https://example.com/wado',
        qidoRoot: 'https://example.com/dicom-web',
        wadoRoot: 'https://example.com/dicom-web',
        qidoSupportsIncludeField: true,
        imageRendering: 'wadouri',
        thumbnailRendering: 'wadouri',
        enableStudyLazyLoad: true,
        supportsFuzzyMatching: true,
        studyInstanceUids: [
          '1.2.840.113619.2.278.3.2832275436.975.1617744955.830',
        ],
      },
    ],
  },
  ...

Best regards.

你好@ranasrule,
对于响应延迟，我深表歉意。上面提到的commit，就是我们对viewports之间滚动同步错误的解决方案的实现。简而言之，当两个或多个视口处于活动状态并且该组件具有以正确方式同步视口所需的逻辑时，我们在工具栏中添加了一个同步按钮。
您之前描述的错误是因为我们在 ohif 设置中使用了一个自定义字段，该字段指示您要可视化的研究实例 UID，以下是此设置的示例：
  ...
  servers: {
    dicomWeb: [
      {
        name: 'SomeName',
        wadoUriRoot: 'https://example.com/wado',
        qidoRoot: 'https://example.com/dicom-web',
        wadoRoot: 'https://example.com/dicom-web',
        qidoSupportsIncludeField: true,
        imageRendering: 'wadouri',
        thumbnailRendering: 'wadouri',
        enableStudyLazyLoad: true,
        supportsFuzzyMatching: true,
        studyInstanceUids: [
          '1.2.840.113619.2.278.3.2832275436.975.1617744955.830',
        ],
      },
    ],
  },
  ...

Hello, it is like this. I want to realize the function of synchronization window, so I referred to the code file you submitted to realize it, but it is a pity that there is no effect, I don't know what is wrong with me. When multiple Windows are displayed, the link icon of synchronization can appear, but clicking on it cannot achieve the effect of synchronization window. Before this, I realized the function of reference line by referring to others' files, but the function of synchronization window can not be well implemented. I hope the author can give guidance, thank you very much.

最好的祝福。

Hello, it is like this. I want to realize the function of synchronization window, so I referred to the code file you submitted to realize it, but it is a pity that there is no effect, I don't know what is wrong with me. When multiple Windows are displayed, the link icon of synchronization can appear, but clicking on it cannot achieve the effect of synchronization window. Before this, I realized the function of reference line by referring to others' files, but the function of synchronization window can not be well implemented. I hope the author can give guidance, thank you very much.


sweeper: relax anchor sweeping when commitment is confirmed

This PR prepares for #7549. It changes how a non-force input sweeping is done. Previously, given a non-force input, when included in a sweeping tx, if its change output is below dust, we'd supply a wallet utxo to bump the change output so the sweeping can happen. This is unnecessary when the input has no deadline pressure, and often results in locking a wallet utxo unexpectedly.
A second change is, when supplying a wallet utxo to a force sweeping, we'd always try the smallest utxo first, which provides a chance to aggregate the small wallet utxos and keep the larger utxos available for other purposes.
There's also an attempt to make the anchor sweeping configurable #7939, which I think we could instead make it configurable so that users can decide to attach a wallet utxo to sweep the anchors or not.
NOTE: itest won't pass atm, looking for feedback first.

think we will have problems with HTLC-Success Transactions because we should only sweep them if they are economical and they might have zero-fees

We always need to sweep them (assuming you're referring to second level HTLC transactions). Otherwise if we don't, then we can trigger loss of funds if the outgoing link sweeps with preimage (after we go on chain), and we fail to sweep in the incoming link (after we had force closed for w/e reason).

Re the anchor issues, right now we always add force when we go to sweep them after we detect that we broadcasted the commitment (user or chain trigger): https://github.com/lightningnetwork/lnd/blob/90effda090e752662500aa47eaed8b8619687e4e/contractcourt/channel_arbitrator.go#L1325-L1345
Instead, we should only upgrade to force once we think it's actually needed. Implementation wise, this may allow us to bite off a smaller piece of the sweeper deadline awareness, but only for anchor outputs. Rather than insert this at the core of the sweeper, we'd have the anchor resolver listen for block epochs, then re-offer the anchor inputs with force and increasing fee rates until confirmed.
Thoughts?

The anchor resolve is then created+launched after something confirms. This one tries to sweep at 1 sat/byte: https://github.com/lightningnetwork/lnd/blob/90effda090e752662500aa47eaed8b8619687e4e/contractcourt/anchor_resolver.go#L87-L122
I think the primary goal of this PR was to stop this variant (which is always offered) from taking up wallet input to confirm the various versions?
Alternatively, we can also try to cancel the old anchor versions once something confirms. Once a commitment confirms, we know exactly which versions we want to sweep, so we can give up on the others.

There might be a slight danger here though, if by the time we realize we need to bump the fee, the transactions has already fallen out of the mempool. IMO, this'll always apply to any scenario related to fee bumping, as without package relay, we can't ensure that the parent is still "in the mempool".

We need to track why a potential Force-Close is failing to get into mempool, because we might want to launch the CPFP operation of the Remote Commitment if our FC is not allowed into mempool because another transaction already spents the funding output? Meaning that we need launch also the CPFP operations for the Remote Commitment (+remote dangling one) or at least check whether those are in our mempool prior to launching the Anchor CPFPs?

Updated the PR to relax on deadline-aware anchor sweeping. It changes the sweeper from always sweeping anchor for a local force close to only do so when there is an actual time pressure. This doesn't completely solve the issue that we may lock up a wallet UTXO to sweep an anchor using a very low fee rate - need more investigation and possibly a refactor on the sweeper.

We always need to sweep them (assuming you're referring to second level HTLC transactions). Otherwise if we don't, then we can trigger loss of funds if the outgoing link sweeps with preimage (after we go on chain), and we fail to sweep in the incoming link (after we had force closed for w/e reason).

This is true prior to the fee spikes. I think after the fee spikes, it becomes conditional as it can be uneconomical to sweep the HTLC.

There might be a slight danger here though, if by the time we realize we need to bump the fee, the transactions has already fallen out of the mempool

Think this is handled by our rebroadcaster?

@yyforyongyu, remember to re-request review from reviewers when ready

@roasbeef: review reminder
@crypt-iq: review reminder
@ziggie1984: review reminder

updated release notes


Passing the  NN model to Spark

Passing the NN model that uses Google word2vec model to Spark throws an OutofMemory exception. The size of the word2vec model is almost 4GB and Spark needs extra 4GB as it serializes the model and creates another instance of it that is going to be used on the executor node (the same machine on our case).

we need to change the way we perform model evaluation


Release version 4.1

Reopened to trigger the changelog CI

Thank you, I intend to do the review and release the new version next week.


Clarify In/Out terminology

Commented here: https://github.com/tokio-rs/tokio-proto/pull/62#discussion_r82087908
I personally interpret in/out with one of two interpretations:

Read out a request, write in a response.
Read in a request, write out a response.

Unfortunately these mean opposite things :(. Looks like this is standard terminology in finagle though? (cc https://github.com/tokio-rs/tokio-proto/pull/62#discussion_r82124234). Maybe I should just shift how I view these?
(may also be worth exploring alternative names)

FWIW, in hyper I have the concept of Incoming vs Outgoing. This distinction appears in other HTTP libraries that I've looked at. This causes a very odd-looking case:
impl<T> FramedIo for Conn<T> {
    type In = T::Outgoing;
    type Out = T::Incoming;
    // ...
}

In my terminology, In = message going into the socket, Out = "message coming out of the socket"
What is incoming / outgoing in your case?

Incoming = message incoming to this machine, Outgoing = message going out from this machine.

This is confusing every time for me. I don't think inverting the in/out cases would make it any more intuitive.

Usually seen as the second choice: Read in a request, write out a response. I think it would be very confusing the other way around.
This matches Finagle Service definitions Finagle Services as well as Wangle (and pretty much any socket library I've worked with for what it's worth).
What I don't see or haven't wrapped my head around is the filters part of Framing for tokio. I know I've gone back and forth with @carllerche on this in https://github.com/tokio-rs/tokio-proto/issues/63 and gitter but embedding the types that way seems rather limiting and requires lots of boilerplate and manual plumbing.

There is no more In / Out.

There is in Codec. Is it worth reopening this in tokio-core, or is it less ambiguous in that usage?

@tikue sure yeah, I've opened one: https://github.com/tokio-rs/tokio-core/issues/135


trying to integrate a database / RuntimeError: Database2 needs a session!

I am trying to connect a form to a database, a very common practice on the web.
If I understand the docs correctly, my database code should live in a PyComponent object. So my idea was to populate some flexx variables there so that they can send events to the GUI part.
I tried to start the database part first, like so:
if __name__ == '__main__':     dbp = Database()     m = flx.launch(ThemedForm, 'chrome-app')     flx.run()
But I get this error: RuntimeError: Database2 needs a session!
I must be doing something wrong here...

What you want to do looks a bit like this section in the guide. In short. PyComponents also must be created in the context of a session. Something like so:
class Database(PyComponent):
    ...

class MyApp(PyComponent):
    def init(self):
        self.db = Database()
        self.ui = ThemedForm()

flx.launch(MyApp)

I tried to follow the example but it does not work for me. The button in the form should trigger a change in the 'command' text object (residing in the database class), but it does not.
class ThemedForm(flx.Widget):
    .........
   @flx.reaction('but1.pointer_click')
    def but1_clicked(self, *events):
        self.b4.set_text('clicked')
        self.root.database.set_command('but1')

class Database(flx.PyComponent):  # Lives in Python
    print('in database')
    # triggers the query
    command = flx.StringProp(settable=True)
    # result back to form
    iddb = flx.IntProp(0, settable=True)

    csdb = db()

    @flx.reaction('command.text')
    def do_query(self, *events):
        print(self.command)
        instr = csdb.select("select rowid from templates where name ='Single with effects'")
        self._mutate_iddb(instr[0]['rowid'])

# if I change the base type to flx.Widget I get
# "Cannot instantiate a PyComponent from JS. "
class MyApp(flx.PyComponent):
    database = flx.ComponentProp()

    def init(self):
        self.ui = ThemedForm()
        self._mutate_database(Database())

Ok, that seems to work. But now for the final part: How do I get the result of the query back to the form?

I got it...
# in the form:
    @flx.reaction('root.database.iddb')
    def get_result(self, *events):
        print(self.root.database.iddb)
        self.b5.set_text(str(self.root.database.iddb))

class Database(flx.PyComponent):  # Lives in Python
    # result back to form
    iddb = flx.IntProp(0, settable=True)

This is great!

Exactly! And notice how the database component stays completely unaware about the UI :)


multipledispatch: init at 0.4.8

No output has been received in the last 10 minutes, this potentially indicates a stalled build or something wrong with the build itself.
The build has been terminated

Package builds.
Couldn't import though, see #8635

I'm able to import it. Not sure what are you doing wrong with nix-shell :)


Fix some scrolling issues for question list view

This change is

You have written css in custom.css, and you used general selectors like : .mdl-cell.mdl-cell--2-col.r-border or .mdl-cell.mdl-cell--2-col.r-border .pt-20 . CSS classes with prefix "mdl" are classes from material design, we should not add properties to this, it will overwrite everywhere, mdl-cell is related to grid, so grid might break everywhere. You could have added new custom class like "fix-scroll", "gru-fix" or anything to avoid this.
"pt-20" is generic class, whose purpose is to give padding-top:20px to the element, if we need 10px padding then, we will change the html to pt-10, then the css for fixing scroll will not be applied since class has been changed from .pt-20 to .pt-10.
So avoid adding css to generic classes, because they are used everywhere.
About the js:
$container = $("#question-listing div.mdl-cell.mdl-cell--10-col.pl-30")
You don't need that much specificity to get the element. This can be reduced to
$container = $("#question-listing"), since there will be only one "question-listing" id.
Avoid finding DOM elements using general classes, because they are tends to change, like we might change pl-30  to pl-20 or remove it, then the jQuery selector will fail
You have bind the click event on ".side-tabs", which is also seems like general class. We can have side tab on multiple pages. And clicking on it, will try to find "question-listing" id, which won't be available everywhere. Either add a custom class like "side-tabs question-tabs" and bind event to ".question-tabs" or make this feature generalised, by making it to scroll to "mdl-tabs__panel" class, which is the container of the tab's content (This scrolling effect will be applied to every side tabs without breaking because mdl-tabs__panel will be everywhere).


ESP8266 Support

I bought an Android Radio, I will make an App for showing the Data like an Car Computer.
Is it possible that you include an String on Serialout or via UDP ESP8266?
What do you think about that Idea? It would be possible to use an old Android Phone instead of LCD or MID.

I had planned this option for a tablet (or similar device)... I will rush some other test and will develop protocol

maybe using serial protocol (like serial call response) its possible use on android app (i  did some tests with arduino usb library) on my project mid. Pretty amateur compared to fire1 project.

hello youtube video I watched you say you were done. what you need to send as a part of the scheme.

I'd like to ask other persons.
Who did this project.
I couldn't work it. Firstly, my lcd doesn't work.

How can i save trip data?
could you explain ?

I had planned this option for a tablet (or similar device)... I will rush some other test and will develop a (Serial) protocol . Also an Android app was in my plan, for information/navigation transfer (something like dock mode )
Now Arduino USB port is used as phone charger and sketch uploads (in my project), i try several types of connection with USB OTG but without any success.
Stay tuned for more info.

You did it?

Still not ready... When Android app is ready then will be done...
(Do not any free time to work over ArduinoMid the project)


RuntimeException(code: 0): Unable to save frame

Q
A

Bug?
yes

New Feature?
no

Version Used
0.13

FFmpeg Version
ffmpeg version n4.1.3 Copyright (c) 2000-2019 the FFmpeg developers

OS
Linux

Actual Behavior
[2019-04-16 22:42:36] local.ERROR: Unable to save frame {"exception":"[object] (FFMpeg\\Exception\\RuntimeException(code: 0): Unable to save frame at /srv/http/project/vendor/php-ffmpeg/php-ffmpeg/src/FFMpeg/Media/Frame.php:132, Alchemy\\BinaryDriver\\Exception\\ExecutionFailureException(code: 0): ffmpeg failed to execute command '/usr/bin/ffmpeg' '-y' '-ss' '00:00:01.00' '-i' '/srv/http/project/storage/app/media/root1.webm' '-vframes' '1' '-f' 'image2' '/srv/http/project/storage/app/images/media/7.jpg' at /srv/http/project/vendor/alchemy/binary-driver/src/Alchemy/BinaryDriver/ProcessRunner.php:100)

Expected Behavior
Successful instead of ExecutionFailureException.
This is what happens when you execute it manually:
'/usr/bin/ffmpeg' '-y' '-ss' '00:00:01.00' '-i' '/srv/http/project/storage/app/media/root1.webm' '-vframes' '1' '-f' 'image2' '/srv/http/project/storage/app/images/media/7.jpg'
ffmpeg version n4.1.3 Copyright (c) 2000-2019 the FFmpeg developers
  built with gcc 8.2.1 (GCC) 20181127
  configuration: --prefix=/usr --disable-debug --disable-static --disable-stripping --enable-fontconfig --enable-gmp --enable-gnutls --enable-gpl --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libdrm --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libiec61883 --enable-libjack --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxcb --enable-libxml2 --enable-libxvid --enable-nvdec --enable-nvenc --enable-omx --enable-shared --enable-version3
  libavutil      56. 22.100 / 56. 22.100
  libavcodec     58. 35.100 / 58. 35.100
  libavformat    58. 20.100 / 58. 20.100
  libavdevice    58.  5.100 / 58.  5.100
  libavfilter     7. 40.101 /  7. 40.101
  libswscale      5.  3.100 /  5.  3.100
  libswresample   3.  3.100 /  3.  3.100
  libpostproc    55.  3.100 / 55.  3.100
Input #0, matroska,webm, from '/srv/http/project/storage/app/media/root1.webm':
  Metadata:
    encoder         : Lavf53.17.0
  Duration: 00:00:05.57, start: 0.000000, bitrate: 329 kb/s
    Stream #0:0: Video: vp8, yuv420p(progressive), 560x320, SAR 1:1 DAR 7:4, 30 fps, 30 tbr, 1k tbn, 1k tbc (default)
    Stream #0:1(eng): Audio: vorbis, 48000 Hz, mono, fltp (default)
Stream mapping:
  Stream #0:0 -> #0:0 (vp8 (native) -> mjpeg (native))
Press [q] to stop, [?] for help
[swscaler @ 0x56468fac3a00] deprecated pixel format used, make sure you did set range correctly
Output #0, image2, to '/srv/http/project/storage/app/images/media/7.jpg':
  Metadata:
    encoder         : Lavf58.20.100
    Stream #0:0: Video: mjpeg, yuvj420p(pc), 560x320 [SAR 1:1 DAR 7:4], q=2-31, 200 kb/s, 30 fps, 30 tbn, 30 tbc (default)
    Metadata:
      encoder         : Lavc58.35.100 mjpeg
    Side data:
      cpb: bitrate max/min/avg: 0/0/200000 buffer size: 0 vbv_delay: -1
frame=    1 fps=0.0 q=5.5 Lsize=N/A time=00:00:00.03 bitrate=N/A speed=3.17x
video:18kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown

Steps to Reproduce
$ffmpeg = FFMpeg\FFMpeg::create();
$video = $ffmpeg->open('video.mpg');
$video
    ->filters()
    ->resize(new FFMpeg\Coordinate\Dimension(320, 240))
    ->synchronize();
$video
    ->frame(FFMpeg\Coordinate\TimeCode::fromSeconds(10))
    ->save('frame.jpg');

Possible Solutions
Downgrading ffmpeg to n4.1.2.
Thanks, please let me know if you need (more) debug info.

I cannot reproduce it on n4.1.3 on Arch Linux (Kernel: 5.0.7-arch1-1-ARCH). Could you please provide files you can reproduce with?

@jens1o Thanks for your reply.
It's a bit strange, for some reason it fails on the same file (checksum matches), although the location differs. Could this be a filesystem issue (permissions, etc.)?
Is there any way to get more debug info?

Yeah, could be. Please make sure the files are located in a directory the user owns the files.

@jens1o Thanks, I'll investigate and let you know.

@jens1o It was indeed a permission issue! After starting with a fresh setup (chmod, chown, ACL ..), everything works fine and the error is gone. :)

Glad it works for you now! Thank you for coming back!


formControl directive doesn't fully work on ngx-radiobutton-groups

When assigning a formControl to a ngx-radiobutton-group, the value it originally holds is not reflected by checking its children, as ngModel does.
As extra insight, it seems like it does update the formControl when selecting a new children, although that would have to be verified.

Should be fixed in #717


Build a PAPR!

As I've learned more about the risk of high pressure care, it's definitely not for the faint of heart and can continue as an engineering thread.
I wanted share a much lower risk, less controversial application of the same parts - which is a Powered Air Purifying Respirator (PAPR).
https://github.com/jcl5m1/ventilator/wiki/Build-a-Low-Cost-PAPR

Just a quick thought: Changing the configuration to push air through the filter, and having only the hose and the mask after the filter would turn any leakage from a safety issue into an efficiency problem. In the design you propose, leakage in the fitting between the filter and the pump or in the pump itself might cause the system to pull in contaminated air.
<-----------------+------------------------>
Negative Pressure |   Positive Pressure

    +------+   +----+                 +----+
    |Filter+---+Pump+-----------------+Mask|
    +------+   +----+                 +----+

               +----+   +------+ Hose +----+
               |Pump+---+Filter+------+Mask|
               +----+   +------+      +----+

ah, good point.
On Fri, Mar 20, 2020 at 2:25 PM Christoph Bonitz<EMAIL_ADDRESS>wrote:

Just a quick thought: Changing the configuration to push air through the
filter, and having only the hose and the mask after the filter would turn
any leakage from a safety issue into an efficiency problem. In the design
you propose, leakage in the fitting between the filter and the pump or in
the pump itself might cause the system to pull in contaminated air.
<-----------------+------------------------>
Negative Pressure |   Positive Pressure
+------+   +----+                 +----+
|Filter+---+Pump+-----------------+Mask|
+------+   +----+                 +----+

           +----+   +------+ Hose +----+
           |Pump+---+Filter+------+Mask|
           +----+   +------+      +----+

—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/jcl5m1/ventilator/issues/32#issuecomment-601917208,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAM6QATEDGPPKFWGJ4MOKZLRIPNL5ANCNFSM4LP4IV7Q
.

HEPA h11+ filters might be a responsible alternative for this project to N95 filters needed in the healthcare center response.
Vacuum cleaners have been using them for years and making them widely available.
The foreseeable problem is deformation under pressure loads.

@jcrubino  These are great ideas if you can prototype & test them.

@nasocializes parts are on their way.

Here are the parts ive ordered from AMAZON for my PAPR Design. unfortunately, Their decision to only ship essential stuff means I have to wait until mid April to get everything. @jcrubino I too looked into using a UV light Source, but in my research found that it would have to be so intense it would require a lot of power. I could be wrong though in my interpretation. I plan to use HEPA Filters but am also trying to figure out how to "Sterilize" the incoming air which is almost impossible using a small footprint. I was also planning to power this system with Standard Drill batteries but will most likely settle on SLA Batteries 12V 10am for my motor size.

@chakahamilton I understand the problem with UV light.  It needs to be a non ozone emitting UV light (which is usually the case if I understand, but 20 seconds of exposure is also needed.  I did not do any numbers on the strength of the light but I understand that has to be part of the equation.
The power source is another issue.  Light enough to be on a belt and rechargeable is ideal.  I like the cordless drill battery idea a lot.  We will need 3d printable designs for this.
The cpap/vent filters are a great idea that I am using as well... but those might be hard to come by someday soon.
I am trying to come up with an inexpensive hood system for clinicians that is not scary for children.  T
T
he full face snorkel mask is indeed practical but for anyone wearing glasses and meeting with patients outside the wards it might not be conducive to clinic orientated tasks with people who may or may not be infected.
Anyone know what the paper like material is... more solid then a walmart reuseable bag.  You can see the fibers, cheap and air tight?  Then how to fix a plastic material view portal to it with something better than hot glue?
Great ideas... lets keep the momentum up on this.

@chakahamilton I understand the problem with UV light. It needs to be a non ozone emitting UV light (which is usually the case if I understand, but 20 seconds of exposure is also needed. I did not do any numbers on the strength of the light but I understand that has to be part of the equation.
The power source is another issue. Light enough to be on a belt and rechargeable is ideal. I like the cordless drill battery idea a lot. We will need 3d printable designs for this.
The cpap/vent filters are a great idea that I am using as well... but those might be hard to come by someday soon.
I am trying to come up with an inexpensive hood system for clinicians that is not scary for children. T
T
he full face snorkel mask is indeed practical but for anyone wearing glasses and meeting with patients outside the wards it might not be conducive to clinic orientated tasks with people who may or may not be infected.
Anyone know what the paper like material is... more solid then a walmart reuseable bag. You can see the fibers, cheap and air tight? Then how to fix a plastic material view portal to it with something better than hot glue?
Great ideas... lets keep the momentum up on this.

These claim to be 395nm-405nm which in theory should work, but because UV light is not my wheel house I am unsure if that is the rating for the whole spool or each individual led.
I made these parts choices to  insure that it would be accessible for everyone to build. The idea of 3D printed parts is nice and all, but not everyone has access to those (I have 2). I also didn't want some one to need a full machines shop as well. So far I've used the following tools.
Drill
Step Drill Bit
Gorilla Tape
Hot Glue Gun
Xacto Knife

I got an idea for respirator hoods.
I saw this today DuPont expediting production of Tyvek hazmat suits for health care workers which is what I was looking for I believe.
It can also be found (this and similar materials) in home stores as vapor barrier for new buildings.
Any origami or seamstress/tailors out there for pattern making?

i'm using Rain jacket and pant for the suit, as tyvek and other professional jumpsuits are hard to come by or prices are extremely high and in addition to shipping/availability time.

I just finished building my first prototype of a PAPR based on my post Above
Video 1 Blower
Video 2 The Face Mask
IT still need a little work but result so far are promising. I can breathe with the unit no problem.
I plan to add Oxygen & Carbon Dioxide Sensors in the mask at some point.

@chakahamilton I understand the problem with UV light. It needs to be a non ozone emitting UV light (which is usually the case if I understand, but 20 seconds of exposure is also needed.

The bad news here all UV light that microbes and viruses makes ozone.  Dealing with produced ozone is a not simple.
https://en.wikipedia.org/wiki/Ultraviolet_germicidal_irradiation
Yes different frequencies of UV produce less ozone so make it simpler to remain under safe limits it also effects how much of it the air has to be exposed to.
"2011 Handbook, HVAC Applications, covers "Ultraviolet air and surface treatment" in Chapter 60"
This is noted in the wikipedia but you really do need get your hands on this and understand it before messing around with UV treatment of air.   Time of exposure alters based on flow rate and UV intensity and frequency.   20 seconds is only a really rough ball park.  Yes it comes a balancing act between ozone create and treatment speed.

Modern germicidal lights should/are filtering out the light wave band that
creates ozone...
You need aprox 50 to 200 watts per square meter per second to disinfect
using a flourecent based UV light.
On Fri, Apr 10, 2020, 3:20 AM oiaohm<EMAIL_ADDRESS>wrote:

@chakahamilton https://github.com/chakahamilton I understand the
problem with UV light. It needs to be a non ozone emitting UV light (which
is usually the case if I understand, but 20 seconds of exposure is also
needed.
The bad news here all UV light that microbes and viruses makes ozone.
Dealing with produced ozone is a not simple.
https://en.wikipedia.org/wiki/Ultraviolet_germicidal_irradiation
Yes different frequencies of UV produce less ozone so make it simpler to
remain under safe limits it also effects how much of it the air has to be
exposed to.
"2011 Handbook, HVAC Applications, covers "Ultraviolet air and surface
treatment" in Chapter 60"
This is noted in the wikipedia but you really do need get your hands on
this and understand it before messing around with UV treatment of air. Time
of exposure alters based on flow rate and UV intensity and frequency. 20
seconds is only a really rough ball park. Yes it comes a balancing act
between ozone create and treatment speed.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/jcl5m1/ventilator/issues/32#issuecomment-611933706,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAFHFMDWE4OP33NGVIS5JNTRL3JGHANCNFSM4LP4IV7Q
.

Modern germicidal lights should/are filtering out the light wave band that creates ozone... You need aprox 50 to 200 watts per square meter per second to disinfect using a flourecent based UV light.

This is horrible wrong on what is filtered out this will lead you into very big danger.
https://www.oxidationtech.com/ozone/ozone-production/uv-lamp.html
The only section of the UV spectruim that does not produce ozone at all is UV-A band.
UV-A does not work as germicidal .    Germicidal lights are UV-C that is 200 to 280 nm .   Yes link above 100nm-240nm ozone is made one way and 240-315nm ozone is made another there is not a single bit of the UV-C spectrum that does not produce ozone.  Yes 240nm makes ozone both ways.  So every bit of the germicidal lights frequency will produce ozone there is no way around this as it the nature of ozone production.
Lets get to what they are in fact filtering out.
Now there are a few frequencies you avoid because UV way more effective at making ozone at those points.  Like you are going to want to filter out 254 nm out of UV-C Germicidal light because you get massive peak in ozone production at that point with that freq at 50-200 watts you are not going to stay inside safe values for ozone.
Basically the UV filtering on germicidal lights lowers the ozone produced does totally not stop ozone being produced.   This is the dangerous part you take a light design for a square meter of air and use it to process 1l of air instead you might end up with ozone above safe percentages.
Do also note Germicidal lights don't come with the one set of standard filters on them either the amount of watts a surface needs to be treated is linked to allowed frequencies of the germicidal lights also how many watts a area being treated can be treated with before you exceed safe ozone levels.
Basically Germicidal Lights are very tricky items to play with and very simple things to totally screw up with.   Yes in a breathing system you would want a ozone alarm sensor.
There is also the confined space problem where the ozone in a room where you are using germicidal light can slowly increase over time.   Basically germicidal lights are not 100 percent safe and require serous due care.

Chaka,
Progress looks great!
I had similar idea using iRobot filter, Ryobi Battery, and motor/blower.
This is just a basic proportional model without any design.
Thanks + Best,
Rich Overcash
Industrial Design
This e-mail, including attachments, may include confidential and/or
proprietary information, and may be used only by the person or entity to
which it is addressed. If the reader of this e-mail is not the intended
recipient or his or her authorized agent, the reader is hereby notified
that any dissemination, distribution or copying of this e-mail is
prohibited. If you have received this e-mail in error, please notify the
sender by replying to this message and delete this e-mail immediately.
On Thu, Apr 9, 2020 at 3:29 PM Chaka Hamilton<EMAIL_ADDRESS>wrote:

I just finished building my first prototype of a PAPR based on my post
Above
https://github.com/jcl5m1/ventilator/issues/32#issuecomment-604093852
Video 1 Blower https://photos.app.goo.gl/152azF1NSzZyT4S46
Video 2 The Face Mask https://photos.app.goo.gl/EKKPcUzDHmcFNrf5A
IT still need a little work but result so far are promising. I can breathe
with the unit no problem.
I plan to add Oxygen & Carbon Dioxide Sensors in the mask at some point.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/jcl5m1/ventilator/issues/32#issuecomment-611784262,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ADRMN6MPQI5WOAOYLPGNPY3RLZD6HANCNFSM4LP4IV7Q
.

Chaka,
Progress looks great!
I had similar idea using iRobot filter, Ryobi Battery, and motor/blower.
This is just a basic proportional model without any design. Can place waisteband clip on backside.
Looking for feedback. Attaching images here.

@oiaohm
I respect your critical take on UV light in general.  In addition to potential ozone production, there is the problem that most materials are not tested for UV-C band light.
My comment was made in haste, perhaps too lightly.... a mention of some prior reading I have done on this.
Yes Ozone production is produced in much of the UV Band, yet using the reference you posted above... the facts you are sharing seem misinterpreted or I am not catching on to your rhetoric.

Like you are going to want to filter out 254 nm out of UV-C Germicidal light ...

The link you posted says 254 nm destroys ozone, and I have read this in other places as well.  I believe the grey area here is that most lights available cannot produce 100% within the specified narrow range, rather the stated wavelength on a UV light is the peak measurement.

@oiaohm

Like you are going to want to filter out 254 nm out of UV-C Germicidal light ...

The link you posted says 254 nm destroys ozone, and I have read this in other places as well. I believe the grey area here is that most lights available cannot produce 100% within the specified narrow range, rather the stated wavelength on a UV light is the peak measurement.

This diagram is not really fully covering the problem.  Peak of ozone destruction is still creating free Oxygen.   Yes that free Oxygen can link up and make O2 but it still can link up and remake O3 from the 254 nm side as well.
Yes the grey area is a problem but even a correct UV freq light for ozone destruction will not produce air 100 percent ozone free all the time because of the destruction followed by recreating cycle that is not in basic diagram.
Yes grey area of UV light ratings mean you have some of the low frequency that will 100 percent produce ozone.
Please remember that free Oxygen does not have to just bind with O2 to make O3 or another free Oxygen to O2 like it could react with seals and other things.

My initial concern, was that this approach is not practical considering that, circulated air has to be exposed to the uv light for a second at such wattage levels. For surfaces cleaning, this seems possible but... not for portable maker made ventilation device.

https://breathequality.com/germguardian-ac4825e-review/
I would not say it impossible devices like this are getting away with a 5watt light but the lot of considerations to get the chamber size to light to airflow rate right the wattage may not be that high.   Please note a device like these air purifiers  is not putting the air straight into a pipe/past seals that may not like free Oxygen.  They are also not aiming for 100 percent ozone free just not more ozone that what went in.
My brain was remembering it was not a free lunch.  I was thinking Ozone but the biggest problem here is free Oxygen reacting with materials its does not matter where in the Ozone altering section of UV you have this problem.
I was remembering correct that Ozone does not magical cease to be something you can fail to monitor just because you use UV-C.   The free Oxygen problem was what I was getting mixed up on.   Notice both UV levels are going to make this problem remember free Oxygen really loves reacting with things and if it the  wrong things can the result can be start producing lots of heat leading to fire inside device.   Yes fire inside a breathing device would be really bad.
I am not saying don't play with UV but be really careful this can backfire badly.  UV-A is the only area you are not playing free Oxygen problem and that does not work for germicidal.
  Yes high volume O1 going into humans lungs does not do those the world of good either.   Basically you don't want O1 or O3 in large volumes going into human lungs.

Chaka,
Progress looks great!
I had similar idea using iRobot HEPA filter, Ryobi 18V Battery, and motor/blower.
This is just a basic proportional model without any design. Can place waisteband clip on backside.
Looking for feedback. Attaching images here.

@richovercash I really like that design. i hacked a filter holder together with Mock-up with a Radio shack project box hot-glue and gorilla tape. can you make it so the hole at the top accepts a standar CPAP hose (thats what I am using)

I just finished building my first prototype of a PAPR based on my post Above
Video 1 Blower
Video 2 The Face Mask
IT still need a little work but result so far are promising. I can breathe with the unit no problem.
I plan to add Oxygen & Carbon Dioxide Sensors in the mask at some point.

Wonderful job... I’m a physician and new to github but something similar to your prototype going. I’m trying to find a way to get portable power to the blower. My blower is DC 12V/8A m. I’ve also tried with a brushless radial blower that provides 42 CFM with a shorter tubing and a HEPA in-line filter but was not as good as it was with the electric air blower.

Chaka,
This is what I’ve tried

Chaka,
This is what I’ve tried

To make mine portable I used a car cigarette lighter outlet 12 volt. I'm also planning to power it with two sealed lead acid batteries 12 volt 10 amp so my blower will last approximately 10 hours since it only pulls in about an .50 to 1amp.
I hope this help.

I've made a slight design change, because it will require less points of failure and moving parts. I found this sand blasting hood on Amazon. I think it will work better than the snorkel mask, but snorkel mask are readily available.

.

@jarvik1984 I found this blower on Amazon interesting I like the fact that it is 188 CFM. it would definitely solve the low air pressure issue. I have yet to purchase this though. I am still building the power supply.
TerraBloom 6" Silent Inline Duct Fan, 26W, 188 CFM, Quiet Mixed-Flow Energy Efficient Blower for Air Circulation in Ducting, Vents, Grow Tents

@jarvik1984 I found this blower on Amazon interesting I like the fact that it is 188 CFM. it would definitely solve the low air pressure issue. I have yet to purchase this though. I am still building the power supply.
TerraBloom 6" Silent Inline Duct Fan, 26W, 188 CFM, Quiet Mixed-Flow Energy Efficient Blower for Air Circulation in Ducting, Vents, Grow Tents

I’ve been testing it at the hospital with the electric air pump and I can tell you that more than 48 CFM is a lot of flow, you can barely breath with so much positive pressure on your face... as far a the battery, I’ve thought about that too but I found those batteries at Homedepot and each are 3 kg/5lbs more... happy to hear from you again and thanks for your reply

@jarvik1984 I found this blower on Amazon interesting I like the fact that it is 188 CFM. it would definitely solve the low air pressure issue. I have yet to purchase this though. I am still building the power supply.
TerraBloom 6" Silent Inline Duct Fan, 26W, 188 CFM, Quiet Mixed-Flow Energy Efficient Blower for Air Circulation in Ducting, Vents, Grow Tents

I’ve been testing it at the hospital with the electric air pump and I can tell you that more than 48 CFM is a lot of flow, you can barely breath with so much positive pressure on your face... as far a the battery, I’ve thought about that too but I found those batteries at Homedepot and each are 3 kg/5lbs more... happy to hear from you again and thanks for your reply

Thanks for the Airflow 48 CFM I was having an issue where the blower I currently use wasn't able to push past the HEPA Filter, so I was trying to overcome that. I think Ill add a speed control to my setup to see if I can control the flow more efficiently that way.
As for the batteries, yes that adds quite a bit of weight. but I was thinking instead of a traditional belt worn battery pack, a knapsack might be better suited for the challenge. A someone wearing it out in the field, is pain strain an issue?

2 issues added with bigger blowers in my opinion. 1) Too noisy... we have to be able to communicate, I think anything past 60db is a lot. 2) for the batteries, we usually have to be running around the hospital and a very heavy battery could make it hard to get things done. How about lithium battery packs?

I've been looking at lithium ion packs, to save on weight obviously but my expertise is very limited when it comes to those they actually kind of scare me. I'll perhaps revisit looking at them and doing some more research. I also found that they are also extremely expensive when you look into the multi-amp hour aspect of them The higher the amp hour the more expensive they seem to go.
Yes as you saw my video my blower is very noisy, so I'm looking for something that's very quiet as well I'll continue my search and report back.

Chaka, how are you doing? Any new improvements on your prototype?

Jarvik1984, Yes! I have to new blower designs that I am going to test out once they arrive. Both will offer an nearly silent or quieter operation. When they arrive I will build and test both.  One involves a series of Mid range computer fans & another a continuous Blower. I am also going to tweak the filter idea to use polypropylene filter fabric.
Stay Tuned.

Awesome. Please keep me posted, I’m working on it too.. I’d love to share ideas and join efforts to get this done.

Awesome. Please keep me posted, I’m working on it too.. I’d love to share ideas and join efforts to get this done.

Will do.

I've Started working on A 2nd version of the Blower using 2x 12v 2.20A CPU Fans  for air intake and a smaller 12v 0.16A general computer fan to blow air into the hood attachment. I am keeping the CPAP hose and Filter Attachment through all designs.
I am still waiting for the polypropylene  Fabric to arrive so it can be tested as a filter material. I have
Pictures of Version 2:
Picture 1
Picture 2
Pciture 3
After all of this I will tackle the electronics
I'll definitely follow this Thread #62 more closely.

I'm moving all of my development to my Git. you can find further updates there over the next few days..
Regards.

You may want to check out this open source PAPR Hood design: https://making.engr.wisc.edu/papr/


[Docs] Add update --bundler

\c @indirect

@homu r+

:pushpin: Commit e3a1ba5 has been approved by indirect

:hourglass: Testing commit e3a1ba5 with merge 1a7c5b3...

:sunny: Test successful - status


Problem with Key error 'image'

I have been trying to run the code for myself on my personal computer but there is a very peculiar bug I have got stucked on

Please help me out @justaguyalways

you can remove that line of code

Ok thank you very much.


[BUG] The example script in auto tensor parallelism doc only works for model size fit in 1 GPU

Describe the bug
Running the example script in auto tensor parallelism doc only works when the model size can fit in 1 GPU.
For example, I was using a g5.12xlarge instance, and opt-6.7b can fit in one GPU. Running the example command to enable tensor parallelism:
deepspeed --num_gpus <num_gpus> DeepSpeedExamples/inference/huggingface/text-generation/inference-test.py --name <model> --batch_size <batch_size> --test_performance --ds_inference will succeed.
But when trying with Opt-13b, it will fail without any meaningful message with the same command.
Command:
deepspeed --num_gpus 4 DeepSpeedExamples/inference/huggingface/text-generation/inference-test.py --name facebook/opt-13b --batch_size 1 --test_performance --ds_inference --dtype=float16
Error message:
[2023-04-18 20:05:01,196] [WARNING] [runner.py:190:fetch_hostfile] Unable to find hostfile, will proceed with training with local resources only.
[2023-04-18 20:05:01,239] [INFO] [runner.py:540:main] cmd = /home/xx/venv/bin/python -u -m deepspeed.launcher.launch --world_info=eyJsb2NhbGhvc3QiOiBbMCwgMSwgMiwgM119 --master_addr=<IP_ADDRESS> --master_port=29500 --enable_each_rank_log=None DeepSpeedExamples/inference/huggingface/text-generation/inference-test.py --name facebook/opt-13b --batch_size 1 --test_performance --ds_inference --dtype=float16
[2023-04-18 20:05:03,235] [INFO] [launch.py:229:main] WORLD INFO DICT: {'localhost': [0, 1, 2, 3]}
[2023-04-18 20:05:03,235] [INFO] [launch.py:235:main] nnodes=1, num_local_procs=4, node_rank=0
[2023-04-18 20:05:03,235] [INFO] [launch.py:246:main] global_rank_mapping=defaultdict(<class 'list'>, {'localhost': [0, 1, 2, 3]})
[2023-04-18 20:05:03,235] [INFO] [launch.py:247:main] dist_world_size=4
[2023-04-18 20:05:03,235] [INFO] [launch.py:249:main] Setting CUDA_VISIBLE_DEVICES=0,1,2,3
[2023-04-18 20:05:05,406] [INFO] [utils.py:785:see_memory_usage] before init
[2023-04-18 20:05:05,406] [INFO] [utils.py:786:see_memory_usage] MA 0.0 GB         Max_MA 0.0 GB         CA 0.0 GB         Max_CA 0 GB
[2023-04-18 20:05:05,407] [INFO] [utils.py:793:see_memory_usage] CPU Virtual Memory:  used = 5.44 GB, percent = 2.9%
[2023-04-18 20:06:17,381] [INFO] [launch.py:428:sigkill_handler] Killing subprocess 492250
[2023-04-18 20:06:19,676] [INFO] [launch.py:428:sigkill_handler] Killing subprocess 492251
[2023-04-18 20:06:21,929] [INFO] [launch.py:428:sigkill_handler] Killing subprocess 492252
[2023-04-18 20:06:21,929] [INFO] [launch.py:428:sigkill_handler] Killing subprocess 492253
[2023-04-18 20:06:24,261] [ERROR] [launch.py:434:sigkill_handler] ['/home/xx/venv/bin/python', '-u', 'DeepSpeedExamples/inference/huggingface/text-generation/inference-test.py', '--local_rank=3', '--name', 'facebook/opt-13b', '--batch_size', '1', '--test_performance', '--ds_inference', '--dtype=float16'] exits with return code = -9

I also tried using checkpoint loading for models that cannot fit into one GPU, but the checkpoint loading has issue (reported here)
So it looks like there is no way to get a model with parameters that cannot fit in 1 GPU to use automatic tensor parallelism if the model doesn't have kernel implemented. This seems to contradict the description in this document "DeepSpeed now supports automatic tensor parallelism for HuggingFace models by default as long as kernel injection is not enabled and an injection policy is not provided"?

Hi @brevity2021, I'm not able to recreate this using the latest DeepSpeed. Please let me know if you are still experiencing this issue. Thanks.


[Bug] GM Spot toggle removes wrong status effect

It looks like toggling off the Active Spot is removing the first AE or condition on all the players instead of the Spot condition. You can toggle Active Spot on/off several times to get rid of every effect on the players. I think you can see why this is a huge problem.
Cheers!

Yup, two errors compounded on themselves, but is fixed now pending release in 1.6.0


When assets metadata is not found，scanning for real assets as fallback

Environment
node-server: v18.18.0
Reproduction
null
Describe the bug
Metadata lookups are very nice and allow us to know if there is a file without having to rescan the directory.
However, in a traditional node-server standalone service, sometimes we might want to upload file to assets to make it accessible to users, and this won't work.
Maybe we can scan the files as a fallback to solve this problem.
Additional context
https://github.com/unjs/nitro/blob/a3120b6acfcf67343e411e51107c45d6ccf432b8/src/runtime/static.ts#L55
ref: https://nitro.unjs.io/guide/assets#public-assets
Logs
No response
### Tasks

@markthree You'd use something like server assets instead then ☺

@markthree You'd use something like server assets instead then ☺

Thank you, but it doesn't take effect after building
my code ↓
const storage = useStorage("assets:foo");

// routes/[id].js
export default defineEventHandler(async (e) => {
  const id = getRouterParam(e, "id");

  await storage.setItemRaw(id, id + "txt");

  return await storage.getItem(id);
});

import { fileURLToPath } from "node:url";
import { dirname, resolve } from "node:path";

export default defineNitroConfig({
  serverAssets: [{
    baseName: "/foo",
    dir: resolve(dirname(fileURLToPath(import.meta.url)), "assets/foo"),
  }],
});

I wrote a nitro module to support this functionality → nitro-public-module
If anyone needs can install and configure 👇
npm i nitro-public-module -D

nuxt

// nuxt.config.ts
import nitroPublic from "nitro-public-module";

export default defineNuxtConfig({
  nitro: {
    modules: [nitroPublic()],
  },
});

nitro

// nitro.config.js
import nitroPublic from "nitro-public-module";

export default defineNitroConfig({
  modules: [nitroPublic()],
});

Everything will be handled automatically 🥰


chore(deps): bump https://github.com/zeebe-io/zeebe-cluster-helm from 0.0.149 to 0.0.150

Update zeebe-io/zeebe-cluster-helm from 0.0.149 to 0.0.150
Command run was jx step create pr chart --name zeebe-cluster --version 0.0.150 --repo https://github.com/zeebe-io/zeebe-full-helm.git

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by:
To complete the pull request process, please assign salaboy
You can assign the PR to them by writing /assign @salaboy in a comment when ready.
The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment


Port font editor to SDL2

Replace X11 with SDL2 to improve the portability and cross-platform support
Migrated window creation from X11's XCreateWindow to SDL_CreateWindow.
Replaced X11 event handling with SDL2’s event loop (SDL_PollEvent) to capture input events such as keyboard and mouse interactions.
Updated rendering to use SDL_Renderer and SDL_Surface, replacing X11's rendering functions.

Modified some key event logic:

SDLK_ESCAPE: ESC now exits the program.
SDL_QUIT: Clicking the "X" on the window exits the program.

Unchanged key event logic:

SDLK_q: Switches to the next font.

Features not fully implemented yet:

SDLK_s, SDLK_u, SDLK_f, SDLK_d, SDLK_DOWN: Handling logic for stripe drawing operations.
SDL_WINDOWEVENT, SDL_MOUSEBUTTONDOWN.

Related issue #7

SDLK_q: Switches to the next font.
Features not fully implemented yet:

This functionality needs to be fully implemented, as the current font editing (which is more of a viewer at the moment) is not intuitive. By switching from reading characters from stdin to retrieving content from an open file, we can enable the ability to browse font glyphs back and forth.

For future contributions, consider the following workflow:

Create a new feature branch (e.g., font-editor) for your proposed changes instead of working directly on the main branch.
Keep your main branch untouched and up-to-date with the original repository. You can easily sync it using GitHub's web interface.
Develop and commit your changes in the feature branch.
When ready, create a pull request from your feature branch to the main repository.

This approach offers several benefits:

It keeps the main branch clean and aligned with the upstream repository.
It isolates feature development, making it easier to manage and review changes.
It allows for easier collaboration and parallel development of multiple features.

See https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request

As suggestion above, I am closing this PR to maintain a clean and organized workflow, and I will open another PR later, which will address the issues mentioned in the above review.

You don't need to resolve all the concerns before submitting a new issue. Instead, submit an issue early to highlight your initial efforts, similar to how a draft pull request works. For the sake of collaboration, more code reviews and discussions will undoubtedly improve the overall outcome.


NERDTree commands for Project Tree?

It would be fantastic if keyboard commands supported:

Switching between the active pane and the project tree (an improvement over vim could be made here because the tree could be made a special entity rather than just another pane. You could swap directly to and back from it rather than cycling between panes)
Toggling folders
Opening, moving, creating files

@dougblack, that sounds great; I'll indeed go that route.  Thanks for the fast response everyone!

For all the people that get this thread as the top result when you search
Here is a whole thread of bind copy&paste snippets about toggle navigation:
https://discuss.atom.io/t/only-allowing-keybind-to-be-triggered-when-in-command-mode-vim-mode/15496
The following snippet toggles focus between project tree and the editor
'atom-text-editor.vim-mode:not(.insert-mode), .tree-view':
  ', n': 'tree-view:toggle-focus'


feat: Monitoring metrics for sharded and non-sharded migration

The feature creates monitoring dashboard for sharded and non sharded migration.
For sharded migrations it does not show an aggregated dashboard. That will be part of a separate PR
If dashboard creation fails then the flow logs and error and continues.

The following use cases were tested for sharded and non-sharded (mySql) migration:

Successful dashboard creation
Unsuccessful dashboard creation with empty dashboard string
Unsuccessful dashboard creation with an error thrown during dashboard creation

The documentation for this feature needs to be written. Please decide if you want to take that up in this PR, the following one or a separate PR.
Let's aim to get the documentation and the release of this feature in one HB release version.


Tree: fix add_tree to be constant-time

We don't want to recursively explore the parameters to check if
add_tree is a no-op (to try to preserve physical equality). The
cost is too high in this case.
Spotted by @camlspotter and profiled by @CraigFe and @Ngoguey42

I'll try to highlight the complexity problem using #1237 's large mode, and the see if your PR fixes it

I'll try to highlight the complexity problem using #1237 's large mode, and the see if your PR fixes it

Since tree.exe's large mode doesn't call add_tree I couldn't test this patch using it.
tree.exe's trace mode calls add_tree through the copy operation, but those copies are really quick:
 719872 "Add" 2.488 sec (4.4%)
 46842 "Remove" 1.299 sec (2.3%)
 2250115 "Find" 14.405 sec (25.6%)
 535786 "Mem" 2.742 sec (4.9%)
 329934 "Mem_tree" 0.389 sec (0.7%)
 9999 "Checkout" 0.020 sec (0.0%)
 46 "Copy" 0.000 sec (0.0%)
 10000 "Commit" 34.938 sec (62.1%)

I have then modified tree.exe's code to collapse the paths. Even if the test slows down by a factor 10, the copies are still quick:
 719872 "Add" 2.141 sec (0.4%)
 46842 "Remove" 197.285 sec (37.4%)
 2250115 "Find" 10.000 sec (1.9%)
 535786 "Mem" 1.784 sec (0.3%)
 329934 "Mem_tree" 0.624 sec (0.1%)
 9999 "Checkout" 0.023 sec (0.0%)
 46 "Copy" 0.000 sec (0.0%)
 10000 "Commit" 315.409 sec (59.8%)

I conclude that add_tree is not problematic for tz's bootstrap phase. We will have to further improve our benchmarking suite to reproduce this problem.

Example of a path collapse: data/commitments/00/00/56/97/02/a93c481a70a9801d3429c202d5bab1 to data/commitments/0000569702a93c481a70a9801d3429c202d5bab1.

Since tree.exe's large mode doesn't call add_tree I couldn't test this patch using it.
tree.exe's trace mode calls add_tree through the copy operation, but those copies are really quick:
 719872 "Add" 2.488 sec (4.4%)
 46842 "Remove" 1.299 sec (2.3%)
 2250115 "Find" 14.405 sec (25.6%)
 535786 "Mem" 2.742 sec (4.9%)
 329934 "Mem_tree" 0.389 sec (0.7%)
 9999 "Checkout" 0.020 sec (0.0%)
 46 "Copy" 0.000 sec (0.0%)
 10000 "Commit" 34.938 sec (62.1%)

I have then modified tree.exe's code to collapse the paths. Even if the test slows down by a factor 10, the copies are still quick:
 719872 "Add" 2.141 sec (0.4%)
 46842 "Remove" 197.285 sec (37.4%)
 2250115 "Find" 10.000 sec (1.9%)
 535786 "Mem" 1.784 sec (0.3%)
 329934 "Mem_tree" 0.624 sec (0.1%)
 9999 "Checkout" 0.023 sec (0.0%)
 46 "Copy" 0.000 sec (0.0%)
 10000 "Commit" 315.409 sec (59.8%)

I conclude that add_tree is not problematic for tz's bootstrap phase. We will have to further improve our benchmarking suite to reproduce this problem.

Example of a path collapse: data/commitments/00/00/56/97/02/a93c481a70a9801d3429c202d5bab1 to data/commitments/0000569702a93c481a70a9801d3429c202d5bab1.

Thanks for the analysis. Indeed, Tree.add_tree is not really used by Tezos currently but we plan to use it to speed-up "stitching" events, which are similar to database scheme migrations: you want to rewrite the current store by moving subtrees around (for instance by "flattening paths"). So a good test would be to:

create a tree with lot of deep directories, e.g. /aa/bb/cc/dd/aabbccdd/foo/bar, ...
fold over that tree to copies subtrees into flattened paths, e.g. /flat/aabbccdd/foo/bar, ...
try to do this with a lot of directory entries (eg. 3 millions)

Thanks for the analysis. Indeed, Tree.add_tree is not really used by Tezos currently but we plan to use it to speed-up "stitching" events, which are similar to database scheme migrations: you want to rewrite the current store by moving subtrees around (for instance by "flattening paths"). So a good test would be to:

create a tree with lot of deep directories, e.g. /aa/bb/cc/dd/aabbccdd/foo/bar, ...
fold over that tree to copies subtrees into flattened paths, e.g. /flat/aabbccdd/foo/bar, ...
try to do this with a lot of directory entries (eg. 3 millions)

Updated with a simplification of equal and a clearer return type for maybe_equal.

Updated with a simplification of equal and a clearer return type for maybe_equal.


Consider disabling stalebot

Description:
Stalebot was added to periodically close stale issues.
At the time of approving this, I thought this was a good idea, but as a maintainer, I find myself spending cycles either reopening issues closed by stalebot that it considers stale, that are not (some GH issues around APIs and design take time, some dont), or rechecking closed issues to see if they're relevant or not.
With or without the presence of stalebot, members of this project will need to invest cycles in reviewing all GH issues, and will need to accept that we might take time to review all opened GH issues.
For the reasons stated above, I prefer if we disable stalebot.

+1 for disable it, because EG still in the early stages

An alternative may be adding the stale label but not closing.

thanks for the suggestion @mohe2015 , its a good hybrid approach allowing us to quantity the life of a GH issue without losing track of it.

An alternative may be adding the stale label but not closing.

+1


run zksync prover  throw error

INFO zksync_prover::cli_utils: creating prover, worker name: yanyanho.local_1_blocks
thread 'main' panicked at 'failed to install Prometheus recorder: Hyper(hyper::Error(Listen, Os { code: 48, kind: AddrInUse, message: "Address already in use" }))', core/lib/prometheus_exporter/src/lib.rs:119:10
stack backtrace:

Hello @yanyanho would you be able to provide more details on what's happening?

When I run "zk prover". it throws this error.


Fatal error when sending...

Using Mac/Sierra and received this error...
System.ArgumentException: An item with the same key has already been added. Key: OP_DUP OP_HASH160 112305fc04f8f8de8e96c00933c57eed45a64494 OP_EQUALVERIFY OP_CHECKSIG
at System.ThrowHelper.ThrowAddingDuplicateWithKeyArgumentException(Object key)
at System.Collections.Generic.Dictionary2.Insert(TKey key, TValue value, Boolean add)    at Stratis.Bitcoin.Wallet.WalletManager.LoadKeysLookup() in /Users/pieterjan/Desktop/StratisBitcoinFullNode/Stratis.Bitcoin/Wallet/WalletManager.cs:line 1049    at Stratis.Bitcoin.Wallet.WalletManager.AddTransactionToWallet(uint256 transactionHash, UInt32 time, Nullable1 index, Money amount, Script script, Nullable1 blockHeight, Block block) in /Users/pieterjan/Desktop/StratisBitcoinFullNode/Stratis.Bitcoin/Wallet/WalletManager.cs:line 763    at Stratis.Bitcoin.Wallet.WalletManager.ProcessTransaction(Transaction transaction, Nullable1 blockHeight, Block block) in /Users/pieterjan/Desktop/StratisBitcoinFullNode/Stratis.Bitcoin/Wallet/WalletManager.cs:line 658
at Stratis.Bitcoin.Wallet.WalletManager.SendTransaction(String transactionHex) in /Users/pieterjan/Desktop/StratisBitcoinFullNode/Stratis.Bitcoin/Wallet/WalletManager.cs:line 580
at Stratis.Bitcoin.Wallet.Controllers.WalletController.SendTransaction(SendTransactionRequest request) in /Users/pieterjan/Desktop/StratisBitcoinFullNode/Stratis.Bitcoin/Wallet/Controllers/WalletController.cs:line 459

Added to Trello

Thanks for the feedback @cube60

This happens when an HdAddress SciptPubKey and PubKey are the same.
Unfortunately I couldn't find an execution path where this could occur.
It might have been fixed by commit https://github.com/stratisproject/StratisBitcoinFullNode/commit/893053b43a16ac3217d662dcc3e3fd963755321f.
Closing as non-repro.


More readable regex in keyword.py

Simplify the regex by using named string replacement

(Not merging due to merge conflict, but code looks great to me.)

Thanks @KevinHock, happy to contribute to such a great project 👍, fixed the conflicts

re: Keyword detector, if you've used it, I'm curious to hear your thoughts about it. I was planning on making quotes required the default, and adding exceptions for no quotes required, rather than how it is now.


[Task]: [2022/07/22] Daily testing and verification of Choreo staging environment for Choreo samples and connector use cases

Connector Name
connectors/samples (Connector Samples/Templates)
Task Description
We need to involve in the daily testing and verification of Choreo staging environment for Choreo samples and connector use cases during Choreo releases. This is for 2022/07/22.

Tested and verified. No issues identified. Therefore closing this issue.


[YUNIKORN-1607] Configuration processing should support limit hierarc…

What is this PR for?
Configuration processing should support limit hierarchical quota check.
What type of PR is it?

[ ] - Feature

Todos

[ ] - Task

What is the Jira issue?
https://issues.apache.org/jira/browse/YUNIKORN-1607
How should this be tested?
Screenshots (if appropriate)
Questions:

[ ] - The licenses files need update.
[ ] - There is breaking changes for older versions.
[ ] - It needs documentation.

Hi @manirajv06, I noticed that this commit use DFS to check limits and the MaxApplications. In the future work, we will sum up the limits among children queues to check that the sum should not exceed the parent's limits. I think using BFS can be more intuitive to deal with the problem that the sum from child queues' limits does not exceed the limit of the parent queue. Maybe we adopt BFS instead of DFS in the future? I want to know your opinion. :)

In general, we do the sum only for Guaranteed resources at Queue level, not for max resources. Limit max resources and max applications are being considered as max resources not as guaranteed one to increase the overall efficiency of the overall cluster resources i.e elasticity - user 1 can stretch as much as possible when other users are not using its resources.
Hence, BFS has been used for now similar to other Queue config processing.

@pbacsko @0yukali0 @zhuqi-lucas Thanks. @wilfred-s can you also take a final look and merge?


picoScan150 simulation in GAZEBO

I would like to simulate the picoScan150 in Gazebo. Is this possible? Which files do I need to use? I cannot find the file in /meshes.

Thank you for your feedback. Simulations using Gazebo are not supported at this time.


Problem accessing scan images

Trying to retrieve images as below:
ims = get_images(db['e54e9e'], 'fccd_image')
gives the error:
OSError: Unable to open file (Unable to open file: name = '/gpfs/xf23id/xf23id1/fccd_data/2016/02/07/d8710b44-8f0d-498a-b0d8_-000001.h5', errno = 2, error message = 'no such file or directory', flags = 0, o_flags = 0)
The h5 file in the GPFS drive is stored as "d8710b44-8f0d-498a-b0d8_-000000.h5", and not "d8710b44-8f0d-498a-b0d8_-000001.h5".

@stuwilkins Looks like that race condition is back in the stage.

Is this resolved?

Closing as this is not strictly an ophyd issue. Please re-open in NSLS-II/bug-reports if it still persists.


Missing Version API

Hi team,
It seems that we don't have the marathon version client.
It would be so cool if we can have this in.
Thanks.

sorry, I'm wrong, there are already existing ApplicationByVersion...


l515 RS camera android app #l515

Hello,
I'm trying to connect my L515  to android Huawei p30 pro for first run on RS Camera app, but there is "connect realsense camera" all the time. OTG menager shows device but i cant turn it on. Any ideas?

Are you referring to RS Camera App from Google Play-Store or built from source?
The Play-store App is not yet updated with L500 support, since there are still some known issues (primarily on RK3399) that are being addressed.

Thank you for info. I'm trying to test it on adroid with java example with 2.36.0 build and still i cant connect my l515 to work with it.

Please make sure device is connected as USB3. At the moment, when connected as USB2 (either due to cable, connection, or port) the device will show up in the system but will not work.
What version of Android are you using?

android 10.1.0
Now after starting for example capture app on my phone "connnect realsense camera" after l515 connection dissappear and there is black screen. I dont know what is the issue, i have wire from l515 and usb 3.1 otg adapter.

Im using Android 10 on Huawei p30 pro.
Device is connected to android with usb 3.2 (app checked) but all
examples showing black screen after l515 connected. I don't know what to do
now.
pon., 10 sie 2020 o 09:01 Sergey Dorodnicov<EMAIL_ADDRESS>napisał(a):

Please make sure device is connected as USB3. At the moment, when
connected as USB2 (either due to cable, connection, or port) the device
will show up in the system but will not work.
What version of Android are you using?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/IntelRealSense/librealsense/issues/7053#issuecomment-671195254,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AQQ5J52VJ3LOL4MN66QOCITR76LLVANCNFSM4PW7MW3Q
.

Please make sure device is connected as USB3. At the moment, when connected as USB2 (either due to cable, connection, or port) the device will show up in the system but will not work.
What version of Android are you using?

Now after checking log file on my Phone after l515 attach i get dl.getDeviceCount =0.

Hi,
Are you still experiencing these issues with the latest Android app and L515 F/W.
Thanks

No,  i have four usb 3.0 connectror and olny one is working with 3. standard now, so its good. In addition I checked deep resolution for incoming frames and there was bad value. Now everything working fine.

That's great news. We'll close this issue then and if you have any further problems/questions feel free to open a new one.


SQLite: Missing IMMEDIATE and EXCLUSIVE Transaction Functionality

It does not appear that there is a way to start an IMMEDIATE or EXCLUSIVE transaction for a SQLite database. All Transactions are started using BEGIN, but SQLite supports BEGIN IMMEDIATE and BEGIN EXCLUSIVE. The former is of some import for simplifying some code I'm writing.  It would allow me to catch SQLITE_BUSY and retry at the start of the transaction rather than having to catch it at any point throughout a sequence of queries and add complex replay logic.
I took a look at the codebase, but didn't see an easy way to add the functionality since Transaction is generic over databases and this would be a SQLite specific feature.  Perhaps begin could have some kind of TransactionOptions parameter added that could toggle database specific features?  To reduce API breakage a begin_with_options API could be added.
Thank you.

Duplicate of #481


Update repo Figma links to public urls

The current Figma links in our READMEs require a logged in user, we should switch to the new public url I believe @panchovm has created.

I checked the permissions in both files and opened them unlogged, and they are working correctly. Here are the sharable links nonetheless.

Releases file. Audio release
Design Library

The README was updated with the links. Closing this issue


Enable # comments

Should commenting be enabled, by ignoring any lines starting with #?
That would be convenient for putting env file explanations within the file.

Yes, it's a desirable feature. Thx!

No problem :smile: I'd be happy to work on this in a fork as it should be quite a small fix.

Perfect! I'll merge your PR asap.

Thanks, I'll probably do it in a few hours from now.


[ML-108] Update PCA GPU, LiR CPU and Improve JAR packaging and libs loading

What changes were proposed in this pull request?
closes #108

closes #107


Document how to add a class to the template container

Co-authored with @m-green
Blocked until https://github.com/alphagov/govuk-frontend/pull/1626 is released
Fixes https://github.com/alphagov/govuk-design-system/issues/1075

You can preview this change here:
Built with commit fbe5f614f8824ca7317bda6f81c250625794e209
https://deploy-preview-1081--govuk-design-system-preview.netlify.com


actions-rs/toolchain unmaintained

The actions-rs/toolchain Action has been unmaintained for a while now (https://github.com/actions-rs/toolchain/issues/216). Github displays the following warning in workflows using it:
Node.js 12 actions are deprecated. For more information see: https://github.blog/changelog/2022-09-22-github-actions-all-actions-will-begin-running-on-node16-instead-of-node12/. Please update the following actions to use Node.js 16: actions-rs/toolchain
It is probably a good idea to replace the Action.
A seemingly popular alternative is dtolnay/rust-toolchain

Awesome, thank you!


Why no FilterBuilder#excludePackage(String...)

Why does FilterBuilder have
includePackage(String...)
and
excludePackage(String)
Why no varargs implementation for excludePackage?

Sounds like a good idea. You can provide a PR :wink:


Warn when using an old nightly without an override

I was under the impression for some reason that "nightly" was somehow automatically updated when you tried to use it, eg. in rustup run nightly cargo install clippy, and wasted a bunch of peoples' time on IRC.
It would be nice if rustup warned you that you're on an old nightly and you haven't set an override.
I'd be willing to work on this if someone can give me pointers on where to look and what to change.

@rkruppe is also raising the usecase where you deliberately don't run rustup update for a period of time due to regressions in nightly, instead of pinning with override.

I think we wouldn't want to warn on every use, because people expect the proxies to behave like their original counterparts, which means not altering their output in any way.
Maybe there could be some visual indication in rustup show though that a toolchain is out of date? I don't think it's a high priority right now though, without a stronger motivation.

We have rustup check which will check for updates to installed toolchains and report what toolchains would try and update if you were to run rustup update.  If this is sufficient to resolve the OP's issue given our reluctance to attempt an update on every use, then please close.

I don't really see this as a problem anymore tbh. Having rustup check is probably good enough. Closing the issue.


Debugger Visualizer for IEnumerable<>

I'm trying to build a visualizer for IEnumerable<> but when I try to compile I get an error:

error CEE0005: An issue was encountered when evaluating the compile-time constant Demo.Visualizer.StringDebuggerVisualizerProvider.DebuggerVisualizerProviderConfiguration. Unexpected error when evaluating compile-time constant value: Only concrete types are supported by debugger visualizer

Configuration looks like this: public override DebuggerVisualizerProviderConfiguration DebuggerVisualizerProviderConfiguration => new("My test visualizer", typeof(IEnumerable<>));
I know that the debugger visualizer doesn't support interface as a target type but IEnumerable<> was an exception in the old SDK and was supported:
From https://developercommunity.visualstudio.com/t/Visual-Studio-Visualizer-not-loaded-when/10257948
IEnumerable is the only exception interface currently supported

Hello @Giorgi, you are correct. Support for the IEnumerable<> interface is an exception to the rule and that is why it is throwing that error. To support it, you have to use the overloaded DebuggerVisualizerProviderConfiguration constructor that takes the fully qualified type name of the visualizer's target type as a string.
E.g. "System.Collections.Generic.IEnumerable`1, mscorlib, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=b77a5c561934e089"

Thanks that worked. Do you have any plans to add an exception for other interfaces (like IQueryable<>) or interfaces in general?

Sadly, we are not planning on supporting additional interfaces any time soon. However, I would encourage you to open a Feature Request on the Visual Studio Developer Community so that we can keep track of interfaces that customers are asking for and get their support prioritized.


deps upgrade

coverage: 100.0%. remained the same
when pulling f8e729ce4231dbbb856230f2f5a2d58796cbfd35 on upgrade-deps
into 2b4b7c4951b3de91232e36305c62f158d1f9b4be on master.


If sandcats service crashes, restart it

Back-story:

There have been (I believe) 3 outages in the past week for the Sandcats service. Some of them have lasted more than hour because they occurred while I was asleep and my phone was in "airplane mode" for sleep (which is how I normally "silence" notifications).

The outages take the form, "A server-side route raised an unhandled exception because we did not get data from GlobalSign's SOAP API in the format we expected."

There are few different sub-problems here, it seems to me:

The sandcats service, upon failure, does not auto-restart.
Service notifications do not always reach me in a timely fashion.
server-side routes can crash the entire nodejs/meteor process if they hit an unhandled exception.

This commit only fixes the first of these issues. But it's worth fixing, I believe.
Also, hey @zarvox, systemd is pretty cool.

I've tested that using gdb to enter the sandcats nodejs process and do call _exit(255) results in the service getting auto-restarted, in dev on my laptop. Will merge now.

[ ] deploy on dev server
[ ] deploy on prod server

I'm pleased to report that this is in place now.


Incorrect statement about regulatory record?

In the next to last paragraph, it suggests you can auto-apply retention labels for regulatory records, which I believe is un-true? The restictions around auto-label for regulatory record is clarified further below in the Important note in the blue background.
Records

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

ID: 6ae5f811-9551-ea95-b113-9175a6f08d7e
Version Independent ID: e1eb8d3d-d439-e814-4a05-aa5bbc11f33e
Content: Records management for documents and emails in Microsoft 365 - Microsoft Purview (compliance)
Content Source: microsoft-365/compliance/records-management.md
Service: o365-seccomp
GitHub Login: @cabailey
Microsoft Alias: cabailey

@kstat Yes, thanks for flagging this.  The statement is half right - you can auto-apply labels for records, but not regulatory records.  I'll make a tweak to the wording for accuracy.

Fixed now, closing


cf push failed with CF-RunnerUnavailable

Backgroud

Deployed Cloud Foundry on K8s
CF deployment version: <IP_ADDRESS>.0

Description
Used cf-acceptance-tests/assets/node and run cf push, but got errors 503 Service Unavailable and 301 Moved Permanently like below
Stopping app node in org system / space dev as admin...

REQUEST: [2018-07-08T04:36:06-05:00]
PUT /v2/apps/8b9a38b7-0010-40ba-9cd4-ba5f30d908da?async=true&inline-relations-depth=1 HTTP/1.1^M
Host: api.bcf.containers.appdomain.cloud^M
Accept: application/json^M
Authorization: [PRIVATE DATA HIDDEN]
Connection: close^M
Content-Type: application/json^M
User-Agent: go-cli 6.30.0+decf883.2017-09-01 / linux^M
^M
{"state":"STOPPED"}

RESPONSE: [2018-07-08T04:36:06-05:00]
HTTP/1.1 503 Service Unavailable^M
Connection: close^M
Content-Length: 277^M
Content-Type: application/json;charset=utf-8^M
Date: Sun, 08 Jul 2018 09:35:48 GMT^M
X-Content-Type-Options: nosniff^M
X-Envoy-Decorator-Operation: api.cf.svc.cluster.local:9022/*^M
X-Envoy-Upstream-Service-Time: 97^M
X-Vcap-Request-Id: 33bb288a-214e-9376-a625-6f27f685612f::ba8f580a-656d-48e1-b6c1-f81790d7ba02^M
^M
{
  "description": "Runner is unavailable: Process Guid: 8b9a38b7-0010-40ba-9cd4-ba5f30d908da-d1f929e3-6b69-4def-ad60-6b3fd786be10: SSL_connect returned=1 errno=0 state=SSLv2/v3 read server hello A: unknown protocol",
  "error_code": "CF-RunnerUnavailable",
  "code": 170015
}

WEBSOCKET REQUEST [2018-07-08T04:36:06-05:00]
GET /apps//stream HTTP/1.1
Host: wss://doppler.bcf.containers.appdomain.cloud:4443
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Version: 13
Sec-WebSocket-Key: [HIDDEN]
Authorization: [PRIVATE DATA HIDDEN]
Origin: wss://doppler.bcf.containers.appdomain.cloud:4443

WEBSOCKET RESPONSE [2018-07-08T04:36:06-05:00]
HTTP/1.1 301 Moved Permanently
Date: Sun, 08 Jul 2018 09:35:48 GMT
Content-Type: text/plain; charset=utf-8
Content-Length: 0
Connection: keep-alive
Location: /apps/stream

WEBSOCKET ERROR [2018-07-08T04:36:06-05:00]
Error dialing trafficcontroller server: websocket: bad handshake.
Please ask your Cloud Foundry Operator to check the platform configuration (trafficcontroller is wss://doppler.bcf.containers.appdomain.cloud:4443).. Retrying...

And cf apps can get the app.
# cf apps
Getting apps in org system / space dev as admin...
OK

name   requested state   instances   memory   disk   urls
node   started           ?/1         1G       1G     node.bcf.containers.appdomain.cloud

I checked loggrator logs and found a error like below
2018/07/08 10:58:04 Error while reading from stream (doppler-0.doppler-set:8082): rpc error: code = Canceled desc = context canceled
2018/07/08 10:58:04 Disconnecting from stream (doppler-0.doppler-set:8082) (doppler.disconnect=false) (ctx.disconnect=1)
2018/07/08 11:07:09 Could not get app information: [Get https://api.cf.svc.cluster.local:9023/internal/v4/log_access/56eaaabf-1f2e-4e94-9b91-eb3455cdf307: http: server gave HTTP response to HTTPS client]
2018/07/08 11:07:10 Could not get app information: [Get https://api.cf.svc.cluster.local:9023/internal/v4/log_access/56eaaabf-1f2e-4e94-9b91-eb3455cdf307: http: server gave HTTP response to HTTPS client]

So does this mean there's something misconfigured, Is there any suggestions? Thanks a lot!

@zhanggbj I see two things that appear invalid:

GET /apps//stream HTTP/1.1 seems to be missing the app guid. I would expect the URL to look a little more like /apps/<guid>/stream.

https://api.cf.svc.cluster.local:9023/internal/v4/log_access/ is an internal API that uses mTLS. Therefore our clients expect them to perform the proper SSL handshake. The fact that you are seeing an error saying server gave HTTP response to HTTPS client indicates that :9023 is not serving HTTPS.

I would look at your CloudController configuration.

@zhanggbj looks like your mTLS communication between CAPI and other components is misconfigured, based on the SSL_connect returned=1 errno=0 state=SSLv2/v3 read server hello A: unknown protocol line.  Are the certs pointed to by
    key_file: /var/vcap/jobs/cloud_controller_ng/config/certs/mutual_tls.key
    cert_file: /var/vcap/jobs/cloud_controller_ng/config/certs/mutual_tls.crt
    ca_file: /var/vcap/jobs/cloud_controller_ng/config/certs/mutual_tls_ca.crt

valid and trusted by Diego?    When using cf-deployment, the relationship between these certs and CAs are correctly associated.

Hi @bradylove @selzoc
Problem solved.   So I'll close this issue.
Thanks a lot for your help!


Conan Integration

Brief Issue Summary
When working with conan the cmake-toolchain information is already contained in conan-profiles. For me the usual workflow is to use conan commands to configure the cmake project initially with
conan install -pr:h ... -pr:b ...
conan build --configure ...

That way the conan and cmake use consistent build settings. After configuration  cmake commands can be used as usual.
Expected
I would expect vscode-cmake-tools to provide a way to define a kit which allows to use a custom command for initial configuration. I am not sure if the kit definition is the correct place but my reasoning is that the initialization using conan provides the whole toolchain information. Beside that I want to be able to use different profiles in the same workspace and switch quickly between them.

@andreeis I thought about that too but the issue is that it is not possible to get workspace and build directory in the script and it does not get re-executed on "Delete Cache and Reconfigure"

@andreeis Persisting all variables for the environment makes perfect sense for the use-case environmentSetupScript is designed for - Setting up the terminal environment. Though this does not really help with the conan use-case. conan install and conan build --configure will affect the file system in the build directory and not the environment variables. It is basically an initialization of the cmake build directory such that the correct build settings are set.
Does this explain why I do not think that environmentSetupScript helps in this case or am I misunderstanding you?


job_dir and plugin_dir defaulting from params but overrideable (Fixes #474)

See #474: This fix allows setting the plugin and job dir in the params without
affecting the 'users' experience. I don't know why you would want to
override the job and plugin dir though. But this solution supports both
setting it in params and overriding it.

@vStone I'm not sure what the use case for this would be? AFAIK - there are no configuration values for these paths in jenkins -- a symlink is required as is mentioned in #403

It was either this or revert putting the job_dir and plugin_dir in the params file. I could also cook that up

@vStone I suspect we should remove the job_dir & plugin_dir params completely from https://github.com/jenkinsci/puppet-jenkins/commit/00a90d4d162bca20eb1e04554def4ca45028affb  There hasn't been a stable release since I merged that PR so it should quasi-OK to remove them from the API.  What do you think?

Get rid of them. People might be confused that they could adjust settings in jenkins to customize these
On January 26, 2016 7:15:02 PM CET, Joshua Hoblitt<EMAIL_ADDRESS>wrote:

@vStone I suspect we should remove the job_dir & plugin_dir params
completely from
https://github.com/jenkinsci/puppet-jenkins/commit/00a90d4d162bca20eb1e04554def4ca45028affb
There hasn't been a stable release since I merged that PR so it should
quasi-OK to remove them from the API.  What do you think?

Reply to this email directly or view it on GitHub:
https://github.com/jenkinsci/puppet-jenkins/pull/481#issuecomment-175151315

--
Sent from my Android device with K-9 Mail. Please excuse my brevity.


Keeps asking for network/admin credentials

So I anxiously anticipated getting POW up and working (killer idea) when I ran into problems.
Ran the super-simple install script, curl and the script did it's thing and then I got the Mac OS dialog box asking for administrator credentials.  When I put in what I know are right credentials, the modal dialog box just cycles.  When I put in the wrong credentials (as a test), I get a message that says the UID or PW was incorrect.  Not sure what's up or if you've ever seen this.
MAC OS = 10.6.8
Thx for any help,
Peter

Pow doesn't run any code that would prompt the "Mac OS dialog box" for admin. This must be some other piece of software on the system.

Joshua,
Thank you for your response.  I believe that my first trouble ticket may
have not had enough information.
The dialog boxes appear to be coming from a call to 'networksetup'.  The
dialog box shows several times and then the install errors out with the
following:
*** Installing Pow 0.3.2...
*** Installing local configuration files...
/Users/peterb/Library/Application Support/Pow/Current/bin/pow:6: warning:
Insecure world writable dir /Users/peterb/.rvm/gems in PATH, mode 040777
/Users/peterb/Library/Application Support/Pow/Current/bin/pow:6: warning:
Insecure world writable dir /Users/peterb/.rvm/gems in PATH, mode 040777
*** Starting the Pow server...
*** Performing self-test...
*** Reloading system network configuration...
!!! Couldn't resolve configured domains (dev)
Note sure the warnings are anything to worry about, but could be.
TIA,
Peter
"It's a Jungle Up There": www.zuluworks.com
Great Aviation Gear: www.sky-gadgets.com
On Wed, Oct 12, 2011 at 5:16 PM, Joshua Peek <
<EMAIL_ADDRESS>
Pow doesn't run any code that would prompt the "Mac OS dialog box" for
admin. This must be some other piece of software on the system.
--
Reply to this email directly or view it on GitHub:
https://github.com/37signals/pow/issues/228#issuecomment-2387090


user_identity schema bug

Hey, thanks for the fix, however I believe there might be still some work (I believe this was an issue quite a while ago, only just realising now) :)
Essentially, I believe it has to do with the create_user_identities migration file.
This is what has been suggested to be used:
      add :user_id, references("users"), on_delete: :nothing

Full reference:
defmodule Nfd.Repo.Migrations.CreateUserIdentities do
  use Ecto.Migration

  def change do
    create table(:user_identities) do
      add :empty, :string
      add :provider, :string, null: false
      add :uid, :string, null: false

      add :user_id, references("users"), on_delete: :nothing

      timestamps(updated_at: false)
    end

    create unique_index(:user_identities, [:uid, :provider])
  end
end

However I get this error when creating the migrations:

So what I did was change it to this a while ago:
add :user_id, references(:users, on_delete: :nothing, type: :binary_id)
and that fixes the error and now it will create the migration.
HOWEVER, I get this error from google when I go to register/sign in, and I believe it's related to this:

I'm not sure what the correct syntax should be for the migration file for it to work.

Do you have @foreign_key_type :binary_id set in your user schema?
The mix task can't know in advance if the user schema is binary id or not, so you would have to run mix pow_assent.install --binary-id to make the right migration.

This is a pretty common scenario, I'm looking at the docs and code to see if it can be made more obvious how to set PowAssent up with binary id.

Oh, thank you!
Just to clarify, but add :user_id, references("users"), on_delete: :nothing is the correct code for create_user_identities?

Because I still get the same error with ecto.reset with that code

defmodule Nfd.UserIdentities.UserIdentity do
  use Ecto.Schema
  use PowAssent.Ecto.UserIdentities.Schema,
    user: Nfd.Account.User

  @foreign_key_type :binary_id
  schema "user_identities" do
    pow_assent_user_identity_fields()

    timestamps(updated_at: false)
  end
end

is what I have.

Just to clarify, but add :user_id, references("users"), on_delete: :nothing is the correct code for create_user_identities?

This is the correct migration (generated when running with the mix task with the --binary-id flag):
add :user_id, references("users"), on_delete: :nothing, type: :binary_id

Unfortunately that still produces the same error when ecto.migrate. Here are my files:
create_user_identities.exs
`defmodule Nfd.Repo.Migrations.CreateUserIdentities do
use Ecto.Migration
def change do
create table(:user_identities) do
add :empty, :string
add :provider, :string, null: false
add :uid, :string, null: false
  # add :user_id, references("users"), on_delete: :nothing, type: :binary_id
  add :user_id, references(:users, on_delete: :nothing, type: :binary_id)

  timestamps(updated_at: false)
end

create unique_index(:user_identities, [:uid, :provider])

end
end
`
create_users.exs
`
defmodule Nfd.Repo.Migrations.CreateUsers do
use Ecto.Migration
def change do
create table(:users, primary_key: false) do
add :id, :binary_id, primary_key: true
add :slug, :string
add :display_name, :string
add :first_name, :string
add :last_name, :string
add :is_admin, :boolean, default: false, null: false
add :coaching_minutes, :integer
  add :email, :string, null: false
  add :password_hash, :string

  timestamps()
end
create unique_index(:users, [:email])

end
end
`
User.ex
`
defmodule Nfd.Account.User do
use Ecto.Schema
use Pow.Ecto.Schema
use Pow.Extension.Ecto.Schema,
extensions: [PowResetPassword, PowEmailConfirmation]
use PowAssent.Ecto.Schema
import Ecto.Changeset
alias Nfd.Account.Subscriber
alias Nfd.Account.CollectionAccess
@primary_key {:id, :binary_id, autogenerate: true}
@foreign_key_type :binary_id
schema "users" do
has_many :user_identities,
Nfd.UserIdentities.UserIdentity,
on_delete: :delete_all
pow_user_fields()

field :coaching_minutes, :integer
field :display_name, :string
field :first_name, :string
field :is_admin, :boolean, default: false
field :last_name, :string
field :slug, :string

has_one :subscriber, Subscriber, on_delete: :delete_all
has_many :collection_access, CollectionAccess, on_delete: :delete_all

timestamps()

end
def changeset(user, attrs) do
user
|> pow_changeset(attrs)
|> pow_extension_changeset(attrs)
end
def changeset_update(user, attrs) do
user
|> pow_changeset(attrs)
|> pow_extension_changeset(attrs)
|> cast(attrs, [:slug, :display_name, :first_name, :last_name, :is_admin, :coaching_minutes])
|> validate_required([:slug, :display_name, :first_name, :last_name, :is_admin, :coaching_minutes])
end
NOTE: This is unsafe and technically only for dev.
def changeset_confirm_email(user, attrs) do
user |> cast(attrs, [:email_confirmed_at])
end
end
`
user_identity.ex
`
defmodule Nfd.UserIdentities.UserIdentity do
use Ecto.Schema
use PowAssent.Ecto.UserIdentities.Schema,
user: Nfd.Account.User
@foreign_key_type :binary_id
schema "user_identities" do
pow_assent_user_identity_fields()
timestamps(updated_at: false)

end
end
`
On the other hand, if I use
add :user_id, references(:users, on_delete: :nothing, type: :binary_id)
Then the migration works, although Google sign in doesn't seem to work. I will do further testing to see what the cause my be, but I'm a bit stuck.

Sorry for the poor formatting!

Oh wait, everything seems to have worked successfully with:
add :user_id, references(:users, on_delete: :nothing, type: :binary_id)
Perhaps this is the correct syntax for the newer version of ecto?

Oh thanks a lot! It's a bug in Pow that I've overlooked. add :user_id, references(:users, on_delete: :nothing, type: :binary_id) is the right syntax.
So now with @foreign_key_type :binary_id and the right migration, does everything works as expected?

Yes!
I already had @foreign_key_type :binary_id, so I'm actually a bit confused why it ended up working, given I already had add :user_id, references(:users, on_delete: :nothing, type: :binary_id) as an initial fix ages ago. But yeah, everything is working fine now :)
Thank you so much for your support, I'll be actively using the library and adding a few more, hopefully Facebook, Reddit and Discord over the coming weeks/months. I'll let you know if I run into anymore issues!

Oh, and I didn't know ``` would fix the formatting, I will remember for next time :)

1.0.5 is released now with bug fix!


Add additional filter check for reports and regressions

Summary of the Pull Request
What is this about?
Add additional filter condition to catch source-coverage.json files.
PR Checklist

[ ] Applies to work item: #xxx
[ ] CLA signed. If not, go over here and sign the CLI.
[ ] Tests added/passed
[ ] Requires documentation to be updated
[ ] I've discussed this with core contributors already. If not checked, I'm ready to accept this work might be rejected in favor of a different grand plan. Issue number where discussion took place: #xxx

Info on Pull Request
What does this include?
Validation Steps Performed
How does someone test & validate?

Codecov Report

Merging #2911 (611d199) into main (8a7a0b0) will decrease coverage by 1.63%.
The diff coverage is 50.00%.

@@            Coverage Diff             @@
##             main    #2911      +/-   ##
==========================================
- Coverage   28.06%   26.44%   -1.63%
==========================================
  Files         302      125     -177
  Lines       35811    13523   -22288
==========================================
- Hits        10050     3576    -6474
+ Misses      25761     9947   -15814

Impacted Files
Coverage Δ

src/ApiService/ApiService/onefuzzlib/Reports.cs
64.44% <50.00%> (ø)

src/ApiService/ApiService/OneFuzzTypes/Model.cs
69.35% <0.00%> (-0.09%)
:arrow_down:

src/ApiService/ApiService/onefuzzlib/Defs.cs
0.00% <0.00%> (ø)

src/ApiService/ApiService/onefuzzlib/Config.cs
0.00% <0.00%> (ø)

src/agent/input-tester/src/lib.rs

...nefuzz-file-format/src/coverage/binary/v0/tests.rs

src/agent/onefuzz-task/src/local/cmd.rs

src/agent/onefuzz-agent/src/failure.rs

...gent/input-tester/src/test_result/vcpp_debugger.rs

src/agent/onefuzz-file-format/src/hex.rs

... and 171 more

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

We should also be able to write a test with this using the existing implementations we have for Azurite stuff... let me know if you want any help putting one together.