Better support for OCaml syntax

This PR implements most of the ideas in #67.

Moves calls to createElement inside the component implementation, to allow consumers to not use JSX attributes, just using plain functions, e.g. let my_element = Greeting.make ~name:"John" ().
The change above carries some constraints:

the ppx now keeps original Reason JSX ppx behavior, and wraps all children in a list
children types need to become of type element list to avoid warnings for keys missing in cases where it's not needed.
for components that pass children over, we need to re-enable spread operator ...

Removes the functionality that used to be needed for module signatures, as right now they can just be typed as regular functions with labelled args.
Simplifies the handling of component implementation arguments in the ppx. In most of internal ppx code we don't care about Nolabel args (as only final () is allowed), so we create a new type with only Labelled and Optional values to remove handling edge cases that never happen.

Todo
Maybe some (or all 😅 ) of these things can go in future PRs:

[x] Add support for let%component syntax
[x] Move all generated functions inside either an anonymous module (open struct ... end) or inside a top level binding let make = let .... to avoid them appearing externally
[x] remove interface test in ppx, doesn't make sense now and adapt Interface text (to explain no action is needed)
[ ] Add snake case version of all methods
[ ] Call setDisplayName when building with profile=dev Dune mode to keep module names in React browser extension
[ ] Better locations
[ ] Make it so that let make ~foo () bar = fails to build

Merging with the ideas in RFC implemented, can tackle remaining tasks in other PRs.


require "rom/model" in rom-rails is missing dependencies

From @solnic on July 31, 2015 13:55
We need to add requires for all the AM parts that we depend on. Other things to check:

require "rom/model/form" should work
require "rom/model/attributes" should work
require "rom/model/validator" should work

---
Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/25215739-require-rom-model-in-rom-rails-is-missing-dependencies?utm_campaign=plugin&utm_content=tracker%2F155789&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F155789&utm_medium=issues&utm_source=github).

Copied from original issue: rom-rb/rom#294

---
Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/25674838-require-rom-model-in-rom-rails-is-missing-dependencies?utm_campaign=plugin&utm_content=tracker%2F442516&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F442516&utm_medium=issues&utm_source=github).

This is now fixed in rom-rails and the new rom-model


HHH-15766 UNION query doesn't preserve the original parenthesis

https://hibernate.atlassian.net/browse/HHH-15766

Superseded by https://github.com/hibernate/hibernate-orm/pull/6197


Error when adding a tester to application

When adding a tester, a "NoMethodError: undefined method `add_tester!' for nil:NilClass" exception happens before actually adding the tester, but after creating the external user in iTunes Connect.
Repro Steps:

Press "Deploy to Heroku" on the Getting Started section of the boarding README.
Fill out required fields and press Deploy.
Set FASTLANE_SESSION environment variable from the result of fastlane spaceauth -u <itunes-connect-username> (per two-factor auth instructions)
Visit Deployed URL in a web browser, enter a first name, last name, and email address, and press "Get Beta Access".

Now the webpage shows the "Something went wrong, please contact the application owner" error message, and this was the log from heroku logs (with some stuff <snip>ped):
2017-04-23T20:52:28.886648+00:00 app[web.1]: Started POST "/submit" for <IP_ADDRESS> at 2017-04-23 20:52:28 +0000
2017-04-23T20:52:28.887837+00:00 app[web.1]: Processing by InviteController#submit as HTML
2017-04-23T20:52:28.887937+00:00 app[web.1]:   Parameters: {"utf8"=>"✓", "authenticity_token"=>"<snip>", "first_name"=>"Test", "last_name"=>"User", "email"=>"<snip>", "commit"=>"Get Beta Access"}
2017-04-23T20:52:28.888687+00:00 app[web.1]: Going to create a new tester: <snip> - Test User
2017-04-23T20:52:33.777698+00:00 app[web.1]: Found tester
2017-04-23T20:52:35.274862+00:00 app[web.1]: Successfully created tester <snip>
2017-04-23T20:52:35.274910+00:00 app[web.1]: Addding tester to application
2017-04-23T20:52:36.317382+00:00 app[web.1]: #<NoMethodError: undefined method `add_tester!' for nil:NilClass>
2017-04-23T20:52:36.317638+00:00 app[web.1]: /app/app/controllers/invite_controller.rb:93:in `submit'
<snip>

I got the same error

It is probably caused by a missing default group. Check #130

I had the same issue. It was fixed here #144. #130 was closed because #144 did the same thing.


Usage uNavINS with another GPS module

Good day @flybrianfly
Thank you so much for your work!
I would like to use the uNavINS library code, but I see that for it to work you need a NEO GPS module with the uBlox protocol.
I can get it more accurately, but the TOW - Gnss.gps_tow_s() parameter confuses me.
https://github.com/FlyTheThings/uNavINS/blob/ed2d0c56a9099f66a5fe93d4d87da317f7f61b0f/uNavINS.h#L89C31-L89C34
I think that I can get other parameters using the NMEA protocol.
Gnss.north_vel_mps(),
Gnss.east_vel_mps(),
Gnss.down_vel_mps(),

As far as I know, this is some specific time format of uBlox modules.
Could you help with advice for the NMEA protocol?
I plan to use GPS module GN02D.

Unfortunately, I have limited familiarity with NMEA. Most of my work is with uBlox receivers over the UBX protocol, currently I use the SAM-M8 and ZED-F9P most frequently.

Unfortunately, I have limited familiarity with NMEA. Most of my work is with uBlox receivers over the UBX protocol, currently I use the SAM-M8 and ZED-F9P most frequently.

Ughh what a pity...
In general, don’t remember why they used the time of the week?
Not seconds, not hours, but TOW?

For TOW, that's doing two things:

Seeing that the GPS data was updated for running the measurement update
Setting the time period for integrating the accels and gyros

TOW is millisecond accuracy. More current versions of the EKF use a constant for setting the time period for integration and leave it up to the programmer to appropriately call the measurement update.

Seeing that the GPS data was updated for running the measurement update

What type of number does this function Gnss.gps_tow_s() return?
Unfortunately, I don’t have a module on the UBKh protocol, so using the comparison method, I’ll try to substitute the time from the module on the HMEA protocol.
Thanx!

It's a double in units of seconds.

Sorry again.
I'm still trying to understand the meaning of substituting the time of the week, especially in double precision.
I understand that this time is simply given out by all uBlox receivers and this time has been used since the invention of satellite navigation, but how can I get it out of a receiver that only gives out the NMEA form - that’s the question.
I decided to go by comparing the UBX and NMEA protocols.
I found this doc about UBX protocol

From my receiver GN02D - receive time in the format $GPRMC,154553.000,,,,,061223 and after parsing by TinyGPSPlus library 12/06/2023 15:45:53:0000
Unfortunately my module does not output centiseconds or milliseconds, but I don't think this would be a problem for getting time in week format or leap second.
But if over time it’s still possible to figure it out somehow, I think I’ll just try using the filter substitution method
https://github.com/FlyTheThings/uNavINS/blob/ed2d0c56a9099f66a5fe93d4d87da317f7f61b0f/examples/uNavINS-with-MPU9250/uNavINS_MPU9250/uNavINS_MPU9250.ino#L77
I will change the format in seconds or something else.
It is difficult to determine the values
Gnss.north_vel_mps(),
Gnss.east_vel_mps(),
Gnss.down_vel_mps(),

scares me more.
As far as I understand, receiving data from uBlox receivers using the UBX protocol allows you to obtain data on speeds and their vectors?

I understood from your answer that you did not work at NMEA and it is difficult to delve into the intricacies and features of another protocol.
The NMEA protocol has a standard VTG message, and I found the same one in the UBX protocol.

Do you think it is possible to replace the values of the velocity vectors obtained from the VTG message?
Or still the values obtained from:
Gnss.north_vel_mps(),
Gnss.east_vel_mps(),
Gnss.down_vel_mps(),

have specific data and cannot put others into the filter?

Regarding time, you can just supply your own time source (i.e. from the microcontoller). Really, it just needs to know that the GPS data was updated and what the time interval is for integrating the gyro and accel measurements during the TimeUpdate portion of the EKF.
The velocity will be tough if you don't have vertical velocity available. You can try using just the north and east velocity to see how that does, but without sitting down to re-work the EKF implementation, I'm not sure how good the results would be. I suspect probably not good.
The current library is located here:
https://github.com/bolderflight/navigation
There's some helper functions along with the 15 state EKF. The EKF is not well documented, but the basic use is to call:
void Initialize(const Eigen::Vector3f &accel, const Eigen::Vector3f &gyro,
const Eigen::Vector3f &mag, const Eigen::Vector3f &ned_vel,
const Eigen::Vector3d &lla)
With vectors of accel, gyro, mag, NED velocity, and lat / lon / alt data when you have a good GNSS solution and new data for everything. This initializes the EKF and only should be called once.
The time update is called with:
void TimeUpdate(const Eigen::Vector3f &accel, const Eigen::Vector3f &gyro,
const float dt_s)
This should be run whenever you have new accel and gyro data. Note that it takes a constant time delta (in seconds) for the integration.
The measurement update is called with:
void MeasurementUpdate(const Eigen::Vector3f &ned_vel,
const Eigen::Vector3d &lla)
When you have new GNSS based NED velocity and lat / lon / alt data.

I decided to GN02D put the module aside for a while and take a rather old module NEO-6M, through the program u-center I configured the output of the UBX protocol, and set the output frequency to 10 Hz.
I also receive message packages in the binary console.

But when I connect the output from the module NEO-6M to the serial port, I get garbage, which is probably logical, because UBX protocol is probably a binary format.
Or, even in the serial port, should I see readable UBX protocol lines from the module NEO-6M?
I also see in the program u-center the time of week iTOW and speed VELNED.

But either the UBX protocol issued by the module is NEO-6M too outdated and the library does not understand it, or I’m doing something wrong.
It also seems to me that due to a dead battery on the module, after de-energizing the module NEO-6M and re-energizing it, the baud rate, which I set for the module at 38400, is lost.
Although the battery on the module NEO-6M is generally intended to store the satellite almanac, and is in no way connected with recording to FLASH memory.
But even with a speed of 9600, the data does not want to be parsed by bfs::Ubx gnss(&Serial2);.
Code from example, modified for stm32f411 with core and uses HardwareSerial
#include "ubx.h"

#define SERIAL_BAUD 115200
#define GNSS_BAUD 9600

HardwareSerial Serial2(USART2); // PA2(TX2), PA3(RX2)
// HardwareSerial Serial2(PA2, PA3);

/* Ublox object, GNSS on Serial3 */
bfs::Ubx gnss(&Serial2);

void setup() {
  /* Serial to display data */
  Serial.begin(SERIAL_BAUD);
  while(!Serial) {}
  gnss.Begin(GNSS_BAUD);
  Serial.print("Serial port speed: ");
  Serial.println(SERIAL_BAUD);
}

void loop() {

// forwarding serial 2 to serial
// if (Serial2.available() > 0)
//   Serial.write(Serial2.read());

  if(gnss.Read()) {
    Serial.print(gnss.fix());
    Serial.print("\t");
    Serial.print(gnss.num_sv());
    Serial.print("\t");
    Serial.print(gnss.lat_deg(), 6);
    Serial.print("\t");
    Serial.print(gnss.lon_deg(), 6);
    Serial.print("\t");
    Serial.print(gnss.alt_wgs84_m(), 2);
    Serial.print("\n");
  }
}

UBX looks like garbage over the serial port, it's binary, not human readable. Try an old version of this library for parsing the packet. At some point uBlox made a breaking change to the UBX-NAV-PVT packet, which this library uses. You could also try SparkFun's ublox library:
https://github.com/sparkfun/SparkFun_Ublox_Arduino_Library
Their library works pretty well - it just wasn't available when I made this one.

Their library works pretty well - it just wasn't available when I made this one.

Unfortunately, the Sparkfan library could not be made to work.
You probably need to configure the NEO-6M module in some clever way before starting to work with the module with the code.
I managed to find a simple code to parse only specific messages.
Before working with the code, I configured the NEO-6M module to output data at 10 Hz.
The main difficulty is saving the settings, because they are saved very unstable.
It’s as if this is done every other time, and even then not always.
Therefore, I save several times and check after turning off the power.
The parser code is written according to the datasheet.

The code works surprisingly quickly, parsing every 100 milliseconds, according to iTOW time.
iTOW: 43966300 velN: -0.07 velE: 0.03 velD: 0.11 speed: 0.13 gSpeed: 0.08 heading: 266.04 sAcc: 41 cAcc: 45.27
iTOW: 43966400 velN: -0.07 velE: 0.05 velD: 0.11 speed: 0.14 gSpeed: 0.09 heading: 266.04 sAcc: 42 cAcc: 45.28
iTOW: 43966500 velN: -0.08 velE: 0.07 velD: 0.11 speed: 0.15 gSpeed: 0.11 heading: 266.04 sAcc: 43 cAcc: 45.28
iTOW: 43966600 velN: -0.12 velE: 0.11 velD: 0.12 speed: 0.20 gSpeed: 0.16 heading: 266.04 sAcc: 43 cAcc: 45.28
iTOW: 43966700 velN: -0.08 velE: 0.16 velD: 0.12 speed: 0.22 gSpeed: 0.18 heading: 266.04 sAcc: 42 cAcc: 45.29

I'll leave the code here, maybe it will be useful for someone.
#define SERIAL_BAUD 115200
#define GNSS_BAUD 9600

HardwareSerial Serial2(USART2); // PA2(TX2), PA3(RX2)

const unsigned char UBX_HEADER[] = {0xB5, 0x62};

struct NAV_VELNED {
  unsigned char cls;
  unsigned char id;
  unsigned short len;
  unsigned long iTOW; // U4
  long velN; // I4
  long velE;
  long velD;
  unsigned long speed;
  unsigned long gSpeed;
  long heading;
  unsigned long sAcc;
  unsigned long cAcc;
};

NAV_VELNED velned;

void calcChecksum(unsigned char* CK) {
  memset(CK, 0, 2);
  for (int i = 0; i < (int)sizeof(NAV_VELNED); i++) {
    CK[0] += ((unsigned char*)(&velned))[i];
    CK[1] += CK[0];
  }
}

bool processGPS() {
  static int fpos = 0;
  static unsigned char checksum[2];
  const int payloadSize = sizeof(NAV_VELNED);

  while ( Serial2.available() ) {
    byte c = Serial2.read();
    if ( fpos < 2 ) {
      if ( c == UBX_HEADER[fpos] )
        fpos++;
      else
        fpos = 0;
    }
    else {
      if ( (fpos-2) < payloadSize )
        ((unsigned char*)(&velned))[fpos-2] = c;

      fpos++;

      if ( fpos == (payloadSize+2) ) {
        calcChecksum(checksum);
      }
      else if ( fpos == (payloadSize+3) ) {
        if ( c != checksum[0] )
          fpos = 0;
      }
      else if ( fpos == (payloadSize+4) ) {
        fpos = 0;
        if ( c == checksum[1] ) {
          return true;
        }
      }
      else if ( fpos > (payloadSize+4) ) {
        fpos = 0;
      }
    }
  }
  return false;
}

void setup()
{
  Serial.begin(SERIAL_BAUD);
  Serial2.begin(GNSS_BAUD);
}

void loop() {
  if ( processGPS() ) {
    Serial.print("iTOW: "); Serial.print(velned.iTOW); // GPS Millisecond Time of Week
    Serial.print(" velN: "); Serial.print(velned.velN * 1e-2f); // m/s
    Serial.print(" velE: "); Serial.print(velned.velE * 1e-2f); // m/s
    Serial.print(" velD: "); Serial.print(velned.velD * 1e-2f); // m/s
    Serial.print(" Spd (3D): "); Serial.print(velned.speed * 1e-2f); // m/s
    Serial.print(" GndSpd (2D): "); Serial.print(velned.gSpeed * 1e-2f); // m/s
    Serial.print(" Hdg (2D): "); Serial.print(velned.heading * 1e-5f); // same that divide on 100000.0f
    Serial.print(" Spd Acc: "); Serial.print(velned.sAcc * 1e-2f);
    Serial.print(" Crs/Hdg Acc: "); Serial.print(velned.cAcc/100000.0f);
    Serial.println();
  }
}

Any rate between 1 Hz and 10 Hz should be fine.

Any rate between 1 Hz and 10 Hz should be fine.

Unfortunately, I still can’t get stable data output from the module.
I use a self-written parser, but it does not work if there is another program in an endless loop, such as Filter.update
Therefore, I try to run the uBlox library, but I encounter a compilation problem.
First I tried to compile
Bolder Flight Systems UBLOX 6.0.6
I get the error elapsedMicros _t; type not specified - in file uNavINS.h
I had to comment out this line.
The iNavINS example code was assembled, but due to a problem with my parser, I was unable to receive the data.
So I decided to delve into the library archives
I found version 5.0.0 and tried to run the protocol parser on it
#include <ubx-5.0.0.h>
// #include <ubx.h>

#define SERIAL_BAUD 115200
#define GNSS_BAUD 115200

HardwareSerial Serial2(USART2); // PA2(TX2), PA3(RX2)
bfs::Ubx gnss(&Serial2);

void setup() {
   /* Serial to display data */
   Serial.begin(SERIAL_BAUD);
   while(!Serial) {}
   gnss.Begin(GNSS_BAUD);
   // Serial.print("Serial port speed: ");
   // Serial.println(SERIAL_BAUD);
}

void loop() {

   // forwarding serial2 to serial
   // if (Serial2.available() > 0)
   // Serial.write(Serial2.read());
   // Serial2.write(Serial.read());

   delay(20);

   if(gnss.Read()) {
     Serial.print(gnss.fix());
     Serial.print("\t");
     Serial.print(gnss.num_sv());
     Serial.print("\t");
     Serial.print(gnss.lat_deg(), 6);
     Serial.print("\t");
     Serial.print(gnss.lon_deg(), 6);
     Serial.print("\t");
     Serial.print(gnss.alt_wgs84_m(), 2);
     Serial.print("\n");
   }
}

As a result, I received a similar error that I received when building the iNavINS library.
You often said that iNaviNS is outdated and not supported by you, and that you are now using the code
https://github.com/bolderflight/spaaro/blob/main/flight_code/flight/nav.cc
Everything is very confusing and it was difficult for me to understand some things.
Now I think I have the following problems:

Library ubx.h version 6.0.6 works with uBlox PVT
my neo-6m module cannot issue PVT, this function is only available on newer models.
Perhaps version of the ubx.h library 5.0.0 will work with my neo-6m module, but the iNavINS code does not work with this library.
A stalemate, the way out of which would probably be to purchase a new uBlox module.

elapsedMillis is a Teensy library. It's header only and available from here:
https://github.com/PaulStoffregen/cores/blob/7435e4bbe96c0819dc28ea64bfe4f152f92a486e/teensy/elapsedMillis.h
I've seen some other ports of that code as well. Should be easy to incorporate. I'm only using it for timing in the Begin method to say whether communication has been established with the GPS receiver. It's not critical and could be removed.
SPAARO is full-blown UAS flight controller software. The EKF / INS is in this library:
https://github.com/bolderflight/navigation
I only cite SPAARO as showing an example of how to call the EKF.
Right, I require UBX-NAV-PVT as one of my packets. You might need to use some other library or your own parser to get around that requirement by using other packets available from the receiver.
I typically run the GNSS parser in the loop and the INS in an interrupt context tied to the IMU data ready interrupt. You need a large enough buffer for the serial port to handle delays of not being able to continuously parse the GPS data. It works really well, but requires understanding of interrupt context and being able to tune an EKF.
I use the EKF in commercial products and happily implement and tune it for paying customers. But it's difficult to make accessible to the masses without a good autotuner that would take into account different sensors, vehicle dynamics, and operating environments. Ultimately, the naive implementation that I used for uNavINS was not adequate at autotuning, was beyond the complexity of most Arduino libraries, and would be hard to support through open-source (i.e. free) methods. It really would require a robust, automated process to tune the EKF to work effectively.

elapsedMillis is a Teensy library. It's header only and available from here:

I have never worked with Teensy, I write the main code for the MCU stm32 family.
Only the ublox library of version 5.0.0 complained about elapsedMillis during compilation.
Added the library to the code
#ifndef SRC_UBX_H_
#define SRC_UBX_H_

#if defined(ARDUINO)
#include <Arduino.h>
#include <elapsedMillis.h> // added for stm32
#else
#include "core/core.h"
#endif
#include <cstddef>
#include <cstdint>
#include "eigen.h" // NOLINT
#include "units.h" // NOLINT
#include "ubx_defs.h" // NOLINT
#include "ubx_nav.h" // NOLINT

The latest version of ublox 6.0.6 compiles without problems on stm32.
I also encountered the problem of assembling the firmware for uNavINS and I also had to look for a solution and it was to add the following code to the uNavINS.h file.
#ifndef UNAVINS_H
#define UNAVINS_H
#if defined(ARDUINO) || defined(ARDUINO_ARCH_STM32)
// #if defined(ARDUINO)
// #include <Arduino.h>
// #include <eigen.h>
// #include <Eigen/Dense>
  #if defined(ARDUINO_ARCH_STM32)
  // #if defined(STM32)
  // #elif defined(STM32F4xx)
  #include <Arduino.h>
  // #include <sys/time.h>
  // #include <math.h>
  #include <eigen.h>
  #include <Eigen/Dense>

  class elapsedMicros
  {
  private:
  	unsigned long us;
  public:
  	elapsedMicros(void) { us = micros(); }
  	elapsedMicros(unsigned long val) { us = micros() - val; }
  	elapsedMicros(const elapsedMicros &orig) { us = orig.us; }
  	operator unsigned long () const { return micros() - us; }
  	elapsedMicros & operator = (const elapsedMicros &rhs) { us = rhs.us; return *this; }
  	elapsedMicros & operator = (unsigned long val) { us = micros() - val; return *this; }
  	elapsedMicros & operator -= (unsigned long val)      { us += val ; return *this; }
  	elapsedMicros & operator += (unsigned long val)      { us -= val ; return *this; }
  	elapsedMicros operator - (int val) const           { elapsedMicros r(*this); r.us += val; return r; }
  	elapsedMicros operator - (unsigned int val) const  { elapsedMicros r(*this); r.us += val; return r; }
  	elapsedMicros operator - (long val) const          { elapsedMicros r(*this); r.us += val; return r; }
  	elapsedMicros operator - (unsigned long val) const { elapsedMicros r(*this); r.us += val; return r; }
  	elapsedMicros operator + (int val) const           { elapsedMicros r(*this); r.us -= val; return r; }
  	elapsedMicros operator + (unsigned int val) const  { elapsedMicros r(*this); r.us -= val; return r; }
  	elapsedMicros operator + (long val) const          { elapsedMicros r(*this); r.us -= val; return r; }
  	elapsedMicros operator + (unsigned long val) const { elapsedMicros r(*this); r.us -= val; return r; }
  };
  #else // for another ARDUINO board(ESP32, ESP8266, UNO)
	#include <Arduino.h>
	#include <eigen.h>
	#include <Eigen/Dense>

	  class elapsedMicros
	  {
	  private:
		unsigned long us;
	  public:
		elapsedMicros(void) { us = micros(); }
		elapsedMicros(unsigned long val) { us = micros() - val; }
		elapsedMicros(const elapsedMicros &orig) { us = orig.us; }
		operator unsigned long () const { return micros() - us; }
		elapsedMicros & operator = (const elapsedMicros &rhs) { us = rhs.us; return *this; }
		elapsedMicros & operator = (unsigned long val) { us = micros() - val; return *this; }
		elapsedMicros & operator -= (unsigned long val)      { us += val ; return *this; }
		elapsedMicros & operator += (unsigned long val)      { us -= val ; return *this; }
		elapsedMicros operator - (int val) const           { elapsedMicros r(*this); r.us += val; return r; }
		elapsedMicros operator - (unsigned int val) const  { elapsedMicros r(*this); r.us += val; return r; }
		elapsedMicros operator - (long val) const          { elapsedMicros r(*this); r.us += val; return r; }
		elapsedMicros operator - (unsigned long val) const { elapsedMicros r(*this); r.us += val; return r; }
		elapsedMicros operator + (int val) const           { elapsedMicros r(*this); r.us -= val; return r; }
		elapsedMicros operator + (unsigned int val) const  { elapsedMicros r(*this); r.us -= val; return r; }
		elapsedMicros operator + (long val) const          { elapsedMicros r(*this); r.us -= val; return r; }
		elapsedMicros operator + (unsigned long val) const { elapsedMicros r(*this); r.us -= val; return r; }
	  };
  #endif
#else // non ARDUINO board(i.e. TEENSY)
  #include <sys/time.h>
  #include <stdint.h>
  #include <math.h>
  #include <Eigen/Core>
  #include <Eigen/Dense>

  uint64_t micros() {
      struct timeval tv;
      gettimeofday(&tv,NULL);
      return tv.tv_sec*(uint64_t)1000000+tv.tv_usec;
  }

  class elapsedMicros
  {
  private:
  	unsigned long us;
  public:
  	elapsedMicros(void) { us = micros(); }
  	elapsedMicros(unsigned long val) { us = micros() - val; }
  	elapsedMicros(const elapsedMicros &orig) { us = orig.us; }
  	operator unsigned long () const { return micros() - us; }
  	elapsedMicros & operator = (const elapsedMicros &rhs) { us = rhs.us; return *this; }
  	elapsedMicros & operator = (unsigned long val) { us = micros() - val; return *this; }
  	elapsedMicros & operator -= (unsigned long val)      { us += val ; return *this; }
  	elapsedMicros & operator += (unsigned long val)      { us -= val ; return *this; }
  	elapsedMicros operator - (int val) const           { elapsedMicros r(*this); r.us += val; return r; }
  	elapsedMicros operator - (unsigned int val) const  { elapsedMicros r(*this); r.us += val; return r; }
  	elapsedMicros operator - (long val) const          { elapsedMicros r(*this); r.us += val; return r; }
  	elapsedMicros operator - (unsigned long val) const { elapsedMicros r(*this); r.us += val; return r; }
  	elapsedMicros operator + (int val) const           { elapsedMicros r(*this); r.us -= val; return r; }
  	elapsedMicros operator + (unsigned int val) const  { elapsedMicros r(*this); r.us -= val; return r; }
  	elapsedMicros operator + (long val) const          { elapsedMicros r(*this); r.us -= val; return r; }
  	elapsedMicros operator + (unsigned long val) const { elapsedMicros r(*this); r.us -= val; return r; }
  };
#endif

I don’t think that your works will ever be compiled on STM32 microcontrollers, but maybe this will help someone.
Unfortunately, even with the latest version of the ublok library, I could not get data from my module, which I wrote about in the next issue.
I’m writing my own library, which will parse only part of the messages, but it also works unstable, when the delay time in an infinite loop increases by more than 10 ms.
It’s as if we really don’t have enough buffer memory.
Apparently the buffer must be filled and read at a strictly defined time, otherwise nothing works.

I only cite SPAARO as showing an example of how to call the EKF.

It seems to me that the most optimal thing would be not to create a full-fledged, structured library and write complete documentation for the code.
Just describe the options for setting these parameters in a little more detail:
https://github.com/bolderflight/navigation/blob/main/src/ekf_15_state.h#L331
and these
https://github.com/FlyTheThings/uNavINS/blob/ed2d0c56a9099f66a5fe93d4d87da317f7f61b0f/uNavINS.h#L109
It is possible to make a short video, and this will be a great help for assembling the code and configuring the parameters of the EKF filter.
It's a shame that this topic has been abandoned.
https://forum.pjrc.com/index.php?threads/unav-ins.48856/
Despite the imperfections of the uNavINS library, it was at least in the concept of Arduino and is not difficult to understand.
The SPAARO code is still more spontaneous and complex, although it also deserves great respect for your work.

I use the EKF in commercial products and happily implement and tune it for paying customers. But it's difficult to make accessible to the masses without a good autotuner that would take into account different sensors, vehicle dynamics, and operating environments.

Personally, I was happy to support your project with any donations.
And he helped its development, albeit in a complexly customizable form for non-commercial purposes.
Otherwise, what’s the point of hosting a project on an open source platform if it is not used and abandoned?

Navigation is an Arduino library, which contains the EKF among other related functions and transformations. I do agree the EKF needs better documentation. uNavINS was a fundamentally flawed approach that didn't take into account the process error. The EKF in the Navigation library is the more correct approach, but it requires manual tuning.
SPAARO is not abandoned, it's used by many businesses and Universities to conduct research. It's open-source so they can build on the baseline code. We sell hardware that works with SPAARO out of the box and it may be modified into an Arduino compatible library at some point, currently the build tooling revolves around CMake, and I welcome contributions.


Lf_WorkingDirectoryMode not working

vim or neovim?

[ ] vim
[X] neovim

Output of vim --version or nvim --version:
NVIM v0.4.3
Build type: RelWithDebInfo
LuaJIT 2.0.5
Compilation: /usr/bin/gcc-5 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1 -O2 -g -DMIN_LOG_LEVEL=3 -Og -g -Wall -Wextra -pedantic -Wno-unused-parameter -Wstrict-prototypes -std=gnu99 -Wshadow -Wconversion -Wmissing-prototypes -Wvla -fstack-protector-strong -fdiagnostics-color=auto -DINCLUDE_GENERATED_DECLARATIONS -D_GNU_SOURCE -DNVIM_MSGPACK_HAS_FLOAT32 -DNVIM_UNIBI_HAS_VAR_FROM -I/home/travis/build/neovim/bot-ci/build/neovim/build/config -I/home/travis/build/neovim/bot-ci/build/neovim/src -I/home/travis/build/neovim/bot-ci/build/neovim/.deps/usr/include -I/usr/include -I/home/travis/build/neovim/bot-ci/build/neovim/build/src/nvim/auto -I/home/travis/build/neovim/bot-ci/build/neovim/build/include
Compiled by travis@travis-job-9a287301-34f2-4b86-92e3-462594f51f36

Features: +acl +iconv +tui
See ":help feature-compile"
system vimrc file: "$VIM/sysinit.vim"
fall-back for $VIM: "
/home/travis/build/neovim/bot-ci/build/neovim/build/nvim.AppDir/usr/share/nvim
"

Output of :echo has("python"): 0
Output of :echo has("python3"): 1
Output of :echo &pythondll(only vim, not neovim):
Output of :echo &pythonthreedll(only vim, not neovim):
Output of :py print(sys.version): E319: No "python" provider found. Run...
Output of :py3 print(sys.version): 3.6.10
Output of :echo g:Lf_Debug_Cmd:
Output of :echo g:Lf_FilesFromCache:
Operating system:

[x] Linux
[ ] Mac OS X
[ ] Windows
[ ] Etc.

Configurations related to LeaderF in vimrc:
" LeaderF
let g:Lf_RootMarkers = ['.git']
let g:Lf_WorkingDirectoryMode = 'Ac'

Describe your question, feature request, or bug.
Strangely ,f only lists files under the current folder, but doesn't respect the Lf_RootMarkers setting. Pretty sure there is .git folder in the parent directory. :Leaderf rg also only search the current folder.
LeaderF is installed and updated with vim-plug.

Make sure that you know the difference between let g:Lf_WorkingDirectoryMode = 'Ac' and let g:Lf_WorkingDirectoryMode = 'ac'.

Make sure that you know the difference between let g:Lf_WorkingDirectoryMode = 'Ac' and let g:Lf_WorkingDirectoryMode = 'ac'.

True, Ac works only when opening an existed file. Thanks!

It never works correctly as I see.


Discord message doesn't respect events tab

Report: When reflecting in Discord, it shows even the items I have used. Please tell me how to make it only show furnace items. By the way, "Use" is not checked in "Events" tab

To add to this, I think that the filters applied don't apply to discord, it just sends everything?
Please correct me if I'm wrong, but now that the discord bridge started working for me, I only want to track my own items, but it's sending messages for other players.

Yeah, I think you are correct. Looks like the Event tab is only used at the moment for the overlay and is not checked for the discord feature which was not my intention.

Pushed an update with a fix.


converting link from markdown to html in table

Description of the change:
Reason for the change:
Link to original source:

Closes #

Hello @Whatthefoxsays,Thanks again for the PR! We appreciate your contribution and look forward to                                              continued collaboration. Thanks!                                             Team SendGrid DX


latest glance configuration templates

I think an old pull request is hanging around.  I am going to close and try the new one again


Expanding the data format structure of region to allow specifying three regions

Updated the README.md of region to describe the expansion we need to implement to the region definition so that we can integrate the output of InfraCost.
Please check the proposed expansion of the data format structure of region and advise on how to implement it.
With due thanks.

@sandrinecharousset, Let me first explain the context and then let's see if the description is clear or not. Let's say the interconnection between France and Spain has a flow of 500 MW. InfraCost will determine the agents responsible for this flow and how much each agent is contributing. For example, let's say the generators in Paris are responsible for 400 MW on this line and the generators in Berlin are responsible for 100 MW on this line. Then, the results will include:
| model   | scenario        | region | variable   | unit | subannual | 2015 |
| InfraCost | Scenario Name | Paris:France>Spain | Network|Electricity|Active Power Flow Generation Contribution | MW |  Year | 400|
|InfraCost | Scenario Name | Berlin:France>Spain | Network|Electricity|Active Power Flow Generation Contribution | MW | Year | 400|
Based on this flow contribution of each region to the different interconnections, the model will also give the cost contribution of this region to the different interconnections.
I hope with this the context is clear. Let me know otherwise.

I have added four new variables to represent the output of InfraCost. These four variables will require specifying three regions, according to the proposed suggestion above or any other way. Please check the consistency of the variables' names and descriptions.

@sandrinecharousset, Let me first explain the context and then let's see if the description is clear or not. Let's say the interconnection between France and Spain has a flow of 500 MW. InfraCost will determine the agents responsible for this flow and how much each agent is contributing. For example, let's say the generators in Paris are responsible for 400 MW on this line and the generators in Berlin are responsible for 100 MW on this line. Then, the results will include:
| model | scenario | region | variable | unit | subannual | 2015 | | InfraCost | Scenario Name | Paris:France>Spain | Network|Electricity|Active Power Flow Generation Contribution | MW | Year | 400| |InfraCost | Scenario Name | Berlin:France>Spain | Network|Electricity|Active Power Flow Generation Contribution | MW | Year | 400|
Based on this flow contribution of each region to the different interconnections, the model will also give the cost contribution of this region to the different interconnections. I hope with this the context is clear. Let me know otherwise.

Many thanks @MohElabbas this is clear now :-)

@sandrinecharousset, Let me first explain the context and then let's see if the description is clear or not. Let's say the interconnection between France and Spain has a flow of 500 MW. InfraCost will determine the agents responsible for this flow and how much each agent is contributing. For example, let's say the generators in Paris are responsible for 400 MW on this line and the generators in Berlin are responsible for 100 MW on this line. Then, the results will include:
| model | scenario | region | variable | unit | subannual | 2015 | | InfraCost | Scenario Name | Paris:France>Spain | Network|Electricity|Active Power Flow Generation Contribution | MW | Year | 400| |InfraCost | Scenario Name | Berlin:France>Spain | Network|Electricity|Active Power Flow Generation Contribution | MW | Year | 400|
Based on this flow contribution of each region to the different interconnections, the model will also give the cost contribution of this region to the different interconnections. I hope with this the context is clear. Let me know otherwise.

Many thanks @MohElabbas this is clear now :-)

After looking at the variables I am not sure ... I understand that what you want to report is who are the responsible for the flow in an interco (and thus ask them to pay for it). The 'region' field is then region3:region1>region2 ; second part is clear, it is describing the interco frm region1 to region2. Region3 is not clear from the different variables and comments. Is it the region where the energy is produced?
Then about the second variable which is about the capital cost, do you need to affect this share of cost to a region? (which could include different companies..... ); Moreover for me the responsible of the flow is not always the generator but the guy who  sells the energy and then for this needs using the interco.
Maybe this would be more efficient with a specific meeting as it is quite a major evolution in the nomenclature, so needs to take time and think of it....

@sandrinecharousset, Let me first explain the context and then let's see if the description is clear or not. Let's say the interconnection between France and Spain has a flow of 500 MW. InfraCost will determine the agents responsible for this flow and how much each agent is contributing. For example, let's say the generators in Paris are responsible for 400 MW on this line and the generators in Berlin are responsible for 100 MW on this line. Then, the results will include:
| model | scenario | region | variable | unit | subannual | 2015 | | InfraCost | Scenario Name | Paris:France>Spain | Network|Electricity|Active Power Flow Generation Contribution | MW | Year | 400| |InfraCost | Scenario Name | Berlin:France>Spain | Network|Electricity|Active Power Flow Generation Contribution | MW | Year | 400|
Based on this flow contribution of each region to the different interconnections, the model will also give the cost contribution of this region to the different interconnections. I hope with this the context is clear. Let me know otherwise.

Many thanks @MohElabbas this is clear now :-)

After looking at the variables I am not sure ... I understand that what you want to report is who are the responsible for the flow in an interco (and thus ask them to pay for it). The 'region' field is then region3:region1>region2 ; second part is clear, it is describing the interco frm region1 to region2. Region3 is not clear from the different variables and comments. Is it the region where the energy is produced? Then about the second variable which is about the capital cost, do you need to affect this share of cost to a region? (which could include different companies..... ); Moreover for me the responsible of the flow is not always the generator but the guy who sells the energy and then for this needs using the interco. Maybe this would be more efficient with a specific meeting as it is quite a major evolution in the nomenclature, so needs to take time and think of it....

@sandrinecharousset Let me explain more about what the model does so that you can make sense of the variables (please also refer to the model description in the model catalogue if you want more details and see a simple example of the model application). The model traces all the physical flows in the network from where they start, i.e., their source/generation, to where they end, i.e., their sink/demand. Therefore, the flow on a line (not necessarily an interconnection but any line) will be attributed to both demand and generation. Now, I used the word "region" because my understanding is that this is the terminology for describing the spatial dimension, however, the model, in fact, works at the nodal or agent level, and then you can do whatever aggregation you want (region-wise, zone-wise, country-wise, TSO-wise...etc) but you still need to indicate whether this aggregation is an aggregation of demand nodes/agents or generation nodes/agents. That's why the variables (be it flow or cost) need to specify whether it is a demand or generation.
Note that here we are dealing with the physical dispatched flow (or simulated ones of a future scenario), so we don't talk about who sells or buys energy because this is irrelevant to the physical flow, and this is the main idea of the model, that cost should be according to benefits, and here the electrical usage is used as a proxy of benefit. Keep in mind again that when I say cost allocated to a region, I am only referring to the spatial granularity used to represent the electrical network, i.e., whether the lines are connecting regions per se or nodes within the regions. The spatial granularity of the network doesn't really matter for the model as it will track the flow and allocate the cost according to it, but the higher the granularity, the better, so that you can track flow and allocate cost at the agent level.
I hope this clarifies things, but happy to have a quick meeting any time during the week.

@sandrinecharousset, Let me first explain the context and then let's see if the description is clear or not. Let's say the interconnection between France and Spain has a flow of 500 MW. InfraCost will determine the agents responsible for this flow and how much each agent is contributing. For example, let's say the generators in Paris are responsible for 400 MW on this line and the generators in Berlin are responsible for 100 MW on this line. Then, the results will include:
| model | scenario | region | variable | unit | subannual | 2015 | | InfraCost | Scenario Name | Paris:France>Spain | Network|Electricity|Active Power Flow Generation Contribution | MW | Year | 400| |InfraCost | Scenario Name | Berlin:France>Spain | Network|Electricity|Active Power Flow Generation Contribution | MW | Year | 400|
Based on this flow contribution of each region to the different interconnections, the model will also give the cost contribution of this region to the different interconnections. I hope with this the context is clear. Let me know otherwise.

Many thanks @MohElabbas this is clear now :-)

After looking at the variables I am not sure ... I understand that what you want to report is who are the responsible for the flow in an interco (and thus ask them to pay for it). The 'region' field is then region3:region1>region2 ; second part is clear, it is describing the interco frm region1 to region2. Region3 is not clear from the different variables and comments. Is it the region where the energy is produced? Then about the second variable which is about the capital cost, do you need to affect this share of cost to a region? (which could include different companies..... ); Moreover for me the responsible of the flow is not always the generator but the guy who sells the energy and then for this needs using the interco. Maybe this would be more efficient with a specific meeting as it is quite a major evolution in the nomenclature, so needs to take time and think of it....

@sandrinecharousset Let me explain more about what the model does so that you can make sense of the variables (please also refer to the model description in the model catalogue if you want more details and see a simple example of the model application). The model traces all the physical flows in the network from where they start, i.e., their source/generation, to where they end, i.e., their sink/demand. Therefore, the flow on a line (not necessarily an interconnection but any line) will be attributed to both demand and generation. Now, I used the word "region" because my understanding is that this is the terminology for describing the spatial dimension, however, the model, in fact, works at the nodal or agent level, and then you can do whatever aggregation you want (region-wise, zone-wise, country-wise, TSO-wise...etc) but you still need to indicate whether this aggregation is an aggregation of demand nodes/agents or generation nodes/agents. That's why the variables (be it flow or cost) need to specify whether it is a demand or generation. Note that here we are dealing with the physical dispatched flow (or simulated ones of a future scenario), so we don't talk about who sells or buys energy because this is irrelevant to the physical flow, and this is the main idea of the model, that cost should be allocated according to benefits, and here the electrical usage is used as a proxy of benefit. Keep in mind again that when I say cost allocated to a region, I am only referring to the spatial granularity used to represent the electrical network, i.e., whether the lines are connecting regions per se or nodes within the regions. The spatial granularity of the network doesn't really matter for the model as it will track the flow and allocate the cost according to it, but the higher the granularity, the better, so that you can track flow and allocate cost at the agent level. I hope this clarifies things, but happy to have a quick meeting any time during the week.

Dear @MohElabbas now it is completely clear
But then there may be an inconsistency between generator/region and same for the demand side and perhaps expanding the region name this way is not the perfect solution
We should discuss that also with @phackstock
Best

I have updated the PR according to the received comments. Please let me know if you see anything else that needs changing. Many thanks.

Thanks, this looks good to me from a variable-naming structure and we can add the three-part-region modifications for your use case.
@sandrinecharousset, are you satisfied with the documentation and description of variables?

@danielhuppmann I have made some slight modifications to the variable structure after discussing with Luis. Could you please re-check them? Thank you.


1.18.2 Request

As the title says, just wondering if a release could be pushed or tagged?

1.18.2 add please. If you not very busy of course.
Thanks for this helpful mod =)

Available here: https://www.curseforge.com/minecraft/mc-mods/better-ping-display/files/3735839

Thanks a lot! Have nice day


Allow putting configuration in .git/config

It is useful to record API endpoints in each git repository configuration, for when you have multiple repositories deal with multiple gitlab hosting services...

This is how I ended up doing it, in a /usr/local/bin/git-lab script, so you can use with git lab:
#!/bin/sh

endpoint=`git config gitlab.api.endpoint`
if test -z "${endpoint}"; then
  echo "No endpoint defined, please use:" >&2
  echo "  git config gitlab.api.endpoint \${endpoint}" >&2
  echo "Endpoint is like: https://gitlab.yourcompany.com/api/v4" >&2
  exit 1
fi

baseurl=`echo ${endpoint} | sed 's|/api/v4$||'`

token=
if test -f ~/.gitlab-tokens; then
  token=`grep "^${baseurl} " ~/.gitlab-tokens | cut -d' ' -f2`
fi

if test -z "${token}"; then
  echo "No private token found for endpoint ${baseurl} in ~/.gitlab-tokens, try adding it:" >&2
  echo "  echo ${baseurl} \${token} >> ~/.gitlab-tokens" >&2
  echo "You can find your private token on ${baseurl}/profile/account" >&2
  exit 1
fi

export GITLAB_API_ENDPOINT=${endpoint}
export GITLAB_API_PRIVATE_TOKEN=${token}

# This one is optional and can be used to set any HTTParty option you
# may need
# using YAML hash syntax. For example, this is how you would disable
# SSL
# verification (useful if using a self-signed cert).
#export GITLAB_API_HTTPARTY_OPTIONS="{verify: false}"

gitlab $@

@AAraKKe  @NARKOZ @cvand @asedge  What about this?

Why have I never thought of this?  This makes a ton of sense.

I would argue whilst this is a neat addition you should support – it's probably pretty common to have >1 gitlab installations to care about – to that end, I actually chuck the credentials in the .env of my project and updated gitlab-cli to call require('dotenv').config() at the top – meaning I can use the right gitlab for the right project 👌

@stevelacey how's that different from the proposed solution ? It'd be in .git/config instead of in .env, for each project. Of course I was talking about the local git config, not the global one, you can see the code uses git config, not git config -g

@strk ignore me, it looks like I wasn't even commenting on the correct gitlab-cli project – and yes, of course, local config 👌

Use environment variables to achieve this.

NOTE: Use environment variables would NOT achieve what I was after. It would require me to keep changing my env variables everytime I move from one repository to another... I still think config in .git/config makes sense...


SIGBUS fault using CP-SAT solver on M1 mac with specific virtual environment configuration

What version of OR-Tools and what language are you using?
Version: v9.4.1874
Language: Python

OTHER ENVIRONMENT INFORMATION:

pyenv installed via arm64 homebrew no Rosetta2 emulation
python version 3.8.13 installed via pyenv

Which solver are you using (e.g. CP-SAT, Routing Solver, GLOP, BOP, Gurobi)
CP-SAT
What operating system (Linux, Windows, ...) and version?
MacOS 12.6 (Monterey)
What did you do?

NOTE: The issue is NOT reproducible with an extremely minimal set of dependencies (ortools-working.txt), but it IS reproducible with the complete set of dependencies that my application uses (see below).

Steps to reproduce the behavior:
python -m venv binning-error
source binning-error/bin/activate
pip install --upgrade pip wheel
pip install optbinning==0.15.1 ortools==9.4.1874 pyarrow==5.0.0

Then run the following python script:
# repro.py - requires pyarrow to be installed.
import optbinning
from ortools.sat.python import cp_model

print("testing cp_model.CpSolver()")
model = cp_model.CpModel()
num_vals = 3
x = model.NewIntVar(0, num_vals - 1, 'x')
y = model.NewIntVar(0, num_vals - 1, 'y')
z = model.NewIntVar(0, num_vals - 1, 'z')
model.Add(x != y)
solver = cp_model.CpSolver()
print("Running solver.Solve(model)")
# NOTE: The following line will provoke a SIGBUS Fault
status = solver.Solve(model)
print(status)

IMPORTANT: If you simply comment out the import optbinning, the issue goes away. If you leave import optbinning and uninstall pyarrow, the issue goes away.

What did you expect to see
I expected to see the continuous optimal binner complete successfully.
What did you see instead?
The process crashed with a SIGBUS fault.
Make sure you include information that can help us debug (full error message, model Proto).
My apologies, but don't understand enough about the model creation to create a reproduction without using optbinning.
Anything else we should know about your project / environment

UPDATE I was able to get some help creating a more targeted reproduction example. I'm working on trimming down the dependencies of the repro to make it easier to track down the issue.
If you simply comment out the import optbinning in the repro example, then the issue goes away. I think this indicates a weird package import/initialization conflict between ortools and one of the other packages.

UPDATE:
I was able to find the key variable! The issue is reproducible if pyarrow is installed in the environment and if optbinning has been imported. If pyarrow is not installed, then the issue cannot be reproduced (or if it is installed, but optbinning isn't imported). I will update the reproduction example in the main issue description.
Here's a more straightforward reproduction:
python -m venv binning-error
source binning-error/bin/activate
pip install --upgrade pip wheel
pip install optbinning pyarrow

Then run the following python script:
# repro.py - requires pyarrow to be installed.
import optbinning
from ortools.sat.python import cp_model

print("testing cp_model.CpSolver()")
model = cp_model.CpModel()
num_vals = 3
x = model.NewIntVar(0, num_vals - 1, 'x')
y = model.NewIntVar(0, num_vals - 1, 'y')
z = model.NewIntVar(0, num_vals - 1, 'z')
model.Add(x != y)
solver = cp_model.CpSolver()
print("Running solver.Solve(model)")
# NOTE: The following line will provoke a SIGBUS Fault
status = solver.Solve(model)
print(status)

When running these tests with python's -v option, we can see the following extra import behaviors in the "failure" scenarios:
# ~/venv-test2/lib/python3.8/site-packages/pyarrow/__pycache__/__init__.cpython-38.pyc matches ~/venv-test2/lib/python3.8/site-packages/pyarrow/__init__.py
# code object from '~/venv-test2/lib/python3.8/site-packages/pyarrow/__pycache__/__init__.cpython-38.pyc'
# ~/venv-test2/lib/python3.8/site-packages/pyarrow/__pycache__/_generated_version.cpython-38.pyc matches ~/venv-test2/lib/python3.8/site-packages/pyarrow/_generated_version.py
# code object from '~/venv-test2/lib/python3.8/site-packages/pyarrow/__pycache__/_generated_version.cpython-38.pyc'
import 'pyarrow._generated_version' # <_frozen_importlib_external.SourceFileLoader object at 0xFAKE_ADDRESS>
# extension module 'pyarrow.lib' loaded from '~/venv-test2/lib/python3.8/site-packages/pyarrow/lib.cpython-38-darwin.so'
# ~/venv-test2/lib/python3.8/site-packages/pyarrow/__pycache__/util.cpython-38.pyc matches ~/venv-test2/lib/python3.8/site-packages/pyarrow/util.py
# code object from '~/venv-test2/lib/python3.8/site-packages/pyarrow/__pycache__/util.cpython-38.pyc'
import 'pyarrow.util' # <_frozen_importlib_external.SourceFileLoader object at 0xFAKE_ADDRESS>
# extension module 'pyarrow.lib' executed from '~/venv-test2/lib/python3.8/site-packages/pyarrow/lib.cpython-38-darwin.so'
import 'pyarrow.lib' # <_frozen_importlib_external.ExtensionFileLoader object at 0xFAKE_ADDRESS>
# extension module 'pyarrow._hdfsio' loaded from '~/venv-test2/lib/python3.8/site-packages/pyarrow/_hdfsio.cpython-38-darwin.so'
# extension module 'pyarrow._hdfsio' executed from '~/venv-test2/lib/python3.8/site-packages/pyarrow/_hdfsio.cpython-38-darwin.so'
import 'pyarrow._hdfsio' # <_frozen_importlib_external.ExtensionFileLoader object at 0xFAKE_ADDRESS>
# ~/venv-test2/lib/python3.8/site-packages/pyarrow/__pycache__/hdfs.cpython-38.pyc matches ~/venv-test2/lib/python3.8/site-packages/pyarrow/hdfs.py
# code object from '~/venv-test2/lib/python3.8/site-packages/pyarrow/__pycache__/hdfs.cpython-38.pyc'
# ~/venv-test2/lib/python3.8/site-packages/pyarrow/__pycache__/filesystem.cpython-38.pyc matches ~/venv-test2/lib/python3.8/site-packages/pyarrow/filesystem.py
# code object from '~/venv-test2/lib/python3.8/site-packages/pyarrow/__pycache__/filesystem.cpython-38.pyc'
import 'pyarrow.filesystem' # <_frozen_importlib_external.SourceFileLoader object at 0xFAKE_ADDRESS>
import 'pyarrow.hdfs' # <_frozen_importlib_external.SourceFileLoader object at 0xFAKE_ADDRESS>
# ~/venv-test2/lib/python3.8/site-packages/pyarrow/__pycache__/ipc.cpython-38.pyc matches ~/venv-test2/lib/python3.8/site-packages/pyarrow/ipc.py
# code object from '~/venv-test2/lib/python3.8/site-packages/pyarrow/__pycache__/ipc.cpython-38.pyc'
import 'pyarrow.ipc' # <_frozen_importlib_external.SourceFileLoader object at 0xFAKE_ADDRESS>
# ~/venv-test2/lib/python3.8/site-packages/pyarrow/__pycache__/serialization.cpython-38.pyc matches ~/venv-test2/lib/python3.8/site-packages/pyarrow/serialization.py
# code object from '~/venv-test2/lib/python3.8/site-packages/pyarrow/__pycache__/serialization.cpython-38.pyc'
import 'pyarrow.serialization' # <_frozen_importlib_external.SourceFileLoader object at 0xFAKE_ADDRESS>
# ~/venv-test2/lib/python3.8/site-packages/pyarrow/__pycache__/types.cpython-38.pyc matches ~/venv-test2/lib/python3.8/site-packages/pyarrow/types.py
# code object from '~/venv-test2/lib/python3.8/site-packages/pyarrow/__pycache__/types.cpython-38.pyc'
import 'pyarrow.types' # <_frozen_importlib_external.SourceFileLoader object at 0xFAKE_ADDRESS>
import 'pyarrow' # <_frozen_importlib_external.SourceFileLoader object at 0xFAKE_ADDRESS>
...
# ~/venv-test2/lib/python3.8/site-packages/pyarrow/__pycache__/compute.cpython-38.pyc matches ~/venv-test2/lib/python3.8/site-packages/pyarrow/compute.py
# code object from '~/venv-test2/lib/python3.8/site-packages/pyarrow/__pycache__/compute.cpython-38.pyc'
# extension module 'pyarrow._compute' loaded from '~/venv-test2/lib/python3.8/site-packages/pyarrow/_compute.cpython-38-darwin.so'
# extension module 'pyarrow._compute' executed from '~/venv-test2/lib/python3.8/site-packages/pyarrow/_compute.cpython-38-darwin.so'
import 'pyarrow._compute' # <_frozen_importlib_external.ExtensionFileLoader object at 0xFAKE_ADDRESS>
import 'pyarrow.compute' # <_frozen_importlib_external.SourceFileLoader object at 0xFAKE_ADDRESS>
# ~/venv-test2/lib/python3.8/site-packages/pandas/core/arrays/arrow/__pycache__/_arrow_utils.cpython-38.pyc matches ~/venv-test2/lib/python3.8/site-packages/pandas/core/arrays/arrow/_arrow_utils.py
# code object from '~/venv-test2/lib/python3.8/site-packages/pandas/core/arrays/arrow/__pycache__/_arrow_utils.cpython-38.pyc'
import 'pandas.core.arrays.arrow._arrow_utils' # <_frozen_importlib_external.SourceFileLoader object at 0xFAKE_ADDRESS>

When pyarrow is uninstalled, or optbinning isn't imported, then those extra import behaviors are not present.
This is an odd interaction between modules given that pyarrow is not a dependency of ortools or optbinning. I'm not exactly sure what's reasonable in terms of next steps. Does this indicate a problem that numpy or pyarrow should address, or is it possible for ortools or optbinning to isolate themselves from this particular side-effect?

UPDATE: The version of pyarrow matters. I'm unable to reproduce the issue if I use pyarrow==9.0.0 but using pyarrow==6.0.1 (from my application's original lockfile) will provoke the problematic behavior.
I think this indicates a problem ultimately related to the version of numpy that was used to build pyarrow vs what's available in the runtime environment, but it's still surprising to me that this impact is felt given that pyarrow is not a direct dependency of optbinning or ortools.

don't know. But the M1 transition was not smooth for python.
I suspect the pinned version forced an intel version of numpy. We had a crash like ths reported before.
Thanks. I will close the issue know.

IIRC conda forge maintainer @BastianZim have to perform some pinning for numpy. Since or-tools end numpy will try to interoperate at C++/binary level to share matrix/vector you may have some hidden ABI constraint between both...


[Bug] Custom Theme not loading as previously

Describe the Bug

so I read in changelog that something about CSS has changed. I have my custom theme that's been working for years, but not since the 1.0 update today. I can enable the theme, but nothing changes. When I click edit, first line is highlighted with red:
//META{"name":"Witcher Theme Clean"}*//
This may not be entirely bug, but it's an issue I ran into after updating the BD version.
Screenshots

https://imgur.com/JnyEkxQ
Discord Version
 Stable

I managed to fix it by updating some of the code from original template.

Could you explain how?

Could you explain how?

Basically I went back to the original template that I used for modifying the theme and pasted back the stuff that I took for irrelevant and deleted earlier. Maybe something has changed there too and it got updated since author updates his stuff. I have no idea what broke it doe since it worked like that fine for years.

Could you explain how?

Basically I went back to the original template that I used for modifying the theme and pasted back the stuff that I took for irrelevant and deleted earlier. Maybe something has changed there too and it got updated since author updates his stuff. I have no idea what broke it doe since it worked like that fine for years.

Mine doesn't work, same thing with red in the //META line, no clue what to change.
//META{"name":"Paranoia","description":"Generated Automatically using https://0x71.cc/bd/theme | Original theme [BasicBackground] made by DevilBro","author":"0x71, DevilBro","version":"1.0.5"}*//

Reinstall BD and try again

Reinstall BD and try again

Thanks!

Could you explain how?

Basically I went back to the original template that I used for modifying the theme and pasted back the stuff that I took for irrelevant and deleted earlier. Maybe something has changed there too and it got updated since author updates his stuff. I have no idea what broke it doe since it worked like that fine for years.

Mine doesn't work, same thing with red in the //META line, no clue what to change.
//META{"name":"Paranoia","description":"Generated Automatically using https://0x71.cc/bd/theme | Original theme [BasicBackground] made by DevilBro","author":"0x71, DevilBro","version":"1.0.5"}*//

Go to DevilBro website and copy source code from this Theme, it will fix it.


Creating a subscription with initial position as "earliest"

My use case: I have a shared subscription with a bunch of consumers. Suppose, all the consumers die and there are messages still being published to the topic. When a new consumer comes in, I want it to read from the last unacknowledged message so that no messages are lost or unprocessed.
So, I want to create a subscription with initial subscription position as earliest but I don't see any option to set the initial position. Also, What is default behavior? earliest or latest ?

Since subscription hold cursor(position of acked message) and cursor move forward when consumer send acknowledge, I think new consumer just reconnect your shared subscription.
More detail, please see below.
https://pulsar.apache.org/docs/en/concepts-messaging/#shared

@equanz What if there were messages even before creating the subscription? I don't think subscription will read the old messages by defaultl

I see. In your use case, create new subscription when a new consumer comes in, right?
If so, I think new subscription use earliest position and don't process processed message by consumer side.
earliest can set initial subscription position to 'never deleted' message. However, 'never deleted' message is not always corresponding to unacked message correctly.
If you don't implement this process, I think you should reuse subscription.


Fix/paypal discounts

Like: https://github.com/mirumee/saleor/pull/707

Current coverage is 54.06% (diff: 100%)

Merging #728 into master will increase coverage by 0.06%

@@             master       #728   diff @@
==========================================
  Files           105        105
  Lines          5523       5527     +4
  Methods           0          0
  Messages          0          0
  Branches        664        665     +1
==========================================
+ Hits           2982       2988     +6
+ Misses         2427       2425     -2
  Partials        114        114

Powered by Codecov. Last update 6d78d22...0a154df

Refs #727

I have this tingling feeling that you're fixing this in the wrong repository. This is a workaround, not a solution.

@patrys But django-payments doesn't deliver any API to mark if ordered item product is a voucher or not. So I think it's good place to fix it here, instead of doing major refactoring of django-payments.

It should likely automatically insert a discount row based on the totals. The question is how do we provide the name and value (so we can double-check that it sums up to the correct value).

@krzysztofwolski @patrys could you see it after rebase?

I still believe this should be fixed in django-payments.

I apologize but I have to back down on this one. I did some research and it seems the most straightforward way is for Saleor to always report discounts as an order item with a negative discount. None of the gateways seem to have a dedicated support for discounts that would be worth adding yet another API to django-payments.

@patrys :+1:
Lookin good:


The error occurs when a section layer is included in the target file.

Describe the bug
If Figma data contains a section layer, it cannot be imported into Unity properly.
Version

Unity Version: 2022.2.1f1
Platform: MacOS 13.2.1
Rendering Pipeline: URP 14.0.4

Expected behavior

I want it to import correctly even if it contains section layers.
I want section layers to be ignored in Unity.
I would like to use the section layer itself for the purpose of organizing elements on Figma.

@sailtask  This should now be fixed in the latest version (1.0.4)- could you give it a try?


BC-12D2HT This drive can't read the lead-out.

Version
Please use the latest version when report the bug.
Describe the bug
DiscImageCreator complains about not being able to read the lead-out. The weird thing is that it did the same thing for Moorphun X, only for it to then suddenly decide to read it when I tried again.
Screenshots
 monyarm  /  mnt  Games  PS1  ../tools/DiscImageCreator/DiscImageCreator.out cd /dev/sr0 ./game.bin 8 /c2
AppVersion
        64 bit, AnsiBuild, 20230606T113402
/c2 val1 was omitted. set [4000]
/c2 val2 was omitted. set [0]
/c2 val3 was omitted. set [0]
CurrentDirectory
        /mnt/Games/PS1
WorkingPath
         Argument: ./game.bin
         FullPath: /mnt/Games/PS1/./game.bin
            Drive: /
        Directory: mnt/Games/PS1/./
         Filename: game
        Extension: .bin
StartTime: 2023-08-10T16:33:31+0300
[F:SetDiscSpeed][L:928] GetLastError: 1, Operation not permitted
Please wait for 25000 milliseconds until the device is returned
          Block Size: 4096
       Flagment Size: 4096
       All Block Num: 96081272
      Free Block Num: 26303926
 Available Block Num: 21404957
          I Node Num: 24477696
     Free I Node Num: 24100128
Available I Node Num: 24100128
      File System ID:<PHONE_NUMBER>069022315
          Mount Flag: 1024
 Max Filename Length: 255
DiskSize of [/mnt/Games/PS1/.]
        Total:<PHONE_NUMBER>12 bytes
         Used:<PHONE_NUMBER>16 bytes
        ---------------------------
        Space:<PHONE_NUMBER>96 bytes
         => There is enough disk space for dumping
This drive (BC-12D2HT        3.11 WM00300K9LI12D4653  ) can read data sectors at scrambled state [OpCode: 0xbe, C2flag: 1, SubCode: 0]
This drive (BC-12D2HT        3.11 WM00300K9LI12D4653  ) can read data sectors at scrambled state [OpCode: 0xbe, C2flag: 1, SubCode: 1]
This drive (BC-12D2HT        3.11 WM00300K9LI12D4653  ) can read data sectors at scrambled state [OpCode: 0xbe, C2flag: 1, SubCode: 2]
This drive (BC-12D2HT        3.11 WM00300K9LI12D4653  ) can read data sectors at scrambled state [OpCode: 0xbe, C2flag: 1, SubCode: 4]
Checking SubQ adr (Track)  2/ 2
LBA[016812, 0x041ac]: [F:ReadCDForCheckingReadInOut][L:859]
        Opcode: 0xbe
        ScsiStatus: 0x02 = CHECK_CONDITION
        SenseData Key-Asc-Ascq: 05-21-00 = ILLEGAL_REQUEST - LOGICAL BLOCK ADDRESS OUT OF RANGE
lpCmd: be, 04, 00, 00, 41, ac, 00, 00, 01, f8, 00, 00
dwBufSize: 2352
Checking reading lead-out -> This drive can't read the lead-out
EndTime: 2023-08-10T16:34:02+0300

Disc title
Forsaken (Europe) and Croc Legend of the Gobbos (Europe) Platinum
Disc ringcode
IFPI94F4 and IFIP941Q
URL
They are PS1 games, and aren't commercially available anymore, but can be found second-hand.
Log file
Upload the created files except .bin .img .scm .iso

gobbo.zip
Forgot to upload the files

BC-12D2HT        3.11

As stated in the README.md, a downgrade is required.

Ah, I see, I thought it meant that I need 3.02 for BW-16D1HT, it means that I need BW-16D1HT 3.02 for BC-12D2HT.
http://wiki.redump.org/index.php?title=Flashing_with_Asus_BW-16D1HT_3.02_firmware Is a bit of mess to read through.
If I'm understanding it right, I need to flash 3 separate firmware one after the other, to get it to the right firmware. However, I need to use DOSFLASH (for all 3? For just 1?)? Or would running them with sudo wine be ok for all 3?

Well, i'm on 3.02, but i'm still having issues.
 monyarm  /  mnt  Games  PS1  ../tools/DiscImageCreator/DiscImageCreator.out cd /dev/sr0 ./forsaken.bin 8 /c2 /mr 50
AppVersion
        64 bit, AnsiBuild, 20230606T113402
/c2 val1 was omitted. set [4000]
/c2 val2 was omitted. set [0]
/c2 val3 was omitted. set [0]
CurrentDirectory
        /mnt/Games/PS1
WorkingPath
         Argument: ./forsaken.bin
         FullPath: /mnt/Games/PS1/./forsaken.bin
            Drive: /
        Directory: mnt/Games/PS1/./
         Filename: forsaken
        Extension: .bin
StartTime: 2023-08-10T21:20:15+0300
[F:SetDiscSpeed][L:928] GetLastError: 1, Operation not permitted
Please wait for 25000 milliseconds until the device is returned
          Block Size: 4096
       Flagment Size: 4096
       All Block Num: 96081272
      Free Block Num: 26072428
 Available Block Num: 21173459
          I Node Num: 24477696
     Free I Node Num: 24099824
Available I Node Num: 24099824
      File System ID:<PHONE_NUMBER>069022315
          Mount Flag: 1024
 Max Filename Length: 255
DiskSize of [/mnt/Games/PS1/.]
        Total:<PHONE_NUMBER>12 bytes
         Used:<PHONE_NUMBER>24 bytes
        ---------------------------
        Space:<PHONE_NUMBER>88 bytes
         => There is enough disk space for dumping
This drive (BW-16D1HT        3.02 W000800K9LI12D4653  ) can read data sectors at scrambled state [OpCode: 0xbe, C2flag: 1, SubCode: 0]
This drive (BW-16D1HT        3.02 W000800K9LI12D4653  ) can read data sectors at scrambled state [OpCode: 0xbe, C2flag: 1, SubCode: 1]
This drive (BW-16D1HT        3.02 W000800K9LI12D4653  ) can read data sectors at scrambled state [OpCode: 0xbe, C2flag: 1, SubCode: 2]
This drive (BW-16D1HT        3.02 W000800K9LI12D4653  ) can read data sectors at scrambled state [OpCode: 0xbe, C2flag: 1, SubCode: 4]
Checking SubQ adr (Track)  2/ 2
LBA[016812, 0x041ac]: [F:ReadCDForCheckingReadInOut][L:859]
        Opcode: 0xbe
        ScsiStatus: 0x02 = CHECK_CONDITION
        SenseData Key-Asc-Ascq: 05-21-00 = ILLEGAL_REQUEST - LOGICAL BLOCK ADDRESS OUT OF RANGE
lpCmd: be, 04, 00, 00, 41, ac, 00, 00, 01, f8, 00, 00
dwBufSize: 2352
Checking reading lead-out -> This drive can't read the lead-out
But 0xF1 opcode is supported
========== Reading 16791 - 16811 INTO CACHE ==========
[F:ReadCacheForLgAsus][L:1201] GetLastError: 1, Operation not permitted
Please wait for 25000 milliseconds until the device is returned
[F:ReadCacheForLgAsus][L:1201] GetLastError: 1, Operation not permitted
Please wait for 25000 milliseconds until the device is returned
[F:ReadCacheForLgAsus][L:1201] GetLastError: 1, Operation not permitted
Please wait for 25000 milliseconds until the device is returned
[F:ReadCacheForLgAsus][L:1201] GetLastError: 1, Operation not permitted
Please wait for 25000 milliseconds until the device is returned
[F:ReadCacheForLgAsus][L:1201] GetLastError: 1, Operation not permitted
Please wait for 25000 milliseconds until the device is returned
[F:ReadCacheForLgAsus][L:1201] GetLastError: 1, Operation not permitted
Please wait for 25000 milliseconds until the device is returned
[F:ReadCacheForLgAsus][L:1201] GetLastError: 1, Operation not permitted
Please wait for 25000 milliseconds until the device is returned
[F:ReadCacheForLgAsus][L:1201] GetLastError: 1, Operation not permitted
Please wait for 25000 milliseconds until the device is returned
[F:ReadCacheForLgAsus][L:1201] GetLastError: 1, Operation not permitted
Please wait for 25000 milliseconds until the device is returned
[F:ReadCacheForLgAsus][L:1201] GetLastError: 1, Operation not permitted
Please wait for 25000 milliseconds until the device is returned
[F:ReadCacheForLgAsus][L:1201] GetLastError: 1, Operation not permitted
Please wait for 25000 milliseconds until the device is returned
[F:ReadCacheForLgAsus][L:1201] GetLastError: 1, Operation not permitted
Please wait for 25000 milliseconds until the device is returned
[F:ReadCacheForLgAsus][L:1201] GetLastError: 1, Operation not permitted
Please wait for 25000 milliseconds until the device is returned
[F:ReadCacheForLgAsus][L:1201] GetLastError: 1, Operation not permitted
Please wait for 25000 milliseconds until the device is returned
[F:ReadCacheForLgAsus][L:1201] GetLastError: 1, Operation not permitted
Please wait for 25000 milliseconds until the device is returned
[F:ReadCacheForLgAsus][L:1201] GetLastError: 1, Operation not permitted
Please wait for 25000 milliseconds until the device is returned
[F:ReadCacheForLgAsus][L:1201] GetLastError: 1, Operation not permitted
Please wait for 25000 milliseconds until the device is returned
[F:ReadCacheForLgAsus][L:1201] GetLastError: 1, Operation not permitted
Please wait for 25000 milliseconds until the device is returned
[F:ReadCacheForLgAsus][L:1201] GetLastError: 1, Operation not permitted
Please wait for 25000 milliseconds until the device is returned
[F:ReadCacheForLgAsus][L:1201] GetLastError: 1, Operation not permitted
Please wait for 25000 milliseconds until the device is returned
[F:ReadCacheForLgAsus][L:1201] GetLastError: 1, Operation not permitted
Please wait for 25000 milliseconds until the device is returned
[F:ReadCacheForLgAsus][L:1201] GetLastError: 1, Operation not permitted
Please wait for 25000 milliseconds until the device is returned
[F:ReadCacheForLgAsus][L:1201] GetLastError: 1, Operation not permitted
Please wait for 25000 milliseconds until the device is returned
[F:ReadCacheForLgAsus][L:1201] GetLastError: 1, Operation not permitted
Please wait for 25000 milliseconds until the device is returned
[F:ReadCacheForLgAsus][L:1201] GetLastError: 1, Operation not permitted
Please wait for 25000 milliseconds until the device is returned
[F:ReadCacheForLgAsus][L:1201] GetLastError: 1, Operation not permitted
Please wait for 25000 milliseconds until the device is returned
[F:ReadCacheForLgAsus][L:1201] GetLastError: 1, Operation not permitted
Please wait for 25000 milliseconds until the device is returned
[F:ReadCacheForLgAsus][L:1201] GetLastError: 1, Operation not permitted
Please wait for 25000 milliseconds until the device is returned
[F:ReadCacheForLgAsus][L:1201] GetLastError: 1, Operation not permitted
Please wait for 25000 milliseconds until the device is returned
[F:ReadCacheForLgAsus][L:1201] GetLastError: 1, Operation not permitted
Please wait for 25000 milliseconds until the device is returned
[F:ReadCacheForLgAsus][L:1201] GetLastError: 1, Operation not permitted
Please wait for 25000 milliseconds until the device is returned
[F:ReadCacheForLgAsus][L:1201] GetLastError: 1, Operation not permitted
Please wait for 25000 milliseconds until the device is returned
[F:ReadCacheForLgAsus][L:1201] GetLastError: 1, Operation not permitted
Please wait for 25000 milliseconds until the device is returned
[F:ReadCacheForLgAsus][L:1201] GetLastError: 1, Operation not permitted
Please wait for 25000 milliseconds until the device is returned
[F:ReadCacheForLgAsus][L:1201] GetLastError: 1, Operation not permitted
Please wait for 25000 milliseconds until the device is returned
[F:ReadCacheForLgAsus][L:1201] GetLastError: 1, Operation not permitted
Please wait for 25000 milliseconds until the device is returned
[F:ReadCacheForLgAsus][L:1201] GetLastError: 1, Operation not permitted
Please wait for 25000 milliseconds until the device is returned
[F:ReadCacheForLgAsus][L:1201] GetLastError: 1, Operation not permitted
Please wait for 25000 milliseconds until the device is returned
[F:ReadCacheForLgAsus][L:1201] GetLastError: 1, Operation not permitted
Please wait for 25000 milliseconds until the device is returned
[F:ReadCacheForLgAsus][L:1201] GetLastError: 1, Operation not permitted
Please wait for 25000 milliseconds until the device is returned
[F:ReadCacheForLgAsus][L:1201] GetLastError: 1, Operation not permitted
Please wait for 25000 milliseconds until the device is returned
[F:ReadCacheForLgAsus][L:1201] GetLastError: 1, Operation not permitted
Please wait for 25000 milliseconds until the device is returned
[F:ReadCacheForLgAsus][L:1201] GetLastError: 1, Operation not permitted
Please wait for 25000 milliseconds until the device is returned
[F:ReadCacheForLgAsus][L:1201] GetLastError: 1, Operation not permitted
Please wait for 25000 milliseconds until the device is returned
[F:ReadCacheForLgAsus][L:1201] GetLastError: 1, Operation not permitted
Please wait for 25000 milliseconds until the device is returned
[F:ReadCacheForLgAsus][L:1201] GetLastError: 1, Operation not permitted
Please wait for 25000 milliseconds until the device is returned
[F:ReadCacheForLgAsus][L:1201] GetLastError: 1, Operation not permitted
Please wait for 25000 milliseconds until the device is returned
[F:ReadCacheForLgAsus][L:1201] GetLastError: 1, Operation not permitted
Please wait for 25000 milliseconds until the device is returned
[F:ReadCacheForLgAsus][L:1201] GetLastError: 1, Operation not permitted
Please wait for 25000 milliseconds until the device is returned
[F:ReadCacheForLgAsus][L:1201] GetLastError: 1, Operation not permitted
Please wait for 25000 milliseconds until the device is returned
Failed to get the cache
EndTime: 2023-08-10T21:41:47+0300

forsaken.zip

monyarm  /  mnt  Games  PS1  ../tools/DiscImageCreator/DiscImageCreator.out cd /dev/sr0 ./forsaken.bin 8 /c2 /mr 50

Perhaps, it needs "sudo".

Ya, sudo worked.


Fixed Typo

Changed "But as saw" to "But as we saw"

@cs231n Can you consider using this pull request? It seems to be obvious and small fix.


custom query validation: Oracle non-deterministic numeric columns don't handle scale of None

When doing a custom query validation like so:
data-validation validate custom-query column \   -sc MyOracleConnection \   -tc MyBigQueryConnection \   --source-query 'select product_id, warehouse_id, quantity*warehouse_id AS test from OT.inventories' \   --target-query 'select product_id, warehouse_id, quantity*warehouse_id AS test from OT.inventories' \   --count test
We see a TypeError for '>' not supported for NoneType and Int columns due to this line. We need to handle the case that scale and precision can be None.

Hi @nehanene15
Can you please explain on what are non-deterministic numeric datatype columns and if the scale is set to None, it will default to an integer right?


Changing torchvision namespace into a static class?

Quite a few code starts from torchvision instead of importing objects by from torchvision... import xxx
https://pytorch.org/tutorials/intermediate/torchvision_tutorial.html
model = torchvision.models.detection.fasterrcnn_resnet50_fpn(weights="DEFAULT")

Now in TorchSharp, we have TorchSharp.torchvision namespace.
namespace TorchSharp.torchvision
{
    public static partial class models
    {

Can we make this a class TorchSharp.torchvision like we did for TorchSharp.torch class?
namespace TorchSharp
{
    public static partial class torchvision
    {
        public static partial class models
        {

I believe that we have to do like these in C#
using TorchSharp.torchvision;
...
models.detection.fasterrcnn_resnet50_fpn();

or
using static TorchSharp.torchvision.models.detection;
...
fasterrcnn_resnet50_fpn();

Any time a scope directly contains methods, or is nested within a scope that contains methods, whether instance factories or other, it needs to be a static class. If that is the case with 'torchvision,' it should definitely be a static class.

PyTorch torchvision has four methods

torchvision.set_image_backend(backend)
torchvision.get_image_backend()
torchvision.set_video_backend(backend)
torchvision.get_video_backend()

TorchSharp has Imager as an argument of torchvision.io.read_image() instead of having those four methods.
So currently TorchSharp doesn't have any methods under the torchvision named scope.
A namespace has to start from the top. Currently we cannot write like this in the user code.
using TorchSharp;
...
torchvision.io.read_image()


Event listeners are not being removed when an entity is destroyed

Adding entities (or any kind of Cesium object with a definitionChanged object) to an Entity as a non-standard key causes a listener to be added to it, and not removed.
Here's a Sandcastle example showing the issue: http://www.google.com/url?q=http%3A%2F%2Fcesiumjs.org%2FCesium%2FApps%2FSandcastle%2F%3Fsrc%3DHello%2520World.html%26label%3DShowcases%26gist%3Df0bbec7cd261365aaadd3bb991c4261c&sa=D&sntz=1&usg=AFQjCNGsWLuA2qW3EPH266cojmhANFGNAA
Reported on the forum here: https://groups.google.com/forum/#!topic/cesium-dev/bRk7kmcApeo

Related to #5827


language switching doesn't clear/switch cached menu

I've spotted that if a user switches between two languages (e.g. en to de) then the menu doesn't get updated properly. Setting MENU_CACHE_DURATION = 1 essentially fixes the problem, but could obviously do nasty things in production.
Can the menu be cached with a language-based prefix to avoid this problem?
I'm using 2.2 and django 1.3.

It already is... https://github.com/divio/django-cms/blob/develop/menus/menu_pool.py#L125


Provide an easy way to override violation default messages per constraint

Currently there is no way to override a violation message on a constraint.
The only way to override is implementing MessageFormatteer.
It would be convenient if a user can define a customized message on a constraint like following:
Validator<User> validator = Validator.<User> builder() //
	.constraint(User::getName, "name", c -> c.notNull().message("name is required!") //
				.greaterThanOrEqual(1).message("name is too large!") //
				.lessThanOrEqual(20).message("name is too small!")) //
	.build()

It requires some internal logic changes.

I was about to open this issue... and finally, try to do the work with the Formatter.
Can not wait to see / use this !
Yavi is for sure, now, my favorite bean validation system 🤩

Your proposed API is interesting but we can do something simpler with this:
Validator<User> validator = Validator.<User> builder() //
	.constraint(User::getName, "name", c -> c.notNull().message("name is required!") //
				.greaterThanOrEqual(1, "name is too large!") //
				.lessThanOrEqual(20, "name is too small!")) //
	.build()

If you don't like this way of doing, I advice to use JavaPoet to generate this fluent API (https://github.com/square/javapoet)

Thanks, but that adds too many overload methods to maintain ...

I think I've implemented this feature simply in https://github.com/making/yavi/commit/ecd59a0762eca66c00882e28945455c4a04025e1 .


[Feature] missing recipe for lamp flickering

I would love to add this custom flashlight that blinks and looks bad in my vanilla world, but when I saw that there is no recipe to do it I was so disappointed, would there be any way to bring it to vanilla without going into creative?

I planned to make these recipes viewable in REI in some later update. You can use the Aging Staff on a regular Redstone Lamp to turn it into the Flickering variant. Same with the Lanterns, Sea Lanterns, and Jack o Lanterns :)

Added nicely working compat for Aging and Waxing Staffs, both for REI and EMI :+1:


PERF: Batch and cache '1d' history calls.

Instead of fetching the '1d' portion which holds data for previous days
390 times a day, cache the last array retrieved for each array.
Also, call load_raw_array with all assets at once instead of one at a
time, since the daily bcolz file is tuned for reading many equities at
once.
A further optimization on top of this would be to prefetch data from the
daily bcolz file.

On my local development machine, this patch takes a minute mode algorithm which does 3 bars of '1d' history for 6 equities from 1.4 seconds per day to 0.5 seconds per day.


fix: API Tokens Table Style Regression

Description 📝
Fixes a small style regression caused by design tokens 🎨 on the API tokens page
Preview 📷

Before
After

How to test 🧪

Go to http://localhost:3000/profile/tokens
Check styles on this page 👀

Test in light 🌞  and dark 🌑  mode
Test on small screen sizes 📱

As an Author I have considered 🤔

[ ] 👀 Doing a self review
[ ] ❔ Our contribution guidelines
[ ] 🤏 Splitting feature into small PRs
[x] ➕ Adding a changeset
[ ] 🧪 Providing/Improving test coverage
[ ] 🔐 Removing all sensitive information from the code and PR description
[ ] 🚩 Using a feature flag to protect the release
[ ] 👣 Providing comprehensive reproduction steps
[ ] 📑 Providing or updating our documentation
[ ] 🕛 Scheduling a pair reviewing session
[ ] 📱 Providing mobile support
[ ] ♿  Providing accessibility support

Could we also add padding to the table to ensure it matches the styling of the other instances?

Reference

Good catch @coliu-akamai
I updated the padding to match


feat: release 2.3.14

Release Checklist
[x] Production environment build
[x] Spec.version updated
[x] E2E tests
[x] Sdkbio docs updated

Checkmarx One – Scan Summary & Details – e1c64380-f06c-45c0-b297-fa31a801c15f
No New Or Fixed Issues Found


CLI for adding users from CSV

Add command line tool for adding users from CSV user dump.

I might need to move some files after the last loader PR.


How to update to the new version 0.4.8? (PIP not working)

How to update to the new version 0.4.8? (PIP not working)

Please check for duplicates.


[main] Upgrade to latest dependencies

Cron -knative-prow-robot
/cc knative-sandbox/networking-wg-leads
/assign knative-sandbox/networking-wg-leads
Produced by: knative-sandbox/knobots/actions/update-deps
Details:
bumping knative.dev/hack d1317b0...9b76387:
  > 9b76387 output certificate as well (# 229)
bumping knative.dev/pkg 5f66ecf...d1d5c84:
  > d1d5c84 Define a global for `reconciler.DefaultTimeout`. (# 2597)
  > df29e2a Avoid second lister fetch during finalizer reconciliation. (# 2596)

/lgtm
/approve

/lgtm

/retest

/retest


[BUG] rootless docker -> k3d blocks forever (k3s boot loops)

What did you do
Baseline:

Fedora 33
cgroups v2
provision Docker CE from the official Docker repo for rootless docker
install rootless docker following https://docs.docker.com/engine/security/rootless/ and make sure to convince Fedora to use fuse-overlayfs via echo '{"storage-driver": "fuse-overlayfs"}' > ~/.config/docker/daemon.json

k3d:

export USE_SUDO=false
export K3D_INSTALL_DIR=~/bin (~/bin exists and is on the PATH)
wget -q -O - https://raw.githubusercontent.com/rancher/k3d/main/install.sh | bash (that's copy&paste)

How was the cluster created?

k3d cluster create mycluster (that's copy&paste)

Problem: Command hangs after having emitted
INFO[0000] Prep: Network
INFO[0000] Created network 'k3d-mycluster' (4f944e1b21bff3718107f3843216e9a69288b3579dce77377732a1417e82370f)
INFO[0000] Created volume 'k3d-mycluster-images'
INFO[0001] Creating node 'k3d-mycluster-server-0'
INFO[0001] Creating LoadBalancer 'k3d-mycluster-serverlb'
INFO[0001] Starting cluster 'mycluster'
INFO[0001] Starting servers...
INFO[0001] Starting Node 'k3d-mycluster-server-0'

After considerable time, it starts spewing
WARN[0204] Node 'k3d-mycluster-server-0' is restarting for more than a minute now. Possibly it will recover soon (e.g. when it's waiting to join). Consider using a creation timeout to avoid waiting forever in a Restart Loop.

which is somewhat understandable given that docker logs k3d-mycluster-server-0 is unhappy with
I0501 17:24:44.193897       7 plugins.go:158] Loaded 12 mutating admission controller(s) successfully in the following order: NamespaceLifecycle,LimitRanger,ServiceAccount,NodeRestriction,TaintNodesByCondition,Priority,DefaultTolerationSeconds,DefaultStorageClass,StorageObjectInUseProtection,RuntimeClass,DefaultIngressClass,MutatingAdmissionWebhook.
I0501 17:24:44.193931       7 plugins.go:161] Loaded 10 validating admission controller(s) successfully in the following order: LimitRanger,ServiceAccount,Priority,PersistentVolumeClaimResize,RuntimeClass,CertificateApproval,CertificateSigning,CertificateSubjectRestriction,ValidatingAdmissionWebhook,ResourceQuota.
time="2021-05-01T17:24:44.209114066Z" level=info msg="Running kube-scheduler --address=<IP_ADDRESS> --bind-address=<IP_ADDRESS> --kubeconfig=/var/lib/rancher/k3s/server/cred/scheduler.kubeconfig --leader-elect=false --port=10251 --profiling=false --secure-port=0"
time="2021-05-01T17:24:44.209273499Z" level=info msg="Waiting for API server to become available"
time="2021-05-01T17:24:44.209489318Z" level=info msg="Running kube-controller-manager --address=<IP_ADDRESS> --allocate-node-cidrs=true --bind-address=<IP_ADDRESS> --cluster-cidr=<IP_ADDRESS>/16 --cluster-signing-cert-file=/var/lib/rancher/k3s/server/tls/client-ca.crt --cluster-signing-key-file=/var/lib/rancher/k3s/server/tls/client-ca.key --configure-cloud-routes=false --controllers=*,-service,-route,-cloud-node-lifecycle --kubeconfig=/var/lib/rancher/k3s/server/cred/controller.kubeconfig --leader-elect=false --port=10252 --profiling=false --root-ca-file=/var/lib/rancher/k3s/server/tls/server-ca.crt --secure-port=0 --service-account-private-key-file=/var/lib/rancher/k3s/server/tls/service.key --use-service-account-credentials=true"
time="2021-05-01T17:24:44.211128448Z" level=info msg="Node token is available at /var/lib/rancher/k3s/server/token"
time="2021-05-01T17:24:44.211182001Z" level=info msg="To join node to cluster: k3s agent -s https://<IP_ADDRESS>:6443 -t ${NODE_TOKEN}"
time="2021-05-01T17:24:44.214298925Z" level=info msg="Wrote kubeconfig /output/kubeconfig.yaml"
time="2021-05-01T17:24:44.215290745Z" level=info msg="Run: k3s kubectl"
time="2021-05-01T17:24:44.215494947Z" level=fatal msg="failed to find cpu cgroup (v2)"

Note: I have not tried running k3s without the k3d wrapper (yet) - i.e. neither under root nor rootless.

From https://github.com/k3s-io/k3s/issues?q=is%3Aissue+is%3Aopen++rootless I cannot tell whether this is a k3s challenge or whether k3d driving k3s needs to be adapted?

Hi @shoffmeister , thanks for opening this issue!
Interesting things you're doing here :wink:
So there are several points to note here:

you're on cgroupv2, which currently only works with a k3d "hotfix" (see #579) and still needs to be fixed in upstream k3s (see https://github.com/k3s-io/k3s/pull/3242).
k3d always starts containers with --privileged
you have to tell k3s (inside k3d) to run rootless: `--k3s-server-arg "--rootless" --k3s-agent-arg "--rootless"

I am rather innocently naïve (AKA ruthless) when it comes to doing interesting things 😛 It's software after all, and it's running inside a VM, to top that off even more ;)
Many thanks for the input! I will revisit this issue here once the stars have aligned on the next versions of k3s, k3d.
I have taken good note of the explicit --rootless into k3s.

https://rancher.com/docs/k3s/latest/en/advanced/#running-k3s-with-rootless-mode-experimental now documents steps for running k3s rootless (possibly as the result of https://github.com/k3s-io/k3s/pull/4086)
Alas, I am unable to translate the stern note

i.e., systemd-run --user -p Delegate=yes --tty k3s server --rootless

into something that would fit into the execution environment constructed by k3d (there is no systemd inside docker)
So, in trying to make progress on this issue here, I wonder whether it is possible at all to run k3s --rootless "inside" k3d on a rootless docker?
FWIW, I have yet to look into running k3s rootless proper.

you have to tell k3s (inside k3d) to run rootless: `--k3s-server-arg "--rootless" --k3s-agent-arg "--rootless"

I don't see --k3s-server-arg and --k3s-agent-arg options for k3d cluster create. Is running in rootless Docker now supported some other way? Given that there are instructions for rootless Podman, I assumed rootless Docker would work similarly.

I'm having problems with this too.
After enabling cpu / cpuset delegation (https://rootlesscontaine.rs/getting-started/common/cgroup2/#enabling-cpu-cpuset-and-io-delegation) I launched the cluster creation with:
k3d cluster create --k3s-arg "--rootless@server:0"
I got the following message in the log:
``time="2023-03-21T08:43:13Z" level=fatal msg="expected sysctl value "net.ipv4.ip_forward" to be "1", got "0"; try adding "net.ipv4.ip_forward=1" to /etc/sysctl.conf and running sudo sysctl --system"
`


Update Windows build support to VS2019

Right now the project can't build under VS2019, which is causing our Windows CI builds to have to stay on an older agent image. We should get this working under VS2019. Unfortunately just updating setuptools to >=34.4.0 and changing the CMake target is not enough, there are some platform problems that need to be resolved:
Python 3.5:
It's unable to locate a header file. My initial scan of this seems to indicate that as compared to the other Python version builds, the call to cl.exe is missing a number of include directories. This leads me to think that something in this version of Python (maybe distutils?) is too old to know how to locate those directories. We might have to figure out how to add them manually or whether there is just some component we can update with pip.
Python 3.6 x86:
This is odd because the x64 build passes. The x86 build always fails with a linker error, unresolved external symbol __except_handler4_common. I've tried using the -T host=x86 CMAKE flags to use the 32-bit compiler toolchain, the flag worked as documented but that didn't resolve the issue. At this point I'm a little stumped as to why this is happening and only for the x86 build.

Exploratory PR: #121

Following this issue as I am having same build issue with respect to VS2019.

Following this issue as I am having same build issue with respect to VS2019.

Thanks @hellodhana, can you thumbs-up this issue to help us track its impact?

Done. Thanks
On Mon, Nov 25, 2019 at 2:31 PM bsiegel<EMAIL_ADDRESS>wrote:

Following this issue as I am having same build issue with respect to
VS2019.
Thanks @hellodhana https://github.com/hellodhana, can you thumbs-up
this issue to help us track its impact?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/Azure/azure-uamqp-python/issues/122?email_source=notifications&email_token=AAPAXYCKM732Y5CPW7MFOJDQVQ7ZTA5CNFSM4JQV5FHKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEFD3VJI#issuecomment-558348965,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAPAXYGECSE3ZHRGFSZ244LQVQ7ZTANCNFSM4JQV5FHA
.

as dropping off python 2.7, we can and have already updated to setup.py to adopt VS2019 recently.


Chore: Add install script

Description
Something like
curl install.glaredb.com | sh

Then we can put that on the readme on the site.

What This Enables

Easy installs
Impacts

put in CWD


Bug fix: Removing the sort function on destructive operations

Copy of PR on tqec
Small PR that ultimately removes a single line of code in tqecd/utils.py.
I modified the corresponding test in utils_test.py, by parameterizing the function and removing the calls to set, to ensure the ordering is maintained.
All tests pass locally
The changes seem more significant than they are due to some black formatting that was done automatically when I saved the files. Also, I edited a function in fragments.py to use list comprehension rather than a loop.

Thanks! Looks like I can't merge it myself, but I'm happy for it to go in as-is, if you are.

Seems like I merged the commit without squashing everything. You are still author of your own commits, so this is fine. I will make the necessary changes to the repository settings to have squash commits by default.
Again, thanks for the PR!

Note that I ended up squashing this in one commit, in a new repository that was created to fix an issue in this one (#8). The commit: https://github.com/tqec/tqecd/commit/9f166d8f794574a72ffda9d4cac72ca47f62fc78


What is the difference between "Limiting concurrency using Task Groups" in Incremental Adoption and "Limiting concurrency using Task Groups" in Runtime Behavior

What is the difference between the “Limiting concurrency using Task Groups” section in Incremental Adoption and the “Limiting concurrency using Task Groups” section in Runtime Behavior?
The “Limiting concurrency using Task Groups” section appears in both Incremental Adoption and Runtime Behavior.
https://github.com/apple/swift-migration-guide/blob/main/Guide.docc/IncrementalAdoption.md#limiting-concurrency-using-task-groups
https://github.com/apple/swift-migration-guide/blob/main/Guide.docc/RuntimeBehavior.md#limiting-concurrency-using-task-groups
According to the PR, it seems correct that this section is included in Runtime Behavior.
https://github.com/apple/swift-migration-guide/pull/56#issuecomment-2167188439
Why is “Limiting concurrency using Task Groups” included in both documents, and what is the difference between the two?

I'm not sure exactly how this happened. @ktoso which of these should we keep?

I think it should be in runtime behavior.

Thank you for the replay!

I think it should be in runtime behavior.

So, can we remove the section from Incremental Adoption?

I think it was fixed in https://github.com/apple/swift-migration-guide/pull/139. Thank you!
Can we close this issue?

Ahh yes it was. Thank you!


Checksum_Deprecation: tweak phrasing/explanation/etc

[x] Have you followed the guidelines in our Contributing document?
[x] Have you checked to ensure there aren't other open Pull Requests for the same change?
[x] Have you added an explanation of what your changes do and why you'd like us to include them?

This keeps annoying me.

Thanks @DomT4!


Typo in error message

Run this:
declare @bg3 binary(4000) = 0x87362854873873648
declare @bg4 binary(4000) = 0x87362854873873648

select @bg3 ^ @bg4

Error message is:
Msg 402, Level 16, State 1, Line 12
The data types binary and binary are incompatible in the '^' operator.
                     ^               ^

binary is stated twice.

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

ID: 49a71499-f9ee-6347-78ff-19f202db6fa9
Version Independent ID: 3319220a-7038-c011-d881-78886327cc26
Content: ^ (Bitwise Exclusive OR) (Transact-SQL) - SQL Server
Content Source: docs/t-sql/language-elements/bitwise-exclusive-or-transact-sql.md
Product: sql
Technology: t-sql
GitHub Login: @rothja
Microsoft Alias: jroth

@Mitch-Wheat -- Mitch, thank you for your feedback.  I believe that message is correct, as the interpreter is very literal.  For example, with binary & varchar arguments the error message is:
The data types binary and varchar are incompatible in the '^' operator.

I am closing this issue now.  You are welcome to @ mention me for any followup.
We hope to hear from you again.


Text Edit Happens on Line Below

Issue Description

Anytime I attempt to edit text it starts on the line below where I have selected. This can be adding a space, letter, number. Any editing of any kind including backspaces happen on the next line as well.
It only happens once and happens on any new/reloaded page. Occurs in both night mode and day mode.
Browser Information

Browser Name, Version: Chrome Version 57.0.2987.98 (64-bit)
Operating System: Windows 10
Mobile, Desktop, or Tablet: Desktop

Screenshot

@RobbWaddington sounds like a duplicate of this issue https://github.com/freeCodeCamp/freeCodeCamp/issues/7847. Please take a look at the thread there to see some ways around this odd bug. This has been fixed in the development version of freeCodeCamp. Closing this issue as a duplicate but if you think it is different than your issue, please comment back and we can try to help. Happy coding!