feat: don't load all list items before returning a batch

Previously we were requiring that all items referenced by a page of offsets be loaded before any batches were returned.  This can be a problem when a list offsets page has many rows (e.g. a million) spread across many list item pages (hundreds).  In this case we can start emitting batches as soon as the first item page(s) have loaded.  That is what this PR does.

Leaving in draft since this is built on top of #2255

Codecov Report
Attention: Patch coverage is 84.11054% with 92 lines in your changes are missing coverage. Please review.

Project coverage is 81.20%. Comparing base (fb43192) to head (4e5dd9f).
Report is 2 commits behind head on main.

Files
Patch %
Lines

rust/lance-encoding/src/encodings/logical/list.rs
84.33%
65 Missing and 8 partials :warning:

.../lance-encoding/src/encodings/logical/primitive.rs
80.39%
10 Missing :warning:

rust/lance-encoding/src/testing.rs
73.91%
6 Missing :warning:

rust/lance-encoding/src/decoder.rs
92.30%
3 Missing :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #2262      +/-   ##
==========================================
+ Coverage   81.17%   81.20%   +0.02%
==========================================
  Files         187      187
  Lines       54598    55077     +479
  Branches    54598    55077     +479
==========================================
+ Hits        44319    44723     +404
- Misses       7784     7851      +67
- Partials     2495     2503       +8

Flag
Coverage Δ

unittests
81.20% <84.11%> (+0.02%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.

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

In the case where user requires a fixed batch size to return (i.e., during ML training), do we expect to concat data in higher level?

No.  When a smaller batch is returned it is because it is impossible to represent the larger batch.  If the user want's a batch where column x is binary then we cannot return a batch with more than 2GiB of binary data.
If a user needs a fixed size batch then they will either need to use a smaller batch size or they will need to use the large_binary data type.
We could potentially add an option min_size_batch or a flag allow_runt_batches to convert this situation into an error instead of a runt batch.

No. When a smaller batch is returned it is because it is impossible to represent the larger batch. If the user want's a batch where column x is binary then we cannot return a batch with more than 2GiB of binary data.

I see. Actually, say if the binary is the video, and we have open_blob API, that might be fine. Because then the reader can decode frames in the video without loading everything in memory.
Usually these modal works is preparing a batch of tensors, with fixed size, so that the modal will always see the same amount of data in each interaction. Smaller batch means the batch is either dropped, or filled with zeros (which introduce errors).
But for the not-that-huge datasets, i.e., image datasets, this will be a requirement that each batch has the same shape (from tf.data or torch.Tensor).

Usually these modal works is preparing a batch of tensors, with fixed size, so that the modal will always see the same amount of data in each interaction. Smaller batch means the batch is either dropped, or filled with zeros (which introduce errors).
But for the not-that-huge datasets, i.e., image datasets, this will be a requirement that each batch has the same shape (from tf.data or torch.Tensor).

Perhaps the default should be to error then and allowing runts can be a flag that is opted into.  As long as the error message is clear I think users can handle it (switch to large binary or switch to smaller batch size)
We should also allow users to request large_binary even if the underlying column type is binary.
In fact, it would be ideal if binary and large_binary were an implementation detail (some batches use binary and others use large_binary) given that both types will just be converted into torch tensors anyways but I think this is an unavoidable fact of Arrow (e.g. record batch reader expects a fixed schema).

I see. Actually, say if the binary is the video, and we have open_blob API, that might be fine. Because then the reader can decode frames in the video without loading everything in memory.

Something we can maybe do (even without full blob support) is to allow the open_blob API to work on non-blob columns (e.g. load binary data as file objects even though the data itself is in a data file).


How to uninstall

In what folder does PimpMyStremio download data so I can delete it?
I'm on MacOS.

how do i fully uninstall PimpMyStremio from my mac?

Hi but I can't find ~/Library/Preferences/PimpMyStremio folder. I have the app but not the content files for the folder? Not sure what happened

I might be useless here, but for anyone searching on Google who found this: on Windows, it installs in the Roaming AppData folder. You can also use 'Everything Search'.

I might be useless here, but for anyone searching on Google who found this: on Windows, it installs in the Roaming AppData folder. You can also use 'Everything Search'.


Unsigned iOS app Push Notification Requirement

Submit feature requests to http://www.mattermost.org/feature-requests/. File non-security related bugs here in the following format:
Summary
Issue in one concise sentence.
Environment Information

Device Name: iPhone 12 Pro/iPad Pro 2018
OS Version: 14.3 / 14.3
Mattermost App Version: Mattermost Enterprise Edition 1.38.1(build 338)
Mattermost Server Version: 5.28.0(build 5.28.)

Steps to reproduce
I have singed the unsigned app available after following https://developers.mattermost.com/contribute/mobile/unsigned/ios/
and set up push notification as per https://developers.mattermost.com/contribute/mobile/push-notifications/ios/
Expected behavior
Push notification between 2 users/devices
Observed behavior
No push notification received.
Error from logs
INFO: 2020/12/30 12:46:09 logger.go:59: Sending apple push notification for device=apple_rn and type=message
INFO: 2020/12/30 12:46:09 logger.go:59: Failed to send apple push sending remove code res ApnsID=302368E4-4DE8-DB88-139B-80FE0CB486DC reason=BadDeviceToken code=400 type=apple_rn
Possible fixes
Can you elaborate, how to use push notification on unsigned apps please?

Same issue here - @techyyz did you find the source of the problem?

was this issue resolved on you guys end or no?

@GabrielAlexandru47 @techyyz do let me know if you solved this issue or not.

@MuhammadQasim1122 Yes, this was resolved.


Accepted answer error

This accepts [0, 1, 2, 3, 4] as a correct answer, when it should be [20, 21, 22, 24, 24]

Why do you think the answer is [20, 21, 22, 24, 24]?

Why do you think the answer is [20, 21, 22, 24, 24]?

@RandellDawson The result in the second capture

Why do you think the answer is [20, 21, 22, 24, 24]?

@RandellDawson Ok my bad It asked for the value of "a"

Glad you figured it out.
In the future, please use our forum for debugging the code of your projects.  If the forum members determine there is nothing wrong with your code, you can feel free to create an issue.  In general, GitHub issues are meant for reporting bugs and not necessarily for troubleshooting the code in your projects.
Thank you for understanding.

Glad you figured it out.
In the future, please use our forum for debugging the code of your projects. If the forum members determine there is nothing wrong with your code, you can feel free to create an issue. In general, GitHub issues are meant for reporting bugs and not necessarily for troubleshooting the code in your projects.
Thank you for understanding.

Fair enough Thank you


Migration Log

This is an auto-generated issue. The migration log is in the following comment(s).

Log Chunk 1
[2024-05-20T07:33:04Z] INFO -- Migration started by shubhajyoti-bagchi-groww from https://github.com/GrowwOld/grafana-rbac-controller to Groww-OSS/grafana-rbac-controller
[2024-05-20T07:33:04Z] INFO -- Migration ID: 2a374848-6a9c-4c3c-97b5-3e61d0afe5a2
[2024-05-20T07:33:04Z] INFO -- -----------------------------
[2024-05-20T07:33:04Z] INFO -- Git source migration started
[2024-05-20T07:37:15Z] INFO -- Git source migration completed
[2024-05-20T07:37:15Z] INFO -- -----------------------------
[2024-05-20T07:37:15Z] INFO -- Extraction started
[2024-05-20T07:37:21Z] INFO -- Extraction complete
[2024-05-20T07:37:21Z] INFO -- -----------------------------
[2024-05-20T07:37:21Z] INFO -- Transformation started
[2024-05-20T07:37:27Z] INFO -- Transformation complete
[2024-05-20T07:37:27Z] INFO -- -----------------------------
[2024-05-20T07:37:27Z] INFO -- Import started
[2024-05-20T07:37:28Z] WARN -- 'Allow Forking' setting could not be enabled for the repository because it is not enabled at the organization level.
[2024-05-20T07:37:28Z] WARN -- LoadProtectedBranchJob: Protected Branch for branch name main could not be imported.
[2024-05-20T07:37:44Z] INFO -- Import complete
[2024-05-20T07:37:44Z] INFO -- -----------------------------
[2024-05-20T07:37:44Z] INFO -- Migration complete
[2024-05-20T07:37:44Z] INFO -- -----------------------------


Load image from GFS

Hello guys
I use superagent and I do like it. But despite the fact I spend the last days on the documentation, I am facing a problem that I do not succeed to resolve
I make a request to load an image inside react-dropzone
Here is my request inside a react component

  loadImage(){
request.get('https://localhost:3000/' + 'api' +'/banner'+ this.props.path )
    .set({'Authorization': 'Bearer ' + Auth.getToken()})
      .then((res, err) => {
        if (err) {
          console.log(err)
        }
        console.log(res.status)
        if (res) {
          //  this.state.universities=

          console.log(res)

          var buf2 = new Buffer( res.text).toString('base64');
          console.log(buf2)
         var img = new Image();
          img.src = "data:image/png;base64," +  buf2 ;
          img.class='content';
          this.state.file=img
        }
  })}

I do a post when I drop a file and I succeed, but I do not understand how to get the image from my API. I did spend a lot of time taking my hairs out of my head.
Here is my rest API

router.get('/banner/admin/university/:id', (req, res) => {
//TODO improve it
console.log('--------------get the banner --------------')

  University.findById(req.params.id, function (err, uni) {

    var readstream = gfs.createReadStream({_id: uni.banner});

    readstream.on("error", function(err){
      console.log(err)
      res.send("No image found with that title");
    });
    readstream.pipe(res);
  })

})

Is there something I am missing ?
I get the data inside the res.text, but it is not readable. How can I put it as a file ? If you consider this not as an issue but as a newbie question, where can I get the right help about it ?
Best regards,
Arn

The server is probably sending the response as text. It is essential that the server is configured to send the correct Content-Type header. Without this superagent doesn't know that you've wanted to load an image.

Hei.
Okay. I added  res.set('content-type','image/png') into the server side
´´´javascript
router.get('/banner/admin/university/:id', (req, res) => {
//TODO improve it
console.log('--------------get the banner --------------')
University.findById(req.params.id, function (err, uni) {
var readstream = gfs.createReadStream({_id: uni.banner});

readstream.on("error", function(err){
  console.log(err)
  res.send("No image found with that title");
});

res.set('content-type', 'image/png')
readstream.pipe(res);

})
})
´´´
But I still get the data into the res.text. How should I write superagent request to get the image ?
Best regards,
Arn

Make sure it actually worked. Verify with curl -I <url>.
You'll get Buffer or Blob in res.body if this content-type is set.

Hey :)
I read your answer after I succeed :
First : I use server side
´´´javascript
readstream.on('close', function () {
const fbuf = Buffer.concat(bufs);
const base64 = fbuf.toString('base64');
console.log(base64);
return res.status(200).json({
message: 'You have got the image',
image: base64,
file: file
})
//  ss(socket).emit('file-uploaded',     base64,file);
});
´´´
Client side
´´´javascript
fixBinary (bin) {
var length = bin.length;
var buf = new ArrayBuffer(length);
var arr = new Uint8Array(buf);
for (var i = 0; i < length; i++) {
arr[i] = bin.charCodeAt(i);
}
return buf;
}
loadImage(){
//TODO make a single component for loading single image
var file = null;
request.get('https://localhost:3000/' + 'api' +'/banner'+ this.props.path )
.set({'Authorization': 'Bearer ' + Auth.getToken()})
.then((res, err) => {
if (err) {
console.log(err)
}
console.log(res.status)
if (res) {
var binary = this.fixBinary(atob(res.body.image));
var blob = new Blob([binary], {type: res.body.file.contentType});
var url = URL.createObjectURL(blob);
file = res.body.file
file.preview = url
//  this.state.universities=
console.log(res)
//  this.state.file=res.body.file
      this.setState({
   file : res.body.file
      })
    }

})
}
´´´
It is working but think I can improve it a lot, can I ?

Eww, you should never need base64 here.
Please show me response headers from your server. I'm 99% sure that you just didn't set the content-type header properly (perhaps different endpoint needs it, perhaps it's proxied through something that breaks it).
In case your server can't be fixed, then use this:
            .buffer(true)
            .parse(superagent.parse.image)

to force every response, even text or JSON, to be interpreted as an image.

ok
here is the response
´´´json
headers
:
Object
content-length
:
"97541"
content-type
:
"application/json; charset=utf-8"
etag
:
"W/"17d05-99eV0mWYPfFRgmChfU8NAKdct0o""
status
:
"200"
x-powered-by
:
"Express"
´´´

Well, there you go: your server says it's sending JSON ("application/json; charset=utf-8"), not an image. If you fix that, then reading of images will work without a workaround.

Okay, I will try to fix this. I will keep you updated.

Hei.
Okay I tried this :
    .buffer(true)
        .set({'Content-type': this.props.university.banner.contentType})
        .parse(request.parse.image)

inside the superagent request.
I also tried in express
res.set({'Content-type': uni.banner.contentType})

Okay :
I did this .
request.get('https://localhost:3000/public' + this.props.location.pathname+'/banner')
        .buffer(true)
        .set({'Content-Type': this.props.university.banner.contentType})
        .parse(request.parse.image)
        .then((res, err) => {
          if (err) {
            console.log(err)
          }
          console.log(res.status)

Here is the request result :
eq
:
Request
header
:
Object
Content-Type
:
"image/jpeg"
__proto__
:
Object
method
:
"GET"
url
:
"https://localhost:3000/public/university/598ab55a694d261852bf6bab/banner"
xhr
:
XMLHttpRequest

Here is the Response header(s)
header
:
Object
content-type
:
null
status
:
"200"
x-powered-by
:
"Express"
__proto__
:
Object
headers
:
Object
content-type
:
null
status
:
"200"
x-powered-by
:
"Express"

Here is the server side express code :
 var readstream = gfs.createReadStream({'_id': uni.banner})

    readstream.on('error', function (err) {
      console.log(err)
      res.send('No image found with that title')
    })
    readstream.pipe(res)
  })

I think you are right and something is breaking the headers. I am using
const http2 = require('spdy') to run the server but I dont think it comes from this.
Best regards
Arn

Hello.
I added this on the server side
  const fbuf = Buffer.concat(bufs)
          res.setHeader("Content-Type", file.contentType);
          res.setHeader('Content-Length', file.chunkSize);
          res.setHeader('Content-Disposition', 'attachment; filename='+file.filename+'');
          res.write(fbuf,  'binary');
          res.end();

The headers is now
Object
content-disposition
:
"attachment; filename=moldeuniversity.jpg"
content-length
:
"261120"
content-type
:
"image/jpeg"
status
:
"200"
x-powered-by
:
"Express"

SO, how should I write the code with superagent to get the image as a file ?

Okay I solved everything. ( I wanted to do more complicated than necessary ... )
here is the explanation
Serverside :
University.findById(req.params.id, function (err, uni) {
    if (err) {
      return res.status(409).json({
        success: false,
        message: 'error on getting the university'
      })
    }
    gfs.findOne({ _id: uni.banner}, function (err, file) {
      console.log(file)
      if (err) {
      }
      if (file) {
        const readstream = gfs.createReadStream({
          _id: uni.banner
        })

        const bufs = []
        readstream.on('data', function (chunk) {
          bufs.push(chunk)
        })
        readstream.on('error', function (err) {
          console.log(err)
          res.send('No image found with that title')
        })

        readstream.on('close', function () {
          /*
          const fbuf = Buffer.concat(bufs)
          const base64 = fbuf.toString('base64')
*/
          const fbuf = Buffer.concat(bufs)

          var img = new Buffer(fbuf, 'base64');

          res.writeHead(200, {
            'Content-Type': 'image/png',
            'Content-Length': img.length
          });
          res.end(img);

        })

      }
    })

Client side
```javascript
     file.url = 'https://localhost:3000/public' + this.props.location.pathname+'/banner'

I didnt need to use superagent to request the image. Just an Url. I do not know why I didnt think about this before.
Thank for helping me a lot with the header thing !

You should be able to simplify the server code even further with:
res.type('image/png');
readstream.pipe(res);

You don't need bufs and the associated code. .pipe() will do that for
you.

Haa thank you.
it is working !! :+1:


[GHSA-fwr7-v2mv-hh25] Prototype Pollution in async

Updates

Affected products
Description

I followed the example from https://github.com/advisories/GHSA-3hjg-vc7r-rcrw to describe fixes in multiple major versions

Thank you adding language that clarifies which versions are vulnerable and which are fixed.


build: drop node 14.x

completed here - https://github.com/sourcetoad/react-native-queue/commit/7b442b96d6859ae52857f78c7d4c656202839c67


DELIA-47718,DELIA-47718 fixed

Reason for change: Pushing the changes to Main branch
Test Procedure: sanity test
Risks: None
Signed-off-by<EMAIL_ADDRESS>

@MManja792 @anand-ky this wasn't merged into the sprint branch, why?

@MManja792 - Pls bring it to 2203 sprint also.


Parrot is not capturing audio coming from user's microphone

Parrot is not capturing audio coming from user's microphone.
Tested on MacOS Sonoma and a Google Meet call.

Asked a question on https://groups.google.com/a/chromium.org/g/chromium-extensions/c/HjdXCauoRK8


Redirect doesn't occur after pressing 'Enter' in search textbox on http://google.com

I expect that after pressing 'Enter' the redirect to search results page occured.
But it did not happen - video
Test for reproduce:
import { ClientFunction } from './lib';
import assert from 'assert';

fixture `Google`
    .page('https://www.google.ru');

test('test1', async t => {
    const getTitle = ClientFunction(() => document.title);

    await t.typeText('#lst-ib', 'mail.ru')
           .pressKey('enter')
           .wait(5000);

    const pageTitle = await getTitle();
    assert(pageTitle.startsWith('mail.ru'));
});

It works properly now (tested in Chrome, FF, IE11)


Data sanity checks for EIA 860

For each of the EIA 860 data tables, we need to create a suite of data validity tests -- at least high level sanity checks -- that can be run to ensure nothing weird has happened that's affected the content of the dataset. These can include checking for excessive outlier values, ensuring that median values are within an expected range, etc. See the test_fbp_ferc1() function for some examples.
Output tables that should be sanity checked include:

[ ] plants_eia860
[ ] utils_eia860
[ ] pu_eia860
[ ] gens_eia860
[ ] bga_eia860
[x] own_eia860

I found lots of duplicate plant/generators in boiler_generator_assn_eia860, especially among combined cycle plants. For example, the results from
SELECT * FROM boiler_generator_assn_eia860
WHERE plant_id_eia = 117
AND DATE_PART('year', report_date)=2017

include

In this case many generators are listed with 2 different boilers. Not sure if this is the expected behavior but I didn't anticipate it. I merged this in with the 860 generator data so that I could get heat rates by unit and capacity by unit (where possible). As a result the merged dataframes included many duplicate generator lines and my total capacity for each unit was significantly inflated.

@cmgosnell can probably speak to this more authoritatively, but I believe this is the expected behavior.  The real inseparable generation units, in which the fuel input and electricity output are intermingled and inseparable (insofar as the data is available from EIA), are the unit_id_pudl values. So this pant has 5 total units, 2 of which are combined cycle. I think the large number of different combinations is probably a result of the combined cycle cases where the "boiler" and "generator" are really the same thing, and the generator_id values are also getting added into the list of boiler_id values.
This particular table isn't meant so much for direct use, as it is meant to provide information about the association / separability of the generation units for the purposes of calculating heat rates, attirbuting fuel costs, etc. You probably only ever want to merge this table with another one using plant_id_eia and one of either generator_id or boiler_id with the intention of pulling in the unit_id_pudl that is associated with that boiler, or that generator.

Okay, I'm going to close this issue because we finished a preliminary round of sanity checks for 860. I'm making a lot of comments below to respond to @zaneselvans 's questions.

[ ] plants_eia860

zip_code being treated as integers, when it needs to be a string to preserve (meaningful) leading zeroes.

Should be straightforward to fix. Made Issue #404.

iso_rto_name seems... wrong. It's Y/N/None, not a name. If these values are the right ones then it should be a boolean, not a string (True/False/NA).

We never cleaned up this column/transitioned it to a true boolean.

grid_voltage_kv is sometimes NaN when grid_voltage_2_kv` has a value. Seems like an error -- maybe harvesting process overwrote the first one b/c it wasn't consistent enough?

It is almost certainly the harvesting of grid_voltage_kv (which is much much more reported than the grid_voltage_n_kv records),

primary_purpose_naics_id and sector_id are really integers, but are getting turned into floats because of some NaN values. Should be made into ExtensionArray types at some point (nullable integers)

I made a new issue to deal with this (Issue  #403)

Many columns using None as the NA value. Is that correct? Lots of them are boolean or string type columns.

^ samezies

transmission_distribution_owner_id is an integer, turning into float b/c of missing values.

^ samezies

utility_id_eia missing from many entries. Seems wrong.

That does seem odd.

plant_id_pudl and utility_id_pudl turning into floats because of missing values.

^ samezies

[ ] utils_eia860

Some utilities have NA for util_id_pudl which is turning the column into floats, when it should be integers -- also, should we not be assigning a PUDL utility ID to every utility in the id_mapping process?

^ samezies on null values, and we do not require all EIA utilities to have a util_id_pudl. FERC utilities need id's because they don't really have anything better, but we don't require EIA id's. Also, we made id's for 923 utilities, not 860 (which is the much more extensive collection, but includes many many more tiny utilities).

Some utility_name fields are None ??

This is a harvested field, so when it is inconsistent, this happens.

Zip codes are being interpreted as integers, which means leading zeroes are lost, making them invalid. I think zip codes need to be treated as strings.

I fixed this!

entity_type is an inscrutable code.

Yes, yes it is. We didn't really clean this column.

[ ] gens_eia860

summer_estimated_capability_mw uses None as NA value, instead of NaN (but it's a numeric field).
Compare summer_capacity_mw, winter_capacity_mw and capacity_mw to see if they're the same / similar.
ownership_code is  mysterious. Can we make them readable?

Mkay, samzies again on the null values. And the ownership_code is another field that we haven't yet touched or cleaned.

[ ] bga_eia860

Is there some kind of testing that we should be doing here to ensure that there are no incompatibilities in the grouping of PUDL unit IDs and EIA unit IDs? There's a warning that comes up during the ETL process that gets at this issue. Seems like it should go here too (or maybe, instead).

This would be a little tricky because we are not storing/keeping the consistency columns to do this test after the fact. I'm sure it is possible but we would have to get a little creative to interpret  which entities have consistent records.

[ ] own_eia860

zip_code field is integer, losing leading zeroes.

addressed above ( Issue #404.)

Is there a foreign key relationship between owner and utility tables? They use the same IDs I think.

I've never investigated this. I would assume this is true but I actually don't know.

Already checking that the ownership proportions add up to ~100%.

whoop


[AVRO-4084][C++] Fix bad filesystem::path conversion type on windows

AVRO-4084

What is the purpose of the change
This pull request fixes windows compilation test error on std::filesystem::path fixing AVRO-4084.
Verifying this change
This change is already covered by existing test \lang\c++\test\CommonsSchemasTests.cc.
Documentation

Does this pull request introduce a new feature? (no)

Thank you, @glywk !


Windows portable has malware according to windows defender & fortinet

⚠ Please verify that this bug has NOT been raised before.

[X] I checked and didn't find similar issue

🛡 Security Policy

[X] I agree to have read this project Security Policy

📝 Describe your problem
I tried to download and install the .zip version of uptime-kuma but I get warnings from microsoft and fortinet that it is not safe to download this zip.
Could you please investigate and repack if needed?
https://www.virustotal.com/gui/url/428902b85893f7e3a4773e5eedcec733e98065eea289b477ce05d9a3a96614ad/detection
📝 Error Message(s) or Log
1 security vendor flagged this URL as malicious
🐻 Uptime-Kuma Version
1.21.0
💻 Operating System and Arch
Windows 11
🌐 Browser
Google Chrome latest
🐋 Docker Version
No response
🟩 NodeJS Version
No response

Duplicate of #3142


demo's: boxes: character set not supported

When I try to run the demo 'boxes' I get character set not supported
It is working fine when I insert this at the top of main (and the necessary import):
encoding.Register()

I guess you are neither in a UTF-8 nor in C locale? 8859-1?  Or something
else?
Anyway, thanks for pointing it out!
On Wed, Oct 28, 2015 at 5:34 AM, Peter Kleiweg<EMAIL_ADDRESS>wrote:

When I try to run the demo 'boxes' I get character set not supported
It is working fine when I insert this at the top of main (and the
necessary import):
encoding.Register()
—
Reply to this email directly or view it on GitHub
https://github.com/gdamore/tcell/issues/60.

I'm using nl_NL.utf8 but changing it to en_US.utf8 gives the same error.

Interesting.  I'm probably looking for UTF-8 rather than utf8.  I'll fix.

I'm also thinking that it would be better to fall back to assuming C / ASCII than erroring out.  Btw, what OS are you using?  (I've not see "utf8" as a character set before.)

Huh.  I already had fallback to ASCII in place as an option -- I forgot I wrote that.
So for boxes, it would be better to do:
tcell.SetEncodingFallback(tcell.EncodingFallbackASCII)
I'll make the change.

I'm on Linux.
See: http://pkleiweg.home.xs4all.nl/tmp/locale.alias


Alternative multiple candidate select UI?

I'm working on this package, which is sort of a port of helm-bibtex to completing-read, aimed at selectrum (and icomplete-vertical).
My core completion function uses completing-read, but I think I need to change it to use completing-read-multiple, as the backend functions all take multiple keys as parameter.
But I don't think selectrum's current UI for this will work.
Notice what happens in this screenshot at the top:

Now, compare to helm-bibtex, where one does ctrl-space to mark the candidates.

Is there any reason this wouldn't be a more general and consistent approach?
If not, is there any workaround you can suggest?
cc https://github.com/oantolin/embark/issues/166 https://github.com/bdarcus/bibtex-actions/issues/17

We could think about combing both approaches, we had a selection feature in the early days see the #74 for more discussion about the current UI.

Right now the candidates are simply removed from the list, maybe it would be better to leave them there but show them selected?

Hm, I don't think there would be a benefit, could you describe more what you don't like about the current UI? Maybe you are just annoyed about the scrolling of the prompt as the candidates are so long?

Yes, the candidates are too long. Given a vertical ui long candidates are common.

The prompt gets scrolled for me in this case.

Maybe it is a problem when you want to look at your selections or am I missing something?

I took a quick look at #74 (thanks), but it seemed like @oantolin's critiques of the earlier UI (which I never saw) were more implementation than basic concept?

Hm, I don't think there would be a benefit, could you describe more what you don't like about the current UI? Maybe you are just annoyed about the scrolling of the prompt as the candidates are so long?

It's more than "annoyed"; it seems initially completely impractical for this use case :-)
Let me elaborate on the use case.
When writing book or article manuscript, I need to be able to very quick and easily, so as to avoid interrupting the writing process, select and insert citations.
Sometimes citations have one key, often more.
With the helm-bibtex UI, it's the same UI for one candidate as it is for multiple; the only difference is a keybinding to select multiple.
I can instantly see what I have selected, and so what citation will be inserted at point.
Not so with selectrum. I can only see one selection at a time, and I have to switch UI context to be able to scroll.
Perhaps different selection UIs are optimized for different use cases?
@clemera (who posted this after I started replying)

Maybe it is a problem when you want to inspect your selections visually or am I missing something?

Yes. Say I have 2000 references in my bibtex file(s). I need to be able to select the exact three that I need to insert as a citation at point, and those may be pretty similar (same author, say).
Does that explain better?

I see, another improvement in this use case would be to select multiple items without resetting the input between as discussed in #395 so you can pick the similar items right away without repeating previous inputs.

The previous UI was worked similar to what you are suggesting the critique by @oantolin was also about the UI itself, there are use cases for both it would be nice to allow both in tandem is some way.

@bdarcus

I can instantly see what I have selected, and so what citation will be inserted at point.

Is that really true in Helm? Does it move selected candidates closer together or something? I thought that if you had 2000 references in your bibtex file and you wanted to cite references 21, 803 and 1831 you could not see in Helm at a glance which were selected, you'd have to scroll like a madman to see which one are selected. Am I wrong?

Is that really true in Helm? Does it move selected candidates closer together or something?

Oh, good question @oantolin. No, it doesn't.
In that workflow, I'm assuming I'd narrow to some manageable subset.

What about moving the selected items to the top such that they are always visible if not scrolled out of sight?

What about moving the selected items to the top such that they are always visible if not scrolled out of sight?

First thought is that would be an improvement on the helm version.

I think that for this particular situation, I'd like the standard completing-read-multiple interface but with each selected candidate displayed as just the bibtex key. The only issue right now is that the text in the minibuffer prompt is too long, no?

@oantolin If you want to select multiple similar candidates, currently the input resets after inserting a candidate with ´TAB` so the previous search matches are gone and you need to input the same text again, for this use case selection would be more convenient.

I think that for this particular situation, I'd like the standard completing-read-multiple interface but with each selected candidate displayed as just the bibtex key.

I had wondered about that. Is that possible?
That could be an elegant solution, particularly if coupled with @minad's on moving to the top of the list.
And if there was some way that I could see which key was associated with which candidate somehow.

I also thought about that proposal by @oantolin. I don't think it is possible. The candidates are long, there is no way to communicate a short form to the completion system.

@clemera makes a good point, that if the candidates you want to select do have some text in common, marking several candidates is more convenient than have to type the text again for each one.
I also don't think my suggestion of using the crm interface but dislaying just the bibtex key in the minibuffer is very practical: I hadn't noticed the bibtex keys aren't displayed with the candidates so using them to summarize the chosen entry isn't a very good idea idea, since you'd still need a way for the user to visually confirm those keys correspond to the entries they meant to select.
One similar thing that could be done is to put a function in the minibuffer's after-change-functions that uses display text properties to display the chosen candidates as just the first word and an ellipsis. (Like how consult--fry-the-tofus makes tofu invisible, @minad.)

Perhaps instead of shortening the chosen candidates they could be displayed one per line (by displaying the crm-separator as (concat crm-separator "\n") or something like that)? This would be a lot like moving the selected ones to the top of list.

Yes, but this seems less convenient than having multiple candidates listed at top which can be selected/deselected with a keypress.

True.

Right now the candidates are simply removed from the list, maybe it would be better to leave them there but show them selected?

I missed this earlier, but just to clear, yes; that would be a start.

Just curious: how do you deal with this in icomplete-vertical, @oantolin?

icomplete-vertical has no special behavior for completing-read-multiple, @bdarcus, it behaves exactly as icomplete does. You build a comma-separated list of chosen candidates in the minibuffer with completion for each one. So it's like Selectrum except that it doesn't remove chosen candidates from the candidate list below.
Note that removal of chosen candidates in Selectrum, while probably a good idea, feels a little "wrong" since you are allowed to select the same candidate many times in completing-read-multiple, and Selectrum's UI sort of suggests you aren't allowed. (Selectrum doesn't actually keep you from choosing a candidate multiple times, but you do loose completion for it after the first occurrence ---you can still type it out in file as many times as you want.)

One detail: I saw grouping come up here recently.
How would this interact with that?
Would, for example, selected candidates be a group?
Could have some advantages, like allowing a selection to be visible even if the user modified the filtering to otherwise hide a candidate?

Common way to show selected candidates, instead of hide them, at top of list.
A choice on selection whether to use the TAB-based completion approach, or a keybinding to select and deselect. The latter could include the select-all request in #395.

@bdarcus
Ideally both use cases would be supported by the UI without having to configure a choice (not sure if that was what you are suggesting in you second point). I'm not sure about mixing selections with the current approach, ideally I would like both actions to be available all time and also being as intuitive as possible. Maybe for reviewing/editing your selections it would also suffice to have better prompt navigation (like we have with sexp commands in file completions)? For keeping the input we could have a second command bound to Shift+ TAB which insert the current candidate + the current input how does that sound? If you want to select a candidate and start completion from scratch you would use TAB and in the other case SHIFT + TAB.

@clemera

Ideally both use cases would be supported by the UI without having to configure a choice (not sure if that was what you are suggesting in you second point).

I was leaving that deliberately vague because unsure. But I'm fine with your preference.

I'm not sure about mixing selections with the current approach, ideally we have both actions available and also being as intuitive as possible.

Yes.

Maybe for reviewing/editing your selections it would also suffice to have better prompt navigation/editing commands (like we have with sexp commands in file completions)?

I'm not following on this.

For keeping the input we could have a second command bound to Shift+ TAB which insert the current candidate + the current input how does that sound?

So in my UI, how would I select two candidates to run the default action?

highlight one, do Shift+TAB
highlight the other, do Shift + TAB
hit return?

What would be the indication they were selected? The two candidates highlighted, at the top of the list, perhaps in a group?
And if I was using some other commands, where it was easier to use the TAB approach, I would:

hit TAB, complete one candidate to select
, complete another candidate

If that's what you mean, that sounds good.

I'm not following on this.

In file completions you can move and kill path levels using standard sexp commands I was suggesting allowing the same for crm so you could easily move through your "selections" and kill items to "unselect".

So in my UI, how would I select two candidates to run the default action?

You press SHIFT  + TAB and the item gets inserted like with TAB but additionally the current input gets inserted so you can proceed from where you left off.

What would be the indication they were selected? The two candidates highlighted, at the top of the list, perhaps in a group?

They would be remove from the list and added to the prompt like with TAB (in addition to that the input would get inserted as mentioned above.

Edit: and de-select would be do shift + TAB again?

To deselect you would backward-kill-sexp like a killing a path level in file completions.

So then how would this address my concerns with the long completions in that UI?
Yes, I don't have to restart the completions, but as discussed above, that's only one part of the problem.

I'm suggesting not showing visual selections but incorporating the advantages of a selection UI into the current UI.

And what are those advantages for my use case?

And what are those advantages for my use case?

I thought that you can quickly select similar items which match the same string but it seems that wasn't your main interest, I just tried to projecting what is missing and find a way to add that, I'm sorry if it doesn't match your view on it or if it doesn't solve your pain points, what do you feel is missing? Is it that you can't easily see all selections at once? What is the advantage of that that doesn't work with my suggestion?

So then how would this address my concerns with the long completions in that UI?

If we have sexp commands for candidate navigation you can navigate to the start of a candidate using C-M-b

I'm sorry if it doesn't match your view on it or if it doesn't solve your pain points, what do you feel is missing? Is it that you can't easily see all selections at once? What is the advantage of seeing all the selections at once?

I appreciate your openness to continued discussion :-)
Let me wait a bit to answer your questions, and in the interim see if @minad has any thoughts that can bridge the gap.

Here is another idea which is similar to what @minad was suggesting by showing items at the top of the list: We could show a stack of the inserted candidates above the prompt (between the input line and the mode-line).

We could show a stack of the inserted candidates above the prompt (between the input line and the mode-line) that would grow up when you add another candidate.

So that "stack" would be just below the "doom:scratch" line here?

So conceptually like the grouping idea I was asking about, but I guess there are technical reasons this might work better?

So that "stack" would be just below the "doom:scratch" line here?

Yup, that would be the idea.

EDIT: And so, as you select candidates (and I can do shift + TAB to do that?), the UX is they move up, from the candidate list to that stack?

Yes, you could also just press TAB (in that case we could delete the input and add the candidate to the stack) when you press SHIFT + TAB the candidate would also move to the stack but your input would stay so you can keep adding items from your current result list.

Sounds good to me.
Only other question I have (which you were contemplating above) is how to make the deselect process as simple and elegant as the select process.

Might be so simple as one keypress to migrate to the stack, select item to deselect, and then same shift + TAB to deselect, which removes it? Given the different context, would there be any point in a different key combination?

Maybe removing the last added candidate could be done with DEL which is usually a no-op at the empty prompt. To deselect other items you could navigate to them using C-p and press DEL on them. I will try a POC when I have the time in the meantime PRs are welcome of course, too.

There is one problem with history and pasting strings into the crm prompt those should both work, mabye some kind of hybrid solution would be best? What about a command which shows the items currently in the prompt temporary instead of the static stack we talked about?

There is one problem with history and pasting strings into the crm prompt those should both continue to work, mabye some kind of hybrid solution would be best?

In theory, that seems to make sense.
I know how the prompt approach works now, but how would this alternative in relation?
How do you think to allow the hybrid, without having them conflict? I was just wondering what would happen, for example, if one selected some candidates using the direct approach, and then did TAB for the prompt.

What about a command which shows the items currently in the prompt temporarily instead of the static visualization we talked about?

Are you thinking it would be redundant or waste real estate to disclose statically when using the prompt?
And how would that visualization compare to what we earlier discussed? Where would they be disclosed? The same idea, just that one could toggle?

I think the best is to wait until we have a concrete example to experiment with, I hadn't thought above the concerns I mentioned (mavigating history/pasting). There is also the case that you use an unknown crm-separator, currently you can simply type it manually but in the above approach you would need to query the user for it on exit.
Maybe a third approach could be to select the candidates like you do currently and on exit get a buffer where you can inspect and change the submitted selections before finally submitting them?

There is also the case that you use an unknown crm-separator, currently you can simply type it manually but in the above approach you would need to query the user for it on exit.

I was thinking about this yesterday too, as I had to add code to my package to use a different crm-separator.
Ideally I could tell selectrum what to use in my code, as that would be a cleaner UX.

I think this all needs some experimentation, we can discuss more details when we have an implementation to play with.

Sounds good.

I thought I'd just add another note here on a pain point with the current UI, that I think would be solved with the direction this was going.
I needed to add an initial-value argument to some of my commands to pre-narrow the candidate list.
This works well when selecting one candidate, but does not when selecting multiple, since the initial value only applies to the first.

See https://github.com/bdarcus/bibtex-actions/issues/160 for an alternative idea for an improved CRM ui, which can be implemented cheaply on top of completing-read.

Your simple-crm is great @minad! I have RET configured to always select the first candidate, so I need to force an empty input to exit it, but that seems perfectly reasonable.
(By the way, I somehow I thought RET in Selectrum and Vertico also always selected the first candidate, but it seems I was wrong. What does it do? Select the default if non-nil and otherwise select the first candidate? And here you set the default to be the empty string?)

@oantolin

Your simple-crm is great @minad!

Yes, that was my response too!
Since this comment, the thread on the linked issue got kind of long and complicated (though I think interesting!), but I think to summarize:
This should work well for my package, and so I am working on adding it here:
https://github.com/bdarcus/bibtex-actions/pull/163
But there are a few minor issues, that probably won't matter in my case.
OTOH, generalizing it for inclusion in Consult (which @minad had been seriously thinking of doing), and/or Vertico/Selectrum, will require more thought, and work, which may not be worth it in the face of other priorities, etc.
I don't think he's closing the door on that though.

@oantolin

By the way, I somehow I thought RET in Selectrum and Vertico also always selected the first candidate or the selected badidate of you move the selection, but it seems I was wrong.

In the case of Vertico, RET returns the currently selected candidate (vertico--index). The index is determined either explicitly by the user, then vertico--lock-candidate is set to t, such that even when the input is changed, the current candidate remains locked as long as the candidate still satisfies the filter. In case no candidate is selected explicitly (for example during initialization), either the prompt is selected (-1) or the first candidate is selected (0).
;; select either the prompt or the first candidate
(if (or vertico--default-missing ;; default candidate is not an element of all candidates
        (= 0 vertico--total)
        (and (= (car bounds) (length content))
             (test-completion content minibuffer-completion-table
                              minibuffer-completion-predicate)))
    -1 0)

Selectrum does something along these lines too.

@oantolin What do you think about consult-completing-read-multiple as part of Consult, see https://github.com/minad/consult/blob/3d28108d841a698bf2ec42e32fa954adbb88a87a/consult.el#L2154-L2226?

Solved by consult-completing-read-multiple. Closing.


Find Pivot in the Array List in C++

@bhumikatewary Kindly assign me this issue under Hacktoberfest 2022.

Kindly Assign this issue to me.

@bhumikatewary , I want to contribute in your repository through this issue, please assign me this under Hacktoberfest 2022.

@rajnish254 @17h4ck3r11 since @aryananand27 has created the issue, his code would be given the priority for contribution
If the code is incorrect, the next contributor's code would be taken


Updated KQL for Azure Boost VMs

KQL for Azure Boost

Related Issues/Work Items

Breaking Changes
NA
As part of this pull request I have

[x] Read the Contribution Guide and ensured this PR is compliant with the guide
[x] Checked for duplicate Pull Requests
[x] Associated it with relevant GitHub Issues or ADO Work Items (Internal Only)
[x] Ensured my code/branch is up-to-date with the latest changes in the main branch
[x] Ensured PR tests are passing
[x] Performed testing and provided evidence (e.g. screenshot of output) for any changes associated to ARG queries
[x] Updated relevant and associated documentation (e.g. Contribution Guide, Docs etc.)

Attaching screenshot from testing

@khushal08 it is not clear to me how the query aligns with the recommendation. If I read your query correctly, it is retrieving all boost VMs. Queries should retrieve resources that do not align with the recommendation. With this recommendation, we would also need to filter for maintenance sensitive workloads, unless our guidance is to recommend boost for all VMs.

@ejhenry Updated the query to list non boost VMs. The idea is to list VMs for critical maintenance sensitive workloads where Azure Boost is not used. Query has no way to know if the workload is critical maintenance sensitive or not. This is decision needs manual intervention.
What I suggest is let's go ahead with the query and let WARA CSA take a decision on workload sensitivity.

@ejhenry Updated the query to list non boost VMs. The idea is to list VMs for critical maintenance sensitive workloads where Azure Boost is not used. Query has no way to know if the workload is maintenance sensitive or not. This decision needs manual intervention. What I suggest is let's go ahead with the query and let WARA CSA take a decision on workload sensitivity.

@khushal08 queries should not return false positives. In this case it sounds like we should instead note that the recommendation cannot be validated with ARG.

@ejhenry Updated the query to list non boost VMs. The idea is to list VMs for critical maintenance sensitive workloads where Azure Boost is not used. Query has no way to know if the workload is maintenance sensitive or not. This decision needs manual intervention. What I suggest is let's go ahead with the query and let WARA CSA take a decision on workload sensitivity.

@khushal08 queries should not return false positives. In this case it sounds like we should instead note that the recommendation cannot be validated with ARG.

@ejhenry Closing this PR as discussed in ADO item.


LDAP property missing from User object

Laravel Version: 5.8.22
Adldap2-Laravel Version: 6.0.6
PHP Version: 7.3.4
LDAP Type: ActiveDirectory

Description:
I'm authenticating my users based on username and password. The AD users authenticate successfully and are logged in to the application. The fields I want are sync'd correctly. The issue is that my logged in User object's 'ldap' property is always null. I can recreate this in Tinker as well. So I can't access any of the ldap methods.
I re-created a new application from scratch and followed the Adldap2-Laravel instructions to the letter, but I'm getting the same problem. I feel like I'm missing something somewhere. I've done Laravel applications in the past and haven't had this problem.
Steps To Reproduce:

I log the user in via Tinker using Auth::attempt().
The user is logged in successfully, but I do get the following...
PHP Warning:  unlink
PHP Warning:  ldap_search(): Search: Bad search filter
PHP Warning:  ldap_get_entries() expects parameter 2 to be resource, bool given
PHP Warning:  ldap_search(): Search: Bad search filter
PHP Warning:  ldap_get_entries() expects parameter 2 to be resource, bool given

Each warning is followed by a file path to the php file the warning originates from. Perhaps this ldap_search() thing is the reason I'm having issues?
3) Once logged in I can access the user via Auth::user(), but as mentioned above, the ldap property is null.
Any direction on this would be much appreciated!

Hi @lotius,
Did you add the Adldap\Laravel\Traits\HasLdapUser trait onto your configured User model?

@stevebauman
Yes, sir.

I was fairly certain in the past the trait was added automatically during the installation process, but I had to manually add it to my User this time around. Am I just misremembering this?

@lotius Ok great. Did you also add the objectguid ID to your users table and configure that column in your ldap_auth.php file? If so, is that column being synchronized properly when logging into your application?

I was fairly certain in the past the trait was added automatically during the installation process

No the trait isn't added automatically, you have to add it. In past versions the trait wasn't used - the ldap property on the User model was set automatically when a config option was set.
The trait was added to remove the need for a config option.

objectguid was added to the users table and was configured in ldap_auth.php. After a successful login it shows up in the users table in the db as expected.

Hmm.... Can you try the following?
use Adldap\Laravel\Facades\Resolver;

// Replace the below GUID with a GUID that was synchronized in your database.
$guid = 'bf9679e7-0de6-11d0-a285-00aa003049e2';

$user = Resolver::byId($guid);

dd($user);

You can place this in any of your controllers or routes file. This is simply testing that the user resolver is able to locate your synchronized user by it's Object GUID in your directory.
If that successfully returns the LDAP user that owns that GUID, we can continue troubleshooting.

Looks like it found it correctly.

Ok great, can you post your auth.php config file as well as your ldap_auth.php file?

Can do. Redacted certain information, but it's mostly pretty standard stuff.
ldap_auth.php.txt
ldap.php.txt

Hmm everything looks fine.
It seems like the listener possibly isn't being called. Can you try editing the BindsLdapUserModel.php file (here) and try dd()'ing inside the handle() method to see if it's actually being called after successful authentication?

Looks like it's getting called. Stops any further activity after a login by just doing a dd() at the end of handle().
If I dd($event) I can see the user and the attached ldap property.

Strange... Can you add dd() after you have authenticated on the subsequent request?
I'm wondering if it's binding successfully during the authentication attempt, and then afterwards the binding is lost.

I'm not sure I understand what you mean.

Apologies, this is what I mean:

Login to your app normally
After you've logged in, add dd() to the BindsLdapUserModel
Refresh the page
See if the user model in the event has the ldap property set

Oh! Gotcha.
After a refresh the user model has the ldap property.

Ok, man. I just don't get it. Now it's working!    :|    <--potato face

Oh okay - I think this issue exists primary when running Laravel Tinker? I've seen this issue before...

Strange. Some kind of caching problem or something? No idea.
In Tinker I was trying to make sure to Auth::logout() every time. That could be it, though.  Now in Tinker my user's (and other test users) ldap property is showing up. How would I go about confirming?

I think you may already be doing this, but you can confirm it like so:
php artisan tinker

Psy Shell v0.9.9 (PHP 7.3.2 — cli) by Justin Hileman
>>> Auth::attempt(['username' => 'myusername', 'password' => 'mypassword'])
=> true
>>> auth()->user()->ldap;
=> Adldap\Models\User {#3165
     +exists: true,
     +dateFormat: "Y-m-d H:i:s",
}

Oh, yes. That's what I was doing. My main user and several test users all have the ldap property bound now in Tinker the way I'd expect. I honestly don't know what changed here.

Strange... Could be caching like you mentioned?

No, I didn't explicitly cache anything yet. It's basically a fresh install of Laravel as of yesterday. I have not rebooted since I began though.

Dang, I'm stumped as well!
Is it possible that your AD server was inaccessible for a short period of time? LDAP errors are hidden during authentication - so I'm wondering if that may have been the case (long shot).

Possible, but very unlikely. We have 2 DC's and I haven't experienced an outage on them in quite some time. If they were out for any amount of time I'm sure users would be ringing my phone off the hook almost instantly.
Has to be something goofy being cached or still in memory somehow. When I originally was authenticating and it wasn't working yet I didn't yet have the HasLdapUser trait on there yet. I re-read the documentation and saw that I was missing that and added it. Maybe something got goofed from that?

Ah okay I understand.

Has to be something goofy being cached or still in memory somehow.

Definitely sounds like a possibility! I'll close this out for now since you've resolved it, but if you have any further issues feel free to create another issue or comment here and I can assist you. :smile:


6.8 upgrade to 7.1.1 downgrades to 6.5.1

Attempting to upgrade an existing Java project that is on grade 6.8 to 7.1.1 by running the following command:
./gradlew wrapper --gradle-version=7.1.1
results in a BUILD SUCCESSFUL output but the project has been downgraded to 6.5.1.
Expected Behavior
distributionUrl in gradle-wrapper.properties amended to
distributionUrl=https://services.gradle.org/distributions/gradle-7.1.1-bin.zip
OR
BUILD FAILED with a detailed reason(s) why gradle cannot be upgraded
Current Behavior
distributionUrl in gradle-wrapper.properties amended to
distributionUrl=https://services.gradle.org/distributions/gradle-6.5.1-bin.zip
Context
My project cannot be upgraded to be built with jdk16 as only gradle 7+ support 16.
I have already spent a bit of time resolving all the 'deprecated in gradle 7.0' warning messages.
Steps to Reproduce
I cannot provide my existing company Java project where I am experiencing this problem, but it is a complex multi module (50+ modules) project. I've previously experienced no problem upgrading other projects to a newer version of gradle, but this is the first one I've attempted to 7+.
Your Environment
Running my java project through IntelliJ, project JDK is 12.0.2, Windows machine.
The gradlew wrapper command behaves the same whether run using IntelliJ's terminal or from a command prompt.
Build scan URL: https://gradle.com/s/y7q23aixbcc2o

Unknown to me, someone had overridden the distributionUrl for the wrapper task and hardcoded to 6.5.1


Blaze pizza app crashes

Blaze pizza app crashes upon opening with jailbreak! Any way to fix this?

Have you tried it with tweaks disabled?
If it still doesn't work with tweaks disabled the blaze pizza app may have some sort of jailbreak detection implemented. You could try the tweak Liberty Lite from https://ryleyangus.com/repo/ to workaround the issue.

Looks like Liberty Lite Beta worked for it. Liberty Lite didn’t but the beta works

Great, would be cool if you could close this issue!


Broken Hyperlinks - Help

Background: In “Help & FAQs” there are websites listed for resources that are not attached to a hyperlink (so links are not live):
Legal help for military members, veterans, and their families at statesidelegal.org
Nonprofit immigration legal services providers at immigrationlawhelp.org
Legal help for people affected by natural disasters at disasterlegalaid.org
Issue submitted by Stacey Marz (AK)

@KellyeDC - This is a duplicate of #911  , it's just more specific. We need to do a universal fix on all URLs being live. This is a high priority.


Fix Github icon issue in the Playground project home page (#2133)

this closes #2133

@maryamhdr & @Cyrus-Sushiant
plz review


clipboardJS relies on execCommand which is now obsolete and could be removed. Any plans for alternatives?

As per the title, mozilla has made execCommand obsolete. The alternative is the clipboard API. Any plans to move clipboardJS to use that instead?

I think it should be "as well as" not "instead" because of browser compatibility (it doesn't work at all in IE). So, perhaps check for the existence of Navigator.clipboard, falling back to document.execCommand?


nixos/iay: add module; iay: add myself as a maintainer

Description of changes
It adds a NixOS for iay, an utility program to configure shell prompt.
Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
23.05 Release Notes (or backporting 22.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

Thank you for reviewing, @AndersonTorres ! I will address them.

Thank you @aaqaishtyaq !

@AndersonTorres Please check if any issue is still remaining?

Now try to backport this manually, lol

Now try to backport this manually, lol

I have created a PR to backport this manually. I will appreciate it if you review the PR0.


Flutter Toast not working

before 2 days flutter toast working proper but ... currently not showing toast .. and also not giving any error Please resolve ASAP

if you are using android 11 for testing the issue will be fixed in new version


fix: permission checks on import

SUMMARY

When importing assets (databases, datasets, charts, dashboards), ensure that the user has the proper permissions to create the assets. Otherwise a user who can only create charts is able to import a chart and have a dataset and databases added.
@eschutho, @dpgaspar said it would be nice if we could include this in 2.1.0, not sure if there's still time.
BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF

N/A
TESTING INSTRUCTIONS

Updated and added unit tests.
ADDITIONAL INFORMATION

[ ] Has associated issue:
[ ] Required feature flags:
[ ] Changes UI
[ ] Includes DB Migration (follow approval process in SIP-59)

[ ] Migration is atomic, supports rollback & is backwards-compatible
[ ] Confirm DB migration upgrade and downgrade tested
[ ] Runtime estimates and downtime expectations provided

[ ] Introduces new feature or API
[ ] Removes existing feature or API

@betodealmeida I'm packaging up 2.1 today, but if there's another RC we can try to get it in, otherwise we'll aim for 2.1.1


screen command failed "No screen session found."

Hi,
In the step 3 (Start visualization services) in Experiments in Habitat: $screen -S visdom_server -p 0 -X stuff "visdom^M"
Error message "No screen session found" is returned.
May I ask how to work around this problem?
Thank you

The only point of this command is to start a visdom server on your local machine. The visdom server is there so that you can view the logged results. You could use any method for starting that server in the background:, screen, tmux, nohup, etc--whatever you usually prefer should work here.

@WSPeng @alexsax
Hi, I'm facing the same problem.
In the step 3 (Start visualization services) in Experiments in Habitat: $screen -S visdom_server -p 0 -X stuff "visdom^M"
Error message "No screen session found" is returned..
Did you solved this problem？
Thanks!


BUG: Rewrite of stats.truncnorm distribution.

Extend to support much wider tails (previously had overflow issues with abs(x) >= ~40, now can handle x at least as large as 10000.)
Fixes gh-2477, gh-9403, gh-9902, gh-10092.
Added regression tests.

I'm seeing quite big numerical differences in the scipy.scipy Linux_Python_36_32bit_full Job Ubuntu Docker build.  I'm expecting a computed kurtosis to be about 6.7 or 6.71, but seeing 6.66 returned on that build. To make the tests pass, I can relax the constraint, as in
 assert_almost_equal(k, 6.70255909, decimal=1)

but that doesn't seem desirable.
What is special about this Ubuntu 32-bit platform?
Is the integrate.quad implementation substantially different?  Or the underlying math libraries?

You could use _is_32bit_platform = np.intp(0).itemsize < 8 as we do in some other test files, and relax test precision only for 32-bit.

What is special about this Ubuntu 32-bit platform?

not sure, nothing special in the test platform probably, just some 32-bit issue. The Cephes code is the first place I'd suspect.

Merged master into this branch to resolve merge conflicts:

updated test xfail to use the new xfail_on_32bit
replaced reciprocal with the now preferred loguniform

Hmm, test_cont_basic[reciprocal-arg86] failed on Appveyor with
    def deriv(f, x, *arg):
        x = np.asarray(x)
        h = 1e-10
>       return (f(x + h*1j, *arg)/h).imag
E       RuntimeWarning: invalid value encountered in true_divide
arg        = (0.01, 1)
f          = <bound method rv_continuous.logcdf of <scipy.stats._continuous_distns.reciprocal_gen object at 0x0000001231FE5848>>
h          = 1e-10
x          = array([0, 0, 0])
C:\Python37-x64\lib\site-packages\scipy\stats\tests\common_tests.py:246: RuntimeWarning
----------- generated xml file: C:\projects\scipy\junit-results.xml -----------
=========================== short test summary info ===========================

Okay, found the issue - both loguniform and reciprocal were in distcont, and since they're aliases they shouldn't both be. removing reciprocal and keeping loguniform in fails_cmplx.

That all passes now, the one failure is a CI timeout.
This PR is awesome, thanks @pvanmulbregt!


Plot

Attempting to start plotting our data...

I want to overlay the volatility and price on one chart before merging this PR
For next steps, do a

1w and 1d granularity, with an option to switch between them
Figure out some basic options strategies that use the volatilty
Can probably backtest the vol model
Also we have IV in the options contracts...maybe they can be useful
Also in the future we can do some sort of options classification thing, like which options are FDs, and do some subset of fdscanner functionality


Can't use Keyboard at the same time

Hi
I can't use keyboard and replykeyboard at the same time, this is because of the wrong structure in the arrays

Here:

It should be something like this:

plz fix it: @fabio-ivona

fixed

Tnx


arm64: /proc/cpuinfo doesn't honour personality inside LXD container

Required information

Distribution: Ubuntu
Distribution version: 22.04
The output of "lxc info":

config: {}
api_extensions:
- storage_zfs_remove_snapshots
- container_host_shutdown_timeout
- container_stop_priority
- container_syscall_filtering
- auth_pki
- container_last_used_at
- etag
- patch
- usb_devices
- https_allowed_credentials
- image_compression_algorithm
- directory_manipulation
- container_cpu_time
- storage_zfs_use_refquota
- storage_lvm_mount_options
- network
- profile_usedby
- container_push
- container_exec_recording
- certificate_update
- container_exec_signal_handling
- gpu_devices
- container_image_properties
- migration_progress
- id_map
- network_firewall_filtering
- network_routes
- storage
- file_delete
- file_append
- network_dhcp_expiry
- storage_lvm_vg_rename
- storage_lvm_thinpool_rename
- network_vlan
- image_create_aliases
- container_stateless_copy
- container_only_migration
- storage_zfs_clone_copy
- unix_device_rename
- storage_lvm_use_thinpool
- storage_rsync_bwlimit
- network_vxlan_interface
- storage_btrfs_mount_options
- entity_description
- image_force_refresh
- storage_lvm_lv_resizing
- id_map_base
- file_symlinks
- container_push_target
- network_vlan_physical
- storage_images_delete
- container_edit_metadata
- container_snapshot_stateful_migration
- storage_driver_ceph
- storage_ceph_user_name
- resource_limits
- storage_volatile_initial_source
- storage_ceph_force_osd_reuse
- storage_block_filesystem_btrfs
- resources
- kernel_limits
- storage_api_volume_rename
- macaroon_authentication
- network_sriov
- console
- restrict_devlxd
- migration_pre_copy
- infiniband
- maas_network
- devlxd_events
- proxy
- network_dhcp_gateway
- file_get_symlink
- network_leases
- unix_device_hotplug
- storage_api_local_volume_handling
- operation_description
- clustering
- event_lifecycle
- storage_api_remote_volume_handling
- nvidia_runtime
- container_mount_propagation
- container_backup
- devlxd_images
- container_local_cross_pool_handling
- proxy_unix
- proxy_udp
- clustering_join
- proxy_tcp_udp_multi_port_handling
- network_state
- proxy_unix_dac_properties
- container_protection_delete
- unix_priv_drop
- pprof_http
- proxy_haproxy_protocol
- network_hwaddr
- proxy_nat
- network_nat_order
- container_full
- candid_authentication
- backup_compression
- candid_config
- nvidia_runtime_config
- storage_api_volume_snapshots
- storage_unmapped
- projects
- candid_config_key
- network_vxlan_ttl
- container_incremental_copy
- usb_optional_vendorid
- snapshot_scheduling
- snapshot_schedule_aliases
- container_copy_project
- clustering_server_address
- clustering_image_replication
- container_protection_shift
- snapshot_expiry
- container_backup_override_pool
- snapshot_expiry_creation
- network_leases_location
- resources_cpu_socket
- resources_gpu
- resources_numa
- kernel_features
- id_map_current
- event_location
- storage_api_remote_volume_snapshots
- network_nat_address
- container_nic_routes
- rbac
- cluster_internal_copy
- seccomp_notify
- lxc_features
- container_nic_ipvlan
- network_vlan_sriov
- storage_cephfs
- container_nic_ipfilter
- resources_v2
- container_exec_user_group_cwd
- container_syscall_intercept
- container_disk_shift
- storage_shifted
- resources_infiniband
- daemon_storage
- instances
- image_types
- resources_disk_sata
- clustering_roles
- images_expiry
- resources_network_firmware
- backup_compression_algorithm
- ceph_data_pool_name
- container_syscall_intercept_mount
- compression_squashfs
- container_raw_mount
- container_nic_routed
- container_syscall_intercept_mount_fuse
- container_disk_ceph
- virtual-machines
- image_profiles
- clustering_architecture
- resources_disk_id
- storage_lvm_stripes
- vm_boot_priority
- unix_hotplug_devices
- api_filtering
- instance_nic_network
- clustering_sizing
- firewall_driver
- projects_limits
- container_syscall_intercept_hugetlbfs
- limits_hugepages
- container_nic_routed_gateway
- projects_restrictions
- custom_volume_snapshot_expiry
- volume_snapshot_scheduling
- trust_ca_certificates
- snapshot_disk_usage
- clustering_edit_roles
- container_nic_routed_host_address
- container_nic_ipvlan_gateway
- resources_usb_pci
- resources_cpu_threads_numa
- resources_cpu_core_die
- api_os
- container_nic_routed_host_table
- container_nic_ipvlan_host_table
- container_nic_ipvlan_mode
- resources_system
- images_push_relay
- network_dns_search
- container_nic_routed_limits
- instance_nic_bridged_vlan
- network_state_bond_bridge
- usedby_consistency
- custom_block_volumes
- clustering_failure_domains
- resources_gpu_mdev
- console_vga_type
- projects_limits_disk
- network_type_macvlan
- network_type_sriov
- container_syscall_intercept_bpf_devices
- network_type_ovn
- projects_networks
- projects_networks_restricted_uplinks
- custom_volume_backup
- backup_override_name
- storage_rsync_compression
- network_type_physical
- network_ovn_external_subnets
- network_ovn_nat
- network_ovn_external_routes_remove
- tpm_device_type
- storage_zfs_clone_copy_rebase
- gpu_mdev
- resources_pci_iommu
- resources_network_usb
- resources_disk_address
- network_physical_ovn_ingress_mode
- network_ovn_dhcp
- network_physical_routes_anycast
- projects_limits_instances
- network_state_vlan
- instance_nic_bridged_port_isolation
- instance_bulk_state_change
- network_gvrp
- instance_pool_move
- gpu_sriov
- pci_device_type
- storage_volume_state
- network_acl
- migration_stateful
- disk_state_quota
- storage_ceph_features
- projects_compression
- projects_images_remote_cache_expiry
- certificate_project
- network_ovn_acl
- projects_images_auto_update
- projects_restricted_cluster_target
- images_default_architecture
- network_ovn_acl_defaults
- gpu_mig
- project_usage
- network_bridge_acl
- warnings
- projects_restricted_backups_and_snapshots
- clustering_join_token
- clustering_description
- server_trusted_proxy
- clustering_update_cert
- storage_api_project
- server_instance_driver_operational
- server_supported_storage_drivers
- event_lifecycle_requestor_address
- resources_gpu_usb
- clustering_evacuation
- network_ovn_nat_address
- network_bgp
- network_forward
- custom_volume_refresh
- network_counters_errors_dropped
- metrics
- image_source_project
- clustering_config
- network_peer
- linux_sysctl
- network_dns
- ovn_nic_acceleration
- certificate_self_renewal
- instance_project_move
- storage_volume_project_move
- cloud_init
- network_dns_nat
- database_leader
- instance_all_projects
- clustering_groups
- ceph_rbd_du
- instance_get_full
- qemu_metrics
- gpu_mig_uuid
- event_project
- clustering_evacuation_live
- instance_allow_inconsistent_copy
- network_state_ovn
- storage_volume_api_filtering
- image_restrictions
- storage_zfs_export
- network_dns_records
- storage_zfs_reserve_space
- network_acl_log
- storage_zfs_blocksize
- metrics_cpu_seconds
- instance_snapshot_never
- certificate_token
- instance_nic_routed_neighbor_probe
- event_hub
- agent_nic_config
- projects_restricted_intercept
- metrics_authentication
- images_target_project
- cluster_migration_inconsistent_copy
- cluster_ovn_chassis
- container_syscall_intercept_sched_setscheduler
- storage_lvm_thinpool_metadata_size
api_status: stable
api_version: "1.0"
auth: trusted
public: false
auth_methods:
- tls
environment:
  addresses: []
  architectures:
  - aarch64
  - armv7l
  certificate: |
    -----BEGIN CERTIFICATE-----
    MIICHjCCAaSgAwIBAgIQP1pkHkT3fQQjhBX9XIa6rzAKBggqhkjOPQQDAzA9MRww
    GgYDVQQKExNsaW51eGNvbnRhaW5lcnMub3JnMR0wGwYDVQQDDBRyb290QGFybTY0
    LWFybWhmLWx4YzAeFw0yMjA4MTExMDMyMDRaFw0zMjA4MDgxMDMyMDRaMD0xHDAa
    BgNVBAoTE2xpbnV4Y29udGFpbmVycy5vcmcxHTAbBgNVBAMMFHJvb3RAYXJtNjQt
    YXJtaGYtbHhjMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAESG9PtAYjDY/wMPc6bOdv
    9ZEMkiJLwPqmm7kmhDnXYzYChK5BIX98HjQgVc70NCxlcg6HkNK86naWuPAW4WTq
    NuZJOu4XEmt1+OF53GfeUVw61K5KWwjG/m2EWq5zXTIMo2kwZzAOBgNVHQ8BAf8E
    BAMCBaAwEwYDVR0lBAwwCgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADAyBgNVHREE
    KzApgg9hcm02NC1hcm1oZi1seGOHBH8AAAGHEAAAAAAAAAAAAAAAAAAAAAEwCgYI
    KoZIzj0EAwMDaAAwZQIxAIh5o3xZ+OO/uNfAuhQZQSsd40PWrLmr33XGo1q0l/1q
    Y3LvlqbCBWm0+dwevhQc6AIwZ/BpvLKHGKEAL3Wr0DwljDbt+DrP9xtS/HjI2fhv
    iqW/P9/C2w374/Y60VkFJAWE
    -----END CERTIFICATE-----
  certificate_fingerprint: 3b96071484ef9ffabacee84629347107fe4aec5753d1f1e0ebf31d02343a55b6
  driver: lxc
  driver_version: 4.0.12
  firewall: nftables
  kernel: Linux
  kernel_architecture: aarch64
  kernel_features:
    idmapped_mounts: "true"
    netnsid_getifaddrs: "true"
    seccomp_listener: "true"
    seccomp_listener_continue: "true"
    shiftfs: "false"
    uevent_injection: "true"
    unpriv_fscaps: "true"
  kernel_version: 5.15.0-46-generic
  lxc_features:
    cgroup2: "true"
    core_scheduling: "true"
    devpts_fd: "true"
    idmapped_mounts_v2: "true"
    mount_injection_file: "true"
    network_gateway_device_route: "true"
    network_ipvlan: "true"
    network_l2proxy: "true"
    network_phys_macvlan_mtu: "true"
    network_veth_router: "true"
    pidfd: "true"
    seccomp_allow_deny_syntax: "true"
    seccomp_notify: "true"
    seccomp_proxy_send_notify_fd: "true"
  os_name: Ubuntu
  os_version: "22.04"
  project: default
  server: lxd
  server_clustered: false
  server_event_mode: full-mesh
  server_name: arm64-armhf-lxc
  server_pid: 1487
  server_version: 5.0.0
  storage: dir
  storage_version: "1"
  storage_supported_drivers:
  - name: ceph
    version: 15.2.14
    remote: true
  - name: btrfs
    version: 5.4.1
    remote: false
  - name: cephfs
    version: 15.2.14
    remote: true
  - name: dir
    version: "1"
    remote: false
  - name: lvm
    version: 2.03.07(2) (2019-11-30) / 1.02.167 (2019-11-30) / 4.45.0
    remote: false
  - name: zfs
    version: 2.1.4-0ubuntu0.1
    remote: false

Issue description
We've been trying to work out why Rust-based snap builds for armhf hang on Launchpad's build farm, where they're executed in armhf containers via LXD on arm64 machines, also using linux32 to set the personality (although this may not be necessary when running in a 32-bit LXD container - I think LXD already handles that?).
We seem to be running into something like https://github.com/rust-lang/rust/issues/60605, but it's a little weirder than that.  rustup is only picking arm (i.e. ARMv6) because it gets confused about the processor's capabilities.  rustup-init.sh has this code:
    # Detect armv7 but without the CPU features Rust needs in that build,
    # and fall back to arm.
    # See https://github.com/rust-lang/rustup.rs/issues/587.
    if [ "$_ostype" = "unknown-linux-gnueabihf" ] && [ "$_cputype" = armv7 ]; then
        if ensure grep '^Features' /proc/cpuinfo | grep -q -v neon; then
            # At least one processor does not have NEON.
            _cputype=arm
        fi
    fi

And we're seeing:
+ [ unknown-linux-gnueabihf = unknown-linux-gnueabihf ]
+ [ armv7 = armv7 ]
+ ensure grep ^Features /proc/cpuinfo
+ grep ^Features /proc/cpuinfo
+ grep -q -v neon
+ _cputype=arm

I tried to track this down in a less weird environment than a builder, launching an Ubuntu 22.04 arm64 machine as described in the lxc info output above.  I got as far as this:
$ grep -m1 ^Features /proc/cpuinfo
Features        : fp asimd evtstrm cpuid
$ linux32 grep -m1 ^Features /proc/cpuinfo
Features        : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt lpae evtstrm
$ lxc launch ubuntu:bionic/armhf
Creating the instance
Instance name is: positive-hyena
Starting positive-hyena
$ lxc exec positive-hyena -- linux32 grep -m1 ^Features /proc/cpuinfo
Features        : fp asimd evtstrm cpuid

This seems pretty odd, but at this point I don't know where to look next.  Is this a LXD bug for somehow failing to set up the environment correctly, or is it a kernel bug for getting confused by containerization and somehow not noticing the personality change?
Steps to reproduce
lxc launch an armhf container on arm64, and run linux32 grep -m1 ^Features /proc/cpuinfo inside it.

Does your host have compat_uts_machine=armv7l set in the kernel command-line? We do this in our lxd armhf instances on arm64 hosts on focal, because otherwise containers end up declaring that they are armv8-32 machine type which nobody uses.
It would be interesting to see the output of uname -a from inside your container.

My current guess is that the kernel has made cpuinfo to be affinity aware (urgh) but in our case, lxcfs provides /proc/cpuinfo as a FUSE overlay inside of the container (to filter the CPUs based on cgroups). LXCFS itself is an arm64 piece of code running on the host, so regardless of the personality of the caller, /proc/cpuinfo from the kernel will be accessed by an arm64 binary.
If that's indeed the issue, we can move the bug over to lxcfs and see if there's some kind of way to:

Determine the personality of the caller process (whatever opens /proc/cpuinfo in the container)
Somehow trick the kernel into providing us the cpuinfo content for that personality rather than our own

I suspect that 1) should be easy enough to figure out through some proc file, 2) may be a bit more challenging though.

@xnox My Canonistack test didn't have compat_uts_machine=armv7l on the command line, but Launchpad's arm64 builder VMs do.  In a container on a builder, uname -a prints Linux flexible-bluejay 5.4.0-124-generic #140-Ubuntu SMP Thu Aug 4 02:27:01 UTC 2022 armv7l armv7l armv7l GNU/Linux.
@stgraber You're quite right: /proc/cpuinfo is mounted, and if I unmount it then I see the correct features.

Determine the personality of the caller process (whatever opens /proc/cpuinfo in the container)

cat /proc/$PID/personality should give the value of the calling process.

Somehow trick the kernel into providing us the cpuinfo content for that personality rather than our own

I suspect that 1) should be easy enough to figure out through some proc file, 2) may be a bit more challenging though.

I think one can use syscall previous = personality(PER_LINUX32); to switch to 32bit, or like use whatever value one got from procfs personality file.
check return is not negative, and restore personality after one is done.


Cocoapods 1.8.0 seems breaking us

From #41144, Cocoapods 1.8.0 broke deploy_gallery-macos test on CI, which may also affect Flutter users, therefore we need to find a fix.
One option is to update the ios setup step on the website to use cocoapods 1.7.5: sudo gem install cocoapods -v 1.7.5. See https://flutter.dev/docs/get-started/install/macos#ios-setup.
The other option is to fix the compatibility issue with Cocoapods 1.8.0.

If we fix to 1.7.5, we'd also want to update flutter doctor...

```
### Error

NameError - uninitialized constant Concurrent::Promises
Did you mean?  Concurrent::Promise
/Library/Ruby/Gems/2.3.0/gems/cocoapods-core-1.8.0/lib/cocoapods-core/cdn_source.rb:126:in `block in versions'
/Library/Ruby/Gems/2.3.0/gems/cocoapods-core-1.8.0/lib/cocoapods-core/cdn_source.rb:121:in `map'
/Library/Ruby/Gems/2.3.0/gems/cocoapods-core-1.8.0/lib/cocoapods-core/cdn_source.rb:121:in `versions'
/Library/Ruby/Gems/2.3.0/gems/cocoapods-core-1.8.0/lib/cocoapods-core/specification/set.rb:99:in `block in versions_by_source'
/Library/Ruby/Gems/2.3.0/gems/cocoapods-core-1.8.0/lib/cocoapods-core/specification/set.rb:98:in `each'
/Library/Ruby/Gems/2.3.0/gems/cocoapods-core-1.8.0/lib/cocoapods-core/specification/set.rb:98:in `each_with_object'
/Library/Ruby/Gems/2.3.0/gems/cocoapods-core-1.8.0/lib/cocoapods-core/specification/set.rb:98:in `versions_by_source'
/Library/Ruby/Gems/2.3.0/gems/cocoapods-core-1.8.0/lib/cocoapods-core/specification/set.rb:56:in `specification_name'
/Library/Ruby/Gems/2.3.0/gems/cocoapods-core-1.8.0/lib/cocoapods-core/cdn_source.rb:212:in `search'
/Library/Ruby/Gems/2.3.0/gems/cocoapods-core-1.8.0/lib/cocoapods-core/source/aggregate.rb:83:in `block in search'
/Library/Ruby/Gems/2.3.0/gems/cocoapods-core-1.8.0/lib/cocoapods-core/source/aggregate.rb:83:in `select'
/Library/Ruby/Gems/2.3.0/gems/cocoapods-core-1.8.0/lib/cocoapods-core/source/aggregate.rb:83:in `search'
/Library/Ruby/Gems/2.3.0/gems/cocoapods-1.8.0/lib/cocoapods/resolver.rb:416:in `create_set_from_sources'
/Library/Ruby/Gems/2.3.0/gems/cocoapods-1.8.0/lib/cocoapods/resolver.rb:385:in `find_cached_set'
/Library/Ruby/Gems/2.3.0/gems/cocoapods-1.8.0/lib/cocoapods/resolver.rb:360:in `specifications_for_dependency'
/Library/Ruby/Gems/2.3.0/gems/cocoapods-1.8.0/lib/cocoapods/resolver.rb:165:in `search_for'
/Library/Ruby/Gems/2.3.0/gems/cocoapods-1.8.0/lib/cocoapods/resolver.rb:274:in `block in sort_dependencies'
/Library/Ruby/Gems/2.3.0/gems/cocoapods-1.8.0/lib/cocoapods/resolver.rb:267:in `each'
/Library/Ruby/Gems/2.3.0/gems/cocoapods-1.8.0/lib/cocoapods/resolver.rb:267:in `sort_by'
/Library/Ruby/Gems/2.3.0/gems/cocoapods-1.8.0/lib/cocoapods/resolver.rb:267:in `sort_dependencies'
/Library/Ruby/Gems/2.3.0/gems/molinillo-0.6.6/lib/molinillo/delegates/specification_provider.rb:53:in `block in sort_dependencies'
/Library/Ruby/Gems/2.3.0/gems/molinillo-0.6.6/lib/molinillo/delegates/specification_provider.rb:70:in `with_no_such_dependency_error_handling'
/Library/Ruby/Gems/2.3.0/gems/molinillo-0.6.6/lib/molinillo/delegates/specification_provider.rb:52:in `sort_dependencies'
/Library/Ruby/Gems/2.3.0/gems/molinillo-0.6.6/lib/molinillo/resolution.rb:754:in `push_state_for_requirements'
/Library/Ruby/Gems/2.3.0/gems/molinillo-0.6.6/lib/molinillo/resolution.rb:746:in `require_nested_dependencies_for'
/Library/Ruby/Gems/2.3.0/gems/molinillo-0.6.6/lib/molinillo/resolution.rb:729:in `activate_new_spec'
/Library/Ruby/Gems/2.3.0/gems/molinillo-0.6.6/lib/molinillo/resolution.rb:686:in `attempt_to_activate'
/Library/Ruby/Gems/2.3.0/gems/molinillo-0.6.6/lib/molinillo/resolution.rb:254:in `process_topmost_state'
/Library/Ruby/Gems/2.3.0/gems/molinillo-0.6.6/lib/molinillo/resolution.rb:182:in `resolve'
/Library/Ruby/Gems/2.3.0/gems/molinillo-0.6.6/lib/molinillo/resolver.rb:43:in `resolve'
/Library/Ruby/Gems/2.3.0/gems/cocoapods-1.8.0/lib/cocoapods/resolver.rb:94:in `resolve'
/Library/Ruby/Gems/2.3.0/gems/cocoapods-1.8.0/lib/cocoapods/installer/analyzer.rb:986:in `block in resolve_dependencies'
/Library/Ruby/Gems/2.3.0/gems/cocoapods-1.8.0/lib/cocoapods/user_interface.rb:64:in `section'
/Library/Ruby/Gems/2.3.0/gems/cocoapods-1.8.0/lib/cocoapods/installer/analyzer.rb:984:in `resolve_dependencies'
/Library/Ruby/Gems/2.3.0/gems/cocoapods-1.8.0/lib/cocoapods/installer/analyzer.rb:124:in `analyze'
/Library/Ruby/Gems/2.3.0/gems/cocoapods-1.8.0/lib/cocoapods/installer.rb:410:in `analyze'
/Library/Ruby/Gems/2.3.0/gems/cocoapods-1.8.0/lib/cocoapods/installer.rb:234:in `block in resolve_dependencies'
/Library/Ruby/Gems/2.3.0/gems/cocoapods-1.8.0/lib/cocoapods/user_interface.rb:64:in `section'
/Library/Ruby/Gems/2.3.0/gems/cocoapods-1.8.0/lib/cocoapods/installer.rb:233:in `resolve_dependencies'
/Library/Ruby/Gems/2.3.0/gems/cocoapods-1.8.0/lib/cocoapods/installer.rb:156:in `install!'
/Library/Ruby/Gems/2.3.0/gems/cocoapods-1.8.0/lib/cocoapods/command/install.rb:52:in `run'
/Library/Ruby/Gems/2.3.0/gems/claide-1.0.2/lib/claide/command.rb:334:in `run'
/Library/Ruby/Gems/2.3.0/gems/cocoapods-1.8.0/lib/cocoapods/command.rb:52:in `run'
/Library/Ruby/Gems/2.3.0/gems/cocoapods-1.8.0/bin/pod:55:in `<top (required)>'
/usr/local/bin/pod:22:in `load'
/usr/local/bin/pod:22:in `<main>'
```

This looks like https://github.com/CocoaPods/CocoaPods/issues/8991.  Investigating.

I just upgraded to 1.8.0 on my machine, and the cocoapods-core dependency to concurrent-ruby looks correct, so a gem install of CocoaPods should automatically install concurrent-ruby.
$ sudo gem uninstall concurrent-ruby

You have requested to uninstall the gem:
	concurrent-ruby-1.1.5

cocoapods-core-1.8.0 depends on concurrent-ruby (~> 1.0)
If you remove this gem, these dependencies will not be met.

If we fix to 1.7.5, we'd also want to update flutter doctor...

@christopherfujino I created https://github.com/flutter/flutter/issues/41221.   If anything I think we should go the other way and peg to the minimum version.

The problem is that cocoapods-core doesn't require a new enough version of concurrent-ruby:
https://github.com/CocoaPods/CocoaPods/issues/9177#issuecomment-534611405
CoocaPods has a fix scheduled for their 1.8.1.  In the meantime, CocoaPods 1.8.0 may not work without first running:
gem install concurrent-ruby

This is a CocoaPods issue, not a Flutter one, but maybe we need a tool warning if their CocoaPods version is 1.8.0 but their concurrent-ruby gem version is <v1.0.4?
@zanderso

Yes, let's add a warning to the tool.
@csells Upgrading CocoaPods to this version will break folks on stable. What is the right communication channel to notify users about this problem and the fix?

Yes, let's add a warning to the tool.
@csells Upgrading CocoaPods to this version will break folks on stable. What is the right communication channel to notify users about this problem and the fix?

It MAY break folks on stable/any channel.  The required version of the dependent gem is concurrent-ruby 1.0.4, which was released December 27, 2016.  So on my machine, for example, I happened to have version 1.1.5, which was released March 11, 2019 and everything worked for me.
I'm not sure why Cirrus fetched such an old gem.  Maybe we should wait for some user-reported errors since we don't know how common that setup is?  At least there is a pretty easy workaround:
sudo gem install concurrent-ruby

@jmagman thanks for clarifying!

1.8.1 was released today, which fixes this issue.  If you are hitting this issue run sudo gem install cocoapods to upgrade.  If you are stuck on 1.8.0 for some reason, you can workaround with sudo gem install concurrent-ruby.

Closing.


Example code does not work.

Gives "JsonSerializer does not contain a definition for Serialize."

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

ID: 588ae32f-3429-143f-824c-5ab2d046d24a
Version Independent ID: 002f9f2a-48d1-0671-a079-b99b9f6bab58
Content: How to serialize and deserialize JSON using C# - .NET
Content Source: docs/standard/serialization/system-text-json/how-to.md
Product: dotnet-fundamentals
GitHub Login: @gewarren
Microsoft Alias: gewarren

Hi @CamLewis You must be either:

Trying to use Newtonsoft's JSON.NET library which is not what this article is about.
Using a version of .NET which doesn't include the System.Text.Json API.

Can you share more information about your code?

I'm a dipstick. I know just enough to be dangerous, and was misunderstanding what I was running into. I'm working in Unity, which has its own JSON functionality, which seems to be a subset of what would be available if I were writing a regular application.
It's been that sort of day. I think you can pretty much disregard me and my rubbish at this point. I apologize for being a nuisance. :)


Large data sets cause IOError

I'm not sure if this is an intended use case for Neptune, but I attempted to run the program with ~150 inclusion genomes (450 MB) and ~8000 exclusion genomes (32 GB) and it caused the program to crash before completion. Here is the log from my console:
Estimating k-mer size ...
k = 25

k-mer Counting...
Submitted 8164 jobs.
44.61319 seconds

k-mer Aggregation...
Submitted 65 jobs.
Traceback (most recent call last):
  File "/home/dussaultf/miniconda3/envs/neptune/bin/neptune-conda", line 11, in <module>
    load_entry_point('neptune==1.2.5', 'console_scripts', 'neptune')()
  File "/home/dussaultf/miniconda3/envs/neptune/lib/python2.7/site-packages/neptune/Neptune.py", line 986, in main
    parse(parameters)
  File "/home/dussaultf/miniconda3/envs/neptune/lib/python2.7/site-packages/neptune/Neptune.py", line 765, in parse
    executeParallel(parameters)
  File "/home/dussaultf/miniconda3/envs/neptune/lib/python2.7/site-packages/neptune/Neptune.py", line 749, in executeParallel
    execute(execution)
  File "/home/dussaultf/miniconda3/envs/neptune/lib/python2.7/site-packages/neptune/Neptune.py", line 662, in execute
    aggregateKMers(execution, inclusionKMerLocations, exclusionKMerLocations)
  File "/home/dussaultf/miniconda3/envs/neptune/lib/python2.7/site-packages/neptune/Neptune.py", line 290, in aggregateKMers
    inclusionKMerLocations, exclusionKMerLocations)
  File "/home/dussaultf/miniconda3/envs/neptune/lib/python2.7/site-packages/neptune/Neptune.py", line 356, in aggregateMultipleFiles
    execution.jobManager.runJobs(jobs)
  File "/home/dussaultf/miniconda3/envs/neptune/lib/python2.7/site-packages/neptune/JobManagerParallel.py", line 138, in runJobs
    self.synchronize(jobs)
  File "/home/dussaultf/miniconda3/envs/neptune/lib/python2.7/site-packages/neptune/JobManagerParallel.py", line 178, in synchronize
    job.get()  # get() over wait() to propagate excetions upwards
  File "/home/dussaultf/miniconda3/envs/neptune/lib/python2.7/multiprocessing/pool.py", line 572, in get
    raise self._value
IOError: [Errno 24] Too many open files: '/mnt/scratch/Forest/neptune_analysis/output_debug/kmers/exclusion/GCF_001642675.1_ASM164267v1_genomic.fna.kmers.AAA'

Thanks for reporting this error.
What's happening is that each aggregation job is opening up a temporary file associated with each input file (~150 + ~8000). I suspect Python is unable to open ~8150 files simultaneously and is throwing this error.
The problem is there's currently no way to change the input parameters so that this doesn't happen. The number of aggregation jobs being run can be changed, but each job is still going to try to open as many files simultaneously as there are inputs.
The short term solution would be to run Neptune with less input files. I believe the biggest we've run the software is with approximately 800 total input files. The long term solution (on my end) might involve limiting the software to perform aggregation in iterative batches with a reasonable number of files open simultaneously.


use globally installed svelte

My projects are compiled with externals only so there is no v3 svelte lib in my project folder. It would be nice if there was a setting for using the globally installed svelte lib instead

fair point


CheckList and CheckItem creation API calls - take 2

After feedback from @simonbasle, reverted eroneous 'organise imports' on test classes and split out card deletion WIP.

@benemon could you squash the two commits together so as to make only 1 meaningful commit?
you can use "interactive rebase" to achieve this:
git checkout checklists-and-checkitems
git rebase -i dev

This will open an editor where the two commits above are listed, prefixed with "pick".
Change the second "pick" to "fixup", save and close the editor.  You can then update the PR with:
git push --force-with-lease


cleanup of fs.py to allow relative and absolute paths

Signed-off-by: FrankSuits<EMAIL_ADDRESS>Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[x] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[ ] I have added tests to cover my changes.
[x] All new and existing tests passed.
[x] All commits are signed-off.

Local change so file operations are more robust

Please hold off on this because more changes are needed.

This should now be ready for merge after changing many files to replace absolute() with resolve().  absolute() is undocumented and resolve() is preferred.  This also fixes an issue related to use of relative paths such as ../catalog.json in import.


Grammar / Syntax documentation for flowcharts

Is there full documentation for the grammar / syntax for flowcharts anywhere please?
I've searched github and googled for a wider search but no luck yet!
Thank you.

So I've now found this:
Flowcharts - Basic Syntax


Devs SNBAT reference deprecated celotool commands

Expected Behavior
No upgrade contracts command
Current Behavior
upgrade contracts command

Duplicate of https://github.com/celo-org/celo-monorepo/issues/262