text:
Support for typeRoots?

When compiling with gulp-typescript I receive the error
error TS2304: Cannot find name 'Promise' (or Set or Map)
Having researched this issue I discovered the new TS compilerOption typeRoots.
http://stackoverflow.com/questions/35660498/angular-2-cant-find-promise-map-set-and-iterator
Properly setting this option in tsconfig.json and manually executing tsc, I no longer receive this error message.  Unfortunately gulp-typescript does not support typeRoots.
Expected behavior:
Compile w/o error TS2304
Actual behavior:
/home/mike/Projects/rsvt/node_modules/@angular/core/src/facade/collection.d.ts(16,25): error TS2304: Cannot find name 'Map'.
[15:48:20] TypeScript error: /home/mike/Projects/rsvt/node_modules/@angular/core/src/facade/collection.d.ts(16,25): error TS2304: Cannot find name 'Map'.
/home/mike/Projects/rsvt/node_modules/@angular/core/src/facade/collection.d.ts(101,41): error TS2304: Cannot find name 'Set'.
[15:48:20] TypeScript error: /home/mike/Projects/rsvt/node_modules/@angular/core/src/facade/collection.d.ts(101,41): error TS2304: Cannot find name 'Set'.
Your gulpfile:
Include your gulpfile, or only the related task (with ts.createProject).
gulp.task('ts', function() {
    var src = config.appDir + '**/*.ts';
    log('Compiling ' + src);

    var tsProject = $.typescript.createProject(config.tsconfig);

    return gulp
        .src(src)
        .pipe($.plumber({
            errorHandler: error
        }))
        .pipe($.if(args.verbose, $.print()))
        .pipe($.if(config.sourcemaps, $.sourcemaps.init()))
        // .pipe($.typescript(tsProject))
        .pipe(tsProject())
        .pipe($.if(config.sourcemaps, $.sourcemaps.write('.')))
        .pipe(gulp.dest(config.appDir));
});

tsconfig.json
Include your tsconfig, if related to this issue.
{
    "compilerOptions": {
        "target": "es5",
        "module": "system",
        "moduleResolution": "node",
        "sourceMap": true,
        "emitDecoratorMetadata": true,
        "experimentalDecorators": true,
        "removeComments": false,
        "noImplicitAny": false,
        "typeRoots": [
            "node_modules/@types"
        ]
    },
    "types": [ "core-js" ],
    "exclude": [
        "node_modules",
        "bower_components",
        "src/jspm_packages",
        "typings/main",
        "typings/main.d.ts"
    ]
}

It would appear my problem is similar to
lib compilerOptions not used? https://github.com/ivogabe/gulp-typescript/issues/420
but resolved using a different TS 2.0 supported config option.

If anybody else needs the solution it is to switch to gulp-tsc as I could never get gulp-typescript to work at all using Angular 2.0 TS 2.0.  There were a few other @types I needed to install such as @types/jasmine @types/node, however gulp-typescript will not use these type definitions regardless.  gulp-tsc also has the ability to pass to tsc any parameter you want using options.additionalTscParameters, which is awesome.
project/tsc <-- works great using tsconfig.json w/o typeRoots or types specified.
Here's my new gulpfile.js for TS w/ gulp-tsc
var src = config.appDir + '**/*.ts';
log('Compiling ' + src);

var tsc = $.tsc;

return gulp
    .src(src)
    .pipe($.plumber({
        errorHandler: error
    }))
    .pipe($.if(args.verbose, $.print()))
    .pipe(tsc( { experimentalDecorators: true }))
    .pipe($.if(config.sourcemaps, $.sourcemaps.write('.')))
    .pipe(gulp.dest(config.appDir));

My old gulp-typescript gulpfile..js which does not work
var tsProject = $.typescript.createProject(config.tsconfig);
gulp.task('ts', function() {
var src = config.appDir + '**/*.ts';
log('Compiling ' + src);
return gulp
    .src(src)
    .pipe($.plumber({
        errorHandler: error
    }))
    .pipe($.if(args.verbose, $.print()))
    .pipe($.if(config.sourcemaps, $.sourcemaps.init()))
    // .pipe($.typescript(tsProject))
    .pipe(tsProject())
    .pipe($.if(config.sourcemaps, $.sourcemaps.write('.')))
    .pipe(gulp.dest(config.appDir));

I'll take a look at this issue this weekend.

I think that this has been solved in d706e30c214c63cb9f2491de3c8117c6d4cb85e2. Can you try whether gulp-typescript 3.0.2 solves your issues? Also, you can probably remove typeRoots: ["node_modules/@types"], since that's the default.

:+1:  @ivogabe.  3.0.2 fix worked.

I discovered an issue with gulp-typescript version 3.0.2 and the typeRoots option:
It will run into an error if subfolders exist.
Observed Issue:
error TS2688: Cannot find type definition file for 'foo'
My folder structure for my project:
[MyProject]
-[TypeScript] # *.ts sourcecode goes here
-[typings] # *.d.ts type-definitions here
-[foo] # type-definition subfolder, might be empty, still causes observed error
My tsconfig.json
{
"compilerOptions": {
"module": "amd",
"noImplicitAny": false,
"noEmitOnError": true,
"removeComments": false,
"preserveConstEnums": true,
"sourceMap": true,
"target": "es5",
"typeRoots": [ "typings" ],
"rootDir": "TypeScript"
},
"exclude": [
"node_modules",
"wwwroot"
],
"compileOnSave": false
}
My gulp task for typescript compilation:
var sourcemaps = require("gulp-sourcemaps");
var typescript = require("gulp-typescript");
var tsProject = typescript.createProject("tsconfig.json");
gulp.task("compile:typescript", function () {
var tsResult = tsProject
.src() // instead of gulp.src(...)
.pipe(sourcemaps.init())
.pipe(tsProject());
return tsResult.js
.pipe(sourcemaps.write(".",
{
includeContent: false,
sourceRoot: "../../TypeScript/"
}))
.pipe(gulp.dest(paths.javascriptDestination));
});

@teetotum Does the behaviour of gulp-typescript differ from tsc? I'd expect that they behave the same way.

Oh diddums! Just tested my setup with a direct call to tsc.exe (2.0) and I get exactly the same error. Sorry for bringing the issue up here. gulp-typescript behaves correctly.

Not sure if this ever got resolved. It appears to me that gulp-tsc uses some options form tsconfig.json but not others. Fore example, outDir was taken from tsconfig.json whereas sourceMap was ignored and I had to include in the options. typeRoots is ignored even if I include it in typescript options. Of course, tsc works fine from the terminal
Any thoughts on how to get tsc working from gulp with typings in ./typings?
var typescript = require('gulp-tsc');
gulp.task('compile', function () {
  gulp.src(['electron_src/**/*.ts'])
    .pipe(typescript({ tscPath: "/usr/local/bin/tsc", sourceMap: true, "typeRoots": ["./typings/globals"]}))
    .pipe(gulp.dest('build/electron'))
});

{
  "compilerOptions": {
    "target": "es5",
    "module": "commonjs",
    "moduleResolution": "node",
    "sourceMap": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "removeComments": false,
    "noImplicitAny": false,
    "suppressImplicitAnyIndexErrors": true,
    "typeRoots": ["./typings/globals"],
    "outDir": "build/electron"
  },
  "exclude": [
    "node_modules"
  ]
}

@mikaye This is the repository for gulp-typescript, but your post references gulp-tsc. gulp-typescript supports typeRoots, but I think that gulp-tsc should also support that options. If you need help with gulp-tsc you can better ask on some other place.

this bug still exists. gulp-typescript@6.0.0-alpha.1
gulp-typescript does not support typeRoots in tsconfig.json.

tsconfig

how to resolve this problem?

@seminelee how to resolve this problem?

this bug still exists. gulp-typescript@6.0.0-alpha.1
gulp-typescript does not support typeRoots in tsconfig.json.

Same issue

authors: LikeDege SoldierAb ivogabe kkganesan mikaye mikemichaelis seminelee teetotum


text:
esp32 with OBD9141 not work

HI IWANDERS.
I tried from 2 days to make it works but without succes!
I use esp32 wroomer 32U and a mc33290. Witrh this setup i had other library witch work at the same pinrx 16 and tx 17. For mc33290 i used a resistor 500k between 12v and k-line. I work with ECU me7.5.
If i use reader esp32  with INIT i receive :
16:17:43.716 -> Before magic 5 baud.
16:17:45.697 -> Before setting port.
16:17:45.732 -> After setting port.
16:17:45.732 -> First read is: 252
16:17:45.797 -> Timeout on reading bytes.
16:17:45.929 -> Timeout on reading bytes.
16:17:46.027 -> Timeout on reading bytes.
16:17:46.027 ->
If i tried to use INITKWPSlow
16:29:55.011 -> initialization
16:29:55.011 ->
16:29:58.026 -> Before 25 ms / 25 ms startup.
16:29:58.091 -> Enable port.
16:29:58.418 ->
16:29:58.646 ->
Please waiting your advices.
Many thanks.

With this setup i had other library witch work at the same pinrx 16 and tx 17

Do you know which protocol was used by that library? What library was it? If you have something that works, why switch? :)
Did you also try the readerKWP? Fast kwp init and slow kwp init are different, I don't know what you ECU uses to communicate, but you showed 9141-2 init with the slow 5 baud and initKWPSlow not working, might as well try the third and final handshake this library supports.
You can also enable the debug prints by uncommenting this line.

Hi.
I had 2 libraries one with kwp2000 and other with 9141-2 , both works very slow and intrerrupt my lcd display data. Both use 5-baud.
I tried readKWP , i uncomment ""debug. , you can see upstairs what i capture on serial console.
With 9141-2 i receive 16:17:45.732 -> First read is: 252 , not read from ecu 0x55.
Thanks in advance

I had 2 libraries one with kwp2000 and other with 9141-2 , both works very slow and intrerrupt my lcd display data. Both use 5-baud.

This library is also synchronous though, so it will also block your main program until the data comes back from the ECU. You will likely have the same experience.

With 9141-2 i receive 16:17:45.732 -> First read is: 252 , not read from ecu 0x55.

Ah, 252 is 0xfc, that is not the 0x55 that is expected and should be the first byte sent after the handshake. You can try commenting out line 386, and seeing if the other two checks on line 402 and 411 pass.
You could also put print statements in the libraries that are working, to see how their handhake works.

Thanks for your time.
I comment the line 386 and nothing happen
15:43:21.733 -> initialization
15:43:21.734 ->
15:43:23.733 -> Before magic 5 baud.
15:43:25.736 -> Before setting port.
15:43:25.736 -> After setting port.
15:43:25.736 -> First read is: 252
15:43:25.769 -> Timeout on read v1.
15:42:31.796 -> Timeout on reading bytes.
15:42:31.893 -> Timeout on reading bytes.
15:42:31.992 -> Timeout on reading bytes.
15:42:31.992 ->
15:42:32.090 -> Timeout on reading bytes.
15:42:32.186 -> Timeout on reading bytes.
15:42:32.283 -> Timeout on reading bytes.
15:42:32.283 ->

Must this library work with mc33290 too , right?

Certainly, I've used that chip myself with this library.

I comment the line 386 and nothing happen
Looks like just nothing comes back. Tricky! I'd try to record a working handshake with one of the other libraries with a logic analyser, or even just print statements, that way there's something to compare against.

Hi again. this is what one of library had on serial/debug
07:40:39.979 -> Starting Init
07:40:42.044 -> SYNC Byte: 55
07:40:42.044 -> KEY1: 8    KEY2: 8
07:40:42.076 -> Sending ~KEY2: F7
07:40:42.076 -> Received ~KEY2: F7
07:40:42.108 -> Inverted Address: CC
07:40:42.108 -> Protocol: ISO 9141-2
07:40:42.108 -> 5-baud Init SUCCESS
and sync code is aproximatly the same with your obd9141.cpp
pinMode( txPin, OUTPUT );   // Set the txPin to idle HIGH
delay( 2000 ); // Leave Tx HIGH for 2 seconds before starting the actual init routine
Serial.println( F( "Starting Init" ) );
// Send 0x33 (LSB first) via K-Line to the OBD port (0x33 is address of OBD)
digitalWrite( txPin, LOW ); // start bit
delay( 200 );               // 5 baud means 200ms per bit
digitalWrite( txPin, HIGH ); //11
delay( 400 );
digitalWrite( txPin, LOW ); //00
delay( 400 );
digitalWrite( txPin, HIGH ); //11
delay( 400 );
digitalWrite( txPin, LOW ); //00
delay( 400 );
digitalWrite( txPin, HIGH ); // stop bit
delay( 200 );
mc33290.begin(10400, SERIAL_8N1 , 16 ,17) ; //mc33290 is a hardware serial defined
if( mc33290.available()){
sync =mc33290.read();
//DEBUG
snprintf_P( buffer, BUFLEN, PSTR("SYNC Byte: %2X"), sync );
Serial.println( buffer );
// Continue Init if we got the correct SYNC Byte
if( sync == 0x55 ) {

Thanks for sharing code and prints. I put some backticks (`) in your comment to create code blocks to make it more readable.

OBD9141println(serial_port);

I don't think that print the serial ports' id, I think instead it will try to read a byte from the serial port and print that.
But this one:
mc33290.begin(10400, SERIAL_8N1 , 16 ,17)

that looks like a difference from my library, I don't pass the pin numbers, but it looks like they vary between esp32 and esp32s3, according to this link, so it could be that you have an esp32s3 style board and are actually opening the serial port on pin 19 and 20 instead of the 16 and 17 you are expecting.
We can certainly pass these pin numbers, I put up a change with 1d07f97 on the issue-45-esp32-serial-port branch, could you give that a go? I obviously can't test this, but if you are indeed on an esp32s3 board, this could fix it.

Hi and excuse my late answer. I'm not at home and i can verify only after one week because i'm in hollyday. My esp32 is a wroomer 32 u with 32 pinds  i't must doesn't matter witch pins used tge serial port because i configured in sketch at the begin line on other pins.and it mjst work. The problem is from other parts, and we will see. Thanks and keep in touch.

Hi. I arrived at home and i tested the new version of your library.
Doesnt't work the same error:
16:30:05.200 -> initialization
16:30:05.200 ->
16:30:05.559 -> Before magic 5 baud.
16:30:07.357 -> Before setting port.
16:30:07.357 -> After setting port.
16:30:07.357 -> First read is: 0
16:30:07.389 -> Timeout on read v1.
16:30:07.485 -> Timeout on reading bytes.
16:30:07.584 -> Timeout on reading bytes.
How can we see if the serial2 is correct init?

How can we see if the serial2 is correct init?

Not sure if there's any way... :/
Start by putting a print here to print the pin numbers that are being set, that also confirms the ESP_ARDUINO_VERSION_MAJOR define is actually set and we are going into that initialisation.

YES, enter in that ESP_ARDUINO_VERSION_MAJOR

Hmm, well, the ECU is clearly not talking back. The first read isn't even 252 anymore like it was before. The hardware is the exact same as in this comment?  Because this is really weird.
If you have a second arduino & transceiver chip, you can try to listen in on the communication performed on the K-line by just hooking up the Rx and opening a serial port at 10400 baud, that way you should be able to see what the other library sends on the bus and what this one sends. It also allows ruling out eletrical issues.

Yes it is exactly the same. If i upliad thst library over yours in my esp32 it works..
I will try with an arduino megs these days , first with your library, second as listen, but i don't know exactly how. Between another arduino what transceiver or how make connection. Thanks again.

HI again. I made teste and tests..... reader_esp32 not work, i receive first byte every time 0.
I tried readerKWPSlow because i have like (1941) other file witch works.
I modified delay times in InitTmplm but not works, received first byte 0.
bool OBD9141::initImpl(bool check_v1_v2){
use_kwp_ = false;
// this function performs the ISO9141 5-baud 'slow' init.
this->set_port(false); // disable the port.
this->kline(true);
delay(350);
// delay(OBD9141_INIT_IDLE_BUS_BEFORE); // no traffic on bus for 3 seconds.
OBD9141println("Before magic 5 baud.");
// next, send the startup 5 baud init..
this->kline(false); delay(200); // start
this->kline(true); delay(200);  // first two bits
this->kline(false); delay(600); // second pair
this->kline(true); delay(200);  // third pair
this->kline(false); delay(600); // last pair
//this->kline(true); delay(200);  // stop bit
// this last 200 ms delay could also be put in the setTimeout below.
// But the spec says we have a stop bit.
STRANGE what is next:
I put only some degub in begin function and set_port like this  (marked with //added) , i think it they make some delay:
void OBD9141::begin(OBD_SERIAL_DATA_TYPE & serial_port, uint8_t rx_pin, uint8_t tx_pin){
this->serial = &serial_port;
this->tx_pin = tx_pin;
this->rx_pin = rx_pin;
OBD9141println("1");//added

// Enable the pullup on the Rx Pin, this is not changed by set_port.
pinMode(this->rx_pin, INPUT);
digitalWrite(this->rx_pin, HIGH);
this->set_port(true); // prevents calling this->serial->end() before start.
use_kwp_ = false;

OBD9141println("2");//added

}
void OBD9141::set_port(bool enabled){
if (enabled){
 OBD9141println("3"); //added

    // Work around the incorrect pinmode configuration in Due.
    #ifdef ARDUINO_SAM_DUE
      g_APinDescription[this->rx_pin].pPort -> PIO_PDR = g_APinDescription[this->rx_pin].ulPin;
      g_APinDescription[this->tx_pin].pPort -> PIO_PDR = g_APinDescription[this->tx_pin].ulPin;
    #endif
    this->serial->begin(OBD9141_KLINE_BAUD);
} else {
    this->serial->end();
    OBD9141println("4");//added
    #ifdef ARDUINO_SAM_DUE
      g_APinDescription[this->rx_pin].pPort -> PIO_PER = g_APinDescription[this->rx_pin].ulPin;
      g_APinDescription[this->tx_pin].pPort -> PIO_PER = g_APinDescription[this->tx_pin].ulPin;
    #endif
    pinMode(this->tx_pin, OUTPUT);
    digitalWrite(this->tx_pin, HIGH);
}

}
AND , AND i received this.....what is ok for KWP
17:16:19.124 -> Before magic 5 baud.
17:16:20.932 -> Before setting port.
17:16:20.932 -> 3
17:16:20.932 -> After setting port.
17:16:21.193 -> First read is: 85
17:16:21.225 -> read v1: 239
17:16:21.225 -> read v2: 143
17:16:21.225 -> v1: 239
17:16:21.225 -> v2: 143
17:16:21.290 -> init_success:0
Init return false because remaining last part of initTmpl  where after this next line nothing happen, i put a debug again and....not go from this line
// these two should be identical according to the spec.
OBD9141println("CCCC0"); //added  - HERE STOPED AND first byte is 0. STRANGEGEGEGEGEGEGEGEGEGEGEGEGEG
//here never arrived
if (check_v1_v2) {
if (v1 != v2){
return false;
}
}
17:26:20.798 -> Before magic 5 baud.
17:26:22.603 -> Before setting port.
17:26:22.603 -> 3
17:26:22.603 -> After setting port.
17:26:22.603 -> First read is: 0
17:26:22.603 -> init_success:0

Hmm, looks like you're on the right track, things are coming back now.
In initKWPSlow we actually disable the v1 == v2 check here, since you get a v2 of 143, and that corresponds to the comment there, I think things are working.
Try just disabling this check by setting check_v1_v2 = false.

it is setted to false, not enter in that check, after that check is a problem, if i put a debug (print) funtion ....the program stopped

Well, if the program suddenly stops if you put a print statement somewhere... I think there are other problems in your program / setup. Not much I can do to help with that though.

It is not from the sketch, it is something inside the library.. If you see first post from yesterday, something is strange. These OBD9141println("")  added in OBD9141.begin and OBD9141.set_port add some delay and like i said with them added in the code i can receive good response with KWPSlow.

OBD9141println("") added in OBD9141.begin and OBD9141.set_port add some delay

What happens if you replace that with a delay(10) or something? It sounds like a timing issue to me, not like something is fundamentally wrong with the library.

source: gharchive/issue

license: mit

license_type: permissive

license_source: bigquery


text:
Failed to send email with related configuration

Im using laravel 7.24 and php 7.4. im try to use this package in order to able to send email to our customer by different mail.
my multiple config is here (i dont dont want save this configuration in database)
'emails'  => [
        "test@test.com" => [
            'username'              => "test@test.com",
            'pass'                  => "13455",
        ],
        "test1@test.com" => [
            'username'              => "test1@test.com",
            'pass'                  => "12345",
        ],
    ],

if i keep the default email configuration in my env file and then try to send email with multimail i get this errror:
vendor\swiftmailer\swiftmailer\lib\classes\Swift\Transport\AbstractSmtpTransport.php - Line:457Expected response code 250 but got code "554", with message "554 5.7.8 User [test@test.com] not authorized to send on behalf of <test1@test.com>

if i remove this configuration, i get this error:
vendor\swiftmailer\swiftmailer\lib\classes\Swift\Transport\AbstractSmtpTransport.php - Line:457Expected response code 250 but got code "550", with message "550 5.7.1 Relaying denied

i have to say that both my email address with related configuration is currect and i test it by default mail facade of Laravel.
whats is the problem with that?

Reading the error it seems that your credentials do not match:
User [test@test.com] not authorized to send on behalf of <test1@test.com>

It probably makes sense that the user test@test.com cannot send as test1@test.com ?
If username and email are identical, its not necearry to specify username. Try
'emails'  => [
        "test@test.com" => [
            'pass'                  => "13455",
        ],
        "test1@test.com" => [
            'pass'                  => "12345",
        ],
],

does this work?

Unfortunately i have to say no.
Is there any open source project that i see it?
is there any need to keep Laravel initial email information in .env file?

Yes initial email information is still required in your env
MAIL_DRIVER
MAIL_HOST
MAIL_PORT
MAIL_ENCRYPTION

should be specified in your .env, because they are used in the default provider from https://github.com/iwasherefirst2/laravel-multimail/blob/master/publishable/config/multimail.php
Do you have these 4 options in your .env ? Can you post you full config/multimail.php ?
The error that you shown is pretty clearly a configuration error.

Any updates here?

Close it as it seemed to resolve. If you still have a problem, I will reopen it.

license: MIT

license_source: github-api


text:
🛑 06IILeeのBlog is down

In 5561f18, 06IILeeのBlog (https://www.iilee.cn) was down:

HTTP code: 0
Response time: 0 ms

Resolved: 06IILeeのBlog is back up in f1e183a.

repo: iwyang/check


text:
🛑 05Takagi is down

In 9e2e25f, 05Takagi (https://lixingyong.com) was down:

HTTP code: 0
Response time: 0 ms

Resolved: 05Takagi is back up in 38e6077.


text:
🛑 28mao is down

In 232491c, 28mao (https://meuicat.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: 28mao is back up in 015c28d.


text:
🛑 21Eurkon is down

In b31ef14, 21Eurkon (https://blog.eurkon.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: 21Eurkon is back up in 1dd6d45 after 57 minutes.


text:
🛑 21Eurkon is down

In a6c42e1, 21Eurkon (https://blog.eurkon.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: 21Eurkon is back up in f0bf13e after 9 minutes.


text:
🛑 N IXTANET is down

In 68d8092, N IXTANET ($N_IXTANET) was down:

HTTP code: 0
Response time: 0 ms

Resolved: N IXTANET is back up in 4bdb9ec after 1 hour.

repo: ixtanet/upptime


text:
🛑 MANAGER ISP.GT is down

In 2c07737, MANAGER ISP.GT ($WEB_MANAGER) was down:

HTTP code: 0
Response time: 0 ms

Resolved: MANAGER ISP.GT is back up in ddd4050 after 5 minutes.


text:
Sending a transaction

Is there a way to call a function (i.e. send a transaction) with this library?
If I wanted to programmatically call a function that updates blockchain state, what's the best way to do it?

Signing transactions is not implemented in this GEM.

@astudnev Do you have a plan to implement it?

No direct plan, but would be very nice

I am thinking to implement it.... Any ideas? Someone wants to collaborate?

Don't mean to steal anyone's thunder.  But I have basic functionality for sendTransaction (not ready yet for arrays) in my library here https://github.com/hswick/w3 and I am looking for collaborators as I can only work on it part time.

Hey people, why reinvent the wheel, for signing transactions you can use https://github.com/se3000/ruby-eth - would be more useful to try and fix some of the quirks of that library (one of them I will fix as soon as time permits...)
Then you can simply do:
tx = Eth::Tx.new({
data: "0x075624e1",             # this is incrementTwice() - to do: hex data from any function input
gas_limit: 210_000,
gas_price: 20_000_000,
nonce: tc,
to: "0xc015edDe79C543A4a7aa7e54EC590cB9cCC5E6ae",
value: 0,
})
key = Eth::Key.new priv: '....acct_private_key.....'
tx.sign key
puts tx.hash
res = web3.eth.sendRawTransaction([tx.hex])
The more tricky part (from my point of view) is to properly encode the data - this seems to be possible with web3-eth bit need to test it.

@hswick  - apart from the signing, all the necessary functions to send transactions seem to be implemented in a pretty comprehensive way in the Ethereum.rb gem (https://github.com/EthWorks/ethereum.rb) which does have some minor quirks but generally works (only with parity at the moment). However, that gem does not expose most of its useful functions, such as input data encoding, so instead of trying to redo, we could work on doing that. What do you think?

@alex-kampa I like the simplicity of ruby-eth for signing transactions. Anyone looking on this thread would probably benefit from the use of it.
In regards to ethereum.rb I address this in my README. I'm a fairly opinionated person (as I think conviction makes good software), and I have actually been stealing some of the internals for w3 from ethereum.rb (which I reference). It isn't a matter of functionality, it is about design. My design isn't based on just becoming feature parity with something like web3.js, it is about surpassing it.

@hswick I just went through your w3 library, it looks promising. I'll check it out.

I'm also trying to send transaction as @woniesong92
my code here
        key = Eth::Key.new priv: privateKey
        gas_limit = 200000
        gas_price = $web3.eth.gasPrice().to_i(16)
        nonce = $web3.eth.getTransactionCount([key.address, 'pending']).to_i(16)
        tx = Eth::Tx.new({
                gas_limit: 210000,
                gas_price: gas_price,
                nonce: nonce,
                from: key.address,
                to: address_to,
                value: amount,
                data: ""
            })

        tx.sign(key)

        result = $web3.eth.sendRawTransaction(tx.hex)

then error respose
{
    "status": 500,
    "error": "Internal Server Error",
    "exception": "#<RuntimeError: Error code 400 on request https://rinkeby.infura.io/kEICAYHkrSFjduGKSOR5 {\"jsonrpc\":\"2.0\",\"method\":\"eth_sendRawTransaction\",\"params\":\"0xf86480843b9aca0083033450945dc73424b8bb75d22cd728dc8dbb2aad77f5fd4680801ba096c8949ec52baa4ef55fdedbc138ed330717a7495ecc70cffd7d4ce05d4cb389a06f3c88b4323cd4f6f0d8bfdb51e788faff621733d48f77622cd598341edb6b15\",\"id\":6401146}>",
    "traces": {
        "Application Trace": [
            {
                "id": 5,
                "trace": "app/walletapi/eth_client.rb:45:in `drawal'"
            },
            {
                "id": 6,
                "trace": "app/controllers/api/v1/wallets_controller.rb:137:in `withdrawal'"
            }
        ],
        "Framework Trace": [
            {
                "id": 0,
                "trace": "web3-eth (0.2.16) lib/web3/eth/rpc.rb:44:in `block in request'"

please help me.

Any luck with that problem @marknguyen85?

Hello @alex-kampa,
In your example above:
tx = Eth::Tx.new({
  data: "0x075624e1", # this is incrementTwice() - to do: hex data from any function input
  gas_limit: 210_000,
  gas_price: 20_000_000,
  nonce: tc,
  to: "0xc015edDe79C543A4a7aa7e54EC590cB9cCC5E6ae",
  value: 0,
})

Could you please be more clear as to what goes in the data field? it seems this is what @marknguyen85 Could be missing as well?
Thank you very much.

i've resolved with code below
result = $web3.eth.sendRawTransaction([tx.hex])

Awesome thanks!
@marknguyen85 May I ask one follow up Question, How do get a contract object?
I'm trying to load it from a Ruby Hash:
contract = web3.eth.contract(Abi)
contract_instance = contract.at('0x0.....')

Where Abi is the standard Contract, ie. a Ruby Array behind the scenes
But it does not work!
The above does not allow me to do:
contract_instance.balanceOf('0x....')
Throws NoMethodError and I wonder If the ABI has to be in a specific format? any ideas,
Please Help.

@jlstr I'm also problems as you with methods of constract

@jlstr
I found the cause of the error, Abi must be formatted string instead of array
ex
Abi = []
format to =>  Abi = '[]'

Awesome! Thank you @marknguyen85, And How are you calling contract methods?

@jlstr
as you, i don't know how to calling contract methods. When call contract method alway get error
Function transfer is not constant: transfer, requires to sign transaction
i found in this gem code
def call_contract contract_address, method_name, args
        function = functions[method_name]
        raise "No method found in ABI: #{method_name}" unless function
        raise "Function #{method_name} is not constant: #{method_name}, requires to sign transaction" unless function.constant
        function.do_call web3_rpc, contract_address, args
      end

=>
raise "Function #{method_name} is not constant: #{method_name}, requires to sign transaction"
have you any idea for this processing?

Hello @marknguyen85, I have figured it out, and let me tell you, you're in the right track, but the key is that you have to serialize the entire contract method you'll call according to the ABI Spec. Once serialized, you will get a long HEX string that looks like: 0xcdcd77c000000000000000000000000000000000000000000000000000000000000000450000000000000000000000000000000000000000000000000000000000000001
That hex string goes in the data field of the TX:
tx = Eth::Tx.new({
data: hex_data,
gas_limit: 210_000,
gas_price: gas_price,
nonce: nonce,
to: contract_address,
from: address_that_is_signing_this_transaction,
value: 0
})
The rest is exactly as you have in your example, but remember that the to will always be the contract's address in Ethereum.
Let me know if require any further help.
-Jose

@jlstr thanks you.
I have read the link that you submitted (ABI Spec) but don't know how to create data_hash. Can you just me how to generate?

@jlstr thanks

@jlstr - some of the encoding was also done by @hswick at https://github.com/hswick/w3/blob/master/lib/w3/encoder.rb
Not sure it handles all casesa though - for example arrays as inputs are probably a bit tricky, and this includes strings which are handled like arrays as far as i know. If anyone here manages to do the encoding inb the most generic way, please let us know.

BTW, the specs for the encoding are here: http://solidity.readthedocs.io/en/develop/abi-spec.html

Thank you @alex-kampa I did use that very same spec in order to do the parsing, too bad it's so coarse.

authors: ToJen alex-kampa astudnev drselump14 hswick jlstr lucasperez marknguyen85 woniesong92


text:
Regression issue: New versions break functionality

The 12.x versions break connectivity to my watch: 3509
Was working on v11...

OK, thanks for reporting. You did not describe the exact problem, but if you are running on Android 14 and using version 12.2 of the app, there is a known issue where you have to press the "FORGET" button with every connection. We are testing a fix, to be released shortly, but as a workaround, you can manually pair your watch from Android settings once, and it should work from then on.
Let me know if this helps resolve the issue.

@geebotron
I'm trying to collect some information about this issue in case it happens to others.
Could you tell me your Android version and phone make? Is it official Android, or something like LineageOS? Does your phone have a custom ROM?
Thanks

It's a Samsung Galaxy S21, running Android 14. Completely stock - nothing customised at all

👍
On Sat, Mar 2, 2024, 8:39 AM geebotron @.***> wrote:

It's a Samsung Galaxy S21, running Android 14. Completely stock - nothing
customised at all
—
Reply to this email directly, view it on GitHub
https://github.com/izivkov/CasioGShockSmartSync/issues/77#issuecomment-1974799468,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AA7M37TDFER5WVTFFUBLFKTYWHJAPAVCNFSM6AAAAABEAIP2PWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSNZUG44TSNBWHA
.
You are receiving this because you commented.Message ID:
@.***>

authors: geebotron izivkov

repo: izivkov/CasioGShockSmartSync


text:
IZPACK-1433: Global temporary folder never gets deleted

IZPACK-1433:
I replaced cleanup() with deleteOnExit(). cleanup() does nothing that create() in the line before didn't already do, so I guess it was accidentally called instead of deleteOnExit() when this mechanism was initially implemented.

Thanks for contributing.

source: gharchive/pull-request

authors: karstenroelling-spirent rkrell

repo: izpack/izpack


text:
Any plans to support Vite and/or HMR?

Love this project! Just wanted to know what's the workflow for using it is. I was able to get it to work with Svelte, but struggling to figure out how to make the app refresh on its own when I change files.

Hello thank you for your ticket.
The project is already supporting Vite, there is an opened PR to update the tutorial to configure a project with flask-inertia and vue3-vite: https://github.com/j0ack/flask-inertia/pull/20.
How did you setup your project with Svelte ? There is an another repo based on cookiecutter that you can use to configure automatically your dev environments with vue/svelte and react shortly. Feel free to use it or get your config files from it.

Great I'll take a look at the pull request. I saw the cookiecutter repo and used it but it was still using rollup instead of vite so I wanted to see if I could update it to vite. But now I think I can use your vite version and update that then. Thanks!

This was my vite config:
import { defineConfig } from 'vite';

import { svelte } from '@sveltejs/vite-plugin-svelte';
import { vitePreprocess } from '@sveltejs/vite-plugin-svelte';

export default defineConfig(({ mode }) => {
    return {
        build: {
            emptyOutDir: true,
            rollupOptions: {
                input: 'src/main.ts',
                output: {
                    entryFileNames: '[name].js',
                    chunkFileNames: '[name]-[hash].js',
                    assetFileNames: 'bundle.css',
                    dir: '../dist/'
                },
            },
        },
        plugins: [
            svelte({
                preprocess: [vitePreprocess()]
            }),
        ],
        server: {
            cors: mode === "development",
            // hmr: { host: "127.0.0.1", clientPort: 5000}
        },
    }
})

and my main.ts:
import { createInertiaApp } from '@inertiajs/svelte'
import "./app.css"

function importPageComponent(name: string, pages: Record<string, any>) {
  // eslint-disable-next-line no-restricted-syntax
  for (const path in pages) {
    if (path.endsWith(`${name.replaceAll(".", "/")}.svelte`)) {
      return typeof pages[path] === "function" ? pages[path]() : pages[path];
    }
  }

  throw new Error(`Page not found: ${name}`);
}

createInertiaApp({
  //@ts-ignore
  resolve: (name) =>
    importPageComponent(name, import.meta.glob("./pages/**/*.svelte")),
  //@ts-ignore
  setup({ el, App, props }) {
    new App({ target: el, props })
  },
})

And it seems even with the vue3 vite cookiecutter, you would still need to manually refresh right?

thank you! Just wanted to see if there were plans because I wanted to try combining your package with flask-vite and see if that would work. if it does, I can link it and/or make a pull request if you'd like

They do actually work pretty well together, here's a template of them together: https://github.com/bonchondev/vite-inertia-flask-template

authors: bonchondev j0ack shininglove


text:
Automatic table configuration via Annotation Processing

This pull request adds an annotation processor that examines annotations at compile time and generates a function that adds cached config information for all tables to the DAO Manager.  This is intended to replace textual config files, with the advantage that it is generated automatically every build.  All reflection is done at compile time, so there is no runtime cost.  Simple inputs and outputs are included as automated unit tests.

Hi guys,
thanks @NCrouther for this. I am actually working on an OrmLite android Plugin. The plugin is ready but uses the ORMLite Config Util class to generate the ormlite configuration file. And this approach has several limitations that would all be removed by using an annotation processor.
The android plugin : https://github.com/stephanenicolas/ormlite-android-gradle-plugin
The plugin works fine, but with several limitations. Nevertheless, it is production ready and we already use it at Groupon internally. We got large speed improvements but it twists a bit our build cycle and it creates some problem at the SCM tree level (basically the ormlite config file, which is now generated has still to be part of the tree). An annotation processor would get rid of those twists and SCM troubles.
The annotation processor is really the way to go but I didn't have time to look into it. I am glad someone could find some time and spent some effort on this.
I plan to review the PR this week, if you are fine with that @j256 .
Also, @j256 , I think this all should be merged in ORMLite : both the annotation processor and the android gradle plugin.

Generally speaking, a gradle example is missing. It should use aptplugin to configure the annotation processor.

I have a few comments, but I think this PR is really great ! I hope it can be made stable and merged soon to ORMLite.

Thanks for all of the detailed feedback.  I knocked out all of the easy stuff today, I should have time to tackle the rest of it later this week.  A couple of open questions:
How should we handle the new dependency on a java code generation library (Velocity or JavaPoet)?
I was hesitant to use a library since currently the Android JAR has no runtime dependencies.  I know I have used ORMLite by just adding the JAR to an eclipse project, and I would guess other users do this as well; I didn't want to add too much complexity for those users.  My research on the issue pointed me to the maven shade plugin which looks like will bundle the dependency into the single JAR.  Is this a good way to go?  Is there anybody familiar with it that can point me in the right direction?
Should the annotation processing code be in a separate JAR?
The gradle apt plugin looks like it is built around having a JAR with just the code for annotation processing so it can load it during compile but not add it to the output JAR.  I can see the benefit, but since the annotation processing code is pretty small for now, I figured it would be simpler to keep it all one project.  If we decide to split it, is that something I should do (i.e. I would create a project for it and the j256 repo would fork it), or should this repo split it out?  My gut feel would be to keep it together for now and if the annotation processing grows (such as if we do more code generation to eliminate reflection when populating query result objects), @j256 would create the new project and migrate the annotation processing code there.
Thoughts?

I went ahead and added JavaPoet and used the maven shade plugin to eliminate the added dependency.  It does bump the size of the annotation processing code from ~10KB to ~70KB which adds some more motivation to split the annotation processing into a separate JAR that can be discarded at runtime
TODOs:

investigate strategies for splitting into two JARs
create gradle example

Open Questions:

Should we split into two JARs, and how should it be handled?
Where should the gradle example go?  I would guess that upon release it should be added to the main project website.

I looked at how Dagger handles creating two JARs and they use a maven multipke module project, which seems like the best way to go.  There are a couple of areas that I could use some guidance:

I am pretty new to maven, so I'd like to have somebody experienced who fully understands the existing POM look over the 3 poms that I split it into to make sure I did it right.
Currently I have Javadoc links from some main JAR classes to annotation processor JAR classes, so javadoc is giving warnings (and I assume the links are broken).  Is there a good way to handle this?  Possibly by merging the Javadoc from the two maven subprojects somehow so the links properly resolve?

Hi @NCrouther ,
you are right, for the jar management. It's better to use modules. I would suggest the following : (but in a different PR as it involves changing orm lite android's pom)

a parent module (ormlite-android-parent) that contains stuff related to dependency and plugin management, release and quality plugins
a child (ormlite-android) that contains the lib
a child (ormlite-android-processor) that contains the processor
if necessary, to avoid a cycle : a child module (ormlite-android-core) that defines common data structures.

But this might be a little long and should maybe be addressed in a different PR. Already, this, which is quite a change, and has to be merged.
For Javadoc, I don't know.
@j256 @kpgalligan What do you think of this ?

Thanks for the confirmation.  I solved the javadoc issue by using the aggregate-jar target for the javadoc plugin in the parent pom.  I have the project split into the modules you describe and everything seems to be working properly.  However, there are still sections of the POM (such as the sourceforge and sonatype profile sections) that I don't understand, so they will definitely need heavy review.  Should I commit the changed pom (along with moving all source files to appropriate folders) to this PR or wait and create a new PR?

I don't know what the plan of @j256 is. The easiest would be a PR against your branch, not an additional commit and a link to follow up on the PR (which is gonna be in your repo).
Good work ! Sonatype and sourceforge stuff should not be modified. But they should bubble up to root level.

Thanks for the advice.  I'm really new to Git/GitHub, so I appreciate the hand-holding, I'm learning a lot.    I followed your recommendation and put the initial version of the module-split pom into a separate branch/PR in my repo: https://github.com/NCrouther/ormlite-android/pull/2.  Based on the JARs created, functionally everything seems good, but I am sure the POMs can use some further refactoring.

I only saw this PR now, but it's really similar to a project I started last Friday: https://github.com/koesie10/ormlite-processor. It's basically the same, but without changing the project's code and it has some limitations.

Getting a build error from the JavaPoet.  I think the build needs to be 1.7, but changing to that throws a different issue.  JavaPoet related issue:
[ERROR] /Users/kgalligan/Dropbox (Touch Lab)/devel_git/ormliterefactor/ormlite-android/src/main/java/com/j256/ormlite/android/processor/OrmLiteAnnotationProcessor.java:[453,18] cannot access java.nio.file.Path
[ERROR] class file for java.nio.file.Path not found
Also, how do you add to a gradle project?  Example?  Working on this today.

Didn't mention @NCrouther directly in last message.  Not sure if you'll see it...

Sorry for the delay, I was away from email over the holiday weekend.
I didn't realize that JavaPoet would increase the required JRE/JDK version.  Hopefully the impact will be small since I am splitting it into two separate JARs.  The main JAR can retain 1.5 compatibility, and the annotation processor JAR can target the higher version that is necessary.
I am doing some experiments on the branch with the pom changes: https://github.com/NCrouther/ormlite-android/pull/2
I incorporated the animal sniffer plugin (http://mojo.codehaus.org/animal-sniffer/) to verify that the code is not using any newer APIs than are present in the declared java version.  It seems like everything is fine on 1.6.  This change should fix the java.nio.file.Path not found problem, the real issue will be figuring out the other error you ran into when changing that.  Let me know what happens when you try to build the latest from that branch.

To add to gradle (for the branch with the annotation processing split into a separate JAR):
compile files('libs/ormlite-core.jar')
compile files('libs/ormlite-android.jar')
provided files('libs/ormlite-android-annotation-processor.jar')

Once this version is deployed to maven central, it will be:
compile 'com.j256.ormlite:ormlite-android:4.49'
provided 'com.j256.ormlite:ormlite-android-annotation-processor:4.49'

You should add a project type dependency it will handle both cases.
Let me know if I can review the code.
S.
Le 2015-05-26 7:11 PM, "Nathan Crouther" notifications@github.com a
écrit :

To add to gradle (for the branch with the annotation processing split into
a separate JAR):
compile files('libs/ormlite-core.jar')
compile files('libs/ormlite-android.jar')
provided files('libs/ormlite-android-annotation-processor.jar')
Once this version is deployed to maven central, it will be:
compile 'com.j256.ormlite:ormlite-android:4.49'
provided 'com.j256.ormlite:ormlite-android-annotation-processor:4.49'
—
Reply to this email directly or view it on GitHub
https://github.com/j256/ormlite-android/pull/45#issuecomment-105722531.

authors: NCrouther koesie10 kpgalligan stephanenicolas

license: isc


text:
NPE when importing diagram from database (NB 8.2)

Message : org.netbeans.modeler.widget.node.vmd.internal.AbstractPNodeWidget.(AbstractPNodeWidget.java:96)
StackTrace :
java.lang.NullPointerException
at org.netbeans.modeler.widget.node.vmd.internal.AbstractPNodeWidget.(AbstractPNodeWidget.java:96)
at org.netbeans.modeler.widget.node.vmd.PNodeWidget.(PNodeWidget.java:142)
at org.netbeans.jpa.modeler.core.widget.FlowNodeWidget.(FlowNodeWidget.java:40)
at org.netbeans.jpa.modeler.core.widget.JavaClassWidget.(JavaClassWidget.java:64)
at org.netbeans.jpa.modeler.core.widget.PersistenceClassWidget.(PersistenceClassWidget.java:163)
at org.netbeans.jpa.modeler.core.widget.PrimaryKeyContainerWidget.(PrimaryKeyContainerWidget.java:30)
at org.netbeans.jpa.modeler.core.widget.EntityWidget.(EntityWidget.java:52)
at org.netbeans.jpa.modeler.specification.model.util.JPAModelerUtil.attachNodeWidget(JPAModelerUtil.java:1058)
at org.netbeans.jpa.modeler.specification.model.util.JPAModelerUtil.attachNodeWidget(JPAModelerUtil.java:195)
at org.netbeans.modeler.scene.vmd.AbstractPModelerScene.attachNodeWidget(AbstractPModelerScene.java:196)
at org.netbeans.modeler.scene.vmd.AbstractPModelerScene.attachNodeWidget(AbstractPModelerScene.java:97)
at org.netbeans.api.visual.graph.GraphPinScene.addNode(GraphPinScene.java:103)
at org.netbeans.modeler.scene.vmd.AbstractPModelerScene.createNodeWidget(AbstractPModelerScene.java:824)
at org.netbeans.jpa.modeler.specification.model.util.JPAModelerUtil.loadFlowNode(JPAModelerUtil.java:562)
at org.netbeans.jpa.modeler.specification.model.util.JPAModelerUtil.lambda$loadModelerFile$0(JPAModelerUtil.java:456)
at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1374)
at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:580)
at org.netbeans.jpa.modeler.specification.model.util.JPAModelerUtil.loadModelerFile(JPAModelerUtil.java:456)
at org.netbeans.modeler.core.NBModelerUtil.loadModelerFile(NBModelerUtil.java:57)
at org.netbeans.modeler.specification.model.file.action.ModelerFileActionListener.openModelerFile(ModelerFileActionListener.java:143)
at org.netbeans.modeler.specification.model.file.action.ModelerFileActionListener.openModelerFile(ModelerFileActionListener.java:72)
at org.netbeans.modeler.specification.model.file.action.ModelerFileActionListener.openModelerFile(ModelerFileActionListener.java:64)
at org.netbeans.modeler.specification.model.file.action.ModelerFileActionListener.lambda$actionPerformed$0(ModelerFileActionListener.java:59)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
at org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:159)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:109)
at java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:184)
at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:229)
at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:227)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:227)
at java.awt.Dialog.show(Dialog.java:1084)
at org.netbeans.core.windows.services.NbPresenter.superShow(NbPresenter.java:1086)
at org.netbeans.core.windows.services.NbPresenter.doShow(NbPresenter.java:1136)
at org.netbeans.core.windows.services.NbPresenter.run(NbPresenter.java:1108)
at org.netbeans.core.windows.services.NbPresenter.run(NbPresenter.java:131)
at org.netbeans.modules.openide.util.NbMutexEventProvider$Event.doEventAccess(NbMutexEventProvider.java:138)
at org.netbeans.modules.openide.util.NbMutexEventProvider$Event.readAccess(NbMutexEventProvider.java:98)
at org.netbeans.modules.openide.util.LazyMutexImplementation.readAccess(LazyMutexImplementation.java:94)
at org.openide.util.Mutex.readAccess(Mutex.java:218)
at org.netbeans.core.windows.services.NbPresenter.show(NbPresenter.java:1093)
at java.awt.Component.show(Component.java:1671)
at java.awt.Component.setVisible(Component.java:1623)
at java.awt.Window.setVisible(Window.java:1014)
at java.awt.Dialog.setVisible(Dialog.java:1005)
at org.netbeans.modules.j2ee.persistence.wizard.fromdb.ProgressPanel.open(ProgressPanel.java:83)
at org.netbeans.jpa.modeler.reveng.database.DBImportWizardDescriptor$2.run(DBImportWizardDescriptor.java:121)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
at org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:159)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
ModelerFile :
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<jpa:entity-mappings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:java="http://jcp.org/en/jsr/detail?id=270" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:jpa="http://java.sun.com/xml/ns/persistence/orm" v="2.8" status="GENERATED" sm="false" xs="false" id="_1483452661580636" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence/orm orm_2_1.xsd">
    <jpa:entity xre="false" abs="false" class="AcceptedPaymentMethod" v="true" minimized="false" rootElement="_1483452661580636" id="_1483452661580637">
        <jpa:attributes>
            <jpa:basic optional="true" attribute-type="String" v="true" name="name" id="_1483452661581639">
                <jpa:bv/>
                <jpa:column name="name" unique="false" nullable="true" insertable="true" updatable="true" table="accepted_payment_method" length="255"/>
            </jpa:basic>
            <jpa:basic optional="true" attribute-type="String" v="true" name="key" id="_1483452661581640">
                <jpa:bv/>
                <jpa:column name="key" unique="false" nullable="true" insertable="true" updatable="true" table="accepted_payment_method" length="255"/>
            </jpa:basic>
            <jpa:id attribute-type="Long" v="true" name="id" id="_1483452661581638">
                <jpa:bv/>
                <jpa:column name="id" unique="false" nullable="false" insertable="true" updatable="true" table="accepted_payment_method"/>
                <jpa:generated-value strategy="AUTO"/>
            </jpa:id>
        </jpa:attributes>
        <jpa:table name="accepted_payment_method"/>
    </jpa:entity>
    <jpa:snp loc="BEFORE_PACKAGE" e="true">/**
 * This file was generated by the JPA Modeler
 */</jpa:snp>
    <jpa:inf e="true" n="java.io.Serializable"/>
    <jpa:diagram>
        <plane elementRef="_1483452661580636"/>
    </jpa:diagram>
</jpa:entity-mappings>

Hi @mbppower ,
Are you using any third party theme like Darcula LAF.
If using then can you please try it without theme(with default netbeans theme).

Yes I was using Darcula LAF, disabling it solved the problem. Thanks.

Hi @mbppower ,
I am not able to reproduce it so Can you please attach the Darcula LAF plugin here and share your development environment details like OS etc.
Duplicate Issue : https://github.com/jGauravGupta/JPAModeler/issues/73, https://github.com/jGauravGupta/JPAModeler/issues/93

authors: jGauravGupta mbppower

repo: jGauravGupta/JPAModeler


text:
Can't add a custom Control in SceneComposer

Trying yields a popup saying it can't be found, but nothing obvious in the log

I can't reproduce this in either 3.5 nor master. But I was pretty sure I tried it in master before the release..

repo: jMonkeyEngine/sdk


text:
Register v0.1.9

@JuliaRegistrator register
Release notes:

byte integers
robustness improvements

Registration pull request created: JuliaRegistries/General/102131
Tagging
After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.
This will be done automatically if the Julia TagBot GitHub Action is installed, or can be done manually through the github interface, or via:
git tag -a v0.1.9 -m "<description of version>" 79b43c6b08042de42a54ea5adf4abeb8fe159e25
git push origin v0.1.9


text:
Redesign detail news

Redesain Detail Berita
Memasang Sticky Appbar di List Berita
Membuat component CollapsingAppbar

[S14] Pembaharuan Detail Berita

review gan @anandarh @jaluowen @aldiiii

repo: jabardigitalservice/pikobar-flutter


text:
Add promotional cards Lobster, Steer, Hornet, Centipede

@jackadamson I went ahead and added the code for these promos since it was quite simple. You said in another issue that GitHub wasn't notifying you, so I'm just tagging you so you get a ping. I hope that's ok/useful.
Thanks for all your work!

Thanks for submitting this! This should hopefully be live later tonight (but you'll need to refresh and possibly close all tabs of onitama.app to get it).

authors: jackadamson onitamasuperfan

repo: jackadamson/onitama


text:
Update README and add video exporting library libaction

@E10100thanLi0010n
I add the libsdl2-image-dev into README, and also zenity in order to display some simple message box and text box

ok

repo: jackiesogi/GTK-video-editor

license: WTFPL


text:
Syntax error during import

Syntax error occurs while loading library:
 File "/usr/local/lib/python3.6/site-packages/phenograph/classify.py", line 45
   print("Warning: iterative solver failed to converge in at least one case", flush=True)
                                                                                ^
SyntaxError: invalid syntax

Using Python 2.7.15 on Mac OS

Sorry, I noticed that this library is for Python3.

repo: jacoblevine/PhenoGraph


text:
ScintillaNET 3.6.3.0 Basic Autocompletion

Hello I contact you because I have a worry with the self completion of ScintillaNET.
The problem is that he can not get to the next word. I have the "WordStartPosition" function that always goes back 0. I took the same code as the example (https://github.com/jacobslusser/ScintillaNET/wiki/Basic-Autocompletion)
Thanks for your help :)

I use it https://github.com/Ahmad45123/AutoCompleteMenu-ScintillaNET

repo: jacobslusser/ScintillaNET


text:
animateEdge plugin

animateEdge plugin to make edges animated.
TODO :

curvedArrow renderer, create arrow at the end of animated part.

Thanks for the cleanup @21stcaveman. I'll need some time to review this. Naive question as starter: why does your PR changes the canvas edges renderers?

@Yomguithereal the whole idea for this came from a use case where I had to animatethe path between two nodes. I wanted to start from node 0, and draw edges with an animation to node n.
I added three variables to renderers : percent, overlay and partial. if you look at animateedge.html, you can see how they're used.
basically, percent is the variable used to make the animation, its the percentage of an edge's length to be overlayed (drawn thicker).
overlay, is the thickness of animated part of edges. if not specified, its edge size + 2
partial is a boolean value, if true, renderer will not draw the whole edge. otherwise, the whole edge will be drawn and then an overlay on top of it.
of course, how edges are drawn needed to be changed to accommodate partial edge and overlay ideas.


text:
Validate Function (in Controller.php) does not work

I'm submitting a ...

[x] bug report
[ ] feature request
[ ] support request
[ ] other (Please specify)

Provide information & explanation
There are some Problems with the validate-function at the Controller.php class

       if ($validator->fails()) {
            if (Route::current()->getPrefix() === 'api') {
                $message = $validator->errors()->first();
                throw new ValidationException($message);
            } else {
                throw new ValidationException($this);
            }
        }

Firstly I think the routes prefix check should be changed to:
Route::current()->getPrefix() === 'api' || starts_with(Route::current()->getPrefix(), 'api/')

I had some issues with multiple chained api routes. For example: I had a separate api route für backend issues that had another prefix called 'backend'. So the `Route::current()->getPrefix() returned "api/backend/" which is not covered by the if-statement.
Another error occured with the throw new ValidationException($message); statement.
I think it should be changed to throw new ValidationException($validator);. The ValidationException only accepts classes by the type of "Validators". A paramenter type of String raises an exception.
Beside that I did change the request header to json. But I don't know if this is necessary. I do only want to communicate over json at my api routes. I don't know if its general purpose.
Here is my suggestion. Maybe it helps :)
      if ($validator->fails()) {
            if (Route::current()->getPrefix() === 'api' || starts_with(Route::current()->getPrefix(), 'api/')) {
                $request->headers->set('Accept', 'application/json');
                throw new ValidationException($validator);
            } else {
                throw new ValidationException($validator);
            }
        }

Laravel & Angular version: master

Hi @aceart
Thank you so much for this!
I totally agree on your first point.. I didn't think about it (starts_with)
Same for the second one (passing $validator)
I don't think you'd need to set the Accept header to json
Would you be able to send a PR targeting master with the first 2 changes?
Thanks!

authors: aceart jadjoubran


text:
Increase size of text

Reduce number of characters

Rev A1 did a bit of this.  Will continue to work on this in Rev A2 and B1.

Tried to increase text size as much as possible for A2.  Will leave open for comments about text issues.

Issue migrated to beagleboard/beaglebone-blue#37

authors: erikwelsh jadonk

repo: jadonk/beaglebone-blue-jadonk


text:
🛑 LibReddit is down

In 059101c, LibReddit (https://rd.jae.su) was down:

HTTP code: 0
Response time: 0 ms

Resolved: LibReddit is back up in de019e6.


text:
Use a bounded list for offset manager

Requirement - what kind of business use case are you trying to solve?
Predictable recovery behavior when jaeger-ingester storage is being flakey for extended periods of time.
Problem - what in Jaeger blocks you from solving the requirement?
Offset manager uses an unbounded list to manage offsets
https://github.com/jaegertracing/jaeger/blob/79848299ed98dedc1d750d798bcd048c295e06e6/cmd/ingester/app/consumer/offset/manager.go#L31-L40
Because this is unbounded, two things happen

The list of offsets to be committed can grow at a large rate under heavy retry load
Because there is no prioritization of retry traffic and real time traffic, it might take a long time for this list to grow smaller. This introduces memory pressure and can lead to other problems like OOMs, degraded performance, etc.

Proposal - what do you suggest to solve the problem or improve the existing situation?
Use a bounded lists to manage offsets. If the bounds are hit, restart the partition consumer.
Restarting the partition consumer will cause an reset to the last successful committed offset. This also guarantees that the ingester will never be writing a message to the backing store when these bounds are exceeded - so it acts as a throttling mechanism when the storage backend is being flakey or latent.

Hi, I'd like to work on this!
AFAIU, from the proposed solution, the following needs to be implemented -

Make offsets a bounded array. Size configurable through a command line flag?
https://github.com/jaegertracing/jaeger/blob/7d664e6b0af19ee8f60ecc488d8e42bb6fe65942/cmd/ingester/app/consumer/offset/concurrent_list.go#L21-L25

Also, change the insert function to return error field (if the array has reached its bound) -
func (s *ConcurrentList) insert(offset int64, err error)

Propagate this error through the committing processor
https://github.com/jaegertracing/jaeger/blob/7d664e6b0af19ee8f60ecc488d8e42bb6fe65942/cmd/ingester/app/consumer/committing_processor.go#L42-L51
and handle the error here -
https://github.com/jaegertracing/jaeger/blob/7d664e6b0af19ee8f60ecc488d8e42bb6fe65942/cmd/ingester/app/consumer/consumer.go#L137
(possibly by just calling close() and start() on the Consumer).

Thoughts?

repo: jaegertracing/jaeger


text:
Enable batch and queued retry processors by default

Related to https://github.com/jaegertracing/jaeger/issues/2152 and https://github.com/open-telemetry/opentelemetry-collector/issues/886
This PR enables by default batch and queued_retry OTEL processors.
By default should be also enabled memory limiter, however it requires absolute settings which is not ideal solution for a single binary that is deployed in various environments. the memory limiter will support percentage settings in the future https://github.com/open-telemetry/opentelemetry-collector/issues/1078.

need to re-trigger the build

authors: pavolloffay yurishkuro


text:
Update ids-to-base64.py

Refactored traceId and spanId processing for improved performance with compiled regex and bulk string replacement.Optimized base64 encoding of IDs using direct byte conversion and efficient string handling.

@yurishkuro sir can I get any feedback on this PR

this script does not require efficiency improvements

this script does not require efficiency improvements

okay sir thanks for reply

authors: RupeshHacker yurishkuro


text:
storage: propagate tenant to grpc backend

Which problem is this PR solving?

Missing tenant information in a gRPC remote backend.

Description of the changes
Before the gRPC plugins were removed in Jaeger 1.58, tenant information was distributed in via the internal context.
With this change, the tenant information is also propagated to a removed grpc backend.
How was this change tested?

Manually with jaeger-query, tempo-query and wireshark.

Checklist

[x] I have read https://github.com/jaegertracing/jaeger/blob/master/CONTRIBUTING_GUIDELINES.md
[x] I have signed all commits
[x] I have added unit tests for the new functionality
[x] I have run lint and test steps successfully

for jaeger: make lint test
for jaeger-ui: yarn lint and yarn test

cc @albertteoh do you think we can get this into the next jaeger release tomorrow? ^^

Is the header name x.tenant in any way standard in gRPC?
I noticed that we don't have much in the way of documentation for these two headers, bearer.token and x.tenant - they both seem to be non-standard. Should we add a paragraph to https://www.jaegertracing.io/docs/1.61/deployment/#remote-storage explaining their use?
Do we also need a symmetrical header extractor in grpc/shared/grpc_handler?

Is the header name x.tenant in any way standard in gRPC?

No, the header name x.tenant is not a standard header in gRPC. I followed the bearer token implementation with the naming.

I noticed that we don't have much in the way of documentation for these two headers, bearer.token and x.tenant - they both seem to be non-standard. Should we add a paragraph to https://www.jaegertracing.io/docs/1.61/deployment/#remote-storage explaining their use?

Sure, I will document the outcome of this PR afterwards.

Do we also need a symmetrical header extractor in grpc/shared/grpc_handler?

I think no. I'm also not sure if we should keep the bearer.token key for the authorization token. From my point of view it makes sense to provide gRPC server & client interceptor for a list of headers. That should work with any header key you want to forward.

From my point of view it makes sense to provide gRPC server & client interceptor for a list of headers.

What would those interceptors do with the headers? In case of outbound ones they read the values from designated keys in the Context, so I am not sure what a "generic" interceptor for "headers" would do.
I do think we need an inbound interceptor for use in cmd/remote-storage, because it can be used to run storage backends natively supported by Jaeger which would be able to read those values from the Context.

What would those interceptors do with the headers? In case of outbound ones they read the values from designated keys in the Context, so I am not sure what a "generic" interceptor for "headers" would do.

mh.. y, I think you are right. In that case, we would need to attach a map as value and build something custom. Probably not worth it.

I do think we need an inbound interceptor for use in cmd/remote-storage, because it can be used to run storage backends natively supported by Jaeger which would be able to read those values from the Context.

Its the case here, right?
https://github.com/jaegertracing/jaeger/blob/19386cf990ae5a96cbf8c9da3b5cc704232f43b6/cmd/remote-storage/app/server.go#L99-L104

Its the case here, right?

ah, so it handles tenancy but not the bearer token? I actually don't see anything grpc-related in pkg/bearertoken

we should move upgradeContextWithBearerToken from plugin/storage/grpc/shared/grpc_client.go to be implemented as interceptor in pkg/bearertoken

ah, so it handles tenancy but not the bearer token? I actually don't see anything grpc-related in pkg/bearertoken

y, I did not go through the code yet. It might be handled somewhere. But having a pkg with the gRPC impl. (similar to the tenant thing) would simplify it.

authors: frzifus yurishkuro


text:
Fix formatting ofr README.rst

Python examples are now rendered a code blocks.

@hamogu thanks for your contribution. It seems something changed with github a few months ago that made the readme.rst stop rendering properly on the github main page for the repo. This is despite the facts that the readme.rst used to render appropriately there and it still renders fine on the documentation  at read the docs and on pypi. This must be related to these issues affecting many users: https://github.com/orgs/community/discussions/86715.
It look like your changes fix the code block rendering on github which is very helpful. Do you have any ideas what needs to be done to correct the spacing of the badges and emphasis in the first section?
compare good (readthedocs):

to bad (github):

This look OK on GH (I'm editing the file on the web so that I can use the "preview" button - presumably that's giving me the same layout that it will display later. However, need to check that it also renders correctly in normal Sphinx. It often does - GH markup is more restricted - but the only way to check is to actually run it and it look good there, too:

Rebased to squash into to logical commits.

@hamogu I would like to merge this PR but I'd like your help with something. So far all PRs into sciform have been authored by me. I've enacted a personal policy of including changelog entries on all PRs that warrant them, but this ends up warranting me doing a few bits of specific formatting in the changelog file.
I haven't yet come up with what the general workflow should be for PRs that aren't authored by me. I don't want to burden future PRs with finnicky details about formatting of the changelog.
Do you have any suggestion for me?
One idea I have, at least for this PR, is that we can just forget about the changelog and I can open up a follow-up PR with the changelog information. The other idea is to use a changelog tool like towncrier or something but it would take me some time to learn that.

You are the author and get to choose...
However, I typically would not do a changelog for something like this at all. Nothing in the code changed. To me, the main purpose of a changelog is to see "could anything brake in my code if I update my version of sciform?". Changes that are docs only, or typos in comments in the code etc. can't do that, so I'd leave them out.
Of course, some projects like to use Changelogs also to give credit to contributors.
I also think it's not too much to ask me to put in a changelog, if you want one. Alternatively, you can tell me that you are going to do that either do it after (as you suggested) or push it to my branch so it becomes part of this PR before you merge: The default in github is now to allow maintainers edit PRs by pushing to branches in a PR - and if you look at the top right of this page, you'll see that the tick-mark is set for "allow edits by maintainers", which means that you have write access to my branch.
I don't think towncrier is worth it for a project of this size. We use it in e.g. astropy, but there we have literally dozens of people contributing to every release and dozens of PRs open at the same time, so that you often get merge conflicts in the changelog file because everybody edits it at the same location. For sciform, that's not that case. The project is much more focussed on one particular issue thus much smaller, so I think a more complex tool like towncrier (or similar) is a waste of time when a much simpler way (just edit a file) with no extra dependencies also does the job - instead of adding more tools that are not needed, it's probably better to spend the time on fixing actual issues or working on something else!

No problem, I'm glad if it's helpful. Those would also be good discussions to have on e.g. the pyopenSci slack where a lot of people discuss the tools they use for their projects. If you use slack, you might find it interesting to join that and just see what others are doing. Maintainers of packages listed in PyOpenSci usually get invited during the review, not sure if that happened in your case (https://github.com/pyOpenSci/software-submission/issues/121) but if not, I'm happy to do that now.


text:
[Bug Report] Segfault when playing stream

Bug Description
When playing the m3u8 stream (main page) the bot segfaults with the message
A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0x00000000000072b6, pid=2, tid=115
#
# JRE version: OpenJDK Runtime Environment (16.0.2+7) (build 16.0.2+7-alpine-r0)
# Java VM: OpenJDK 64-Bit Server VM (16.0.2+7-alpine-r0, mixed mode, sharing, tiered, compressed oops, compressed class ptrs, serial gc, linux-amd64)

A segfault is an indication that this might be exploitable.
If you feel that this is an issue in lavaplayer I can recreate the issue there.
Steps to Reproduce
@jmusicbot play https://jarviradio.radiotaajuus.fi:9000/jr.m3u
Expected Result
Do not crash. It is fine if the file cannot be handled but it is not acceptable to crash.
Debug Output
Since the bot crashes I cannot run the command. You can see in the log above that I'm on alpine linux with openjdk16 . The bot is version 0.3.6 .

Additional Info
No response
Checklist

[X] I have looked for information about this within the documentation
[X] I have searched for similar issues on the issues page
[X] I am running the latest version of the bot:

I see that it even crashes for twitch streams and before crashing it prints
[23:48:16] [INFO] [NativeLibraryLoader]: Native library libmpg123-0: loading with filter com.sedmelluq.discord.lavaplayer.natives.ConnectorNativeLibLoader$$Lambda$306/0x0000000800f19158@26143335
[23:48:16] [INFO] [NativeLibraryLoader]: Native library connector: loading with filter null
[23:48:16] [INFO] [NativeLibraryLoader]: Native library connector: successfully loaded.

that leads me to believe it is shipping a native library that doesn't work on alpine. That is probably where the segfault comes from

Closing because of above.

repo: jagrosh/MusicBot


text:
Doesn't show progress bar in the channel topic?

I've allowed the bot to have full permissions for the text channel. Is this a bug?

Shows up when using the now playing command.

There's no bug in what you've shown

How so? Because in the example it shows it in there.

That example is a bit old, the status bar in the topic has been removed due to ratelimit issues

Oh, ok. Quick question as well. Is it possible to change what commands the DJ can use? I don't really want them to control the volume. I want it so that only I can change the volume. Is there a way I can implement this?

No, sorry, you cannot change which commands are in which category.

Ok :( ty for the quick responses!

Could this be a suggested feature?

I added it to the suggested features list

@jagrosh Slightly off topic but could you add an option in the config to disable it updating the channel topic but retaining it's playing status in game? It's pretty spammy in the audit logs...

It won't be an option in the config, because you can just not give the bot permissions to edit the channel.

Ah, alright that worked man. Should have thought of that sooner lol. Thanks.

authors: cacamarena42 hakufu jagrosh


text:
01.07 Unable to load_ext line_profiler

I installed line_profiler using conda install instead of pip
conda install line_profiler
conda list shows that I have line_profiler 1.1
line_profiler             1.1                      py35_0
Then, when I entered
%load_ext line_profiler
received an error
AttributeError: 'TerminalInteractiveShell' object has no attribute 'define_magic'

My guess is it's related to this: https://github.com/rkern/line_profiler/issues/62

Install version 2.0+ to fix the issue.

Fixed in 2.0 release.

authors: Kevogich dwelden jakevdp

repo: jakevdp/PythonDataScienceHandbook


text:
[BUG] Garbage collector problem

if i initialize a video player and dont use it (i want to prepare it for later), this message occur:
[video_player_win] gc free a player that didn't dispose() yet !!!!!
And the player is no more initialized

I think the controller instance you created is not pointed by any variable anymore,
so dart garbage collection try to clean it.
Could you try to assign the controller instance to a static variable (even if it is not a good idea),
ensure you just create ONE controller instance,
and check the message still occurs?

I am creating 2 instances of a class with the video controller.
i load 2 different videos at the time, but only one is showed. The second one is ready for the first one to be finished, then i switch them.
Sometimes (randomly) the "[video_player_win] gc free a player that didn't dispose() yet !!!! appears" and the instance that is not playing is gone.
`
class PHFPlayerVideoPlayer extends PHFPlayer{
PHFPlayerVideoPlayer(index){
this.index = index;
}
static VideoPlayerController? videoPlayerController;
@override
closeVideoPlayer() async{
if(videoPlayerController != null) {
await videoPlayerController!.pause();
await videoPlayerController!.dispose();
videoPlayerController = null;
}
}
@override
initializeVideoSlide(path) async{
videoPlayerController = VideoPlayerController.file(File(path));
videoPlayerController!.initialize();
videoPlayerController!.setVolume(PHFConfig.instance.moviesVolume * 100 * (PHFConfig.instance.disableMovieAudio == 0 ? 1 : 0));
}`

I hope it is related to the fact that after some iterations of this switch beetween different videos, the app crashes with no specific error log

I write the following simple test code,
always preload the next video every time when clicking "Next" button.
I try to click the "Next" button every second about 50 times,
and it works well with no gc occurs.
Did this solve your problem?
Note: Please remember to edit the gFileList array in the following code if you try to run it.
import 'dart:io';

import 'package:flutter/material.dart';
import 'package:video_player_win/video_player_win.dart';

void main() {
  runApp(const MyApp());
}

const gFileList = [
  "E:\\test_4k.mp4",
  "E:\\test_align.mp4",
  "E:\\test_av1.mp4",
  "E:\\test_clock.mp4",
  "E:\\test_youtube.mp4",
];

class PHFPlayerVideoPlayer {
  WinVideoPlayerController? controller;

  Future<void> initializeVideoSlide(String path) async {
    controller?.dispose();
    controller = WinVideoPlayerController.file(File(path));
    await controller!.initialize();
  }

  Future<void> play() async {
    await controller!.play();
  }

  Future<void> closeVideoPlayer() async {
    await controller?.dispose();
    controller = null;
  }
}

class MyApp extends StatefulWidget {
  const MyApp({Key? key}) : super(key: key);

  @override
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  var nowPlayer = PHFPlayerVideoPlayer();
  var nextPlayer = PHFPlayerVideoPlayer();
  int nowIndex = 0;

  @override
  void initState() {
    super.initState();
    nowIndex = 0;
    nowPlayer.initializeVideoSlide(gFileList[nowIndex]).then((value) {
      nowPlayer.play();
      setState(() {}); // update UI
    });
    prepareNext();
  }

  void prepareNext() {
    int nextIndex = (nowIndex + 1) % gFileList.length; // loop the list
    nextPlayer.initializeVideoSlide(gFileList[nextIndex]);
  }

  void onNextButtonClicked() async {
    await nowPlayer.closeVideoPlayer();
    nextPlayer.play();
    nowIndex = (nowIndex + 1) % gFileList.length; // loop the list

    // switch 2 player pointer
    var tmp = nextPlayer;
    nextPlayer = nowPlayer;
    nowPlayer = tmp;

    prepareNext();
    setState(() {}); // update UI
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
        home: Scaffold(
      body: Stack(children: [
        WinVideoPlayer(nowPlayer.controller!),
        ElevatedButton(
            onPressed: onNextButtonClicked, child: const Text("Next")),
      ]),
    ));
  }
}

It is still happening, and i don't understand why
The logic is the same of your example, but the Garbage collector is doing something that should not be doing.
I still think is something related to this library, because its not happening with other libraries

Here you have it

`import 'dart:io';
import 'package:flutter/material.dart';
import 'package:video_player/video_player.dart';
void main() {
runApp(const MyApp());
}
const gFileList = [
"C:\Users\andreacarmagnola\Desktop\VIDEOTEST\4kvert.mp4",
"C:\Users\andreacarmagnola\Desktop\VIDEOTEST\bene.mp4",
"C:\Users\andreacarmagnola\Desktop\VIDEOTEST\male.mp4",
];
class MyApp extends StatefulWidget {
const MyApp({Key? key}) : super(key: key);
@override
State createState() => _MyAppState();
}
class _MyAppState extends State {
PHFPlayer player1 = PHFPlayer.createVideoPlayer(PHFPlayer.VIDEO_PLAYER_LIBRARY, 1);
PHFPlayer player2 = PHFPlayer.createVideoPlayer(PHFPlayer.VIDEO_PLAYER_LIBRARY, 2);
late PHFPlayer currentPlayer;
bool showPlayer =false;
int nowIndex = 0;
@override
initState(){
super.initState();
nowIndex = 0;
Future.delayed(Duration(seconds: 1), () async {
await player1.initializeVideoSlide(gFileList[nowIndex]);
int nextIndex = (nowIndex + 1) % gFileList.length; // loop the list
await player2.initializeVideoSlide(gFileList[nextIndex]);
currentPlayer = player1;
  setState(() {
    showPlayer = true;
  });
});

}
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body: Stack(children: [
showPlayer?currentPlayer.getVideoWidget(false):Container()
    ]),
  ),
);

}
}
abstract class PHFPlayer {
static const int VIDEO_PLAYER_LIBRARY = 2;
late int libraryType;
late int index;
late Image image;
Future initializeVideoSlide(videoFile);
Widget getVideoWidget(useBlur);
static PHFPlayer createVideoPlayer(int libraryType, index) {
return PHFPlayerVideoPlayer(index);
}
}
class PHFPlayerVideoPlayer extends PHFPlayer{
PHFPlayerVideoPlayer(index){
this.index = index;
libraryType = PHFPlayer.VIDEO_PLAYER_LIBRARY;
}
VideoPlayerController? videoPlayerController;
@override
initializeVideoSlide(videoFile) async{
videoPlayerController = VideoPlayerController.file(File(videoFile));
await videoPlayerController!.initialize();
}
@override
Widget getVideoWidget(useBlur){
videoPlayerController!.play();
return VideoPlayer(videoPlayerController!);
}
}`

`import 'dart:io';
import 'package:flutter/material.dart';
import 'package:video_player/video_player.dart';
void main() {
runApp(const MyApp());
}
const gFileList = [
"C:\Users\andreacarmagnola\Desktop\VIDEOTEST\4kvert.mp4",
"C:\Users\andreacarmagnola\Desktop\VIDEOTEST\bene.mp4",
"C:\Users\andreacarmagnola\Desktop\VIDEOTEST\male.mp4",
];
class MyApp extends StatefulWidget {
const MyApp({Key? key}) : super(key: key);
@override
State createState() => _MyAppState();
}
class _MyAppState extends State {
PHFPlayer player1 = PHFPlayer.createVideoPlayer(PHFPlayer.VIDEO_PLAYER_LIBRARY, 1);
PHFPlayer player2 = PHFPlayer.createVideoPlayer(PHFPlayer.VIDEO_PLAYER_LIBRARY, 2);
late PHFPlayer currentPlayer;
bool showPlayer =false;
int nowIndex = 0;
@override
initState(){
super.initState();
nowIndex = 0;
Future.delayed(Duration(seconds: 1), () async {
await player1.initializeVideoSlide(gFileList[nowIndex]);
int nextIndex = (nowIndex + 1) % gFileList.length; // loop the list
await player2.initializeVideoSlide(gFileList[nextIndex]);
currentPlayer = player1;
  setState(() {
    showPlayer = true;
  });
});

}
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body: Stack(children: [
showPlayer?currentPlayer.getVideoWidget(false):Container()
    ]),
  ),
);

}
}
abstract class PHFPlayer {
static const int VIDEO_PLAYER_LIBRARY = 2;
late int libraryType;
late int index;
late Image image;
Future initializeVideoSlide(videoFile);
Widget getVideoWidget(useBlur);
static PHFPlayer createVideoPlayer(int libraryType, index) {
return PHFPlayerVideoPlayer(index);
}
}
class PHFPlayerVideoPlayer extends PHFPlayer{
PHFPlayerVideoPlayer(index){
this.index = index;
libraryType = PHFPlayer.VIDEO_PLAYER_LIBRARY;
}
VideoPlayerController? videoPlayerController;
@override
initializeVideoSlide(videoFile) async{
videoPlayerController = VideoPlayerController.file(File(videoFile));
await videoPlayerController!.initialize();
}
@override
Widget getVideoWidget(useBlur){
videoPlayerController!.play();
return VideoPlayer(videoPlayerController!);
}
}
`

Thanks for reporting this issue, and the sample code.
It seems there is really something wrong in this package.
In my sample code last week, I use WinVideoPlayerController, and it really work well.
In your sample code, you use official VideoPlayerController, and gc occurs.
It is confirmed that if any VideoPlayerController created but not displayed,
then the WinVideoPlayerController which is created by this VideoPlayerController will be GC collection.
Now it is fixed,
and I only push to github.
Please try with it and let me know if the solution works for you.
dependencies:
  video_player_win:
    git:
      url: https://github.com/jakky1/video_player_win.git
      ref: master

The GC issue seems now resolved
But not there is another problem.
Randomly after some time playing, i see this error and the app crashes
[ERROR:flutter/shell/platform/windows/external_texture_d3d.cc(107)] Binding D3D surface failed.

import 'dart:async';
import 'dart:io';
import 'package:flutter/material.dart';
import 'package:video_player/video_player.dart';
import 'package:video_player_win/video_player_win.dart';
void main() {
runApp(const MyApp());
}
const gFileList = [
"C:\Users\andreacarmagnola\Desktop\VIDEOTEST\4kvert.mp4",
"C:\Users\andreacarmagnola\Desktop\VIDEOTEST\bene.mp4"
];
class MyApp extends StatefulWidget {
const MyApp({Key? key}) : super(key: key);
@override
State createState() => _MyAppState();
}
class _MyAppState extends State {
PHFPlayerVideoPlayer player1 = PHFPlayerVideoPlayer();
PHFPlayerVideoPlayer player2 = PHFPlayerVideoPlayer();
late PHFPlayerVideoPlayer currentPlayer;
bool showPlayer =false;
int nowIndex = 0;
@override
initState(){
super.initState();
nowIndex = 0;
Future.delayed(Duration(seconds: 1), () async {
await player1.initializeVideoSlide(gFileList[0]);
player1.index =1 ;
int nextIndex = (nowIndex + 1) % gFileList.length; // loop the list
await player2.initializeVideoSlide(gFileList[1]);
player2.index = 2;
currentPlayer = player1;
  Timer.periodic(Duration(seconds: 5), (Timer) async {
    await switchPlayer();
  });
  setState(() {
    showPlayer = true;
  });
});

}
switchPlayer() async{
if (currentPlayer.index == 1) {
currentPlayer = player2;
await player1.videoPlayerController!.dispose();
await player1.initializeVideoSlide(gFileList[0]);
} else {
currentPlayer = player1;
await player2.videoPlayerController!.dispose();
await player2.initializeVideoSlide(gFileList[1]);
}
setState(() {});

}
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body: Stack(children: [
showPlayer?currentPlayer.getVideoWidget(false):Container()
    ]),
  ),
);

}
}
class PHFPlayerVideoPlayer {
int index = 0;
WinVideoPlayerController? videoPlayerController;
initializeVideoSlide(videoFile) async{
videoPlayerController = WinVideoPlayerController.file(File(videoFile));
await videoPlayerController!.initialize();
}
Widget getVideoWidget(useBlur){
videoPlayerController!.play();
return WinVideoPlayer(videoPlayerController!);
}
}

@jakky1 do you have any update on this?

I have run your code in debug mode (5 hours) and release mode (7 hours)
without any error occurs...
I have no idea how to produce & fix the error Binding D3D surface failed you mentioned...


text:
Publish this!

Hey Jakob,
This is a nice little tool, and there is really no other simple CSV viewer available for Mac. So unfortunately everybody just uses Excel as the de facto csv viewer.
I was able to download this source and build it. You should post a build on https://eggerapps.at for those that don't have XCode at the ready.
Cheers,
Luke

Hi Luke!
I made this tool last summer together with @aigi, who worked as an intern in my company (he did all the actual programming). Unfortunately I never found the time to polish it enough for release. I don't want to put it on my website in its current state, because I'm a bit scared of having to support it.
However, I agree that it might be useful to people, so I uploaded a build to the releases section:
https://github.com/jakob/TableTool/releases
Now people can use it without installing XCode :)

Sounds good!

Hey Luke!
I just wanted to let you know that we've been working on Table Tool. @SandroPeham polished the UI, made an icon, and did all the other things that are necessary for releasing it.
We now released Table Tool version 1.1.
You can download it right here on Github or on the Mac App Store!

authors: jakob lukecyca

repo: jakob/TableTool


text:
ActiveDirectory integration - fetch list of teams from AD itself

AD can have user groups as members of other user groups.
The point of AD integration is to avoid management of users by non-standard for the site tools.
Manual editing of Web.config should not be required for Teams management.
Also, this manual editing does not always help. Just a minute ago i had to totally delete APP_DATA\ADBackend subfolder and then had to restart IIS to make Bonobo finally see the changes in Teams setting of the Web.config.
The proposal is one more syntax option:
<add key="ActiveDirectoryTeamMapping" value="UserGroupName" />
The criterion is simple - the value consists of one single identifier and has no "=" or "," or other delimiters in it.
If so, then Bonobo enumerates the provided UserGroupName for nested usergroups, and then takes those secondary usergroups for its teams.
This way Teams management can be just like Users management - centralized in Active Directory.

Thanks for this - the AD integration is very difficult to get right for lots of reasons:

It was the victim of a huge low-quality commit prior to any of the current maintainers being involved in the project
It's very hard to test the AD integration in any sensible (i.e. automated) way - 'mocking' an AD server is not practical at all, as far as I know.  Every time I have applied significant changes involve AD, something has broken.
Many existing users of Bonobo+AD have very little control over the AD server other than as a simple identity provider - so all the stuff you want to be handled in AD has to be in Bonobo for them - they're often developers who can set up Bonobo but can't play with AD groups.

I don't want to be discouraging, but I am personally not very inclined to add any extra complexity around the AD integration.

Well, this one i am proposing is not to be complexity, but simplification, at least that is how i see.
About mocking, what if i set Bonobo on a non-domain workstation? Will then API calls Bonobo issues return local user groups? or will them just fail?
And one more proposal, can the AD auth guid have explicitly say that (correct me if i am wrong)

Bonobo authenticate itself with AD with the user account that IIS service is running under
The computer running Bonobo in AD auth mode should be part of the said AD and the IIS user should have this and that rights.

I had months long clash with my bosses and outsorces admin company over this simple thing, they could not set AD integration and complained i am asking for uber-complex unreasonable things.
Then i in half a day learnt how to install IIS on my workstation, installed Bonobo, fixed some gimmicks (probably obvious for IIS pro but not for me total noob) - and it worked.
Another of admins came, looked and their config, saw it was different from my and manual - and blamed prior admin for failing to proceed with manual. Promised me to check it on his workstation again and finally do.
Month later (laughters in the hall?...) my boss reprimands my for server not being ready due to my uncalled for fantasies.
In late night i have a talk with that second admin, like WTF dude???
And we start brainstorming, and we have bliss from Rubber Duck - we figure out the server was not in domain.
Very stupid blunder in retrospect, but it ate out lot of time and efforts.

In particular of the noob gimmicks: Bonobo installation manual shows several Bonobo appliances in IIS console. But when i installed Bonobo i only had one. It created very strong impression that installation process (that is: me) had partially failed. VERY disheartening for novices. F.U.D. state.

It would be nice to be able to point Bonobo at a particular AD group for its teams (it would certainly please the sysadmins), the only thing is I don't know what attribute you'd use for the name as it appears in Bonobo.
For instance, the teams on our set up are like:
Git_Team_Mdt maps to MDT
Git_Team_WebApps maps to WebApps
Essentially wouldn't want Bonobo to just use the SamAccountName or even the cn attributes (think they're kinda tied together when it comes to security group objects?). There is displayName but then I suppose we also have to consider name limitations in Bonobo.
I haven't looked much into the codebase itself other than a quick glance over a bit of the ADBackend class. We'd also need to decide how migration would happen with mappings that are already place within web.config - and what to do if there are some kind of conflicts.

Excuse the ignorance here, I am not really familiar with the way this stuff is used (and it doesn't seem very consistent anyway!)
Is this the basic idea:
AD contains multiple groups of users, with all these groups being held in a parent group.
Then Bonobo would be pointed at the parent group and told to build a team for each child group?
And would then consider all the users in each group to be in the team named after their group.
So the issues are:

We need to tell Bonobo to do this (I guess that's just a matter of pointing it at the parent group)
We need to tell Bonobo which property of the child groups to use as a name
We might need to be able to munge that property somehow to make it into the desired (or at least, valid) team name
We might need to filter out groups that have unsuitable names
And migration from existing Bonobo setups.

Am I vaguely on the right track?

That is pretty much it yeah, you'd point the config at a parent group that contains a group per team, then it should enumerate those team groups recursively to find the users (important because of domain local/global groups).
If they have unsuitable names it should throw an exception of some kind I suppose so that the admin can amend.
The group enumeration stuff will need some changes to the funcs implemented for caching so they can:

allow a param to force a fresh download, because AD sync should probably always prefer the live version not cached
allow a param for recursive enumeration of groups, right now recursion is assumed, but I believe if recursion is enabled it doesn't return GroupPrincipal objects at all

Hi
Is it not possible to have a step-by-step instruction to integrate git with Active Directory with real and practical details?

@amiro-git you have it here: https://bonobogitserver.com/ad-membership/
This ticket is not about documentation, please do not hijack it.

authors: amiro-git rozniak the-Arioch willdean

repo: jakubgarfield/Bonobo-Git-Server


text:
Be able to detect any icon in Manifest.xml

Hi @jakubknejzlik ,
I still use your library in my project and I faced an issue uploading an APK. The apk does not respect the default icon name : "ic_launcher".
I think the library should be able to find any icon name in the Manifest.xml.
I will make a PR today, I open this issue just in case ;)
As always, you will have to write the coffee part hehe
Spoke.

Hello @tspoke, thanks for your update. Unfortunately I'm busy on another project, but I'll try to update it ASAP :)

I understand, I will reference the package from my github until you merge it here :)
IMHO, if you remove the CoffeeScript of this library it could help people to contribute easily to this project. :)

authors: jakubknejzlik tspoke

repo: jakubknejzlik/app-bundle-info


text:
Flagged by cloudfare

Hey, when I run the script cloudfare ask me if im not a robot and when I click on the button it just reloading the same verification. Do you have any solutions please ? :)

it is still flagged?

I'm no longer maintaining this repo, but if you'd like tackle the problem yourself, I've had success using undetected-chromedriver for these kinds of issues

Thank you for the info. i'll try it out

Can you confirm if the script is safe to use?

Have you tried to set the excecutable path to you google chrome exe ?


text:
Valet persist on staying php 7.2.11, rather than switching 7.3

Macbook Bro - Mojave
➜  ~ switch-php 7.3
Password:
Valet stopped ✔
PHP switched ✔
Valet started ✔

You are now using PHP 7.2.11

I also restarted terminal to make sure but it didn't

Can you please upload a screenshot of the output when you run brew services list in your terminal?

authors: jalendport serhatculhalik

repo: jalendport/switch-php


text:
Latest update from PlayStore does not show title in my car via bleuthooth

I recently receive an update from the playstore. After this, the title of the track and station are not displayed anymore in my car.
It was perfectly displayed in the previous version.

In addition, the widget on lock screen does not update neither.

Hey,
What if you install the last app here from Github instead of Google Play Store ?

Will try that tomorrow...
A bit late  right now
Rhx for the advice
Will let you know
On Mon, 27 Feb 2023, 21:17 Jamal, @.***> wrote:

Hey,
What if you install the last app here from Github instead of Google Play
Store ?
—
Reply to this email directly, view it on GitHub
https://github.com/jamal2362/URL-Radio/issues/25#issuecomment-1447021930,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABJ47MFU3V2CQMVJ5PILDYTWZUDTXANCNFSM6AAAAAATYLVDCQ
.
You are receiving this because you authored the thread.Message ID:
@.***>

Can you try this test apk?
https://files.fm/f/azf33csvs
Please let me know.

Yes you need to uninstall it first.
Make a backup in the settings of the stations before.

Great,
Uninstall after export and install apk provided
Works great, restore stations and now the display is working fine
Thanks for the tip
On Tue, 28 Feb 2023, 20:16 Jamal, @.***> wrote:

Yes you need to uninstall it first.
Make a backup in the settings of the stations before.
—
Reply to this email directly, view it on GitHub
https://github.com/jamal2362/URL-Radio/issues/25#issuecomment-1448726878,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABJ47MBXW325TA6JCXONRJDWZZFKJANCNFSM6AAAAAATYLVDCQ
.
You are receiving this because you authored the thread.Message ID:
@.***>

No Problem. :)
A new release is on the way soon.
Take a look in the GitHub Release for a new version.
Google Play Store support will be drop soon because of the strict guidelines.

Awesome, thanks!
On Tue, 28 Feb 2023, 20:42 Jamal, @.***> wrote:

Closed #25 https://github.com/jamal2362/URL-Radio/issues/25 as
completed.
—
Reply to this email directly, view it on GitHub
https://github.com/jamal2362/URL-Radio/issues/25#event-8630732462, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/ABJ47MATQVEWLMO62XEREXTWZZIJVANCNFSM6AAAAAATYLVDCQ
.
You are receiving this because you authored the thread.Message ID:
@.***>

URL Radio 9.2 is now available!