Allow programmatic setting of log4j logging level.

This is a new pull request for this since the original one was on my old fork and can no longer build in travis. The old PR is still there for reference.

@cmnbroad  :+1:
I'd move that one function and then feel free to squash and merge.  Thank you.

As @cmnbroad pointed out, moving the function would need to expose the map, :+1:  to just making it package protected and keeping it in place.


Fix for Firefox

Resolves issue #2

Probably just needs a rebase on master @jnishiyama :)

target _blank is back in, didn't even realize I removed it, my apologies!

Thanks for this fix. Although, Master branch on github is updated but for some reason it doesn't update on my machine.
I had it installed previously and wanted to update changes, so
I tried npm install react-file-download --save again or npm update and it didn't work.
As a workaround I succeeded by
npm install https://github.com/kennethjiang/react-file-download/tarball/master

@tymochko You can use https://www.npmjs.com/package/npm-check-updates to update your dependencies, or to do it manually remove react-file-download from your package.json, run rm -rf node_modules/react-file-download, then npm install react-file-download --save. This applies any time you need to update a dependency, not just to react-file-download.

npm install<EMAIL_ADDRESS>--save should also work.

@josiahsprague, sorry, non of these did not work for me.
Besides I tried rm -rf node_modules/react-file-download - and it was not right, I had to write npm rm -rf node_modules/react-file-download

This fix is not in 0.3.1. Just published 0.3.2. please upgrade.


mancata connessione

ciao, quando inserisco il nome e l ip del dispositivo esp32 mi dà errore "Unknown error occurred".
home assistant core doker, esp32 d1 mini.

I have exactly same problem. I can see that ESPHome actually talks to stove. Tried also legacy mode with same results.
Found some errors but I don't know how relevant they are
There may be more..... I can try to find them if I have exact instructions what to look for...
2024-04-05 19:36:29.488 WARNING (ImportExecutor_0) [homeassistant.const] TEMP_CELSIUS was used from 4heat, this is a deprecated constant which will be removed in HA Core 2025.1. Use UnitOfTemperature.CELSIUS instead, please report it to the author of the '4heat' custom integration 2024-04-05 19:36:29.507 WARNING (ImportExecutor_0) [homeassistant.const] PRESSURE_PA was used from 4heat, this is a deprecated constant which will be removed in HA Core 2025.1. Use UnitOfPressure.PA instead, please report it to the author of the '4heat' custom integration 2024-04-05 19:36:29.528 WARNING (ImportExecutor_0) [homeassistant.const] PRESSURE_MBAR was used from 4heat, this is a deprecated constant which will be removed in HA Core 2025.1. Use UnitOfPressure.MBAR instead, please report it to the author of the '4heat' custom integration
File "/config/custom_components/4heat/config_flow.py", line 70, in _check_host s.connect((host, TCP_PORT)) ConnectionRefusedError: [Errno 111] Connection refused 2024-04-05 19:36:54.431 ERROR (MainThread) [aiohttp.server] Error handling request


Update go_protobuf to v1.0.0 [phab:D2248]

Created by schroederc at 2018-04-06 22:28:42:

danielmoy-google accepted this revision at 2018-04-06 22:30:22

schroederc closed via commit 69e68370a0cccdd68e589d7cedd8fe1be429f3f4 at 2018-04-06 22:31:30


LlamaTokenizer support

Description
LlamaTokenizer support

Will this change the current api? How?
No.
Who will benefit from this enhancement?
All LLM lovers.
References

https://huggingface.co/docs/transformers/model_doc/llama2#transformers.LlamaTokenizer

You can manually save tokenizer.json file in a folder, and use HuggingfaceTokenizer to load the tokenizer from file

@iamlockelightning
Here is my code to save tokenizer.json file:
from transformers import AutoTokenizer

def main():
tokenizer = AutoTokenizer.from_pretrained("mistralai/Mistral-7B-v0.1")
tokenizer.save_pretrained("converted")

@iamlockelightning
You can also use LlamaTokenizerFast instead of LlamaTokenizer

@frankfliu Thank you for your detailed answer. It works! 🎉


完成Sateri的Demo

[x] A-Side

[ ] B-Side

[ ] Stage 1
[x] Stage 2
[x] Stage 3
[x] Stage 4
[ ] Stage 5
[ ] Stage 6
[ ] Mastering

[ ] C-Side

[x] Choice 1
[ ] Choice 2
[ ] Choice 3

[ ] E-Side

[ ] D-Side

[x] Chapter 1
[ ] Chapter 2
[ ] Chapter 3
[ ] Chapter 4
[x] Chapter 5
[x] Chapter 6
[ ] Chapter 7
[ ] Chapter 8
[ ] Chapter 9
[ ] Chapter 10

[x] E-Side/Alter

[x] F&G-Side

#52c5629
v0.2.31-charlie.11.19
This issue is marked as completed.
这并不意味着本项目已经被彻底完成，假使后续有进一步的更新，本issue将被重启。


FIX horizontal alignment shifts when vertical scroll bar appears

Noticed problem when using docsviewer on a site I am developing. Common problem. Easy fix.
Quite visible if (i) a page's content fits within the browser window's height when the table of contents dropdown is closed but (ii) the content no longer fits vertically when the table of contents dropdown is opened. When the dropdown is opened, a vertical scroll bar appears in the browser and the page's horizontal alignment shifts by the scroll bar width.
@frankmullenger FYI: I also noticed this in swipestripe docs :)

thanks


Limitations of using Redis as filer-store

According to this:
https://github.com/chrislusf/seaweedfs/wiki/Filer-Stores
There's a limitation of "number of entries in a folder", which is described as "limited". What exactly is the limit?
Thanks.

For one directory, all the entries are stored in one blob.
Limited by memory size, read/write latency.

Thanks, are we talking millions, or billions of entries, do you know?
Does this only impact listing directories or direct access to files using filer-http?
Thanks.

The limit is for millions of directory entries for one directory.
This impacts listing.

Ok.
Sorry for "nagging" about this, but I just want to understand the performance-characteristics of using Redis with lots of file-entries in one filer-folder. We use folders in filer only as "containers", so the "real" (actual) folder/name structure is maintained using a custom DB "outside of SeaweedFS", so we might get to the point where we'll have billions of files in one filer-folder.
Will it impact POST/GET-performance (of single files) of filer as long as we don't list directories using filer?

Writing may get affected.
There is also an option "superLargeDirectories", if you do not need directory listing.

See https://github.com/chrislusf/seaweedfs/wiki/Super-Large-Directories

Nice, we don't need directory listing, thanks!


Standalone Waterline-Express, populate()

With the provided example, I'm not able to retrieve associations :
var Song = Waterline.Collection.extend({

    identity: 'songs',
    connection: 'myLocalMongoDB',

    attributes: {
        name: 'string',
        album: {
            type: 'model'
        },
        artist: {
            type: 'model'
        }
    }
});
[...] //other models
orm.loadCollection(Artist);
orm.loadCollection(Album);
orm.loadCollection(Song);

[...] //do stuff

    app.models.songs.find().populate('album').exec(function (e, data) {});

Then this error show up :
Error (E_UNKNOWN) :: Encountered an unexpected error
: Encountered unexpected error while building join instructions for `.populate("album")`
Details:
[TypeError: Cannot read property 'attributes' of undefined]

I was wondering if I could search by id like this :
 { name: 'Roar',
    artist: { _bsontype: 'ObjectID', id: 'TóRw8L«N\u0014»"' },
    is_explicit: false,
    createdAt: Sun Mar 01 2015 12:55:03 GMT-0500 (EST),
    updatedAt: Sun Mar 01 2015 12:55:03 GMT-0500 (EST),
    album: { _bsontype: 'ObjectID', id: 'TóRw8L«N\u0014»+' },
    id: '54f35277384c9bab4e14bb2a' }

                app.models.album.findOne(song.album).exec(function (e, album) {
                    console.log(album);
                });

But it doesn't seem to work.
Any idea / tips ?
Thanks !

Try:
var Song = Waterline.Collection.extend({

    identity: 'songs',
    connection: 'myLocalMongoDB',

    attributes: {
        name: 'string',
        album: {
            model: 'album'
        },
        artist: {
           model: 'artist'
        }
    }
});

Wow, thanks ! It works for .populate('album') but not for populateAll()
Error (E_UNKNOWN) :: Encountered an unexpected error
TypeError: Cannot read property 'forEach' of undefined
    at Deferred.populateAll (/Users/phil/Documents/workspace/web/kue/node_modules/waterline/lib/waterline/query/deferred.js:76:29)

@pdavid0 does populateAll seem to be broken for you in general?  If so, do you mind if we either close this story and create a new bug story, or re-title this story and amend the first comment?

I didn't try populateAll()  in this context. Closing, thanks for the support, kep up the good work ! :+1:

where is the orm in this gotten from orm.loadCollection(Artist);


Upgrade shakapacker v6 to v7

Codecov Report
Patch and project coverage have no change.

Comparison is base (6afdc71) 85.83% compared to head (26f58b5) 85.83%.

:exclamation: Current head 26f58b5 differs from pull request most recent head 36fd31e. Consider uploading reports for the commit 36fd31e to get more accurate results

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.
Additional details and impacted files
@@             Coverage Diff              @@
##           development    #3488   +/-   ##
============================================
  Coverage        85.83%   85.83%
============================================
  Files             2005     2005
  Lines            72541    72541
============================================
  Hits             62267    62267
  Misses           10274    10274

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


sql/kv: add guidance on large statements

We discuss this briefly in https://github.com/cockroachdb/docs/issues/4409, and I recently filed an issue to improve the message in https://github.com/cockroachdb/cockroach/issues/50330, but we should add guidance on large transactions. We have had recent customers tripped up on this limitation (cc @kai-niemi )
I've pulled out relevant conversation [from slack below] (https://cockroachlabs.slack.com/archives/CHVV403F0/p1590406019235800) that shows input from @bdarnell and @knz .
We currently have a 16 MiB limit due to our implementation of the postgres network protocol. it's a magic number we could change, but we've mainly discussed that in the context of lowering it, not raising it. write amplification is the main thing that prevents us from excelling at workloads with a lot of large blobs. there's also increased memory usage and especially increased variance in memory usage that can lead to instability. and if rows containing large blobs are not insert-only, you run the risk of hitting the max range size with mvcc history (less of an issue now with the larger default range size).
We can provide guidance that using placeholders will help, since that way you only get charged for the size of the value without the encoding necessary to fit it into a SQL statement.
if large blobs are important to your application, i'd generally recommend storing them in s3 or similar and only storing references to them in your RDBMS
See also:

#6433 Improve description of write amplification
cockroachdb/cockroach#243 Roadmap: blob storage

This slack thread was about large statements, not large transactions (#4409 was about transaction size).

Ah thanks for clarifying that!

Bumping this up in priority. It's worth noting that https://github.com/cockroachdb/cockroach/issues/50330 will be worked on soon.

I think we should improve this messaging and update it this release.

I think we should improve this messaging and update it this release.

I'd like to add this to our list of known limitations (as I document limitations for the 21.1 release), but I'm not sure we should go into so much detail on write amplification/blob storage support in the known limitation description. We should keep it practical.
I'm thinking something like:
### Size limits on statement input from SQL clients

CockroachDB imposes a hard limit of 16MiB on the data input for a single statement passed to CockroachDB from a client (including the SQL shell).

As a workaround, we recommend that you do the following:

- Use parameterized statements, with placeholders in your statements instead of real values.
- For large blob input, store the blobs somewhere your client can access them (using a cloud storage service, for example), and then reference their addresses from your statement.

@bdarnell Am I oversimplifying this limitation and the recommendations?
Hopefully with that description, we can close this out.
@rmloveland I'll lean on Rich to develop a more complete resolution to documenting write amplification https://github.com/cockroachdb/docs/issues/6433.

I don't think parameterized statements help enough to be worth calling out. (it's at best a factor of 2 for the encoding overhead, right? An 8MiB blob is not going to be a good experience even if parameterization makes the difference for whether it fits under the 16MiB limit or not)
I think the guidance is basically "don't do that" (if anything, you're undersimplifying :)). I'd put the note about cloud storage for blobs on the blob type page instead of tying it to the statement size limit (because blobs are unadvisable in CRDB well before you hit that limit - we recommend no more than 1MiB per value).

SGTM. Thanks Ben!


Update jQuery in endpoint portal

Update jQuery in endpoint portal to version 3.5.1 as requested in #780 .

@skomlaebri Can you please use the latest JQuery version 3.7.1?

Thanks Sarah!


Remove py38 compat modules

This also fixes leftover UP036 from https://github.com/pypa/distutils/pull/314

Should we remove the TODO exclusions in ruff.toml?

Should we remove the TODO exclusions in ruff.toml?

Oh, right, those exclusions weren't present where this change was based. I'll just remove them after merging.


Android playback breaks

2019-09-18 02:18:02,798 :: bw_plex :: DEBUG :: plex.py:1184 :: Called jump with Orange.Is.the.New.Black.s07e01 213 71.84253968253968 None
2019-09-18 02:18:02,799 :: bw_plex :: INFO :: plex.py:932 :: Called client_action with 71.84253968253968 01:11 213 None
2019-09-18 02:18:02,849 :: bw_plex :: INFO :: plex.py:965 :: sessionkey 213 media_sessionkey 187
2019-09-18 02:18:02,849 :: bw_plex :: INFO :: plex.py:965 :: sessionkey 213 media_sessionkey 213
2019-09-18 02:18:02,850 :: bw_plex :: INFO :: plex.py:969 :: client OnePlus 6 9.729
2019-09-18 02:18:02,851 :: bw_plex :: INFO :: plex.py:1001 :: Checking if we cant find the correct client
2019-09-18 02:18:02,851 :: bw_plex :: INFO :: plex.py:1003 :: 5s4pnb527pihqoa89ds4qi91 fc549eec84edb2ba-com-plexapp-android
2019-09-18 02:18:02,851 :: bw_plex :: DEBUG :: plex.py:1012 :: We couldnt match the client. Trying a hail marry.
2019-09-18 02:18:02,852 :: bw_plex :: DEBUG :: plex.py:1023 :: Client hasnt a _baseurl enabling proxyThroughServer
2019-09-18 02:18:02,852 :: bw_plex :: DEBUG :: plex.py:1044 :: calculated_offset 71 0.071
2019-09-18 02:18:02,867 :: bw_plex :: ERROR :: plex.py:85 :: There was an exception in client_action
Traceback (most recent call last):
  File "/app/bw_plex/bw_plex/plex.py", line 80, in inner
    return func(*args)
  File "/app/bw_plex/bw_plex/plex.py", line 1047, in client_action
    proxy_on_fail(correct_client.seekTo(calculated_offset * 1000))
  File "/usr/local/lib/python3.6/dist-packages/plexapi/client.py", line 325, in seekTo
    self.sendCommand('playback/seekTo', offset=offset, type=mtype)
  File "/usr/local/lib/python3.6/dist-packages/plexapi/client.py", line 193, in sendCommand
    return self._server.query(key, headers=headers)
  File "/usr/local/lib/python3.6/dist-packages/plexapi/server.py", line 348, in query
    raise BadRequest('(%s) %s; %s %s' % (response.status_code, codename, response.url, errtext))
plexapi.exceptions.BadRequest: (500) internal_server_error; http://<IP_ADDRESS>:32400/player/playback/seekTo?commandID=1&offset=71000&type=video <?xml version='1.0' encoding='utf-8'?> <Response code="2000" status="FrameworkException: Unable to find player with identifier fc549eec84edb2ba-com-plexapp-android">   <Traceback>Traceback (most recent call last):   File "/usr/lib/plexmediaserver/Resources/Plug-ins-b9d49bdb7/Framework.bundle/Contents/Resources/Versions/2/Python/Framework/components/runtime.py", line 843, in handle_request     result = f(**d)   File "/usr/lib/plexmediaserver/Resources/Plug-ins-b9d49bdb7/System.bundle/Contents/Code/playerservice.py", line 50, in process_remote_command     raise FrameworkException('Unable to find player with identifier %s' % identifier) FrameworkException: Unable to find player with identifier fc549eec84edb2ba-com-plexapp-android </Traceback> </Response>

I don’t think this just a android issue. I sometime get this on iOS to.
What happens here is we query the servers /client endpoint to get a list of client connected to the local network. (As the websocket tick don’t contain a url we can use. If that fails for some reason (not listed in the /clients) we try to send the command to the server and the server fails to find the correct client to proxy the request to. I don’t know any better ways to solve this.
If anybody has some ideas on how to handle this that would be awesome

Closing this as there is nothing I can do as long as the client isn’t on the same network. (According to pms)


Explicitly indicate categorical feature name in Scikit-Learn interface for XGBoost

Hello everyone,
I have a question regarding the treatment of categorical features in my data. I was wondering if there is a way to explicitly indicate a list of feature names that should be treated as categorical in the model training process.
Currently, I am aware of the enable_categorical=True argument, which allows for automatic detection of categorical features based on pandas dtypes. However, the categorical encoding in pandas may not be consistent across different datasets, which could cause issues when deploying the model in production.
I would greatly appreciate any insights or suggestions on how to explicitly indicate categorical features to ensure consistency in the model's encoding process.
Thank you very much for your help!

There's a feature types parameter that can be used with array instead of dataframe.

I overlooked it. Thank you very much @trivialfis!


Enable rule "promise/catch-or-return"?

In 12.0.0 (#123) it could be useful to add the promise/catch-or-return to help people catch the cases where one might have missed a catch() or return?
Especially as unhandledRejection is deprecated and will start throwing.
Thoughts?

Regarding the allowThen option, can someone summarize the problem with using .then(success, fail) instead of .then(success).catch(fail)?

If the functions success throws, the thrown error will be eaten and result in the promise returned from then being rejected. If you don't do anything with that Promise (e.g. not returning it or .catching it) that error will go unreported ☺

Starting with Node 15 which was just released, unhandled rejections will start throwing, so probably even more reason to add this.
I'm at your disposal to get this added @feross 👍

@voxpelli Can you propose a configuration for the rule? As well as testing ecosystem breakage with that setting?
// clone repo
npm install
// edit the eslint.json file, adding a "rules" section with your proposed rule
npm test

Report the final test output, number of tests passed/failed. You can also share representative examples of failures that you agree with and ones that are not ideal.
Thanks for offering to help!

@voxpelli I just noticed your comment here: https://github.com/standard/eslint-config-standard/pull/148#issuecomment-637461888 Is your latest opinion that this shouldn't be merged as-is because of the false positives?


Lowest Common Ancestor

Have you read the Contributing Guidelines on Pull Requests?
YES
Description
The lowest Common Ancestor is implemented in Binary Tree. In LCA, For two nodes, a and b, the lowest common ancestor c is the lowest node in the binary tree that has a and b as its descendants. This is the Efficient Approach to find Lowest Common Ancestors.
Checklist

[x] I've read the contribution guidelines.
[x] I've checked the issue list before deciding what to submit.
[x] I've edited the README.md and link to my code.

Related Issues or Pull Requests
#3530

@HarshCasper @bhav09 Sir, can you please review my PR?

@Shreyash41, why is one segment of the code commented and the other's is not?

@bhav09 Sir are you talking about Node* LCA function segement?

Respected @ankitaggarwal23 sir, can you please from where this Code is Plagiarized because the link that you have attached is of Left View of Binary Tree and I solve this Issue on Lowest Common Ancestor. According to my knowledge, Both concepts are different from each other.
Lowest Common Ancestor :- For two nodes, a and b, c is the lowest node in the binary tree that has a and b as its descendants.
Left View of Binary Tree :- It is a set of nodes visible when the Tree is visited from the left side and only prints the left side of elements.
I think please give an appropriate reason to show that my code is invalid or plagiarized.
I request to @bhav09  and @HarshCasper Sir, to review this Closed PR and tell me where I am wrong??

@Shreyash41 Your 85-90% of your code exactly matches.


Detach from winit?

Winit releases new versions quite often, at least more often than surfman. And it's a dependency of surfman. So once we start depending on surfman in Gecko, there is a problem of dependency duplication that could arise from winit (e.g. cocoa stuff). Gecko doesn't like duplicated dependencies because Mercurial is bad at vendoring them.
Would it be possible to somehow avoid depending on winit in sm-winit feature? Perhaps, by moving the stable part of winit into a separate crate, or something like that.

Actually, it looks like surfman also depends on the macOS crates directly, so it's already in trouble :/
I wonder how Servo team planned to manage the dependency duplication here?

We allow duplication on a crate-by-crate basis in https://github.com/servo/servo/blob/071d1d824833dc6103251591e07d8e1bdcea39c0/servo-tidy.toml#L29-L79.

surfman now has a sm-raw-window-handle that can feed it with raw window types.
I'm thinking about making an abstraction in servo demo too. So other windowing tools like glazier, or other tool kits like Gtk can use servo too.
But Connection::from_raw_display_handle is added after 0.6.
Could surfman publish another version if any maintainer has time?

Published!

This was done in #271.


#33 - Expose 'State' on FileResource

Added the 'State' property to the file resource: [(https://ai.google.dev/api/files#File)] #33

Hi @rsmithsa
Thanks for the addition. However, state is declared as an enumeration and shall be used like that.
Unfortunately, there is already an enumeration State related to the status/progress of a tuned model.
The PR should take this into consideration. Thanks.
Cheers, JoKi

OK, it seems that Google has changed the response of tuned model not using state anymore but done.
See here: https://ai.google.dev/api/tuning#response-body

Hi @rsmithsa
Yes, exactly. The $discovery of the API has a few more changes. There's also a new Chunk type which has another State enumeration. I'm working through all this and next release shall have it.
Thanks for the initial pointer and bear a little with me.
Cheers, JoKi

Hi @rsmithsa
I integrated your suggestions into release 1.6.5
See here: https://github.com/mscraftsman/generative-ai/releases/tag/v1.6.5


Offline support (PWA)

Hey folks, fantastic project, a great starting point for Relay-based static web apps!
Any plans to support offline-mode? And other progressive web app features?

But this functionality already in place, the same as in create-react-app, docs:
Create React App -> Making a Progressive Web App

Actually, the store doesn't seem to be rehydrated when reloading the app.
Any suggestions on how to do this with Relay?

@patrick-samy one option is to pre-render the app on the server, hydrate relay.fetch response / inject it into the page, upon the initial page load on the client, instead of actually fetching data from a GraphQL backend via Ajax, just make it return the cached (dehydrated) response (using cacheConfig), and reset this behaviour to default for the next calls to relay.fetch

@koistya thanks, I'm working on a serverless app though!
However, it seems like a similar concept with QueryResponseCache on the client-side would work:
http://taiki-t.hatenablog.com/entry/2017/09/05/181931


I2P and Clearnet status bars

Instead of having two status bars, one for I2P and the second for Clearnet, I propose that we just make one that provides the total number of I2P and Clearnet connections.
To the left of the status bar, I propose to provide one of the four text descriptions: Static I2P, Dynamic I2P, Clearnet, Static I2P and Clearnet, Dynamic I2P and Clearnet.
Lastly, the new status bar icon is unreadable. I would just use the old one....

having connection counted spereated for clearnet and I2P is something i'd keep ;)

Love the idea of implementing the left hand side status bar text description.  The problem with that idea, is that area being used for ongoing messages from wallet operations.
How one might go about placing it there, if no other message is being displayed to the user is under investigation, or we may start with placing it on the right side, but left of all the other control activity.
We still have a bug, I'm aware of, while running in i2p onlynet mode, until the i2p connection gets going (code changes underway), the clearnet connect count is some random high value, because the signal/slots handlers have yet to become operational & the other system components are left in limbo a long time, for that i2p session to be established.
Need to fix that, or speed up the i2p initialization (preferred).  The idea is to show the subtracted  i2p node count in the clearnet count, and keep track of the number of i2p nodes seperately and display that when the user wanted the i2p peer count.  Agree K1773R, that this is a desirable feature.  Once initialized, it works well for me.

In talking with original yesterday, it came to my attention we are going to have to implement a major code change in how the low level I2P network communications works, one which allows for a complete reset of the I2P router connection at any time.
If the router goes down ,and then comes back up, we need to restore a new session->tunnel and restart all the p2p threads and functions.  Using the values, as configured by the user.
While thinking about issue #59, it occurred to me, we could use the I2P text message, to possibly bring up a menu of options, similar to what happens now when you click on the ANC text, your allowed to change the unit of measurement to uANC, mANC or ANC for your overall wallet interaction with the coins value.
I'm thinking of allowing the user to click on the 'I2P' text here, and a menu opens allowing the following:

Select viewing the current I2P destination parameters
Generate a new one

and/or possibly...

Reset the I2P connection, after we have that new functionality implemented.
Stopping/start  i2p?  Not sure about this one yet...
Other options also maybe possible and/or desired.

Soon the i2p config dialog will disappear, I need a way for the user to gain access to that I2p Destination data, and don't want to remove it too, just because the i2poptions dialog disappeared.
Plan is to add Menu options, which probably are also a good idea, regardless of how it might be accessed here in the lower right area of the overview page....
Longer term considerations, when a seperate i2p session is also running, for spends from a different address mean this status bar stuff becomes even more complicated and may warrent moving all other wallet operational status messages up to the line above, and dedicate this lower line to our use only for a growing list of complex quick access widgets.  If we were to do that now, then placing  lunokhod's proposed text on the left, would be straight forward, so that is another possibility.
Many design ideas possible, keeping this as simple as possible for now so we can release an upgrade needs to be kept as the focus, however getting it right so that it works without modification again in the future would be nice too, keep the ideas coming...
GR

The I2P connection/status-bar icon is too small. This is easily fixed. The icon is 64x16 pixels and the code tries to fit this into a square

Thanks, was just about to put back the icons to be the same as clearnet, think both CS and I like it better that way, however I'm not attached to that idea, we should all get a chance to see what this looks like on linux and windows builds.  Made the change, will show up in the commit I put out later tonight....

I kind of like the I2P branding for the connection status bar. I also like the fact that the clearnet and i2p connection use different icons:using the same icons is very confusing to me. If you think this icon is too big, we could try to reduce the pixel size to 56x14 instead of 64x16.
On a related note, I think that we should reorder the icons. I suggest, from left to right
I2P connects, Clearnet connection, "ANC", lock, check mark
At a minimum the I2P and clearnet connection icons should be next to each other.

Can we put back the previous icon? I2P branded? was like https://www.deepdotweb.com/wp-content/uploads/2014/01/11.png
What about GR idea of right click ot generate new i2p address etc? ofc we will not share those DYN


Obsolete virus receptor activity ?

'virus receptor activity' is a non-cannonical function.  CD4 did not evolved to bind HIV, HIV evolved to bind CD4.
Shouldn't we instead have a term for the binding event that allows a virus to enter a cell ('virus receptor binding'?  which can be used to annotate viral proteins - with the receptor being in an extension?
From these annotations, it would be simple to derive a list virus receptors.
The number of annotations with experimental evidence is relatively small.
CC @pdthomas @SIBvirus

Dear all,
The proposal has been made to obsolete the following terms:
GO:0001618 virus receptor activity
The reason for obsoletion is that it is a non-cannonical function. For
example, CD4 did not evolved to bind HIV, HIV evolved to bind CD4.
All details here:
https://github.com/geneontology/go-ontology/issues/13004
There are 32 annotations to this term with experimental evidence
supporting the annotation.
18 UniProt (5 NOT annotations)
5 CACAO
4 MGI (2 NOT annotations)
1 AgBase
1 BHF-UCL
1 HGNC
1 RGD
1 ZFIN
It is also used in the neuro behavior ontology.
We are opening a comment period for this proposed obsoletion. We'd like
to proceed and obsolete the term above on February 24th, 2017.
*** Unless objections are received by February 24th, we will assume
that you agree to this change. ***
Please comment on the GH ticket.
Thanks,
David

[ ] Consider adding reciprocal MFs -  e.g. 'binding to viral entry receptor' - to use in annotating viral proteins
[ ] TODO check whether existing annotations have extensions referencing bound viral protein

Hi David,
I see your point. I agree that binding viruses is not the primary molecular function of these host cell receptors and that this GO term should be deleted. The host cell receptor is "hijacked" by the virus (which could be described as a biological process).
However I am not sure to understand what you mean by adding "binding to viral entry receptor". This term is a bit confusing... There are host cell entry receptors, but no viral entry receptors.  It should rather be "binding to host entry receptor by virus".
But... If you use "binding to host entry receptor by virus" in annotating viral proteins, wouldn't it be identical to "entry receptor-mediated virion attachment to host cell"? I don't see how you can create such a term without overlapping the existing four terms which already cover the annotation of viral proteins:

virion attachment to host cell
1.1 receptor-mediated virion attachment to host cell
1.1.1 entry receptor-mediated virion attachment to host cell
1.1.2 adhesion receptor-mediated virion attachment to host cell

Or would you consider using these four terms for both the viral attachment proteins and the host entry receptors?
Cheers,
Chantal

This function although not organism-evolved is essential for annotation.
In Uniprot we have a KW designed for this function "http://www.uniprot.org/keywords/KW-1183" which is linked via uniprot2go to "virus receptor activity [ GO:0001618 ]".
All annotations made on this are under (microbial infection) indicating that this function is microbe dependent and did not evolve by the organism itself. Example: http://www.uniprot.org/uniprot/Q9BYF1 as receptor for sars virus

I noticed there are a bunch of dubious annotations for "virus receptor activity [ GO:0001618 ]".
The status of host receptor for virus shall never be propagated. Its an event that is much complex and involves only one host and one virus. In Uniprot anything under (microbial infection) is prohibited to be propagated to orthologs.
In other word IEA, ISS ISO.. should not be seen for this GO term. I guess that this supports making the old GO term obsolete, before creating a special "branch* of GO term for highjacking with appropriate rules.
cheers
Philippe Le Mercier

Is there a way to put a rule that forbids a term to be propagated by IEA, ISS ISO... ?

Hello,
This ticket has been resolved by moving 'virus receptor activity' under 'GO:0104005 hijacked molecular function'. What needs to be done now is to create a rule to prevent propagation of 'virus receptor activity' (ie forbid ISS, ISO, etc).
Thanks, Pascale


Run multiple Grafana Agent processes

Change description

Permit parallel grafana agent downloader processes
Configure grafana agent gRPC port
Add -m option to generator to specify PromEx module name

This allows us to configure multiple PromEx processes within our own application.
What problem does this solve?
We want to record metrics and publish dashboards to multiple sources (e.g. one for ops team, and one for biz team).
Example usage
Configure multiple PromEx processes and add them each to the supervisor:
  config :my_app, Core.PromExBiz,
    ...
    grafana: [
      host: "http://localhost:3000",
      ...
      folder_name: "myapp-biz"
    ],
    grafana_agent: [
      working_directory: Path.expand(".grafana_biz"),
      config_opts: [
        metrics_server_path: "/metrics/biz",
        ...
        instance: "dev-biz",
        prometheus_url: "http://prometheus-biz:9090/api/v1/write",
        ...
        agent_port: 4040,
        grpc_port: 9040
      ]
    ]

  config :my_app, Core.PromExOps,
    ...
    grafana: [
      host: "http://localhost:3000",
      ...
      folder_name: "myapp-ops"
    ],
    grafana_agent: [
      working_directory: Path.expand(".grafana_ops"),
      config_opts: [
        metrics_server_path: "/metrics/ops",
        ...
        instance: "dev-ops",
        prometheus_url: "http://prometheus-ops:9090/api/v1/write",
        ...
        agent_port: 4141,
        grpc_port: 9041
      ]
    ]

Additional details and screenshots
Checklist

[x] I have added unit tests to cover my changes.
[x] I have added documentation to cover my changes.
[x] My changes have passed unit tests and have been tested E2E in an example project.

@akoutmos seeking initial feedback
Do you think it would be useful to add a How-To about running multiple agents?
What do you think of adding a -m ModuleName to the generator, so we can do e.g. mix prom_ex.gen.config --datasource myapp-ops -m PromExOps? Right now the generated module is named PromEx and would need to be updated.

Just looked through the code. It looks good to me. While I don't think it is a very common use case to run multiple agents...some documentation would definitely be good. Emphasis on not double-using ports would also be nice :D.

@akoutmos done!

Coverage increased (+0.04%) to 79.258% when pulling dd0b996effa78d287cf4b8863bc91a1fa1a71dea on patmaddox:multi-agent into 611912ce63d4122fedfe8b616ed83cb88521f90f on akoutmos:master.


Angular Template : Getting template parse errors

I need to add a wysiwyg editor for my project.  I am getting Template parse errors whenever I install any of the popular wysiwyg editors. I have tried angular-froala-wysiwyg, angular2-tinymce.
I am importing the modules in app.module.browser.ts file.
They work fine when using with an Angular CLI project.
Please any help regarding this would be appreciated.

I am importing the modules in app.module.browser.ts file.

That will be the issue. Assuming you still have server-side prerendering enabled, then it's not enough to load the editor module into app.module.browser.ts; you also need it in app.module.server.ts otherwise your templates won't be valid for server-side prerendering. Even better, just put it in app.module.shared.ts so it applies to both.
If you have any trouble enabling server-side prerendering for the wysiwyg editor (e.g., if it doesn't support running under Node), then you'll need to disable server-side prerendering by removing the asp-prerender-module tag helper from your Index.cshtml file.

The froala editor doesnt support running under Node. I had to disable the server-side prerendering to get it to work as you explained.
But I want to be able to get the benefits of server-side prerendering. Could you suggest me  any wysiwyg editor that would work with server- side rendering?


Serbian Translation

Is your feature request related to a problem? Please describe.
It is not an issue but it could help a lot of people who speak ex-Yugoslavian languages pass through tests and bring lots more members.
Describe the solution you'd like
Translate all the files to ensure everybody is aware what is going on.
Describe alternatives you've considered
N/A
Additional context
Please, advise of the steps what could be done.

Hi.
Thanks for your interest and reporting. Please see: https://contribute.freecodecamp.org/#/index?id=can-i-translate-freecodecamp39s-curriculum
While we are interested, we do not have any timelines when we will be able to make it available in the language of your choice.


Fix SC2294 for shellcheck

What type of PR is this?
/kind cleanup
What this PR does / why we need it:
Which issue(s) this PR fixes:
Fixes #470
Special notes for your reviewer:
Does this PR introduce a user-facing change?
NONE

Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:

/approve
/lgtm


add base offer id and counter offer id to trade resource and ingestion

Problem
Tom submits an offer. Part of that offer is immediately matched with a previous offer in the order-book (trade a).  The remainder is persisted in the order book and is later matched with a new offer (trade b).
While trades a and b result from the same offer, it is impossible to link them together based on the trade resources alone.
Proposal

Add base_offer_id and counter_offer_id to trade ingestion
Determining the offer_id for the taking offer (the "bid") : If the taking offer was only partially consumed, it will have the same offer_id as the offer that was saved in the orderbook. If the taking offer was fully consumed, no offer_id will be given to it.
Modify Trade resource to include the offer ids. In case of a missing id, The respective offer_id in the resulting trade resource  will have a null value.
Modify the "Trades for Offer" endpoint to search in both base_offer_id and counter_offer_id.

At first glance, I think your proposal makes sense and I have no objections to it.  It's considtent with the existing design of horizon_trades. I'll add a grain of salt though by reminding you that I generally have pretty poor intuition about the trading portions of our API.
The wonkiness you mentioned in standup is just the nature of tradeoffs we made when moving from the previous model of representing trades as effects to history_trades.  The question "What trades occurred as a result of my offer X" requires a perspective to answer. Unfortunately history_trades is a representation of a two-way interaction that is without perspective.  We get to pay the cost of "reifying perspective" in our query by having goofy OR clauses (In other words, a trade is a result of my offer if base_offer_id = X OR counter_offer_id = X ).  Does that make sense?
I think it is worth including design impedances like this when we consider our upcoming "multihorizon" project (for lack of some other name) that we talked about during our roadmap meetings. The real wonkiness here, IMO, is that we don't have a mechanism to let end users have more control over how their horizon instance ingests data from the network. The end user should be able to choose whether a representation with perspective or without is the most appropriate form for their use case.


webpack4 electron-renderer window.criRequest is not a function

I use chrome-remote-interface in electron render process, like this:
const CDP = require('chrome-remote-interface');
CDP.List(options, callback)

when bundled with webpack3 , everything is ok. But when I upgraded webpack to wepack 4,  I got an error:
window.criRequest is not a function

I know it's for browser usage, but I want to run in node. Is it a problem with webpack or Did I miss something?
| webpack | 4.21.0
| webpack-target | electron-renderer
| Operating system	  	 	| Mac
| Node.js					| v10.7.0
| chrome-remote-interface	| 0.25.7
| electron                                  | 2.0.10"

I'm not familiar with Electron, can you provide a minimal application so I can try?

Hi, @cyrus-and
I finally found a workaround about this issue, just use it in this way:
const CDP = require('chrome-remote-interface/index');

Actually, I don't understand why the package.json in the chrome-remote-interface has no 'main' filed but
'browser' field, and it's pointed to the chrome-remote-interface.js which is bundled by webpack.
and in the webpack.config.js, it has the following code:
...
function criWrapper(_, options, callback) {
    window.criRequest(options, callback);
}
...
externals: [
        {
            './external-request.js': `var (${criWrapper})`
        }
    ],

I think maybe it's why I ran into the error:
window.criRequest is not a function

And I read the npm documentation, it explains:
browser:
If your module is meant to be used client-side the browser field should be used instead of the main field. This is helpful to hint users that it might rely on primitives that aren't available in Node.js modules. (e.g. window)

Is this package meant to be used in the browser? or did I use it in a wrong way? Thanks

Is this package meant to be used in the browser?

It is also meant to be used in the browser.

Actually, I don't understand why the package.json in the chrome-remote-interface has no 'main' filed but 'browser' field, and it's pointed to the chrome-remote-interface.js which is bundled by webpack.
and in the webpack.config.js, it has the following code:

And there we need a wrapper (criRequest) that performs the actual HTTP communication with Chrome, users should provide their own version. I cannot just perform the request from the library as it would violate the SOP as responses from Chrome doesn't have the Access-Control-Allow-Origin header.

I'm not familiar with Electron, can you provide a minimal application so I can try?

I still need this. It's entirely possible that for Electron you don't need to rely on the generated webpack version...

I still need this. It's entirely possible that for Electron you don't need to rely on the generated webpack version...
Hi Andrea, I wrote a simple demo( Here) which quite similar to my project(especially the file structure...).

Thank you very much~~

So I guess you just need to require const CDP = require('chrome-remote-interface'); but provide your implementation of criRequest as a global variable, i.e., window.criRequest.

So I guess you just need to require const CDP = require('chrome-remote-interface'); but provide your implementation of criRequest as a global variable, i.e., window.criRequest.

Thanks Andrea, I know this is for browser usage, but Electron Doc says:
Electron users, however, have the power to use Node.js APIs in web pages allowing lower level operating system interactions.

I just want to use it in nodejs usage, and that's exactly how I used it when bundling with webpack3.
I don't know whether it is webpack4 that chose the brower usage for me...
Anyway, I will try to provide window.criRequest first, thank you~

I finally found this:
remote.require
I can use it in this way and no need to provide window.criRequest:
const CDP = require('electron').remote.require('chrome-remote-interface');

Sorry to disturb you so much and thank you all the same.

I found another solution from this issue and this pr, and doc: webpack resolve.mainFields,
if I set the mailFields like this, it's ok too:
resolve: {
  mainFields: ['main', 'browser', 'module']
},

Maybe I asked in a wrong place...

Electron users, however, have the power to use Node.js APIs in web pages allowing lower level operating system interactions.

This makes sense and changes everything, you don't need to specify criRequest then.
The default value for main is actually index.js for this reason I omitted it in the package.json, I believe that webpack should do the same when you specify main.
But if it helps the development of Electron apps I can simply add it to the package.json, what do you think? I'm not aware of the Electron best practices.

The default value for main is actually index.js for this reason I omitted it in the package.json, I believe that webpack should do the same when you specify main.

Yes, you are right when I only specify mainFields: ['main'], webpack resolved as index.js.

But if it helps the development of Electron apps I can simply add it to the package.json, what do you think? I'm not aware of the Electron best practices.

I am a newbie in electron so I am not sure about the Electron best practices. But I would appreciate it a lot if you add it. Thanks~~

Done, let me know if you figure out why main is not recognised by default.


Add pam-devel / libpam0g-dev dependency

Add the pam development headers to the list of dependent packages
installed by the CI.  These are required to build a pam module.

I believe that's all. I installed the full list of dependencies in a "plain" debian container and zfs compiled successfully with the pam module.


Stuff I thought I should add - random observations

I decided to take the approach of repeatedly opening and closing notepad and trying to see what data persisted and what was lost between sessions. All that data must be part of the tab "state" and therefore, must be somewhere in these tab-state files.
To be honest, Reading this a second time, I don't think the info here is that helpful, but it should help someone working on this get a head start. Take everything here with a tub of salt - I'm a uni student and have 0.00 years of professional experience.
OBSERVATION #1
Steps:

Create a new file and save it.
Load up the saved file in notepad and edit it
DO NOT SAVE the edits and close notepad. Reopen notepad to verify that the edits were cached (They were). Then close notepad
Open the file in a second editor and add some text. Save the file.
Reopen the file in notepad and navigate to the tab with the unsaved data.

Notepad notices that the file on disks has edits newer than the cached edits in notepad.
Therefore:

Notepad (probably) saves the hash of the file on disk + time of last edit as well as the hash of the cached edits and their timestamps. That could be the garbled data before and after the contents.
I believe that the garbled data in between the delimiters and the data after the end of contents must be some form of hashes + timestamp. Perhaps the timestamp of the edits + the timestamp of the last edits and the hash + timestamp of  the file on disk.

I was curious about the 0.bin and .1.bin files, since they are considerably smaller but still follow the same format somewhat (see point 7), I decided to focus a bit on those. I decided to do some tests
OBSERVATION #2:

Create a file
Open it in notepad and see the cache. One file with a UUID is made.
Close the file, we see .0.bin and .1.bin pop into existence.
We also see that .1.bin is empty (Zero bytes).
Reopen the file in notepad. This usually makes a second (newer) tab. Close that tab so that the original tab is in view.
Now close the file without making any edits in the tab.
.1.bin is populated! Moreover, we see the same pattern (01 00 00 00) in the .1.bin file - followed by some garbled data.
Now repeat steps 5 through 7.
We see that the end of .1.bin has changed.
If I repeat 5-7 a second time, we see that .1.bin doesn't change, but .0.bin does? Concluding, it seems notepad stores session data alternatively, once in .0.bin and once in .1.bin. The initial session populates .0.bin, the next populates .1.bin, and back and forth.

Also, if you notice, notepad preserves cursor position between sessions, I assume that too, must be stored somewhere in those files or the main one. They're clearly a complete "Tab state" that has all the necessary info to recreate a notepad tab, including where the cursor was, etc.
OBSERVATION #3:
While notepad, was open, I tried adding more data to the file. What I noticed was the new data was added as XXXX appended onto the end of the original file content.
<original-file-contents> <garble> <byte 1 of new data> <8 bytes of garble> <byte 2 of new data> <8 bytes of garble> <another byte of new data>
.... (Or I guess, if it was UTF-16, 7 bytes of garble and two bytes of new data and so on... - which seems more accurate)
Pressing Ctrl+S to save immediately purges this garble garble and turns it into the same format that John saw in his video for a closed session.
Another curious thing I noticed was that while every action done caused a change in the file, curiously, notepad does not seem to have a REDO function. Or atleast, it isn't mapped to ctrl+shift+z.
Another, more curious thing is that "undo" seems to revert the entire file to its original state as saved. Discarding all new data in one step...
So I experimented with this some more. What seems to happen is that all actions taken in notepad get appended to the end of the bin file. Ex. Undo gets appended as 14 05 00 99 19 26 FB  thats then cleared when the file is saved.
Adding onto the theory that everything in the file while notepad is open is an action, and not data to be stored: If you paste text in an open window, the pasted text is visible in hex in one coherent, UTF-16 encoded block.
I got kinda fatigued at this point at it was getting late, but I hope whoever reads this gets a bit of a head start!

Also, if you notice, notepad preserves cursor position between sessions, I assume that too, must be stored somewhere in those files or the main one. They're clearly a complete "Tab state" that has all the necessary info to recreate a notepad tab, including where the cursor was, etc.

I didn't even notice! Good find. We can also see the cursor data in the bar at the bottom. I bet all of that data is stored in that metadeta structure that is right before the 3 lengths and the real buffer.
As far as observation 3 goes, it's a complete mystery. The whole systems acts differently sometimes. It's wild. I have also noticed that sometimes it appends a second version of the data, but not always complete, to the end. I assume this is like a history buffer of some kind, as well. Maybe it will make more sense once we figure out what is in the metadata structure. I know there has to be some sort of timestamp or something that is generated every save, as the last 4 bytes of the footer and 4 bytes in the metadata structure always change when you save the file, even if you change nothing.
I don't have the issue where undo reverts the entire file, although that could be depending on some conditions, maybe?

So I experimented with this some more. What seems to happen is that all actions taken in notepad get appended to the end of the bin file. Ex. Undo gets appended as 14 05 00 99 19 26 FB thats then cleared when the file is saved.

This is data at the end of the bin file or between the main text buffer and the "history" one?

I wonder if there's also a copy paste buffer. I do think you are right about the file format having all of the data for that tab. Similar to vim, I think, there's a buffer for copy paste in the text file I think? So that it remembers the last thing you cut copied or deleted. IDK about that third one, but vim definitely does that. Will have to keep it in mind when I am looking at these files again!

As far as observation 3 goes, it's a complete mystery. The whole systems acts differently sometimes. It's wild. I have also noticed that sometimes it appends a second version of the data, but not always complete, to the end. I assume this is like a history buffer of some kind, as well. Maybe it will make more sense once we figure out what is in the metadata structure. I know there has to be some sort of timestamp or something that is generated every save, as the last 4 bytes of the footer and 4 bytes in the metadata structure always change when you save the file, even if you change nothing.
I worked on this a bit more between classes, mostly with notepad open and the file unsaved (Working on the "live" buffer - while notepad is active in the background)

I decided to do a bit of work on the notepad bin file while notepad is running. It seems to live-edit the bin file as you type.
I believe every action in this state is simply appended to the file. As far as I could see, there is no backtracking or editing of earlier parts of the file, While notepad is open, it appends to the end of this tab file without deleting or modifying any earlier data.
I also believe every action in notepad, when appended, includes a "tail" of the form 00 XX XX XX XX where XX is seemingly random (possibly a checksum). I tested typing characters, backspacing, pasting, etc. Everything seems to have this "Tail" with one null byte and 4 bytes that follow.
Speaking of pasting text into notepad:
The pastes always seem to have a header length of 3 bytes or 4 bytes for smaller pastes. The length of the header behaves weirdly. Pasting X (67) characters  (<255) led to a 3 byte header twice. then pasting 68 characters made it a 4-byte header. Then pasting 67 bytes kept the 4 byte header. It is just weird....
Some constants though: When the length of the paste is <255, the last byte before the content is always the length of the content.
However this changes when the length is >255. length (tested with 267,268,269...) seems to still be stored in the header, but I see weird values like 8B/8C/8D followed by 02 (perhaps the length is approximated to XX * 02 = the actual length? For a 267 char paste, the header had 8B 02, but 8B * 02 is 278 not 267.... the values seem to increase with length but do not seem to equal the length of the paste but the length of something else)
The first byte of the header seems to be random.
The second byte seems to be a counter of sorts - only present on headers length >= 4. I have observed it staying the same or increasing by 2, but never decreasing, hence my deduction.
The third byte is null, and the next one or two bytes before the content seem to indicate some sort of length value as described earlier.
In general, I've seen pastes of the form
XX [CC] 00 LL [LL] ...<CONTENT AS UTF-16>... 00 XX XX XX XX
Where
XX - No idea what it does (garble / random)
CC - Somewhat behaves like a counter (+2 or same, never reduces)
00 - null byte
LL - Seems to indicate length (of... something.. Sometimes equals paste length sometimes approximately equals it)
[..] - Only present some times, not present other times.

EVERY action I did though, always had a tail attached immediately after the content which is nullbyte + 4 garble bytes. If you see anything to the contrary then do tell, because this pattern doesn't seem to change for me.
I also tried testing some other hypothesis:

We can also see the cursor data in the bar at the bottom. I bet all of that data is stored in that metadeta structure that is right before the 3 lengths and the real buffer.

I tried to narrow down where the cursor position is stored. It appears to be in the .0.bin or .1.bin files.
Test:

Open notepad on an existing txt file.
Move the cursor to the middle of the file.
Close notepad.
Delete both .0.bin and .1.bin
Reopen notepad: The cursor is at Line 0 Col 0.

However this changes when the length is >255. length (tested with 267,268,269...) seems to still be stored in the header, but I see weird values like 8B/8C/8D followed by 02 (perhaps the length is approximated to XX * 02 = the actual length? For a 267 char paste, the header had 8B 02, but 8B * 02 is 278 not 267.... the values seem to increase with length but do not seem to equal the length of the paste but the length of something else)

I think you are running into the varints, here. You can see how to decode those, here. This class assumes that you give it a buffer of the right size, but the function above shows how to figure out how many bytes are in the varint (the sign bit is set if there is another byte in the varint).

Another curious thing I noticed was that while every action done caused a change in the file, curiously, notepad does not seem to have a REDO function. Or atleast, it isn't mapped to ctrl+shift+z.

I don't have a w11 machine handy at the moment but I'm pretty sure its ctrl+y to redo in the new notepad. Probably to match microsoft word, which I think also uses ctrl+y for redo.

Another curious thing I noticed was that while every action done caused a change in the file, curiously, notepad does not seem to have a REDO function. Or atleast, it isn't mapped to ctrl+shift+z.

I don't have a w11 machine handy at the moment but I'm pretty sure its ctrl+y to redo in the new notepad. Probably to match microsoft word, which I think also uses ctrl+y for redo.

Weird. It's not in the interface at all, but ctrl + y does work. Thank you!

Hi,
I think I might be able to help you all looking at the buffer for unsaved changes. I have my notes and thoughts located in my repo: https://github.com/ogmini/Notepad-Tabstate-Buffer.
But in short, unsigned LEB128 is used to position, number of characters deleted, number of characters added. These are followed by the characters if any that were added stored as little-endian UTF-16. As was noted earlier, a 4 byte sequence follows. I haven't figured out what they are yet. It is actually really elegant how they stored this as this handles both normal typing, deletion, selecting, and copy/pasting.

Hi,
I think I might be able to help you all looking at the buffer for unsaved changes. I have my notes and thoughts located in my repo: https://github.com/ogmini/Notepad-Tabstate-Buffer.
But in short, unsigned LEB128 is used to position, number of characters deleted, number of characters added. These are followed by the characters if any that were added stored as little-endian UTF-16. As was noted earlier, a 4 byte sequence follows. I haven't figured out what they are yet. It is actually really elegant how they stored this as this handles both normal typing, deletion, selecting, and copy/pasting.
*EDIT
After some poking, those 4 bytes appear to be the CRC32 of the previous bytes.

Program.cs LN94 after the 01, its the selection buffer by the looks of it. The next byte after 00 01 is the selection start index (uLEB128 most lilkely) and the next one after that is the selection length (If nothing is selected, the start and end would be equal)
You can change your code to match and it should display correctly the selections
// LN94

byte[] un2 = reader.ReadBytes(2); // 00 01
ulong selectionIndex = reader.BaseStream.ReadLEB128Unsigned();
ulong selectionLength = reader.BaseStream.ReadLEB128Unsigned();

In my case selectionIndex would be 0 and selectionLength would be 18

Hi,
I think I might be able to help you all looking at the buffer for unsaved changes. I have my notes and thoughts located in my repo: https://github.com/ogmini/Notepad-Tabstate-Buffer.
But in short, unsigned LEB128 is used to position, number of characters deleted, number of characters added. These are followed by the characters if any that were added stored as little-endian UTF-16. As was noted earlier, a 4 byte sequence follows. I haven't figured out what they are yet. It is actually really elegant how they stored this as this handles both normal typing, deletion, selecting, and copy/pasting.
*EDIT
After some poking, those 4 bytes appear to be the CRC32 of the previous bytes.

CRC32 of the bytes just added or more than that?

Hi,
I think I might be able to help you all looking at the buffer for unsaved changes. I have my notes and thoughts located in my repo: https://github.com/ogmini/Notepad-Tabstate-Buffer.
But in short, unsigned LEB128 is used to position, number of characters deleted, number of characters added. These are followed by the characters if any that were added stored as little-endian UTF-16. As was noted earlier, a 4 byte sequence follows. I haven't figured out what they are yet. It is actually really elegant how they stored this as this handles both normal typing, deletion, selecting, and copy/pasting.
*EDIT
After some poking, those 4 bytes appear to be the CRC32 of the previous bytes.

CRC32 of the bytes just added or more than that?

There are actually multiple CRC32 checks in the file.
https://github.com/ogmini/Notepad-Tabstate-Buffer/blob/main/README.md#chunk-format-for-unsaved-buffer
https://github.com/ogmini/Notepad-Tabstate-Buffer/blob/main/README.md#file-format

CRC32 of the bytes just added or more than that?

@notarib-catcher  If you're talking about the last 4 bytes, its the CRC32 of everything after NP\0 till the end (excluding the last 4 bytes of course)

I'm currently trying to figure out the timestamp type of a saved file.
After the SavedFilePath there's the first mention of the Content length, following that there's 2 unknown bytes, after that, there's a volatile patch of bytes that change on every save. I believe this to be an 8 byte long timestamp.
The issue is, its incrementing from the left.

I'm currently trying to figure out the timestamp type of a saved file. After the SavedFilePath there's the first mention of the Content length, following that there's 2 unknown bytes, after that, there's a volatile patch of bytes that change on every save. I believe this to be an 8 byte long timestamp.
The issue is, its incrementing from the left.

I haven't started to tackle these unknown bytes yet. I jumped over to the Windowstate files since they seem a little shorter and might give insight into the Tabstate files.
Looking at what you've found, I would agree that those 8 bytes appear to be a timestamp of some sort. It might be related to FILETIME in the win32.api https://learn.microsoft.com/en-us/windows/win32/api/minwinbase/ns-minwinbase-filetime?redirectedfrom=MSDN

I could be completely wrong though. I haven't tried or tested.

I looked into this more and its partially correct.  I treated the 8 bytes as a ulong / int64 and used that to determine the file time. I got close (the time shows the year is 2097). Then I noticed, the 8 bytes could be a uLEB128 value if I included the 01 after the ED (As shown in the gif I posted previously).
In my tests, the uLEB128 value came out to<PHONE_NUMBER>06230621 which corresponds to a valid file time (which I converted to Unix time as<PHONE_NUMBER> which (according to discord's <t:1709983140:R>) is correct.
Here's my latest ImHex pattern
#include <std/mem.pat>
#include <std/string.pat>
#include <std/hash.pat>
#include <type/leb128.pat>

using ul = type::uLEB128;

struct SavedNotepadTab
{
    char NullTerminatedHeaderIdentifier[3];
    bool IsSaved;
    ul SavedFilePathLength;
    char16 SavedFilePath[SavedFilePathLength];
    ul TabContentLength0;
    u8 Unknown1[2];
    ul uLEB128FileTime;
    u8 Unknown2[32];
    u8 PossibleSpecialDelimiter[2];
    ul SelectionStartIndex;
    ul SelectionEndIndex;
    u8 PossibleSpecialDelimiterEnd[4];
    ul ContentLength2;
    char16 Content[ContentLength2];
    bool IsTempFile;
    u32 CRC32;
};

SavedNotepadTab tabState @ 0x0;

std::time::EpochTime unixTime = std::time::filetime_to_unix(tabState.uLEB128FileTime);
std::print(std::string::to_string(unixTime));

Very cool, I've playing around with imHex trying to learn it. The use of more uLEB128 makes sense since it appears everywhere else. Oddly, the Windowstate file appears to use uint16 for coordinates.

The unsaved tab doesn't look to have a timestamp in it, at least the ones I have tested.
I currently don't know how to have ImHex fill the array with the remaining chunks (see here)
I'm still curious about the unknown bool before the default CRC32 check.
From my observations it's shown the following

False on Saved File,
True on unsaved file,
False on unsaved file with chunks

I'm currently trying to figure out the timestamp type of a saved file. After the SavedFilePath there's the first mention of the Content length, following that there's 2 unknown bytes, after that, there's a volatile patch of bytes that change on every save. I believe this to be an 8 byte long timestamp.
The issue is, its incrementing from the left.

They aren't unknown bytes. Check the parser to see what they are. You are looking at the size of the buffer with account for special characters, like line feed, as the buffer only stores unix type line feeds, and omits the Windows one. If you have a newline with windows  type, this size (which is a varint) will be 1 larger than the buffer size listed before the actual text buffer for each newline.
then you have the encoding type and the carriage return type after that. Parser should hopefully clear it up for you.

Also this looks like mouse position? you said it's incrementing as if it were big endian, instead of little endian?

IDK if those are timestamps or what. They might be combined data, as, the timestamp makes no sense no matter what I compare it to. Mouse position might be more accurate, but idk. It's a very weird part of the file.

By volatile I mean that it changes on every save instance. Even when my mouse is at rest it changes.
E7 E8 8A C7 91 AF 9C ED 01 I've pretty much already confirmed at this point that its a timestamp since it returns the correct time. When I parse it as a uLEB128, those set of bytes equate to<PHONE_NUMBER>83342951 which is a valid Int64 required for a WindowsFileTime struct. When converted from FileTime to Unix you get a timestamp of<PHONE_NUMBER>
Accounting for timezone + DST, you get an accurate timestamp.

They've even confirmed on the post you've linked that it's a timestamp. I'll look into the other things for what the delimiters are in actuality in a little bit.

The 32 unknown bytes looks to be the SHA256 of the content. The CyberChef recipe is From Hex (Auto) -> Decode Text (UTF-16LE (1200)) -> SHA2 (Size: 256, Rounds: 64) When copying the hex bytes of the content

I have, and it's consistent, I've tried short text files and long text files. The selection indexes, and lengths all scale properly. I'm just left with figuring out what those delimiters mean. Since the one person said that there's not any delimiters, each value has a purpose.

Alright, well I gotta figure out how to get the FileTime properly in Rust. I can import the functions myself, but being lazy at the moment. The FileTime crate does not give me what I need.

Someone in the thread that I mentioned this one in, said they are working on a writeup where they have all of it figured out, btw. Just a heads up. Might wanna go subscribe to that thread if you are waiting for the update.

The 32 unknown bytes looks to be the SHA256 of the content. The CyberChef recipe is From Hex (Auto) -> Decode Text (UTF-16LE (1200)) -> SHA2 (Size: 256, Rounds: 64) When copying the hex bytes of the content

This is slightly incorrect. You need to hash the content in the file, as it is not stored the same in the tab-state. The encoding and the carriage return type effect the hash.

I just uploaded the a .bt file. Only thing it is missing right now is the extra buffer after the main buffer, if it exists,
https://github.com/Nordgaren/tabstate-util/blob/8e30c391e2e437ea57caf206f42ce5e777f5361c/TabState.bt#L1-L0

The 32 unknown bytes looks to be the SHA256 of the content. The CyberChef recipe is From Hex (Auto) -> Decode Text (UTF-16LE (1200)) -> SHA2 (Size: 256, Rounds: 64) When copying the hex bytes of the content

This is slightly incorrect. You need to hash the content in the file, as it is not stored the same in the tab-state. The encoding and the carriage return type effect the hash.

Thanks, I've gone ahead and updated my pattern to reflect that.

        u8 Encoding;
        u8 CarriageReturnType;
        ul FileTime;

        u8 ContentHash[32];
        u8 Padding;

Btw, this is what I think you were missing from an earlier post.
The 0 after content hash might be padding or something else, but, i have been considering the cursor start delimiter to be 01 and the end delimiter to be 01 as an int. I am not sure about this part, though, but if you look at the other states, the marker start and end is the same. Starts with a single byte 1 and ends at the 4 byte 1. I also don't thin the 0 is part of the marker as, that would make the first 1 big endian and then the second 1 for the marker little endian, which would be quite odd. Obviously you can read this, but, it's less straight forward to mix endianess like that.

I will be adding all of you to the readme in the thank you section, shortly. I am going to link your githubs, but, let me know here if you would like a different link to be used!

A lot to catch up on here. Thanks to @JustArion for the imHex patterns and @Nordgaren for the Binary Template file. Very useful in comparing and learning how to use 010 and imHex.
Getting a little lost in the mix; but has anyone looked further at the 0.bin and 1.bin files? @notarib-catcher
https://github.com/ogmini/Notepad-Tabstate-Buffer?tab=readme-ov-file#0bin--1bin
At this point, the only part I can't figure out are:

some variable 2 or 3 bytes before the selection start and end
4 bytes after the selection start and end (Do always appear to be that 4 byte 1 or 0x00 0x00 0x00 0x01)

I might give writing an imHex pattern or 010 Binary Template for this a shot.

@Nordgaren @JustArion
Looking at your pattern and template files, specifically the header part. I don't think that the 3rd byte is a NULL or a delimiter. Granted, it is always 0 for the non-0.bin and 1.bin files (I'm calling these state files for now).  In the state file, it appears to be a uLEB128 sequence number that continues to count up over time. Lets the program know which is the last state file and which is the backup. I doubt those numbers will ever change from 0x00 for the non-state files; but it just seems too similar to the state file to be different.

@Nordgaren @JustArion
Looking at your pattern and template files, specifically the header part. I don't think that the 3rd byte is a NULL or a delimiter. Granted, it is always 0 for the non-0.bin and 1.bin files (I'm calling these state files for now). In the state file, it appears to be a uLEB128 sequence number that continues to count up over time. Lets the program know which is the last state file and which is the backup. I doubt those numbers will ever change from 0x00 for the non-state files; but it just seems too similar to the state file to be different.

Yea, I mention this in the parser. I keep it as null for now until I figure out the significance. It could just be junk, though, when it's not null, which seems to be the case.
the uleb128 you are speaking of might actually be replacing the 0 or 1 for the saved/unsaved state, which I have seen happen. It basically just tells you how many bytes there are until the footer.
It's hard to tell, as, there is definitely a condition where a junk file can be generated.

My next line of thought is to check the notepad exe, itself. There are some strings which have been helpful, and I might have found where notepad writes the header bytes, but, I am no at home, so the reverse engineering is slow going (I only have one screen on my laptop)
But I think we can get some more definitive answers if I look into the notepad exe a bit more. It's in C++, so we might even luck out on getting some RTTI data :)

I think I figured out the WindowState files for anyone interested. Far simpler file.
https://github.com/ogmini/Notepad-Windowstate-Buffer/

The issue is, its incrementing from the left.

Being able to see the file update in realtime seems extremely useful - what application is that?

@Nordgaren - are you planning to publish the BT file to 010 Editor?

@Nordgaren - are you planning to publish the BT file to 010 Editor? I'm hoping you are.

I think someone else had, already. I can upload mine, if it's better, or the person who has uploaded theirs is free to update theirs with mine!

@Nordgaren - are you planning to publish the BT file to 010 Editor? I'm hoping you are.

I think someone else had, already. I can upload mine, if it's better, or the person who has uploaded theirs is free to update theirs with mine!

I submitted one for the windowstate file. I don't believe there is one for the tabstate file.

Did they change this format up?

Looks like there is a new version. 11.2410.20.0
I'll take a look tomorrow.

Did they change this format up?

After a really quick perusal, nothing major appears to have changed. Do note, the behavior of the "Content" section has changed over time. It used to contain far more information in the previous versions. I haven't had the time to write it up and fully research which version made the change.

I think my template is just way out of date. Didn't they used to store the entire buffer of the tab, and not just the changes?

I think my template is just way out of date. Didn't they used to store the entire buffer of the tab, and not just the changes?

Ah, yes. They changed that "slightly". They did previously store the whole buffer. I think around version 11.2408.12.0 it changed and no longer stores the whole thing. It essentially clears itself out if all changes are saved. Good from a security standpoint. Sucks from trying to retrieve information.
I touched upon the change over time here
The template on 010 Editor's repository should still work since the ContentLength will be correctly reported as 0. template link

Awesome. Thank you for the update! I did see than your 010 template works. Appreciate all the effort on keeping it up to date! I'll have to take care of that with my Rust parser, soon.


Month select plugin is not using the native month picker on mobile.

https://jsfiddle.net/69k2espu/3/ (Can't seem to get this to run on mobile)
Your Environment

flatpickr version used: vue-flatpickr-component: 8.1.5
Browser name and version: Chrome 79.0.3904.69
OS and version: Android 10, Pixel 2 - Build number QP1A. 191105.004

The month select plugin does not use the native month picker on mobile, it uses the standard date picker. Inspecting the element in shows the month picker used a type="date" attribute instead of type="month".
For example, this is the picker that appears when tapping on the month picker field:

And this is what should appear:

Can confirm.

Firefox Mobile 68.2.0esr
Firefox Preview 2.3.0

Would be nice to have the native / mobile support for all plugins =)

add attribute
mode: 'single' or 'range'
to fixed in mobile view

Sorry, I have same issue. Is there a way to completely resolve this with single mode?


add focus outline style for hyperlink

This PR fixes #15730
This PR fixes #15741
apply the same outline color we use everywhere else to hyperlink component

Pull Request Test Coverage Report for Build 992083600

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 42.754%

Totals

Change from base Build 991750224:
0.0%

Covered Lines:
26168

Relevant Lines:
55576

💛  - Coveralls

do you mean the text is not center aligned? @Charles-Gagnon

Well, not sure exactly what's causing it but yes the text should be center aligned within the box.

@Charles-Gagnon that is because Aasim added a padding-left for it, @aasimkhan30 padding is within the component and margin is not, if you want to control the spacing between components, you should use margin:

please update the code accordingly, I noticed a bunching of padding-left in the sqlServerDashboard.ts, please review and make sure they are used properly.


Suggestion to have internal link check

As part of the workflow.
Ie check that all internal links that are mentioned in manuals actually (still) have the page that is linked to.

double-upvote

Sphinx always reports on broken internal links (if they are made as
internal links and not general web links).  This action is a "problem
matcher" that somehow parses the output and produces error messages
for anything broken:
uses: @.***
But, yeah, it doesn't fail on warnings.  Sometimes I have seen sphinx
warn too much, though that isn't the case here.  SPHINXOPTS=-W would
make sphinx fail on errors, and do this (and more).  Can be set in
Makefile or .github/workflows/sphinx.yml

In the linked PR, it seemed that warnings in the action were enough.  Is that the case?


Azure Key Vault provider is crashing on GPU nodes

Have you

[x] Read Troubleshooting Guide
[x] Searched on GitHub issues and Discussions

What steps did you take and what happened:
When using a GPU nodepool with AKS, pod is crashing on the GPU nodes. On the CPU nodes, pod is running fine.
Warning  Failed     27m (x5 over 29m)      kubelet            Error: failed to create containerd task: OCI runtime create failed: container_linux.go:344: starting container process caused "chdir to cwd (\"/home/nonroot\") set in config.json failed: permission denied": unknown

csi-secrets-store-provider-azure-7pvhx                            0/1     CrashLoopBackOff   10         29m     10.x.x.x   aks-gpunodepool-x-vmss000000   <none>           <none>
csi-secrets-store-provider-azure-l6vb2                            1/1     Running            0          29m     10.x.x.x   aks-cpunodepool-x-vmss000000   <none>           <none>
csi-secrets-store-provider-azure-secrets-store-csi-driver-lgnww   3/3     Running            0          29m     10.x.x.x   aks-cpunodepool-x-vmss000000   <none>           <none>
csi-secrets-store-provider-azure-secrets-store-csi-driver-rph2j   3/3     Running            0          29m     10.x.x.x   aks-gpunodepool-x-vmss000000   <none>           <none>

What did you expect to happen:
Pod should be running correctly in any type of nodes.
Anything else you would like to add:
Rollback to 0.19.0 works just fine. I guess the issue is the cap drop and the GPU node in Azure:
          securityContext:
            runAsUser: 0
            capabilities:
              drop:
              - ALL

Which access mode did you use to access the Azure Key Vault instance:
User Assigned Managed Identity
Environment:

Secrets Store CSI Driver version: (use the image tag): 0.0.20
Azure Key Vault provider version: (use the image tag): 0.0.23
Kubernetes version: (use kubectl version and kubectl get nodes -o wide):

aks-cpunodepool-x-vmss000000   Ready    agent   6d17h   v1.20.7   10.x.x.x    <none>        Ubuntu 18.04.5 LTS   5.4.0-1047-azure   containerd://1.4.4+azure
aks-gpunodepool-x-vmss000000   Ready    agent   6d17h   v1.20.7   10.x.x.x    <none>        Ubuntu 18.04.5 LTS   5.4.0-1047-azure   containerd://1.4.4+azure

Cluster type: (e.g. AKS, aks-engine, etc): AKS

@EppO Thanks for reporting this. Could you also provide logs for failing provider pod?

I am facing the same issue. When can I expect it to be fixed?

@linearfunctional looks like this is related to a runc regression in rc93: https://danielmangum.com/posts/runc-chdir-to-cwd/
it's fixed in rc94: https://github.com/opencontainers/runc/pull/2894
Can you verify if you are running rc93 by running runc --version in your node? and can you upgrade your node pool, which should upgrade your runc version to rc95 or later and confirm if that fixes your issues?


[FLOC-3901] Refactor some of the groovy code to reduce duplication.

Rather than relying on constructing the same or similar strings in several
places use functions to encapsulate the details to reduce the chance of a
mismatch.
Unify some of the job definition as indicated by XXX comments.
Extract the code to trigger a sub job from a multijob without failing the
multijob in to a function.
Migrate from using "job" to trigger a sub job from a multijob as that is
deprecated in favour of using phaseJob. This is currently showing the
deprecation warning on the live instance.

Looks good, thanks. Much clearer. (I wish we had tests).


Link test for MKL

This means intel-mkl flag does not works, and the test for MKL does not passed :<

This is due to the intel MKL FFT does not supports half-complex format
https://software.intel.com/en-us/mkl-developer-reference-c-one-dimensional-real-to-half-complex/half-complex-to-real-ffts


[BUG] Compilation error with space character in path

Describe the bug
This issue originally comes from https://github.com/ml-explore/mlx/pull/662#issuecomment-1937059692
I've found the origin of the compilation error: when building mlx from a path comprising a space character, it fails.
To Reproduce
Include code snippet
git clone https://github.com/ml-explore/mlx.git
mkdir "a folder"
mv mlx "a folder" && cd "a folder"
cd mlx && mkdir build && cd build
cmake .. && make -j

Desktop (please complete the following information):

MacOS 14.2
cmake version 3.28.2
GNU Make 3.81

Thanks for debugging this! Easy fix when we know the exact problem 😄


SAN certificate for Exchange 2013 (PrivateKeyMissing)

Hey I've followed guide "How to generate a SAN Certificate for Exchange 2016, 2013 & 2010" on https://github.com/Lone-Coder/letsencrypt-win-simple/wiki/Create-a-SAN-certificate-for-Microsoft-Exchange-2016,-2013-&-2010. But I'm running into a problem on "Updating website bindings to use the new certificate (Exchange 2013)". Importing the certificate to Exchange gives no error messages using Import-ExchangeCertificate, however Get-ExchangeCertificate does not show the imported certificate. Trying to enable the imported certificate gives the following error:
[PS] C:\Windows\system32>Enable-ExchangeCertificate -Thumbprint *************************** -Services POP,IMAP,IIS,SMTP
A special Rpc error occurs on server S2: The certificate with thumbprint *************************** was
found but is not valid for use with Exchange Server (reason: PrivateKeyMissing).
+ CategoryInfo          : NotSpecified: (:) [Enable-ExchangeCertificate], InvalidOperationException
+ FullyQualifiedErrorId : [Server=S2,RequestId=*********************,TimeStamp=4/21/2017 12:56:05 P
M] [FailureCategory=Cmdlet-InvalidOperationException] FE3EAF97,Microsoft.Exchange.Management.SystemConfigurationTa
sks.EnableExchangeCertificate
+ PSComputerName        : s2.d2.local
Through some googling I've found this https://community.letsencrypt.org/t/ssl-cert-for-exchange-2013/1364/29. So it seems that exchange 2013 strips the private key from the certificate when there's is no password in the certificate.

I've run into this when trying to import keys into Remote Desktop Services (Issue #400). The quick fix solution was to import the PFX into a Personal store and re-export it without the extended attributes or additional certificates. It might not be stripping the private key so much as being unable to find the thing.
The long term solution would be to somehow specify what information goes into a LWS-generated PFX file. But I'm just as happy if I can script the import - re-export in PowerShell or something.

I just finished and tested an import / re-export script in PowerShell that can strip off unneeded details in a PFX file, so a non-IIS service like RDS can use it. I think it'll fix the problem with Exchange 2013 as well. Check issue #400 for the script sample.

Maybe related to #420 too?

Could you test with v1.9.7?


[Help] Nginx configuration

I try to nginx config but I had failed ( refer #81 issue )
/api/* request 500 error is occurring.
Nginx config is below, could you help me please?
server {
    server_name mydomain.com;
    listen 80;

    root /var/www/html/mydomain.com/backend/public;

    access_log /var/log/nginx/pdns-access.log;
    error_log /var/log/nginx/pdns-error.log;

    location / {
        root /var/www/html/mydomain.com/frontend;
        try_files $uri $uri/ /index.html;
    }

    location /api {
        try_files $uri $uri/ /index.php;
    }

    location ~* \.php$ {
        if ($request_uri ~* "/api(.*)") {
            set $req $1;
        }
        fastcgi_split_path_info ^(/api)(/.*)$;
        include /etc/nginx/fastcgi_params;
        fastcgi_pass unix:/var/run/php-fpm/php-fpm.socket;
        fastcgi_param    SCRIPT_FILENAME $request_filename;
        #fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param    REQUEST_URI $req;
        fastcgi_read_timeout 900;
    }

    #error_page  405     =200 $uri;
}

As I also said in #81 i have no experience using Nginx with PHP therefore I can not help you here.


ContextException

Since there is no comment or description here, I honestly can't remember what this is supposed to be.


Change searchbar placeholder text across Cardflow

Change all searchbars' placeholder texts from "Type / to search" to "Search".
Old:

New:

Hey! I'd love to work on this

Heyo. I assigned it to you, have fun!


Apex governor limit warning

Merging contacts and converting leads send out these warnings:
Operation: /apex/npsp__LD_LeadConvertOverride
By user/organization:
Caused the following Apex resource warnings:
npsp:Number of SOQL queries: 85 out of 100
Operation: /apex/npsp__CON_ContactMerge
By user/organization:
Caused the following Apex resource warnings:
npsp:Number of SOQL queries: 59 out of 100

Hi there
We don't provide support via GitHub. Please could you instead post this on the Power of Us Hub NPSP group here: https://powerofus.force.com/s/group/0F980000000CjReCAK/nonprofit-success-pack
Thanks
James


How to styel Markdown Code

I have an issue theming for  code
Markdig version : <IP_ADDRESS>
VS version: 2022 preview 3.0;

It seems that markdig  has  style for codes
.
However, what target framework controls the style that should be applied? should it be applied to Textblock or something else?

I got it

I reopened it, I need to know for code blocks
Code block
code block

Starting to look like a duplicate of #23, #24 and #30.
Styles can be overridden with the keys mentioned in your screenshot. There you can define text font, color as well as background color and any other style properties already supported by Paragraph.

Hi @Kryptos-FR nice Paragraph works fine for me.
I have one more question how  writing code blocks with specific language colorization like  csharp
public void MakeDeposit(decimal amount, DateTime date, string note)
{
}

public void MakeWithdrawal(decimal amount, DateTime date, string note)
{
}

@zewditu this is currently not supported.
It would require quite a lot of work to have different renderer strategies based on the language including parsing the text that goes inside a code block.
Currently this repository is in maintenance mode as I don't have time to work on new features. Contributions are welcomed.


Add response headers in RequestRateLimiterWebFilterFactory

Headers for rate, tokens left, etc...

https://stackoverflow.com/questions/16022624/examples-of-http-api-rate-limiting-http-response-headers


Deduplicate images, samplers, textures

This PR adds logic to writer.AddTexture() method to check and reuse existing resources if they are identical to newly added, instead of adding more.
Images are compared by URIs only, since byte buffer embedding is not supported yet.
Samplers are compared by four numeric values they have.
Textures are compared by source (image) and sampler indices, and by the extensions map.
ChildOfRootProperty values are not checked for any objects.

This change of behaviour required minor changes in the extension tests - the textures in the extensions now need to be actually different so they are given different indices. An empty texture is identical to any other empty texture, so I made them non-empty.

Hmm, nope, using pointers here for texture dedupe was a bad idea.
Effectively, what was done here in the earlier version of the PR - I now have to do on the client side.  have to deduplicate the textures myself before sending them to polyform.
I think this using pointers is a wrong approach in principle. This approach actually means no real deduplication within the library, because if the pointers are pointing to the same object - deduplication was already done by the client. So the heavy lifting was done, and the all that library is doing is not screwing it all up.
I think the library should in fact do this heavy lifting and do real deduplication - object comparison and reuse the same object index in GLTF if the values are the same, even if the actual instances in memory are different.
With meshes the approach was different purely because of technical limitations - comparing large meshes directly by vector attribute values is prohibitively expensive. So that was pushed onto the client where the logic and metadata around the scene creation allow to avoid direct comparisons.
For all other objects - comparison is not technically difficult and should be done by the library. I'll make another PR.


Build: treat SwiftDriver as a private link dependency

This module is marked as @_implementationOnly.  The users of Build
should not have to link against SwiftDriver.

@swift-ci please smoke test

@swift-ci please smoke test macOS platform

@swift-ci please smoke test macOS platform

@swift-ci please smoke test macOS platform

@swift-ci please smoke test macOS platform


Feature Request: Support for RPC method with two stream requests and one stream response

Feature Request: Add RPC method with multiple stream requests and one stream response
Overview
I'm proposing a new feature that allows the definition of gRPC methods where the server accepts multiple independent stream requests (e.g., two or more) and processes these streams concurrently, returning a single stream response.
Motivation
Currently, gRPC supports bidirectional streaming, where both client and server can stream data. However, it is limited to one request stream and one response stream. For some use cases, it would be useful for the server to handle multiple concurrent request streams (from the same client) while sending back a unified or processed stream as the response.
Use Cases

File transfer and processing: A client may stream two large files (or multiple files) concurrently to a server, which processes the data and streams back results in a single response stream.
Multi-data source streaming: Scenarios where a client needs to stream data from two independent sources (or more) and the server performs real-time merging or processing on those streams, then responds with a single stream of results.
Real-time collaboration applications: For applications requiring concurrent real-time input (e.g., from multiple sensors, cameras, or other data sources), the server can consume multiple streams of data, process them together, and return a single result.

Proposal
Introduce a new method signature in .proto files that allows for defining multiple request streams. For example:
service MultiStreamService {
  rpc MultiStream(stream Request1, stream Request2) returns (stream Response);
}

how would that map to the transport HTTP2 protocol? Note that the current protocol is at https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md

I solved the issue with WebSocket