THRIFT-5710: Stop sharing headers across all instances of transports in nodejs

THRIFT-5710

There is an issue with the header transport implementation in nodejs. All TBufferedTransport and TFramedTransport instances across all connections and clients share a single object for their read and write headers. There is a different copy for the two transport types, but within one type, they are shared.
This means that there are both data races and incorrect results possible:

You can write headers to a request that has written headers but hasn't flushed yet. This is especially troubling if the headers are used for auth, because you're able to mix up requests and auth as the wrong entity.
You can read headers from other requests. They only clobber each other if they have the same name, but the union of all seen headers is returned in getReadHeaders .

The issue is that we aren't calling the header transport constructor with the new this from the concrete implementations, so the TBufferedTransport.prototype = new THeaderTransport(); line is not properly binding this and causes the object sharing.
You can see this in the two test cases that fail before this PR and succeed now. Two completely unrelated TFramedTransport objects shared read and write results.
I did not create a JIRA ticket yet because I am still waiting on approval, but I wanted to get the PR up ASAP; we are currently experiencing this bug in production.
Note: my editor reformatted those two or three random lines because they had trailing whitespace and/or tabs, which is against the coding style. I can revert them if you want this PR to be clean, but figured I'd leave the changes in since the existing files were incorrectly formatted.

[X] Did you create an Apache Jira ticket?  (Request account here, not required for trivial changes)
[X] If a ticket exists: Does your pull request title follow the pattern "THRIFT-NNNN: describe my issue"?
[X] Did you squash your changes to a single commit?  (not required, but preferred)
[X] Did you do your best to avoid breaking changes?  If one was needed, did you label the Jira ticket with "Breaking-Change"?
[ ] If your change does not involve any code, include [skip ci] anywhere in the commit message to free up build resources.

@Jens-G I'm going to assume that the cross-test failures are not from me since none of them involve nodejs. Safe to assume?

Yes, seems so.

Sounds good. Thoughts on the bug and the PR? We're blocked on using nodejs Thrift on this, so I'm eager to get this one in.

@Jens-G Anything you need from me to review this? Happy to do whatever it takes!

Thanks @Jens-G! Can we cut a new npm package as well?

Sure, after release as usual there will be a new npm package.


Adaptive Cards with imBack action doesn't include Input.Choice selected value in the post back

My bot renders an Adaptive Card with an Action.Submit msteams imBack action as documented here : https://github.com/MicrosoftDocs/msteams-docs/blob/master/msteams-platform/concepts/Cards/cards-actions.md
{
  "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
  "type": "AdaptiveCard",
  "version": "1.0",
  "body": [
    {
      "type": "TextBlock",
      "text": "Select an item to get more infos"
    },
    {
      "type": "Input.ChoiceSet",
      "id": "CompactSelectVal",
      "style": "compact",
      "value": "1",
      "choices": [
        {
          "title": "Item-1",
          "value": "1"
        },
        {
          "title": "Item-2",
          "value": "2"
        }
      ]
    }
  ],
  "actions": [
    {
      "type": "Action.Submit",
      "title": "OK",
      "data": {
        "msteams": {
            "type": "imBack",
            "value": "Get more infos"
        }
      }
    }
  ]
}

When the OK button is clicked, the selected value from the Input.ChoiceSet is not part of the post back.
{"text":"Get more infos","textFormat":"plain","type":"message","timestamp":"2019-03-22T21:43:00.478Z","localTimestamp":"2019-03-22T21:43:00.478Z","id":"1553290980423","channelId":"msteams","serviceUrl":"https://smba.trafficmanager.net/emea/","from":{"id":"29:1pZuEqSeogjB6P806GywrlShMbW4u-9LqtQKq0plKvflMAAAjElV5mAracyXPBC8iFo8RzK9sPg4YIHy3u0vDzQ","name":"John Doe","aadObjectId":"28b3a689-d669-499d-a071-99eb4db63dd2"},"conversation":{"conversationType":"personal","id":"a:1GEzcMuwobCUMexBwA8no2fUb_5Oe39NJcPvZvMEfwPIw_yXcxJUXpEiRCzpdm_RplvjEDcZjyNkxSsFNmb6jhd7fOq83AAMGgCoOYkIJ_GI22IUZyhaxHTJ82YYnjLkt"},"recipient":{"id":"28:ac9b0c5d-8e62-4645-97cb-e7b58e726d8e","name":"MyBot"},"entities":[{"locale":"fr-CA","country":"CA","platform":"Web","type":"clientInfo"}],"channelData":{"tenant":{"id":"09823185-47c0-4fbb-83b6-532adbffc878"}},"locale":"fr-CA"}

Any help would be appreciated.
Thanks.

@rebelanger imBack action sends only a message to the bot whereas messageBack sends message and payload to the bot. Could you please try using messageBack instead of imBack action, that should give the choice selected in postback.
{       "type": "Action.Submit",       "title": "OK",       "data": {         "msteams": {           "type": "messageBack",           "value": "Get more infos"         }       }     }

@Gousia-MSFT Thanks! I wanted to use an imBack action because it doesn't reset the selected value displayed when the button is pressed. With a messageBack, the value that has been selected is replaced with the default value and the user needs to reselect it before pressing another button for instance.


Provide overview of purpose of this plugin in the readme

Is your feature request related to a problem? Please describe.
No
Describe the solution you'd like
This seems like a great plugin.  People on reddit seem to love it.  But to someone new to it, I'm not exactly sure of its purpose.
There is the description 'A lightweight LSP plugin based on Neovim's built-in LSP with a highly performant UI.'  That sounds great.  I look at the example configuration to see what it can do
one example is:
-- Go to definition
keymap("n","gd", "<cmd>Lspsaga goto_definition<CR>")

but in the main neovim lspconfig repo we have the keymap:
vim.keymap.set('n', 'gd', vim.lsp.buf.definition, bufopts)

leaving me puzzling over the best way to use this package.  Should I unset the lspconfig keybindings? What is the overlap between what this plugin does and what lspconfig does? What do they respectively do that the other doesn't? Does it use the built-in lsp client or does it do something separate like coc does?
I know that this is a big task, but some sort of summary with compare and contrast to the built in lsp client and the suggested base lspconfig would be great.
Right now the readme is kind of like the  Arch Wiki: accurate but sparse;  in contrast I find the install instructions of the Gentoo wiki to be more helpful; it does repeat itself, but it gives a lot of context and pointers to people who are just at an intermediate level and looking for context.
But don't call me ingrateful, this looks like a great plugin, thanks for writing it!

I can tell from your comment that you are new to this. nvim-lspconfig is just server configuration and doesn't provide any functionality. I am currently maintaining lspconfig. Of course, I am also doing related work in neovim as a member. .vim.lsp.buf.* is a function provided by neovim. To replace or not to replace is up to you. Have you figured out what the plugin is doing? lspsaga has been around for a long time. Many people on reddit know this plugin. I'm just releasing some version with new features

Hi! Thanks for your response.  I am indeed new to this. Forgive my imprecise language, I of course meant 'the binding of the base neovim functions as suggested in the lspconfig readme'.

lspsaga has been around for a long time. Many people on reddit know this plugin.

you may have seen this image that illustrates survivorship bias as explored by the actual work of statistician Abraham Wald.  Using the many people who have figured out your plugin might be like someone saying 'look at all these planes coming back from the war, they are so well protected!'.
I re-read the readme and now I have a better understanding now.  I just think a three to four sentence summary describing the overall motivation would provide a 90% ease of use increase to absolute beginners without being too verbose.  I remember coming across this a year ago and being completely lost.
A template for an example that can help.

A lightweight LSP plugin based on Neovim's built-in LSP with a highly performant UI. Overall the goal of this plugin is to provide a user interface that goes beyond that implemented by the functions in the module vim.lsp.buf and is easier to interact with. Right now improvements include: [list them here] .  See below for more detailed examples and suggested keybindings.  Set or unset these keybindings along with those suggested in the main nvim-lspconfig readme to suit your preferences.
This plugin also re-implements a couple of these functions [list them here], but with the advantages that [....]. I also provide a [feature] which can also be found in [x popular neovim plugin], but with [list another advantage here].

 Just getting my final thoughts out.  Ok that's all I have to say!


Remove configfilenamefiller task from ops

What this PR does / why we need it:
Which issue(s) this PR fixes:
Fixes #3168
Fixes #3169
Does this PR introduce a user-facing change?:

NONE

Nice!
/lgtm

👋 filler
/approve


Trying to set up a production site using nginx -- gulp dist failing

I am trying to put together a production plan to use this approach.  I need a production server as well as an HTTPS proxy for the backend.  Seems like nginx would be a good fit to handle this.
However, when I try to generate a static site to feed to nginx, using 'cd frontend; gulp dist' I get an error.
[18:38:26] Starting 'scripts-dist'...
stream.js:94
throw er; // Unhandled stream error in pipe.
^
Broken @import declaration of "http://fonts.googleapis.com/css?family=Open+Sans:400italic,700italic,400,700" - timeout
Am I doing something wrong or is this not working as designed?

I did some investigating and it seems that the error is coming from the 'vendor' task.  The error occurs within the es.merge() call below.  I am guessing that it is in the dist() function but I am very new to gulp.  I don't know if this helps anyone to see the issue.
gulp.task('vendors', function() {
var bowerStream = g.bowerFiles();
return es.merge(
bowerStream.pipe(g.filter('/*.css')).pipe(dist('css', 'vendors')),
bowerStream.pipe(g.filter('/*.js')).pipe(dist('js', 'vendors'))
);
});

I did some looking at the dist() function.  It sets the dest twice, so I removed the second setting and it no longer crashes.  Not sure it does what it is supposed to do, but it no longer fails.
/**

Concat, rename, minify

@param {String} ext
@param {String} name
@param {Object} opt
*/
function dist(ext, name, opt) {
opt = opt || {};

return lazypipe()
.pipe(g.concat, name + '.' + ext)
.pipe(gulp.dest, './dist')
.pipe(opt.ngAnnotate ? g.ngAnnotate : noop)
.pipe(opt.ngAnnotate ? g.rename : noop, name + '.annotated.' + ext)
.pipe(opt.ngAnnotate ? gulp.dest : noop, './dist')
.pipe(ext === 'js' ? g.uglify : g.minifyCss)
.pipe(g.rename, name + '.min.' + ext)()
//.pipe(gulp.dest, './dist')()
;
}

Duplicate with #73 closing this one.


VSVim 2.8 - Two Line Number Columns

VsVim now introduces its own relative line number. If you are seeing duplicate numbers please uninstall this extension and use the one built into VSVim.
See VSVim

Thanks for the good times with this extension!

Additionally, you need to set number and relativenumber is _vsvimrc/_vimrc. My _vsvimrc wasn't configured properly, so that disabling relatimvenumber extension ended up showing default line numbers.

maybe it's possible the relativenumber extension uninstalled improperly but:

close visual studio
ensure ~/.vsvimrc and ~/.vimrc both have set relativenumber set
re-open visual studio
each file shows regular line numbers
open a file
-- line numbers are not relative
-- enter command mode and type :set relativenumber then things appear normally
-- line numbers are now relative, but just for that file
-- open a new file and line numbers are not relative again
-re-install relativenumber extension
-close visual studio
-re-open visual studio
-now every file opens with relative numbers, but two columns worth


[ECS] Support loading PHP resources in config

This adds support of loading custom PHP resources (besides using default yaml resources).
It should allow some non-typical customization, like conditional loading of resources or something like using run-time detected path to resource, as we needed in https://github.com/lmc-eu/php-coding-standard/pull/6 .

Please add test to over this feature.
In the similar place as the factory

I thought about tests, but what scenario do you want to test? From my point of view there are two cases in the FileHashComputer - it should detect change in non-container-resource file (=> just return md5) or invalidate on change in the container (which is covered via yaml) - setup container and return its md5. And both of those cases already have a test.

@OndraM I meant test the DelegatingLoader, so we know it works for the PHP issue you have in lmc

I think about this approach and wonder - if we could make this work:
imports:
    - { resource: %kernel.root_dir%/vendor/ }

or at least
imports:
    - { resource: %currentWorkingDirectory%/vendor/ }

Wouldn't that be better to read and maintain then custom php scripts that hide logic?

@TomasVotruba For our use case this would be surely sufficient, I have nothing against closing this PR in favor of something like this.

I'm just putting the idea out to get feedback at the moment.

Continues in #741


How to correctly load sesion?

Hi, I have tried to write a script to save and load sesions, but I have checked in the app the open sesions and it keeps creating new sesions, this is my code:
const { IgApiClient } = require('/home/pi/node_modules/instagram-private-api');
const { readFile } = require('fs');
const { DateTime, Duration } = require('/home/pi/node_modules/luxon');

const { StickerBuilder } = require('/home/pi/node_modules/instagram-private-api/dist/sticker-builder');
const { promisify } = require('util');
const readFileAsync = promisify(readFile);

function sleep(ms) {
  return new Promise(resolve => setTimeout(resolve, ms));
}

const IG_USERNAME= process.argv[2];
const IG_PASSWORD= process.argv[3];
var val= process.argv[4];
var comment= process.argv[5];
var mediapp= process.argv[6];
var comentid= process.argv[7];
console.log(IG_USERNAME);

const ig = new IgApiClient();
(async () => {
  //**        hier beginnt die  LOGIN    **
  const ig = new IgApiClient();
  ig.state.generateDevice(IG_USERNAME);
  ig.request.end$.subscribe(async () => {
    const serialized = await ig.state.serialize();
    delete serialized.constants;
    const data = JSON.stringify(serialized);
    fakeSave(data);
  });
  if (fakeExists(IG_USERNAME)) {
    await ig.state.deserialize(fakeLoad(IG_USERNAME));
  }
  //await ig.qe.syncLoginExperiments(); // this will get the encryption key
  // This call will provoke request.end$ stream
  await ig.account.login(IG_USERNAME, IG_PASSWORD);
  //**        hier endet die LOGIN    **
})();

function fakeSave(data) {
  console.log(IG_USERNAME);
  fs.writeFile(`/home/pi/js/cookies/${IG_USERNAME}.json`, data, function(err, result)
    {
     if(err) console.log('error', err);
   });
  //return data;
};

function fakeExists(IG_USERNAME) {
  var myLog = (`/home/pi/js/cookies/${IG_USERNAME}.json`);
  if(fs.existsSync(myLog)){
    console.log('The file exists');
    return true;
  }
  else{
    console.log(myLog);
    console.log('The file does not exist');
    return false;
  }
}
function fakeLoad(IG_USERNAME) {
  var json = require(`/home/pi/js/cookies/${IG_USERNAME}.json`); //(with path)
  return json;
}

What do you think I am missing?

Use fs/promises instead of fs
So you'd import the functions like this: const { readFile, writeFile, access } = require('fs/promises').
For the R/W functions
Tip: Use promises.
Save
/**
 * @param {string} state The stringified state
 */
function save(state) {
  // you _can_ do some error handling but make sure to attach a catch handler
  writeFile(MY_PATH, state).catch(console.error);
}

Load
async function load() {
  const rawState = await readFile(MY_PATH);
  // you might want to wrap this in a try-catch since this can throw
  return JSON.parse(rawState);
}

Exists
function exists() {
  return access(MY_PATH).then(() => true).catch(() => false);
}

You'd then do it like this:
ig.request.end$.subscribe(async () => {
  const serialized = await ig.state.serialize();
  delete serialized.constants;
  const data = JSON.stringify(serialized);
  save(data);
});
if (await exists()) {
  await ig.state.deserialize(await load());
}

You will always login after loading the state.
Do something like this
/**
 * @returns {boolean} `true` if the session is valid/exists - `false` if the session is invalid
 */
async function tryLoadSession() {
  if (await exists()) {
    try {
      await ig.state.deserialize(await load());
      // try any request to check if the session is still valid
      await ig.account.currentUser();
      return true;
    } catch (e) {
      return false;
    }
  }
  return true;
}

// in your main function
if(!(await tryLoadSession())) {
  await ig.account.login(IG_USERNAME, IG_PASSWORD);
}

Some other things

Avoid doing something like this: require('/home/pi/node_modules/instagram-private-api').
You should instead do require('instagram-private-api'). Node will automatically resolve the location of the module (starting from your package.json and going to the global node_modules.
Avoid doing require(/home/pi/js/cookies/${IG_USERNAME}.json). This will load the json once and then cache it. So it will never observe changes to the file.

It just gets stuck on this part and won't move forward
ig.request.end$.subscribe(async () => {
  const serialized = await ig.state.serialize();
  delete serialized.constants;
  const data = JSON.stringify(serialized);
  save(data);
});

It just gets stuck on this part and won't move forward

Does it get stuck in the callback or afterwards?

Does it get stuck in the callback or afterwards?
In the callback. If you have the time some help would be useful.

In the callback. If you have the time some help would be useful.

Could you determine on which statement it stops?

It is actually being called, when the user is getting logged in if the session doesn't exist.

That's to be expected. You need to make sure you only save a valid session by for example checking for a sessionid or similar.

That's to be expected. You need to make sure you only save a valid session by for example checking for a sessionid or similar.

This might be stupid, but how ? Do i first call login and then save the session with the ig.request.end$.subscribe or what ?

This might be stupid, but how ?

As I said. Before saving, check for a sessionid or ds_user_id cookie (!!ig.state.extractCookie(<key>)) or the Authorization header (ig.state.authorization).

Do i first call login and then save the session with the ig.request.end$.subscribe or what ?

I guess you don't know what ig.request.end$.subscribe does. ig.request.end$ is basically the observable when any request the client did ended. Calling .subscribe on it will call the function every time this happens.
So you need to check for the cookie/header in the callback.
ig.request.end$.subscribe(async () => {
  if (!ig.state.something) return;
  // save
});

Just make sure you listen to the event before logging in.

It worked fine for me after a few adjustments, thanks for you help Nerixyz !

This is what i wrote.
app.get("/test", async (req, res) => {
  const ig = new IgApiClient();

  ig.state.generateDevice(username);

  ig.request.end$.subscribe(async () => {
    console.log(ig.state);
    if (!ig.state.authorization) return;
    const serialized = await ig.state.serialize();
    delete serialized.constants;
    const data = JSON.stringify(serialized);
    save(data);
  });

  if (await exists()) {
    console.log("DON'T NEED TO LOGIN AGAIN!");
    await ig.state.deserialize(await load());
  } else {
    console.log("NEED TO LOGIN AGAIN!");
    await ig.account.login(username, password);
  }
  if (loggedInUser) {
    const userFeed = ig.feed.user(loggedInUser.pk);
    const myPostsFirstPage = await userFeed.items();

    res.send(myPostsFirstPage);
  } else {
    res.send("Logged in user not found!");
  }

  res.send(400);
});

ig.state gives me this
State {
  supportedCapabilities: [
    {
      name: 'SUPPORTED_SDK_VERSIONS',
      value: '13.0,14.0,15.0,16.0,17.0,18.0,19.0,20.0,21.0,22.0,23.0,24.0,25.0,26.0,27.0,28.0,29.0,30.0,31.0,32.0,33.0,34.0,35.0,36.0,37.0,38.0,39.0,40.0,41.0,42.0,43.0,44.0,45.0,46.0,47.0,48.0,49.0,50.0,51.0,52.0,53.0,54.0,55.0,56.0,57.0,58.0,59.0,60.0,61.0,62.0,63.0,64.0,65.0,66.0'
    },
    { name: 'FACE_TRACKER_VERSION', value: 12 },
    { name: 'segmentation', value: 'segmentation_enabled' },
    { name: 'COMPRESSION', value: 'ETC2_COMPRESSION' },
    { name: 'world_tracker', value: 'world_tracker_enabled' },
    { name: 'gyroscope', value: 'gyroscope_enabled' }
  ],
  language: 'en_US',
  timezoneOffset: '7200',
  radioType: 'wifi-none',
  capabilitiesHeader: '3brTvwE=',
  connectionTypeHeader: 'WIFI',
  isLayoutRTL: false,
  euDCEnabled: undefined,
  adsOptOut: false,
  thumbnailCacheBustingValue: 1000,
  clientSessionIdLifetime: 1200000,
  pigeonSessionIdLifetime: 1200000,
  deviceString: '26/8.0.0; 420dpi; 1080x2094; samsung; SM-G965F; star2lte; samsungexynos9810',
  deviceId: 'android-7ba4127504dc86c7',
  uuid: 'd0a0d33e-1029-565e-a875-0c97fee9fc26',
  phoneId: '0c45fe78-951a-5d0d-be4f-3028e1b7178d',
  adid: '2f128d93-b9e0-5352-bff5-203b3d8d8661',
  build: 'IMM76L',
  igWWWClaim: '0',
  passwordEncryptionKeyId: '131',
  passwordEncryptionPubKey: 'LS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS0KTUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUF1bHc2WU5PRUNmb0cyTEdXRUVnbgorZGtCUDhwMnN3NjFWaEZBb0JIQ00rYi9YRWZZb0NmVm9zd0kyU0Z4OFVQanZvZmkrYjlxdVZ1Q1Rac3dEY1gvCmdkRzFWckdGV0FuWjRwR0ZLeVMyL2dyT2NWQ29IN3dnRXZwb1NKRG45b3pxemhWU2laTGFlSFhhVkk0eEVxdlcKMTdNRmI4WVFuWkVpTGJvL015ZkNIY1FnaTA1NFFsY3pYRklkK1JIaitoSDVOczRLZktyRFFqWUtpRTRCbjlxTgpCMGhWWW9KdFFvK3dQVGQvWXRtTm5SMW0rWExOSzRDRmlGTWtPcTlpM24raElzaHFsSzdyQVNtZ3IvYXlzQkozClA4VFhPU05VcVNPTVlkU1VYaVQyTzBNd3ZZNU5tZWQ0MGxZRzlKbGxOK0tMcUdUNUkvY3huWkhRSUhpR09wL2QKWHdJREFRQUIKLS0tLS1FTkQgUFVCTElDIEtFWS0tLS0tCg=='
}
State {
  supportedCapabilities: [
    {
      name: 'SUPPORTED_SDK_VERSIONS',
      value: '13.0,14.0,15.0,16.0,17.0,18.0,19.0,20.0,21.0,22.0,23.0,24.0,25.0,26.0,27.0,28.0,29.0,30.0,31.0,32.0,33.0,34.0,35.0,36.0,37.0,38.0,39.0,40.0,41.0,42.0,43.0,44.0,45.0,46.0,47.0,48.0,49.0,50.0,51.0,52.0,53.0,54.0,55.0,56.0,57.0,58.0,59.0,60.0,61.0,62.0,63.0,64.0,65.0,66.0'
    },
    { name: 'FACE_TRACKER_VERSION', value: 12 },
    { name: 'segmentation', value: 'segmentation_enabled' },
    { name: 'COMPRESSION', value: 'ETC2_COMPRESSION' },
    { name: 'world_tracker', value: 'world_tracker_enabled' },
    { name: 'gyroscope', value: 'gyroscope_enabled' }
  ],
  language: 'en_US',
  timezoneOffset: '7200',
  radioType: 'wifi-none',
  capabilitiesHeader: '3brTvwE=',
  connectionTypeHeader: 'WIFI',
  isLayoutRTL: false,
  euDCEnabled: undefined,
  adsOptOut: false,
  thumbnailCacheBustingValue: 1000,
  clientSessionIdLifetime: 1200000,
  pigeonSessionIdLifetime: 1200000,
  deviceString: '26/8.0.0; 420dpi; 1080x2094; samsung; SM-G965F; star2lte; samsungexynos9810',
  deviceId: 'android-7ba4127504dc86c7',
  uuid: 'd0a0d33e-1029-565e-a875-0c97fee9fc26',
  phoneId: '0c45fe78-951a-5d0d-be4f-3028e1b7178d',
  adid: '2f128d93-b9e0-5352-bff5-203b3d8d8661',
  build: 'IMM76L',
  igWWWClaim: 'hmac.AR2NhtsdqmKQc5VXj3eGZYTaWLSyL7EIsVm50elmu8FpuSMb',
  passwordEncryptionKeyId: '131',
  passwordEncryptionPubKey: 'LS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS0KTUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUF1bHc2WU5PRUNmb0cyTEdXRUVnbgorZGtCUDhwMnN3NjFWaEZBb0JIQ00rYi9YRWZZb0NmVm9zd0kyU0Z4OFVQanZvZmkrYjlxdVZ1Q1Rac3dEY1gvCmdkRzFWckdGV0FuWjRwR0ZLeVMyL2dyT2NWQ29IN3dnRXZwb1NKRG45b3pxemhWU2laTGFlSFhhVkk0eEVxdlcKMTdNRmI4WVFuWkVpTGJvL015ZkNIY1FnaTA1NFFsY3pYRklkK1JIaitoSDVOczRLZktyRFFqWUtpRTRCbjlxTgpCMGhWWW9KdFFvK3dQVGQvWXRtTm5SMW0rWExOSzRDRmlGTWtPcTlpM24raElzaHFsSzdyQVNtZ3IvYXlzQkozClA4VFhPU05VcVNPTVlkU1VYaVQyTzBNd3ZZNU5tZWQ0MGxZRzlKbGxOK0tMcUdUNUkvY3huWkhRSUhpR09wL2QKWHdJREFRQUIKLS0tLS1FTkQgUFVCTElDIEtFWS0tLS0tCg=='
}

The save function never gets called, I really have no idea what I'm doing wrong here.

Figured it out!
Here's a working example
app.post("/login", async (req, res) => {
  const ig = new IgApiClient();

  const { username, password } = req.body;

  ig.state.generateDevice(req.body.username);

  if (await exists(username)) {
    console.log(`${username} doesn't need to login again!`);

    const hashedPassword = await loadPassword(username);

    if (await compare(password, hashedPassword)) {
      await ig.state.deserialize(await load(username));
      await ig.user.info(ig.state.cookieUserId);
      await ig.user.info(ig.state.cookieUserId);

      const token = sign(
        {
          username: username,
        },
        process.env.TOKEN_SECRET
      );

      res.status(200).json({ token, message: "Already logged in!" });
    } else {
      // Delete the session if you want to
      // await deleteSession(username);

      res.status(401).json({ message: "Unauthrozied!" });
    }
  } else {
    console.log(`${username} needs to login again!`);

    ig.request.end$.subscribe(async () => {
      const serialized = await ig.state.serialize();
      delete serialized.constants;
      await save(req.body, JSON.stringify(serialized));
    });

    await ig.account.login(username, password);

    const token = sign(
      {
        username: username,
      },
      process.env.TOKEN_SECRET
    );

    res.status(200).json({ token, message: "Successfully logged in!" });
  }
});

@OmkoBass what are the definitions of loadPassword and compare functions?

@OmkoBass what are the definitions of loadPassword and compare functions?

It does not really matter, It just checks if Instagram account's password has been changed or not.

@OmkoBass solution doesn't wanna work for me. When I try to deserialize the data, it throws me an error - Cookie "ds_user" not found. I've mapped out all of the cookies I get an error of a ds_user cookie missing.
Code for saving the session
let lastCalled = 'none';

    ig.request.end$.subscribe(async () => {
      const serialized = await ig.state.serialize();
      delete serialized.constants;
      console.log(`Last called: ${lastCalled}\nCookies: ${JSON.parse(serialized.cookies).cookies.map(c => c.key).join(', ')}`);
    });

    lastCalled = 'simulate preLoginFlow';
    await ig.simulate.preLoginFlow();

    lastCalled = 'login';
    await ig.account.login(username, password);
    lastCalled = 'simulate postLogin';
    await ig.simulate.postLoginFlow();
    console.log('fully logged in');

And this is the output (with the duplicates removed):
Last called: simulate preLoginFlow
Cookies: csrftoken, mid
Last called: login
Cookies: csrftoken, mid, rur, ds_user_id, sessionid
Last called: simulate postLogin
Cookies: csrftoken, mid, rur, ds_user_id, sessionid, shbid, shbts
fully logged in

Code for restoring the session
const jsonData = JSON.parse(accounts.data[0].value);
console.log(`Cookies: ${JSON.parse(jsonData.cookies).cookies.map(c => c.key).join(', ')}`);
await ig.state.deserialize(jsonData);
console.log(ig.state.cookieUsername);

And the output (with DEBUG="ig:*")
Cookies: csrftoken, mid, rur, ds_user_id, sessionid
  ig:state Deserializing state of type object +0ms
  ig:state Deserializing cookies, supportedCapabilities, language, timezoneOffset, radioType, capabilitiesHeader, connectionTypeHeader, isLayoutRTL, adsOptOut, thumbnailCacheBustingValue, clientSessionIdLifetime, pigeonSessionIdLifetime, deviceString, deviceId, uuid, phoneId, adid, build, igWWWClaim, passwordEncryptionKeyId, passwordEncryptionPubKey +1ms
  ig:state Could not find ds_user +38ms
node_modules/instagram-private-api/dist/core/state.js:142
            throw new errors_1.IgCookieNotFoundError(key);
                  ^

IgCookieNotFoundError: Cookie "ds_user" not found
    at State.extractCookieValue (node_modules/instagram-private-api/dist/core/state.js:142:19)
    at State.get cookieUsername [as cookieUsername] (node_modules/instagram-private-api/dist/core/state.js:129:21)
    at index.js:25:26

I'm not sure really, I think the problem might be with the prelogin or postlogin flows since I had problems when I was using these functions. Also check if everything is saved and checked properly.


Carousel_media

Hi all,
I have a post in Instagram with multiple photos.
I need show all photos oh that post.
The type of photo is 'carousel' but the template only show the first of them.
filter: function(image) {

                console.log(image);
            },

template:' ',

In the console log, I see that image has a carousel_media property with all photos whit its url each one.
How can I show all the photos of the carousel_media?
Thanks in advance.

Hi @btoran - instafeed.js doesn't have built in support for carousel media, though that would be nice to have. For now, you can use the mock: true option and the success callback to retrieve the data and insert it into the page yourself.


Xcode Could not build module 'shared_preferences_foundation'

Is there an existing issue for this?

[X] I have searched the existing issues
[X] I have read the guide to filing a bug

Steps to reproduce
shared_preferences: ^2.2.1
Actual results
Parse Issue (Xcode): Umbrella header 'shared_preferences_foundation-umbrella.h'  not found
Parse Issue (Xcode): Could not build module 'shared_preferences_foundation'
Logs

Logs

<!-- Paste your logs here -->

Flutter Doctor output

Doctor output

<!-- Paste your output here -->

Parse Issue (Xcode): Umbrella header 'shared_preferences_foundation-umbrella.h'  not found
Parse Issue (Xcode): Could not build module 'shared_preferences_foundation'

</details>

Hi @Zqiang12345. Thanks for filing this. I tried reproducing this by creating a new flutter project, added shared_preferences: ^2.2.1 to dependencies and ran the sample code provided in https://pub.dev/packages/shared_preferences/example and couldn't reproduce this error on the latest versions of flutter. Can you try these as well to see if the issue still reproduces? Also, from the error shared, this might not be an issue with flutter as I see possible solutions in this thread, you might want to check this out as well.
If after trying these, you can still reproduce, please try to provide all or some of the information indicated in the template so that we can address this issue further.
More specifically, please provide the information indicated below:

A completed and minimal reproducible code sample
The output of flutter doctor -v
Reproduction steps

Thank you!

After upgrading the macOS version, the problem was resolved
Damilola Alimi @.***>于2023年9月4日 周一21:16写道：

Hi @Zqiang12345 https://github.com/Zqiang12345. Thanks for filing this.
I tried reproducing this by creating a new flutter project, added shared_preferences:
^2.2.1 to dependencies and ran the sample code provided in
https://pub.dev/packages/shared_preferences/example and couldn't
reproduce this error on the latest versions of flutter. Can you try these
as well to see if the issue still reproduces? Also, from the error shared,
this might not be an issue with flutter as I see possible solutions in this
thread https://developer.apple.com/forums/thread/7528, you might want
to check this out as well.
If after trying these, you can still reproduce, please try to provide all
or some of the information indicated in the template so that we can address
this issue further.
More specifically, please provide the information indicated below:

A completed and minimal reproducible code sample
https://stackoverflow.com/help/minimal-reproducible-example
The output of flutter doctor -v
Reproduction steps

Thank you!
—
Reply to this email directly, view it on GitHub
https://github.com/flutter/flutter/issues/133970#issuecomment-1705257760,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/BCKTJWJ5ZEVNPGRY3AAPVZLXYXIBBANCNFSM6AAAAAA4J6LZ6A
.
You are receiving this because you were mentioned.Message ID:
@.***>


How to become a voluntary translator of tensorflow's official website in China？

I am a postgraduate student in computer science from China and have a special passion for deep learning. Due to its high degree of flexibility and powerful computing ability, tensorflow is my most commonly used deep learning framework. I have used it to do a lot of interesting things during my graduate studies. In China, tensorflow is one of the most commonly used deep learning frameworks for developers. However, due to some reasons, tensorflow cannot be normally accessed in China, which restricts the development of tensorflow to some extent, and at the same time it widens the distance between ordinary developers and deep learning. Recently, tensorflow China's official website (tensorflow.google.cn) went online, which is a very good news for Chinese developers. Developers no longer need to use some extra ways to learn to use tensorflow.For most experienced developers in China, reading English documents is not a hindrance. However, for beginners, whether they are new to programming or planning to get started with deep learning, due to the limitation of English reading ability, they are somewhat excluded from official documents, especially English official documents.Many people can only obtain the knowledge of debris through the Baidu search enginer and cannot have a systematic understanding of tensorflow.Due to the special love for google and the worship for tensorflow's open source spirit, I wish to be a tensorflow Chinese volunteer translator.I hope that my efforts will enable Chinese developers to use tensorflow more easily and efficiently. I also hope to have the privilege of expanding tensorflow's influence in China.For the tensorflow official documentation (tensorflow.org), I basically read all the documents and I feel competent to perform this honorable duty.The only question now is how to become a voluntary translator of tensorflow's official website in China. Thanks for your reading and hope to get a reply.

Thank you for your post. We noticed you have not filled out the following field in the issue template. Could you update them if they are relevant in your case, or leave them as N/A? Thanks.
Have I written custom code
OS Platform and Distribution
TensorFlow installed from
TensorFlow version
Bazel version
CUDA/cuDNN version
GPU model and memory
Exact command to reproduce

It has been 14 days with no activity and the awaiting response label was assigned. Is this still an issue?

It has been 14 days with no activity and the awaiting response label was assigned. Is this still an issue?

It has been 14 days with no activity and the awaiting response label was assigned. Is this still an issue?

It has been 15 days with no activity and the awaiting response label was assigned. Is this still an issue?

We are closing this issue for now due to lack of activity. Please comment if this is still an issue for you. Thanks!


Timeout in pruning job

Getting logs like
2022-02-15 09:19:54,828 - root - INFO - Done downloading corpus. Contains 5964 elements.
Traceback (most recent call last):
  File "/opt/oss-fuzz/infra/cifuzz/cifuzz_combined_entrypoint.py", line 40, in <module>
    sys.exit(main())
  File "/opt/oss-fuzz/infra/cifuzz/cifuzz_combined_entrypoint.py", line 36, in main
    return run_fuzzers_entrypoint.run_fuzzers_entrypoint()
  File "/opt/oss-fuzz/infra/cifuzz/run_fuzzers_entrypoint.py", line 61, in run_fuzzers_entrypoint
    result = run_fuzzers.run_fuzzers(config)
  File "/opt/oss-fuzz/infra/cifuzz/run_fuzzers.py", line 302, in run_fuzzers
    if not fuzz_target_runner.run_fuzz_targets():
  File "/opt/oss-fuzz/infra/cifuzz/run_fuzzers.py", line 130, in run_fuzz_targets
    result = self.run_fuzz_target(target)
  File "/opt/oss-fuzz/infra/cifuzz/run_fuzzers.py", line 161, in run_fuzz_target
    result = fuzz_target_obj.prune()
  File "/opt/oss-fuzz/infra/cifuzz/fuzz_target.py", line 140, in prune
    result = engine_impl.minimize_corpus(self.target_path, [],
  File "/usr/local/lib/python3.8/dist-packages/clusterfuzz/_internal/bot/fuzzers/libFuzzer/engine.py", line 507, in minimize_corpus
    raise TimeoutError('Merging new testcases timed out\n' + result.output)
TimeoutError: Merging new testcases timed out
INFO: Running with entropic power schedule (0xFF, 100).

Increasing FUZZ_SECONDS does not seem to be enough to fix this...
But I see fuzz_seconds // fuzzers_left_to_run so maybe this fuzzer is a bit long but it should have more time than the others...

The duration should come from FUZZ_SECONDS // fuzzers_left_to_run as you mention. How long should get allocated according to your FUZZ_SECONDS and how long does it take locally to run?

Well, I am not sure which fuzz target times out in the first place.
I get
> time ./src/fuzz_predefpcap_aware -merge=1 newdir/ suricata-cfl/corpus/fuzz_predefpcap_aware/

...

MERGE-OUTER: succesfull in 1 attempt(s)
MERGE-OUTER: the control file has 1107636 bytes
MERGE-OUTER: consumed 0Mb (66Mb rss) to parse the control file
MERGE-OUTER: 2855 new files with 47996 new features added; 11297 new coverage edges

real	1m25,703s
user	1m14,068s
sys	0m7,640s

I guess the log should tell me the command which timed out and the timeout it used

I guess the log should tell me the command which timed out and the timeout it used.

Or at least a file in a corpus that triggered timeout.


CI: Update github workflow actions for checkout and cache

Node.js 16 actions are deprecated and the following warning is issued when running the workflows:
Node.js 16 actions are deprecated. Please update the following actions to use Node.js 20: actions/checkout@v3, actions/cache@v3

The these actions both have @v4 versions built on Node.js 20, and we should update our usage to clear up this deprecation warning.
Files requiring updates

[ ] https://github.com/NOAA-OWP/ngen/blob/c0b621605f4f081ea4096308b618ca9d4846fa53/.github/actions/ngen-build/action.yaml#L111
[ ] https://github.com/NOAA-OWP/ngen/blob/c0b621605f4f081ea4096308b618ca9d4846fa53/.github/workflows/documentation.yml#L23
[ ] https://github.com/NOAA-OWP/ngen/blob/c0b621605f4f081ea4096308b618ca9d4846fa53/.github/workflows/test_and_validate.yml#L34

Opened PR #772 to address this issue.

@joshkotrous thanks for the PR! It looks like that covers all the checkout actions. Still need a couple quick revisions on the cache action as well to fully clear the deprecation warning. Would you like to push a commit for that?


Add checked_* for div and mod functions

It's very easy to implement the check wrong, most people only check if denominator is 0, but not i32::MIN / -1.

There are already traits for this: https://docs.rs/num-traits/latest/num_traits/ops/checked/index.html
But if you're asking for this on Integer, I don't think there's any compatible way to add these as extra methods.

Sorry I should've been more clear, I was talking about functions like div_floor


Update Cargo.toml

The "parsing" category is for tools to make new parsers, not format-specific parsers.

Merged, thanks


frontend-assessment-3 completed hotel booking system

Drift : https://video.drift.com/v/abZ6I6wCkX4a8DCAXMDDZvmmTulkqaMAZRgjSE42FJ0p4/

Metric
Value

alert_status
:white_check_mark: OK

bugs
2

code_smells
5

reliability_rating
C (at least 1 Major Bug)Note: A being best, E being worst

security_rating
A (0 Vulnerabilities)Note: A being best, E being worst

vulnerabilities
0

The commit message's format must be proper
Work on the directory structure
Use separate files for the interfaces, constants, etc.
Modularize the code
Work on the code practices that needs to be followed
Optimize and refactor the code
Format the code properly
Go through the code smells


diff option with condense of "Change Stored Procedure(s)"

Environment
Liquibase Version: 4.9.0
Operating System Type & Version: Windows Server 2012
Description
with the diff option, the output text file contains SQL code under section : "Change Stored Procedure(s)"
Is it possible to have an option to get only a condense of procedure name which are different, without SQL code
Steps To Reproduce
List the steps to reproduce the behavior.
liquibase diff --outputFile=output.txt
Actual Behavior
Changed Stored Procedure(s) :
PROCEDURE1
"source or reference SQL code"
' to '
"target SQL code"
PROCEDURE2
"source or reference SQL code"
' to '
"target SQL code"
...
Expected/Desired Behavior
Changed Stored Procedure(s) :
PROCEDURE1
PROCEDURE2
...

This comes from this forum topic: https://forum.liquibase.org/t/liquibase-diff-get-only-procedure-name-for-better-readability/6635

This would be an enhancement request for Liquibase Pro capability.

@christophgaron Can you confirm for me that you are using Liquibase Pro? I want to make sure to direct your feature request to the right group over here. Many thanks.

Hi Kataggart,
i'm using for the moment a liquibase pro evaluation license, but my company is ordering a pro licence (in progress)
Many thanks
Christophe

Thanks @christophgaron !

@christophgaron Can you let me know who your company is so I can better direct the feature request over here? Feel free to email me directly<EMAIL_ADDRESS>Thanks!


fix: iOS hermes detection

The original regex fails to match RN's default template.
const t = `
require_relative '../node_modules/react-native/scripts/react_native_pods'
require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules'

platform :ios, '11.0'

target 'HelloWorld' do
  config = use_native_modules!

  use_react_native!(
    :path => config[:reactNativePath],
    # to enable hermes on iOS, change \`false\` to \`true\` and then install pods
    :hermes_enabled => true
  )

  target 'HelloWorldTests' do
    inherit! :complete
    # Pods for testing
  end

  # Enables Flipper.
  #
  # Note that if you have use_frameworks! enabled, Flipper will not work and
  # you should disable the next line.
  use_flipper!()

  post_install do |installer|
    react_native_post_install(installer)
    __apply_Xcode_12_5_M1_post_install_workaround(installer)
  end
end
`;

// old one
console.log(/^([^#\n]*:?hermes_enabled(\s+|\n+)?(=>|:)(\s+|\n+)?true)$/.test(t));

// fixed one
console.log(/([^#\n]*:?hermes_enabled(\s+|\n+)?(=>|:)(\s+|\n+)?true)/.test(t));

Possible related issues:
https://github.com/microsoft/react-native-code-push/issues/2342
https://github.com/microsoft/react-native-code-push/issues/2346

/azp run

Lovely, can this be a beta/alpha release? Currently i pulled the git, build it my self and merged.
This fixed a mayor issue with use together with --use-hermes.


Question: Invert EventFilter logic?

Make them permissive by default, then recommend locking them down for performance later? I know about them and they've caught me out twice...

Solving this by removing ambiguous "Default" event filters and making the names and what they do more explicit.


Integrate into existing design pattern or plugin framework

Integrating an exisiting solution could simplify the usability of simona API and potentially solve the following problems:

Removing the need for the cumbersome ExtLink-class
Allow multiple external simulations at once (there might be issues currently)

Ideas for solution can be found in the answers to this question.

[ ] Evaluate existing solutions regarding their features
[ ] Pick one solution (preferably rather lightweight)
[ ] Implement integration of solution
[ ] Implement tests

A solution using ServiceLoader was implemented by @staudtMarius.


Not work outline outside this project

Hi the outline work well if i download the project, but it will not work if I put the shaders and materials in another project, it is normal?

I just updated the README.md, I think it will help you.


Bow Character Weakspot Hits

Currently aimed shots of many bow users are assumed to hit weakspots for a guaranteed crit. Should instead set default to be to not hit the weakspot, and have to manually specify a flag for it.

Fixed by #143


Feature/oogpfa

Hello @essink! Thanks for opening this PR. We checked the lines you've touched for PEP 8 issues, and found:

In the file elephant/gpfa.py:

Line 325:80: E501 line too long (86 > 79 characters)
Line 335:21: E251 unexpected spaces around keyword / parameter equals
Line 335:23: E251 unexpected spaces around keyword / parameter equals
Line 336:21: E251 unexpected spaces around keyword / parameter equals
Line 336:23: E251 unexpected spaces around keyword / parameter equals
Line 337:20: E251 unexpected spaces around keyword / parameter equals
Line 337:22: E251 unexpected spaces around keyword / parameter equals
Line 390:80: E501 line too long (99 > 79 characters)
Line 393:80: E501 line too long (121 > 79 characters)
Line 400:80: E501 line too long (88 > 79 characters)

In the file elephant/test/test_gpfa.py:

Line 64:39: E231 missing whitespace after ','
Line 85:80: E501 line too long (84 > 79 characters)
Line 120:43: E231 missing whitespace after ','
Line 123:80: E501 line too long (93 > 79 characters)
Line 126:80: E501 line too long (89 > 79 characters)
Line 129:80: E501 line too long (116 > 79 characters)

Coverage increased (+0.2%) to 83.619% when pulling 0ec178a9d6bda53124a4f8f1b1a83ae2709e9dcf on INM-6:feature/oogpfa into 731bbe4b3e3111b58fbcdbf8ba400f988df1c440 on NeuralEnsemble:master.


Styling in navigation in gallery section

Navigation links are not looking user friendly and also the 'our services' link  width is shorter than the other bars.
I will make it look more user friendly.
Assign me this issue under GSSOC'23 contribution.

@Anupkjha2601 Please assign this issue under GSSoC'23, navigated bar styling is not looking user friendly please assign it to me, I would lilke to work on this issue..

@Anupkjha2601 Please assign this issue under GSSoC'23, navigated bar styling is not looking user friendly please assign it to me, I would lilke to work on this issue..


Feature: HTML support

How to use method html() ?

This will be addressed after #164 as we can use the same implementation

#164 got merged, you can now:
public function eventContent(): string
    {
        return <<<JS
            function({ event, timeText, isStart, isEnd, isMirror, isPast, isFuture, isToday, el, view }){
                // Write your custom implementation here
            }
        JS;
    }


actions on ElegantRL

Hello, I'm a beginner of RL.
I wonder that if we can see the actions with the ElegantRL's DRL_prediction function ?
(Return actions in [-1,0 1], just like the sb3's DRL_prediction function).
It will be helpful if someone share their idea, thanks!
Besides, I wonder that is it suitable to trade index (like DJI) as single stock with the env in plug_and_play_DRL notebook ?

See FinRL-Meta issue15.


Fix Api documetation

Fix #1682

Remove unused SubCategory field from struct TorrentRequest
Change category argument in documentation to correct c (same key as the one in Search)

Coverage decreased (-0.03%) to 39.363% when pulling 1734e7368a900fb80bab7ef754d2b09a9fe4a4fd on fixapidoc into 156ad45eac54ac672a6d445a5423ff7740744ade on dev.

Coverage decreased (-0.03%) to 39.363% when pulling 1734e7368a900fb80bab7ef754d2b09a9fe4a4fd on fixapidoc into 156ad45eac54ac672a6d445a5423ff7740744ade on dev.


Kpod stats

Add stats command to kpod.  This is currently dependent on #704 and #705

@14rcole Awesome work.

Thanks.  By the way, right now my tests only check to make sure that the stats command works with the --no-stream option.  What's the best way to test streaming?  I imagine I could run the command in the background, sleep for five seconds, then make sure the command hasn't errored out and exited before I kill it.  But that seems a bit hacky

@14rcole lint errors.

Should this still be WIP or is this ready to merge?

@mrunalp @runcom PTAL

@mrunalp @runcom This looks like it is passing the E2e, PTAL.

Looks fine now, LGTM pending tests and examples in the manpage

LGTM except the failing test.  One micro nit for consideration and as Matt noted, doc update would be awesome but not absolutely necessary if you promise to come back and get to it.

Passes tests.
@mrunalp @runcom PTAL and merge.

There is a conflict :/

LGTM


Adding PartialOrd and PartialEq traits.

Stack:

#1894 ⬅
#1895

⚠ Part of a stack created by spr. Do not merge manually using the UI - doing so may have unexpected results.


Use clang-format for Cuda

This will work properly when language-id-buffer correctly identifies Cuda. I have a separate PR on your other repo adding support for Cuda there

Excellent.
Please add ("Cuda"            . ".<the-main-cuda-filename-extension>") to the -assume-filename list. Otherwise LGTM.


I can't load fbx in 3dmax 2015 - wrong shading encoding

Left side comes from 3ds max, the right one is created via
file.read(prevFileName);
file.write(newName);

lines below 43A8 are from uint8_t footer[] static variable,

3F70 and 4278 should be created based of this part
{ "name": "Shading",
     "properties": [
          { "type": "C", "value": true }
     ]
 },

true should be represented as 'T'(54) not '.'(1)

I fixed that https://github.com/matheowis/fbx


(404) Not Found File not found usually because the image or sound at gdrive_shareable_link is not shared with<EMAIL_ADDRESS>

PROBLEM. Some sounds not showing up, but might when I<EMAIL_ADDRESS>knit them. This is because these files are not properly shared with the Google Service account<EMAIL_ADDRESS>which is the account that gets used to automatically pull images and sounds from Google Drive.
SOLUTION.

[x] Setup script to check all gdrive_shareable_link files as ben@ecoquants and invite<EMAIL_ADDRESS>where missing.

[x] Remind Carrie, Jenn et al about permissions requirement.

modal: fin whale in CINMS
https://sanctsound.ioos.us/draft/modals/cinms_fin-whales.html
Error : Client error: (404) Not Found File not found: 1lGwHMX-PC973m4UJiRG8At8VUIBv72Yh. • domain: global • reason:
notFound • message: File not found: 1lGwHMX-PC973m4UJiRG8At8VUIBv72Yh. • locationType: parameter • location: fileId
### Sights

Example Sounds
https://sanctsound.ioos.us/draft/sounds.html

Shared containing folder SoundClips - Google Drive with<EMAIL_ADDRESS>

RStudio menu: Edit > Find in Files... "File not found" in *.html:

sanctsound website content - Google Sheets

html
gdrive

https://sanctsound.ioos.us/draft/sounds.html
https://drive.google.com/file/d/1gzmvT-z- EmHlPMQGSuI0WMrX-5NqEHkv/view?usp=sharing

https://sanctsound.ioos.us/draft/ocnms_echosounders.html
https://drive.google.com/file/d/1LLImMzfP9ETKI6J146FSzFhul_0KD7S4/view?usp=sharing

https://sanctsound.ioos.us/draft/hihwnms_vessels.html
https://drive.google.com/file/d/1KoHcuCiVaM4jU9d67rZQWmm1WQZhoqDe/view?usp=sharing

https://sanctsound.ioos.us/draft/ocnms_gray-whales.html
https://drive.google.com/file/d/1Q8oiGQzi7PZX1rc_Os0eO-meFsq-rbyp/view?usp=drivesdk

https://sanctsound.ioos.us/draft/hihwnms_fish-chorus.html
https://drive.google.com/file/d/1CLRqRZwwbJgK5CwAw36pqrRLLNtvKUpt/view?usp=sharing

https://sanctsound.ioos.us/draft/cinms_wind-and-waves.html
https://drive.google.com/file/d/1c2YadtcdPEnRKXMPCjxJ7TFjDoxPWfEe/view?usp=sharing

https://sanctsound.ioos.us/draft/ocnms_blue-whales.html
https://drive.google.com/file/d/1gzmvT-z-EmHlPMQGSuI0WMrX-5NqEHkv/view?usp=sharing

rmarkdown::render("sounds.Rmd")
modal_pages %>%
    filter(modal_id %in% c(
      "ocnms_echosounders",
      "hihwnms_vessels",
      "ocnms_gray-whales",
      "hihwnms_fish-chorus",
      "cinms_wind-and-waves",
      "ocnms_blue-whales")) %>%
    pwalk(render_modal)


Fix: Pass dataset through optgroups, only add className if provided

Optgroups can accept and use datasets, but we weren't passing them back to the created-in-Combobo listbox items.
This also prevents undefined from being added as a class name.

Already merged into uC codebase; merging for parity here


Failed to load page with Selenium proxy and ResponseFilter

I run simple webDriver test with Selenium proxy and ResponseFilter:
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.Proxy;

// ...

BrowserMobProxy proxy = new BrowserMobProxyServer();
proxy.start();
proxy.addResponseFilter(new ResponseFilter() {

        @Override
        public void filterResponse(HttpResponse response, HttpMessageContents contents, HttpRequest originalRequest) {
                System.out.println("do nothing");
        }
});
Proxy seProxy = ClientUtil.createSeleniumProxy(proxy);
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(CapabilityType.PROXY, seProxy);
WebDriver driver = new FirefoxDriver(capabilities);
driver.get("http://amazon.com");

When executes this test, WebDriver instance fails to load "http://amazon.com".
The screenshot is below:

I use the latest SNAPSHOT.
<dependency>
  <groupId>net.lightbody.bmp</groupId>
  <artifactId>browsermob-core</artifactId>
  <version>2.1.0-beta-1-SNAPSHOT</version>
</dependency>
<dependency>
  <groupId>net.lightbody.bmp</groupId>
  <artifactId>browsermob-core-littleproxy</artifactId>
  <version>2.1.0-beta-1-SNAPSHOT</version>
</dependency>

This code works well if commenting out capabilities.setCapability(CapabilityType.PROXY, seProxy);.
Is there any problem in my code?

The first thing to try is to remove the browsermob-core dependency. The browsermob-core-littleproxy dependency is sufficient for using BMP+LP, and it avoids pulling in some troublesome transitive dependencies.
Second, try building your project again with mvn clean install -U. I just uploaded the latest build to the snapshot repository, and it contains some important recent bugfixes. (Assuming you are pulling in BMP from the snapshot repo. If you are building yourself, pull the latest, rebuild BMP, then rebuild your project.)
If neither of those solve your issue, can you paste the log output from your application when you run it?

Thanks for your quick replay.
I tried your first and second advices at the same time, and now it works in my environment.
Many thanks for your advice!

Glad you got it working! I'll close this issue.


Problem: pgrep in regression suite isn't supported the same on Macs and Linux

The pgrep -c flag doesn't exist on mac's pgrep. Find a cross platform way to find the PID that is supported on Macs and Linux.

Working on this.


MRIQC does not run behind "Analysis levels: participant" after starting container

Hey dear Poldracklab-Team,
I encountered a strange issue. Maybe it is, because I am new to docker and using it only for about a week.
I got MRIQC in Docker to run, when I have a folder containing only two subjects from the BIDS compatible dataset (tested with BIDS-validator). I got the reports, output created and -v shows lots of diagnostic output.
But when I tried to apply it to my whole dataset (about 1600 subjects) nothing else happens, than the output shown in the command below. I read about memory issues, when processing lots of subjects, so I also tried it using only selecting using (--participant-label) only one subject from that folder, but also there is nothing else happen like without participant-label? In each case, the log folder is created, but stays empty. It does not went further, than behind this output shown below, but if i use docker stats the processor and ram is in use? I also tested the participant-label with and without "sub-". Or adding a / to the end of my absolute paths.
The strange thing is, that it works, when there are only the two randomly copied subjects into my home directory on Ubuntu 18.04.
This is my command:
docker run -i --rm -v /media/niklas/Vierer/BIDS_clean/base_protocol/sourcedata:/data:ro -v /media/niklas/Vierer/BIDS_clean/base_protocol/mriqc:/out poldracklab/mriqc:latest /data /out participant --participant-label sub-10189
This the output:
2020-01-14 23:46:09,041 mriqc:IMPORTANT      Running MRIQC version 0.15.2rc1:       * BIDS dataset path: /data.       * Output folder: /out.       * Analysis levels: participant.
It never went further than this output, also when I wait for some hours. Using --verbose it stops at "Checking BIDS dataset..."
EDIT: This is the output today:
2020-01-15 00:29:12,647 mriqc:INFO Participant level started. Checking BIDS dataset... 2020-01-15 05:43:15,470 mriqc:CRITICAL MRIQC did not find any target image file under the given BIDS folder (/data). Please check that the dataset is BIDS valid at http://bids-standard.github.io/bids-validator/ . 2020-01-15 05:43:15,470 mriqc:WARNING The following BIDS entities were selected as filters: --participant-label sub-10189. Please, check whether their combinations are possible.
Maybe there is something going on with the BIDS dataset checking - if I copy the example subject to another folder on that drive it works again.
Is it maybe possible, that the BIDS dataset checking is only applied to the participant labels and not to the whole dataset?
Keep up your good work, when it works the outputs are awesome and deliver so much information!
Best regards,
Niklas

It seems your dataset is not valid. I do agree MRIQC should exit at that point (that's the bug), though.
Because this is a problem of a very old version, I assume the issue has been fixed. Please try the newest possible version (I'm about to release a new one) and reopen if this is still an issue.


Fix focus (ctrl+alt+F) shortcut behaviour

Previous behaviour:

If the terminal is not focused, focus the terminal
If the terminal is focused, do nothing
If the terminal is not visible, crash (issue #189)

Current behaviour:

If the terminal is not focused, focus the terminal
If the terminal is focused, return focus to last active element
If the terminal is not visible, do nothing (fix issue #189)

Is this going to get merged?  It's driving me crazy.

@ivankravets It's a good PR. 😄 I've got it in my fork and it's been working great these past weeks.
(Doesn't change #227 though.)

@ivankravets  thanks a billion!!! How long is the build + release process?  :)  I'd love to update and being using this!!!!!

@Smithx10 Done!
https://github.com/platformio/platformio-atom-ide-terminal/releases/tag/v2.5.1

w00h0000 UPDATING!@

This isn't working as expected,  cmd + alt + f focus's, cmd +alt +f doesn't return to the editor on the mac.   :(

Would be thankful if someone improves this PR. We are currently busy with upcoming release of PlatformIO IDE 2.0 and PIO Unified Debugger.

http://platformio.org/platformio-ide

@Smithx10 Do Macs handle RightAlt differently than LeftAlt?

@Smithx10 I'm experiencing the same problem! I bound ctrl-; to 'platformio-ide-terminal:focus'. It switches focus to the terminal correctly, but when I invoke it again, it does nothing at all.


How to make a histogram

How do you make a histogram chart of one attribute (column)? (without pre-calculating the histogram data before putting the data into pygwalker, of course)
I fiddled with the UI for a while but couldn't find a way.
If it's not possible right now, I'd like it to be implemented.
Thanks

Suppose you have a  field score, click the dropdown icon of the score field in the measure segment, there will be some transformations you can make, click the bin transformation option. and it create a new filed bin(score) in dimension segment.
use bin(score) as the x-axis and row count as the y-axis and you can get a histogram.
It is not a perfect enough design, I am considering making the field editable so that you can write the expression bin or other computations more easily.

Thanks for the quick response! Awesome that it's implemented already, but yeah it'd be great if you could adjust the number of bins, and also if the labels showed exactly what value ranges are (e.g. 0-20, 20-40, 40-60)

I second this, it would be very helpful to be able to select the number of bins for a histogram. I need the histogram in one of the projects I use, but can't use Pygwalker for it yet...

I have two problems with bins:

I can't find where is this setting of number of bins? how to get there?
why the histogram is not maximized by default?

Looks like I found where it is:  at the creation time of a new field.
But if I want to change the existing field - I cannot do this.


Compatibility add be_exec_version check to avoid aggregation data format changed le…

…ad core dump
Proposed changes
add be_exec_version check to avoid aggregation data format changed lead core dump
mysql [test]>select percentile(k3, 0.1) from d_table group by grouping sets((k1),()) order by 1;
ERROR 1105 (HY000): errCode = 2, detailMessage = (hk2.dev.selectdb-in.cc)[INTERNAL_ERROR]agg state data with percentile is not supported,current_be_exec_version=7, data_be_exec_version=4, need to rebuild the data or set the be_exec_version=4 in fe.conf

run buildall

run buildall

run buildall

run buildall

@HappenLee PTAL

run buildall


[Bug]: Infinity could not start after dropping index occasionally

Is there an existing issue for the same bug?

[X] I have checked the existing issues.

Branch name
main
Commit ID
bb1ab2bc65f2ca5361e327d68109564aed11558a
Other environment information
No response
Actual behavior

After dropping index, the same indexname could not be reused.
After dropping index, restart infinity, sometimes it could not be started:

[14:06:54.068] [2083521] [info] Find checkpoint max commit ts: 0
[14:06:54.068] [2083521] [info] Replay phase 2: by the max commit ts, find the entries to replay
[14:06:54.078] [2083521] [info] Checkpoint found, replay the catalog
[14:06:54.079] [2083521] [warning] Catalog file /tmp/infinity/data/catalog/META_CATALOG.0.json has wrong file name
[14:06:54.079] [2083521] [warning] Catalog file /tmp/infinity/data/catalog/CATALOG_DELTA_ENTRY.DELTA.992 has wrong file name
[14:06:54.079] [2083521] [warning] Catalog file /tmp/infinity/data/catalog/META_CATALOG.714.json has wrong file name
[14:06:54.079] [2083521] [warning] Catalog file /tmp/infinity/data/catalog/CATALOG_DELTA_ENTRY.DELTA.6 has wrong file name
[14:06:54.079] [2083521] [warning] Catalog file /tmp/infinity/data/catalog/META_CATALOG.398.json has wrong file name
[14:06:54.079] [2083521] [warning] Catalog file /tmp/infinity/data/catalog/CATALOG_DELTA_ENTRY.DELTA.954 has wrong file name
[14:06:54.079] [2083521] [warning] Catalog file /tmp/infinity/data/catalog/CATALOG_DELTA_ENTRY.DELTA.72 has wrong file name
[14:06:54.079] [2083521] [warning] Catalog file /tmp/infinity/data/catalog/CATALOG_DELTA_ENTRY.DELTA.356 has wrong file name
[14:06:54.079] [2083521] [warning] Catalog file /tmp/infinity/data/catalog/CATALOG_DELTA_ENTRY.DELTA.596 has wrong file name
[14:06:54.079] [2083521] [warning] Catalog file /tmp/infinity/data/catalog/CATALOG_DELTA_ENTRY.DELTA.296 has wrong file name
[14:06:54.079] [2083521] [warning] Catalog file /tmp/infinity/data/catalog/CATALOG_DELTA_ENTRY.DELTA.586 has wrong file name
terminate called after throwing an instance of 'infinity::UnrecoverableException@infinity_exception'
what():  Wal Replay: Parse catalog file failed, catalog_dir: /tmp/infinity/data/catalog@src/storage/wal/wal_manager.cpp:439
Expected behavior
No response
Steps to reproduce
CREATE TABLE test (id VARCHAR, title VARCHAR, text VARCHAR);
COPY test FROM 'head.jsonl' WITH (FORMAT JSONL);
CREATE INDEX index1 ON test(text) USING FULLTEXT;
DROP INDEX index1 ON test;
CREATE INDEX index1 ON test(text) USING FULLTEXT;
Index: Duplicated index name: index2 is already existed@src/planner/logical_planner.cpp:585

CREATE TABLE test (id VARCHAR, title VARCHAR, text VARCHAR);
COPY test FROM 'head.jsonl' WITH (FORMAT JSONL);
CREATE INDEX index1 ON test(text) USING FULLTEXT;
DROP INDEX index1 ON test;

Then Stop Infinity
Then Start Infinity

### Additional information

_No response_

Fixed by #921


Improve handling of GroupedMetadata (First try)

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 95.08%. Comparing base (89e3d2e) to head (fb0b6ca).
Report is 1 commits behind head on main.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@            Coverage Diff             @@
##             main      #69      +/-   ##
==========================================
+ Coverage   95.00%   95.08%   +0.08%
==========================================
  Files           2        2
  Lines         220      224       +4
  Branches       33       34       +1
==========================================
+ Hits          209      213       +4
  Misses          9        9
  Partials        2        2

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Add for AWSCostExplorer

Hello,
Great work here...
would be nice to add AWSCostExplorer not sure if this already in place.
Thanks
Requested Module or Feature
Provide a description of the new module or feature you would like.
Module Purpose
Explain the purpose of this module, including the problem it solves or specific use cases.
Desired Configuration and Usage
Outline the ideal configuration and usage examples for this module. Include any parameters, variables, or inputs you think would be useful.
Additional Context
Any additional information, references, or relevant links that could help in designing or understanding this request.

Hey @donydonald1. This is actually on my backlog of things to do for this module. Once I have some spare time I'll upgrade this module.


Sprint 4 Closure

Sprint 4 - CSSE Objectives
Fork of platformer4x:

Game level progress:
BEFORE:

AFTER:

Pull request:

Idea(s) for ending:
-Have to collect all coins to move on to the next level
-Plan to change the pipe into a portal that is planted on the wall rather than the floor
Process into creating it:
-Change code in GameEnv.js, etc to make object true
-Change the image for the pipe into the portal image
-Change the way you get teleported to the next level by moving by the x-axis rather than the y-axis
Link to Level Changes:
https://github.com/leila010/Leila_2025/issues/12
Links to GitHub Page:
Zoe:
Kian:
Mine: https://leila010.github.io/Leila_2025/blogs/
Down below follow these instructions:
Each individual will prepare final review on how they planned, coded, and prepared for live reviews during Sprint 4. They should have a page in personal blog that captures what they learned, studied, and changed in this sprint. This includes process steps, style changes, coding, commits, and mistakes. Try to highlight 3 to 5 things and be reflective.

Final Review (progress, etc)
Process of Planning:
-We created an issue to plan/brainstorm our ideas for the game.
-I and the rest of my team planned by making an issue filled with ideas and images of possible changes and possibilities to add to our game.
Coding:
-While working on this game I learned lots of coding on the way; I learned how to replace images and remove backgrounds to input into the game. I learned how to change the position of items in the game by changing the coordinates. I also have experimented with other ideas, such as how to end the game by collecting all coins.
Studied:
-I have had to study how to do multiple things in the game. For example, I had to learn how to create my branch from a repository and clone it. I also had to study how to replace images, and I have used multiple resources on how to (try) to change the ending.
Changes:
-My team and I have changed many things together and collaborated on multiple resources, such as Slack, liveshare, etc. Some changes I have personally made are the parallax background, platforms, position of coins, etc. But all together we have changed much more than that including the tokens, sprints, etc.
Mistakes:
-I have made lots of mistakes and attempts to try and change the code for the best. One of the multiple mistakes I have made is changing the ending to the game, I have tried to change the code and input the given information into the code, and with the help of AI and team members, I still haven't figured it out. At the moment we all are trying our best to crack the code.
Highlights:
-Being able to implement changes into the game
-Tried my best to change the code to a deeper level
-Collaborated to the best of my abilities with my teammates
-Learned and had lots of mistakes along the way which helped me get a better understanding of coding, etc
Summary:
-Overall I have learned and got a better understanding of lots of elements in the game and the process of it all. Now for Sprint 5, it's our goal to figure out and study how to change the ending properly.

Final Review
Planning
I brainstormed with my other team members our ideas for our changes and helped make an issue with some pictures and a little text of the ideas.
Coded/Changed
Working/trying stuff with the game definitely did help me learn more, or at least about problem shooting/fixing bugs. My task was to change the npc sprite. Although my original goal was to actually the player sprite, I discovered that changing the player sprite was more complicated and connected to more things than some of the other sprites. I could probably still learn more about it, but because of that I ended up deciding to change one of the npc sprites. It introduced me to code about frames which is something I hadn't really dealt with before and learned a bit about. I successfully changed the sprite and was able to make it so that it was touching the ground and not floating.
Studied
I learned about working together in groups and the agile process. I also learned a bit about changing sprites and user stories. I also had started looking into how to add requirements like having to collect all the coins in the level first before being able to go to the next level.
Mistakes
In trying to change things

Kian https://github.com/Kian-bloodborne/Kian_2025/issues/11


pytest-asyncio as requirement

I've tried to follow the pytest-asyncio topic evolution (https://github.com/aresponses/aresponses/issues/52)
I've seen the PR #55 was closed due to breaking compatibilities with aiohttp later on.
Is absolutely necessary to install either pytest-aiohttp or pytest-asyncio?
Is it considered in a near future to tackle this? (We would prefer not to install any test pkg if possible)
Thanks in advance

Last I checked, which was several months ago, aresponses works with either, pytest-aiohttp or pytest-asyncio.  To use an async test fixture, an event loop fixture is necessary, so yes I believe one of these must be installed.
What exact situation are you encountering? Did you see
https://github.com/aresponses/aresponses#working-with-pytest-aiohttp
and https://github.com/aresponses/aresponses/pull/57 ?


Removed moduledoc breaking build on Elixir 1.4.2

It wasn't abundantly clear what the intention of the module doc in the file was, so I left it in as a comment.

Thanks for the update


Export "holders" including delegated tokens

Provide an option to export the current set of delegated addresses. Usually, when we get token holders this is the actual set we want. Etherscan and others provide a naive balance of tokens.

Probably relies on #130

Opened https://github.com/ourzora/nouns-builder/issues/465 for this


Always use sha for sandbox image

TL;DR

Currently we use dind tag for default sandbox image but we are planing to stop publishing dind image. In that case flytectl can query the latest tag and then create the SHA tag for sandbox image
Added pre release logic
Unit test hits the limit of github, Added auth for CI

Tests
20:50:20 ➜ flytectl go run main.go sandbox start --pre
🧑🏭 Bootstrapping a brand new flyte cluster... 🔨 🔧
{"json":{"src":"start.go:206"},"level":"info","msg":"sandbox started with pre release v0.19.2-b1","ts":"2022-01-22T20:50:33+05:30"}
🐋 pulling docker image for release cr.flyte.org/flyteorg/flyte-sandbox:dind-1cac60d1d8233f48874257ca516dcc78c58b93ec
{"status":"Pulling from flyteorg/flyte-sandbox","id":"dind-1cac60d1d8233f48874257ca516dcc78c58b93ec"}

20:50:57 ➜ flytectl go run main.go sandbox start
🧑🏭 Bootstrapping a brand new flyte cluster... 🔨 🔧
{"json":{"src":"start.go:210"},"level":"info","msg":"sandbox started with release v0.19.1","ts":"2022-01-22T20:51:03+05:30"}
🐋 pulling docker image for release cr.flyte.org/flyteorg/flyte-sandbox:dind-362a3d33c56f65c3584ecdc0da48c2f149c9b075
{"status":"Pulling from flyteorg/flyte-sandbox","id":"dind-362a3d33c56f65c3584ecdc0da48c2f149c9b075"}
{"status":"Digest: sha256:9854de3d85b936d0ac7a299cf694f452bc3ad1b605d4408725d68da30b195492"}
{"status":"Status: Image is up to date for cr.flyte.org/flyteorg/flyte-sandbox:dind-362a3d33c56f65c3584ecdc0da48c2f149c9b075"}
🧑🏭 booting Flyte-sandbox container
92022-01-22T15:21:12.063341000Z Starting Docker daemon...
%2022-01-22T15:21:19.474626393Z Done.
72022-01-22T15:21:19.474673647Z Starting k3s cluster...
%2022-01-22T15:21:25.250533296Z Done.
context flyte-sandbox already exist. Overwriting it

20:53:36 ➜ flytectl go run main.go sandbox start --version=v0.19.0
🧑🏭 Bootstrapping a brand new flyte cluster... 🔨 🔧
delete existing sandbox cluster [y/n]: y
🐋 pulling docker image for release cr.flyte.org/flyteorg/flyte-sandbox:dind-1faf72e5f5ae59edb9647b2f3164271bb914e239
{"status":"Pulling from flyteorg/flyte-sandbox","id":"dind-1faf72e5f5ae59edb9647b2f3164271bb914e239"}
{"status":"Digest: sha256:5288c0bdabd80a0c1ab77526f23f2a855b60acff54e34a58d4c79474491490a2"}
{"status":"Status: Image is up to date for cr.flyte.org/flyteorg/flyte-sandbox:dind-1faf72e5f5ae59edb9647b2f3164271bb914e239"}
🧑🏭 booting Flyte-sandbox container

Type

[ ] Bug Fix
[x] Feature
[ ] Plugin

Are all requirements met?

[x] Code completed
[x] Smoke tested
[x] Unit tests added
[x] Code documentation added
[ ] Any pending items have an associated Issue

Complete description
How did you fix the bug, make the feature etc. Link to any design docs etc
Tracking Issue
https://github.com/flyteorg/flyte/issues/2080
Follow-up issue
NA
OR
https://github.com/flyteorg/flyte/issues/

Please use the UX suggestions from this comment by Haytham
https://github.com/flyteorg/flyte/issues/2080#issuecomment-1018176807
Also it would be useful to know from the logs what were the commandline params being passed.
This might be generic ask for all but found that the current sandbox start logs dont tell v0.19.0 is being used when its passed in the commandline
Similarly if we use pre-release or latest would be good to know those aswell along with usual sha that gets printed. May be we can print the tags which have this info?

@pmahindrakar-oss added changes as discussed

The test logs in the description show release being pulled even though you have passed in --preelease flag

@pmahindrakar-oss no it's correct, In case of pre release i am running pre release
{"json":{"src":"start.go:206"},"level":"info","msg":"sandbox started with pre release v0.19.2-b1","ts":"2022-01-22T20:50:33+05:30"}

@pmahindrakar-oss You can review the PR

For sha for sandbox image , I added one comment for hiding getSanboxImageSha function in the GetSandboxImage

	sha, err := githubutil.GetSandboxImageSha(version)
	if err != nil {
		return "", err
	}

	return docker.GetSandboxImage(tag), nil
	return docker.GetSandboxImage(fmt.Sprintf("dind-%s", sha)), nil

*Also while printing the log sandbox started with release to sandbox using release %s and similarly for pre-release
since sandbox hasn't started yet at this point and its just an image fetch
*Also this function looks out of place in githubutil
// IsVersionGreaterThan check version if it's greater then other
func IsVersionGreaterThan(version1, version2 string) (bool, error) {
	semanticVersion1, err := hversion.NewVersion(version1)
	if err != nil {
		return false, err
	}
	semanticVersion2, err := hversion.NewVersion(version2)
	if err != nil {
		return false, err
	}
	return semanticVersion1.GreaterThan(semanticVersion2), nil
}

This should be in versioningutil

Also avoid using global config in deep functions

	if *v.Prerelease && sandboxConfig.DefaultConfig.Prerelease {
				logger.Infof(context.Background(), "sandbox started with pre release %s", *v.TagName)
				release = v
				break
			} else if !*v.Prerelease && !sandboxConfig.DefaultConfig.Prerelease {
				logger.Infof(context.Background(), "sandbox started with release %s", *v.TagName)
				release = v
				break
			}

Pass them as function params

Also add a comment about the assumption being made that pre-release is part of the first 100 results from the ListApi for github.


Breast Cancer Prediction

This prediction model can save a lot of women from undergoing harsh cancer treatments.
I would love to help them using my ML skills, Please assign me this project.

Description
I want to do Breast Cancer Prediction.
I am a contributor to GSSoC'22. Please assign this issue to me.
Language use:
Python
؛

I forgot to mention that I am participating in GSSoC'22

Hello, Can you assign this issue to me, I have already experience in making this type of model.

No it's already there or(similar)


TM-6-TEAM-B-Privacy-Policy add WebUtil

I added a WebUtil object and added the process of clicking on the profile fragment.

great!!

good job


Separate interface for cleanup part of reconciler and Dependent Resources

More generally speaking, I would have preferred we moved the classes in a different PR so that it's easier to follow and merge other waiting PRs. That said, I've done this before as well so 🤷🏼


[Phase 1][Ballerina standard libraries] Dead code elimination report for Ballerina library modules

Description

$subject

In the first phase we will be looking into dead-code-elimination for Ballerina standard library modules.
Below are the steps required to complete dead code elimination for a standard library module:
1. Update Dependency Versions:
Update the timestamps or latest versions of dependencies in gradle.properties (refer to the “Next” tab for the relevant versions).
2. Build the Module:
Use gradle to build the standard library module. This step will generate an intermediate package, which will be used for testing.
3. Run Dead Code Elimination Command:
In the ballerina directory of the module, execute:
bash     BAL_DISABLE_HARDCODED_OPTIMIZATIONS=true <path-to-intermediate-pack>/bin/bal test --eliminate-dead-code --dead-code-elimination-report
4. Review the Report:
If errors arise, examine target/dead_code_elimination_report.json to identify any removed types. Use @ExternalDependency to mark these types as needed.
5. Verify Type and Value Creator Usage:
Review TypeCreator, ValueCreator and ErrorCreator usage in the native code. Mark any relevant Ballerina types with @ExternalDependency if they aren’t marked already.
Module list

[ ] io - @NipunaRanasinghe
[ ] java.arrays - @NipunaRanasinghe
[ ] math.vector - @ThisaruGuruge
[x] time - @TharmiganK
[x] url - @TharmiganK
[ ] xmldata - @daneshk
[ ] ldap - @Nuvindu
[ ] observe - @NipunaMadhushan
[ ] avro - @Nuvindu
[ ] constraint - @TharmiganK
[ ] crypto - @MohamedSabthar
[ ] log - @TharmiganK
[ ] os - @ThisaruGuruge
[ ] random - @aashikam
[ ] task - @RDPerera
[ ] xslt - @Nuvindu
[ ] persist - @daneshk
[ ] protobuf - @daneshk
[ ] observei - @NipunaMadhushan
[ ] cache - @NipunaRanasinghe
[ ] data.xmldata -
[ ] file - @DimuthuMadushan
[ ] uuid - @aashikam
[ ] mime - @MohamedSabthar
[ ] tcp - @DimuthuMadushan
[ ] udp - @DimuthuMadushan
[ ] ftp - Sabthar
[ ] auth - @DimuthuMadushan
[ ] data.jsondata -
[ ] data.yaml -
[ ] jwt - @ayeshLK
[ ] oauth2 - @MohamedSabthar
[ ] toml - @RDPerera
[ ] yaml - @RDPerera
[ ] mqtt - @ayeshLK
[ ] edi - @RDPerera
[ ] email - @ayeshLK
[ ] http - @TharmiganK
[ ] grpc - @daneshk
[ ] soap - @Nuvindu
[ ] websocket - @MohamedSabthar
[ ] websub - @ayeshLK
[ ] websubhub - @ayeshLK
[ ] transaction -
[ ] graphql - @ThisaruGuruge
[ ] sql - @niveathika
[ ] copybook - @MohamedSabthar
[ ] persist.sql - @lnash94
[ ] persist.redis - @lnash94
[ ] persist.inmemory - @lnash94
[ ] persist.googlesheets - @lnash94

Version
No response

The url package has no usages of ValueCreator or TypeCreator APIs. But the tests with DCE are failing due to a lang issue: https://github.com/ballerina-platform/ballerina-lang/issues/43552

The log package has no usages of TypeCreator. There are some usages of ValueCreator and ErrorCreator, but those are for tests (added via the test-utils package) and not part of the package.

This effort is currently on hold due to the following lang issue [1]
[1] - https://github.com/ballerina-platform/ballerina-lang/issues/43554

We are re-starting this efforts and the latest Ballerina lang timestamp is 2201.11.0-20241111-172200-095db58f

Tested the ldap library with the U11 timestamp for DCE and confirmed no fixes are needed. And didn't generate the library timestamp either as it is not used as a dependency for other modules.

Tested the avro library with the U11 timestamp for DCE and confirmed that no fixes are needed.

We have introduced a fix for ballerina-platform/ballerina-lang#43579.

Timestamped pack with this (and Java 21 migration) - 2201.11.0-20241125-172000-b341719a


Enable country selection on the phone number input

What:
Enable country selection on the phone number input
Why:
Closes: https://app.asana.com/0/1159164196409129/1196508164875320/f
How:
react-phone-input-2 already includes a dropdown for the country codes, however, the disableDropdown prop was set as true, by removing this prop the country selection was enabled
Media
https://www.loom.com/share/b91ff7bf0ba746449418d8a557b026df

:tada: This PR is included in version 1.0.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Add option for auto managing agents

Use case:
Automatically remove agents that have unregistered with the manager, in addition to auth/unauth.
Configuration:
Add a new agent config param autoManage as an umbrella for all the agent related actions applicable to a pool of agents.
Compatibility:
For configuration param consistency, auto_authorize has been migrated to autoAuthorize and a new autoManage param has been added to the param type.
Testing:
In addition to the current behavior, with or without the autoAuthorize functionality, the cleanup has been tested and captured on the TeamCity server side in the logs (with a macOS TeamCity agent):
$ tail logs/teamcity-server.log
[2019-08-22 23:53:15,712]   INFO -    jetbrains.buildServer.AGENT - Agent has been registered: "Default Agent" {id=1, protocol=unidirectional, host=<IP_ADDRESS>:9090, agentTypeId=2, pool=Default, registered since 2019-08-22 23:53:15.655}, not running a build
[2019-08-22 23:53:15,714]   INFO - s.buildServer.ACTIVITIES.AUDIT - agent_authorize: Agent ""Default Agent" {id=1}" was authorized with comment "ASG agent registered"
[2019-08-22 23:53:15,718]   INFO - ldServer.AGENT.PollingProtocol - Polling Agent session 'ZQnzzBH...' was created, agent: "Default Agent" {id=1}
[2019-08-22 23:53:15,842]   INFO - s.buildServer.ACTIVITIES.AUDIT - agent_authorize: Agent ""Default Agent" {id=1}" was authorized with comment "Locally installed agent is authorized by default"
[2019-08-22 23:53:38,285]   INFO - ldServer.AGENT.PollingProtocol - Polling Agent session 'ZQnzzBH...' was closed, agent: "Default Agent" {id=1}
[2019-08-22 23:53:38,288]   INFO - s.buildServer.ACTIVITIES.AUDIT - agent_unauthorize: Agent ""Default Agent" {id=1}" was unauthorized with comment "ASG agent unregistered"
[2019-08-22 23:53:38,291]   INFO -  jetbrains.buildServer.CLEANUP - Removing agent Unregistered agent "Default Agent" {id=1}
[2019-08-22 23:53:38,296]   INFO -    jetbrains.buildServer.AGENT - Agent "Default Agent" {id=1} has been unregistered. Reason: Agent has unregistered

Moved to https://github.com/mohsenrezaeithe/teamcity-agent-manager


Fixed wrong serialization/deserialization in datatype definition classes by using XmlConvert instead of int/double Parse.

Prerequisites

[x] I have written a descriptive pull-request title
[x] I have verified that there are no overlapping pull-requests open
[x] I have verified that I am following the ReqIFSharp code style guidelines
[ ] I have provided test coverage for my change (where applicable)

Description

Fixed wrong serialization/deserialization in datatype definition classes by using XmlConvert instead of int/double Parse.
Added ReadXml support for MAX-LENGTH attribute in DatatypeDefinitionString class.
Added ReadXml support for ACCURACY attribute in DatatypeDefinitionReal class.

ok, then i pull and fix myself. Will try to get a style config file in the repos soon


JSON RPC server core dump under load (note, this is not the HTTP RPC port)

With enough testing, bitsharestestnet_client will eventually crash.  It is however much more stable than it was about a month ago.  Here is the backtrace:
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Core was generated by `/home/jcalfee/bitshares/develop/programs/client/bitsharestestnet_client --data-'.
Program terminated with signal SIGBUS, Bus error.
#0  write (len=6, buf=0x1e83ca7 "{\"id\":", this=0x5f756e676344c076) at /home/jcalfee/bitshares/develop/libraries/fc/src/io/iostream.cpp:376
376	         pos += writesome( pos, len - (pos - buf) );
(gdb) bt
#0  write (len=6, buf=0x1e83ca7 "{\"id\":", this=0x5f756e676344c076) at /home/jcalfee/bitshares/develop/libraries/fc/src/io/iostream.cpp:376
#1  fc::operator<< (o=..., v=v@entry=0x1e83ca7 "{\"id\":") at /home/jcalfee/bitshares/develop/libraries/fc/src/io/iostream.cpp:193
#2  0x00000000014dd5eb in fc::rpc::detail::json_connection_impl::send_error (this=this@entry=0x3e78b50, id=..., e=...)
    at /home/jcalfee/bitshares/develop/libraries/fc/src/rpc/json_connection.cpp:55
#3  0x00000000014e138d in fc::rpc::detail::json_connection_impl::handle_message (this=0x3e78b50, obj=...) at /home/jcalfee/bitshares/develop/libraries/fc/src/rpc/json_connection.cpp:142
#4  0x00000000014e215d in operator() (__closure=0x3e701d8) at /home/jcalfee/bitshares/develop/libraries/fc/src/rpc/json_connection.cpp:207
#5  fc::detail::void_functor_run<fc::rpc::detail::json_connection_impl::read_loop()::{lambda()#1}>::run(void*, fc::detail::void_functor_run<fc::rpc::detail::json_connection_impl::read_loop()::{lambda()#1}>) (functor=0x3e701d8, prom=0x3e701d0) at /home/jcalfee/bitshares/develop/libraries/fc/include/fc/thread/task.hpp:83
#6  0x00000000009a3c03 in fc::task_base::run_impl (this=this@entry=0x3e701f0) at /home/jcalfee/bitshares/develop/libraries/fc/src/thread/task.cpp:43
#7  0x00000000009a42b5 in fc::task_base::run (this=this@entry=0x3e701f0) at /home/jcalfee/bitshares/develop/libraries/fc/src/thread/task.cpp:32
#8  0x00000000009a225e in run_next_task (this=0x3c9dae0) at /home/jcalfee/bitshares/develop/libraries/fc/src/thread/thread_d.hpp:498
#9  fc::thread_d::process_tasks (this=this@entry=0x3c9dae0) at /home/jcalfee/bitshares/develop/libraries/fc/src/thread/thread_d.hpp:547
#10 0x00000000009a24d1 in fc::thread_d::start_process_tasks (my=63560416) at /home/jcalfee/bitshares/develop/libraries/fc/src/thread/thread_d.hpp:475
#11 0x0000000001526e3e in make_fcontext ()
#12 0x0000000003c9dae0 in ?? ()
#13 0x0000000003e7afd0 in ?? ()
#14 0x0000000000000000 in ?? ()

Another core, same scenario but this crashed after send_result :
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Core was generated by `/home/jcalfee/bitshares/develop/programs/client/bitsharestestnet_client --data-'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  sgetn (__n=<optimized out>, __s=<optimized out>, this=<optimized out>) at /usr/include/c++/4.8/streambuf:358
358	      { return this->xsgetn(__s, __n); }
(gdb) bt
#0  sgetn (__n=<optimized out>, __s=<optimized out>, this=<optimized out>) at /usr/include/c++/4.8/streambuf:358
#1  fc::buffered_ostream::flush (this=0x41b8ec8) at /home/jcalfee/bitshares/develop/libraries/fc/src/io/buffered_iostream.cpp:197
#2  0x00000000014dd0f3 in fc::rpc::detail::json_connection_impl::send_result (this=this@entry=0x41ab2d0, id=..., result=...)
    at /home/jcalfee/bitshares/develop/libraries/fc/src/rpc/json_connection.cpp:47
#3  0x00000000014e0039 in fc::rpc::detail::json_connection_impl::handle_message (this=0x41ab2d0, obj=...) at /home/jcalfee/bitshares/develop/libraries/fc/src/rpc/json_connection.cpp:133
#4  0x00000000014e215d in operator() (__closure=0x41a6718) at /home/jcalfee/bitshares/develop/libraries/fc/src/rpc/json_connection.cpp:207
#5  fc::detail::void_functor_run<fc::rpc::detail::json_connection_impl::read_loop()::{lambda()#1}>::run(void*, fc::detail::void_functor_run<fc::rpc::detail::json_connection_impl::read_loop()::{lambda()#1}>) (functor=0x41a6718, prom=0x41a6710) at /home/jcalfee/bitshares/develop/libraries/fc/include/fc/thread/task.hpp:83
#6  0x00000000009a3c03 in fc::task_base::run_impl (this=this@entry=0x41a6730) at /home/jcalfee/bitshares/develop/libraries/fc/src/thread/task.cpp:43
#7  0x00000000009a42b5 in fc::task_base::run (this=this@entry=0x41a6730) at /home/jcalfee/bitshares/develop/libraries/fc/src/thread/task.cpp:32
#8  0x00000000009a225e in run_next_task (this=0x3fd3ae0) at /home/jcalfee/bitshares/develop/libraries/fc/src/thread/thread_d.hpp:498
#9  fc::thread_d::process_tasks (this=this@entry=0x3fd3ae0) at /home/jcalfee/bitshares/develop/libraries/fc/src/thread/thread_d.hpp:547
#10 0x00000000009a24d1 in fc::thread_d::start_process_tasks (my=66927328) at /home/jcalfee/bitshares/develop/libraries/fc/src/thread/thread_d.hpp:475
#11 0x0000000001526e3e in make_fcontext ()
#12 0x0000000003fd3ae0 in ?? ()
#13 0x00000000041e24a0 in ?? ()
#14 0x0000000000000000 in ?? ()
(gdb)

I think this is because the flush() wasn't being protected by the lock.  Should be fixed by https://github.com/BitShares/fc/commit/d963c6482a3ef82fb18b64ecca395ad02bc5b3d8

Something triggered a core dump when trying to log a message:
gdb bitsharestestnet_client core
...
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Core was generated by `/home/jcalfee/bitshares/develop/programs/client/bitsharestestnet_client --data-'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  __memcpy_sse2_unaligned () at ../sysdeps/x86_64/multiarch/memcpy-sse2-unaligned.S:36
36	../sysdeps/x86_64/multiarch/memcpy-sse2-unaligned.S: No such file or directory.
(gdb) bt
#0  __memcpy_sse2_unaligned () at ../sysdeps/x86_64/multiarch/memcpy-sse2-unaligned.S:36
#1  0x00007f38c0fe00d4 in std::string::append(std::string const&) () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#2  0x0000000000a47892 in operator+= (__str=..., this=<optimized out>) at /usr/include/c++/4.8/bits/basic_string.h:933
#3  fc::log_context::append_context (this=<optimized out>, s=...) at /home/jcalfee/bitshares/develop/libraries/fc/src/log/log_message.cpp:88
#4  0x0000000000a4c1f5 in fc::logger::log (this=0x7f3894df2b90, this@entry=0x6313d88, m=...) at /home/jcalfee/bitshares/develop/libraries/fc/src/log/logger.cpp:65
#5  0x000000000155f79d in fc::rpc::detail::json_connection_impl::handle_message (this=0x6313ca0, obj=...) at /home/jcalfee/bitshares/develop/libraries/fc/src/rpc/json_connection.cpp:192
#6  0x000000000156106d in operator() (__closure=0x63303f8) at /home/jcalfee/bitshares/develop/libraries/fc/src/rpc/json_connection.cpp:208
#7  fc::detail::void_functor_run<fc::rpc::detail::json_connection_impl::read_loop()::{lambda()#1}>::run(void*, fc::detail::void_functor_run<fc::rpc::detail::json_connection_impl::read_loop()::{lambda()#1}>) (functor=0x63303f8, prom=0x63303f0)
    at /home/jcalfee/bitshares/develop/libraries/fc/include/fc/thread/task.hpp:83
#8  0x00000000009e2db3 in fc::task_base::run_impl (this=this@entry=0x6330410) at /home/jcalfee/bitshares/develop/libraries/fc/src/thread/task.cpp:43
#9  0x00000000009e3465 in fc::task_base::run (this=this@entry=0x6330410) at /home/jcalfee/bitshares/develop/libraries/fc/src/thread/task.cpp:32
#10 0x00000000009e140e in run_next_task (this=0x3130c00) at /home/jcalfee/bitshares/develop/libraries/fc/src/thread/thread_d.hpp:498
#11 fc::thread_d::process_tasks (this=this@entry=0x3130c00) at /home/jcalfee/bitshares/develop/libraries/fc/src/thread/thread_d.hpp:547
#12 0x00000000009e1681 in fc::thread_d::start_process_tasks (my=51579904) at /home/jcalfee/bitshares/develop/libraries/fc/src/thread/thread_d.hpp:475
#13 0x00000000015a5d4e in make_fcontext ()
#14 0x0000000003130c00 in ?? ()
#15 0x00000000046073f0 in ?? ()
#16 0x0000000000000000 in ?? ()
(gdb)

^^ auto closed on merge into master

@jcalfee Is this still an issue in recent versions?

fixed


'PyObject_CallObject': function does not take 3 arguments

When I have installed matplotlib c++ for my project in visual studio 2019 I get this error:
the output:
1>------ Build started: Project: ConsoleApplication3, Configuration: Debug Win32 ------
1>ConsoleApplication3.cpp
1>C:\Users\matthijs\source\repos\ConsoleApplication3\packages\matplotlib-cpp.<IP_ADDRESS>\include\matplotlibcpp\imshow.h(58,21): error C2660: 'PyObject_CallObject': function does not take 3 arguments
1>C:\Users\matthijs\source\repos\ConsoleApplication3\packages\matplotlib-cpp.<IP_ADDRESS>\sandbox\include\abstract.h(363,29): message : see declaration of 'PyObject_CallObject'
1>C:\Users\matthijs\source\repos\ConsoleApplication3\packages\matplotlib-cpp.<IP_ADDRESS>\include\matplotlibcpp\imshow.h(58,40): message : 'PyObject_CallObject': function declaration must be available as none of the arguments depend on a template parameter
1>Done building project "ConsoleApplication3.vcxproj" -- FAILED.
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

and the error:

Severity	Code	Description	Project	File	Line	Suppression State	Suppression State
Error	C2660	'PyObject_CallObject': function does not take 3 arguments	ConsoleApplication3	C:\Users\matthijs\source\repos\ConsoleApplication3\packages\matplotlib-cpp.<IP_ADDRESS>\include\matplotlibcpp\imshow.h	58

how to fix this?
I used nuget to install the lasted version
edit:
the error happens here:
PyObject* res = PyObject_CallObject(detail::_interpreter::get().s_python_function_imshow, plot_args, kwargs);
I have a windows 10 laptop and I use python 3.7

How did you solve the error? I am having a similar issue

Did anybody , was able to fix the above issue, I am also getting the same issue
\matplotlib-cpp.<IP_ADDRESS>\include\matplotlibcpp\imshow.h(58,21): error C2660: 'PyObject_CallObject': function does not take 3 arguments

I had the same error, changing PyObject_CallObject to PyObject_Call fixed it.
kwargs is a dict and plot_args is a tuple so based on https://docs.python.org/3/c-api/call.html#object-calling-api the new call should be the correct one.


can't toggle on/off individual identities

There's no error in the UI and the toggle off seems to succeed but the identity is still enabled if I close the UI and return to list of identities.
This may be a known issue with ziti-edge-tunnel on_off_identity mentioned in issue https://github.com/openziti/ziti-tunnel-sdk-c/issues/493

This was probably not implemented at the time of the comment, it is working now, or at least should be .

I pulled latest and got<EMAIL_ADDRESS>and in this version I'm still not able to toggle identities. I've only tried to activate the one inactive identity I have.


Implementing checksum

Have there been any thoughts how checksum should be implemented.
Or more correctly how inconsistencies with sequence number or checksum should be handled / reported?
Code below works, but leaves a few things to be desired in regards to feedback.
diff --git a/Registry/RegistryParse.py b/Registry/RegistryParse.py
index e5e9a56..d2a0b9f 100644
--- a/Registry/RegistryParse.py
+++ b/Registry/RegistryParse.py
@@ -243,9 +243,21 @@ class REGFBlock(RegistryBlock):

         if _seq1 != _seq2:
             # the registry was not synchronized
+            print("Sequence counters is out of sync %s %s" % (_seq1, _seq2))
             pass

-        # TODO: compute checksum and check
+        # compute checksum and check
+        _ssum = self.stored_checksum()
+        _csum = self.calculate_checksum()
+        if _ssum != _csum:
+            print("Checksum 0x%x do not match calculated 0x%x" % (_ssum, _csum))
+            pass

     def major_version(self):
         """
@@ -273,6 +291,27 @@ class REGFBlock(RegistryBlock):
         """
         return self.unpack_dword(0x28)

+    def stored_checksum(self):
+        """
+        Get the stored checksum in file.
+        """
+        return self.unpack_dword(0x1FC)
+
+    def calculate_checksum(self):
+        """
+        checksum is calculated over the first 0x200 bytes
+        XOR of all D-Words from 0x00000000 to 0x000001FB
+        """
+        csum = 0
+        idx = 0x0
+        while idx <= 0x1FB: # 0x1FC includes the checksum value and should result in zero
+            _csum = self.unpack_dword(idx)
+            #print("add 0x%08x to 0x%8x at 0x%8x gives 0x%8x" % (_csum, csum, idx, csum ^ _csum))
+            csum ^= _csum
+            idx += 0x4
+
+        return csum
+
     def first_key(self):
         first_hbin = next(self.hbins())

This is good. To be honest, when I was doing the initial dev, the documentation I had didn't describe the checksum, so I didn't implement it. Your implementation is clear, and I'd be happy to merge it.
I think we'd better not error during construction, since it might be desirable to do a best effort parse of the hive. Instead, I recommend a validate_checksum() method that returns True/False if the match/conflict. Then, probably add a validate() method that both calls validate_checksum() and compares the sequence numbers. Would you be willing to submit a PR with these changes?
Thanks again for reporting this issue and suggesting a fix!

Will implement and create a PR for
validate() that calls validate_checksum() and validate_sequence()
it will also expose the appropriate fields


⚠ LabBricks has degraded performance

In 6de635f, LabBricks (https://labbricks.com) experienced degraded performance:

HTTP code: 200
Response time: 3022 ms

Resolved: LabBricks performance has improved in 9b5a7f3 after 12 minutes.