change hover/focus border on header nav

surface-4 border by default
text-color on hover/focus
add !important to rad/kanj/vocab nav colors

I think this looks pretty good. I left the check for min-width: 1024 px to style the border around the magnifying glass. Probably unnecessary, but wanted to tread lightly. I've not done a lot of testing of this theme at different screen resolutions in general.
I only added selectors for :hover and :focus. I think that's right, but let me know if I should add :active as well.

After looking a bit more into it, the bevel values are both set to 4px. So it's either an issue with rendering on my browser or the negative margin of the span element is not taken into consideration, when calculating the bevels.
There are 3 potential solutions I can think of:

Leave it be, it's a minor issue, that might not be worth fixing.

Make the border-radius of the whole button larger.

Make the border-radius of the span smaller.

Im gonna trust your judgement here. Do what you consider to be the best solution and if that happens to be leaving it as is, feel free to merge into main.

Yup, that's how it works with the default WK styling. The span with the count doesn't get a visible border (on hover/focus or normally).
I think it's due simply to the span having a higher z-index. They've got a weird  negative margin thing going on, too. Let me poke a bit and see if it's easy to fix.

@Sepitus-exe How does this look?
Normal:

Hovering over lessons:

I just gave a z-index of -1 to the span.

Changing the z-index introduces a whole seperate, more sever issue. The span is no loger visible on narrow resolutions.
It would probably be safer to remove the border-radius and the negative margins from it.

The span is no longer visible on narrow resolutions.

How did you create that screenshot? At resolutions below 1024px wide, the shortcuts and levels/radicals/kanji/vocab/help nav items disappear for me. The header stops being sticky, too.
I'm not able to reproduce your screenshot.

I just scrolled down a bit so the L/R buttons would appear and used the F12 console to shrink the width of the screen.
The header has its position set as fixed, so it shouldn't disappear on its own.

F12 console to shrink the width of the screen

You mean the inspector in the browser? (I'm on a mac.)
I'm unable to reproduce on either Brave or Firefox. What browser are you using?
The entire mini-nav thing for reviews and lessons shouldn't appear at screen resolutions below 1024px wide, I think.
That seems to be an independent issue, regardless. I'm tempted to merge with the z-index fix as the span "belongs" to the link as it were. It makes sense for the the border-outline to cover everything.

it seems to be an issue only on non-dash pages.

Aha! Let me look into that (was only looking at the dashboard).

I'm struggling to figure out why the span disappears at widths below 1024px. Very weird.
I'm tempted to just add a media query so the z-index change only affects resolutions above 1024px wide, and revert to the original behavior for narrow screens.
If I can't figure it out, that's what I will merge.

Aha. It's something to do with using display: flex; at lower resolutions.
This is getting too painful to futz with. I'm just going to use a media query.

Okay, we can revisit this at some point if desired.
Current behavior is to have a border surrounding the entire nav link at higher screen resolutions. At lower screen resolutions it reverts to the top "leave it be" behavior shown in this comment


Added emojis on messages

Hi!
I've added emojis to messages sent by Zabbix. Hopefully it will be handy for some of you.

I think it's too complicated for users.
For is stopping you to do it right in zabbix action?

Hi again,
I've changed the way the implementation was done.
Now some of the settings can be done thru the trigger action itself.
By default no emojis are sent. In order to send emojis, it's necessary to
add "zbxtg;emojis" to the trigger action.
If emojis are enabled, OK emoji is used if "OK" string is present in the subject, and KO
emoji is used if "PROBLEM" string is present in the subject.
You can change the string to be search in the subject by adding "zbxtg;regex_ok=string_to_search" and
"zbxtg;regex_ko=string_to_search" in the trigger action.
If there is no pattern match, a default info emoji is sent.
Kind regards,

@mvazquezc https://github.com/ableev/Zabbix-in-Telegram/wiki/Emoji-in-messages
sorry and thanks for the idea!


[feat] use the IPFS proxy

As discussed on Discord, CID versions might be an issue 😫

Note for later:

Paths for subfolders are "screwed" in the utils/html zip / unzip phases.
Mimetypes is defined too many times (not a big deal)


  The PR temporarily points to that commit of ocurrent. I'm not sure if we should wait to merge this PR until we submit that change, or if there's a better way to go about this.

It looks very good (including the ocurrent patch!) :100: I think we can wait a bit to see if they are willing to include it officially :)

It looks very good (including the ocurrent patch!) 100 I think we can wait a bit to see if they are willing to include it officially :)

Thanks @art-w for the review and your help with working on this. (I still haven't figured out the best workflow to make changes in ocurrent and use them with current-bench, but discussing some of this with you helped put some things in perspective.)

Updated this PR with a commit which pins the ocurrent version to the latest dev version. It also required adding an explicit dependency on dockerfile since ocurrent no longer depends on it.

Thanks a lot!


USER ERROR: BUG: Unreferenced static string to 0: Physics2DConstraintSolveIslands

Tested versions
4.3 dev6
System information
android 11 api 30
Issue description
USER ERROR: BUG: Unreferenced static string to 0: Physics2DConstraintSolveIslands
at: unref (core/string/string_name.cpp:127)
USER ERROR: BUG: Unreferenced static string to 0: Physics2DConstraintSetup
at: unref (core/string/string_name.cpp:127)
FORTIFY: pthread_mutex_lock called on a destroyed mutex (0x7b4a7b00cc)
Steps to reproduce
There is no problem under Windows, but it appears under Android. I am using C #, which seems to be unable to debug under Android, and I am not sure where the problem lies
Minimal reproduction project (MRP)
not have

JsonSerializer Deserialize<AdminResult(response. Content);
Discovered that the kernel crash may have been caused by this exception

I got the same issue on Android 13 also using C#.
07-18 10:56:52.725 28188 28220 E godot   : USER ERROR: BUG: Unreferenced static string to 0: Physics3DConstraintSolveIslands 07-18 10:56:52.725 28188 28220 E godot   :    at: unref (core/string/string_name.cpp:127) 07-18 10:56:52.725 28188 28220 E godot   : USER ERROR: BUG: Unreferenced static string to 0: Physics3DConstraintSetup 07-18 10:56:52.725 28188 28220 E godot   :    at: unref (core/string/string_name.cpp:127) 07-18 10:56:52.725 28188 28220 E godot   : USER ERROR: BUG: Unreferenced static string to 0: quarter_texture 07-18 10:56:52.725 28188 28220 E godot   :    at: unref (core/string/string_name.cpp:127) 07-18 10:56:52.725 28188 28220 E godot   : USER ERROR: BUG: Unreferenced static string to 0: half_texture 07-18 10:56:52.725 28188 28220 E godot   :    at: unref (core/string/string_name.cpp:127) 07-18 10:56:52.725 28188 28220 E godot   : USER ERROR: BUG: Unreferenced static string to 0: sky_buffers 07-18 10:56:52.725 28188 28220 E godot   :    at: unref (core/string/string_name.cpp:127) 07-18 10:56:52.725 28188 28220 E godot   : USER ERROR: BUG: Unreferenced static string to 0: blur_0 07-18 10:56:52.725 28188 28220 E godot   :    at: unref (core/string/string_name.cpp:127) 07-18 10:56:52.725 28188 28220 E godot   : USER ERROR: BUG: Unreferenced static string to 0: back_color 07-18 10:56:52.725 28188 28220 E godot   :    at: unref (core/string/string_name.cpp:127) 07-18 10:56:52.725 28188 28220 E godot   : USER ERROR: BUG: Unreferenced static string to 0: back_depth 07-18 10:56:52.725 28188 28220 E godot   :    at: unref (core/string/string_name.cpp:127) 07-18 10:56:52.725 28188 28220 E godot   : USER ERROR: BUG: Unreferenced static string to 0: Fog 07-18 10:56:52.725 28188 28220 E godot   :    at: unref (core/string/string_name.cpp:127) 07-18 10:56:52.725 28188 28220 E godot   : USER ERROR: BUG: Unreferenced static string to 0: VRS 07-18 10:56:52.725 28188 28220 E godot   :    at: unref (core/string/string_name.cpp:127) 07-18 10:56:52.725 28188 28220 E godot   : USER ERROR: BUG: Unreferenced static string to 0: _enter_world 07-18 10:56:52.726 28188 28220 E godot   :    at: unref (core/string/string_name.cpp:127) 07-18 10:56:52.726 28188 28220 E godot   : USER ERROR: BUG: Unreferenced static string to 0: Physics2DConstraintSolveIslands 07-18 10:56:52.726 28188 28220 E godot   :    at: unref (core/string/string_name.cpp:127) 07-18 10:56:52.726 28188 28220 E godot   : USER ERROR: BUG: Unreferenced static string to 0: Physics2DConstraintSetup 07-18 10:56:52.726 28188 28220 E godot   :    at: unref (core/string/string_name.cpp:127) 07-18 10:56:52.726 28188 28220 E godot   : USER ERROR: BUG: Unreferenced static string to 0: _compression 07-18 10:56:52.726 28188 28220 E godot   :    at: unref (core/string/string_name.cpp:127) 07-18 10:56:52.728 28188 28220 F libc    : FORTIFY: pthread_mutex_lock called on a destroyed mutex (0x6e5ccd7bfc) 07-18 10:56:52.758   938   938 I Zygote  : Process 28188 exited due to signal 6 (Aborted) 07-18 10:56:52.800  1430 24365 I ActivityManager: Process com.trickyteam.trickytactics (pid 28188) has died: fg  TOP 07-18 10:56:52.801  1037  1037 E QMI_FW  : qmi_cci_get_ref: ref count increased 2 07-18 10:56:52.802  1430  1671 I libprocessgroup: Successfully killed process cgroup uid 10154 pid 28188 in 0ms 07-18 10:56:52.802  1430  3336 I WindowManager: WIN DEATH: Window{51d3648 u0 com.trickyteam.trickytactics/com.godot.game.GodotApp}

Looks related to #93268


Labels on top of each bar disappearing when clicked

I am using a bar chart and wants to display labels on top of each bar. I am using the below method:
      animation: {
        duration: 1000,
        onComplete: function() {
          var chartInstance = this.chart,
            ctx = chartInstance.ctx;
          ctx.font = Chart.helpers.fontString(Chart.defaults.global.defaultFontSize, Chart.defaults.global.defaultFontStyle, Chart.defaults.global.defaultFontFamily);
          ctx.textAlign = 'center';
          ctx.textBaseline = 'bottom';

          this.data.datasets.forEach(function(dataset, i) {
            var meta = chartInstance.controller.getDatasetMeta(i);
            meta.data.forEach(function(bar, index) {
              var data = dataset.data[index];
              ctx.fillText(data, bar._model.x, bar._model.y - 2);
            });
          });
        }
      },

However, when I click on a bar, all the labels disappear. Please see gif below:

Expected Behavior
Labels should not disappear when clicking any bar.
Current Behavior
Labels are disappearing when clicking any bar.
Possible Solution
If I change onComplete by onProgress, labels are not disappearing. However labels appear before the bars animation, which is not a good solution.
Environment

Chart.js version: 2.7.1
Browser name and version: Google Chrome - Version 65.0.3325.181
Ionic Framework - Version 3.9.2

Currently this is working as designed. When you click on the chart an animation is being triggered and then the labels re-appear once the animation finishes. Have you looked into the data labels plugin at all?
I think you could achieve this by setting onComplete initially and when that function runs, it removes itself and attaches a callback to onProgress.

@etimberg Thanks a lot for you help, removing the onComplete function and then running the onProgress function works well!


Apache Compress upgrade

Is there any plan to upgrade Apache commons compress from 1.26.1 to 1.27.0.
There is an issue when upgrading to spring boot 3.3.0 due to conflict in the version.

apache compress version in spring boot gradle plugin upgraded to 1.26.2, which causes
Caused by: java.lang.NoSuchMethodError: 'void org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream.putArchiveEntry(org.apache.commons.compress.archivers.zip.ZipArchiveEntry)'
which conflicts with the version in gradle distribution.
Please help to check this.


Fix a bug with moving dock left and right.

Fixes #67039
get_index counts internal children by default but move_child ignores them therefore move_child had no effect.
The call to set_current_tab is not needed anymore in Godot 4 since the current tab will change when calling move_child.

Thanks! And congrats for your first merged Godot contribution :tada:


A Promising Semantics for Relaxed-Memory Concurrency

Link: http://sf.snu.ac.kr/promise-concurrency/
This is a memory model targeting C++. It has several unique characteristics:

it is based on an operational semantics rather than an axiomatic presentation

this means that it is defined in terms of simulating a kind of abstract computer, instead of as a series of more abstract predicates
this means I can summarize using Rust pseudocode below; huzzah

it validates many common compiler optimizations
it does not resort to undefined behavior in the case of a data race (huzzah!), but instead defines a semantics for what values can result

I will endeavor to give a brief summary to the best of my understanding. However, it is likely I am making mistakes, so I would like feedback from the authors (cc @jeehoonkang). And of course to truly understand I recommend reading the paper, which is quite good.
Basic idea of the machine
To start, let's imagine a real simple computer. You might imagine modeling a computer's memory as a big dictionary mapping addresses to values:
memory: Map<Address, Value>

But a definition like this doesn't really work for parallel programs. One obvious reason is the hardware: remember that each of the CPUs on your computer has a distinct cache. Unless these CPUs synchronize with one another, it is possible for these caches to get out of sync. In that case, each CPU might have a different idea of what value is stored at a particular address. Naturally, we can synchronize the caches (that's what atomic operations do) but it's expensive, so we try to avoid it when possible (e.g., if some memory is owned (or believed to be owned) by a particular CPU). The problem is not limited to hardware; compiler optimziations can produce similar effects.
So instead we adopt a different, more flexible model for memory. Imagine instead memory as a big list of all the writes that have ever occurred:
memory: Vec<Write>

struct Write {
    address: Address,
    timestamp: Real, // a positive real number like 0, 1, or 1.2
    value: Value,
} // the paper writes this as <address:value@timestamp>, just fyi

struct Address(usize); // an address is just a pointer
struct Value(u8); // byte-addressable memory is the norm I hear

Now we equip each thread with an idea of the "current timestamp" for each address. This is basically the last write that we observed (i.e., by reading from that memory address and getting the value that was written). Once a thread has observed a particular write, it can never go back in time -- that is, we can't read again and get the value of some earlier write.
struct Thread {
    view: Map<Address, Real>, // timestamp from last observed write
    ... // the paper has some other stuff that I don't need for the purposes of my summary
}

Now the idea is that if a thread wants to read from memory, it can pick any of the writes for that particular address that it wants, so long as those writes don't come before the timestamp in its local view. After that, it must update its view:
fn read(memory: &Memory, thread: &mut Thread, address: Address) -> Value {
    // find all the writes that we could observe (from this thread or others)
    let timestamp = thread.view.get(address).unwrap_or(0);
    let available_writes: Vec<_> =
        memory.iter()
              .filter(|wr| wr.address == address && wr.timestamp >= timestamp)
              .collect();

    // pick one in whatever way we choose (not necessarily the most recent)
    let write = available_writes.pick_one(); // pick whichever one we want

    // update our local view now
    thread.view[address] = write.timestamp; // update our local view

    write.value
}

A write works by picking a fresh timestamp (something later than our local view, and otherwise unused, but basically arbitrary) and adding that into the list of writes.
fn write(memory: &mut Memory, thread: &mut Thread, address: Address, value: Value) {
    // find all the writes that we could observe (from this thread or others)
    let cur_timestamp = thread.view.get(address).unwrap_or(0);
    let new_timestamp = pick_new_time_stamp(cur_timestamp, memory);
    thread.view[address] = new_timestamp;
    memory.push(Write { address address, value: value, timestamp: new_timestamp });
}

So far this is all fairly standard. This model as is however can't describe many common optimizations and other things.
Promises
The big idea of the paper is something called a promise. The idea is that a thread can basically speculate ahead and insert values into memory before it has actually written them. These writes are called promises.
In order to make a promise, a thread must be able to prove that it will be able to do this write. This proof cannot rely on the promise itself, which prevents circular reasoning ("I can read 5 from x because I promised to write 5 in the future").
The intuitive example is pretty good. Imagine that a, x and y are all memory locations that are initially zero, and we start two threads:
// Thread 1
a := x // writes **1**
y := 1

// Thread 2
x := y

The surprising thing is that a := x writes 1 before 1 has been written to x! One reason this could occur In Real Life is that the compiler may reorder the a := x; y := 1; statements, since they appear independent from one another. But how about in the model?
The idea here is that thread 1 would promise to write 1 to y -- clearly, whatever value we read from x, this will happen. This adds the promise into memory almost as if it were a real write. Now thread 2 can actually read from that promise when it reads from y. It then does an actual write of 1 to x. Then when we come back to thread 1, we read from x, and we actually see 1.
Atomic operations
The basic operational semantics I described above must be extended slightly for atomic operations. Instead of each write (or promise) securing a specific timestamp, they can now describe a half-closed like range (5, 6]. This is needed because otherwise there is always space for another thread to insert writes where they don't belong. i.e., if two threads are doing an atomic increment of x, and the first one writes with timestamp 1, we don't want the other thread to go inserting a write with timestamp 0.5 or something. So to prevent that the first one would secure the timestamp (0, 1]. Now the second write has to go afterwards.
So, in our model, we can change the timestamp to a pair of reals ((Real, Real)).
This corresponds to an operation called update. You can think of it as the tail end of a "compare and swap" that is going to succeed. In other words, in some previous steps we read old_value from address (with a given timestamp) and inserted a promise to store a new-value. We are now making good on that promise. (I didn't add the machinery into my Rust-model to track pending promises, so I'll just represent that as a set.)
fn update(memory: &Memory,
          pending_promises: &mut Set<Write>,
          thread: &mut Thread,
          address: Address,
          old_value: Value,
          new_value: Value) {
    // for this kind of step to be legal, somewhere there should be a
    // previous write that stored `old_value` which is compatible with our view
    let old_write = memory.find_write(address, old_value, cur_timestamp).unwrap();
    let (old_start, old_end) = old_write.timestamp;

    let cur_timestamp = thread.view.get(address).unwrap_or(0);
    assert!(cur_timestamp <= old_end); // since we observed the old read
    let new_timestamp = pick_new_timestamp(old_end); // something bigger than old_end and not taken

    let new_write = Write { address: address, value: new_value, timestamp: (old_end, new_timestamp) };
    thread.view[address] = new_timestamp;

    // remove the write from list of pending promises; we don't have to touch memory
    // because when we promised the value to be written, it would have been inserted
    // into memory
    pending_promises.remove(new_write);
}

More stuff
I didn't really digest the rest of the paper yet, which digs into more advanced cases.
Some questions
@jeehoonkang, can you clarify a few points for me?

when a thread makes a promise and does a proof, is that proof "thread-local"? That is, does it have to have knowledge of the full machine state, including all the instructions that other threads will execute?

I am thinking in particular of examples like ARM-weak, where the thread winds up reading from its own promise -- though in re-reading that example, I see that in fact the proof of the promise doesn't rely on the promise itself, it's that a later read does that read

I know that you proved the soundness of various optimizations in this model, but haven't had time to dig into that yet. I'd be curious to get a feeling for how those proofs look. I don't quite have a feeling yet for how a compiler author reasons using this model yet. (OK, this is not a question.)

It is really a great summary to Rustaceans.  Thank you!
I would like to cc the coauthors: @gilhur @orilahav @drdreyer @vafeiadis

On thread-locality: to make a promise, a thread need to know only the memory, not the full machine state.  To achieve this thread-locality, we require that a promise should be fulfilled regardless of other threads' behavior, or in other words, the promise should be fulfilled under arbitrary interference of other threads.  By "arbitrary interference" I mean arbitrary messages can be inserted in the memory.
Thanks to this thread-locality, we could (arguably) easily prove many intra-thread optimizations: memory access reordering, merging, elimination, etc.
However, due to this thread-locality, some inter-thread global optimizations, including register promotion, are beyond the reach of the proposed model.  Naturally it is a future work, and we have concere ideas how to do that.

On (ARM-weak): as this behavior is subtle, I would like explain why the behavior can be observed:

thread 1 promises x=1.  This is certified, as x=1 can be written under arbitrary interference.
thread 2 reads x=1, and then writes y=1.
thread 3 reads y=1, and then writes x=1.
thread 1 reads x=1, and then fulfills x=1.

On the proof of optimizations: The paper draft does not have a detailed explanation on the results on optimizations and others.  This is due to the page limit for a conference submission, and we have a plan to expand the section 5 (Results) significantly.  Here I would like to sketch the proof of the reordering of a read and write.
Consider the following compiler transformation (RW-reordering; r1 is a register; x & y are shared locations):
    r1=x
    y=1

    ~>

    y=1
    r1=x

To prove this transformation, we need to find a simulation, i.e., for any target execution, we need to find a corresponding source execution.  Here is a rough sketch of the simulation:

When the target executes y=1, the source promises y=1.  This is certified because under arbitrary interference, the source can eventually write y=1.
When the target executes r1=x, then source executes r1=x reading the same value, and then fulfill the promise y=1.

Note that the idea of promise is essential in this proof.  In fact, promises are introduced to explain the reordering of writes before other instructions.

On the application to compilers: In secion 5 (Results), we presented the basic optimizations supported in the promising semantics.  We believe significantly many compiler optimizations, including constant propagation, common subexpression elimination and deadcode elimination, are explained in terms of these basic optimizations.  For e.g., constant propagation can be explained by reorerings and a merge:
    x=1
    ...
    r1=x

    ~>

    x=1
    r1=x // reordering
    ...

    ~>

    x=1
    r1=1 // merge
    ...

    ~>

    x=1
    ...
    r1=1 // reordering

But a compiler writer should be careful when dealing with loops.  For shared variables, it is not generally desirable to constant-propagate beyond a loop, due to the liveness property (discussed briefly in the paper).

On SC read/write/update: after writing the draft, we found out that our semantics for SC read/write/update (but not fence) are miscompiled to the Power architecture, and will remove this part (on SC read/write/update) from the paper.  I am stating this fact since the draft still contains materials on SC read/write/update.
It turns out that also in the axiomatic models, SC read/write/update are miscompiled to the Power architecture, under the usual compilation schemes (one with SC write -> sync; st, and another with SC write -> st; sync).  Which implies that SC atomics are hard to get right!

Note that the idea of promise is essential in this proof. In fact, promises are introduced to explain the reordering of writes before other instructions.

The "speculative promise introduction" idea sounds very promising. We had to introduce non-speculative promises for our &mut semantics - maybe we could improve that!

We had to introduce non-speculative promises for our &mut semantics - maybe we could improve that!

I am just curious, would you please give me a reference on the relation between promises and &mut?

Completely by accident I stumbled upon a deck of talk slides about this, linking it here in case it might be of interest.

As the author of those slides, I'm curious how they are related to this discussion.  Can you elaborate?

Agh. I pasted the wrong link! I wanted this one.
(So the back story is that a very old comment somewhere linked to that URL, with the context indicating that it was about parametricity, but the actual PDF therein is about the promising semantics. Figuring that the URL had been retargetted in the meantime, I looked up the slides about parametricity, which I had seen before, to verify (based on the comment) that it probably had been the previous target of the URL. Then I accidentally pasted it instead.)

That link is unstable.  Please use this one instead: http://www.mpi-sws.org/~dreyer/talks/talk-wg28-2016.pdf

FYI: The paper has been accepted to POPL.  We are in the process of revising it for the final version, and will happily notify you when that is available (in a little less than a month).

The paper is published: http://dl.acm.org/citation.cfm?id=3009850
We also corrected the SC load/store/update semantics, but in the axiomatic setting of the semantics: http://plv.mpi-sws.org/scfix/


Support retry when putting file to OSS and encounter 'dial tcp: i/o timeout' error

Summary
Sometimes the pod become failed due to putting main.log to OSS failure. The error showed in pod are:
2022-07-18T04:09:55.916Z OSS Save path: /tmp/argo/outputs/logs/main.log, key: 2022/07/18/testhhb9k/testhhb9k-4053391036/main.log
2022-07-18T04:10:25.923Z failed to put file: Put "https://xxx-artifact.oss-us-east-1-internal.aliyuncs.com/2022%2F07%2F18%2Ftesthhb9k%2Ftesthhb9k-4053391036%2Fmain.log": dial tcp: i/o timeout
2022-07-18T04:10:25.923Z executor error: Put \"https://xxx-artifact.oss-us-east-1-internal.aliyuncs.com/2022%2F07%2F18%2Fctesthhb9k%2Ftesthhb9k-4053391036%2Fmain.log\": dial tcp: i/o timeout"

It meet the timeout setting - 30s in the default config. I'd like to request for adding dial tcp: i/o timeout like error into this white list, so that the request can be retry again.
https://github.com/argoproj/argo-workflows/blob/2d1758fe90fd60b37d0dfccb55c3f79d8a897289/workflow/artifacts/oss/oss.go#L37
Use Cases
Make the request can be retried automatically when encounter dial tcp: i/o timeout error.

Message from the maintainers:
Love this enhancement proposal? Give it a 👍. We prioritise the proposals with the most 👍.

Would you like to send a PR and test it out? I'd also make sure your cluster has stable connection to that OSS address.

Hi @terrytangyuan , thanks for your reply. I believe the connection between our cluster and OSS address is stable since the error rarely happens. (But feel inconvenience for us)
Our colleague @jingkkkkai has an interest in working on this issue. He'll follow up and send the PR once he done.

Sounds great.


Add Hiatt Zhao to Contributors list

Hi  @hiattzhao, I'm quite elated about your pull request. I wanna evolve this project to addresses various problems faced by first-time contributors. I'd love to learn about your journey in open source community, the problems, pain points you had etc.
Could you explain how you felt when you went through the tutorial, made a pull request and learned that I merged it?
We’ve recently added social share  to our web app. Could you please go to https://roshanjossey.github.io/first-contributions/#social-share and share your first contribution to open source?
Also, check out projects with easy issues while you’re there.

Hello @Roshanjossey,
Actually I was a little confused about the pull request. I used GitHub Desktop and VS Code so I didn't use the terminal. After I made the change to add my name, I committed in VS Code and pushed it.  I thought that's all I had to do. I didn't know that I had to go to github.com and manually do a pull request. The github interface must have changed from your screenshot. There was a button for compare and a separate button for pull request.

After I clicked compare and filled out the form again I was able to successfully submit a pull request.
Thanks for making the tutorial! It was great to learn how to fork and merge, etc...
-Hiatt

@hiattzhao, I wasn't aware of the changes in pull request button. I'll try this and update the tutorial as needed.
I’d urge you to continue contributing to other open source projects.
We also have a slack team to help/mentor people trying to contribute to open source projects.
You can join the team by going to https://goo.gl/PM1Jdh


autoRelease issue/feature request.

Not sure to put this one in issue or feature request?
Scenario:

When autoRelease is true, due some reason if User goes offline (out of wifi range).
User edits a form, makes some changes try submitting and fails (which is expected).
But the local storage is cleaned up with the changes made when offline. I would think workaround will be set autoRelease false;  but it will keep consuming the web browser limit when different forms are accessed.

Possible solution:
Before doing autoRelease check navigator.onLine if true then continue else skip autoRelease code.
Can add a pull request if looks like a accepted solution?
Found a conversation which can help on this one..
http://stackoverflow.com/questions/3181080/how-to-detect-online-offline-event-cross-browser

@tbhavs cool stuff, gotta check it later ;)

There´s another situation I got... I had an error on the page that gets form´s data and when user gets back, the data is erased due to auto-release. This will happen when the file size exceeds the time and size limit I set. Of course, I can try to avoid it, but will not be easy in this network error example.
I couldn´t find instructions for manuallyReleaseData. How can I use it ? One solution would be to know the form reference that is saved on localStorage and manually clear it in the next page only If there´s no error. Is it possible ?

@simsalabim  Forgot about it and stumbled upon this one just now... Closing it now


Allow DB_CHARSET to be set in environment

We'll still use utf8mb4 as a default if DB_CHARSET is undefined, but we allow users to define their own charset. Sadly, some MySQL installations out there in the wild still don't support utf8mb4...

#230 breaks fresh installs on MySQL servers which don't support utf8mb4 yet.
Steps to reproduce:

Set up a MySQL server that doesn't support utf8mb4
Follow instructions at https://roots.io/bedrock/docs/installing-bedrock/
Complete installation wizard at /wp/wp-admin
An error message appears: WordPress database error installation: Unknown character set: 'utf8mb4'

Expected behavior:

WordPress should install cleanly.

This pull request allows users to define DB_CHARSET=utf8 (without the mb4) in their .env to make things work.

Surely you should be using the same version of MySQL and the same DB charset between environments, right?

I am not sure how that relates to the problem I mentioned. I'm new to bedrock, so please bear with me. How should I properly address the problem described above if not by this PR?

Environment variables are for settings that change between environments. If your production MySQL server is a version such that it doesn't support utfmb8 then you should change this config so it takes place in all environments.

So, where exactly do you expect people to set the charset if they're running a MySQL version that doesn't support it? Am I expected to run a fork of bedrock in that case?
The point I'm trying to make is that https://roots.io/bedrock/docs/installing-bedrock/ does not result in a working WordPress install in case the MySQL server used doesn't support utf8mb4.

You edit this line or just remove it.

Alright then. Should not https://roots.io/bedrock/docs/installing-bedrock/ mention a minimum requirement of MySQL 5.5.3 then?

edit: you should basically always be running a "fork" of Bedrock. It's a boilerplate project that you should customize.

ok, thanks.


Unable to start the boilerplate

Hi,
I encountered the following error when I'm trying to start the boilerplate right after cloning the repo:
Uncaught TypeError: Cannot read property 'get' of undefined
Here is the full error on the console.

Ecosystem:
OS: win 10
browser: chrome: Version 66.0.3359.139
extensions: adguard, ghostery, redux, react, onetab, boomerang, restlet client
node: 8.11.1
npm: 5.6.0
Setp to reproduce:

git clone https://github.com/flexdinesh/react-redux-boilerplate.git
cd react-redux-boilerplate
npm install
npm start
open the browser on  http://localhost:3000

disclaimer
I'm not a guru with react nor with redux
Regards

I think this is related to #12 since we're injecting the homeReducer

@ollie314 This is fixed now. Apparently I merged a PR without running it in local and it upgraded Redux from v3 to latest v4 and the code isn't syntactically updated to work with v4 and hence the chaos. I have downgraded Redux to v3 with this commit 5ec626d9ae6b9541fe94afa393e20942062a28ef and everything should be fine now.


aws command not found

Hi, i just follow the readme guide. My lambda have s3FullAccess. My "hello.sh" script is:

function handler () {
    set -e
    ls / >&2
    aws s3 ls >&2
}

Why the ls of root ( ls / ) works (i see logs) and the 'aws s3 ls' not show anything?
I invoke function with:
aws lambda invoke --function-name  --invocation-type RequestResponse --log-type Tail - | grep "LogResult"| awk -F'"' '{print $4}' | base64 --decode
Any idea?
Thanks

Hi @Nik1990 ,
using >&2 means you are redirecting stdout to stderr. stderr isn't logged in the CloudWatch logs, but instead is part of the return value. So, I would expect the output of your aws command to be in the file called "-" (from your aws lambda invoke command). Have you looked there?
If you are wanting the command's output to show up in the CloudWatch logs, simply remove  >&2.

Hi @gkrizek ,
I solved. I changed the timeout value of my lambda from 3 to 20 seconds (for a 128mb env).
My hint is to write in readme file this notes.
Thanks!

Oh, duh. Yeah that makes sense. The aws commands take a while to run.
This is in the readme notes:

The AWS CLI appears to be much slower than most of the AWS SDKs. Take this into consideration when comparing Bash with another language and evaluating execution times.


feat(operators): Add signature based on parameters collection

Resolve signature from name, parameters and return type values as per #168.
This change includes an update to the OperatorDoc type, because the return type of every operator needed to be included.
All existing operators have been updated as well to include the correct return type.
Some updates to the css were required to add colors to the signature.
Added a new pipe (ArgumentPipe) to create a nice tooltip when hovering over the arguments.

Codecov Report

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

@@           Coverage Diff           @@
##           master     #284   +/-   ##
=======================================
  Coverage   79.62%   79.62%
=======================================
  Files          17       17
  Lines         216      216
  Branches        9        9
=======================================
  Hits          172      172
  Misses         42       42
  Partials        2        2

Continue to review full report at Codecov.

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

First of all thanks for this much work! I will take a look at this pr and give some feedback.

@JWO719 I'm also pretty sure that a more UX proficient person (than me) should look at it. I made a couple of choices right now in the implementation, like colors and a tooltip that maybe could/should be done in an other way...

@DiedrikDM - please resolve conflicts


Repost doesn't appear as expected.

Describe the bug
The display of this repost doesn't show the content of the original post.

Also, does this share url display the expected format?

This appears to have been a temporary issue


[Catch2] find_package doesn't work

Describe the bug
find_package(Catch2 REQUIRED) was working on 101452334cf0f1ba5329fd07f8b8f37f81fa2fc1 but doesn't work on 81965f6b3f7e99c3018f914cb8a15c2c02adcd4c.
Environment

OS: Windows

To Reproduce

vcpkg install Catch2:x86-windows
Call find_package:

find_package(Catch2 REQUIRED)

Expected behavior
No CMake error raised.
Failure logs

CMake Error at C:/Users/Scpsosat/AppData/Local/pmm/1.4.0/vcpkg-81965f6b3f7e99c3018
f914cb8a15c2c02adcd4c/scripts/buildsystems/vcpkg.cmake:288 (_find_package):
  By not providing "FindCatch2.cmake" in CMAKE_MODULE_PATH this project has
  asked CMake to find a package configuration file provided by "Catch2", but
  CMake did not find one.

  Could not find a package configuration file provided by "Catch2" with any
  of the following names:

    Catch2Config.cmake
    catch2-config.cmake

  Add the installation prefix of "Catch2" to CMAKE_PREFIX_PATH or set
  "Catch2_DIR" to a directory containing one of the above files.  If "Catch2"
  provides a separate development package or SDK, be sure it has been
  installed.
Call Stack (most recent call first):
  cmake/vcpkg.cmake:16 (find_package)
  CMakeLists.txt:66 (include)

Fixed by removing CMake cache

Also got the same message, and it turned out I had to install the 64bit version of catch2 as my build was set to x64:
vcpkg install Catch2:x64-windows


Bump dependencies for 2.9.0 and 2.10.0

Waiting on

https://github.com/DACH-NY/canton-drivers/pull/525

to get merged, so that there will be a 2.10.0-snapshot artefact for the drivers dependency.


Accidental bypass for react/jsx-no-bind allowArrowFunctions

We've recently started to get rid of our usage of arrow functions in component props for similar reasons to that mentioned here. We went ahead and set:
'react/jsx-no-bind': ['error', {
      allowArrowFunctions: false,
      allowBind: false,
}]

but realized we were still able to get away with using something like:
const someFunc = () => onClickHandler(userId)
<SomeComponent onClick={someFunc} />

So we didn't fix the problem, we just accidentally tricked it. Is this expected behavior or is this a bug?

It's not realistic for a rule to always be exhaustive; there's often a way to trick them.
However, it seems reasonable that an arrow function in the same scope should be warned on.

Agreed. The primary concern was that for someone not familiar with the implications of anonymous functions in props, they might think the rules is just stylistic. I think checking current scope would reject the 99% case of extracting to a variable.


feat: Introduce a 'text' argument for the TextClassificationRecord

This PR introduces a text argument for the TextClassificationRecord to make the records more consistent with each other. It also helps a lot in cases, where we provide a simple string to the inputs argument, and when we load the records from Rubrix again, we always have to extract the text key from the inputs dict. In the tutorials we often do this:
rb.log(TextClassificationRecord(inputs="string"), "mock")
records_df = rb.load("mock")
records_df["text"] = records_df.inputs.map(lambda x: x["text"])

With this PR, the recommended way would be:
rb.log(TextClassificationRecord(text="string"), "mock")
records_df = rb.load("mock")

For now, we still accept strings in the inputs argument, but in the future, this should be deprecated.
To Do:

[ ] add tests
[ ] update documentation/tutorials

@frascuchon Could you have a quick look at this proposal? If you are ok with it, I will tackle the ToDos.

In general I feel confortable with the approach. Just some question about data loading flow:

Logging records using the text property, will create records with inputs.text field in server, isn't it?
Loading old datasets with this new data model with duplicate the text info in text and inputs.text columns ?

Logging records using the text property, will create records with inputs.text field in server, isn't it?

Yes, the server data model does not change, text="mock" is basically a shortcut for inputs={"text": "mock"} .

Loading old datasets with this new data model with duplicate the text info in text and inputs.text columns ?

Yes, even if you create a new record with rec = rb.TextClassificationRecord(text="mock") it will copy it to inputs, so rec.inputs == {"text": "mock"}. Since i made text and inputs immutable, I think this is fine.

Great!


Are there plans to support the AUTH command?

We're using a redis installation that requires authentication but it seems there is no support for authentication in the current version.  Is this planned?

You can authenticate using AUTH command:
connection::ptr_t conn = connection::create();
reply auth_r = conn->run(command("AUTH") << "password);
if(auth_r.str() == "OK")
{
    conn->run(command("SET") << "foo" << "bar" );
    reply r = conn->run(command("GET") << "foo" );
    std::cout << "FOO is: " << r.str() << std::endl;
}

Or you are talking about connection_pool and simple_pool classes?

Sorry, I was talking about connection_pool specifically.

You can implement it easily as I did with database here. So use the password to authenticate or throw an exception. It should be straightforward to do it.
After, if you would like to open a pull request, I'll be happy to merge it.

Unfortunately it can't be done quite like that, because in create_master_connection()/create_slave_connection() the authentication command needs to happen before get_role() is called.  Then there is also the question of whether the authentication needs to be done for both masters/slaves and sentinels, and whether the two should support different auth params too.  What do you think?  I can open a PR once we agree on the features you want to support.

Yes you are right, authentication must be done on those functions.
I think authentication support for master/slaves should be enough. If you need support for authentication for sentinels, you can add it too, with different passwords. They can be implemented as setters on connection_pool, like set_password and set_sentinel_password. Current exception handling should work with this kind of stuff too, just throwing them on the place where this code will be added.

Just opened a PR.  Let me know what you think.  I ended up adding a new exception type that is thrown if auth fails.  On another note - if auth is required but not provided, the get_role method should probably throw an exception as well.  When I was originally testing this without auth, I just got a message that the role didn't match what was expected, which wasn't the actual problem I was facing.

I've merged it, thanks!


Chat Link

I'm confused by the chat link, it links to discord, so first what happened was... nothing, because I hadn't signed into the rust discord I guess.
Then it linked to a chat that had nothing in it.
Was looking to chat about tide and using it to create a matrix.org server, but where to go?

Just notice: tide has been transferred to http-rs recently but Discord link still points to the old place on Rust Discord. So we should find a new chat space and point to there?

The Discord can't browse.Please use gittter.

@JohnTitor yeah, we should find a new space for chat. I'm thinking perhaps we could piggy-back off the async-rs server, or else setup something new. But I don't really want to spend extra time managing more servers haha; I already have too little time haha. Do you have any opinions?

@yoshuawuyts I don't care where it is, and I would like to provide some help if you need help :)

@JohnTitor I've pinged the async-rs mods to get their input on linking to the async-rs discord server. Will wait for feedback from them before moving this ahead (:+1:
If you haven't joined already, please feel free to! https://discord.gg/JvZeVNe

@yoshuawuyts no worries, I've already joined!
Once the mods and admins approve that, I'm happy to submit PRs to replace the links.

I believe https://discord.gg/x2gKzst should invite folks to the tide channel directly now; mods just approved it it seems :sparkles:


Bug: HAR fix for yayo animation causes mimics to stay visible when hiding

Description
when HAR fix for Yayo Animation is installed(no alien races using that framework have to be installed), mimics are visible whilst hiding, though they have no problems mechanically with this one

Log
https://gist.github.com/HugsLibRecordKeeper/e489f11169d9b9e955b684ad36f21628

Absolute hype. I've had a few reports on this but no modlist or log or anything to figure out what was causing it. I'll take a look and see what i can do.

took me a while to nail down myself, until i had an epiphany that it could be yayo's animation, which wasn't it, then i realized har fix might be catching their visuals

Turns out it's not even Yayo or that HAR fix, it's HAR itself according to your log and me just testing HAR alone.
PawnGraphicSet.ResolveAllGraphics: PRE: AlienRace.HarmonyPatches.ResolveAllGraphicsPrefix

Looks like HAR is patching ResolveAllGraphics which is what mimics use to switch textures on the fly. big oof. This may take a bit.

Better news, it wasn't that patch, it was the ChangeKind being patched.
 public static bool ChangeKindPrefix(Pawn __instance, PawnKindDef newKindDef) =>
  __instance.kindDef == PawnKindDefOf.WildMan || newKindDef == PawnKindDefOf.WildMan;

This'll wind up getting fixed in HAR actually, so I don't need to do anything to solve this myself. the best kind of bug.

Fixed as of https://github.com/erdelf/AlienRaces/commit/55406c001790eb658b5f99b5db51dbaa868f78f5


Make container test fixture hack a bit less bad

This is helpful as I'm working on replacing AppGetObjects with AppGetLayout. We'll be able to remove the autouse fixture shortly. But until then, this at least replace one hack with a more narrowly scoped hack.

@prbot approve


Question: Prevent pre-commit hook to continue on committing?

I'm trying to prevent git/vim from opening when there's a lint warning/error.
  "scripts": {
   ...
    "lint": "av lint",
   ...
  },
  "pre-commit": ["lint"],

Right now, when running git commit the pre-commit hook will run the lint, and even though there are lint errors, it won't prevent the developer from committing the work. Can you suggest a solution?

@3rd-Eden  @mcollina  @kriskowal @alexindigo would you have a suggestion?

I don't know what library are you using, but it's not exiting with exit code 1.

{
...
  "scripts": {
    ...
    "lint": "lint",
    ...
  },
  "pre-commit": [
    "lint"
  ],
  ...

  "dependencies": {
    ...
    "prop-types": "^15.7.2",
    "react": "^16.13.1",
    "react-block-ui": "^1.3.3",
    "react-dom": "^16.13.1",
    "react-dropzone": "7.0.1",
    "react-hot-loader": "^4.12.20",
    "react-hot-loader-loader": "0.0.7",
    "react-html-parser": "^2.0.2",
    "react-input-mask": "^2.0.4",
    "react-router-dom": "^5.1.2",
    "reactstrap": "^8.0.0",
    "save": "^2.4.0",
    "tus-js-client": "^1.8.0",
    "uuid": "^7.0.3"
  },
  "devDependencies": {
   ...
    "chai": "^4.2.0",
    "cross-env": "^5.0.5",
    "enzyme": "^3.11.0",
    "husky": "^4.2.5",
    "lint-staged": "^10.1.6",
    "moxios": "^0.4.0",
    "pre-commit": "^1.2.2",
    "prettier": "^1.19.1",
    "react-test-renderer": "^16.13.1",
    "sinon": "^7.3.2",
    "sinon-chai": "^3.5.0"
  }
}

@mcollina my fault there's my package.json

I have also tried --bailOnLintError true without avail


Fix factory relationships tests

Idea for fixing tests
PHP Fatal error:  Trait "Illuminate\Database\Eloquent\Factories\HasFactory" not found in
/home/runner/work/compoships/compoships/tests/Models/Allocation.php on line 26

avoid use HasFactory error, create a empty dump trait with alias
Also Fixed StyleCI

Amazing! Thanks for the PR! Looks excellent!


The connection has not been established yet error on console just after onclose event is triggred.

I am getting the following error on close in production
min-bower-20180201_224511-57e1187.js:136 Error: InvalidStateError: The connection has not been established yet
at d.send (min-bower-20180201_224511-57e1187.js:21168)
at b._transmit (min-bower-20180201_224511-57e1187.js:21169)
at b.disconnect (min-bower-20180201_224511-57e1187.js:21170)
at Object.disconnect (min-bower-20180201_224511-57e1187.js:21177)
at websocketService.disconnect (min-app-20180201_224511-57e1187.js:28986)
at min-app-20180201_224511-57e1187.js:28856
at m.$emit (min-bower-20180201_224511-57e1187.js:164)
at onClose (min-app-20180201_224511-57e1187.js:492)
at d.sock.onclose (min-app-20180201_224511-57e1187.js:499)
at d.c.dispatchEvent (min-bower-20180201_224511-57e1187.js:21168)

Can you provide the code snippet used to provoke this issue? Is this behavior reproducible?


Prevent possible null reference exception

HttpException initialization in line 358 doesn't check whether httpWebResponse can be null.
Since nothing inside of the if block is supposed to happen if the response cannot be casted to HttpWebResponse, logic is simplified and extra checks are avoided by using is syntax.

Hi @eduherminio
Thanks for contributing.
As your PR is accepted for the Hacktoberfest so can you please fill this form to become eligible for LoginRadius cool swags. :)
Thanks & Regards
Indrasen

HI @eduherminio
Thanks for your contribution to this project.
This particular request is included in our latest releases version 11.3.0 https://github.com/LoginRadius/dot-net-sdk/releases/tag/11.3.0.
Please let me know if you see any other areas of improvement.
Regards
Indrasen


Forest priority for contributing attributes

"If there are multiple forests that would satisfy one of these rules, then the creation order (date/time) of the Connectors (forests) is used to determine which forest contributes the attributes."
It is not clear which forest takes precedence - the one with the oldest Connector creation date/time or the one with the newest?

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

ID: 698bae7a-c593-1a6c-151b-6bfa7c540270
Version Independent ID: 0b29c2df-4697-827e-acae-5d31f886789a
Content: Azure AD Connect sync: Understanding the default configuration
Content Source: articles/active-directory/hybrid/concept-azure-ad-connect-sync-default-configuration.md
Service: active-directory
Sub-service: hybrid
GitHub Login: @billmath
Microsoft Alias: billmath

@banzaisi Thank you for your feedback! We will review and provide an update as appropriate.

@banzaisi thanks for the feedback. I agree that it's unclear.
The first forest synced will take priority.
I have made a pull request to include this. https://github.com/MicrosoftDocs/azure-docs-pr/pull/80718
CC: @billmath and @mmacy for approval


After login access token is expired, MSAL interceptor acquire token for every request

Hello I am using MSAL with Angular. When i first login the website work correctly as expected. After a while, i think after the first token refreshing, MSAL interceptor start to make acquireTokenSilent for every request.
I checked the interceptor and i found that the following method is always returning null after the first acquired token expires and renewed:
const tokenStored = this.auth.getCachedTokenInternal(scopes);
This happens only on IE Edge and IE 11
Is there a workaround for Angular for this issue ?
Best regards,
Emad

Closing due to no response. Feel free to reopen if this is still an issue.


Error processing a message with key NULL.

I am not 100% sure what is causing this error in the ksml/runner and also not why it is referring to a Json deserialiser:
Caused by: io.axual.ksml.exception.KSMLExecutionException: Error while executing the Kafka Streams topology: Json serde not found for data type null
I believe it has to do with the fact that the message has no key (or a key with a null value).
The message looks like this (in message browser in the Axual Self-service environment):
"message":{
"partition":4
"offset":951
"timestamp":1652912264843
"headers":[...]
"value":
"0000000911020e43524541544544021a4d6574657252656164696e6773021470352d70..."
"key":NULL
}

The key is NULL and the value is a binary string.  I configured the KSML app like this, with keyType none and valueType bytes:
streams:
  p5meterresponse:
    topic: APP9329_LianderP5MeterResponse
    keyType: none
    valueType: bytes

functions:
  print_message:
    type: forEach
    code: "print('key='+(key if isinstance(key,str) else str(key))+', value='+(value if isinstance(value,str) else str(value)))"

pipelines:
  main:
    from: p5meterresponse
    forEach: print_message

I also tried keyType string but then I see a null pointer exception when reading the message.
The message we are trying to read is actually an Avro message from the Liander platform, but for demo purpose I would like to read it as a binary type.

Hi Harold, is there a stacktrace somewhere in the log and if so, could you post it? Thanks!

Sure, here it is.
stacktrace.txt
Like I said, I think the issue may be caused by the key/value types in my configuration, except that I wouldn't know what type would be correct in this case. But maybe it is actually a bug?

We updated some of the code involved and introduced a better way of handling type "none". New images were pushed. In the future the solution may need some more refinement, but hopefully this solves the crashes for now. Can you pull and check?

In order to isolate the issue I have set up a personal test stream (test_harold) in the Axual environment and I tried to crash the runner by producing messages with and without a key. And sure enough omitting the key is enough to really upset it :)
This was with key type "string" by the way.
I will pull the new image, redeploy and try again... will let you know asap.

Thanks for verifying and good to hear!
If you know that the key is always left null, you could just specify "none" as the key type. That should work now in the new build equally well and will prevent parsing in any non-blank (ie. non-string) key that the other party may produce on the topic.
On the side note: consumer offsets should be committed automatically. Crashes of the KSML runtime may cause offsets not completely committed but this should not occur for normal runs. Did you verify this restarting of consumption on the new build? Are you using the same consumer group id / application id between runs?

Closed by #48 .

OK, I re-tested. First of all, the messages are committed just fine. But I noticed that sometimes messages seem to be processed after quite a long delay, which may have confused me. Nevertheless, I seem to get them only once between restarts.
As for the original issue, that appears to be solved. Specifying either key type string or none  will work without crashing; the difference being that for key type none the key is actually ignored and logged as "None". This is a nice one for the documentation btw, as type none seems to be an undocumented feature. I found it by looking at the source code :)
Thanks for fixing this issue, I will close it.


Datacube build without Mask

Create datacube builder without mask, see version 0.8.2

It only applies for Orthotiles
Scenes are properly masked before hand. create mask while loading initially

finished with https://github.com/initze/thaw-slump-segmentation/commit/dceef02f1d5812c116fa6b4bdc2b06a938c80ba6


Unify data normalizer serialization functionality

Follow up for https://github.com/deeplearning4j/nd4j/issues/1550
This PR introduces a single entry point for serializing and unserializing data normalizers transparently. To support both DataSet and MultiDataSet normalizers, I introduced a base interface for both types of normalizers. Users can also define custom normalizers and serialization strategies and register them with the default serializer.

Build started sha1 is merged.

Build finished. 1988 tests run, 51 skipped, 12 failed.

Refer to this link for build results (access rights to CI server needed):
/job/nd4j_PR/325/Build result: FAILURE[...truncated 4.69 MB...]	at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:544)	at hudson.model.ResourceController.execute(ResourceController.java:98)	at hudson.model.Executor.run(Executor.java:405)Caused by: java.io.FileNotFoundException: https://api.github.com/repos/deeplearning4j/nd4j/statuses/8e6b5793a4aaedce1847d2b1a747fb0fb846b6cf	at sun.reflect.GeneratedConstructorAccessor50.newInstance(Unknown Source)	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)	at sun.net.www.protocol.http.HttpURLConnection$10.run(HttpURLConnection.java:1890)	at sun.net.www.protocol.http.HttpURLConnection$10.run(HttpURLConnection.java:1885)	at java.security.AccessController.doPrivileged(Native Method)	at sun.net.www.protocol.http.HttpURLConnection.getChainedException(HttpURLConnection.java:1884)	at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1457)	at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1441)	at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:254)	at org.kohsuke.github.Requester.parse(Requester.java:535)	at org.kohsuke.github.Requester._to(Requester.java:262)	... 12 moreCaused by: java.io.FileNotFoundException: https://api.github.com/repos/deeplearning4j/nd4j/statuses/8e6b5793a4aaedce1847d2b1a747fb0fb846b6cf	at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1836)	at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1441)	at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:480)	at sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:338)	at org.kohsuke.github.Requester.parse(Requester.java:525)	... 13 more

Any thoughts?


Add Unit/Regression Tests for Subgraph Code Including Mocks for Subgraph State

Solved by @itourkogiorgis with this PR https://github.com/radicle-dev/drips-js-sdk/pull/12


[[filename]] link renaming error

There are file1.md and file2.md files as shown below.
file1.md
# title1

[[file2]]

file2.md
# title1

If I open file1.md in helix editor and rename the [[file2]] link to [[aaa]], the expected behavior is as follows.
file2.md --> aaa.md
[[file2]] --> [[aaa]]
However, there is no change in the name of file2.md and the [[file2]] link, and the name of file1.md being edited is changed to aaa.md.

Hello!
In this case, the text [[file2]] is not referenceable, so renaming on that text will default to renaming the file that the cursor is in. This is the same as renaming on any blank space in the file, while renaming on a heading, which is referenceable, will rename that heading not the file. This is explained briefly in the readme.
In short, renaming on links doesn't work right now. If you want to rename a file, you must move your cursor to that file, find a place without any headings, and rename. It will then rename the file in the filesystem and in all of the links referencing it.
I think your use case is valid though, so I have opened an issue #126


Move Thread dumper to core.

This moves utility from storage to core tests.
The utility dumps threads after 30 minutes after starting first test.
This is to troubleshoot test runs that run too long.
The 30 minutes interval worked decently in storage suite for months. Ability to tweak it will be deferred until needed.
Original https://github.com/Azure/azure-sdk-for-java/blob/c58e01ace40b9dbf7a2e5edb38ed7ebd0904e2df/sdk/storage/azure-storage-common/src/test-shared/java/com/azure/storage/common/test/shared/ThreadDumper.java#L14
can be refactored when azure-core-test ships.

API change check
APIView has identified API level changes in this PR and created following API reviews.
azure-core-test

/check-enforcer override


Save all motor positions to the head section of a scan file before the scan starts

Can we automatically save the output of "wh_pos(all)" into the head section of a scan file before the scan starts? This is a very desired feature which allows us to find out the state of the instrument for any scans.

This probably should be reported against bluesky, not ophyd, but yes.
The plan is to also add an easy way to monitor a motor during the scan in case of drift and what not.

attn @klauer @danielballan

Right. We already do some of this -- for example, we record the original
position of a motor in a dscan -- and now it should be easy to extend this
to capture anything the user desires.
On Wed, Dec 23, 2015 at 6:52 PM Thomas A Caswell<EMAIL_ADDRESS>wrote:

attn @klauer https://github.com/klauer @danielballan
https://github.com/danielballan
—
Reply to this email directly or view it on GitHub
https://github.com/NSLS-II/ophyd/issues/187#issuecomment-167010633.


How feasible would it be to use this as an Android backend?

Can this backend be used to create a simple hello world Android App?
If not then what would need to be done to make that work?

You need to port over the runtime system. Then you need to hack to make the buildsystem work. I tried it a while ago and got appalled by the Ant voodoo Android is using. Further you need some way to get feedback from the app, since console projects are not quite what Android was made for.

Thanks for the direction @JanBessai. I have been trying to hack on this to make a an android backend in my spare time. One of the things I can't seem to figure out is how to handle the code generation since android doesn't have a main function, it only has a main Activity class with callbacks to handle the app's life cycle.
Is android dissimilar enough to warrant it's own backend?
If it should be apart of this backend does anyone have an idea/opinion about how  to tell it to generate a main Activity class as opposed to a main function (like target android instead of just java)?
Does anyone have an idea about how the code generation should handle the life cycle callbacks like onCreate, onResume, onStop, etc?

While I've been working on the Java backend for Idris, I'm not sure that this is the best approach for Android. In particular, there are some advantages to using the Java backend, e.g. when JNI interop is necessary, however, it is not clear that it will be as performant as the C backend and in fact I've been hitting issues with to large methods (4K limit and so on). I think this is down to defunctionlization and other transformations that happen in lowering, done by the Idris compiler, but given the current compilation method is not going to be trivial to solve.
To this end I would think it might make more sense to use the C backend for Idris and run the application as a native Android application. This would avoid a lot of the issues that might come up with Java and possibly you will see better performance and avoids the two large method problems. Of course, this will depend on what you want to do with Idris code on Android and if you are expecting a lot of interop with Java, then this might not be a good design choice, but if not I expect this will actually be a more stable approach.

Ultimately what I would like to do is implement a generic graphics library a lot like elm's graphics library. Only I want to be able to use the library for multiple backends.
So as an example one would use a data structure in idris that could describe an image with it's attributes and where it should be placed. Then using the FFI you would send that data structure to a "render" function that would be implemented for whatever backend you would like. In C it could use GTK, in javascript it could use html, and with Java it could use android.
I think I could use opengl instead of native android gui elements. However I would like to allow for an ability to use native gui elements if someone wants that. So if I made a library that implemented a list view, I might want the javascript render function to just use a simple <ul> tag, but for the java backend I might be able to choose between an ffi library that renders a list view using opengl, or a native android ListView class. So I want the option of good interop with Java.
I guess I can just focus on other targets like just iOS, and javascript to flush out some of the details and save android for later.
If anyone has any thoughts or ideas about this please let me know.


requestId is only available when an exception occurs

In the library classes, only the exceptions do expose requestId (Well, I checked CustomerService and GoogleAdsService, but I assume this is for other classes also the case). I am pretty sure requestId is also available for calls that did NOT result in an Exception.
Still we want to learn it, log it, and use it to communicate with Ads API when we have questions about a result. Further we may need few similar attributes, like server response time and operation count.

To get an idea for a solution, look at Analytics Reporting API v3. The response is a structure, with:

Field "rows" with the actual result of the API call
Field "query" with the request
Many other fields, like the view to which the call was made

When following this example, all responses of Ads API will lead to a structure, each with fields like requestId, number of operations, maybe the request, and a field with the data that was requested.

Hi Zwitze,
I think the difference here is due the way in which the Analytics Reporting API was designed, v/s GoogleAds API was designed.
The important part around this discussion is that Google Ads API is a grpc API, and grpc allows two ways to return metadata from servers.

You return the metadata as part of the response, like the way Analytics API does.
You return the metadata in a metadata header. (Similar concept as HTTP headers in HTTP 1/1).

Google Ads API went with the second choice, so you could get back the metadata in normal responses also, like this:
GoogleAdsResponseMetadata metadata = new GoogleAdsResponseMetadata(client.Config);

// Add the campaigns.
    MutateCampaignsResponse retVal = campaignService.MutateCampaigns(
        customerId.ToString(), operations.ToArray(), metadata.CallSettings);

Right now, only the requestId is exposed this way, but we plan to release other metadata fields that are available in AdWords API as we get closer to feature parity.
I'll update the wiki guide with more details on client library usage, it's a task that has been overdue from my end.

This is now documented in the README.md.


Added place picker and fixed minor bugs

Issue Reference
This PR addresses the Issue : Fixes #248 #225
Changes

Added a placepicker which is shown when the auto location fetch part fails with an error

Or when the user wants to enter manually

Requesting for others doesn't enter the current location and empties the field

Now on closing the instructionModal calls the gps location fetching part, rather than only when the user clicks the button

Disclaimer: the gps accuracy is set to "0 Meters", reason for this is google auto complete api doesn't seem to provide the accuracy. Also the user is entering the location manually.

it uses, google places api, which is free for first 10k or so requests, and for the rest i'll manage

Can someone get a Google API key with billing enabled?. (I think I saw a comment saying someone having a 3000$ Google credit.)

@msrshahrukh100 how about we pool to make a list of google API keys, and the site uses a different one every minute?

yea we can do that, or else if someone has some google credits than we can use his key, or else the cost may not be that high, moreover for most users the browser navigator should work fine,

I am testing this

Urgently needs to deploy this. Rescue team cant use inaccurate gps locations

@biswaz checking it now.

@msrshahrukh100 could you please join the slack channel #testing (see readme for info)? Could you please respond to @sumodm? it seems the location is not poping up. Could you explain the expected behavior?

ok I am coming on slack

Shouldn't clicking on "Requesting for others" checkbox show this ('Enter location manually') input field automatically?

BUG : Place search not working when "Requesting for others" is checked.

@msrshahrukh100 Tested the same.
@biswaz @vrthra The functionality is that when the user doesn't enter GPS coords, the location field is enabled which is queries against Google Maps. So instead of the location text field, we get real locations which can then be fed to maps.

Added a placepicker which is shown when the auto location fetch part fails with an error
Or when the user wants to enter manually
Requesting for others doesn't enter the current location and empties the field
Now on closing the instructionModal calls the gps location fetching part, rather than only when the user clicks the button

1, 2 working :+1:
3: Do we need to handle the case where people want to enter specific details like GPS coord etc that they have of other people. @biswaz @vrthra @msrshahrukh100

well for case 3, its because there was some issue where the location of the one making a request on behalf of someone else was recorded. So I emptied the field and displayed the manual location input box.
Also the lat lang field is set as blank=True, in models so a user will be able to submit the form.

@msrshahrukh100 Also do we need one of location field at the top (we end up having two redundant location fields). May be we can make the first location (location details) and your one, the location (coarser) since this API you are using might not provide very granular details

oh yes, i get your point, in that case we can just use the same old location field and display a drop down there

@msrshahrukh100 It seems a little flaky also. Initially, I thought I might have done some mistake but doesn't seem to work all the time. Will update you when exactly it is not working.

so what do you suggest, we should rename the fields or what?

oh ok sure

@vrthra Your merge caused the recent 500 error. Please don't merge. Use your permissions only for issue tracking

Good work.

Hi, is this in or out or still under testing or ? There's 2 PR's for location picker, nothing up on site yet.

It's there on site

Is the Google Location API credits still required for this?

no I have already added one

@codelust Yes actually

@codelust but there is a free tier is their

No it's not a free tier one

Is this on production? I found that the GPS location is missing (shown as NA) for requests created for others


[release-2.3]fix CVE-2021-43565

The related issue: stolostron/backlog#18854
Signed-off-by: zhujian<EMAIL_ADDRESS>

/assign @elgnay @ldpliu

/approve
/lgtm


Passing credentials via credentials_base64 breaks the installation

Your environment

Chart Version: 1.7.1

Helm Version: 3.8.1

Kubernetes Version: v1.23.4
What happened?
I am using the op cli tool to get the credentials.json from a 1Password vault and register it to an ansible variable. Then I'm base64 encoding the json and pass it to the helm-charts connect.credentials_base64 value.
Because of the stringData: type in the secret, the base64 value gets encoded again.
What did you expect to happen?
If a _base64 variable is provided, then it should be able to take values without using --set-file flags. This would make it compatible with different scenarios, where you don't want to store the credentials json in an actual file or retrieve it from a script.
Steps to reproduce

Pass a base64 encoded credentials.json string to the connect.credentials_base64 value

Hi there, thanks for raising this issue. I can certainly see this being problematic for certain use cases. We will look into providing a good solution for this.

Should be solved in #196


Rejoin space?

I left the "space" created by the LinkedIn bot and can't seem to find out how to rejoin it or re-create it. Is it possible to do that? In other bridges, I can run a "sync" command to recreate the spaces, but there doesn't seem to be such a command with this bridge. I've tried logging out and logging back in to no avail.

As an admin, I was able to find the abandoned space with clean-rooms. It showed under "Unidentified rooms (U)". I hoped that by deleting the room, it'd get recreated for me. No dice :(.


Are there any pretrained models? Where can I download them?

Hi,
The pretrained models of GhostFaceNetsV1 can be found in https://github.com/HamadYA/GhostFaceNets/releases
For GhostFaceNetsV2 they are corrupted and I am waiting for a machine to be available to reproduce the results