Feature: Tracking of borrowed pool connections

Glossary:

Available connection is in the pool (and may or may not be an idle connection)
Borrowed connection is one that has not been released nor .end'd

Problem:

The default behaviour of the pool is that getConnection will never return if the pool is exhausted and Borrowed connections are never released (by one or more code paths)
The caller doesn't know this occurs

Solution:
My strategy is information-first - allow the coder to inspect a borrowed list and determine if there's a problem. This is the MVP. But here's a fuller suite of development that I recommend:

Register connection into Borrowed list, when getConnection yields a connection
Remove from the Borrowed list, when .Release is called (also for .End ?)
Add BorrowedAt meta-data to the connection object, so the coder can enumerate Borrowed list and report when there are old connections in there beyond a threshold
Add Lifetime field { Permanent, Longer , Short } - which helps the coder enumerate the Borrowed list
Add Context field - which allows any data, such as a string, 'Report for Finance'
Add internal support for the Lifetime field - if it's Permanent, create a new connection, not from the pool, but still include in the Borrowed list. If it's Longer or Short, Borrow out from the pool as usual.
Internal checking of Short/Longer Borrowed connections. If Short connection persists for more than 10 seconds, trigger a public event "Expire". This needs to be handled by the external user, if they want to properly log any expiries and thereby find connection-pool leaks.
getConnection timeout - the callback will be fired and err parameter set, if connection cannot be obtained within timeout limits
getConnection fail by default - if the connection pool is exhausted - I think this is already possible.
inline .query function which wraps the complexity of getConnection and .release, so the caller can't forget.

Any other ideas? Are there any weaknesses in my suggestion?

Hi @merarischroeder, great stuff! I've mostly read through it all and I have a few comments below. When do you think you'll be able to get started on making some pull requests to implement this stuff?

getConnection timeout - the callback will be fired and err parameter set, if connection cannot be obtained within timeout limits

:+1:

getConnection fail by default - if the connection pool is exhausted - I think this is already possible.

Yep, it is already possible, but setting the queue size to zero. Obviously it would be a major version bump to change it from where it is today (infinity), and the number would have to actually be something reasonable that would not cause simple DoS vectors against a website (defaulting to no queue would easily do that).

inline .query function which wraps the complexity of getConnection and .release, so the caller can't forget.

Doesn't this already exist? How is this different from the current pool.query method?

When do you think you'll be able to get started on making some pull requests to implement this stuff?`

Good question. I would start with just Borrowed list with no other features to begin with. Give me a week and give me a prod, if it hasn't happened yet.

Doesn't this already exist? How is this different from the current pool.query method?

That's embarrassing, I didn't realise that was there. I assumed it wasn't.

Good question. I would start with just Borrowed list with no other features to begin with. Give me a week and give me a prod, if it hasn't happened yet.

Cool. I know you laid out some things around this, and I didn't really comment on them, mainly because I don't fully understand what you're asking for, so I very much look forward to seeing some kind of work in progress code to understand what your proposal is around this :) I don't know if/what makes sense for this module (which is a low-level driver module, not a ORM) because I don't really grasp what you are suggesting and how it would be used. I'd probably better understand if I can see the code example and code examples of using the feature, which would be apparent in the PR :)

Doesn't this already exist? How is this different from the current pool.query method?

That's embarrassing, I didn't realise that was there. I assumed it wasn't.

Oh, haha :) I guess when you start working on a pull request, you'll get more familiar with the module :)

which would be apparent in the PR

True. Let the code speak.
Say, do I need to write tests for this as well?

@dougwilson
I have NEVER done a fork - PR before. What do you expect?
I have already forked, and was going to just make the change locally, then hoped I could simply send you the PR. Any branches required in my fork to make it easier?

Do I need to write tests for this as well?

Yea, usually the general PR for any GitHub project is to (1) have working code (2) add all applicable tests for the change if the project has tests (this does) and (3) add documentation for the changes if the project has documentation in the repo (this does).
Those are just the very simple ones. I mean, we're here to work with you on the PR, so you can't exactly "do it wrong" as we'll provide feedback to help during the process :)

Any branches required in my fork to make it easier?

There isn't, but it's good practice to always make a branch and work on it. The reason is you can then make multiple PRs, try out different things on different branches, etc. Once you make a PR, if you make it on your master branch, as long as the PR is open, you cannot touch your fork, as any changes in master will automatically appear in the PR. If you use a different branch, it's a lot easier to manage this. Ultimately it's whatever you're most comfortable with.

Let the code speak.

Proof of concept done: https://github.com/merarischroeder/mysql/commit/1e7855c8969442015ac89aaf53e8eddeecd04e9e
It's not run/tested yet. But you get the idea.
Feedback please.
After my approach survives critique, I'll move ahead with testing.

Ah, I think I understand what you're thinking. I think there is a current open issue proposing exactly what you are trying to do, and I think it's been even more fleshed out. I'll have to take a look through the issues tomorrow to see which one. I think from what I remember, the idea was to do it using events instead of internal tracking, especially because it's less overhead for people who do not need that tracking and also makes it easier to write the code that would actually use that feature.
Can you provide some kind of code demonstration of exactly how a real-world application would would use the API you made in your PoC? That would help a lot in trying to flesh out the API.

@dougwilson A simple config setting could enable the feature. It would make most sense to me for the pool to internally track what is currently borrowed.
//...
pool.config.trackBorrowedConnections = true;
//...
function findNeglectedConnections(pool)
{
    var neglected = [];
    var bc = pool.BorrowedConnections;
    var d = new Date();
    var expiredThreshold = d.setHours(d.getHours() - 2);

    for (var i = 0; i < bc.length; i++)
    {
        if (bc[i].borrowedAt < expiredThreashold)
        {
            neglected.push(bc[i]);
        }
    }
   return neglected;
}

var neglectedSet = findNeglectedConnections(pool);
console.log('Neglected connections:');
for (var i = 0; i < neglectedSet.length; i++)
{
    console.log(neglectedSet[i].borrowedAt + ': ' + neglectedSet[i].context);
}

Ah, @merarischroeder, I see. I mean, obviously the pool already tracks that (it does that because it keeps a list of all connections and a list of free connections; borrowed is the intersection of those two lists, easy to derive). So looking at your example code, I think for what you are trying to do, determine if there is a neglected connection after a certain period of time, an event interface would be a lot better & more efficient, because I assume what you're going to do is constantly call findNeglectedConnections() in your code over and over again, in the hopes that at one point it will find something. An event-based system would not require that type of polling mechanism. I'll see what I can put together as an example some time this week for you :)

It looks like this is probably a duplicate of the issue #1366 ?

Also may be a duplicate of issue #1449

Have just made an updated with the config:
https://github.com/merarischroeder/mysql/commit/4399f438b350cb9d6020a005ee950a273949ce13

An event-based system would not require that type of polling mechanism.

There is no way around it, ultimately you need to poll something like findNeglectedConnections. There is no event in the pool which would trigger when an arbitrary amount of time has elapsed since borrowing. So there would need to be a setInterval for checking. But the standards for expiry are completely dependent on the application, which is why findNeglectedConnections would be external to mysql module, but borrowedConnections would be a function from the pool.

intersection of those two lists

If there's only a pool of 100, and you only check ever 10 mins, then an intersection will work when the caller calls pool.getBorrowedConnections(). But if there's more and/or the call to getBorrowedConnections is several times a second, then it's different. I suspect the former is fine though, and that a calculated intersection would be acceptable.

There is no way around it, ultimately you need to poll something like findNeglectedConnections. There is no event in the pool which would trigger when an arbitrary amount of time has elapsed since borrowing. So there would need to be a setInterval for checking. But the standards for expiry are completely dependent on the application, which is why findNeglectedConnections would be external to mysql module, but borrowedConnections would be a function from the pool.

I don't agree, which is why I want to show some code, if you can please wait a couple days for me to write it to show you my idea, like you are sharing your ideas with me :)

Also, can you evaluate those possible duplicate issues? We should move this conversation into one of those issues if they are the same issue, because over time, people subscribe to issues on GitHub, and talking on those issues keep those users involved in the conversation.

Also, can you evaluate those possible duplicate issues

Sure, but I do need more than 8 minutes to finish posts, read through threads, etc.
I see with #1449, you can setTimeout upon borrowing from the pool. But that would require an optional parameter to be added to getConnection, so the application can specify a per-call timeout length. There should also be a global config, which when set, specifies a fall-back timeout value.

Sure, but I do need more than 8 minutes to finish posts, read through threads, etc.

Sorry I'm just responding as fast as you are, my bad :) I'm heading off for the night, so you're free to take as long as you need. I'll try to circle back around sometime tomorrow :) !

P.S. while we were talking I wrote up https://github.com/mysqljs/mysql#contributing which should help give some initial information for you and future people who have never made a PR :) I was trying to get it finished tonight so you'd be able to read it overnight :) !

So I was able to whip up an example really quick (I need to go to sleep already :S) to demonstrate how I would envision an event-based system. The following shows a non-polling implementation by a user based on events that will simply console.log a message. This can very easily be extended to do a lot more (like read a context property on the connection, store the time the connection was acquired, etc.):
// PoC example for how an event-based tracking would function
// when creating the pool, call
// trackPoolConnections(pool, 600000 /* 10 mins */)
// to get alerts on long-standing connections
function trackPoolConnections(pool, limit) {
  var connections = new Map();
  pool.on('acquire', function (conn) {
    connections.set(conn, setTimeout(function () {
      console.log('Connection %d acquired past limit!', conn.threadId);
    }, limit));
  });
  pool.on('release', function (conn) {
    clearTimeout(connections.get(conn));
    connections.delete(conn);
  });
}

Thanks @dougwilson
I just implemented that in one of my projects. However, I will be simply adding a property to the connection object. (I also chose to have a callback, and use arrow functions of course)
static trackPoolConnections(pool, limit, cb) {
      pool.on('acquire', (conn) => {
        conn.timoutHandle = setTimeout(() => { cb(conn); }, limit);
      });
      pool.on('release', (conn) => {
        if (conn.timoutHandle) clearTimeout(conn.timoutHandle);
      });
}


testing with cypress - instanceof MouseEvent - targetTouches, triggering events

Cannot test apps with sliders in cypress because of this line
https://github.com/NightCatSama/vue-slider-component/blob/master/lib/utils/index.ts#L29
When I want to trigger some mouse movement event on vue-slider-dot I've got error because event is not instanceof MouseEvent somehow, and you are getting targetTouches for granted.
There are some libs that are not using MouseEvent directly.
I think that better solution will be to check if event has pageX and pageY properties and if not - check if it has any targetTouches within.
cypress code
cy.get('.vue-slider-dot')
      .trigger('mousedown', 'center', { which: 1 })
      .trigger('mousemove', {
        which: 1,
        clientX: offset.left - 10,
        clientY: offset.top
      })
      .trigger('mouseup', { which: 1, force: true })

Fixed in v3.0.27.
Thanks for the feedback.

thanks, now it's working with pageX property
.trigger('mousemove',{pageX: 100, pageY: 100})

thanks again


🔭 Roadmap

🔭 Roadmap

[ ] #406
[ ] #394
[ ] #403
[ ] #404
[ ] #372
[ ] #346
[ ] Improve module search speed

Next

[ ] #7
[ ] Module suggestion
[ ] Check if user can graduate on time
[ ] #405

When I have CS1101S, can it suggest other mods that have CS1101S as the prereq?


Site content is too wide on iOS

The content on session pages seem larger then the width of the screen and there is horizontal scrolling.
This was observed on Chrome and Safari

Thanks, working on it now.


yarn dev error

Hi, when I execute yarn dev, the process gets stuck here.

I just checked, it's working really fine.
@anyone-yuren probably you accidentally deleted the file, pls check your source:

you're running old version of NodeJS. please upgrade to >= 16.
if you can't do so, then open vite.config.js find the below line and update:
// from
const assetFolder = dir.split("/").at(-1);

// to
const assetFolder = dir.split("/")[-1]


Minor issue with types not declaring crop property

I added an onChange property to the widget, uploaded an asset successfully and console logged the returned info property. All the values are there however my linter warned me that the FileInfo type is missing the crop property: https://github.com/uploadcare/react-widget/blob/28fcc090af7cf316967cbdbe737e5eda1afab8a4/types/index.d.ts#L233-L246
Seems like crop contained height, width, left, top.

@davedbase you right! Thanks for report
I fixed types definition


net: lwm2m: ignore optional resource when not implmeneted

Per LwM2M specification <IP_ADDRESS>, "Optional Resources MAY be conveyed
in the "New Value" parameter as well; the LwM2M Client MAY ignore the
optional resources it doesn't support."
Update TLV/JSON writer to ignore error when object fields are not
found (treated as optional resource). This will allow the resources
supported being written.
Update PLAIN TEXT writer to return -ENOENT when object field is not
found which will avoid returning internal
ZOAP_RESPONSE_CODE_INTERNAL_ERROR but ZOAP_RESPONSE_CODE_NOT_FOUND
to the server
Signed-off-by: Robert Chou<EMAIL_ADDRESS>

@rbtchc I put up a new PR addressing the fact that no CREATE operation was defined in our client, as well as re-implemented your patch here: https://github.com/zephyrproject-rtos/zephyr/pull/1174
Please take a look and let me know what you think.

@mike-scott Did you try to write multiple resources to the client which mixed with mandatory/optional resources w/ TLV/JSON Format? Or just 3/0/15?

I did got BAD REQUEST RESPONSE when mixed w/ mandatory/optional resources.
Close the PR.


Ubuntu: Added flatpak-xdg-utils to extra-packages and linked flatpak-spawn to /usr/bin

This allows toolbox-vscode to work with the Ubuntu Containers. The package was introduced in version 20.04, that's why there is no changes on 16.04 and 18.04.

In  https://github.com/toolbx-images/images/pull/39 you mentioned that having less RUN statements, would generally be better. I could adjust this so it would not use a separate RUN command for the symlink. Let me know if I should change that.

What I meant in that PR is that I think that we should try to have as small images as possible and when doing package operations, that means using a single layer to be able to cleanup metadata after.
In this case, this likely has minor impact on image size and only adds a small layer so I'd say this is fine as is.


SSL3_ALIGN_PAYLOAD does not take DTLS record header size into account

This is an observation found during the implementation of variable length headers for DTLS 1.3.
OpenSSL has a couple of places were it aligns the records written in memory for performance reasons.

Shouldn't the full record size be taken in to account when doing byte alignment?
Is it intentional  that the alignment is calculated in many places only depending on SSL3_RT_HEADER_LENGTH even for DTLS?
Why is the alignment calculation differing between read and write functions?

Here are the places that alignment is calculated.
tls1_initialise_write_packets() (Not called by DTLS):
https://github.com/openssl/openssl/blob/f4c467452694e1211395d17c2c027d99c35ee1e1/ssl/record/methods/tls1_meth.c#L628-L632
tls_setup_write_buffer()
https://github.com/openssl/openssl/blob/f4c467452694e1211395d17c2c027d99c35ee1e1/ssl/record/methods/tls_common.c#L162-L164
tls_initialise_write_packets_default()
https://github.com/openssl/openssl/blob/f4c467452694e1211395d17c2c027d99c35ee1e1/ssl/record/methods/tls_common.c#L1578-L1583
tls_setup_read_buffer()
https://github.com/openssl/openssl/blob/f4c467452694e1211395d17c2c027d99c35ee1e1/ssl/record/methods/tls_common.c#L242-L244
tls_default_read_n()
https://github.com/openssl/openssl/blob/f4c467452694e1211395d17c2c027d99c35ee1e1/ssl/record/methods/tls_common.c#L315-L318

I think this comment is relevant to your question, somehow it seems to be deleted in master:
    /*
     * Using SSL3_RT_HEADER_LENGTH here instead of DTLS1_RT_HEADER_LENGTH for
     * consistency with ssl3_read_n. In practice it should make no difference
     * for sensible values of SSL3_ALIGN_PAYLOAD because the difference between
     * SSL3_RT_HEADER_LENGTH and DTLS1_RT_HEADER_LENGTH is exactly 8
     */

FYI, I found this comment here:
https://github.com/bernd-edlinger/openssl/blob/openssl-111-features/ssl/d1_lib.c#L514-L519

That helps a lot thanks. So it seems that the idea is to align the record body which happens in tls_default_read_n() and tls_initialise_write_packets_default(). And then tls_setup_read_buffer() and tls_setup_write_buffer() just calculates the maximal alignment that can occure.
I would expect tls_setup_read_buffer() and tls_setup_write_buffer() to calculate the same value?

tls1_initialise_write_packets() (Not called by DTLS):

In this case that function is not relevant to DTLS - it handles processing any prefix and then defers the rest of the processing to tls_initialise_write_packets_default. In DTLS tls_initialise_write_packets_default is just called directly.
The prefix is only relevant to TLSv1.0 or below (countermeasure against known-IV weaknesses in CBC ciphersuites which doesn't apply to DTLS).
If you look at tls_initialise_write_packets_default then that function does take into account whether DTLS is being used or not.

tls_setup_write_buffer()

This one does seem to take into account the DTLS header length?

tls_setup_read_buffer()

As does this one?

tls_default_read_n()

Hmm....this one does look potentially suspect.

But @bernd-edlinger's comment also looks valid.

tls_default_read_n()

Hmm....this one does look potentially suspect.

This one, right? :
tls_setup_read_buffer()
https://github.com/openssl/openssl/blob/f4c467452694e1211395d17c2c027d99c35ee1e1/ssl/record/methods/tls_common.c#L242-L244
Should I make a PR to make it similar to this? :
https://github.com/openssl/openssl/blob/f4c467452694e1211395d17c2c027d99c35ee1e1/ssl/record/methods/tls_common.c#L162-L164

tls_setup_write_buffer()
This one does seem to take into account the DTLS header length?

This is the only one that takes it in to account. Except if you take in to account the assumptions given in the comment from @bernd-edlinger 's example.
I'll make a separate function for the alignment calculation and include it in the DTLS variable header PR.

This one, right? :
tls_setup_read_buffer()

Oh....right, yeah...

I'll make a separate function for the alignment calculation and include it in the DTLS variable header PR.

Makes sense


Plugins/rss issue with cache (all_entries: no) and items without title

Expected behaviour:
the rss cache should work, even if there are items after an item with empty title.
Actual behaviour:
when there is an item with empty title that appears not at the very end of a feed, the cache does not work anymore
Steps to reproduce:

Step 1: in tests/rss.xml move an item that has a title towards the end of the file after the item that has no title (see  this pastebin  for the xml code that breaks the cache.
Step 2: run py.test tests/test_rss.py
the test: TestInputRSS.test_all_entries_no will fail because it finds entries also in the second run. See
this pastebin for the log output of the test (note that the first run produced 9 entries, the second run produced 7 entries).
Step 3:  revert back to the original tests/rss.xml
Step 2: run py.test tests/test_rss.py
the test: TestInputRSS.test_all_entries_no will be successful.

Config:
no changes to test configuration
Log:
https://pastebin.com/L5J0nQJ0
Additional information:

FlexGet version: git develop branch commit b466d7b25567e5c2e67981853e4f0f25cf81bebe
Python version: affects all versions (on Travis CI)
Installation method: github
Using daemon (yes/no): no
OS and version: mac os X (but also affects linux on Travis CI)
Link to crash log: none generated

I'm not sure we should change this. We already skip saving if the first entry has no title https://github.com/Flexget/Flexget/blob/develop/flexget/plugins/input/rss.py#L481. We should just expand this to check for empty titles.


Color: set the red ruler to yellow when recording is paused

...and fix ruler colors getting stuck when disabling the red ruler while recording.

:white_check_mark: Build sws 1145-master completed (commit https://github.com/reaper-oss/sws/commit/7500680003 by @cfillion)

Windows 64-bit

build/BuildUtils/SWS_Template.ReaperLangPack
build/BuildUtils/whatsnew.html
build/reaper_sws-x64.dll
build/reaper_sws-x64.pdb
build/sws-<IP_ADDRESS>-Windows-x64-yellow-red-75006800.exe
build/sws_python64.py

Windows 32-bit

build/BuildUtils/SWS_Template.ReaperLangPack
build/BuildUtils/whatsnew.html
build/reaper_sws-x86.dll
build/reaper_sws-x86.pdb
build/sws-<IP_ADDRESS>-Windows-x86-yellow-red-75006800.exe
build/sws_python32.py

macOS x86 64-bit

build/sws-<IP_ADDRESS>-Darwin-x86_64-yellow-red-75006800.dmg
build/reaper_sws-x86_64.dylib

macOS x86 32-bit

build/reaper_sws-i386.dylib
build/sws-<IP_ADDRESS>-Darwin-i386-yellow-red-75006800.dmg

macOS ARM 64-bit

build/sws-<IP_ADDRESS>-Darwin-arm64-yellow-red-75006800.dmg
build/reaper_sws-arm64.dylib

Linux x86 64-bit

build/reaper_sws-x86_64.so
build/sws-<IP_ADDRESS>-Linux-x86_64-yellow-red-75006800.tar.xz

Linux x86 32-bit

build/reaper_sws-i686.so
build/sws-<IP_ADDRESS>-Linux-i686-yellow-red-75006800.tar.xz

Linux ARM 64-bit

build/sws-<IP_ADDRESS>-Linux-aarch64-yellow-red-75006800.tar.xz
build/reaper_sws-aarch64.so

Linux ARM 32-bit

build/reaper_sws-armv7l.so
build/sws-<IP_ADDRESS>-Linux-armv7l-yellow-red-75006800.tar.xz

:white_check_mark: Build sws 1147-master completed (commit https://github.com/reaper-oss/sws/commit/9bea648be1 by @cfillion)

Windows 64-bit

build/BuildUtils/SWS_Template.ReaperLangPack
build/BuildUtils/whatsnew.html
build/reaper_sws-x64.dll
build/reaper_sws-x64.pdb
build/sws-<IP_ADDRESS>-Windows-x64-yellow-red-9bea648b.exe
build/sws_python64.py

Windows 32-bit

build/BuildUtils/SWS_Template.ReaperLangPack
build/BuildUtils/whatsnew.html
build/reaper_sws-x86.dll
build/reaper_sws-x86.pdb
build/sws-<IP_ADDRESS>-Windows-x86-yellow-red-9bea648b.exe
build/sws_python32.py

macOS x86 64-bit

build/reaper_sws-x86_64.dylib
build/sws-<IP_ADDRESS>-Darwin-x86_64-yellow-red-9bea648b.dmg

macOS x86 32-bit

build/reaper_sws-i386.dylib
build/sws-<IP_ADDRESS>-Darwin-i386-yellow-red-9bea648b.dmg

macOS ARM 64-bit

build/reaper_sws-arm64.dylib
build/sws-<IP_ADDRESS>-Darwin-arm64-yellow-red-9bea648b.dmg

Linux x86 64-bit

build/reaper_sws-x86_64.so
build/sws-<IP_ADDRESS>-Linux-x86_64-yellow-red-9bea648b.tar.xz

Linux x86 32-bit

build/reaper_sws-i686.so
build/sws-<IP_ADDRESS>-Linux-i686-yellow-red-9bea648b.tar.xz

Linux ARM 64-bit

build/sws-<IP_ADDRESS>-Linux-aarch64-yellow-red-9bea648b.tar.xz
build/reaper_sws-aarch64.so

Linux ARM 32-bit

build/sws-<IP_ADDRESS>-Linux-armv7l-yellow-red-9bea648b.tar.xz
build/reaper_sws-armv7l.so


Readme is still concerning.

Still sucks, i'm working on improving it even more.
1 - Fix formatting and make text more digestible.
2 - Properly mention members and their respective websites, also tag them.
3 - Add quality of life improvements, such as a progress bar for languages.
Any suggestions not only welcome but appreciated.

I have some ideas for the Readme right now, some include:

A languages section, with images for the languages instead of just text, and who is responsible for that language
Links in the read me that take you directly to each module folder of each language

We could start the document by introducing the project in a simple way, with no mention of a specific language or technology, then have a Header title for Languages and display them with their images as seen here https://github.com/HenriqueSSan.
When we expand to other fronts we can create other sections, like "Engines", "Linux Distributions" and also have them displayed, each icon displayed as seen in the previous example but centered and limited by row, then a section after all technologies that lists them sequentially by topic with a link to the main technology folder, for example, Right by the GO logo have the name GoLang be a link to it's folder specifically to a Readme on that folder, explaining the language, the structure of the folder, the users responsible for that language,  and the sources of where the knowledge from the folder come from.
Of course that would make Readmes for the Technologies folder necessary.

Some Readmes to take inspiration from:
Catpuccin: https://github.com/catppuccin/catppuccin
GOfiber: https://github.com/gofiber/fiber#readme
Good site to explore readme customization:
https://readme.so/editor (Readme editor)
https://stackedit.io/app# (Readme editor)
https://github.com/zalando/zalando-howto-open-source/blob/master/READMEtemplate.md#readme (Readme template)
https://github.com/dec0dOS/amazing-github-template#readme (Readme template)
https://github.com/abrahamcalf/programming-languages-logos/blob/master/readme.md (Language Logos)
This are just places to take inspiration from, let's try to make our Readme ourselves

Possible things to add, might do them today:

How to collaborate section
Add the MIT license
Write a better about
Add tags

Issue was finally adressed, yay!! #

Necromancy.
Reopening to give it the final address.

Done.


Allow an admin to set a default application status for a program

Is your feature request related to a problem? Please describe.
This feature request aims to address the following problems:

Reduce the number of emails and calls to program admins asking about application status by improving communication (both content and speed) with applicants around the status of their applications
Reduce the time Program Administrators take to manually update application status - with the number of applications expected for Fresh Bucks, the time required will be not feasible

[More detailed description can be found in the Application Status Management PRD]
Describe the solution you'd like

Using the existing application status feature, the admin can add a new status or select an existing status
The admin can set that status as a default
The admin can see which status is set to default when they look at their list of statuses
(A program is NOT required to have a default application status)
When a program has a “default status” added, all new applications to that program are automatically assigned the custom “default status” and the Program’s “custom email” is sent
Programs with default statuses do not send out the standard “application received” email
CiviForm applicants with accounts will see the “default status” on their programs view if they have applied (existing behavior)

Additional context
Detailed mocks
This feature is needed in order to launch Fresh Bucks in Seattle.

@isabelcshaw ,
To clarify this point:

Programs with default statuses do not send out the standard “application received” email

The email sent should use the Email the applicant about the status change text instead?


Create charteroak.txt

added charter oak state college
https://www.charteroak.edu/
https://www.charteroak.edu/cybersecurity/

@bpinkert Thank you for your patience while waiting for a review and processing your request. Pull request merged. Please start applying for JetBrains educational subscription at https://www.jetbrains.com/shop/eform/students in an hour, to allow the changes to propagate through JetBrains systems.


Exception in plugin_runner log when accessing scanner socket

Exceptions occurring in plugin_runner.log due to failing connection attempts to the device scanner socket:
[2018-05-20 20:15:03,293: ERROR/service_thread] Exception in main loop.  backtrace: Traceback (most recent call last):

  File "/usr/share/chroma-manager/chroma_core/services/__init__.py", line 75, in run
    self.service.run()

  File "/usr/share/chroma-manager/chroma_core/services/plugin_runner/agent_daemon.py", line 62, in run
    self._queue.serve(session_callback = self.on_message)

  File "/usr/share/chroma-manager/chroma_core/services/queue.py", line 106, in serve
    return ServiceQueue.serve(self, self.__route_message)

  File "/usr/share/chroma-manager/chroma_core/services/queue.py", line 70, in serve
    callback(message)

  File "/usr/share/chroma-manager/chroma_core/services/queue.py", line 80, in __route_message
    self.__session_callback(message)

  File "/usr/lib/python2.7/site-packages/django/db/transaction.py", line 224, in inner
    return func(*args, **kwargs)

  File "/usr/share/chroma-manager/chroma_core/services/plugin_runner/agent_daemon.py", line 179, in on_message
    HttpAgentRpc().reset_session(fqdn, self._plugin_name, message['session_id'])

  File "/usr/share/chroma-manager/chroma_core/services/rpc.py", line 555, in <lambda>
    return lambda *args, **kwargs: self._call(name, *args, **kwargs)

  File "/usr/share/chroma-manager/chroma_core/services/rpc.py", line 576, in _call
    rpc_client = RpcClientFactory.get_client(self.__class__.__name__)

  File "/usr/share/chroma-manager/chroma_core/services/rpc.py", line 497, in get_client
    raise RuntimeError("Attempted to acquire %s instance after shutdown" % cls.__name__)

RuntimeError: Attempted to acquire RpcClientFactory instance after shutdown

[2018-05-20 20:16:32,732: INFO/scan_daemon] Loaded 2 plugins, 0 sessions
[2018-05-20 20:16:32,746: INFO/queue] Purged 0 messages from 'agent_linux_network_rx' queue
[2018-05-20 20:16:32,762: INFO/queue] Purged 0 messages from 'agent_linux_rx' queue
[2018-05-20 20:16:32,782: INFO/scan_daemon] entering main loop
[2018-05-20 20:18:59,757: INFO/agent_daemon] New session
[2018-05-20 20:18:59,762: INFO/storage_plugin] StorageResourceRecord created 1
[2018-05-20 20:18:59,764: INFO/storage_plugin] Registered plugin instance <linux.Linux object at 0x7fc1681e4910> with id Linux
[2018-05-20 20:18:59,781: INFO/agent_daemon] New session
[2018-05-20 20:18:59,856: INFO/storage_plugin] StorageResourceRecord created 2
[2018-05-20 20:18:59,858: INFO/storage_plugin] Registered plugin instance <linux_network.LinuxNetwork object at 0x7fc16403f490> with id LinuxNetwork
[2018-05-20 20:18:59,916: ERROR/agent_daemon] Exception in agent session for linux from lotus-59vm15.lotus.hpdd.lab.intel.com: Traceback (most recent call last):

  File "/usr/share/chroma-manager/chroma_core/services/plugin_runner/agent_daemon.py", line 168, in on_message
    session.plugin.do_agent_session_start(message['body'])

  File "/usr/share/chroma-manager/chroma_core/lib/storage_plugin/base_plugin.py", line 122, in do_agent_session_start
    self._initial_populate(self.agent_session_start, self._root_resource.host_id, data)

  File "/usr/share/chroma-manager/chroma_core/lib/storage_plugin/base_plugin.py", line 187, in _initial_populate
    fn(*args)

  File "/usr/share/chroma-manager/chroma_core/plugins/linux.py", line 201, in agent_session_start
    devices = get_devices(fqdn)

  File "/usr/share/chroma-manager/chroma_core/plugins/block_devices.py", line 25, in get_devices
    _data = fetch_aggregator()

  File "/usr/share/chroma-manager/chroma_core/plugins/block_devices.py", line 18, in fetch_aggregator
    resp = session.get('http+unix://%2Fvar%2Frun%2Fdevice-aggregator.sock')

  File "/usr/lib/python2.7/site-packages/requests/sessions.py", line 476, in get
    return self.request('GET', url, **kwargs)

  File "/usr/lib/python2.7/site-packages/requests/sessions.py", line 464, in request
    resp = self.send(prep, **send_kwargs)

  File "/usr/lib/python2.7/site-packages/requests/sessions.py", line 576, in send
    r = adapter.send(request, **kwargs)

  File "/usr/lib/python2.7/site-packages/requests/adapters.py", line 415, in send
    raise ConnectionError(err, request=request)

ConnectionError: ('Connection aborted.', BadStatusLine("''",))

Isn't that the device-aggregator socket?

Are the escapes here expected:
resp = session.get('http+unix://%2Fvar%2Frun%2Fdevice-aggregator.sock')

regarding expected escapes, yes they were


Pub/Sub AWS SNS SQS - concurrent subscriber' handler calls

Describe the feature
AWS Pub/Sub SNS/SQS component pulls messages in bulks (to a maximum of 10 messages per bulk). The default bulk size is the maximum 10 messages.
Current implementation doesn't allow to concurrently pass those messages to the handler (effectively, to call the subscriber' handler endpoint), so effectively they are serially passed down to the handler.
Current Pub/Sub components support the metadata property concurrencyMode so it is suggested to take advantage of this property and use its value to discern if calling the downstream handler should be made concurrently (value of "parallel") or sequentially (value of "single")
Release Note

RELEASE NOTE:
ADD support for concurrently calling subscribers when bulk of messages are pulled from SQS

/assign


"sealer run -f Clusterfile" report errors

What happen?
"sealer run -f Clusterfile" report errors
cat Clusterfile
apiVersion: sealer.cloud/v2
kind: Cluster
metadata:
name: jdq-cluster
spec:
image: localhost/testshell:1.0
hosts:
- ips: [ <IP_ADDRESS> ]
roles: [ master ]
- ips: [ <IP_ADDRESS>,<IP_ADDRESS>,<IP_ADDRESS>,<IP_ADDRESS> ]
roles: [ node ]
ssh:
passwd: "k***1"
user: root
Relevant log output?
2023-01-05 18:48:40 [INFO] [pull.go:79] ace990753d28972246278aa6b52767fa0a98304f556ca933ba1c7a01c2dbeb40

panic: runtime error: index out of range [0] with length 0

goroutine 1 [running]:
github.com/sealerio/sealer/cmd/sealer/cmd/cluster.NewRunCmd.func1(0xc000574c80, {0xc0000b1ea0, 0x0, 0x2})
        /home/runner/work/sealer/sealer/src/github.com/sealerio/sealer/cmd/sealer/cmd/cluster/run.go:141 +0x7c6
github.com/spf13/cobra.(*Command).execute(0xc000574c80, {0xc0000b1e80, 0x2, 0x2})
        /home/runner/work/sealer/sealer/src/github.com/sealerio/sealer/vendor/github.com/spf13/cobra/command.go:872 +0x624
github.com/spf13/cobra.(*Command).ExecuteC(0x49647e0)
        /home/runner/work/sealer/sealer/src/github.com/sealerio/sealer/vendor/github.com/spf13/cobra/command.go:990 +0x3bc
github.com/spf13/cobra.(*Command).Execute(...)
        /home/runner/work/sealer/sealer/src/github.com/sealerio/sealer/vendor/github.com/spf13/cobra/command.go:918
github.com/sealerio/sealer/cmd/sealer/cmd.Execute()
        /home/runner/work/sealer/sealer/src/github.com/sealerio/sealer/cmd/sealer/cmd/root.go:74 +0x25
main.main()
        /home/runner/work/sealer/sealer/src/github.com/sealerio/sealer/cmd/sealer/main.go:32 +0x36

What you expected to happen?
No response
How to reproduce it (as minimally and precisely as possible)?
No response
Anything else we need to know?
No response
What is the version of Sealer you using?
0.9
What is your OS environment?
centos 7
What is the Kernel version?
3.10.0-1160.81.1.el7.x86_64
Other environment you want to tell us?

Cloud provider or hardware configuration:
Install tools:
Others:

@sunshinejdq , seems this bug is already fixed. i will close this issue, pls feel free to contact us if you have any questions .


Update/reorganize input files for BRD4(1); rename ligands in tables for consistency with rest of table

@GHeinzelmann : Do you have to create a separate commit for each file deleted? This ends up spamming everyone watching the repo with dozens of notification emails.

Oh sorry about that! I was looking for a way to delete them all at the same time, but I think it is not possible in the web version, so I had to do it one at a time. I did not know that you received e-mails for every one deleted, sorry about spamming your account! Now I am done replacing the files, but I'll do it differently next time.

Try the command-line interface, @GHeinzelmann , or if you really don't like that, the GUI version. Anything but the web interface. :)

Yes, actually I am fine working in the command line in my computer, since I was using it to pull the files from my branch using git push. A quick look online and now I have learned the git commit and the git push commands, so now I can make the changes in my computer and avoid these "quick and dirty" solutions from the web interface. Just made a test on the README file and it worked, so no more e-mail spams! :-)

OK so the pdb, sdf and mol2 files are ready to be merged to the master branch. It took a few days since I was discussing with @nhenriksen the best way to prepare the input files so that they are consistent between the guest-host and protein-ligand systems.
Also, should I make a table like in Niel's CD sets, including the experimental binding free energies for all ligands, and include it in the input files folder? Most of the information on the BRD4 ligands already covered in Table 7 from the main paper, so I was wondering if we should also include one in the input files as well.

@GHeinzelmann -- thanks for your work on this!

Also, should I make a table like in Niel's CD sets, with the experimental binding free energies for all ligands, and include it in the input files folder? Most of the information on the BRD4 ligands is already covered in Table 7 from the main paper, so I was wondering if we should include one in the input files as well.

If you don't mind, this would probably be helpful -- I think we want to progress in a direction where people can easily machine-parse the data they need out of the repo rather than having to pull things from tables in the paper.
Aside from that, is this ready to merge? I'll have some time to review things tomorrow and am going to try and look at Niel's PR then; maybe I can do this at the same time if it's ready.

Yes aside from the table it is ready to merge, I checked all the input files and I believe everything is OK. The table shouldn't take long to finish, it will probably be done by tomorrow since I can use Niel's as a template.

Just finished the table with the experimental/theoretical info for all the ligands, I believe it is ready to merge, pending a final review.

Thanks, @GHeinzelmann ! I'll hopefully have a look late today.

@GHeinzelmann - we just merged #47 so you'll need to update this one (e.g. git pull origin master, resolve any conflicts (hopefully not any or minimal), then commit and push). LMK if you need help.
I'm hoping to review shortly today, though we'll see if I really manage to get to it -- a couple other things to edit first.

No problem, I'll update my branch so it is identical to master, and include these last changes as well. I I think I should be OK, I'll just backup all my files and then make a few tests using git. Unfortunately I am away today, but I`ll get to it tomorrow so it is ready as soon as possible.

Big picture on this PR for the record, if I've got it right:

It reorganizes data files
Improves BRD4(1) README
Switches sd files to sdf files
Gives each BRD4(1) ligand a unique, paper-specific ligand identifier

I think I can give it a go, but I'll let you know if I have any problems merging the branches. I did not get the second part on how I should update the README.md file. I got a little confused in the changes not made in a release part, and how should I add these changes to the README file.
I think the list in the second comment covers the changes I made to the README and the files, so the big picture part looks OK. Thanks for reviewing the files and for the comments, :)

I'll take care of the README changes, @GHeinzelmann , and tag you so you can see what I do and know for the next time. I'll do it in a separate PR.

OK thanks, sorry for not knowing what you meant and not being able to make the changes right away.

I'll keep an eye on the new PR to know how it works the next time! :)


How can I create a connection when clicking on an element other than the output element?

I need to create a connection when clicking on an icon, I cannot move the position of the output element. When I click on the icon, it should create a line that the mouse has to follow and if I click on an input element, it should connect.
The output element is the red ball, the line has to come out of it when I click on the left icon and I have to follow the mouse until it reaches the input element

Simulate click in output?

https://github.com/jerosoler/Drawflow/issues/360

Or addConection ??

https://github.com/jerosoler/Drawflow/issues/809#issuecomment-1890996037

@jerosoler I believe it's to simulate, I managed to do it this way, but when I "release" the click, it doesn't connect to the input correctly
Screencast from 19-03-2024 15:17:51.webm
this is my code

The problem is connection is creating in mouseup event.
Solved this, complete example:
<!DOCTYPE html>

  <meta charset="UTF-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <title>Document</title>
  <link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/jerosoler/Drawflow/dist/drawflow.min.css" />

@jerosoler Thank you very much, it worked correctly.

@jerosoler is it possible for me to add the connection just by dropping the line anywhere in the node, other than directly in the input?

Exist
editor.force_first_input = true;

Try to see if this method works.

And work
    const editor = new Drawflow(id);
    editor.force_first_input = true;
    editor.start();

@jerosoler It's not working, I believe it's because I'm using Vue

With vue there should be no problem.
Review the events.

@jerosoler Ok, thank you very much for help. One question, is it possible to make a connection have a dashed line, but it would be in a specific case and also, I would like to know if it is possible to add a Vue component in the middle of that line, it would not be for label, it would be a component that would basically be a icon to delete the connection between nodes.

For dash view:

https://github.com/jerosoler/Drawflow/issues/748

I find a vue component a bit complicated. But maybe you can add an icon or svg and detect the click.
You can use the same technique as the lines but add an icon.

https://github.com/jerosoler/Drawflow/issues/18#issuecomment-991615989

@jerosoler I tried to add the click listener to the label as an example in this issue: https://github.com/jerosoler/Drawflow/issues/18#issuecomment-991615989 but it didn't work, apparently it can't add it and make it clickable.


F.1 Latex implementation not working

Feature details
See information here.
Additional information
No response

No LaTex issues in F.1 now!


Support STORE parameter for GEORADIUS and GEORADIUSBYMEMBER

See issue #855
This code mostly works, but there is a strange issue with empty results. When the result is empty (no members within this radius), the query times out instead of returning 0. I might have misused the Command or Codec?
Hopefully someone more familiar with Redisson internals can help.
Failed Tests:
1. RedissonGeoTest.testRadiusStoreMemberEmpty
    org.redisson.client.RedisTimeoutException: Redis server response timeout (3000 ms) occured for command: (GEORADIUSBYMEMBER) with params: [test, Palermo, 200.0, km, STORE, test-store]
        at org.redisson.command.CommandAsyncService$10.run(CommandAsyncService.java:646)
    ...

2. RedissonGeoTest.testRadiusStoreEmpty
    org.redisson.client.RedisTimeoutException: Redis server response timeout (3000 ms) occured for command: (GEORADIUS) with params: [test, 15.0, 37.0, 200.0, km, STORE, test-store]
        at org.redisson.command.CommandAsyncService$10.run(CommandAsyncService.java:646)
    ...

Great work! But there is some remarks. If you have a look at org.redisson.api.RSortable interface you may notice that it uses storeTo names. With key destination name and not from destination. Please rework your patch according this naming convention.
For example:
radiusStoreAsync(String fromKey, V member, double radius, GeoUnit geoUnit);
could be renamed to
radiusStoreToAsync(String destinationKey, V member, double radius, GeoUnit geoUnit);
the method itself applied against geo source and the destination

@mrniko I reworked the API to match RSortable.
The "empty" tests still error by timing out.

Thanks!

The "empty" tests still error by timing out.

I'll check it


Is this seriously the code quality of the SDKs?

https://github.com/coinapi/coinapi-sdk/blob/master/data-api/javascript-rest/coinapi_v1.js

Please ask valid complete question or provide more information, if you need assistance.


HOSTEDCP-1707: Update version support docs

What this PR does / why we need it:
Updates the version support doc page since it is out of date.
Which issue(s) this PR fixes (optional, use fixes #<issue_number>(, fixes #<issue_number>, ...) format, where issue_number might be a GitHub issue, or a Jira story:
Fixes HOSTEDCP-1707
Checklist

[x] Subject and description added to both, commit and PR.
[x] Relevant issues have been referenced.
[x] This change includes docs.
[ ] This change includes unit tests.

/test images

/test images

/lgtm

/retitle HOSTEDCP-1707: Update version support and upgrade docs


Add mention of ReactJS.NET

Add mention of ReactJS.NET for C# and MSBuild support. Eventually I'd like to split ReactJS.NET into a smaller project that isn't actually explicitly for React, but this will do for now. This part of ReactJS.NET isn't actually specific to React in any way, it's just wrapping Babel in the V8 or Chakra/MSIE engine (similar to the Ruby integration)

Thanks


[Bug] Broken discord link at start-learning button on homepage

Description
The Discord link hyperlinked to the start-learning button on the home page of the website is broken.
Screenshots

Additional information
No response

I was going to do a PR but lol saw this


Icons not rendering in build mode

All mdi icons of this component are not rendering after build.

Hi.
If you use treeshaking try this.
import VImageInput from 'vuetify-image-input/a-la-carte';

Thanks. Everything is fine now :)


Upgrade IOV Core to 2.0.2

Closes #88

IOV Core 2.x was pre-release before today. Now it should be semver stable. Let's see.


bugfix dscl provider

We need to compare with the UID, not a GUID. So we need to map the
correct field for comparison.
Also fix a bug in determining used uids.
This fixes this exception when the specified uid is actually in use by the
correct user:
Chef::Exceptions::RequestedUIDUnavailable: uid 48 is already in use

This resolves #2667.
@jaymzh will do the merge so it falls under his CCLA.

@patcox you have failing tests.

I'll check out the failing tests. I had some weird behavior when running the tests locally, so I wanted to create the PR to see what CI said.

@jaymzh - tests are fixed and passing.

Wow, the tests imply that GeneratedUID wasn't a typo, but they intended that... but clearly it doesn't work.
@sersut, @jtimberman, - what say you?

Seems fine to me, but we could be more expressive w/ the conditional and returns as I commented.

@jtimberman ?

Paging @sersut

:+1:

Sweet :+1:

OK, cool. :+1:

Hi. I am an automated pull request bot named Curry. There are commits in this pull request whose authors are not yet authorized to contribute to Chef Software, Inc. projects or are using a non-GitHub verified email address. To become authorized to contribute, you will need to sign the Contributor License Agreement (CLA) as an individual or on behalf of your company. You can read more on Chef's blog.
GitHub Users Who Are Not Authorized To Contribute
The following GitHub users do not appear to have signed a CLA:

@patcox

Please sign the CLA here.


Very helpful.

Thank you!
I am putting this to use in my work which takes a novel-ish approach to text classification based on LSTM.  I'm seeing a pronounced improvement as it appears to 'tame' the model, making it less prone to overfitting and less sensitive to hyperparameters like batch size.   A sure and steady march upward.
Quick question; how close does better_lstm get us to AWD-LSTM ?  It appears at first blush to cover a good deal of the same ground ...

Aside from activation regularization, I think this repo implements all the main ideas from AWD-LSTM that pertain to the LSTM

Side note - as I have seen continued success with this version, does it seem to you that "AWD-LSTM" really warrants a distinct name?  None of the features seem, to me, to seem a distinct idea (like, say, 'Attention'), rather the whole thing strikes me as a set of rather natural refinements.
What say you?


3.0 version can use in production?

Please prefix your issue with one of the following: [BUG] [PROPOSAL] [QUESTION].
Package version, Laravel version
Expected behaviour
Actual behaviour
Exception stack trace
Screenshot of Excel file
Steps to reproduce the behaviour

Wouldn't recommend that, it's far from being stable and released.


scalatest 3.1.0

Is anyone planning to upgrade scalatest to 3.1.0? Unfortunately it is binary incompatible.

@benhass as of fbb7b5357f32f15b86c7a70f16804411c17bef7f we're on ScalaTest 3.1.2


NULL strings in CSV export aren't quoted

System information:

Win10, DBeaver EE 21.2.0

Connection specification:

Reproduced in Mongo, Vertica..

Describe the problem you're observing:
Strings that replaces NULL values when you perform CSV export can't be quoted
Steps to reproduce, if exist:

Open table with NULL values
Start CSV export
Set string for NULL values and set Quote always as "all"

Expected:
All data are quoted
Actual:
NULL-strings aren't quoted

Quotes in CSV files are non-mandanory. Why do we need to quote them?

There were suggestions that it is important for someone to be able to quote absolutely everything that is in the exported data. I thought that for a reason this value itself is called null-STRING and there is an option to quote ALL (absolutely all?)

Now all quote mode will quote NULLs too. Added additional all but nulls mode that preserves old behavior.

New bugs for tables with NULLs, newlines and delimiters are lost during in export

Verified


Could you please add the onBlur property in the Configuration?

This is an excellent project. It would be wonderful if you could add the onBlur configuration. Sometimes the phone number input field needs to be validated lively, e.g. length, numbers only, etc. Thanks very much.

Was able to pass an onBlur callback using textProps which can be effective for any TextInput props:
 textProps={{ onBlur: () => { console.log("PHONE  BLUR") }, }}


remove unused clrWizardOpen binding

The build currently fails with the following error:
Step 3/10 : RUN $(npm bin)/ng build --prod --aot
 ---> Running in 08e43a1c0043
ERROR in src/app/configuration/environments/edit-environment/edit-environment.component.html(1,21): Property 'wizardOpen' does not exist on type 'EditEnvironmentComponent'.
src/app/configuration/environments/edit-environment/edit-environment.component.html(1,21): Property 'wizardOpen' does not exist on type 'EditEnvironmentComponent'.

This is due to setting the clrWizardOpen property and not using it (since the wizard is opened through other functionality).

LGTM


Generate assets as part of output

Should we have this compile the scss and give you a nice assets dir in the output path?

This should now be fixed in 0.2.0! Sorry for the delay in response.


Host discovery refactor, added support for cloud types

This PR changed most of the host discovery code, this made it possible to fix legacy bugs, as well as adding new functionality for cloud based hunting.
Motivation
The code that was on the host discovery was badly outdated, which made it difficult to make changes, and extending the functionality.
Issues closed by this PR
Closes #138
Closes #35
Closes #80
Modifications
Added:

Removed exclusion for localhost addresses when scanning internal interfaces, this fixes the problem with Kubernetes for Mac
changed calls to http://canhazip.com to be https
New CloudTypes Enum on src.core.types, containing AKS, EKS, ACK, NO_CLOUD. instead of using raw strings in hunters, you should use the types from there.
New discovery module for aks specific discovery
New Event, RunningPodOnCloud, published from FromPodHostDiscovery, designed for specific cloud related discovery. i.e. AKS
Example for the new method for cloud based hunting/discovery

@handler.subscribe(RunningPodOnCloud, predicate=lambda x: x.cloud == CloudTypes.ACK)
class ACKMetadataHunting(ActiveHunter):
    """ACK Metadata Api Hunter
    """

Removed/Changed:

Cleaned NewHostEvent, had unnecessary legacy arguments
Moved repetitive code into HostDiscoveryUtils, like generate_interfaces_subnet
Removed Traceroute discovery ( Closes #138 ) replaced with subnet generation for the default gateway. The old trace route was using ttl=1, which is basically the same as using default gateway. but saves us dependency for CAP_NET_RAW this Closes #80 and Closes #35 , due to an endless loop caused when the ttl=1 traffic gets blocked .

Also Added Tests

@iYehuda is this PR OK to merge?

Codecov Report

Merging #145 into master will increase coverage by 0.58%.
The diff coverage is 78.84%.

@@            Coverage Diff             @@
##           master     #145      +/-   ##
==========================================
+ Coverage   58.07%   58.66%   +0.58%
==========================================
  Files          38       39       +1
  Lines        1994     2015      +21
==========================================
+ Hits         1158     1182      +24
+ Misses        836      833       -3

Impacted Files
Coverage Δ

src/core/types.py
84.31% <100%> (+2.91%)
:arrow_up:

src/modules/hunting/aks.py
39.58% <100%> (ø)
:arrow_up:

src/modules/discovery/hosts.py
60.36% <68.62%> (-9.15%)
:arrow_down:

src/modules/discovery/aks.py
86.04% <86.04%> (ø)

src/modules/hunting/apiserver.py
70.83% <0%> (+2.24%)
:arrow_up:

src/modules/discovery/ports.py
85.71% <0%> (+10.71%)
:arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update fd4d79a...17513d2. Read the comment docs.

@iYehuda as discussed please can you raise issues for the sub-issues that this PR was covering, and then we can tackle them individually

This PR is outdated and includes too much details.
Closing this one in favor of other issues:

#35 (PR on #294)
#138
#304


Questions about training.

Hi, I'm very interested in your excellect work! Could you please tell me the number of epochs in each of the three stages (pre-train Hand4Whole, pre-train hand-only Pose2Pose and combine pre-trained Hand4Whole and hand-only Pose2Pose and fine-tune it), and could it be that there are only 7 epochs in the first stage and only 12 epochs in the second stage as shown in the codes?
By the way, according to the paper, is the learning rate multiplied by 0.1 at the 10th epoch for all three stages?
Looking forward to your reply!

pre-train Hand4Whole: set lr_dec_epoch in config.py to [4,6] and end_epoch in config.py to 7. The network should be trained after initializing it with 2D pose estimation network as described in README.
pre-train hand-only Pose2Pose: set lr_dec_epoch in config,py to [10,12] and end_epoch in config.py to 13.
combine pre-trained ones and fine-tune it: set lr_dec_epoch in config.py to [4,6] and end_epoch in config.py to 7.  The learning rate should be 1e-5 as described in README.

Thanks a lot !

By the way, do I need to switch the codes to the Pose2Pose branch during the second stage of training?


Possible issue with interegular? (Character Classes like [.?!, ])

The bug
When I specify a regex with r"[.?!, ]", the output of the LLM becomes unconstrained.
Comments
I have to use r"[\.\?!, ]" to get the desired behavior. It is my understanding that a . in a character class bracket set is supposed to be treated as a literal, not as a match anything?
See also: https://stackoverflow.com/a/19976308/12407701

This should be addressed by #854 -- planning on merging soon :)


Timeout Issue

When I run a large query I get this message:
Msg 40000, Level 16, State 1, Line 1
The request channel timed out while waiting for a reply after 00:02:00. Increase the timeout value passed to the call to Request or increase the SendTimeout value on the Binding. The time allotted to this operation may have been a portion of a longer timeout.
RequestId: TDS;1d9a2629-06d4-47f0-ac84-ca126cc4d016;12
Time: 2020-09-16T14:48:08.4446581Z

@beziyo Thanks for contacting us. Unfortunately, we're unable to handle Support requests for the product here. To contact Support, consider one of the options described here: https://docs.microsoft.com/dynamics365/get-started/support/
Closing this issue


Support dark mode

Would love to support dark mode. Maybe when it is fully supported by bootstrap, I will enable it. My manual attempts to do it, had problems with highlighting and other problems.

Got dark mode working with bootstrap 5.3alpha1 in my test environment but i am not sure that i should release it into production yet.

Dark mode for is now available from https://jlinoff.github.io/pam/www/. I really like it. I will merge the dark mode branch to main soon.

Released the branch version as v1.1.0-alpha.1.


build: fix typo in documentation

Single character spelling fix in lib.rs in tonic-build

Looks good to me.


How do you completely override a less file ?

I would personally like to override completely a less file from blank or evolution, line _minisearch.less file for example. In order to keep a clean code. Is there a way we can do that at the moment ?

Never mind, i found out. Steps :
Create _default.less for overriding theme default less files. By importing the same path from original theme the styling is totally overridden.

You don't need to override the whole _default.less file. Just copy the file you'd like to override keeping the same file path:
app/design/frontend/Local/breeze-custom/web/css/layout/_minisearch.less - overrrides minisearch from blank theme
app/design/frontend/Local/breeze-custom/web/css/theme/layout/_minisearch.less - overrides minisearch from evolution theme

Thanks!


Add colour to PR Template and tweak CONTRIBUTING and README files

Description
This PR:

Adds a colour and explanation to the "I am adding a new language" section of the PR template so we can start documenting why a colour has been chosen. This will help in future when there is a request for a colour change.
Updates the contributing guidelines to make it clear we don't wan't "hello world" samples and advises on adding two samples if the new extension matches another.
Rewords a few things, removes dead references and updates the list of active maintainers.
Adjusts the formatting of the CONTRIBUTING.md and README.md files to make them easier to read in plaintext and to highlight certain callouts.

Checklist:
N/A

Adjusts the formatting of the CONTRIBUTING.md and README.md files to make them easier to read in plaintext

Could we increment the list-items instead of numbering everything 1....? I know this makes diffs a bit noisier when items are added or removed, but such edits don't happen very often, and having properly-numbered items helps establish a sense of location for the reader.


passwordHash not working

Describe the issue you are experiencing
I try to import a user from wordpress to Firebase Auth:
$userProperties = [
	'uid' => $current_user->ID,
    'email' => $current_user->user_email,
    'emailVerified' => true,
    //'phoneNumber' => '+15555550100',
    'passwordHash' => 'dGV4dA==',
	//'passwordSalt' => $salt,
    'displayName' => $current_user->user_login,
    //'photoUrl' => 'http://www.example.com/12345678/photo.png',
	//'metadata' => [
//        'createdAt' => $user_registered,
//		//'lastLoginAt' => $date,
//		//'passwordUpdatedAt' => $date,
//        //lastRefreshAt' => $date
//    ],
    'disabled' => false,
	'hash' => array('algorithm' => 'MD5', 'rounds' => 8192),
];

The output is:
object(Kreait\Firebase\Auth\UserRecord)[6494]
  public 'uid' => string '323' (length=4)
  public 'email' => string<EMAIL_ADDRESS>(length=17)
  public 'emailVerified' => boolean true
  public 'displayName' => string<EMAIL_ADDRESS>(length=17)
  public 'photoUrl' => null
  public 'phoneNumber' => null
  public 'disabled' => boolean false
  public 'metadata' =>
    object(Kreait\Firebase\Auth\UserMetaData)[6470]
      public 'createdAt' =>
        object(DateTimeImmutable)[6440]
          public 'date' => string '2021-11-19 13:07:18.048000' (length=26)
          public 'timezone_type' => int 3
          public 'timezone' => string 'UTC' (length=3)
      public 'lastLoginAt' => null
      public 'passwordUpdatedAt' => null
      public 'lastRefreshAt' => null
  public 'providerData' =>
    array (size=0)
      empty
  public 'passwordHash' => null
  public 'passwordSalt' => null
  public 'customClaims' =>
    array (size=0)
      empty
  public 'tokensValidAfterTime' =>
    object(DateTimeImmutable)[6490]
      public 'date' => string '2021-11-19 13:07:18.000000' (length=26)
      public 'timezone_type' => int 3
      public 'timezone' => string 'UTC' (length=3)
  public 'tenantId' => null

passwordHash and passwordSalt is null. How is the right way to add hash passwords?
Installed packages
{
"require": {
"kreait/firebase-php": "^5.19",
"google/cloud-firestore": "^1.20",
"grpc/grpc": "^1.39"
}
}
PHP version and extensions
PHP 7.2.34
On which operating system(s) does the issue occur?

[ ] Linux
[ ] MacOS
[ ] Windows

Steps to reproduce the issue.

...
...
...

use Kreait\Firebase;

$factory = (new Firebase\Factory())
    ->withServiceAccount('/path/to/firebase_credentials.com')
    ->withDatabaseUri('https://my-project.firebaseio.com')
;

// ...

Error message/Stack trace
passwordHash is null
Additional information
No response

Importing users is not supported by this SDK, please use the Firebase CLI for this (https://firebase.google.com/docs/cli/auth)
You can read more about why this isn't yet available in the PHP SDK at https://github.com/kreait/firebase-php/pull/440#issuecomment-797396703 and https://github.com/kreait/firebase-php/pull/650#issuecomment-905960893

Okay, but I'm able to import users, but only without PasswordHash. The user
What do you mean by "importing users"? The user itself is imported.

The API to create users is different than the one to import users. The API to create users only accepts clear text passwords, not password hashes and salts.

Okay thanks


Micro-optimize some phases of actor data preparation

No longer a micro-optimization by this point. Hell yeah.


on any push run workflow bundler.py

Rework the workflow so it does the following:
fails on any bundle errors
fails on any protobuf generation errors
fails on any client generation errors
uploads artifacts to repo

implemented


Added Singleton. Reduced usage of GetComponent.

Hey Caki!
First of all I love your asset! I have no clue of how shader works, so thank you very much!
Since I make a game for mobile devices performance is everything. Adding outlines is very expensive.
So to get a little bit better performance I've reduced the calls to GetComponent, this is a relatively expensive operation (https://snowhydra.wordpress.com/2015/06/01/unity-performance-testing-getcomponent-fields-tags/).
In addition, I changed the OutlineEffect class to a singleton so we don't have to GetComponent for each object. Garbage collection is also something we should be careful with.
So, merge if you like! :)
NikkiWitch

Hello,
I had no clue GetComponent had a perf hit so thanks, will merge!


[GSSoC'23] Added Guess Word Game.

Added a Guess Word Game:
The varies States of UI can be as shown below::

Please consider my request and merge my pull request to the repo...
as a contributor of GSSOC'23

Please Create new PRs for this because it contains conflict issue.


fix(php) improves attribute highlighting

Fixes #4115.

Changes

Support uppercase names inside PHP attribute blocks

Checklist

[ ] Added markup tests, or they don't apply here because...
[ ] Updated the changelog at CHANGES.md

Just needs a changes entry and rebase.

And maybe change one of the attributes to uppercase inside of test. #[ASSERT(value: 1234)]


Add CancellationToken to Task methods

This PR adds cancellationToken parameters to Task methods.
Resolves #271

Codecov Report

Merging #278 (bc3b3f1) into master (721e667) will decrease coverage by 0.01%.
The diff coverage is 57.89%.

@@            Coverage Diff             @@
##           master     #278      +/-   ##
==========================================
- Coverage   79.96%   79.95%   -0.02%
==========================================
  Files          83       83
  Lines        3175     3178       +3
==========================================
+ Hits         2539     2541       +2
- Misses        636      637       +1

Impacted Files
Coverage Δ

Src/Fido2.AspNet/NullMetadataService.cs
0.00% <ø> (ø)

Src/Fido2/DevelopmentInMemoryStore.cs
0.00% <ø> (ø)

Src/Fido2/Metadata/FileSystemMetadataRepository.cs
0.00% <0.00%> (ø)

Src/Fido2/SimpleMetadataService.cs
0.00% <0.00%> (ø)

...c/Fido2/Metadata/Fido2MetadataServiceRepository.cs
64.56% <62.85%> (ø)

...rc/Fido2.AspNet/DistributedCacheMetadataService.cs
78.94% <100.00%> (+0.13%)
:arrow_up:

Src/Fido2/AuthenticatorAssertionResponse.cs
77.94% <100.00%> (ø)

Src/Fido2/AuthenticatorAttestationResponse.cs
88.88% <100.00%> (ø)

Src/Fido2/Fido2NetLib.cs
81.63% <100.00%> (+0.38%)
:arrow_up:

...rc/Fido2/Metadata/ConformanceMetadataRepository.cs
95.33% <100.00%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 721e667...bc3b3f1. Read the comment docs.

Currently reviewing this 👀

LGTM 👍

Great work @trejjam. Merged


[HOLD for payment 2024-07-24] [Workspace Feeds] [External] Add a new object to connectionsMenuItems

Part of the Workspace feeds project.
Implement the following part of the design doc.
@koko57 @VickyStash @allgandalf @DylanDylann

Later phase of implementation

@DylanDylann I updated the payment summary above with the correct Upwork offer link. Please let me know once you've accepted the offer. Thanks!

This belongs to the project. No need payment

Got it, thanks for clarifying! In that case we can close out the issue.


Error on ingesting samples with different value but same timestamp" when  prometheus scrapes custom TS metric

What did you do?
I generated one metric with 3 different timestamp,it looked like normal when i curl http://localhost:8080/metrics,the result was like this :
HELP my_metric_1 This is my metric with custom TS
TYPE my_metric_1 gauge
my_metric_1 800.1<PHONE_NUMBER>938
my_metric_1 600.1<PHONE_NUMBER>939
my_metric_1 900.1<PHONE_NUMBER>940,
however,prometheus failed to scrape,and log was msg="Error on ingesting samples with different value but same timestamp" num_dropped=2.
this is my code:
package main
import (
"net/http"
"time"
"github.com/prometheus/client_golang/prometheus"
"github.com/prometheus/client_golang/prometheus/promhttp"
)
type myCollector struct {
metric *prometheus.Desc
}
func (c *myCollector) Describe(ch chan<- *prometheus.Desc) {
ch <- c.metric
}
func (c *myCollector) Collect(ch chan<- prometheus.Metric) {
t := time.Now()
value := 800.1
s := prometheus.NewMetricWithTimestamp(t, prometheus.MustNewConstMetric(c.metric, prometheus.GaugeValue, value))
ch <- s
// time.Sleep(4 * time.Second)
// s = prometheus.NewMetricWithTimestamp(t, prometheus.MustNewConstMetric(c.metric, prometheus.GaugeValue, 900.6))
// ch <- s
time.Sleep(4 * time.Second)
t1 := time.Now()
valu1 := 600.1
s1 := prometheus.NewMetricWithTimestamp(t1, prometheus.MustNewConstMetric(c.metric, prometheus.GaugeValue, valu1))
ch <- s1
time.Sleep(4 * time.Second)
t2 := time.Now()
valu2 := 900.1
s2 := prometheus.NewMetricWithTimestamp(t2, prometheus.MustNewConstMetric(c.metric, prometheus.GaugeValue, valu2))
ch <- s2
}
func main() {
collector := &myCollector{
	metric: prometheus.NewDesc(
		"my_metric_1",
		"This is my metric with custom TS",
		nil,
		nil,
	),
}
prometheus.MustRegister(collector)

http.Handle("/metrics", promhttp.Handler())

http.ListenAndServe(":8080", nil)

}
What did you expect to see?
My goal is to observe a gauge indicator that changes over time with a custom timestamp. This indicator contains multiple attributes, and the historical values may be modified. I hope that prometheus can obtain multiple indicator values with different timestamps in one scrape. Thank for your response soonly!
What did you see instead? Under which circumstances?
My goal is to observe a gauge indicator that changes over time with a custom timestamp. This indicator contains multiple attributes, and the historical values may be modified. I hope that prometheus can obtain multiple indicator values with different timestamps in one scrape. Thank for your response soonly!
System information
arm64
Prometheus version
version:darwin -arm64 prometheus 2.53.0

Prometheus configuration file
no

Alertmanager version
no

Alertmanager configuration file
no

Logs
ts=2024-07-02T06:22:15.613Z caller=scrape.go:1744 level=warn component="scrape manager" scrape_pool=prometheus target=http://localhost:8080/metrics msg="Error on ingesting samples with different value but same timestamp" num_dropped=2
ts=2024-07-02T06:22:30.612Z caller=scrape.go:1744 level=warn component="scrape manager" scrape_pool=prometheus target=http://localhost:8080/metrics msg="Error on ingesting samples with different value but same timestamp" num_dropped=2
ts=2024-07-02T06:22:45.614Z caller=scrape.go:1744 level=warn component="scrape manager" scrape_pool=prometheus target=http://localhost:8080/metrics msg="Error on ingesting samples with different value but same timestamp" num_dropped=2
ts=2024-07-02T06:23:00.611Z caller=scrape.go:1744 level=warn component="scrape manager" scrape_pool=prometheus target=http://localhost:8080/metrics msg="Error on ingesting samples with different value but same timestamp" num_dropped=2

I'm fairly confident that there was confusion:
I think it is not possible to repeat the same time series (same name and same labels) in the same scrape response, even though each entry will have a different timestamp.
From https://prometheus.io/docs/instrumenting/exposition_formats/#grouping-and-sorting:

Each line must have a unique combination of a metric name and labels. Otherwise, the ingestion behaviour is undefined.

The code is deduplicating entries in the same scrape here: https://github.com/prometheus/prometheus/blob/ee70c9d145222bb7aba8cb43d211260846ff8d7f/scrape/scrape.go#L1578
My understanding is that the timestamp is a method of adjusting the time of a sample, and not for ingesting historical data.
I understood what you are trying to achieve and I think you can try to achieve the same by scraping more frequently with a shorter scraping interval.

FYI, this PR should fix this issue: https://github.com/prometheus/prometheus/pull/14685

好的，您的邮件已收到，谢谢^^


Feature_Request

Issue Title:
Printable View: Include a button to generate a printable version of the calendar
Issue Description:
I would like to request the implementation of a "Print" button to generate a printable version of the calendar. This feature would enhance the usability of the calendar, allowing users to easily obtain a hard copy for their records.
Proposed Solution:
Add a "Print" button to the calendar interface, positioned at the top right corner, with blue coloring. The button should trigger the browser's print functionality when clicked

pls add OSEN label to it

assign this issue to me

@khandelwalaastha Please try to make the issue with the Feature request template in the new issue section. It will help you to explain. Don't make this type of features farther

I Have assigned you. make the PR properly & use the PR template properly & also go through contributing.md properly.


Swipe to open stopped working

I have been using this great extension for quite a long time but lately the swipe to open the sidebar has stopped working.
I have recently installed HomeAssistant 2023.04 but don't know if the rpoblem already happened before.
I have the following My Kiosk Mode configuration:
kiosk_mode:
hide_header: true
hide_menubutton: true
hide_overflow: true

+1 I have also noticed this

+1 Confirmed issue over here too.

+1
Running 2023.4.1 with latest kiosk-mode, set as "hide_header": "true" and swipe isn't working since the last HA upgrade.

+1, running HAOS 2023.4.2 and KM 1.8.1

Hi @theone11,
Please, refer to this issue. Before opening an issue, always check it the issue is still reproducible without using the plugin.
Regards

So, if I understood correctly, there is actually no way of swiping open the sidebar if I am using kiosk_mode and hiding the header bar where the menu button is located, correct?

Hi @theone11,
The functionality to swipe and open the menu was removed from Home Assistant and the Apps (clients) need to implement it in their sides. This seems to be solved already on IOS but not in Android. If you remove the button to open the menu then you will not be able to access it.

I am using the browser to control ha on pc and raspberry pi so app will not help. Thanks.

@theone11,
In any case, this is something that was removed in Home Assistant side, so it is not something coming from this plugin and is that what I was trying to communicate. If you want that feature in Home Assistant again, you need to request it in the right place.
Regards


Nested query not working

I want to filter for the nationalities in the "launches" query like this:
{
    query: nationality ? { "payloads.nationalities": nationality } : {},
     options: {
         sort: { "date_utc": "desc" },
         page,
         limit,
        populate: ["payloads"],
      },
},

But this gives me no items back... There is a 2 year old issue where others also couldn't solve this.
Probably this might be a bug inside the backend, maybe here:
// Query launches
router.post('/query', cache(20), async (ctx) => {
  const { query = {}, options = {} } = await transformQuery(ctx.request.body);
  try {
    const result = await Launch.paginate(query, options);
    ctx.status = 200;
    ctx.body = await transformResponse(result);
  } catch (error) {
    ctx.throw(400, error.message);
  }
});

or somewhere in the _transform-query.js file
Does anybody has any idea on this? How we can solve it?
Thank you very much!

Hi @Gyurmatag
I encountered the same issue and found that the query isn't returning results when trying to filter by payloads.nationalities as expected.
After testing, I used the query structure like this:
{   "query": nationality ? { "payloads.nationalities": { $in: [nationality] } } : {},   "options": {     "sort": { "date_utc": -1 },     "page": 1,     "limit": 10,     "populate": ["payloads"]   } }
However, even with this structure, no results were returned.
A possible reason could be that the payloads.nationalities field is an array, and there might be issues when querying for a single value without checking for the array structure properly. Also, date_utc sorting may be another issue, depending on how the data is formatted and stored.
I recommend:
Test the query without sorting to check if the issue is with the sorting logic:
{   "query": nationality ? { "payloads.nationalities": { $in: [nationality] } } : {},   "options": {     "page": 1,     "limit": 10,     "populate": ["payloads"]   } }
Check for valid data in the payloads.nationalities field. Ensure that the array contains the correct nationality format and matches the query.
It might also help to review the backend query logic where Launch.paginate is invoked, as there could be issues with how the query is transformed and passed to MongoDB.
Also, you may have a look over following screenshots...I queried for sample data.


🐛 BUG: problem with default export / import in some cases

Quick checklist

[X] I am using the latest version of Snowpack and all plugins.

What package manager are you using?
yarn
What operating system are you using?
macOS
Describe the bug
Possibly related to: #3926
Using all the latest:

react (18)
@mui (v5)
snowpack (3.8.x)

I am unable to actually use any MUI features due to a runtime error where an object is called like a function.
This appears to happen because one of MUIs dependencies (@emotion) is trying to default export the function createCache but somewhere in the process this is messed up and we get createCache = {default: f} rather than the expected createCache = f
I think the @mui and @emotion code looks good, so I am suspecting snowpack or some weird shenanigans here as the culprit. Hoping someone will be more familiar and able to at least give 👍 / 👎 on this theory.
Steps to reproduce
Clone my minimal example (below) then yarn install && yarn start
You should see the same error...

Link to minimal reproducible example (optional)
https://github.com/oclyke-zucchini/snowpack-mui-emotion-createCache-not-function

Snowpack isn't maintained anymore. No commits in 10 months.
Check out Vite for an alternative.


Swift is not supported for static libraries.

Hello Ash Furrow,
I followed the instruction of your book.
Write pod 'ReactiveCocoa'
run pod install
This error message shows up.
Check dependencies

Swift is not supported for static libraries.

The latest ReactiveCocoa's version I fetched is 3.0.0
How can I make it compile?

Hey there! Sorry you're having problems. If you specify a version of ReactiveCocoa under 3.0 it should work. 2.5 for example. The Objective-C stuff stayed the same in 3.0, so there's no benefit for this project to use it. Does that make sense?

Wow,it compiles now. Thx Ash.

Awesome! Glad to hear it 🎉


DioError [DioErrorType.response]: Http status error [401]

New Issue Checklist

[ ] I have searched for a similar issue in the project and found none

Issue Info

Info
Value

Platform Name
flutter / android

Platform Version
2.14.0  / 9

Dio Version
4.0.0

Android Studio
Android Studio 4.1.1

Repro rate
all the time (100%)

    try {
      await dio.request(
        'https://api.example.com/api/v1/auth/validateMobile',
        data: {"phoneNo": "+91999999999"},
        options: Options(
          method: 'GET',
          headers: {
            HttpHeaders.authorizationHeader:
                'Bearer $token',
            'content-Type': 'application/json'
          },
        ),
      );
    } on DioError catch (e) {
      print(e);
    }

I/flutter (16336): #0      DioMixin.assureDioError (package:dio/src/dio_mixin.dart:819:20)
I/flutter (16336): #1      DioMixin._dispatchRequest (package:dio/src/dio_mixin.dart:678:13)
I/flutter (16336): <asynchronous suspension>
I/flutter (16336): #2      DioMixin.fetch.<anonymous closure>.<anonymous closure> (package:dio/src/dio_mixin.dart)
I/flutter (16336): <asynchronous suspension>

I'm getting 401 error even though I'm passing authorization header with correct token. Thank you for your help.
If I make a request to the same api endpoint with the same authorization header using the flutter http package, it works.

Can you paste actual working code you are using for both the dio case and the http case? You can leave out the token obviously

Same issue as #1171
I'm facing this too ...

try 4.0.3


Error in Calculation of Kelly Bet Criterion

SaltyBot currently restricts the total balance that can be bet through the Kelly Bet Formula. I found this unusual because the Kelly bet strategy is designed to prevent gamblers from going broke and normally shouldn't have any additional limit imposed on it. Typically, using either the kelly bet criterion or the maximum fraction of your total balance as a betting strategy would be two separate strategies, not something used together. The Kelly Bet Criterion should not require a maximum limit by design.
SaltyBot's current implementation of the Kelly Bet Criterion seems to go broke quickly without a limit with a >50% overall successful bet rate. I believe this is likely due to an error in the way SaltyBot formats odds.
The average odds are given to the Kelly equation as a decimal, such as 2.5. In our case, this means that for every $2.5 bet, $1 is earned. However, I believe the equation assumes 2.5 is in the format A/B, where every value of B that you bet, you will win A, plus the return of your stake. However, the odds calculated in SaltyBet are formatted in the reverse manner, B/A.
Taking a look at the kelly bet criterion equation:
fraction = ((b * p) - q) / b == ((odds * win_prob) - (1 - win_prob)) / (odds)

In this equation, plugging in a balance of $1000, odds 2.5, and probability of 0.55 (55%) would output a fraction of 0.37, or $370. But this bet is objectively bad -- the odds are against us given the slight edge of winning, raising questions as to why we would want to bet almost 40% of our balance on this single match.
If we instead divide 1 over the odds, i.e. 1/2.5, to match the A/B odds format, the Kelly Bet fraction becomes negative,  -0.574, indicating that it does not recommend betting on this match due to unfavorable returns
Looking at this online Kelly Bet calculator, the example odds it provides are "2 to 1 odds", or odds = 2. However, the example states that in this example "The casino is willing to pay 2 to 1 on any bet you make", which follows the A/B odds format mentioned above. This gives support to my theory that we are formatting odds wrong for the Kelly Bet Equation.

@zappybiby Do you have discord?

@zappybiby Do you have discord?

Pastebin: https://pastebin.com/gv6Rb6Dh
password is your public username on SaltyBet.com. Expires in 1 week.

@zappybiby Just sent a request.


Why? :)

Silly question: why this project? Syntax-wise it feels a lot like docker-compose, and having a dependency on docker / docker-compose shouldn't be painful :-)

nice question :smile: the answer is: Why not?
I made this project for developers who lazy. he may lazy to install Docker or Vagrant, or even lazy to setup his own development environment.
I'm not against coding on docker/vagrant but it would be faster to just open terminal and type few lines of text to define your dev stack, then, voilla! everything is ready to code.
I also found myself, many times, forgot to start docker machine on my Mac and prefer to run some code just directly on my machine instead of a container or virtual machine.

Why not use something established like ansible that already has a whole library of setup configs? Don't get me wrong, I like the idea of dev env consistency and ease of setup without any 3rd party help. Just thought it would be nice to dig a little deeper into the why?

Most of the tools nowaday seems to be focusing on devops, or at least, covering both development and deployment. Or heavy depend on devops solutions like Docker or Vagrant,... It would be a big concept at the beginning and some developer will try to avoid using them.
My goal is to creating a simple tool that everybody can use without trying to understand too much concept, somebody just need to have a quick environment to run some test snippets or quickly run multiple applications with different node or ruby version.
In another words, I want to make a pure-dev solution after spending quite a long time playing around with docker, vagrant...
TL;DR: Because Ansible or something has too many features, supporting too many things. I want a single tool that do only single thing that work! May be we can even "steal" some features from Ansible. :D

:+1:

For me, the only motivation to use containers or VMs is the separated environment.
It's not about the dependencies, it's about the separation.