Online calibration feature implemented

I have added a new feature that is online calibration. Yo can calibrate the gamepad while you are playing.  How to use and a review of the features is explained in a file that I added to documentation.
I have implemented this like a new group that is calibratable. It needs a key to start calibration process, an axis to calibrate and other key to say save this value to calibrate the data. It is implemented thinking in using wiimote like light gun in MAME or nestopia, and calibrate the gun while you are playing. And it works!!
I have implemented a linear calibration, but you can extend the abstract class calibration and implement other calibration models. All we have to do is to add parameters to the group saying which calibration model we want.

Very cool.
Calibrating the axes is a serious issue, and this helps. I like the idea of having a button to press when setting the min/max values.
What are user_value and game_value? It seems like we have a few coordinate spaces here:

The data being sent by the input source
A mapping of that data onto the physical world (user_values[]? But set with get_game_value?)
A mapping onto in-game results (the in-game reticle)

Is the user data the physical mapping, as it represents the range of motion the user desires? So when calibration is done the range of motion done by the user is transformed precisely to the range of the desired reticle motion?
If we extended the Calibrate model to another calibration, the surrounding code would need to understand the hidden state machine of the calibration? I guess that's not too bad-- they all likely need their own special data points anyway.
One issue is that this means wm_home can't be used for much else than a recalibrate button. However, within the limitations of the current event translator interface I don't see a way around that. And if this is already letting you enjoy light-gun gaming with a simple wiimote, I'm all for including this in MG as an option for those who seek it.

I think you refer to the code to save data for calibration:
+ case CALIBRATE_WAITING_MY_INPUT_0:
+                user_values[0] = get_game_value(value);

This code is a little tricky. Think in the case we make a reset before calibrate. We set a=1 and b=0. if we apply this we have :
user_value = input_value.

So we dont have transformation. We save the raw data. And if you apply all the ecuations you see you have a simple linear calibration
If we calibrate once and we want to calibrate again, but composing with the new calibration with the current calibration. I need the data in that way, so i can resolve the ecuations to compose the calibration. It is tested and works.
Perhaps, I need to put comment with the ecuations i develop to get this solution.
So the user_value is the data the game see in that moment, but the controller is in the state the user wants at the end of the calibration.
We only need to extend the calibration class and implement all the methods:

start_calibration -> initalize your data for calibration, and put the machine to non sleep state.
save_calibrate_data -> save data for calibration and at the last step, you have to adjust the  translation and put the machine to sleep.  You can take more or less values if you want. The machine only terminate when your return to your sleep state.
is_calibrating: Only check if you are in sleeping state. It tells to calibratable if has to send data or not.

If you want to create a new calibration you can use whatever states you want.  Because I define the enum inside the class, is not visible outside. With this interface calibratable only needs to know if the state machine is sleeping or not. For example:
class MyCrazyCalibration : public Calibration {
typedef enum {
        CALIBRATE_SLEEP,
        CALIBRATE_WAITING_MY_INPUT_1,
        CALIBRATE_WAITING_GAME_INPUT_0,
        CALIBRATE_WAITING_MY_INPUT_1,
        CALIBRATE_WAITING_GAME_INPUT_1,
        CALIBRATE_WAITING_MY_INPUT_2,
        CALIBRATE_WAITING_GAME_INPUT_2,
   }StatusCalibration;

Now we can take 6 points to a second grade polinomial calibration.
Other thing  we need to extend, is the declaration model to can choose a calibration model or other. For instance:
const char* calibratable::decl = "key, axis, key = calibratable(axis_code a, string calibration_model)";

About wm_home, if you see the documentation:
<gamepad>.(<key,<axes>,<key>) = calibratable(<axes_code>)

So we can put wm_home in first place or another key. for instance wm_1. It would be a good idea put power button of wiimote? I dont know if it is posible, but it would be very useful for this example.

Ah. I think this is becoming clearer to me. The calibration just needs pairs of data points (user_value, game_value), where the first value is the observed (possibly already calibrated) value when the axis is held at a desired point, and the second value is the one we wish to output after calibration when we observe that user_value again.
So it actually isn't important that the first test points be at the top left corner and the second test points at the bottom right, we just need two distinct locations.
You described the calibration process as

Set top left (user)
Set top left (game)
Set bottom right (user)
Set bottom right (game)

If my understanding is correct, this would achieve the same calibration (but possibly harder to do precisely)

Set top left (user)
Set top left (game)
Set center (user)
Set center (game)

And then the equations are just the first order linear solution that passes through those two points. A quadratic solution would need three test points, and so on.
From the perspective of the calibratable event translator, oblivious to the underlying calibration method, it just needs to keep sending  (user_value, game_value) pairs until the underlying calibration is sleeping/satisfied.
If this is the case, can we change the send_calibration_value interface to just directly take pairs rather than the hidden state machine? i.e. send_calibration_point( int64_t in_value, int64_t out_value)? Or do you anticipate a future calibration style not being interested in pairs? I think we can just ignore the second value in those settings...
Overfitting polynomials can be a big issue as the degree increases, so it might be wiser to let the calibration receive more test points than it requires, and doing a least-squares solution. This might motivate using the start calibration button also as a stop calibration button, and let the user determine how many test points they care to send. (if they send too few, we can just abort the calibration).

About composing the calibrations: My understanding is that this just simplifies steps 2 and 4 of the process above, since setting the game-dependent values might be difficult if the original calibration is bad. Steps 1 and 3 should be the same regardless (i.e. same wiimote motions), and the math will work out to do the right thing: pointing the wiimote as in step 1 will output values that match step 2.
I think if we just always send (raw user_value, raw game_value) pairs, the math works out the same. Since the game_value is just the raw data that makes the game respond as desired, and the user_value is just the raw data that comes from pointing the wiimote as desired, neither really depends on the calibration (i.e. these are just some ideal constants). Composing the calibrations just makes it easier to key in  and set the game value we desire. Doing it this way would likely avoid some numerical/rounding issues from doing the intermediate calculations, and avoid needing to adjust like on lines 102/103 of calibration.h.
Since a bad calibration makes it difficult to accurately set the test points, it is important to have the ability to reset it. However, I think composing the calibrations might be the better default behavior.

Yes, it is good that the recalibrate button can be set to something else, but my issue was that whatever button it uses can't be used for anything else. However, in a wiimote-pointer setting, wm_1 and wm_2 are pretty good choices. They likely aren't being used for anything anyways.

Yes, if you make the calibration in this way:
1 . Set top left (user)
2. Set top left (game)
3. Set center (user)
4. Set center(game)

Your understanding is correct. It would work, but is harder to be accurate because of human factor.

send_calibration_point( int64_t in_value, int64_t out_value). It would be possible to make this, but I see some issues with this model:

You need to implement code to take first input and wait to the second input in calibratable, so you need more logic there.
With the current implementation the calibration process is totally customizable. For instance, you could implement a  calibration, where you are more interested in save inputs in other order, for example you want:

min user input.
max user input.
min game input
max game input.

It could be a good idea to take more points than 4 and implement a linear interpolation or whatever intepolation method. You only needs maths, points and extend calibration class.

"About composing the calibrations". Totally agree with you. But is the first fast implementation, that I thought.

"Since a bad calibration makes it difficult to accurately set the test points, it is important to have the ability to reset". I have implemented the ability of reset. I explained it in the documentation, and here is the code:

         case ID_EVENT_RECALIBRATE:
             if(event.value == 1){
                 // if not pressed reset calibration
                 calibration->start_calibration(cached_input_set == 0);
             }

If we have configurated wm_home and wm_b. We have these cases:

We press wm_b and after wm_home keeping pressed  wm_b we have a compose calibration.
We press wm_home  and we dont have pressed wm_b . In this case we perform a reset and we start the calibration.

That is the reason we have start calibration with the bool reset_calibration like argument:
 void start_calibration(bool reset_calibration) {
         status_calibration = CALIBRATE_WAITING_MY_INPUT_0;
         // reset the last calibration
         if(reset_calibration){
             a = 1.0;
             b = 0.0;
         }
         std::cout << "Start Linear Calibration: "
             << (reset_calibration ? "reset": "composing with last calibration") << std::endl;
     };

Another ideaI is: if would be possible is to return some feedback to the user about the calibration process.
For instance, we put a led on when we have saved data, or when we start or finish calibration.
But I think it would be hard, because calibratable should be generic, this should works on wiimote or a gamepad or an steer wheel.

Yes, I saw that you had the feature to reset the calibration. My comment was that we should flip the behavior, and compose by default and reset it in the special case. (Holding a second button is a special case).
So perhaps we should change it to

Press wm_home to start a composed calibration
Press wm_home with wm_b held to reset the calibration (and start calibrating again).

Composing might seem more complicated/special from the code perspective, but I think resetting is the more special behavior from a user perspective.

It would be cool to somehow signal to the user via the controller. Not currently possible in MG, but worth thinking about. It might be possible in the future to do this generically, as most game devices have at least one LED and rumble, so we could ask input sources to implement a generic "notify" method.
This however, is not a priority on my to-do list.
A similar future feature is making it so that certain messages from MG can be sent off as desktop notifications via D-Bus.

I still think sending calibration value pairs is the better way. From a code maintenance perspective, it is a lot clearer what is going on, rather than passing different data through the same argument based off of a hidden counter. It makes it a ton clearer about what the calibration actually needs: input-output pairs. And a bit easier to modify.
Regardless of whether it is the calibratable translator or the calibration, somewhere we need to store the values. I think the clarity gained by changing the calibration interface to take pairs is worth it.
We can still do other data collecting orders, such as the user-user-game-game order example you gave. Instead, it would be the calibratable translator deciding the order (and storing the values to make pairs). I think this is actually a cleaner separation of responsibilities.

calibration: In charge of the math, making the best fit to match the specified input-output pairs.
calibratable translator: In charge of supplying the calibration with data, and thus also in charge of the order of data collection.

Overall, this is pretty cool, and a nice first implementation.

About "flip the reset behavior" I agree. Could be more usable in that way.
About "sending calibration value pairs", I am not agree. I am going to give you another example. You want to calibrate the y axes of an stick to adjust ABS_Y, CENTER and -ABS_Y. So you need only 3 points, not 3 pairs. In that case there isn't pairs. This is a case, but is probably, in future we found more, so in my point of view taking pairs is worse solution. We are losing flexibility and is not clearer.
About that calibration should not save data, I agree, perhaps is clearer to move that task  to calibratable. I have a proposal:
class Calibration{
   public:
       virtual int get_number_samples_needed_to_calibrate() = 0;
        // Get a string to show information about the sample input.
        virtual std::string get_feedback_msg(int index) = 0;

        // Reset calibration, now the class returns raw input.
        virtual void reset_calibration();
        // Readjust the calibration
        virtual void calibrate(std::vector<int64_t> input_samples) = 0;

       // Aply the transformation from user_value to game value
       virtual int64_t get_game_value(int64_t user_value) = 0;

       virtual std::shared_ptr<Calibration> clone() = 0;
       virtual ~Calibration(){};
};

In this new interface we remove save_calibrate_data, start_calibration and is_calibrating. And we add 4 new functions:

get_feedback_msg :  It is something like "Move your controller to max value".
calibrate: Now takes a vector of inputs at once .
get_number_samples_needed_to_calibrate:  returns how many samples need calibrate input.
reset_calibration: Now we can reset calibration when we want.

calibratable now has to save the inputs on the vector and show feedback information. calibration only gives information to describe calibration input data and do the maths.

I like those changes -- having a message for each index will make it a lot clearer, and I also like the idea of passing a vector of values.
I see your point about possibly allowing non-pair-based calibrations. However, I don't think that example is the best one: it is still fits well as pairs. (user_min, output_min) (user_center, 0), (user_max, output_max), where output_min and output_max are  the constants -ABS_RANGE and ABS_RANGE in the code.
I'll go ahead and merge the current pull request onto devel, but I would still be interested in the modifications above if you find the time.
Finally a couple ideas for interesting future calibrations:

A piece-wise linear calibration, using more than two test points
A way to calibrate two axes at once with four test points, allowing for a perspective transform. This would let one use the wiimote IR camera like a smart board projector, like on http://johnnylee.net/projects/wii/

I have been busy these days.
I will add the changes we speak in the next days.
Now I have a way to calibrate two axes at once with four points. I put it on documentation:
wiimote.(wm_home,wm_ir_x,wm_b) = calibratable(abs_x)
wiimote.(wm_home,wm_ir_y,wm_b) = calibratable(abs_y)

We start the calibration and save the data with the same buttons at the two axes, and with 4 points the work is made. It is working, is tested.

Okay, I look forward to the changes. I tried it out, and it works well on my end. Good work.

That doesn't calibrate both axes in a way that uses info from both together, it does each separately. That wasn't what I meant.
If you stand directly in front of the screen, scaling both axes separately does the right thing.
However, imagine the extreme case, where you are standing off center. One side of the screen will be closer to you, it will be bigger from your perspective. From the perspective of the wiimote, the screen is a trapezoid rather than a rectangle. How much you want to scale the abs_y value actually depends on your current abs_x value.
For a light-gun arcade game use, requiring the user to stand in the center is fair, and the innacuracy when off to the side is fine. In a smartboard set up like the one I linked, these perspective differences are much more important. It can be hard to line the wiimote up with the projector exactly, and even small inaccuracy from the non-rectangular perspective will be apparent when trying to draw on the projection.
All of this is of course just an idea for future work, as I expect more people to use wii motes as light guns in arcade games rather than as a smartboard thing.

Merging onto devel, I presume it has been tested, and some more testing will be done before it hits master.

I am trying to use this new calibration feature to calibrate my wiimote that I am using as a lightgun.  The calibration itself appears to be working and I am getting expected values for a and b during the calibration process and it is being applied to the user input.
The only weird thing that I am getting is that after calibrating the X axis (as an example, it also does it for Y), if I move the cursor to the left everything is lined up perfectly with the controller, however once I reach the leftmost position of the game screen that I set during the calibration, the cursor jumps back about one quarter of the screen and then if I continue moving left, the cursor will continue left until it hits a hard stop at the end of the game screen.
I confirmed using jstest that the X  value does spontaneously jump back when it reaches end of the game screen initially.  I tried looking through the code to see if I could find the error, but I wasn't able to.  Any help or thoughts as to how this is happening would be very much appreciated.

This is likely due to the IR support in MG being really dumb. I took the quick-and-lazy approach to processing that data before passing it along to the event translators.
The sensor bar has two clusters of IR LEDs. When both clusters are visible, MG outputs the IR X position as the average of these two clusters (e.g. relative to the middle of the sensor bar, which is what a user would expect.)
When you move the wiimote too far, one of the two clusters goes out of view. MG sees only one IR point, and falls back to outputting the X position relative to the single visible cluster.
This was chosen since when I started, PC-based sensor bars were rare. Even having one IR source for sensing was a luxury, so it was important to support both single-source DIY IR setups as well as two-source sensor bar setups. Also, the single-source is a lot easier to code.
To avoid this behavior with two IR sources, some one will need to code up the IR processing of the wiimote MG driver to either:

Give up and stop outputting values until both IR sources are available again
Do some guesswork to "imagine" where the out-of-view IR source would be, and continue to guess where the center of the sensor bar is, despite only being able to see one end point.

Another possible solution is to step farther back: calibrate the IR data such that the full range of the screen can safely be pointed at without risking placing one of the IR sources out of view. Then this issue will only occur when you point particularly far left.
Another possible cause of this problem: somewhere to the left you have reflected sunlight or something providing another IR source that confuses the IR data.

I thought that might be the case where one set of LEDs was moving out of the camera, however when I reviewed the code, it looks like you are currently only ever tracking the left most LED:
if (ir_x < x && ir_x != NO_IR_DATA && ir_x > 1)
Which would mean that this wouldn't happen when moving the wiimote to the left.  Likewise I wouldn't expect this same behavior along the Y axis since you would either see all LEDs or none, however I can replicate this issue in all 4 directions (up, down, left and right).  I plan to add some debugging to see if I can figure it out, but I don't fully understand the code yet, especially the order things are fired.

Also I should have mentioned I don't experience the same problem before I perform the calibration which leads be to believe that is somehow the cause.

Ah, you seem to be right. The current code doesn't do any averaging, and it is suspicious that it occurs in all four directions.
From what I recall, the wiimote IR sensor (and thus the linux kernel interface) provides X/Y pairs for up to 4 IR points. The sensor also performs some amount of tracking, such that IR point 2 should continue to be IR point 2, even if IR point 1 disappears and the wiimote moves a little. I don't think I ever tested how reliable this tracking is.
MG ignores the 1/2/3/4 IDs of the IR points, and instead attempts to select the left-most IR point. These values are then scaled so that the edges of the sensor view become +/- ABS_RANGE.
In terms of how things are fired:

The kernel provides ABS_HAT{0,3}{X,Y} (if they changed), followed by a SYN_REPORT. The ABS_HAT values are just cached as they come in. One of the possible values indicates that there is no IR point sensed for that tracking ID.
When the SYN_REPORT is received, the compute_ir function is called. This has access to all the cached IR values, and if able, it outputs the X and Y values (via send_value) that leads right into the event translators.

So to debug the IR data, you likely want to modify compute_ir.

I eventually figured out the issue, but I'm not sure of the best fix.  I found that when the axis is calibrated, MoltenGamepad still emits the original uncalibrated axis event and then subsequently emits the new calibrated axis event before calling the SYN_REPORT.  The trouble arises when the calibrated axis value becomes saturated (>32767 or <-32767), then because of the check to only emit the calibrated value when it has changed, MoltenGamepad stops emitting the calibrated value and therefore only the uncalibrated value is emitted.  I manually fixed it by removing the saturation adjustment from calibration.get_game_value and added it to calibratable.process_syn_report after the value is cached.  This way while the original value is changing it will continue to emit both values until they are both saturated.


Issue using Wallet Connect

Hello, for some reason TrustWallet seems to not work any more with Wallet Connect
We've received lot's of reports of issues that all they have Trust Wallet in common. The most common error we see of those is:
gas required exceeds allowance (11720486) or always failing transaction (-32000)
Gnois Safe:

Mesa:

The two examples, are two dapps where is currently failing any transaction.

http://mesa.eth.link/
https://gnosis-safe.io/app

We thought at first it could be a bad "Gas Limit" estimation in Trust Wallet. But if we provide the gas information in the transaction config, we still get the same error. Even if we overestimate it.
I believe this was working on the past, so it must be something more or less recent.
Can you help me with this issue?

Thanks for reporting, will debug it later, I had same error before (zero balance will cause gas estimate always failed)

@anxolin I tried http://mesa.eth.link/ with WETH approval tx:
https://etherscan.io/tx/0x3882fa0522df212423299cc486b6f9ce10ba128d6f9c000523593a332aff7154
The request was below, note no gas or gasLimit
{
    "id":<PHONE_NUMBER>011953,
    "jsonrpc": "2.0",
    "method": "eth_sendTransaction",
    "params": [{
        "from": "0x7d8bf18c7ce84b3e175b339c4ca93aed1dd166f1",
        "to": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
        "gasPrice": "0x9c81e1442",
        "data": "0x095ea7b30000000000000000000000006f400810b62df8e13fded51be75ff5393eaa841fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
    }]
}

Hei @hewigovens!
Thanks for taking a look to this.
Yes, after creating the issue I was talking to @vikmeup. Sorry I forgot to report back here.
We were aware we don't send the gasLimit. All the other wallets we use estimate, and I believe in the past either directly or indirectly (geth) I think Trust Wallet was estimating, because we didn't observe any issues some time ago.
We'll add soon the gas limit to ensure compatibility!

Hei @hewigovens!
Thanks for taking a look to this.
Yes, after creating the issue I was talking to @vikmeup. Sorry I forgot to report back here.
We were aware we don't send the gasLimit. All the other wallets we use estimate, and I believe in the past either directly or indirectly (geth) I think Trust Wallet was estimating, because we didn't observe any issues some time ago.
We'll add soon the gas limit to ensure compatibility!

I suggest you never trust any providers to estimate anything for you, the more accurate you are the better.
Latest version of WalletConect does calculation, but we never advise to delegate this to the wallet side. You should not trust other providers - always trust your code instead.


services/horizon: Change protocol version check error

Changed Protocol version not supported to Error checking protocol version is supported message because an error can be unrelated to protocol version mismatch (ex. error connecting to ledger backend).

Alternative suggestion for the text. Otherwise LGTM

@bartekn can you also correct the other instances of the text?

In fact, it may be worth factoring it out in a constant (or error function)


refactor: use hashicorp go-plugin

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

10 of 166 (6.02%)  changed or added relevant lines in 7 files are covered.
3 unchanged lines in 1 file lost coverage.
Overall coverage decreased (-0.9%) to 76.139%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

core/provider/v1beta1.go
0
29
0.0%

core/template/v1beta1.go
0
38
0.0%

core/rule/v1beta1.go
0
44
0.0%

core/alert/v1beta1.go
0
45
0.0%

Files with Coverage Reduction
New Missed Lines
%

plugins/queues/inmemory/queue.go
3
49.12%

Totals

Change from base Build<PHONE_NUMBER>:
-0.9%

Covered Lines:
3443

Relevant Lines:
4522

💛  - Coveralls


Options documentation

Documenting all the new (recent) options added to hypercore and elaborated on existing options.

closing cause most of this has changed.


ash builder pattern is error prone

Many of the builder methods take references with lifetime, such as DeviceCreateInfoBuilder::queue_create_infos, but have a final .build() which returns something without a lifetime. This leads me to believe falsely the returned struct holds a copy of the passed arguments internally, thus not limited by the source lifetime. But this is not the case, ash converts the passed references to pointers, which means the passed arguments must live longer than the returned value.
No where in documentation was this mentioned. And the API is designed in such a way that makes leveraging the borrow checker impossible. I suggest the return from builders should retain the lifetime of the builder.

Real example of misuse: vulkano-rs/vulkano#2465

This has been fixed by #602, and will be released in a future version.

It is also warned against in the API docs for every single build method.

darn I was a bit late then :sweat_smile: feel free to close it now or when the change is released.

@tomaka what is wrong about that example? The slice has a 'static lifetime, so it is sound to return a ash::vk::SubpassDescription with a pointer to that ever-lasting slice.

In your example, the array literal is getting promoted to having a static lifetime. Try using a dynamic value in it to prevent this, and observe that it will no longer compile.


How to run SNMP manager?

Hi there.
I am trying to execute SNMP manager and SNMP agent in the same compuer for debugging purposes.
Is there any guide on SNMP docs to execute SNMP manager? I am not able to find it.
Thank you,
Jaime.

Not clear what is the "SNMP manager" and "SNMP agent" you are referring to. This project only provides the core library for SNMP operations in Python, not general-purposed full-feature manager and agent.
You probably look at the wrong thing for your needs, and should use search engines to investigate further.


Respect library-specific _NO_LIB macros. Fixes #339.

LGTM, @pdimov do you confirm this fixes your issue #339 ?

Yes, the PR is mine, I tested it locally, and it seems to work.


Make FOV and resolution independant

Version
Your Configuration

Operating System
Ubuntun 16.04.3

Kernel
4.10

ROS
kinetic

ROS RealSense
1.8.0

librealsense
1.12.1

Camera Type-Firmware
<IP_ADDRESS>

I would like to use the maximum FOV of the color stream of my R200, but I can only access it all by opening it with the max resolution (1920x1080). I cannot find a way to get the full FOV at lower resolution, which is important for us as with 2  R200 connected to a Skylake NUC, CPU resources are sparse. Is that possible or are we limited by the firmware of the r200?

Hello @doisyg,
I don't know if it's possible to make the resolution and FOV independent in any depth camera. This article has a good explanation for it: http://www.imaginativeuniversal.com/blog/2015/09/15/the-problem-with-comparing-depth-camera-resolutions/.
Regards,
Jesus
Intel Customer Support

[Please Ignore - RealSense system comment]

Close this issue for lack of activity. Please feel free to reopen if the issue is still relevant.


Allow boolean & byte literals in html!

Description
Adds support for the following usage of the html! macro:
html!{<>
  { b'a' }
  { true }
</>}

[x] I have reviewed my own code
[x] I have added tests

It would indeed be strange to use a byte literal in HTML, but who knows what use cases are there in the wild, I think it would be even more strange to pretend like it's not stringifiable at compile-time.

That is a valid point. What if we improved the diagnostic instead of just saying "invalid type"?

What if we improved the diagnostic instead of just saying "invalid type"?

I did just that for byte-string literals in this PR, the only Rust literal kind that generates a non-Displayable value.

I'm sorry it took me this long to merge this


Create a Fivetran Sensor

Airflow tasks come in two main flavors: Operators execute an explicit action and Sensors wait until a condition is met. For example, an Airflow Sensors might recurrently hit an API endpoint at a set (optionally, dynamic) time interval and either succeed when a condition is met or fail if and when it times out.
Line 125 of the Fivetran Operator shows a while loop that pings an endpoint and sets execution state based on the response. This unit of logic is a good candidate for a sensor.
This pseudocode shows a sample DAG that uses both a Fivetran Operator and a Fivetran Sensor. Note the separation of concerns between authentication,
@dag(default_args=default_args, schedule_interval=None, catchup=False, start_date=days_ago(8), tags=['test'])
def my_workflow(poll_status_every_n_seconds: int = 60):
  """
  Example Fivetran DAG pseudocode.

  See Airflow 2.0 DAGs best practices here:
  https://airflow.apache.org/blog/airflow-two-point-oh-is-here/

  :param poll_status_every_n_seconds: Customizeable time interval for sensor.
  :type poll_status_every_n_seconds: int
  """

  task1 = FivetranSyncJobOperator(
    task_id='task1',
    conn_id = 'fivetran_default'
    )

  sensor1 = FivetranSyncJobSensor(
    task_id='sense1',
    conn_id = 'fivetran_default',
    poke_interval="{{ dag_run.conf['poll_status_every_n_seconds'] }}" # Provide user-defined parameters
    )

  task1 >> sensor1

my_workflow_dag = my_workflow()

How to create a Sensor
Sensor operators are derived from the BaseSensorOperator class and inherit its attributes. The BaseSensorOperator provides and documents parameters you can leverage, such as poke_interval (in seconds), exponential_backoff, and mode.
A good example of a related Sensor is the HttpSensor which "pokes" the endpoint until the response meets a certain condition.

Closed with https://github.com/fivetran/airflow-provider-fivetran/pull/14

can we a sensor without an operator? What if i want to trigger multiple dags based on one fivetran connector?


[animation] startEvents vs restartEvents

Hi, this codepen https://codepen.io/MadsenFr/pen/ZaoXEM doesn't work anymore :

"Initial position" button was intend to get the squarre back to it's original position.
Afterward, "Go" button should restart animation.

It seems that restartEvents doesn't exists anymore, because I get : Unknown property restartEvents for component/system animation.
I managed to make it work https://codepen.io/MadsenFr/pen/NXxJQP, by replacing restartEvents with startEvents and by sending in a row startEvents then pauseEvents to get it back to it's original position (but this method didn't work before, I've tried it). Is it the right way to do it ?
By the way is it possible to source specific version number to keep stability and to have a changelog (like it's done for aframe) ?

Add a version to the unpkg URL<EMAIL_ADDRESS>I'll look at adding restartEvents


Add file limit

5MB

Once we start compressing, we can go way lower — 2MB or 1MB is fine now. 5MB is above and beyond what the canvas would manage, anyway. How about we start with a lower limit and increase only once there's a valid use case or reports? (Always easier to increase than to decrease.)

Cool let's start with 2MB and see how it goes.


feat: improve auto_show flexibility

This PR gives more control over when and where we show automatic completion. It does this with two public-facing changes:

completion.menu.auto_show can now be either a function or a constant boolean. This gives users the ability to make more complex decisions about whether to automatically show completions.
blink.cmp.Context contains a new field -- update_type. This field provides additional information on what triggered the update. This allows users to vary behavior when completion is manually triggered (as opposed to being automatically triggered by keywords or trigger characters).

I believe the global min_keyword_length (notably not the source-level min_keyword_length) should be ignored on manual trigger by default. I like the idea of indicating whether the context was created due to user input or not. Perhaps we could repurpose the trigger.kind field for this, and reduce the number of types a bit: 'keyword' | 'invoked' | 'trigger_character'

I've also added an initial_kind which could be useful, for example, disabling snippets for trigger characters via
should_show_items = function(ctx) ctx.trigger.initial_kind ~= 'trigger_character' end

Thank you!


Existing files are not overwritten on Gdrive

Existing files are not overwritten on Gdrive. This symptom has been reported in issue#19 previously.

How to implement the suggested code changes using "file.clear() to remove all the contents of the old file, and then file.append() to insert all of the new contents."?
How to implement the suggested code changes using "file.setContent"?

For the time being we are added the following piece in Gmail2Gdrive of code (using the id of the containing folder):
// ====== Remove existing renamed file ======= Added by Soe =======
// --- Delete has to be performed using file id: therefore first convert the actual file name to its file id   ---
var file = {title: newFilename, mimeType: 'image/jpeg'};
var myFolder = DriveApp.getFolderById('1F0orpMztVFc3jfCt8HMcT-UuK7tzIvRb');  // myFolder id using key of Graphics subfolder
var allFilesByName = myFolder.getFilesByName(newFilename);
// --- Remove the previous existing renamed file ---
while (allFilesByName.hasNext()) {
var thisFile = allFilesByName.next();
var theFileID = thisFile.getId();
var rtrnFromDLET = Drive.Files.remove(theFileID);
Logger.log('Msg005a   Deleted the existing renamed file "' + thisFile + '", ID "' + theFileID + '", rtrnFromDLET: ' + rtrnFromDLET);
};
// ==== Existing renamed file removed ============
    var file = folder.createFile(attachment);  // duplicate previous statement (~ #85) to redefine the 'file' var
    attachment.getName()
    Logger.log("Msg005b:   Renaming '" + file.getName() + "' -> '" + newFilename + "'");
    file.setName(newFilename);

// ========= Remove the stored attachment file ===== Added by Soe =======
var allFilesByName = myFolder.getFilesByName(attachment.getName());
while (allFilesByName.hasNext()) {
var thisFile = allFilesByName.next();
var theFileID = thisFile.getId();
var rtrnFromDLET = Drive.Files.remove(theFileID);
Logger.log('Msg005c   Deleted the stored attachment file "' + thisFile + '", ID "' + theFileID + '", rtrnFromDLET: ' + rtrnFromDLET);
};
// =========== Stored attachment file removed =========
Thanks for your help, Regards, Paul,

Hi,
I am interested in how you have implemented this, as this would solve an issue I have too.  When uploading files with the same name via the web UI you can choose to upload a duplicate or add a version (this would be a nice feature to add to gmail2drive), but in the interim if it could just remove any files with the same name and add the new version, that would be great.
Could you explain how you have added the code (placement in the script, etc.) provided please?
Thanks,
Matt

@matt-jon35 I'm not sure but maybe handling different revisions requires to use the advanced Drive API:
https://developers.google.com/drive/api/v3/reference/revisions
Here's a StackOverflow question that deals with that issue in the context of Google Apps Script:
https://stackoverflow.com/questions/47684835/google-apps-script-setting-revision-history
Maybe that helps ...

Thanks.  Is v2 being developed?

@matt-jon35 yes, I've started a complete re-write using a state-of-the-art development setup (NPM dependency management, test automation, Typescript, ...) in the v2 branch, but it is not yet in a working state:
https://github.com/ahochsteger/gmail2gdrive/tree/v2
When it's finished, most (if not all) open issues should be adressed.

@mattmickeyj, thanks for your kind words, they are well appreciated :-).
In fact the code for v2 is almost done, it just needs more testing, polishing and documentation to make the first release.
I'd be more than happy if you'd like try the new implementation and give me some feedback.
There's now a dry-run mode, that doesn't touch anything (neither GMail nor GDrive) but produces a log that shows what would have been done. This way the new version can be tested without risk of data-loss. You should even see, if an existing file would have been overwritten. For your use case have a look at ConflictStrategy argument of the attachment.store action.
Here are some pointers, in case you'd like to give it a try:

Setup instructions using the Google Apps Script Library
An example configuration using the new JSON schema
Documentation of the config schema
Reference documentation for actions, enums and substitution placeholder

@ahochsteger That's amazing, thank you very much for replying.
I would love to give it a go.  I have just tried adding the library to a blank project, but get the following error:
Unable to look up library. Check the ID and access permissions and try again.
Thanks in advance.

@mattmickeyj, which Script ID have you used to add the library?

@mattmickeyj, I've changed the sharing options of the library, maybe you can try again?

@ahochsteger That's worked - thank you.
Now to get my head around the new JSON rule formatting :-/

@mattmickeyj  You can automatically convert the old format into the new one - have a look at this example:
https://github.com/ahochsteger/gmail2gdrive/blob/v2/src/gas/examples/v1-example01.js

@ahochsteger Thank you.  I feel like I am a bit out of my depths here with my understanding.  I think I understand the JSON formatting now, but I was hoping to see the example code to see how to run it, but the file is missing:
https://github.com/ahochsteger/gmail2gdrive/blob/v2/docs/Code.gs
Sorry, I know you are not my 1-1 coach (haha!!), but any help is very much appreciated!!

@mattmickeyj that's no problem - for me your questions are valuable feedback to fill in the missing pieces in the documentation until it's ready to be released. :-)
The code with the processing logic is now fully encapsulated in a shared library which you already added using the name GMail2GDrive I guess.
So everything you need on your side within Code.gs is to define the configuration and a function to do the processing which looks like this:
var config = {
  // My (v2) config comes here ...
}

function run() {
  GMail2GDrive.Lib.run(config, "dry-run")
}

And then execute the function run in Google Apps Script.
If you want to convert the old v1 config to the new format you can do it this way and execute the function convertConfig in Google Apps Script:
var oldConfig = {
  // My old v1 config comes here ...
}

function convertConfig() {
  const config = GMail2GDrive.Lib.convertV1ConfigToV2Config(oldConfig)
  console.log(JSON.stringify(config, null, 2))
}

Note though, that the logging size is limited to about 8kB (or about 100kB if using StackDriver), so you may have to limit the number of converted rules that can be printed to the log.
I hope this clarifies a bit how the library can be used to run and convert the old configuration.
These examples may help to see additional usages.


Igonchar/tdi 41029

What is the current behavior? (You can also link to an open issue here)
What is the new behavior?
add transitive calcite deps in bom pom and component pom
Please check if the PR fulfills these requirements

[ ] The commit message follows Talend standard
[ ] Tests for the changes have been added (for bug fixes / features)
[ ] Docs have been added / updated (for bug fixes / features) ?
[ ] The code coverage on new code >75%
[ ] The new code does not introduce new technical issues (sonar / eslint)

What kind of change does this PR introduce?

[ ] Bugfix
[ ] Feature
[ ] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no api changes)
[ ] Build / CI related changes
[ ] Other... Please describe:

Does this PR introduce a breaking change?

[ ] Yes
[ ] No

If this PR contains a breaking change, please describe the impact and migration path for existing applications: ...
Other information:

Pull request test result: failure :x:

Pull request test result: failure :x:


Update how-to-perform-paged-searches-by-using-ews-in-exchange.md

The sample code does work, but there are problems. If MoreAvailable is false and the value of Items.Count is pageSize + 1,  the last item is not displayed.
So I fixed the sample code.
I also fixed the typo.

Docs Build status updates of commit b211b1e:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/exchange-web-services/how-to-perform-paged-searches-by-using-ews-in-exchange.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel

@rykoma Thanks so much!


@connect as HOC?

I am trying to avoid contextTypes as well as redundant code. I have different types of products, ie current products, discontinued products, seasonal products, etc. As I understand containers, I cannot put them all in one container as they are in different sections (pages) of the website. What I would like to do is extrapolate out the data fetching from the container and have it as a higher order component that the one below and others can call upon for the data w/o resorting to redundant code.
Any ideas?
Thanks.
Below is my current container:
@connect(state => ({
   products: state.productsReducer.products
}))
export default class AppContainer extends Component {
  constructor(props) {
    super(props);
  }

  componentDidMount() {
    const { dispatch } = this.props;
    const clientId = this.context.clientInfo._id;
    dispatch(fetchProductsIfNeeded(clientId));
  }

 // get from parent
 static  contextTypes = {
    clientInfo: PropTypes.object.isRequired
  };

  static propTypes = {
    children: PropTypes.node.isRequired,
    dispatch: PropTypes.func.isRequired,
    products: PropTypes.array
 };

      .....
  // This is where my contextTypes would be for child components to receive products
 // but I would like to avoid that and instead create a HOC that this and other components
 // can retrieve the data.

  render() {
    if (!this.props.products) return <Plugins.Loading />;
    .....
    return (
      <section style={ radStyles.body }>
        <Layout.Header user={ user } handleLogout={ () => this.handleLogout() }/>
        { this.props.children }
        <Layout.Footer />
      </section>
      );
    }
 };

You could just make a component called ProductWrapper or something like that and connect it to the redux store.  Its purpose would be gather your product data and or filter based on props and it would just render its children with the added products prop. See cloneElement
...
render() {
  .....
  return (
    <ProductWrapper discontinued={false} season='christmas' saleItemsOnly={true}>
      <ProductPageFeatureShowingTopItem/> // This would have products as a prop
      <ProductPageListDisplay/> // So would this
    </ProductWrapper>
  );
  ...

This is a contrived example, but it would be a simple solution and your fetching and filtering for that data could be in one component and used for all your product pages.

That did absolutely nothing to clear this up for me.

Don't forget connect() is just a function.
You don't have to use the decorator syntax :-).
Normally I'd create a single <Products> presentational component.
Then I'd use connect() in different files to create different containers for it:
// AwesomeProducts
const AwesomeProducts = connect(
  state => state.awesomeProducts,
  AwesomeProductActions
);

// AmazingProducts
const AmazingProducts = connect(
  state => state.amazingProducts,
  AmazingProductActions
);

This is oversimplified but you should get the idea. You can have many containers all wrapping the same presentational component, but supplying different ways of selecting the data. Similarly you can create your own connectProducts() that calls connect() but abstracts away data fetching and similarities in state selection logic.


Temperature Converter

Project Title:- Temperature Converter
Project Description:-
This project is a simple temperature converter that allows users to convert between Celsius and Fahrenheit. The project is written in HTML, CSS, and JavaScript. It uses the following formula to convert between Celsius and Fahrenheit:
fahrenheit = (celsius * 9) / 5 + 32
celsius = ((fahrenheit - 32) * 5) / 9

The project also uses HTML and CSS to create a simple user interface. The user interface includes two input fields, one for Celsius and one for Fahrenheit. When the user clicks the "Convert" button, the code converts the value in the Celsius input field to Fahrenheit and displays it in the Fahrenheit input field. If the user has entered a value in the Fahrenheit input field, the code converts the value to Celsius and displays it in the Celsius input field.
Doc Domain

[✅] Solidity , Html, Css , JavaScript , Web3.js / Ether.js
[] Solidity , ReactJs /NextJs , Web3.js /Ether.js
[] Solidity , Python3 , Web3.py
[] Other , feel free to mention below

Are you contributing under any open-source program ?
YES, SSOC'23.

Hey! @Vikash-8090-Yadav @shubhisingh184
Please assign this issue to me under SSOC'23

@NupurHardiya closing this issue as someone is already working on this issue. Please come back to us with some new ideas.


HWKAGENT-159 - support ${x} in server url and add download-server-url opt

@pilhuhn you might want to check this first before I merge. Make sure it does what you want.
You still must supply the three parts to the URL (protocol, host, port) but you can use ${x} now. So this is valid:
--server-url=http://${HAWKULAR_SERVER_HOST}:${HAWKULAR_SERVER_PORT:8080}
You can even use ${HAWKULAR_PROTO} for the protocol
--server-url=${HAWKULAR_PROTO}://${HAWKULAR_SERVER_HOST}:${HAWKULAR_SERVER_PORT:8080}
but if you do, you have to remember to pass in --keystore-path and all the rest if you plan on being able to have it use https.

Close, but not yet. I have
--server-url 'http://${env.HAWKULAR_SERVER_ADDR}:${env.HAWKULAR_SERVER_PORT}'
Which should end up as  <storage-adapter url="http://${env.HAWKULAR_SERVER_ADDR}:${env.HAWKULAR_SERVER_PORT}">, telling the server to populate the url from the 2 env vars.
I just got the thought to wonder if we should ditch this and instead allow to tell the installer "don't modify standalone.xml' and then explicitly provide a hand-crafted one. Disadvantage is though that we need yet another place to modify if agent bits chane

But then - perhaps I have the wrong installer bits

You don't need the url attribute. You will see that will put those values in the outbound socket binding and it works. I tested that. You can put ${x} values in the socket bindings and it works.
Make sure you got the latest builds and try again. This is something I tested and confirmed it worked.

Works now. I forgot to also compile in ...installer-full, so always ended up with the bits prior to this change.
Thanks Mazz!


issue with git clone PYCOLMAP sources

git clone -b v0.4.0 --recursive git@github.com:colmap/pycolmap.git
returns that error

How about this?
git clone -b v0.4.0 --recursive https://github.com/colmap/pycolmap.git

Hello @sarlinpe ,
I understand that pycolmap can only be installed on linux OS.... Do you confirm ?
or is it compatible with windows os ?
I would like to test colmap on very large ground based datasets with arguments such like
hloc
pixsfm
and compare SFM performance vs commercial SFM such as metashape.


Add in a rewind option for the visualiser

Add in something similar to the following code to ext/VisualiserExt/defaulthandlers.jl:
onevent(
    KeyEvent,
    when = describe(GLFW.KEY_LEFT),
    what = "Step backwards when paused (hold SHIFT for $(SHIFTSTEPSPERKEY) steps)"
) do s, ev
    if ui.paused && ev.key === GLFW.KEY_LEFT && ispress_or_repeat(ev.action)
        steps = s.shift ? 50 : 1
        for _ = 1:steps
            reversestep!(p, mode(e))
        end
    end
end

This only makes sense to implement once we've added a Trajectory mode for the visualiser (https://github.com/JamieMair/MuJoCo.jl/issues/41). In many cases it won't make sense (or be possible) to actually rewind the simulator or step it backwards in time unless we've saved a bunch of simulated states in a trajectory. The same is true for the reverse mode mentioned in https://github.com/JamieMair/MuJoCo.jl/issues/43.

The state of a MuJoCo model is now very well documented following the release of MuJoCo v3.0, so this now makes a lot of sense: https://mujoco.readthedocs.io/en/stable/computation/index.html#gestate


Cargo version with pre-commit hooks

List of keywords you searched for before creating this issue. Write them down here so that others can find this issue more easily and help provide feedback.
“fmt”

From a quick look, the docs don’t seem to mention a specific version of cargo (unless I missed it). The latest version seems to use cargo fix vs cargo fmt which breaks the cargo-fmt pre-commit command unless you skip it.

By "latest version", do you mean the rust nightly? I just tried running cargo fmt and that runs just fine locally.
We do specify a cargo version in the rust-toolchain.toml which is the version that cargo should pick up by default, unless you have an active override.

Ah, looks like if you install via homebrew, you need to install rustfmt as well.
% cargo --version
cargo 1.79.0
% cargo fmt
error: no such command: `fmt`

	Did you mean `fix`?

	View all installed commands with `cargo --list`
	Find a package to install `fmt` with `cargo search cargo-fmt


Improving UI of the website.

Can I work on improving the UI and adding some nice animations to the website?

@dare-devilll Can you show me what improvements or changes you have on your mind by showing a template of your idea?

I don't have a template right now but I want to add some animations to the cards, like some flip transitions, dashboard transitions, and hover effects on buttons, and improve the color scheme.
Making a design template with animations is hard for me...can I code and show it to you?

I don't have a template right now but I want to add some animations to the cards, like some flip transitions, dashboard transitions, and hover effects on buttons, and improve the color scheme.
Making a design template with animations is hard for me...can I code and show it to you?

Yes code it and show it to me

Can I work on its UI enhancement and logo designing

@Susmita-Dey Can I work on its UI enhancement and logo designing

Show me the template of the changes you wanna make

@vandana3869 and @dare-devilll First show me a template of the changes you wanna make and then I'll choose and will tell you to create a PR

@Susmita-Dey  here is the demo template ....we enhance while actual coding
https://sukoon.my.canva.site/

@Susmita-Dey I am currently coding the animations for the team and service section and as I told it's hard to show animations in a template...give me 3-4 days to show the final product.

@Susmita-Dey I am currently coding the animations for the team and service section and as I told it's hard to show animations in a template...give me 3-4 days to show the final product.

Take you time

@Susmita-Dey here is the demo template ....we can enhance it more while actual coding https://sukoon.my.canva.site/

The site looks awesome but some improvements are needed. Let's wait for @dare-devilll and I'll confirm both of you then after that.

Hey, I am working on this in a few hours I will send you the demo temp.

So, here's the link : https://hhtp.my.canva.site/

So, here's the link : https://hhtp.my.canva.site/

Many things need improvement. Some of them are like:

text color
navbar
contact section

I can improve the text color,navbar and contact section

Will improve this websites UI by taking reference from behance or dribbble.

@vandana3869 @radzhiv25 @YasirObaibullah99 @nandinitrivedi05 Are you all SSOC participant?

@vandana3869 @radzhiv25 @YasirObaibullah99 @nandinitrivedi05 Are you all SSOC participant?

Yes SSOC participant

@Susmita-Dey I am also in the SSOC.

@Susmita-Dey I am also in the SSOC.

I can't assign it to you now

@vandana3869 @radzhiv25 @YasirObaibullah99 @nandinitrivedi05 Are you all SSOC participant?

Yes

@vandana3869 @radzhiv25 @YasirObaibullah99 @nandinitrivedi05 Are you all SSOC participant?

Yes SSOC participant

Yes !!

@Susmita-Dey I am also in the SSOC.


Get translation json from api

Hi,
I want to know how can I load the translate json from a api resource, it possible? like angular 1.

Yes, just read the docs, you'll have to use the TranslateStaticLoader (which is the loader by default) :)


Handle diffing FIFOs.

Also exit immediately if a seek fails.
In addition to the supplied test, also tested manually with:
./toybox diff <(echo -e "1\n2") <(echo -e "1\n3")
However, the "testing" function in runtest.sh doesn't handle such
syntax.

Also exit immediately if a seek fails.
In addition to the supplied test, also tested manually with:
./toybox diff <(echo -e "1\n2") <(echo -e "1\n3")
However, the "testing" function in runtest.sh doesn't handle such syntax.

(which is probably a good thing for us, because iirc mksh doesn't support it anyway. iirc i had to rewrite some toybox tests to not use that.)

Fixed diff so that line formats can be empty.

I use diff <(thingy) <(thingy) all the time, diff NOT supporting that was one of the todo items for the command keeping it in pending...
And I'm actively working on getting toysh to run the test suite. Trying to close a couple other tabs first, but it's "next release or maybe the one after" territory...

Applied.

When a --flag is seen the bit in toys.optflags gets set, ala { if (FLAG(foo_line_format)) blah(); }, and also TT.foo_line_format would point to a "" string instead of being NULL when the =argument is supplied.
You can use ; in the optstring for the argument to be optional (in which case it can only be supplied as a --longopt=arg rather than --longopt arg).

Yes, I added ; to the optstring in my second commit to this PR, which you merged.
I didn't check if (FLAG(foo_line_format)) though, because I think it's enough to check if the char ptr is null, and we're already doing that.


Ruins as only source of things

Add some new material and/or processes to the tech tree without a way to construct the buildings needed for them. This would simulate a "lost technology" or "alien materials" etc. The only way to use it would be to build a base around those special ruins.
The intent would be to make exploration necessary for advancement and adding those ruins to the logistics of the existing base.

I am not interested in adding this to the mod.


exterminator: add support for bug labels

Hello @jazzdan,
Please review the following commits I made in branch nicks/bug:
22f5700230ee5b507130349549aa07b067e922c4 (2020-03-24 12:00:29 -0400)
exterminator: add support for bug labels
Code review reminders, by giving a LGTM you attest that:

Commits are adequately tested
Code is easy to understand and conforms to style guides
Incomplete code is marked with TODOs
Code is suitably instrumented with logging and metrics

Thanks for adding this @nicks


[Question] GraphQL example stills over fetches data when querying Books

I'm currently testing Jimmer, but I'm more interested in the features that makes it more convenient than other solutions for GraphQL.
I ran the Spring Boot example, and I placed a query for books:
query GetBooks {
  books {
    name
    authors {
      firstName
    }
  }
}

...but I got this in the application logs:
2023-10-05 11:27:41.187  INFO 2529 --- [io-8080-exec-10] o.b.jimmer.sql.runtime.ExecutorForLog    : Execute SQL===>
--- Business related stack trace information ---
org.babyfish.jimmer.sql.example.graphql.business.BookService.books(BookService.java:42)
Purpose: QUERY
SQL: select
    tb_1_.ID,
    tb_1_.CREATED_TIME,
    tb_1_.MODIFIED_TIME,
    tb_1_.TENANT,
    tb_1_.NAME,
    tb_1_.EDITION,
    tb_1_.PRICE,
    tb_1_.STORE_ID
from BOOK tb_1_
order by
    tb_1_.NAME asc,
    tb_1_.EDITION desc
JDBC response status: success
Time cost: 1ms
<===Execute SQL
2023-10-05 11:27:41.189  INFO 2529 --- [io-8080-exec-10] o.b.jimmer.sql.runtime.ExecutorForLog    : Execute SQL===>
Purpose: LOAD
SQL: select
    tb_2_.BOOK_ID,
    tb_1_.ID,
    tb_1_.CREATED_TIME,
    tb_1_.MODIFIED_TIME,
    tb_1_.FIRST_NAME,
    tb_1_.LAST_NAME,
    tb_1_.GENDER
from AUTHOR tb_1_
inner join BOOK_AUTHOR_MAPPING tb_2_
    on tb_1_.ID = tb_2_.AUTHOR_ID
where
    tb_2_.BOOK_ID in (
        ? /* 6 */, ? /* 5 */, ? /* 4 */, ? /* 12 */, ? /* 11 */, ? /* 10 */, ? /* 3 */, ? /* 2 */, ? /* 1 */, ? /* 9 */,
        ? /* 8 */, ? /* 7 */
    )
order by
    tb_1_.FIRST_NAME asc,
    tb_1_.LAST_NAME asc
JDBC response status: success
Time cost: 1ms
<===Execute SQL

I was expecting:

Just one query — instead of two or more, and
The generated SQL with just book.name and author.first_name — probably the IDs as well

Is this somehow a bug or am I wrong expecting Jimmer to behave in such way? If so, would it be a way to make it work in the way I'm describing this?

Yes, GraphQL is a solution that is not yet fully complete (currently, REST + ObjectFetcher does not have this problem). Jimmer's ORM core itself does not have this problem, because it was designed to solve this problem, but it faced some difficulties when integrating with third-party GraphQL ecosystems and made temporary compromises. A complete solution will be provided as soon as possible in the future.
BTW, if cache is enabled for some entity types, in order to cache useful objects instead of objects needed for specific scenarios, even REST + ObjectFetcher will cache objects with all scalar fields loaded. In this case, there is no problem with this.

After ORM become perfect, it is time to implement new GraphQL mechanism instead of spring GraphQL, but not now

0.8.98 brought qualitative changes to GraphQL.

Previous code is compatible. If you just want to keep running, no modifications are required.

Use the new feature, better performance will be obtained in non-cache mode.

First, add the new parameter DataFetchingEnvironment env to the GraphQL query method in the Controller.
Then, transform the env into a Fetcher

Java: DataFetchingEnvironments.createFetcher(Book.class, env)

Kotlin: env.toFetcher()

Finally, querying the data layer with this fetcher will get better performance.
Examples
!!!Be careful!!!
Examples have moved, old examples still exist temporarily to prevent a large number of dead links in the documentation

Java: https://github.com/babyfish-ct/jimmer-examples/tree/main/java/jimmer-sql-graphql
Kotlin: https://github.com/babyfish-ct/jimmer-examples/tree/main/kotlin/jimmer-sql-graphql-kt


display none/block for hiding

negative z-index does not always prevent dat.gui from occluding over existing elements when hidden.

Cheers! Fix merged at 8ae2c7cda9b882422321487ecc869f67523fcc58, updated to include @mrdoob's suggested tweak


Visual studio 2013 building errors on windows 10

Hi, I am trying to compile the latest pointmatcher to test on the ICP algorithm. I ran into some problem when building it using visual studio. I tried use vs2013 and the latest vs2017 ,didn't work. The other libraries are:
Eigen 3.2.0
libnabo 1.0.6
Boost 1.59.0
Cmake 3.2.3
running on windows 10 64bit machine. I also tried with win7 got the same errors. Please see the errors attached

Meanwhile I will try with the release version 1.2.3 with libnabo 1.0.1
Thank you in advance for looking into this issue

The release version 1.2.3 with libnabo 1.0.1 works ,thanks to #101
#104  #105  and fix d0453a50b6a8ba4804202e2aa1e5e1cca9d874fa  3ced5a7d3dd4e5ffcf9cee91f3002dd0610e7f2f a021a1ab482bbd49faed52b2e25e554dc1a98cba respectively
Maybe you forget to merge those request in release 1.2.3? Sorry if I was wrong, newbie to Github.
To possible "cannot find .lib file" problem, just change the the project configuration in Visual studio to build a .lib file instead of .dll file.
This issue still exist for the current version with libnabo 1.0.6.


hi i'm getting this issue in react

Hi @Rkvishnu, Can you provide more information about the issue you currently have


Remove GVRTextSceneObject.

GearVRf-DCO-1.0-Signed-off-by: Guodong Rong
<EMAIL_ADDRESS>

looks good.  jon?


quiche: updating deps

Signed-off-by: Alyssa Wilk<EMAIL_ADDRESS>
Commit Message:
Additional Description:
Risk Level:
Testing:
Docs Changes:
Release Notes:
Platform Specific Features:
[Optional Runtime guard:]
[Optional Fixes #Issue]
[Optional Deprecated:]
[Optional API Considerations:]

/lgtm deps

FYI I needed the test change as the QUIC test got way flakier failing a client side assert that the handshake is finalized before we tried port migration.  Not sure why, but waiting for handshake completion seemed reasonable so I went with that.

FYI I needed the test change as the QUIC test got way flakier failing a client side assert that the handshake is finalized before we tried port migration. Not sure why, but waiting for handshake completion seemed reasonable so I went with that.

Drive-by: I noticed the same thing when I write tests for my port migration PR. And yeah the tests should wait for handshake confirmed to performa port migration anyway.


Android - remove deprecated API usage

This PR is a continuation of https://github.com/voghDev/PdfViewPager/pull/181.

Hi! Thanks for the PR. For some reason I can't see CI passing in the main branch, but it seems passing in your fork. It's ok to merge to me.

I will try to disable CI on my fork to see if the CI run's again in the PRs


--pod doesn't work if pods enabled

When I run the example from the README
ember g style components/contact-box -p
The taskOptions contains {"pod":false}
If I omit the -p the opposite happens
The taskOptions contains {"pod":true}
Not sure if this is an ember-cli issue rather than an ember-cli-sass-pods issue

If you have:
// .ember-cli
{
"usePods": true
}
then the -p does the opposites and set the pod to true.
If you don't have usePods: true, then -p should work fine.
It is ember-cli feature.

It's a feature... right ok!
Thanks!


feat(shutdown): Add the ability for an app to shutdown

Adds a new $shutdown service that can be used to shutdown an app and the $shutdownProvider that can be used to register tasks that need to be executed when shutting down an app.
Added tasks for $rootElement, $rootScope and $browser to be able to shutdown an app
Refactor $interval so it delegates to $browser just like $timeout does

The possibility to shutdown an Angular app is still a big issue for me. Are there any plans to include this in Angular 1.4?

@lgalfaso, what is the status of this ?

Fixes #7578

This is quite old but the approach still valid. Can work on getting this up
to date so it can land of the need is still needed
On Wednesday, June 1, 2016, Georgios Kalpakas<EMAIL_ADDRESS>wrote:

@lgalfaso https://github.com/lgalfaso, what is the status of this ?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/angular/angular.js/pull/8005#issuecomment-222982475,
or mute the thread
https://github.com/notifications/unsubscribe/AAX44oIWPieqwtvK7iwNFOZtdg_Q2treks5qHYBagaJpZM4CIKVw
.

Updated the PR. @gkalpak do you want to take a look at it?

@gkalpak PTAL

Generally LGTM!
I have left a couple minor comments (mainly related to cleaning up $rootElement).
I think there are also a couple more things to clean up (or take care of in a way that they will get cleaned up automatically):

Cancel (or at least ignore when completed) pending XHR/JSONP requests.
Clean up JSONP callbacks (stored on angular.windows.callbacks)[*].
Clean up listeners added with addEventListener on form/ngForm elements.
Clean up listeners on $document (e.g. .on('visibilitychange')).

*: I just realized that bootstrapping multiple apps on the same page, could mess up the JSONP callbacks, since each app will generate the same callback IDs.

Cancel (or at least ignore when completed) pending XHR/JSONP requests.

I think that if we ignore $digest on destroyed scopes (I know this is a BC), this should be enough

Clean up JSONP callbacks (stored on angular.windows.callbacks)[*].

Oh, another part that we do not keep track from what app each callback comes... anyhow the same solution to ignore $digest should work

Clean up listeners added with addEventListener on form/ngForm elements.

We should be fine here as we trigger $destroy

Clean up listeners on $document (e.g. .on('visibilitychange')).

We should be fine here as we trigger $destroy

--

Cancel (or at least ignore when completed) pending XHR/JSONP requests.

I think that if we ignore $digest on destroyed scopes (I know this is a BC), this should be enough

We already keep track of the pending requests in $http (although only the configs). How about we start keeping track of active XHRs instances as well and have $http register with $shutdownProvider to abort them on shut-down?
--

Clean up JSONP callbacks (stored on angular.windows.callbacks)[*].

Oh, another part that we do not keep track from what app each callback comes... anyhow the same solution to ignore $digest should work

Now that we have a $jsonpCallbacks service, we could keep track of the added callback IDs and have $jsonpCallbacks delete them on shut-down.
--

Clean up listeners added with addEventListener on form/ngForm elements.

We should be fine here as we trigger $destroy

Good point. Missed that :smiley:
--

Clean up listeners on $document (e.g. .on('visibilitychange')).

We should be fine here as we trigger $destroy

Are we calling $destroy on $document?

This is a pretty big change which has a potential of introducing regressions. Considering that and taking into account the fact that we're getting close to the LTS phase when only a few kinds of issues get fixed (like security ones) we've decided to not pursue it further.


OS.get_video_adapter_driver_info() returs empty array

Tested versions

Version Godot 4.3

System information
Mac Mini m2, MacOS Sequoia 1.0, Godot 4.3 stable, vulkan
Issue description
OS.get_video_adapter_driver_info() returns empty array
Steps to reproduce
Call OS.get_video_adapter_driver_info() anywhere in your script file
Minimal reproduction project (MRP)
extends Label

var os_name = OS.get_name()
var physical_memory = OS.get_memory_info().physical
var cpu_name = OS.get_processor_name()
var cpu_count = OS.get_processor_count()
var gpu_name = RenderingServer.get_video_adapter_name()
var renderer = OS.get_video_adapter_driver_info()  # <-- Issue here

# Called when the node enters the scene tree for the first time.
func _ready() -> void:
	physical_memory = byte_to_mega_byte(physical_memory)

# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void:
	var fps = Engine.get_frames_per_second()
	var frame_time = String.num(delta, 4)
	var memory_uses = byte_to_mega_byte(OS.get_static_memory_usage())
	var texts = "FPS: %s
		Time: %s
		OS: %s
		Memory (MB): total %s, uses %s
		CPU: %s, core %s
		GPU: %s, %s"

	set_text(texts %
		[
			fps,
			frame_time,
			os_name,
			physical_memory, memory_uses,
			cpu_name, cpu_count,
			gpu_name, renderer
		])

func byte_to_mega_byte(bytes):
	return bytes / 1024 / 1024

Yes this is documented:

This method is only supported on Linux/BSD and Windows when not running in headless mode. On other platforms, it returns an empty array.

I'm not sure check the methods in RenderingServer to see if any fits

Is there anyway to get those info on macos? Specially if its renderer name (opengl, vulkan etc)?

Getting the actual rendering driver in use (in a way that obeys automatic fallbacks and CLI argument overrides) isn't currently exposed, there's a PR for it: https://github.com/godotengine/godot/pull/85430
You can still read the project setting though: ProjectSettings.get_setting_with_override("rendering/rendering_device/driver")

@Calinou Thank you so much! Should I close this?

@Calinou Thank you so much! Should I close this?

Yes, as this limitation is already documented.


[QoL] Screenshot message to be clickable

From discord
random idea: can you make the screenshot save location (the message that appears in the chat after taking a screenshot) clickable, so it opens the explorer and selects the specific file?

Probably best to put the image in the clipboard. Windows does it anyway, but it's the all screen.


Weird behavior and possible bug when trying to use breakpoints to only render one component or another

I have made a demo for this here https://github.com/clayhan/reactresponsivedemo
What I'm running into right now is I only want to show a set of components when the screen is under 768px and to show a different set of components when the screen is 768px and greater.
In my demo, I make 3 elements like this:

        <MediaQuery maxWidth={768} >

This div should only show at maxWidth of 768px

        </MediaQuery>

        <MediaQuery minWidth={768} >

This div should only show at minWidth of 768px

        </MediaQuery>

        <MediaQuery maxWidth={767} >

This div should only show at maxWidth of 767px

        </MediaQuery>

Behavior I'm seeing:
@766px, I only see the red div and the green div. This makes sense to me.

@767px, I only see the red div. This implies to me that the green div will render UP TO 766px and that 767px is not included.

@768px, I get both the red div and the blue div. At this point, I would not expect to see the red div at 768px since at 767px, the green div does not render.

So what is the correct use of maxWidth and minWidth to ONLY show components at or under 768px? I was wondering if this was possibly either a bug or a poor implementation by me? Thanks a ton.

I changed it from max/min width to max/min device width and was able to get the behavior I expected development-wise.
<MediaQuery maxDeviceWidth={767} >

This div should only show at maxWidth of 767

</MediaQuery>

<MediaQuery minDeviceWidth={768} >

This div should only show at minWidth of 768

</MediaQuery>

So my question now is if this behavior is intended? I would prefer to use max/min width and not device width.

https://github.com/contra/react-responsive/issues/125
Found this guy, thanks.

@clayhan react-responsive uses CSS media queries, and that's ultimately a CSS media query issue where you can have conflicting values. I would recommend you look at using a function child if you need a ternary.
<MediaQuery maxWidth={768}>
{(matches) => matches ? <MobileContent /> : <DesktopContent />}
</MediaQuery>

And you can nest these as needed if you need to get more complex ^ (DesktopContent would have something similar to distinguish between regular and ultra wide, as one example)

@contra Thanks a ton for the response. The main issue that I'm running into right now is that even if I use your logic above, I am rendering "MobileContent" @ 768px. That isn't what I want, I want to STOP rendering "MobileContent @ 768px so I can render DesktopContent. However, if I move maxWidth to 767px, neither MobileContent OR DesktopContent will render.
I'm primarily trying to think of the absolute most efficient way of rendering 4 different components at 4 breakpoints:
Anything under 768px (so 767px and under) -> show mobile
768px - 1023px - > show tablet
1024px-1443px -> show desktop
1440px and up -> show ultra wide
I'm unable to directly emulate this behavior at this time even using your function child because of the 767 vs 768 px logic I mentioned above.


enable folding of logs

for now, this is a feature request towards github / placeholder.
Folding of log output would be pretty important to navigate long logs; Travis has had this for a long time.

obsolete or done in the new yml-based GitHub actions.


Update style.css

solved issue of overflowing list container
Description
Please include a summary of the changes and the related issue. Include relevant motivation and context.
Fixes #(issue number)
Type of change
Please delete options that are not relevant.

[x] Bug fix (non-breaking change)
[ ] New feature (non-breaking change)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Provide instructions so that they can be reproduced.

[x] Test A
[ ] Test B

Checklist:

[x] My code follows the style guidelines of this project
[ ] I have performed a self-review of my code
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] My changes generate no new warnings
[ ] Any dependent changes have been merged and published in downstream modules

done

done


Fixing Checkbox margins

Summary of the Pull Request
My local result on a control with faulty margins - after:

the "Disable non-indexed files warning" is good now
Another one:

PR Checklist

[x] Closes: #17110
[x] Communication: I've discussed this with core contributors already. If work hasn't been agreed, this work might be rejected
[ ] Tests: Added/updated and all pass
[ ] Localization: All end user facing strings can be localized
[ ] Dev docs: Added/updated
[ ] New binaries: Added on the required places

[ ] JSON for signing for new binaries
[ ] WXS for installer for new binaries and localization folder
[ ] YML for CI pipeline for new test projects
[ ] YML for signed pipeline

[ ] Documentation updated: If checked, please file a pull request on our docs repo and link it here: #xxx

Detailed Description of the Pull Request / Additional comments

Validation Steps Performed
Build solution with Visual Studio and look at the margins

@Jay-o-Way
nox global results layout is broken. And can you please upload a screenshot of some additional plugin aptions with description.

Done =)

@crutkas
Please wait for my review. I need to test the behavior on word wrapping.

@jay-o-way @htcfreek Looking at the changes in your after pics, the margins are still incorrect? The top spacing and bottom spacing should be the same, except for multiple rows.. than the whitespace at the bottom can be more.

I know I've looked at it and remember I ran into these issues again and again 😅.. I'll also check with the design team on what the proposal is for using multi-line checkboxes, maybe the check should just be vertically aligned always? That might make things easier!

@niels9001
I expected that this problem will happen with the changes made by @jay-o-way.
And I promise that if you make window smaller that the description and headers are wrapping, the checkbox will keep its vertical center alignment. Correct?

The first image needs a little update cause i snapped it before i fixed the top margin. As for the others - i can double check soon. At least it looks better already.

@niels9001 I figured out the CAUSE: the checkbox is vertically in the middle of in the combined area (tickmark + two lines of text) and this is no different from the current (released) behavior. So, the person who decided/coded this is to blame. If we want to fix this, we should put the checkbox and the sub-text on two different lines (probably in a stackpanel) where the tickmark is connected to the header. In other words: re-write the whole thing and make it XAML while we're at it.

So, the person who decided/coded this is to blame.

@Jay-o-Way
Can we keep being polite. Mistakes can happen and we all are only humans making sometimes mistakes while giving our best every day. No need to write such sentences. And for your information the person was @niels9001 as I have in mind.

You're right. I'll try. Just got some offline issues that influence my mood 😔

Right now we are trying to get 62 wrapped up. While this is important for craftsmanship, we will hold this for 63 I think.

Tested and works! But it technically does not close #17110:

The CheckBox is not vertically centered (or Top centered like we had before - it's a bit in-between now :)).

Top/Bottom margins are inconsistent

As I mentioned before in the #17110 to do this properly we'd need to re-write the control - unhook the CheckBox from the Content (and let it vertically center align or top - based on design specs). But this requires creating a custom control vs. extending CheckBox, with work to proper Narrator support..
I do agree this PR is an improvement over the current implementation though!

But it technically does not close

I suppose it comes down to expectations then.

unhook the CheckBox from the Content (and let it vertically center align or top - based on design specs)

Also a matter of choice/preference. My preference would be at the top. The following isn't pretty in my opinion:
I wonder why Win.11 doesn't use this in the first place?

Top/Bottom margins are inconsistent

Nit: uneqeal ≠ inconsistent ;)

But it technically does not close

I suppose it comes down to expectations then.

Well - the top/bottom margins are still inconsistent, right - which the issue is about :)?
Top / bottom margins should be the same for every item in a SettingsExpander item - regardless of control it hosts. It's inconsistent in the sense that for a regular CheckBox top and bottom is the same - but not when a (multi)description is added. Source: Windows 11 Settings and the WinUI design specs:

unhook the CheckBox from the Content (and let it vertically center align or top - based on design specs)

Also a matter of choice/preference. My preference would be at the top. The following isn't pretty in my opinion:  I wonder why Win.11 doesn't use this in the first place?

No, there are design specs for this as well. I need to check if it should be centered/top. But either way, it's currently inconsistent as well: it's not 100% vertically center aligned. So it should be either top aligned with the Header vertically centered of the CheckBox or vertically aligned.


HoloToolkit link from the Camera in Unity article goes to a 404 page

The link at the very bottom of the Camera in Unity article in the "See also" section, linking to HoloToolkit Main Camera.prefab doesn't appear to exist in the repo.  Maybe it was supposed to link to Main Camera.prefab?

@superlime thanks for logging this issue. It has been fixed in our documentation internally but has not made it's way to the public source. I will keep this issue open until it does.

Live docs have been updated with the fix. Closing this issue.


Correct minor typos

change "A" to "The" in "The Haskell School of Music" to match the title on the site.
change Django version number on "Test-Driven Web Development with Python" to 1.8. As the author notes here, he updated the book for 1.8 in Spring 2015, since it's an LTS version.

:+1:


Remove 'const' usage

Please can you reconsider using the 'const' syntax ie
const fs = require('fs');
This syntax does not run by default in older versions of node. See here:
http://stackoverflow.com/questions/22603078/syntaxerror-use-of-const-in-strict-mode

Why not upgrade node? If not possible, use an older version.

Currently not possible to upgrade node.js for various reasons on my platform (raspberry pi).
You module is included (indirectly) by the Peerflix module:
https://github.com/mafintosh/peerflix/
So users currently doing "npm install peerflix" and then attempting to run it on old versions of node will fail because of the 'const' syntax

Then stay on the old version of path-exists. Node.js 0.10 and 0.12 are out of active LTS.

I'm not sure but it might be possible to use schrinkwrap to solve that issue.

I will try to get the author of the module that includes yours to use the old version.

I understand the desire to stop supporting old node. I've been encouraging people to stop using node 0.10 and 0.12 since all support (including security) will cease at the end of the year.
However, I personally stop short of intentionally dropping 0.10/0.12 support from packages that used to support it unless there's a really good reason. "I like how this new code looks" isn't a good enough reason in my opinion. Curious what the rationale was.

It was done to remove a dependency. The module already didn't support Node.js 0.10 btw. I'm trying to slim down my dependency tree, as a large part of it are polyfills for older Node.js versions. This was done in a major release and the module is pretty much done, so I don't really see a problem with it. Just stay on the older version if you really need to support unsupported Node.js versions. I don't think it's fair to require a module to wait until every single user has upgraded.


feat: Add support for PostgreSQL vector store

Feature Request
Add vector store support for PostgreSQL (with pg_vector extension).
Motivation
PostgreSQL is one of the most widely used open source databases and supports vector search via the pg_vector extension. This makes the database a good integration candidate for Rig.
Proposal

Create a new companion crate in the repository called rig-postgres.
Implement the VectorStore and VectorStoreIndex traits for the selected PostgreSQL client.

Note: The integration should be similar to the MongoDB vector store integration (see rig-mongodb).

👋
Is someone working on this? Can I give this a go?


Use existing header for external LED?

I have a Greaseweazle V4. I installed it in an external drive enclosure with drives, so I can't see the activity LED. It would be nice if the software could support the use of the existing jumper block to run a panel-mounted LED, or if future revisions of the PCB had a dedicated LED header.

You can connect an LED between pins 3v3 and TXO. You will need a series resistor of at least a few hundred ohms. If the LED isn't bright enough connect to 5v instead of 3v3.

Oh, excellent, I will go give this a try. Sorry if I missed it in the docs.

I don't think it's documented. I should add it to the V4 Setup wiki page.


[REG-13] Registries fixes

Purpose
Fixes for Registries from QA.
Summary of Changes
See Commits
Side Effects

Feature Flags

QA Notes

Ticket

https://openscience.atlassian.net/browse/REG-13
Reviewer Checklist

[ ] meets requirements
[ ] easy to understand
[ ] DRY
[ ] testable and includes test(s)
[ ] changes described in CHANGELOG.md

Pull Request Test Coverage Report for Build 1651

33 of 40 (82.5%)  changed or added relevant lines in 9 files are covered.
30 unchanged lines in 7 files lost coverage.
Overall coverage decreased (-0.05%) to 62.325%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

lib/collections/addon/discover/controller.ts
0
1
0.0%

lib/registries/addon/components/registries-search-result/component.ts
5
6
83.33%

lib/registries/addon/services/share-search.ts
0
2
0.0%

lib/osf-components/addon/components/search-help-modal/component.ts
13
16
81.25%

Files with Coverage Reduction
New Missed Lines
%

lib/registries/addon/components/registries-search-result/component.ts
1
83.64%

lib/osf-components/addon/components/osf-navbar/auth-dropdown/component.ts
2
86.57%

lib/osf-components/addon/components/osf-navbar/component.ts
3
79.37%

lib/registries/addon/discover/controller.ts
3
91.28%

lib/registries/addon/services/search.ts
4
70.0%

lib/registries/addon/helpers/unescape-xml-entities.ts
5
0.0%

lib/registries/addon/services/share-search.ts
12
8.25%

Totals

Change from base Build 1643:
-0.05%

Covered Lines:
3584

Relevant Lines:
5482

💛  - Coveralls


10.1038/s41586-020-03148-w

Grant et al.
Circuits between infected macrophages and T cells in SARS-CoV-2 pneumonia
https://www.nature.com/articles/s41586-020-03148-w
Data:
https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSE155249)https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSE155249

Hi,
I would like to work on this dataset for the toturials.
Thank you :)


Camera went black after a few seconds

When starting the program, it seemed to work fine, then the camera went black.
I wouldn't exclude a technical problem on my side yet.

My guess would be the call to next_frame failed (probably an error bubbled up from v4l for some reason). I added a bit of diagnostics. What output do you get from running the binary with RUST_LOG=debug?

I'm pretty sure it's because my camera had a loose contact. In most programs it wasn't a problem because it did automatically reconnect. Can't test it anymore, I have a new cam now.


grab list of posts

don't merge. changes from last two sections are missing router and post fetcher code


i don't understand this issue. I've tried every angle to this issue but still unable to uncomment h1

Challenge Comment out HTML has an issue.
User Agent is: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.116 Safari/537.36.
Please describe how to reproduce this issue, and include links to screenshots if possible.
My code:

Hello World

CatPhotoApp


Use consistent naming convention in EnglishStringToCodeMap

The file EnglishStringToCodeMap was added as part of the keyboard listener work for https://github.com/phetsims/scenery/issues/1520.  While updating some code to use the new listener I noticed that the naming convention for keys that have multiple words in the name is inconsistent.  For example, there is page_up and page_down, and then arrowUp and arrowDown.  These should probably be made consistent or, if there is a reason not to, that should be documented in the file.

Thanks @jbphet, the page keys are now camelcase like the rest. Closing.


Update networking-overview.md

Updating max pod text to be consistent with the guidance given further down the page

@scott1138 : Thanks for your contribution! The author, @mmacy, has been notified to review your proposed change.

@scott1138 : Thanks for your contribution! The author, @mmacy, has been notified to review your proposed change.


docs: Update trg-8-04.md

Small update of Trivy workflow

Description

Pre-review checks
Please ensure to do as many of the following checks as possible, before asking for committer review:

[ ] DEPENDENCIES are up-to-date. Dash license tool. Committers can open IP issues for restricted libs.
[ ] Copyright and license header are present on all affected files

@klaudiaZF : Please update the description for this PR: The modification in the workflow ensures that the SARIF report generated by Trivy only includes vulnerabilities with the specified severity levels ("CRITICAL" and "HIGH" in this case). The build fails if any such vulnerabilities are found, prompting immediate action to resolve them


Force event Feature

You can force event when the state have the same value (oldstate). With this feature, you can simulate push button. This feature can also resolve this answer => https://gitter.im/balloob/home-assistant?at=563bbec3b615876d0329a983

I will not be able to accept this PR.
This feels like a one off solution to fix a very specific problem that is not worth adding extra complexity to the core for. A state change should indicate just that: a state has changed. No extra checks should be necessary.
I think the problem is that you are having a push button that is represented as a switch while it should not be represented in the UI as a state at all, instead fire off an event when pressed. When you notice that the button is pressed, fire off for example an RFXTRX_BUTTON_PRESSED event with attributes button_id and device_id. This would be enough for people to identify which device fired it, which button is pressed and use an automation rule to add logic to it.


Update VERSION file

Update VERSION file to 1.1.1
Fix #124

Codecov Report

Merging #126 into fuji will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             fuji     #126   +/-   ##
=======================================
  Coverage   28.18%   28.18%
=======================================
  Files           5        5
  Lines         479      479
=======================================
  Hits          135      135
  Misses        330      330
  Partials       14       14

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 04f0c4d...d232467. Read the comment docs.


Changed upf.typing with upf.types

Due to name conflict from upf.typing and python typing library, we decided to change the name to upf.types.

Codecov Report

Merging #30 (a05b1c0) into master (d8803f5) will not change coverage.
The diff coverage is 100.00%.

@@           Coverage Diff           @@
##           master      #30   +/-   ##
=======================================
  Coverage   93.30%   93.30%
=======================================
  Files          35       35
  Lines        3136     3136
=======================================
  Hits         2926     2926
  Misses        210      210

Impacted Files
Coverage Δ

upf/types.py
91.66% <ø> (ø)

upf/action.py
98.63% <100.00%> (ø)

upf/environment.py
96.42% <100.00%> (ø)

upf/expression.py
92.85% <100.00%> (ø)

upf/fluent.py
100.00% <100.00%> (ø)

upf/object.py
100.00% <100.00%> (ø)

upf/problem.py
85.81% <100.00%> (ø)

upf/shortcuts.py
95.38% <100.00%> (ø)

upf/type_checker.py
89.23% <100.00%> (ø)

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 d8803f5...a05b1c0. Read the comment docs.


How to keep a standalone NewsBlur docker installation up to date?

how do you update the newsblur app when running via docker? not talking about updating feeds, but the app itself, or one of its associated containers(?)…

Two ways:

Keep the code up to date by running git pull periodically`
Keep the database up to date by running make nb after pulling down changes.

heya, my make nb resulted in a migration error…
…
> docker exec newsblur_web ./manage.py migrate
> Operations to perform:
>   Apply all migrations: admin, analyzer, auth, contenttypes, feed_import, ipn, oauth2_provider, profile, push, reader, recommendations, rss_feeds, sessions, sites, social, zebra
> Running migrations:
>   No migrations to apply.
>   Your models have changes that are not yet reflected in a migration, and so won't be applied.
>   Run 'manage.py makemigrations' to make new migrations, and then re-run 'manage.py migrate' to apply them.
> docker exec newsblur_web ./manage.py loaddata config/fixtures/bootstrap.json
> Installed 8 object(s) from 1 fixture(s)

so i do a python manage.py makemigrations which results in:
> Traceback (most recent call last):
>   File "manage.py", line 8, in <module>
>     from django.core.management import execute_from_command_line
> ImportError: No module named django.core.management

which is the same result for subsequently doing a python manage.py migrate

You can't run python manage.py migrate without using the docker container. That's why above shows docker exec newsblur_web ./manage.py migrate. But you shouldn't need to run makemigrations because I do all that for the repo.
Anyway, there's no error message there in the first code block, it's just a warning, and one that I've fixed in the pro branch (which shouldn't be used but will eventually be merged into master).
And to fix the browser errors, run make collectstatic. I should turn DEBUG_ASSETS to True in docker_local_settings.py for you, but you can change that yourself. You'll see both lines there, since I switch them back and forth.

excellent, the site is loading now..
the browser does however still report a few errors; is there something i can do? the 'websocket connection failed' fires repeatedly..
DEBUG_ASSETS is True in docker_local_settings.py (i didn't change it) and i did run a make collectstatic.
> [Error] Failed to load resource: the server responded with a status of 403 (Forbidden) (fonts.css, line 0)
> [Error] Failed to load resource: the server responded with a status of 404 (Not Found) (socket.io.js.map, line 0)
> [Log] ["Navigating to url", "folder/everything"] (2) (jquery.newsblur.js, line 26)
> [Log] ["Setting refresh interval to every 70 seconds."] (1) (jquery.newsblur.js, line 26)
> [Error] WebSocket connection to 'wss://my.newsblur.subdomain.url/v3/socket.io/?EIO=4&transport=websocket' failed: There was a bad response from the server.
> [Log] ["Setting refresh interval to every 64 seconds."] (1) (jquery.newsblur.js, line 26)
> [Error] WebSocket connection to 'wss://my.newsblur.subdomain.url/v3/socket.io/?EIO=4&transport=websocket' failed: There was a bad response from the server. (x14)
> [Log] ["Setting refresh interval to every 85 seconds."] (1) (jquery.newsblur.js, line 26)
> [Error] WebSocket connection to 'wss://my.newsblur.subdomain.url/v3/socket.io/?EIO=4&transport=websocket' failed: There was a bad response from the server. (x17)

etc…

the websocket issue was due to my reverse proxy; enabling the "proxy_wstunnel" module and adding the following apache config fixed it:
ProxyPassMatch ^/(v3/socket.io/)$ wss://<IP_ADDRESS>/$1

You're running the docker-compose haproxy behind Apache? That's interesting, but that means you had to tell haproxy to use a different port, right?
Also, websockets are in fact not necessary and newsblur gracefully degrades without them. Websockets were retrofitting on after the non-real-time functionality was built, so that was preserved and websockets take over when they can. If they aren't working, NewsBlur just reloads the feeds every couple minutes or so.


Return a 403 response for unauthenticated ajax requests

At the moment, Wagtail redirects all requests (including AJAX) to the
login view. This is not usually the expected thing to do for AJAX and can
lead to the login page being nested in a component somewhere (which
looks horrible).
This changes the behaviour so requests that come from AJAX are given a
plain 403 error. This allows the code that performed the request to
handle the issue properly.

Tests have been added. I've also added this behaviour to the user_passes_test utils function.

Merged in 579d02246a6ba03c73baf38f9f6923ea38d164a7