how to discrete the state

Hi,Cihan Ceyhan.
I have learned your code of flappybird-qlearning-bot, it's excellent.
But I have one questions about these codes, could you help me?
how to discrete the state?
`
def map_state(self, xdif, ydif, vel):
'''
Map the (xdif, ydif, vel) to the respective state, with regards to the grids
The state is a string, "xdif_ydif_vel"
    X -> [-40,-30...120] U [140, 210 ... 420]
    Y -> [-300, -290 ... 160] U [180, 240 ... 420]
    '''
    if xdif < 140:
        xdif = int(xdif) - (int(xdif) % 10)
    else:
        xdif = int(xdif) - (int(xdif) % 70)

    if ydif < 180:
        ydif = int(ydif) - (int(ydif) % 10)
    else:
        ydif = int(ydif) - (int(ydif) % 60)

    return str(int(xdif))+'_'+str(int(ydif))+'_'+str(vel)`

how do you determine the boundary of X and Y?      Thank you very much.

Hello @ProQianXiao , thanks for your comment!
The boundaries of the states come from the way they are calculated.
xdif is the horizontal distance from the next pipe, calculated by next pipe's left corner's x coordinate - bird's x coordinate. The maximum distance observed for this is at the very start of the game, where the bird has to travel quite a bit of distance to reach the first pipe; at this point the xdif is around 430. This never again happens after we proceed between the pipes, as the maximum possible distance then is always less than 120. For this reason, I discretized xdif values higher than 140 into large bins of size 70 as you can see. So for instance, all the xdif values between 140 and 210 are binned to 140 via the calculation xdif - (xdif % 70). My goal was to increase the speed of convergance, since after the bird is able to reach the first pipe, these states will never be visited again during the game, so there is no reason to discretize them into small bins.
And another point is the negative values possible for the xdif (-40, -30, -20, .. ). They occur when the bird is exactly on top of a pipe, since at that moment the bird's x coordinate is greater than the pipe's left corner's x coordinate. The pipe used in the calculations changes to the next coming pipe after the difference is lower than -30, which is when the bird is about to come out of the current pipe.
Similar ideas hold for the ydif.
Cihan

@chncyhn ,thank you very much again, that helps me a lot. Now I understand your ideas, it's excellent, and it can achieve convergence quickly, that's great.

@chncyhn , sorry to bother you again. I encountered some problems when I modified your code. I want to apply sarsa to update the qvalues, so I made some modifications to the update_scores function. Here is the code :
`def update_scores(self):
    history = list(reversed(self.moves))

    # Flag if the bird died in the top pipe
    high_death_flag = True if int(history[0][2].split('_')[1]) > 120 else False

    # Q-learning score updates
    t = 1
    res_act = history[0][1] #Modification:the real action that bird took, instead of the max qvalues action
    for exp in history:
        state = exp[0]
        act = exp[1]
        res_state = exp[2]
       # Modification:
        if t==1:
            self.qvalues[state][act] = (1 - self.lr) * (self.qvalues[state][act]) + (self.lr) * (self.r[1])
        elif t==2:
            self.qvalues[state][act] = (1- self.lr) * (self.qvalues[state][act]) + (self.lr) * ( self.r[1] + (self.discount)*(self.qvalues[res_state][res_act]))
        elif high_death_flag and act:
            self.qvalues[state][act] = (1- self.lr) * (self.qvalues[state][act]) + (self.lr) * ( self.r[1] + (self.discount)*(self.qvalues[res_state][res_act]))
            high_death_flag = False
        else:
            self.qvalues[state][act] = (1- self.lr) * (self.qvalues[state][act]) + (self.lr) * ( self.r[0] + (self.discount)*(self.qvalues[res_state][res_act]))
        t += 1
        res_act = act

    self.gameCNT += 1 # increase game count
    self.dump_qvalues() # Dump q values (if game count % DUMPING_N == 0)
    self.moves = []  # clear history after updating strategies`

After the modification, I run the program, the result is bad. I trained 20 thousands times, and the max score is only 5. Could you tell me where is wrong? Thanks very much.

Hey @ProQianXiao, frankly I am not too aware of the details of SARSA algorithm, but you should probably tune the hyperparameters like learning rate/reward structure/discount rate a bit for it. For instance, I have just tried your modification with learning rate changed to 0.25 and crashing reward to -100, and now it's able to hit 100+ scores.

By the way, if you are not aware, you can change the FPS variable in flappy.py (which is set to 60 by default) to a very high number  during training to make it run faster.

@chncyhn thank you very much,and your suggestion is great, I tune the hyperparameters,with learning rate changed to 0.25 and crashing reward to -100 as you said, it can hit a higher scores, but there is  still a big gap with your code. I will make more attempts about the hyperparameters.
In addition, there is something about your code that I am not very sure, I do not know whether my understanding is correct.
`
def update_scores(self):
"""
Update qvalues via iterating over experiences
"""
history = list(reversed(self.moves))
    # Flag if the bird died in the top pipe
    high_death_flag = True if int(history[0][2].split('_')[1]) > 120 else False

    # Q-learning score updates
    t = 1
    for exp in history:
        state = exp[0]
        act = exp[1]
        res_state = exp[2]

        # Select reward
        if t == 1 or t == 2:
            cur_reward = self.r[1]
        elif high_death_flag and act:
            cur_reward = self.r[1]
            high_death_flag = False
        else:
            cur_reward = self.r[0]

        # Update
        self.qvalues[state][act] = (1-self.lr) * (self.qvalues[state][act]) + \
                                    self.lr * ( cur_reward + self.discount*max(self.qvalues[res_state]) )
        t += 1

    self.gameCNT += 1  # increase game count
    self.dump_qvalues()  # Dump q values (if game count % DUMPING_N == 0)
    self.moves = []  # clear history after updating strategies`

when t==1 or t==2, set the cur_reward=-1000. My thought is that t==1 or t==2 represents the two states before crashing, the game is a continuous process, the two states before crashing have a relatively important relationship with crashing state(they caused the crashing) compared with other states, so set the reward = -1000 no matter what action it took.
And when it satisfies  'high_death_flag and act' , it means that the bird crashed on the upper pipe, so the states before crashing that took 'flap' action should be punished, set the reward=-1000.
That's my understanding, am I right? Looking forward to your reply.

@ProQianXiao yes your understanding is mostly correct. (except the "...no matter what action it took" statement, because we punish the (state,action) pairs, not just the state;  note that we update self.qvalues[state][act]).
Another small difference is that you said "... it means that the bird crashed on the upper pipe, so the states before crashing that took 'flap' action should be punished", but only the last state where 'flap' action is taken is punished, specifically the last (state, action) pair where action is 'flap'.
I haven't looked much into it, but in this thread there is a good comparison of Q-learning vs SARSA which you might find useful.

@chncyhn Thanks for your reply, now I have a deeper understanding. I will read the 'comparison of Q-learning vs SARSA ' carefully, thanks for your help again, that means a lot for me .


[1.10.2] Cardboard box deletes Advanced Solar Generator when boxing the base of it.

The box and the Advanced Solar Generator just straight up disappear, never to be seen again.

Slightly random note: in 1.7 a similar behaviour also exists with the nasa workbench, never to be seen again.
random idea for it: create a separate liblary for tiles like this, so when you fix the behaviour it can be fixed everywhere. A "bounding block api" or something.


added a field to add the feedback in Application evaluation dialog box

Targets #2682
Description
Ability to add feedback in Application evaluation box
Checklist:

[x] I have performed a self-review of my own code.


SA1122 Inconsistent StyleCopAnalyzers Warning and Compiler Error for Empty Strings in Switch Statements

When using StyleCopAnalyzers, empty strings written as "" are underlined with the warning "Use string.Empty for empty strings." However, replacing "" with string.Empty within a switch statement results in a compiler error stating "A constant value of type 'string' is expected."
This creates a conflict where adhering to the StyleCopAnalyzer warning leads to code that does not compile.
Steps to Reproduce:

Create a switch statement with a case that checks for an empty string.

public void Foo(someData ISomeInterface)
{
    switch (someString)
    {
        case "" when someData is SomeType:
            // Some code
            break;
        case "" when someData is SomeOtherType:
            // Some other code
            break;
    }
}

Observe the StyleCopAnalyzers warning "Use string.Empty for empty strings."
Replace "" with string.Empty in the case statement.

public void Foo(someData ISomeInterface)
{
    switch (someString)
    {
        case string.Empty when someData is SomeType:
            // Some code
            break;
        case string.Empty when someData is SomeOtherType:
            // Some other code
            break;
    }
}

Observe the compiler error "A constant value of type 'string' is expected."

What version are you using?

@bjornhellander version 1.0.2 on .net framework 471

Not really related to this, but just a general hint: If you are using any modern c# features you will run into lots of problems unless you are using the beta releases, since there has been no official release of this package since 2019 for various reasons.
On to this specific case: I have never seen this happen since I started using this package. It looks like this specific case should be handled correctly since version 1.0.0-beta009 from 2015, so this is really weird. Are you sure the warning comes from this package? You don't have an old "StyleCop Classic" installed? Could you try upgrading to the latest beta or at least the latest official release (1.1.118)? If that doesn't work, I think we would need you to provide a small project that reproduces this. You could for example create a temporary repository on github and provide the link.

@bjornhellander  I experimented a bit with this and I've updated the steps to reproduce. Turns out that what causes this behavior to appear are the case guards. When I removed them "" is not longer underlined.

Alright, that makes more sense. That would be something like c# 7 or 8, I think, and therefore features that were not known when 1.0.2 was released. Does it still happen if you upgrade to the latest beta?

I upgraded to the latest beta (1.2.0-beta.556) and the issue got resolved.
Thank you for the support :)


Calling getScripCodes() throws FileNotFoundError

from bsedata.bse import BSE
b = BSE()
b.getScripCodes()
the above snippet throws FileNotFoundError as below.
C:\ProgramData\Anaconda3\lib\site-packages\bsedata\bse.py in getScripCodes(self)
89         :return: a dictionary with scrip codes as keys and company names as values
90         """
---> 91         f = open('stk.json', 'r')
92         return json.loads(f.read())
93
FileNotFoundError: [Errno 2] No such file or directory: 'stk.json'

Hey @samRddhimat please check #7 for some context and solution. Also if you would like to see some different behaviour for the function, your suggestions are very much welcome!

closing as inactive


Integrate with mlx

I think it might be a good idea to incorporate txtai with mlx.
https://github.com/ml-explore/mlx
I believe the experience on an Apple Silicon may be smoother than on other models of LLM with a transformer.

Thank you for the suggestion. Does this library offer any sort of emulation or way to run on non apple devices? I'm primarily a Linux developer, so just thinking of a way I could develop a feature like this without an Apple machine.

I see your point, but this framework is designed for those who use Apple silicon, such as those who use frameworks to take advantage of Nvidia GPUs, because they offer speed advantages.

Are you aware of any Apple silicon emulators of virtual machines that I could spin up from a Linux environment to develop/test this?

This could be good news!
https://github.blog/changelog/2024-01-30-github-actions-introducing-the-new-m1-macos-runner-available-to-open-source/

Thank you for sharing. I'll take a look!


Netty Error about old version

when run gorilla with java 11 and Leiningen, a error received:
Gorilla-REPL: 0.5.3 Started nREPL server on port 50888 Running at http://<IP_ADDRESS>:50890/worksheet.html . Ctrl+C to exit. Sun Jan 06 02:35:12 CST 2019 [client-loop] ERROR - select exception, should not happen java.lang.IllegalStateException: Client/Server mode has not yet been set. 	at java.base/sun.security.ssl.SSLEngineImpl.beginHandshake(SSLEngineImpl.java:98) 	at org.httpkit.client.HttpClient.finishConnect(HttpClient.java:395) 	at org.httpkit.client.HttpClient.run(HttpClient.java:472) 	at java.base/java.lang.Thread.run(Thread.java:834) Sun Jan 06 02:35:12 CST 2019 [client-loop] ERROR - select exception, should not happen java.lang.IllegalStateException: Client/Server mode has not yet been set. 	at java.base/sun.security.ssl.SSLEngineImpl.beginHandshake(SSLEngineImpl.java:98) 	at org.httpkit.client.HttpClient.finishConnect(HttpClient.java:395) 	at org.httpkit.client.HttpClient.run(HttpClient.java:472) 	at java.base/java.lang.Thread.run(Thread.java:834)
and gorilla could run else good.
The error maybe like https://stackoverflow.com/questions/9536063/running-netty-3-3-1-final-secure-chat-example-out-of-the-box-gives-error-client so need more newer  Netty more than 3.4 ?

I'm getting this with jdk1.8.0_202


Investment Expenses -- how calculated?

I'm trying to understand the "Crypto Investment Expenses" sheet in the tax report ODS.
First of all -- not tax advice, but -- where would this sheet typically be reported when doing US taxes?
But that's not my main concern. I have a particular  INTRA transaction where crypto_sent = 2.33707879515 and crypto_received = 2.33139072.  The difference is 0.00568807515. So, essentially, that was the network "fee" for that transfer.
Without getting into specific numbers -- because it would likely just confuse matters -- the "Crypto Investment Expenses" sheet has a "Proceeds", a "Cost or other basis", and a "Gain or (loss)" column. From what I can tell, "Proceeds" always contains the 0.00568807515 fee multiplied by the spot price at the time of the transfer. "Cost or other basis" contains the cost basis of the 0.00568807515 fee (based on FIFO in my case), and "Gain or (loss)" contains "Proceeds" less "Cost or other basis". The consequence of this is that if "spot price * fee" when the transferred occurred was less than the basis, then it will show a loss in "Gain or (loss)", but if "spot price * fee" when the transferred occurred was greater than the basis, then it will show a gain in "Gain or (loss)".
I don't understand this. How does it make sense? Regardless of the spot price at the time of the transfer, a "fee" is always a "loss" for me. It could never be considered a gain. Yet if "spot price * fee" is greater than the basis, it is showing as a gain.
I feel like there is something weird here, but I can't quite wrap my mind around it. Thoughts? Thanks!

I feel like "Proceeds" should show 0, since the fee crypto is gone and I got nothing for it. My loss would be the total "Cost or other basis" for the fee crypto. So "Gain or (loss)" would show a negative number representing the full cost basis for the fee. I may be missing something, though.

My understanding is that investment expenses are not taxable and don't need to be reported, but double-check with your CPA on this. It's true that the "Investment Expenses" tab is a bit confusing: the "tax_report" output generator uses the form 8949 format for all tabs, including "Investment Expenses", so they get represented as if they were sales (but they are not). How would you change the output to improve readability?

Thanks for the reply!
My thinking on this has gone through a few "iterations". At first I assumed that the cost basis of the fee would somehow be deductible on my taxes. But that seems to not be the case. Then I figured it would get added to the cost basis of the remaining crypto. But that doesn't seem right either.
I found this post to be quite helpful. My understanding from reading the various replies is that the most likely interpretation is that the transfer fee is essentially treated as a "sale" (with the sale proceeds being used to pay the non-deductible fee). Any "gain or loss" on the "sale" should be reported like any other sale. If that is the case, then the "Investment Expenses" sheet actually seems to be correct and an accurate representation from a tax perspective.
I'm curious about your interpretation. Does that make sense?
Thanks!

Yes, that's my interpretation of the post you linked as well, but there are other sources that provide different information on transfer fee taxation:

https://github.com/eprbell/rp2/issues/87
https://taxbit.com/cryptocurrency-tax-guide#how-are-exchange-and-network-transfer-fees-taxed

¯\_(ツ)_/¯

Thanks. I read the links you sent. I'm not totally sure what to make of issue 87. But the TaxBit link has a subsequent link to this TaxBit page which contains the following:

Fees incurred to simply transfer crypto assets around the ecosystem likely provide no tax benefit because they are not incurred in direct connection with the acquisition or disposition of property. Further, any crypto disposed of to pay transfer fees needs to be included in your calculation of gains and losses.
As an example, let’s say you are holding ETH with a cost basis of $10,000 on a centralized exchange and want to transfer that ETH to a non-custodial wallet so you can get it into cold storage, or move it into a DeFi protocol.  When you transfer (withdraw) that ETH from the centralized exchange, you pay a transfer fee in ETH worth $25.
The ETH used to pay the transfer ETH should be included in your tax calculation as a disposal of ETH.  The gain or loss would be calculated as $25 proceeds less the cost basis in that ETH.
Separately, you have incurred a $25 fee for the transfer—paid in ETH.  This $25 expenditure likely has zero tax implications.  As an initial matter, the fee is not paid in conjunction with the acquisition (or disposition) of property (crypto) so the value of the fee is not going to be added to the acquisition cost basis of the property.  There is no basis in the tax code to add the cost of moving (or transferring) property into the cost basis of that property.

That seems to be essentially identical to what we gleaned from the Intuit forum post I linked. Specifically, that transfer fees should be considered dispositions/sales of crypto (and reported as capital gains/losses), and the fee itself is not deductible in any way.
Thoughts?

I think I may have misread the post you linked earlier: it does say the same thing as the Taxbit article. I think your conclusion is correct: transfer fees are not deductible, but they are accounted for as sales.

OK, sounds good. I think we're on the same page. I appreciate the feedback.
I'll go ahead and close the issue for now. Cheers.


Quantized checkpoint is not smaller / faster

Hi, first, thanks for your implementation!
It's not too hard to apply your code to my current model!
However, the dumped checkpoint has the same size as the original model, and I wonder how to store it with less storage.
Thank you and hope to get your feedback.

Hi Sophia, thank you for using my code.
Because I dumped the floating-point weights (rather than the quantized ones) in the checkpoint. The quantization runs on the fly, generating quantized weights.
If you want to save quantized weights, you can declare them as Buffer (like Batch Norm), and then they will be also saved into the checkpoint.
If you do so, you will find both floating-point and quantized weights in your checkpoint. Then you can remove the floating-point ones from it manually.

I am not very similar with deployment tools. I guess there would be some much convenient ways to generate a quantized model with its pretrained weights.

Hi, thanks for your quick reply!  I modified the code and it worked!
For people who wanna save quantized weights, basically the modification is that the LSQ module returns x after round_pass & s_scale, and I dump these 2 parameters instead of self.weight & quan_w_fn.s of QuanConv2d.
https://github.com/zhutmost/lsq-net/blob/2c24a96be06d044fa4c7d651727f4574b8d88c86/quan/quantizer/lsq.py#L56
And I implemented functions for dumping & loading the quantized checkpoint.
But anyway, the saved checkpoint is reduced by more than 70%, and I could also load the checkpoint for evaluation / inference. 😀
Thanks again ~
(I could also share my implementation if needed.)

Great. Thank you, Sophia.
I'm still struggling with my theis. Maybe I will consider this feature in a few weeks (and also fix some known compatibility bugs).

Actually, a newer version is maintained in NeuralZip,and you can find more experiment results there.
But it is developed with PyTorch-Lightning framework, rather than the raw PyTorch.

Hi @zhutmost,
The performance of quantized model is good!
But I found that the inference time after quantization is slower, do you have any comments on this?
Below is the time it takes for inference.
(Note the inference time does not include checkpoint loading, and I use the same code)

not loading any checkpoint
21.555 s
loading original model
22.770 s
loading quantized model
35.845 s

Thanks! 🙏

I have no idea. I cannot explain it without more details.
In my code, the validation/test epoch (just like inference) is much faster than training epoch.

Hi, thanks for your quick reply.  Below is the code I modified from your repo.
Due to the characteristics of my model, I didn't modify codes related to QuanLinear.
When dumping checkpoint,
for name, module in model.named_modules():
    if type(module) == QuanConv2d:
        # 1. save self.quantized_weight (convert to type int8), self.w_scale
        state_dict[f'{name}.quantized_weight'] = module.quantized_weight.to(torch.int8)
        state_dict[f'{name}.w_scale'] = module.w_scale
        # 2. remove quan_w_fn.s & weight, since there's no need to use them for inference.
        state_dict.pop(f'{name}.quan_w_fn.s', None)
        state_dict.pop(f'{name}.weight', None)

When loading checkpoint,
for name in quantized_weights:
    # so that QuanConv2d.weight will be updated calling model.load_state_dict
    state_dict[f'{name}.weight'] = state_dict[f'{name}.w_scale'] * state_dict[f'{name}.quantized_weight']   # back to float32
    state_dict.pop(f'{name}.w_scale', None)
    state_dict.pop(f'{name}.quantized_weight', None)

In class QuanConv2d,
class QuanConv2d(nn.Conv2d):
    def __init__(self, ..., inference=False):
        ...
        self.inference = inference
        ...
    def forward(self, x):
        # quantized input
        quantized_act, a_scale = self.quan_a_fn(x)
        act = quantized_act * a_scale
        # quantized weight
        if not self.inference:
            self.quantized_weight, self.w_scale = self.quan_w_fn(self.weight)
            weight = self.quantized_weight * self.w_scale
        else:
            weight = self.weight    # the saved quantized weight (in float32)
        return self._conv_forward(act, weight)

I don't understand why it'll get slower either :(
Thank you.

Hi, thanks for your quick reply. Below is the code I modified from your repo. Due to the characteristics of my model, I didn't modify codes related to QuanLinear.
When dumping checkpoint,
for name, module in model.named_modules():
    if type(module) == QuanConv2d:
        # 1. save self.quantized_weight (convert to type int8), self.w_scale
        state_dict[f'{name}.quantized_weight'] = module.quantized_weight.to(torch.int8)
        state_dict[f'{name}.w_scale'] = module.w_scale
        # 2. remove quan_w_fn.s & weight, since there's no need to use them for inference.
        state_dict.pop(f'{name}.quan_w_fn.s', None)
        state_dict.pop(f'{name}.weight', None)

When loading checkpoint,
for name in quantized_weights:
    # so that QuanConv2d.weight will be updated calling model.load_state_dict
    state_dict[f'{name}.weight'] = state_dict[f'{name}.w_scale'] * state_dict[f'{name}.quantized_weight']   # back to float32
    state_dict.pop(f'{name}.w_scale', None)
    state_dict.pop(f'{name}.quantized_weight', None)

In class QuanConv2d,
class QuanConv2d(nn.Conv2d):
    def __init__(self, ..., inference=False):
        ...
        self.inference = inference
        ...
    def forward(self, x):
        # quantized input
        quantized_act, a_scale = self.quan_a_fn(x)
        act = quantized_act * a_scale
        # quantized weight
        if not self.inference:
            self.quantized_weight, self.w_scale = self.quan_w_fn(self.weight)
            weight = self.quantized_weight * self.w_scale
        else:
            weight = self.weight    # the saved quantized weight (in float32)
        return self._conv_forward(act, weight)

I don't understand why it'll get slower either :( Thank you.

Hi, sophia.Is your problem solved?

Honestly, it's still slow but I'm not dealing with this problem now. Thanks!

Honestly, it's still slow but I'm not dealing with this problem now. Thanks!

Hi，thanks for your quick reply.Do you have a better way now?

Hi, thanks for your quick reply! I modified the code and it worked!
For people who wanna save quantized weights, basically the modification is that the LSQ module returns x after & , and I dump these 2 parameters instead of & of .round_pass``s_scale``self.weight``quan_w_fn.s``QuanConv2d
https://github.com/zhutmost/lsq-net/blob/2c24a96be06d044fa4c7d651727f4574b8d88c86/quan/quantizer/lsq.py#L56
And I implemented functions for dumping & loading the quantized checkpoint.
Finally, the saved checkpoint is reduced by more than 70%, and I could also load the checkpoint for evaluation / inference. 😀
Thanks again ~ (I could also share my implementation if needed.)

Hello,can you share this part of the code


[Fix] Contributing url

This PR fixes a bad url for the CONTRIBUTING.md file.
It was originally using relative paths, but there seem to have an issue with templates >> https://stackoverflow.com/questions/49242645/github-relative-internal-repository-links-in-pull-request-template-md
PR Guidelines

[x] I have read the contribution and PR guidelines

That frees me of digging into this later 👯


Allow running outside of collectd

This adds in a little code to allow simply running mysql.py on its own, outside of Collectd.
It simply sets up the config and calls read_callback, which enumerates over everything to verify that it's at least able to grab everything without throwing an exception.

This is great - thanks a bunch! 👍


FR: Enabling personal additions to auto-correction map

Feature request: being able to add auto-correction rules
MO Word and LO Writer have this "auto-correction options" menu, which allows the user to add personal rules, which is extremely useful when taking notes in a live event: I add abbreviations, shortcuts, like "WW2" to "Second World War". I would love to have a similar possibility in Obsidian.
A 'personal' autocorrect map?
Could a personal auto-correction map like this one be available in the [vault]/.obsidian/plugins/obisdian-linter folder, and modifiable from the "content" tab?
It would mean the personal abbreviations would remain personal, within the vault itself.
I'm a data person, so I have no other alternative in mind, and if you can't do it, you can't. ^-^ But the RegEx tool seems a bit heavy for simple string replacements.
All the best,

Hey @MPica , I believe this is pretty similar to #866 . Could you elaborate on how this would be different or is it ok if I close this as a duplicate of the other ticket?

Hi and thank you! This solves it, you can close it as a duplicate.
It's easy to get lost in issues, I probably just didn't type the right keywords when I searched. Apologies.

I will go ahead and close this. No worries about it being similar. There are a decent bit of open issues and I can find it hard to find issues hard sometimes as well.


[Bug]: RuntimeError: Loading operator with error:Load operator failed

Is there an existing issue for this?

[X] I have searched the existing issues

Current Behavior
File "/opt/conda/lib/python3.8/site-packages/towhee/runtime/auto_config.py", line 83, in load_config
pipe_loader.PipelineLoader.load_pipeline(name)
File "/opt/conda/lib/python3.8/site-packages/towhee/runtime/pipeline_loader.py", line 63, in load_pipeline
if not PipelineLoader._load_builtins(name):
File "/opt/conda/lib/python3.8/site-packages/towhee/runtime/pipeline_loader.py", line 52, in _load_builtins
PipelineLoader._load_pipeline_from_file(name, file_path)
File "/opt/conda/lib/python3.8/site-packages/towhee/runtime/pipeline_loader.py", line 45, in _load_pipeline_from_file
spec.loader.exec_module(module)
File "", line 843, in exec_module
File "", line 219, in _call_with_frames_removed
File "/opt/conda/lib/python3.8/site-packages/towhee/pipelines/sentence_embedding.py", line 33, in
_hf_models = ops.sentence_embedding.transformers().get_op().supported_model_names()
File "/opt/conda/lib/python3.8/site-packages/towhee/runtime/factory.py", line 109, in get_op
self.preload_op()
File "/opt/conda/lib/python3.8/site-packages/towhee/runtime/factory.py", line 119, in preload_op
raise RuntimeError(err) from e
RuntimeError: Loading operator with error:Load operator failed
Expected Behavior
File "/opt/conda/lib/python3.8/site-packages/towhee/runtime/auto_config.py", line 83, in load_config
pipe_loader.PipelineLoader.load_pipeline(name)
File "/opt/conda/lib/python3.8/site-packages/towhee/runtime/pipeline_loader.py", line 63, in load_pipeline
if not PipelineLoader._load_builtins(name):
File "/opt/conda/lib/python3.8/site-packages/towhee/runtime/pipeline_loader.py", line 52, in _load_builtins
PipelineLoader._load_pipeline_from_file(name, file_path)
File "/opt/conda/lib/python3.8/site-packages/towhee/runtime/pipeline_loader.py", line 45, in _load_pipeline_from_file
spec.loader.exec_module(module)
File "", line 843, in exec_module
File "", line 219, in _call_with_frames_removed
File "/opt/conda/lib/python3.8/site-packages/towhee/pipelines/sentence_embedding.py", line 33, in
_hf_models = ops.sentence_embedding.transformers().get_op().supported_model_names()
File "/opt/conda/lib/python3.8/site-packages/towhee/runtime/factory.py", line 109, in get_op
self.preload_op()
File "/opt/conda/lib/python3.8/site-packages/towhee/runtime/factory.py", line 119, in preload_op
raise RuntimeError(err) from e
RuntimeError: Loading operator with error:Load operator failed
Steps To Reproduce
No response
Environment
- Towhee version(e.g. v0.1.3 or 8b23a93):
- OS(Ubuntu or CentOS):
- CPU/Memory:
- GPU:
- Others:

Anything else?
No response

Please provide the relevant code

from towhee import AutoPipes, AutoConfig
get the built-in sentence_similarity pipeline
config = AutoConfig.load_config('sentence_embedding')
config.model = 'paraphrase-albert-small-v2'
config.device = 0
sentence_embedding = AutoPipes.pipeline('sentence_embedding', config=config)
generate embedding for one sentence
embedding = sentence_embedding('how are you?').get()
batch generate embeddings for multi-sentences
embeddings = sentence_embedding.batch(['how are you?', 'how old are you?'])
embeddings = [e.get() for e in embeddings]

from towhee import AutoPipes, AutoConfig
get the built-in sentence_similarity pipeline
config = AutoConfig.load_config('sentence_embedding')
config.model = 'paraphrase-albert-small-v2'
config.device = 0
sentence_embedding = AutoPipes.pipeline('sentence_embedding', config=config)
generate embedding for one sentence
embedding = sentence_embedding('how are you?').get()
batch generate embeddings for multi-sentences
embeddings = sentence_embedding.batch(['how are you?', 'how old are you?'])
embeddings = [e.get() for e in embeddings]

It works ok in my environment. Can your environment download Hugging Face models successfully?

hi, If I cannot download the model from hugging face, do I need to download it locally and specify it in the model path?

Can I load other vector models like bge-large-zh-1.5 which is not in your vector model list

Can I load other vector models like bge-large-zh-1.5 which is not in your vector model list

https://towhee.io/sentence-embedding/transformers  Through this operation, more Hugging Face models can be invoked, including bge models.

hi, If I cannot download the model from hugging face, do I need to download it locally and specify it in the model path?

hi, If I cannot download the model from hugging face, do I need to download it locally and specify it in the model path?

You need to download huggingface model to the model cache, the default path is ~/.cache/huggingface/hub/

Does it have to be the default path, can I download the model to a different folder path and then specify this path in the code


Does this library support insert image and audio?

Hey!
Insert image is supported, we have an example for this here https://github.com/10play/10tap-editor/blob/main/example/src/Examples/CustomKeyboardExample.tsx
As for audio, it is possible, but with the Advanced Setup which requires some Tiptap work


update auto-detect-target-variant note STO-6890

Preview links:

Release notes > STO > Version 1.85.0
Release notes > Early Access features > STO early access features > Auto-detect option for targets and variants
Auto-detect by image type:

Image (Aqua Trivy): Detect target and variant
Repo (Semgrep): Detect target and variant
App instance (ZAP): Detect target and variant

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step behind the Harness VPN and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app. Current Draft URL is: https://65e8d20d4aa47e4303a9ec69--harness-developer.netlify.app

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step behind the Harness VPN and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app. Current Draft URL is: https://65ef5e46a4d96008347c7f79--harness-developer.netlify.app

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step behind the Harness VPN and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app. Current Draft URL is: https://65ef6218d7e1fa0b732aac16--harness-developer.netlify.app

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step behind the Harness VPN and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app. Current Draft URL is: https://65ef7a2614f07b1eba056b77--harness-developer.netlify.app

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step behind the Harness VPN and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app. Current Draft URL is: https://65f0a38144a5ee2aa1559343--harness-developer.netlify.app

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step behind the Harness VPN and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app. Current Draft URL is: https://65f1ec3e37ffb20ec48e3c26--harness-developer.netlify.app

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step behind the Harness VPN and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app. Current Draft URL is: https://65f1ed0975b3290db9b1848b--harness-developer.netlify.app

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step behind the Harness VPN and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app. Current Draft URL is: https://65f211f837ffb22c438e3c7b--harness-developer.netlify.app

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step behind the Harness VPN and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app. Current Draft URL is: https://65f26ba675b32969b0b17f52--harness-developer.netlify.app

LGTM
Once we get input from customer and release the feature, we want to  update the description to remove the information about the feature flag. @douglas-j-bothwell

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step behind the Harness VPN and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app. Current Draft URL is: https://65f35a329af9162834cd1512--harness-developer.netlify.app


Monster battle instigation

Right now, every single monster can be avoided. One boss type shows up in a specific area, another blocks a path to the end, and one is the end boss, but they are all voluntary fights. This doesn't give much tension to the game.
No one wants truly random battles, because old-school design mainly used them to pad time. One other alternative is to start a timer once you move into an area where there are monsters (not bosses), and once it ends the monster will attack. This gives the game a very different feel, but makes you actually have to fight the monsters I've so cleverly randomly-generated in locations based on your experience level. Perhaps there are other alternatives, but I'm not sure what to do.
I'm conflicted on this for now, but I wanted to get this down in an issue.

Version 0.14.8 now has Garynettys that have a chance of ambushing you.

The game is done, so this is moot.


Internal links are not target=_blank by default

Description
ensures that internal links do not open in new tabs by default
Closes #1036

Additional Context
Adds some logic to ensure that links are considered internal links only when they start with https://stacker.news in prod or when links start with / indicating it is a next internal route.  This prevents the site getting confused on links like https://example.com/items/134500.  I suppose this will not work on the sn onion site

Checklist

[x] Are your changes backwards compatible?

[x] Did you QA this? Could we deploy this straight to production?

[x] For frontend changes: Tested on mobile?

I haven't looked very closely, but we'll want to use the Link component of next/link for these so that we get any next routing goodies.


Feature/#12 upload receipt

Now generating receipt.tsv file with UUIDs!

I tried running and added a little bit of more information on install to the README.
It seemed to work fine, I got a receipt.tsv which included the extra fields.
Strangely I see an error indicating that something failed upload.  Is this because it failed once and was skipped or it failed upload after multiple retries?
I lost the error code but it basically said that some of the uploads failed.  That makes sense when I look at the receipt.tsv vs the original sample.tsv:
(env) ~/gitroot/BD2KGenomics/dcc-storage-schemas$> wc -l receipt.tsv
49 receipt.tsv
(env) ~/gitroot/BD2KGenomics/dcc-storage-schemas$> wc -l sample_tsv/sample.tsv
48 sample_tsv/sample.tsv

Can you comment on these failures?  Is it because your upload script doesn't retry on failure?

So the second time I ran, no failed uploads were reported:
2016-07-09 15:55:35,184 INFO registerBundleUpload:467 done registering bundle upload output_metadata/94879018-4c59-5537-a913-a87c820c69de
^@2016-07-09 15:55:46,180 INFO performBundleUpload:521 done uploading bundle output_metadata/94879018-4c59-5537-a913-a87c820c69de
2016-07-09 15:55:49,712 INFO registerBundleUpload:467 done registering bundle upload output_metadata/1329abd5-a293-5a20-a32e-a31b7f37799d
2016-07-09 15:56:00,274 INFO performBundleUpload:521 done uploading bundle output_metadata/1329abd5-a293-5a20-a32e-a31b7f37799d
2016-07-09 15:56:00,274 INFO main:714 counts	{"failedUploads": [], "failedRegistration": [], "bundlesUploaded": 43, "bundlesFound": 43}
2016-07-09 15:56:00,274 INFO main:717 now generate upload receipt
2016-07-09 15:56:00,292 INFO main:743 program ran for 653.402157 s.

What's problematic here is, if there are failures, the uploader may not know.  And we'll start having problems where uploads are "missing."  This happened in PCAWG and it was very difficult to work around and deal with.  We need to make sure failed uploads are retried with your wrapper, with a configurable number of retries (including the option to retry endlessly until it uploads).
So, before I merge this, I just need to know if you have retries in place and the upload failures were actually correctly dealt with.

I will merge this with develop and then open a new issue about failed upload handling.


Bayes inference 2d

Add figure for Bayesian inference on the 2d case corollary to the 1d case.

@maffettone sorry to be a pain about this but any chance you can just make a new notebook with your changes? Dealing with merge conflicts in Jupyter is a nightmare 😁
Alternatively, I will just rename my current version and deal with it later.

I don't see and merge conflicts? Using nbstripout solves that problem

No conflicts yet, but there will be once I try to merge my changes to the same notebook 😁
But anyways, I'll deal with it after the fact.


A minor typo in distillation training

Before freezing the backbone model, feature_dimensions() is called with a forward pass, thus the BN parameters are affected and it is no longer the original pre-trained model. Though it should cause little differences.

Thank you for sharing, this is an interesting observation! I think it might also be present in the original PatchCore code. But apparently it makes not much difference.


Awesome 3.5 doesn't understand --search

Issue description
#33169 has broken Awesome 3.5, which does not understand the --search flag.
Steps to reproduce
Build a configuration that includes
services.xserver.windowManager.awesome = {
    enable = true;
    luaModules = [ pkgs.luaPackages.vicious ];
    package = pkgs.awesome-3-5;
};

then run echo "require('vicious')" | awesome-shell (I think this is enough, I had to run from a custom nixpkgs or rollback to get my configuration to work, so I haven't tested this exact line of code).
Technical details
Please run nix-shell -p nix-info --run "nix-info -m" and paste the
results.

system: "x86_64-linux"
host os: Linux 4.14.47, NixOS, 18.03.git.a9fdfb6 (Impala) (this is with a patch rolling back to the LUA_PATH method -- any current 18.03 version should have this bug)
multi-user?: yes
sandbox: no
version: nix-env (Nix) 2.0.2
channels(root): "nixos-18.03.132545.c40fdcd26c2"

awesome 3 isn't available anymore ? shall we close ?

I suppose so


Bump salesforce api version

Bump salesforce api version

How was this change tested?

We have tested with existing sobjects, both standard and custom, and also going through documentation, we found one object where a column was changed but we don't have that object in our subscription, so no major impact.

How was this change tested?

We have tested with existing sobjects, both standard and custom, and also going through documentation, we found one object where a column was changed but we don't have that object in our subscription, working on that to get the license, other than that no major impact.

Please let me know once that object is tested.


WindowDialog Drag Panel not visible

The drag panel is not visible with pos(0,0) is this intended?
Why is the origin not at the top left of the panel?

Add WindowDialog.
Run Game.
Try to drag the WindowDialog.

Edit:
Looks like I used show() instead of popup() so I think it's all right.
Edit2:
What is show() for in controls? Is there any use case?
Master branch
Ubuntu

The window panel and chrome (border) is drawn with a single stylebox which extends to the outside. Only the "client area", the actual panel of the window is measured with pos and size.
I had to query the size of these stylebox extents when restoring editor settings windows in 3.0, which ensured the window borders where visible. I don't even think that can be queried in GDScript at the moment. Turned out the slight shadow counts towards them, so 0,0 isn't even defined and is not where the chrome (the white titlebar for example) "visually" begins.

This is almost fixed the preview is still wrong.

Still valid in 4979d9f
It got even worse. When you have embedded window, you can't move it outside the viewport, so the minimum position is (0, 20). But in editor you can put it at (0, 0) and then there is no way to drag it. You also can't remove the extra size from title bar anymore.


Official support for finetune-based methods, e.g., vit adapter, and multi-GPU training with DataParallel.

The implementation of the gradient update in faa_model.py seems to be very constrainted at best. It does not factor in the case where I want to obtain the policy for a finetuning model, it only naively set all layer's parameter to either require or not require gradient. Besides, this is also problematic if the user want to use DP to enable multi-GPU training.
This repo really needs some updates to address the mentioned issues as well as other issues that has been mentioned in other issues.

@TimandXiyu : can you provide more information related to your issues? It is best if you can provide detailed information related to their implementation. Thanks.


Feat: Icon of linkedin , github and youtube

Describe the feature
Icon of linkedin , github and youtube are not responding on going curser ,so we make it hover effect on curser and more
Add ScreenShots
no
Record

[X] I agree to follow this project's Code of Conduct
[X] I'm a GSSOC'24 contributor
[X] I want to work on this issue

i want to work on this issue #92 ,please assign me this issue under gssoc-ext , hactoberfest also

assigned it to you!


Fix example in readme

it was not clear from the example where the generate function was coming from

Thanks!


🐛 Fixed data binding for tag meta-data in Admin Console.

closes TryGhost/Ghost#12190
Binds the values in gh-tag-settings-form.hbs to the tag object rather than the scratchTag object which only exposes fields that are present in the "basic info" section and not the "meta data" section.
Double checked that all fields are correctly bound in admin console and also confirmed values were being passed through to the <head> tag, {{ghost_head}} and {{ghost_foot}} properties of a given post.

Hey!
Thanks for your PR, it's appreciated! :relaxed:
Although this fixes the issue, it doesn't follow our pattern of "scratch" values (which was implemented incorrectly in this file, causing the issue) - I've opened a PR here with what I think is the correct approach - I'm going the close this PR in favour of that one.


Gas Optimization Bounty submission #1

Summary

Submission
Contributor
Contracts
Target gas report gasreport.txt
Current gas report gasreport.txt

https://github.com/thirdweb-dev/contracts/pull/417
https://github.com/WhiteOakKong
NFTStake.sol
700e10bc0f378d36298ba4f10f4946bd6d3f28f4
4694d268f3c786062f316a19f588f68ce79c6dad

Overall gas reduced in target contracts: 9.26 %
Total before: 725_049 after: 657_895 (ref: src/test/benchmark/NFTStakeBenchmark.t.sol)

@nkrishang @WhiteOakKong hey guys I'm looking to learn from this. Would you explain why we can shift from using uint256 to uint64/128 etc ?

@nkrishang @WhiteOakKong hey guys I'm looking to learn from this. Would you explain why we can shift from using uint256 to uint64/128 etc ?

Depending on the context of the specific variable, you may be able to use a size less than uint256.
For instance, in this NFT staking contract, we can make a reasonable assumption that a user is not going to have > unit64.max() (a value of ~18 quintillion) tokens to stake.
Similarly with the timestamp, uint128.max() allows for functionality well into the future, beyond what would reasonably be needed for this contract (or the planet...).

Beautiful. Thank you for the explanation!


Vulkan: No TRANSMISSION fragment built-in in shader

Godot version
4.0.dev
System information
Windows 11, GLES3, Nvidia Gtx 1650ti
Issue description
There is no TRANSMISSION built-in in shader. I am pretty new to Godot so I don't know if it's a bug, future implementation or have been changed to something else.
In Godot 3, it is there but in 4 it has been removed but other built-ins are present like ALBEDO, NORMAL_MAP, etc with a slight change in naming. But I can't see the same for transmission.
If it is a silly issue and has an easy workaround, kindly post a reply with solution.
Steps to reproduce
TRANSMISSION = transmission.rgb + texture(texture_transmission, SCREEN_UV).rgb;
Minimal reproduction project
No response

cc @Chaosus

Looks like it was made a part of SSS here: https://github.com/godotengine/godot/pull/37678

Yeah, looks like it was renamed to SSS_TRANSMITTANCE_COLOR. Not a bug, closed.


Pls when the player locks in the team is finished, I write it like this and they don't know why it's always a mess to take effect

RegisterEventHandler((@event, info) =>
{
string currentDirectory = Directory.GetCurrentDirectory();
int UID =<EMAIL_ADDRESS>int team =<EMAIL_ADDRESS>var team3Players = team1Players;
var team4Players = team2Players;
if (Number_rounds == 13 || Number_rounds == 26 || (Number_rounds > 26 && Number_rounds % 6 == 0))
{
team3Players = team1Players;
team4Players = team2Players;
}else{ team3Players = team2Players;team4Players = team1Players;}
int t = 0;
if (team3Players.TryGetProperty(@event.Userid.SteamID.ToString(), out _))
{
t = 3;
}
else if (team4Players.TryGetProperty(@event.Userid.SteamID.ToString(), out _))
{
t = 2;
}
            _PlayerController = Utilities.GetPlayerFromUserid(UID);
            Server.NextFrame(() =>
            {
                if (t != 0 && team != t)
                {
                    _PlayerController.SwitchTeam((CounterStrikeSharp.API.Modules.Utils.CsTeam)(int)t);
                    _PlayerController.PlayerPawn.Value.CommitSuicide(true, true);
                }
                else
                {
                    if (t == 0)
                    {
                        t = 1;
                        _PlayerController.SwitchTeam((CounterStrikeSharp.API.Modules.Utils.CsTeam)(int)t);
                        _PlayerController.PlayerPawn.Value.CommitSuicide(true, true);
                    }

                }
                Log($"T= {t}");
            });

            return HookResult.Continue;
        });

Hey, could you please help me understand what are you exactly trying to achieve here?

嘿，你能帮我理解你到底想在这里实现什么吗？

I'm trying to lock down the team members here, and when they try to switch sides, I'll judge the team I've read, and if it's not the designated team, I'll make them kill themselves and go back to the team they deserve

I'm going to read this json file and lock the player team on my code above, but my previous work is normal, and when it comes to switching sides, I get wrong, can you help me?
There is a possibility that he will kill a correct player, and there is also a possibility that the player will be forced to switch to the wrong team when switching sides, which I suspect may be logically problematic for me

Hey, could you please help me understand what are you exactly trying to achieve here?

From what I understand, the problem would be the limit of players on the right team?
We need some blocking on the teams so that when there are 5 players on each team, the SPECS cannot enter the teams and neither can the players on the teams change teams.
In simple terms, Lock Team to block team changes during the competition.

Yes I had a word with him regarding this, and the locking teams using JSON will be coming soon to MatchZy ;)


Getting "Unexpected error: TypeError: invalid media type" after trying to check if element is displayed

info: <-- POST /wd/hub/session/14bcb8ff-200e-6db6-1860-46f8cace28f5/element 200 159.711 ms - 104 info: --> GET /wd/hub/session/14bcb8ff-200e-6db6-1860-46f8cace28f5/element/:wdc:1414793457544/displayed {} info: [debug] Proxying command to localhost:8080 info: [debug] Making http request with opts: {"url":"http://localhost:8080/wd/hub/session/42f102ec-59ac-86e0-f25e-49269a36853a/element/:wdc:1414793457544/displayed","method":"GET"} info: [debug] Proxied response received with status 500: error: Unexpected error: TypeError: invalid media type     at splitType (/Users/kirill/appium/node_modules/express/node_modules/media-typer/index.js:240:11)     at Object.parse (/Users/kirill/appium/node_modules/express/node_modules/media-typer/index.js:160:13)     at exports.setCharset (/Users/kirill/appium/node_modules/express/lib/utils.js:247:22)     at ServerResponse.res.send (/Users/kirill/appium/node_modules/express/lib/response.js:133:32)     at /Users/kirill/appium/lib/server/proxy.js:80:11     at safely (/Users/kirill/appium/lib/server/helpers.js:306:5)     at /Users/kirill/appium/lib/server/proxy.js:77:5     at Request._callback (/Users/kirill/appium/lib/devices/common.js:121:5)     at Request.self.callback (/Users/kirill/appium/node_modules/request/request.js:121:22)     at Request.emit (events.js:98:17) context: [GET /wd/hub/session/14bcb8ff-200e-6db6-1860-46f8cace28f5/element/:wdc:1414793457544/displayed {}]

I'm closing this issue due to inactivity.
If is a question rather than an issue, please send questions to the selendroid user group.
If you think it's an actual problem with selendroid and still experience the issue described on the latest release of selendroid feel free to file a new issue. If you do please provide a concise reproducible test case and describe what results you are seeing and what results you expect.


install of gfastats and yahs on test to match main

TODO: Please replace this header with a description of your pull request.
Installation sequence for tool-installers

[ ] Test using @galaxybot test this
[ ] Inspect CI output for expected changes
[ ] Deploy using @galaxybot deploy this if test install was successful
[ ] Merge this PR

these are installed and tracked already https://github.com/galaxyproject/usegalaxy-tools/blob/master/usegalaxy.org/assembly.yml#L67


Is it possible to mount ecrire to an existing Rails application as a Rails engine?

If that's possible, is there documentation anywhere on how to do that?

Unfortunately, no.
I built Ecrire has a separate application because the goal, at the time, was that if my app was going to fail, I could still blog to communicate with my customers.


Tag a release

Please Tag a release so we can install via composer global install bump/bump with a minimum-stability for stable.
kkthks

Done https://github.com/jakeasmith/bump/releases/tag/1.0.0


Resource interpreted as TextTrack but transferred with MIME type text/plain: "http://localhost:8080/OTX_server/accessiblehtml5videoplayer/media/captions_PayPal_Austin_en.vtt".

Resource interpreted as TextTrack but transferred with MIME type text/plain: "http://localhost:8080/OTX_server/accessiblehtml5videoplayer/media/captions_PayPal_Austin_en.vtt".
console log  like this . how to fix it

This is not an issue with this project but with your server. Add the vtt mime type to your server. More: http://stackoverflow.com/questions/15268604/html5-track-captions-not-showing

More:
https://www.iandevlin.com/blog/2016/05/html5/help-with-webvtt


Using RoboMongo to connect to MongoDB server, Authorization failed.

I get error:

Still get same error after unchecking Authorization

What it the default MongoDB username/password if I setup MongoDB using "setupMongo": true?
Still get same error after creating a SSH tunnel by running the ssh on my dev machine:
sudo ssh -L 29017:localhost:27017<EMAIL_ADDRESS>https://forums.meteor.com/t/connecting-to-remote-mongodb-sessions/1582

:+1:

@xuanus  This should help? https://medium.com/@katopz/meteor-mongodb-35c96ad6e43e

try changing

"localhost" to <IP_ADDRESS>,
auth mechanism to SCRAM-SHA-1
it worked for me, hope it helps.


[1508] Add Playwright for e2e testing

Summary
Issue: https://github.com/codeforboston/maple/issues/1508
This PR adds Playwright for e2e testing, a simple test for the MAPLE homepage, and resolves peer dependency issues related to testing and i18n packages. The following packages were upgraded:

jest
@types/jest
jest-environment-jsdom
i18n
next-i18next
react-i18next

Known issues
Updating jest to v29 introduced an error related to ESM imports for integration tests that touch firebase. To fix this, I had to add a custom resolver per this github thread: https://github.com/microsoft/accessibility-insights-web/pull/5421#issuecomment-1109168149
I don't have firebase set up, so I couldn't check to make sure that the tests are actually passing. I just made sure that it was in the same state as when I ran the tests in the main branch. Someone with firebase set up should absolutely run the integration tests to make sure they're behaving as expected.

Closing this PR, I redid it here: https://github.com/codeforboston/maple/pull/1554


Add math.clamp function

This pull request is aimed at addressing issue #405 :)

Thank you for the help here (and thanks for writing tests as well). Looks good.

Thank you for the help here (and thanks for writing tests as well). Looks good.

Great! Thanks for the review and for clarifying the problem. I am glad I could help


Removing allowlist - external federations domains

determine if the partner needs to update their DNS text record and removing allowlist.

@namkedia : Thanks for your contribution! The author(s) have been notified to review your proposed change.

#label:"aq-pr-triaged"

Replaced by https://github.com/MicrosoftDocs/azure-docs-pr/pull/193247.
#please-close


make sure /etc/fstab is always valid at boot time no matter what

For .iso-based install only.
Ensure that contents of /etc/fstab are ALWAYS valid at boot time, no matter what.  Otherwise Linux will not boot at all.  I discovered this the hard way.  The ansible mount module left an entry in fstab even after I unmounted, and that mount option did not work at boot time.  I had to PXEboot to rescue mode to figure out why - Linux hung immediately after the grub entry was selected.  Only explanation I had was that the "passno" field of /etc/fstab record was set to 0, and apparently it tried to mount the .iso before root fs was mounted, very strange but legal. So this fix has multiple defenses against this kind of thing ever happening again.  We make mount entry "noauto" so it won't even attempt mount at boot time.  We make "passno" field 2 instead of 0 (why isn't this default in Ansible mount module?) so that it wouldn't attempt mount until after root fs was mounted.   And in the unmount step, we use the state "absent" to indicate that it should remove the entry from /etc/fstab.   I know all this seems excessive and paranoid ;-) That's me I guess.
I inserted a comment about the ceph_stable_rh_storage_iso_path because I did not see how it would work if a directory path was included - we don't know if the directory exists.
Do most folks use subscription manager now so none of this matters to them?
I'm sorry but I haven't been able to test this in a while, can someone else try it?  It's a very small change.  I don't have any hardware to try it with today, wanted to get this in for comment at least.

@bengland2 thanks for this, just one comment :)

There was more than that one comment, which I should have omitted from the commit.  Check out the full diff.

@bengland2  If specifying mounted and the mount point is not present, the mount point will be created.

I just tried it that way, if you do this, then you wind up with this fstab line after reboot:
/root/rhceph-1.3.1-rhel-7-x86_64-dvd.iso /tmp/rh-storage-mount iso9660 ro,loop,noauto 0 2
The system boots fine because of "noauto" and passno=2, but it doesn't need to be there.  Perhaps this is a bug in ansible, I don't know.  If you really want it this way, fine with me, I'll do the extra commit and we can wrap this up.

Right, I've forgot about the options. I don't want to hold this one for too long as it solves a real problem.
Please submit another PR for that last part as soon as you have time to test it.
Thanks @bengland2!


configure travis-ci to use python 3.7 too

Codecov Report

Merging #296 into master will decrease coverage by 0.16%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master     #296      +/-   ##
==========================================
- Coverage   91.09%   90.93%   -0.17%
==========================================
  Files          31       31
  Lines        2448     2448
==========================================
- Hits         2230     2226       -4
- Misses        218      222       +4

Impacted Files
Coverage Δ

scvi/inference/posterior.py
92.64% <0%> (-0.76%)
:arrow_down:

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 a94f5d8...6ea7718. Read the comment docs.

looks good to me


Remove preview when rejecting a file

If the dropzone have a preview when rejecting a file, this should be removed.

Thanks for the bug report and pull request.
I fixed it with the new reset preview method.
https://github.com/jaysalvat/ezdz/commit/2ebd33adb75fb3410f0cd5a66d010974e180806a
Thanks again.