text:
Green screen integration

Is there in plan to add a green screen integration with webgl ?
Thank you.

I'm not sure what would be the goal of handling green screens. The purpose of this demo is to show that we can replace the background without relying on physical backdrop. So basically if you have a green screen, it should work with this demo out of the box.
If what you have in mind is rather to replace the background with green pixels, this could be done easily by using a green background image or by replacing the background replacement shader with one that just put green pixels instead. I don't plan to add this feature in the demo as I don't see any use case where putting green pixels would be the real end goal.

authors: Volcomix drenmullafetahu

repo: Volcomix/virtual-background


text:
Race condition in Big Calendar styles with dark theme

Resolved in https://github.com/VolkovLabs/volkovlabs-calendar-panel/pull/143

source: gharchive/issue

repo: VolkovLabs/volkovlabs-calendar-panel

license_type: permissive

license_source: github-api


text:
Implement CORS on all Vercel Apps

Implement CORS on Vercel as upstream data providers require that the header be respected:

We provide an Article on how to enable CORS on your Serverless Functions:
https://vercel.com/guides/how-to-enable-cors

NOTE: This also applies if you're trying to access a resource from an upstream provider We need to implement CORS because we are attempting to access the RPC resources from bloxroute.

The CORS error:
Access to fetch at 'https://volume.liquify.com/api=0440032/eth' from origin 'https://www.curvebot.fi' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.

Fixed with:
https://github.com/VolumeFi/curvefi-bot/pull/8
https://github.com/VolumeFi/palomabot/pull/297

I'm still getting CORS errors as well. This is also blocking the UI from displaying the max borrow amount which makes the screen somewhat unusable.

_app-c9caece94044acfb.js:1

       POST https://eth-protect.rpc.blxrbdn.com/ net::ERR_FAILED 429 (Too Many Requests)
o @ _app-c9caece94044acfb.js:1
(anonymous) @ _app-c9caece94044acfb.js:1
(anonymous) @ _app-c9caece94044acfb.js:1
a @ _app-c9caece94044acfb.js:1
(anonymous) @ _app-c9caece94044acfb.js:1
(anonymous) @ _app-c9caece94044acfb.js:1
d @ _app-c9caece94044acfb.js:1
h @ _app-c9caece94044acfb.js:1
send @ _app-c9caece94044acfb.js:1
(anonymous) @ _app-c9caece94044acfb.js:1
s @ _app-c9caece94044acfb.js:1
Promise.then (async)
c @ _app-c9caece94044acfb.js:1
o @ _app-c9caece94044acfb.js:1
Promise.then (async)
c @ _app-c9caece94044acfb.js:1
(anonymous) @ _app-c9caece94044acfb.js:1
f @ _app-c9caece94044acfb.js:1
_uncachedDetectNetwork @ _app-c9caece94044acfb.js:1
detectNetwork @ _app-c9caece94044acfb.js:1
(anonymous) @ _app-c9caece94044acfb.js:1
s @ _app-c9caece94044acfb.js:1
Promise.then (async)
c @ _app-c9caece94044acfb.js:1
(anonymous) @ _app-c9caece94044acfb.js:1
v @ _app-c9caece94044acfb.js:1
_ready @ _app-c9caece94044acfb.js:1
F @ _app-c9caece94044acfb.js:1
A @ _app-c9caece94044acfb.js:1
(anonymous) @ 5392-62fb692d3744a9ec.js:1
(anonymous) @ 5392-62fb692d3744a9ec.js:1
(anonymous) @ 5392-62fb692d3744a9ec.js:1
(anonymous) @ 5392-62fb692d3744a9ec.js:1
i @ 5392-62fb692d3744a9ec.js:1
e.init @ 5392-62fb692d3744a9ec.js:1
(anonymous) @ 5392-62fb692d3744a9ec.js:1
(anonymous) @ 5392-62fb692d3744a9ec.js:1
(anonymous) @ 5392-62fb692d3744a9ec.js:1
(anonymous) @ 5392-62fb692d3744a9ec.js:1
a @ 5392-62fb692d3744a9ec.js:1
init @ 5392-62fb692d3744a9ec.js:1
e @ 1446-3987135f995413cb.js:1
(anonymous) @ 1446-3987135f995413cb.js:1
uI @ framework-a2363dd3c3dbe572.js:9
oU @ framework-a2363dd3c3dbe572.js:9
o @ framework-a2363dd3c3dbe572.js:9
x @ framework-a2363dd3c3dbe572.js:33
T @ framework-a2363dd3c3dbe572.js:33
1446-3987135f995413cb.js:1 Error: could not detect network (event="noNetwork", code=NETWORK_ERROR, version=providers/5.7.2)
    at f.makeError (_app-c9caece94044acfb.js:1:189313)
    at f.throwError (_app-c9caece94044acfb.js:1:189427)
    at A.<anonymous> (_app-c9caece94044acfb.js:1:270967)
    at Generator.throw (<anonymous>)
    at s (_app-c9caece94044acfb.js:1:262855)
curve-leverage-lending/:1 Access to fetch at 'https://eth-protect.rpc.blxrbdn.com/' from origin 'https://www.curvebot.fi' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.
_app-c9caece94044acfb.js:1

       POST https://eth-protect.rpc.blxrbdn.com/ net::ERR_FAILED
o @ _app-c9caece94044acfb.js:1
(anonymous) @ _app-c9caece94044acfb.js:1
(anonymous) @ _app-c9caece94044acfb.js:1
a @ _app-c9caece94044acfb.js:1
(anonymous) @ _app-c9caece94044acfb.js:1
(anonymous) @ _app-c9caece94044acfb.js:1
d @ _app-c9caece94044acfb.js:1
h @ _app-c9caece94044acfb.js:1
send @ _app-c9caece94044acfb.js:1
(anonymous) @ _app-c9caece94044acfb.js:1
o @ _app-c9caece94044acfb.js:1
Promise.then (async)
c @ _app-c9caece94044acfb.js:1
(anonymous) @ _app-c9caece94044acfb.js:1
f @ _app-c9caece94044acfb.js:1
_uncachedDetectNetwork @ _app-c9caece94044acfb.js:1
detectNetwork @ _app-c9caece94044acfb.js:1
(anonymous) @ _app-c9caece94044acfb.js:1
setTimeout (async)
(anonymous) @ _app-c9caece94044acfb.js:1
A @ _app-c9caece94044acfb.js:1
(anonymous) @ 5392-62fb692d3744a9ec.js:1
(anonymous) @ 5392-62fb692d3744a9ec.js:1
(anonymous) @ 5392-62fb692d3744a9ec.js:1
(anonymous) @ 5392-62fb692d3744a9ec.js:1
i @ 5392-62fb692d3744a9ec.js:1
e.init @ 5392-62fb692d3744a9ec.js:1
(anonymous) @ 5392-62fb692d3744a9ec.js:1
(anonymous) @ 5392-62fb692d3744a9ec.js:1
(anonymous) @ 5392-62fb692d3744a9ec.js:1
(anonymous) @ 5392-62fb692d3744a9ec.js:1
a @ 5392-62fb692d3744a9ec.js:1
init @ 5392-62fb692d3744a9ec.js:1
e @ 1446-3987135f995413cb.js:1
(anonymous) @ 1446-3987135f995413cb.js:1
uI @ framework-a2363dd3c3dbe572.js:9
oU @ framework-a2363dd3c3dbe572.js:9
(anonymous) @ framework-a2363dd3c3dbe572.js:9
oI @ framework-a2363dd3c3dbe572.js:9
oC @ framework-a2363dd3c3dbe572.js:9
r4 @ framework-a2363dd3c3dbe572.js:9
(anonymous) @ framework-a2363dd3c3dbe572.js:9
setTimeout (async)
l @ _app-c9caece94044acfb.js:1068
(anonymous) @ _app-c9caece94044acfb.js:1068
(anonymous) @ _app-c9caece94044acfb.js:1068
(anonymous) @ _app-c9caece94044acfb.js:1
dispatch @ _app-c9caece94044acfb.js:1073
unsubscribe @ _app-c9caece94044acfb.js:1068
(anonymous) @ _app-c9caece94044acfb.js:1068
oP @ framework-a2363dd3c3dbe572.js:9
(anonymous) @ _app-c9caece94044acfb.js:1068
I @ 1377-8a77bdca41996044.js:1
(anonymous) @ 1377-8a77bdca41996044.js:1
E @ 1377-8a77bdca41996044.js:1
await in E (async)
e @ 1377-8a77bdca41996044.js:1
(anonymous) @ 1377-8a77bdca41996044.js:1
setTimeout (async)
(anonymous) @ 1377-8a77bdca41996044.js:1
uI @ framework-a2363dd3c3dbe572.js:9
oU @ framework-a2363dd3c3dbe572.js:9
(anonymous) @ framework-a2363dd3c3dbe572.js:9
oI @ framework-a2363dd3c3dbe572.js:9
oC @ framework-a2363dd3c3dbe572.js:9
r4 @ framework-a2363dd3c3dbe572.js:9
(anonymous) @ framework-a2363dd3c3dbe572.js:9
curve-leverage-lending/:1 Access to fetch at 'https://eth-protect.rpc.blxrbdn.com/' from origin 'https://www.curvebot.fi' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.
_app-c9caece94044acfb.js:1

    ```

Access to fetch at 'https://service.palomabot.ai/stats?' from origin 'https://www.curvebot.fi' has been blocked by CORS policy: The 'Access-Control-Allow-Origin' header has a value 'https://curvebot.fi' that is not equal to the supplied origin. Have the server send the header with a valid value, or, if an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.
Access to fetch at 'https://explorer-api.walletconnect.com/w3m/v1/getDesktopListings?projectId=b790153c46fe59c25875a033a6c378ed&sdkType=w3m&sdkVersion=js-2.7.1&page=1&entries=9&version=2' from origin 'https://www.curvebot.fi' has been blocked by CORS policy: The 'Access-Control-Allow-Origin' header has a value 'https://curvebot.fi' that is not equal to the supplied origin. Have the server send the header with a valid value, or, if an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.

Superseded by https://github.com/VolumeFi/paloma/issues/1109

authors: jamie088 taariq verabehr

repo: VolumeFi/paloma


text:
Create bot and sign swap transactions

Background
https://www.notion.so/volumefi/EPIC-04-14-PalomaBot-ai-Momentum-Chaser-Bot-79c25a79c6ce48afafbb4d0db1cbbfc4?pvs=4#459accda36b947cba87e70654436b755
Done When

[x] swap transaction swap from token into USDT is created and routed through palomaswap
[x] limit order bot deposit function is executed using https://github.com/VolumeFi/limit-order-bot-vyper-uniswap-v2

Background
https://www.notion.so/volumefi/EPIC-04-14-PalomaBot-ai-Momentum-Chaser-Bot-79c25a79c6ce48afafbb4d0db1cbbfc4?pvs=4#459accda36b947cba87e70654436b755
Done When

[ ]  swap transaction (buy token and enter bot) is created and routed through palomaswap
[ ]  bot information is stored in postgresDB - columns, Endpoint: https://backend.robots.palomachain.com/register
[ ]  swap transaction (sell token and close bot) is created and sent to the DB for later execution

@jamie088 are all the tasks already done in this ticket? If yes, what are you working on now? If not, please reopen and also feel free to edit the ticket to better reflect your tasks

nvm, I see you updated the status already, but hte ticket still shows as closed. That's a github weirdness. I'll reopen

Thank you @verabehr

@verabehr One question. About second field: bot information is stored in postgresDB in this task.
I think current logic is deposit tokens to pool (for create a bot) using limit order bot contract and then in backend, scan the deposited function event and register for a new bot in backend. Is this right? I am not sure what should I do in frontend about this.

@jamie088 this ticket wasn't updated after the change was made, so this is no longer correct. That being said, my understanding is that the FE still needs to send the paloma transaction to the backend, but I don't know if this is still right or changed. This document is supposed to have the latest requirements, but I don't think it does https://www.notion.so/volumefi/EPIC-04-14-PalomaBot-ai-Momentum-Chaser-Bot-79c25a79c6ce48afafbb4d0db1cbbfc4?pvs=4#9470f088b6f04e7abe2d05de316a3bcd.
@taariq will you weigh in here?

done with https://github.com/VolumeFi/palomabot/pull/9


text:
BUG: My bot shows $28,962.96 TVL for a $ 25,000 borrow amount.

When I start a bot for $25,000 crvUSD, TVL is listed as $28,962.96. Why? This seems to be very wrong.

@fieldtheory123

@jamie088 I'd print out everything in this formula to check where it's wrong
current_collateral_price * collateral_amount * leverage - borrowed_amount - collateral_amount - fee

@jamie088 what's the status of this issue?

@jamie088 I'd print out everything in this formula to check where it's wrong current_collateral_price * collateral_amount * leverage - borrowed_amount - collateral_amount - fee

current_collateral_price * collateral_amount = 7.51183306
leverage = 7.97
borrowed_amount = 49.838201
fees_charged = 0.09061959

@taariq The current TVL includes borrow amount. It's basically initial collateral * leverage. That's why when you started your bot with 0.063 WBTC (worth around $3900 at the time) and borrowed 25000, you saw TVL = 0.063 WBTC + 25000 crvUSD = $28962
Do you want the TVL to exclude borrowed amount?

This actually works as intended. Closing and adding a tooltip https://github.com/VolumeFi/paloma/issues/1420


text:
[LIGHTNODE] As a user, I want to be able to use an 8 digit aphanumeric PROMO code

As a user, I want to be able to use an 8 digit aphanumeric PROMO code when purchasing my Lightnode so that my PROMO code can be an interesting mix of numbers and letters.
Acceptance Criteria

Allow 8 Digit Alpha numeric Promo Code in the Front-end.
Allow 8 Digit Alpha numeric Promo Code to be used in back-end, but not maximum. We might make it bigger.

Design: https://www.figma.com/design/yC7zuL9bFx9yvPd2aBalX6/Paloma-Light-Sale-Node?node-id=260-2322&t=GlhJ3d4L5gzJhl0D-4 @jamie088 @taariq

@jamie088 @taariq I deleted the Design. I was confused. One thing is the 4-digit Code to access the purchase flow. and the other is the promo code. My mistake sorry.

@taariq Could you please write more details about 3. Promo code persist in URL as https://palomachain.com/?code=ALPHAGROWTH so that the user does not need to type in the code.?

Means after user generate Promo code the front-end should generate a customised URL for each code. And user will be able to copy and paste it. @jamie
Sent from Outlook for iOShttps://aka.ms/o0ukef

From: jamie088 @.>
Sent: Thursday, September 12, 2024 5:08:04 PM
To: VolumeFi/paloma @.>
Cc: Joyce Alejandra Hermosilla Retamales @.>; Assign @.>
Subject: Re: [VolumeFi/paloma] [LIGHTNODE] As a user, I want to be able to use an 8 digit aphanumeric PROMO code or PROMO CODE URL (Issue #2119)
@taariqhttps://github.com/taariq Could you please write more details about 3. Promo code persist in URL as https://palomachain.com/?code=ALPHAGROWTH so that the user does not need to type in the code.?
—
Reply to this email directly, view it on GitHubhttps://github.com/VolumeFi/paloma/issues/2119#issuecomment-2346563995, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AFKJ75IOLTZ2Z5XU6EK36S3ZWGU5JAVCNFSM6AAAAABNUUIZGOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGNBWGU3DGOJZGU.
You are receiving this because you were assigned.Message ID: @.***>

@taariq @joycehermosilla When a user applies a promo code, do I change the URL to one that includes the promo code?
like this: https://www.palomachain.com/purchase/?code=ALPHAGROWTH

This is good. But more important is by Promo Code creation. See designs here: https://www.figma.com/design/yC7zuL9bFx9yvPd2aBalX6/Paloma-Light-Sale-Node?node-id=2879-634&t=dmDT3wb8dgEizMl9-4
@jamie088

This is done.

authors: jamie088 joycehermosilla taariq


text:
Broken dependency

Describe the bug
When I'm trying to install the module with npm, I got this error :

I succeed installing it by adding --legacy-peer-deps
And I don't know if this is linked to this potentially broken dependency, but after adding the component as said in the doc, I got this error on console and the component don't appear :

Desktop & mobile (please complete the following information):
OS : Debian GNU/Linux 10
KDE Plasma version : 5.14.5
Qt version : 5.11.3
KDE Frameworks version : 5.54.0
Kernell version : 4.19.0-20-amd64
OS Type : 64-bit
Processors : 4 × Intel® Core™ i3-2100 CPU @ 3.10GHz
Memory : 7,8 Gio
Hope you know what's the problem and can help me

Looks like you are using Vue 2, however, this component is Vue 3 only

Yes, nvm, sorry. I didn't understand it first, then I took a break and read it again, then... I understood how dumb am I ^^

authors: Jasenkoo PyroxFyre

repo: Vuepic/vue-datepicker

license: MIT


text:
PluginClean deletes Vundle

When I run PluginClean, it want's to delete Vundle.vim. Is this the expected behavior?
Here's the start of my .vimrc file:
set nocompatible
filetype off

set rtp+=$HOME/.vim/bundle/Vundle.vim
call vundle#begin()

" let Vundle manage Vundle
" required!.
Plugin 'gmarik/vundle'

I note that you have 'gmarik/vundle' instead of this current repo. I can imagine some confusion there if you your names don't line up.

Good catch. Thanks. I must have copied that from another script.

I re-installed Vundle from scratch, making sure it's from this repo. PluginClean still asks to remove "Plugin 'Vundle'".

authors: davidlowryduda lsiden

license: mit

license_source: bigquery


text:
Testing Webhooks!

lol

done with testing

repo: Vyxal/Vyxal


text:
Time question

Thanks for your code implementation!
As mentioned in the paper, 3 Models RefineNet, DeepLab, and PSPNet were trained for 35,000 epochs on a single GTX 2080TI GPU. It would be beneficial to provide a rough estimate of how much time was required for each model to train?

It took about 25 hours for training.

repo: W-zx-Y/DANNet


text:
source_id registration IPSL-CM6A-ATM-ICO-VHR

label = IPSL-CM6A-ATM-ICO-VHR
label_extended = IPSL-CM6A-ATM-ICO-VHR
source_id = IPSL-CM6A-ATM-ICO-VHR
institution_id = IPSL
release_year = 2021
activity_participation = [HighResMIP]
aerosol:
description = none
nominal_resolution = none
atmos:
description = DYNAMICO-LMDZ (NPv6; 1024000-point icosahedral-hexagonal; 79 levels; top level 80000 m)
nominal_resolution = 25 km
atmosChem:
description = none
nominal_resolution = none
land:
description = ORCHIDEE (v2.2, Water/Carbon/Energy mode)
nominal_resolution = 25 km
landIce:
description = none
nominal_resolution = none
ocean:
description = none
nominal_resolution = none
ocnBgchem:
description = none
nominal_resolution = none
seaIce:
description = none
nominal_resolution = none

@acaubel thanks for submitting, your model(s) are now registered (#1047). Please review CMIP6_source_id.html and let us know of any further tweaks required

@matthew-mizielinski just circling around on this, we recommend that source_id is limited to 16 characters (in https://github.com/WCRP-CMIP/CMIP6_CVs/blob/master/.github/Model_registration_template.md), which isn't a hard limit, but worth considering as we move forward. To be honest I had forgotten about this.

Given the large number of closely related model versions in the IPSL portfolio (12, I think), and given the rationally designed naming scheme they came up with (which can be interpreted by humans after a little study), perhaps we should consider relaxing the "16 character rule".  As I recall the reason on suggesting a 16 character limit was so that 1) file names would not get too long, and 2) these IDs could be used as short labels on graphs (and not occupy too much space).
I suppose we should check whether any of the software infrastructure assumes these names will be no longer than 16 characters before granting an exception.

Another way to identify closely-related model versions is to assign a different "physics_index" (the "p" value in the "ripf" identifier).  I wonder if we should encourage movement in that direction.

@taylor13 I think [yep, just confirmed this looking at CMIP6_source_id.html - 250, 100, 50 and 25 km nominal_resolution] all these 4 IPSL-CM6A-ATM-ICO-* configurations are identical, except for their resolution - which would mean that a grid_label would be all that is needed to differentiate them

Trouble is in CMIP6 grid_label identifies the grid on which output is reported, which is not necessarily the same as the model grid.   Also if model output is reported on the native grid for two models at different resolutions, the grid label for both models in CMIP6 should be "gn", which means datasets won't be uniquely identified unless their source IDs are different.

@taylor13 let's add this to the hopper for discussion as we finalize the "harmonization" document - it makes sense to me that a single model configuration (same submodule component versions) is singly identified in its source_id

@durack1 @taylor13 We have to check the uniqueness of the dataset DRS_id. What happens if the same source_id  run in two different resolutions contributes to a MIP? Should the results from two different model resolutions be cited together (ripf is a single DRS component and cannot be split)? Or will that case not happen?
There was a reason, why modeling centers started to encode the resolution in their source_id (model version)...

@taylor13 I think [yep, just confirmed this looking at CMIP6_source_id.html - 250, 100, 50 and 25 km nominal_resolution] all these 4 IPSL-CM6A-ATM-ICO-* configurations are identical, except for their resolution - which would mean that a grid_label would be all that is needed to differentiate them

One thought here from our experience of running different resolution models; there are a (small) number of parameter and physics differences between our models at different resolutions. One notable one in the ocean is the changes in the eddy parameterisation (Gent-McWilliams is often mentioned here as being active in our eORCA1 models, but not in eORCA025), changes like this mean that the behaviour of the model can be very different depending on what you are looking at (hence HighResMIP). When users of the data come to look at  the data there needs to be a very clear distinction between models at different resolutions otherwise analysis will be particularly painful -- the physics label as it stands is not a clear enough label for this purpose.
I could imagine that in the future we could break the source_id into a model series (e.g. HadGEM3-GC31) and sub_source_id (e.g. LL), but I'm not 100% convinced that this is better than what we already have. We should certainly revisit this in discussions on the harmonization document.
The only short term action I can see here is to consider whether we ask whether these recently added sources ids could be shortened (remove -ATM? ) note that there are a couple of other models where resolution numbers like 025 have crept in.
On the topic of source_id length note that we already have an 18 character one CESM1-1-CAM5-CMIP5 and  EC-Earth3-AerChem, IPSL-CM6A-LR-INCA, RTE-RRTMGP-181204 at 17 characters, all of which have data published on ESGF.

We had this discussion when planning CMIP5 (and again CMIP6), and now again.  Each time the result was that for reasons stated above and elsewhere, models run at different resolutions are considered to be different models and are assigned different "source_ids".  I agree that the short-term action is to consider whether to recommend any shortening.
As I recall, we had set out a rule at one point that a coupled model that was run in AMIP mode (so atmosphere-only) should have the same source_id as one that was coupled to an ocean.  It's the experiment that determines which model components should be active.  Thus, a model running the full set of DECK experiments would be consistently named (i.e., the name wouldn't be different for the AMIP run just because it was run uncoupled).  With that background, "ATM" in the source_id is really not necessary (even if the model is never run coupled).
I think IPSL had already had other models with "ATM" in their source_id before adding the recent ones, so now we have to decide whether for consistency in their naming, we allow them to continue to include "ATM", or for consistency with the original source_id naming guidelines, we should ask them to remove it.

Hi all,
some comments to explain some aspects :

Differences between IPSL-CM6A-ATM-ICO-VHR, HR, MR and LR is the resolution of the model (and consequently dynamics timesteps and dissipation times). That's the case for native grid (icosaedral grid) and for regular grid (fields are interpolated on regular grid). We would like to publish variables both on native and regular grid.
From IPSL point of view, different resolution means different source_id.
The "ATM" in the name is specified in case of IPSL-CM6A-ATM-ICO-VHR, HR, MR and LR to show the model will not run on coupled ocean-atmosphere (i.e only atmopsheric configuration is available). The "ICO" means here that the native grid is an icosaedral grid to differentiate from regular grid model IPSL-CM6A-ATM-HR for example.
IPSL-CM7A-ATM-HR and IPSL-CM7A-ATM-LR can be removed from CMIP6_CVs (no data was published for these source_id). Actually, we replaced them by the new IPSL-CM6A-ATM-ICO-VHR, HR, MR and LR.

We would like as much as possible not to modify data which has been already published. Concerning IPSL-CM6A-ATM-ICO-VHR, HR, MR and LR data : we did not yet publish it but the data has been already treated in terms of name of the model and other metadata related to source_id...and so the data is almost ready to be published.
I hope this helps to understand the IPSL naming convention. Do not hesitate to ask us if you need further information.
Thanks !

Given that data has already been written, I vote for not enforcing the 16 character "limit" and not suggesting the source names be changed.

@acaubel thanks for chiming in, and suggesting that we remove the unused entries: IPSL-CM7A-ATM-HR and IPSL-CM7A-ATM-LR, it makes sense to cleanup as we go, I shall reopen this issue as we have an action pending.
I wouldn't worry too much about the length, if you've already written data, leave it as it is, your naming logic makes sense. We just need to ensure that moving forward, our data conventions can capture all the nuances required, whilst ensuring that we don't have directory (or filenames) that are ridiculously long

Registration updates migrated to new issue #1051.
We shall leave this issue open, until the appropriate changes are made to https://github.com/WCRP-CMIP/CMIP6_CVs/blob/master/.github/Model_registration_template.md - simply updating 16 -> 25 chars


text:
update jquery/dataTables libraries

both jquery (current release 3.6.0, existing version 3.5.0) and dataTables (current release 1.11.4, existing version 1.10.20) are behind the latest, update these while thinking about the https://github.com/WCRP-CMIP/CMIP6_CVs/issues/1050#issuecomment-1040923711

Also think about compressing information https://datatables.net/examples/styling/compact.html

Add cleanup for redundant src/CMIP6_*_id.html, early versions of jquery* files


text:
Add download CSV and PNG buttons to charts

Description
This fixes #988.

How to test the feature:

Go to chats panel
Use the download CSV buttton
Use the download PNG button

Checklist - did you ...

Test your changes with

[x] REACT_APP_COUNTRY=rbd yarn start
[x] REACT_APP_COUNTRY=cambodia yarn start
[x] REACT_APP_COUNTRY=mozambique yarn start
[x] Add / update necessary tests?
[x] Add / update outdated documentation?

Screenshot/video of feature:

@echaidemenos - this is working well within the charts tab, nice work! The only issue I found within the charts module is that the tooltip isn't translated. I added the text as it should appear to translation.json but the tooltip still only shows English. This is for both csv and png:

There's also a UI issue when the download buttons are rendered for charts access through the map interface. The download button overlaps with the close button for most charts, and for Cambodia's EWS-1294 data, they are not visible at all.

To replicate the the issue above, use Cambodia and select layer: Flood > Early warning > EWS-1294. Then click on a data point to see the chart. Download CSV, Download PNG and close icons are all not visible.
Note - we already have a 'download CSV' button at the bottom of the pop up window when we access charts in the map interface. We should either remove that, or use the same area for both download buttons. @ericboucher - which is better from a maintenance / reusability perspective?

Added a new issue for the EWS-1294 chart consistency issue - https://github.com/WFP-VAM/prism-app/issues/1055

source: gharchive/pull-request

authors: echaidemenos wadhwamatic

repo: WFP-VAM/prism-app


text:
ingest --email

We want to be able to specify an email address when starting an ingest, so that there can be a notification on completion. Currently, the wgbh outlook server does not seem to be accepting the emails my script would send. Have filed a help ticket: http://servicedesk.wgbh.org/scripts/texcel/servicewise/clogin.dll?cqedit?xEmoyigiixomkjwihggd

To summarize, our logs say:
... to=chuck_mccallum@wgbh.org, delay=00:00:26, xdelay=00:00:05, mailer=esmtp, pri=120008, relay=wgbh-org.mail.protection.outlook.com. [207.46.163.215], dsn=5.7.606, stat=User unknown
... DSN: User unknown

IT says:

SMTP is blocked/filtered by AWS for all EC2 instances to prevent spamming. The recommended way to send email from an EC2 instance would be to setup SES, and relay your mail through SES. If the volume of email is very,very small, you can give the instance an Elastic IP and make a support request with AWS to allow SMTP.
AWS says:

Yes. In order to maintain the quality of EC2 addresses for sending email, we enforce default limits on the amount of email that can be sent from EC2 accounts. If you wish to send larger amounts of email from EC2, you can apply to have these limits removed from your account by filling out this form.
@afred: I am not convinced that the error we have is generated by AWS; might be, but the docs don't say outright that sending mail is impossible from EC2. In any event, there is some limit, and it would probably be frustrating to bump into that and not receive notifications.

Explore SES?
Abandon this approach / user pings to check for completion?

@mccalluc let's take a peek at SES. In general, I think knowing how to have our AWS hosted websites send emails is worth a little investigation.

@mccalluc I actually just requested verification of the wgbh-mla-test.org domain with SES. Currently says it's pending.
https://console.aws.amazon.com/ses/home?region=us-east-1#verified-senders-domain:

... seems to be approved now.

right on, not sure what the next steps are. If you want to jump on this, feel free.

Looked into this a bit further: It looks like in order to send email you need to create a new IAM user with limited privs: This produces credentials which we wouldn't want to check in... So either they'd need to be passed with another environment variable, or they'd be another resource which aws-wrapper would handle the creation of. Neither really appeals to me right now.
(I've created the credentials and stored them locally, and I've done a test email.)

Right on, thanks for the investigation. I imagine we'll want to send emails from a web app hosted on AWS at some point... but for now, maybe just stick with the option to add a cap task to download the log.

closing for now, but in the future we might revisit.

authors: afred mccalluc


text:
facets need to be multicolumn

ten values and then wrap? Or do something to get even groups?

@mccalluc: What is the maximum number of values for the facets?

I don't think we should set a maximum, unless for aesthetic reasons you want to set a max. (Up top, those were questions to myself: I feel confident that I can come up with something reasonable right now.)

@mccalluc: I am sure you will come up with something good. The WGBH Forum Network website has a horizontal facet menu which may provide some inspiration: http://forum-network.org/lectures/

Close in favor of #87.


text:
Flight category "WVFR"?

Not finding any documentation on what flight category "WVFR" means.
context

There's a little bit of detail about it here, although I don't call it out explicitly: https://led-sectional.kyleharmon.com/#software
It's basically something I made up called "windy VFR", which is VFR conditions with winds above the threshold defined in #define WIND_THRESHOLD. I created just to make things a bit more interesting in the summer because my own map is for California, which would be super boring 6 months out of the year.

Gotcha, thanks for clarifying. I saw the code about the wind conditions but didn't make the connection.
Side note, your code worked great on my project and your tutorial was awesome. Thanks so much.

authors: WKHarmon b-hud

repo: WKHarmon/led-sectional


text:
無名の関数の宣言ができてしまう

Losetta/Alice2.0で無名で関数の宣言ができてしまう。つまり、次のようなコードは実行できる。
function (){/*SOMETHING*/}

一方、次のコードは実行できない。
();

地味に修正済みやった

repo: WSOFT-Project/Losetta


text:
Worker keeps processing data despite having began to shut down -- resulting in fail()

See https://circleci.com/gh/WallarooLabs/wallaroo/18297#artifacts/containers/0
Is this a bug, feature request, or feedback?
This is a bug
What is the current behavior?
It looks like a message has gone missing, causing the worker to fail on the bad state condition
BUT this also appears to be happening during shutdown, so perhaps this isn't a bad state issue as much as it is a "this should have stopped and didn't" issue.
What is the expected behavior?
This shouldn't happen, regardless of shutdown or not.
What OS and version of Wallaroo are you using?
Linux 18.04 LTS, commit a2e6d9987 on issue-2845 branch, but I suspect this is present in master as well.
Steps to reproduce?
cd testing/correctness/tests/autoscale
make test debug=true resilience=on pytest_exp='-k pony_gensource'

It might take several repetitions to reproduce this bug.
Depends on #2870

repeated tests several times, did not see this failure. Marking this as resolved

authors: JONBRWN nisanharamati

repo: WallarooLabs/wallaroo


text:
🛑 API is down

In f821cb2, API ($PROD_API_URL) was down:

HTTP code: 0
Response time: 0 ms

Resolved: API is back up in 4131b0c.

repo: WalletInc/status


text:
[refactor] Make llm.c modular

Related https://github.com/WasmEdge/WasmEdge/issues/3523

after spending some time messing around with llm.c, i feel like the author doesn't intend to make this good for engineering, but more like an example for demonstrating how large and complex modern llm works under the hood. thus embedding llm.c into WasmEdge is not as easy as ggml. There are at least 4 problems i can think of:

llm.c is using plain Makefile as its build system and does a bad job at managing dependencies. For example, llm.c depends on cudnn-frontend, and you have to manually tell it where to search that (by setting CUDNN_FRONTEND_PATH environment variable, or it will simply look at your home directory) https://github.com/WasmEdge/llm.c/blob/bdb0fb5599349040765b04d94425a45379449f69/Makefile#L103-L105

llm.c is just an executable train_gpt2 and train_gpt2cu. In this PR i separated some functions and made it a shared lib. well, that probably WORKS, but llm.c is changing every day, it will take a lot of effort to rebase if we can't upstream our changes, or we have to lock the version (lost the ability to improve in the future!)

llm.c supports training on the cpu and gpu. HOWEVER, they seem just to copy & paste the old code and rewrite some logic, so no abstractions and a lot of code doing very similar things, even with SAME symbols... that said, we can't link with train_gpt2_cpu.so and train_gpt2_gpu.so together, cuz that will cause symbol conflicts. my current plan is to use dynamic library loading (dlopen), only loading the corresponding lib based on what users have chosen. the drawback is the performance penalty, and we have to ship these libs, together with WasmEdge. Or we only support cpu training atm.

well, llm.c can't train gpt2 from scratch but needs an existing checkpoint. if you take a look at their examples, they first train gpt2 using pytorch for a few epochs, and then llm.c will take over the process. that said, even we successfully exposed these interfaces to wasm or rust, we still need python.

llm.c is using plain Makefile as its build system and does a bad job at managing dependencies. For example, llm.c depends on cudnn-frontend, and you have to manually tell it where to search that (by setting CUDNN_FRONTEND_PATH environment variable, or it will simply look at your home directory) https://github.com/WasmEdge/llm.c/blob/bdb0fb5599349040765b04d94425a45379449f69/Makefile#L103-L105

Let's create a CMakefile for it. So we can reduce several dependencies searching issue.

llm.c is just an executable train_gpt2 and train_gpt2cu. In this PR i separated some functions and made it a shared lib. well, that probably WORKS, but llm.c is changing every day, it will take a lot of effort to rebase if we can't upstream our changes, or we have to lock the version (lost the ability to improve in the future!)

Since there is an issue talked about the CMake support, I don't think the upstream would like to merge our changes.
Instead, let's lock the version. Then, if we need new features or improvements from upstream, we can manually improve it by rebasing.

llm.c supports training on the cpu and gpu. HOWEVER, they seem just to copy & paste the old code and rewrite some logic, so no abstractions and a lot of code doing very similar things, even with SAME symbols... that said, we can't link with train_gpt2_cpu.so and train_gpt2_gpu.so together, cuz that will cause symbol conflicts. my current plan is to use dynamic library loading (dlopen), only loading the corresponding lib based on what users have chosen. the drawback is the performance penalty, and we have to ship these libs, together with WasmEdge. Or we only support cpu training atm.

IMO, we should have a flag in the CMakefile, so users can choose which backend they really need. I expect that there will be two plugins, one for CPU and another for GPU(cuda). This should be easier for the installer, and let users select which version they want.

well, llm.c can't train gpt2 from scratch but needs an existing checkpoint. if you take a look at their examples, they first train gpt2 using pytorch for a few epochs, and then llm.c will take over the process. that said, even we successfully exposed these interfaces to wasm or rust, we still need python.

Oh, this is a big issue. However, we can have a tutorial to tell users how to get the first step done. We can also provide an existing checkpoint in the example and share it with users.

There's a bug in cudnn-frontend (https://github.com/NVIDIA/cudnn-frontend/pull/90) that blocks us from supporting cuda training. maybe we can just land the CPU support in this pr? @hydai

Hi @junaire
Let's focus on the CPU version first. It seems like the CUDANN has a small issue you mentioned, but it should be easier to enable once the problem is resolved.

I did some local testing and it works, I feel good to land this now. @hydai

@junaire
Could you add a workflow file to build and do some simple tests on it? So we can ensure the building process and executing behavior are correct.

@junaire Could you add a workflow file to build and do some simple tests on it? So we can ensure the building process and executing behavior are correct.

I added a workflow but it didn't run as expected, possibly some permission issues, can you plz check? @hydai

Hi @junaire
I just granted the workflows permission, please try again.

Hi @junaire I just granted the workflows permission, please try again.

can you approve the workflow?

i may need some help here... any ideas about why the windows shit keeps failing? @hydai

Hi @junaire
We don't use mingw64 to build wasmedge, so removing such Windows-related workflows for now is fine. I don't want you to spend lots of time supporting multiple platforms. Let's take care of the Linux first.
If you are writing an open-source contribution, please avoid using dirty words in the commit history; they will be kept on this PR just as you can see now.

gpu tests failing seem to be unrelated, as they are required to be run on self hosted runners.

gpu tests failing seem to be unrelated, as they are required to be run on self hosted runners.

Let's remove these self-hosted workflow jobs for now. Since we are not able to deploy such runners inside this repo.

authors: hydai junaire


text:
Bug in discussionGeneral

Discussion Depth question labels are off by one:
{
          "type": "radiogroup",
          "name": "discussionDepth",
          "title": "How thoroughly did your discussion explore different ideas and perspectives?",
          "isRequired": true,
          "choices": [
            {
              "value": "1",
              "text": "Not at all"
            },
            {
              "value": "3", <--- SHOULD BE 2
              "text": "Only at the surface level"
            },
            {
              "value": "4", <--- SHOULD BE 3
              "text": "Moderately"
            },
            {
              "value": "5", <--- SHOULD BE 4
              "text": "Quite Thoroughly"
            },
            {
              "value": "6", <--- SHOULD BE 5
              "text": "Deeply and extensively"
            }
          ]
        },

{
          "type": "radiogroup",
          "name": "selfLearned",
          "title": "How much did you learn during the discussion?",
          "isRequired": true,
          "choices": [
            {
              "value": "6",  <--- SHOULD BE 1
              "text": "Nothing at all"
            },
            {
              "value": "5", <--- SHOULD BE 2
              "text": "Very little"
            },
            {
              "value": "2", <--- SHOULD BE 3
              "text": "Some"
            },
            {
              "value": "4", <--- SHOULD BE 4
              "text": "A fair amount"
            },
            {
              "value": "3", <--- SHOULD BE 5
              "text": "A great deal"
            }
          ]
        },

{
          "type": "radiogroup",
          "name": "selfVoice",
          "title": "Did you feel comfortable speaking up and sharing your opinions?",
          "isRequired": true,
          "choices": [
            {
              "value": "1",
              "text": "Very uncomfortable"
            },
            {
              "value": "2",
              "text": "Somewhat uncomfortable"
            },
            {
              "value": "5",
              "text": "Neutral"
            },
            {
              "value": "3",
              "text": "Fairly comfortable"
            },
            {
              "value": "4",
              "text": "Very comfortable"
            }
          ]
        },

Really, why don't we take out the raw numbers altogether and just return normalized ones from the question itself? they have no meaning.

Relabeled discussion general values to be pre-scaled 0-1, added an overall measure (that excludes disagreement)

repo: Watts-Lab/surveys


text:
Chapter 16 appears twice in the generated pdf.

Gday!
Just finished a quick read through of the pdf, it appears that https://github.com/Web-Prolog/swi-web-prolog/blob/master/web-client/apps/swish/web-prolog.pdf contains chapter 16 twice..
Those final words are really important :).

Btw, as an ex erlang programmer this makes a lot of sense to me.

Thanks for you comments. Hmm, it looks like the pdf reader in GitHub does something strange... If you first click the link and then  hit the Download button, the pdf comes out alright.

repo: Web-Prolog/swi-web-prolog


text:
Role of Gaming To Adopt Crypto Worldwide

Description: This talk aims to introduce the potential of gaming industry for global adoption for crypto/blockchain. The way means for entertainment industry changes from Theatre to OTTs to now Gaming. I'll be happy to cover all major potential means for global adoption of crypto/blockchain & how this industry can create massive job opporunity .
Style of Session: 10 min talk or 45 min
Submission Type: Individual or Panel Discussion
About Me: I'm Founder of StockMarketFair - World's First Online Stock Market Gaming Exchange with over 500,000+ Players. I have scalled business from zero to multi million dollar mark. I have been advisor to couple of crypto projects, Some of them are CrypDax - A leading crypto asset digital management platform & MarsPay -  A Crypto Gateway for B2C. I have worked with crypto fund globally & happy to chat with great minds in person.
Linkedin

You can email at @.***
On Wed, 22 Jun 2022 at 10:15 PM, Web3ConfIndia @.***>
wrote:

Hello, @kingvish1 https://github.com/kingvish1 Congratulations on
getting shortlisted for a talk at Web3Conf India. Please share your email
so that we can take it further.
—
Reply to this email directly, view it on GitHub
https://github.com/Web3-Conf-India/Proposal-2022/issues/43#issuecomment-1163367878,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AG6SI2E44PHDK4WTP7OU55LVQM7KDANCNFSM5W4M6JIA
.
You are receiving this because you were mentioned.Message ID:
@.***>

Hey @kingvish1! Seems like your email isn't visible, do you mind dropping it again? If not feel free to drop a mail to support@web3confindia.xyz with your proposal link and name.

Hi Aditya,
Sure, that's my email Visheshbhandari2@gamil.com & I have send you the revert on your mail as well.

Thank you!
On Mon, 27 Jun 2022 at 10:35, Vishesh @.***> wrote:

Hi Aditya,
Sure, that's my email @.*** & I have send you the
revert on your mail as well.
—
Reply to this email directly, view it on GitHub
https://github.com/Web3-Conf-India/Proposal-2022/issues/43#issuecomment-1166850294,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AM6VQJIAXHS76AMZJ33J2G3VREZBTANCNFSM5W4M6JIA
.
You are receiving this because you commented.Message ID:
@.***>

Hi Aditya,
Sure, This is my email id :- @.***
Best,
Vishesh
On Sun, 26 Jun 2022 at 1:08 PM, Aditya Gupta @.***>
wrote:

Hey @kingvish1 https://github.com/kingvish1! Seems like your email
isn't visible, do you mind dropping it again? If not feel free to drop a
mail to @.*** with your proposal link and name.
—
Reply to this email directly, view it on GitHub
https://github.com/Web3-Conf-India/Proposal-2022/issues/43#issuecomment-1166441472,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AG6SI2EBO6O3DXI5CDYL2LTVRACG3ANCNFSM5W4M6JIA
.
You are receiving this because you were mentioned.Message ID:
@.***>


text:
otevírání oken

při rozkliknutí čehokoli v Chromu se vytváří další okno (až na Github, Nahlásit chybu a Dokumentaci), ve Firefoxu je to ok

Nove okno by se melo vytvorit jenom na dashboardu. Vyzkousel jsem v chromu a nevytvari okna pro menu atp. V dashboardu je to chovani cilene tak aby clovek mohl otevrit nove veci v novem okne a ale stale mit k dispozici dashboard. Muzu zmenit.

už to funguje korektně, bez tak chyba na straně google 👎

authors: Visgean kvasnicaj mariehaskovcova

repo: WebArchivCZ/Seeder


text:
Refactor installation of wasmtime/wasm-tools on CI

We've got official actions for installation Wasmtime and wasm-tools in the bytecodealliance organization which should help make this installation step a bit more readable.
This additionally updates a few versions:

For Wasmtime its 18.0.2 release is made now that a dev tag is no longer needed.
For wasm-tools its latest release of 1.201.0 is used.
For the adapter the version from 18.0.2 is used now that dev is no longer needed.

I can switch back to the old versions if desired, but it seems like they were arbitrarily chosen, so I took this opportunity to update them to the latest version of releases.  They additionally no longer use dev tags meaning that everything should be pinned for CI and breaking shouldn't happen due to development on main in the wasmtime repo.

I can switch back to the old versions if desired, but it seems like they were arbitrarily chosen, so I took this opportunity to update them to the latest version of releases. They additionally no longer use dev tags meaning that everything should be pinned for CI and breaking shouldn't happen due to development on main in the wasmtime repo.

sgtm, maybe just mention that in the PR description when this lands?

Sure, I've updated the description.

(I'll note I don't have write permissions on this repo so I'll need someone else to hit merge, also sorry if this is already known, I'm not sure what the desire etiquette is on this repo for merging PRs)

@alexcrichton I added you as a contributor

Oh awesome, thank you!

repo: WebAssembly/wasi-sdk


text:
Detailed description
A sitemap is a file that lists all the pages of a website, helping search engines understand its structure and content.
Context
It enhances search engine optimization (SEO) efforts by improving website visibility and indexing. I believe adding sitemap would be a perfect addition to this project.
Possible implementation
No response
Additional information
No response
Checklist

[X] I have read the Contributing Guidelines
[X] I have checked the existing issues
[X] I am willing to work on this issue (optional)
[X] I am a GSSoC'23 contributor

@Anmol-Baranwal  Can you assign me this issue.

@Killer2OP
I have assigned you the issue. Please proceed with it, and don't hesitate to tag me if you require any assistance.


text:
Please invite me to the community

Name
HMByteSensei
Discord Username (if applicable)
vendeta7025
Additional Context
Exploring community looking for opportunity to contribute and connect

I’m excited to be a part of the community and look forward to
contributing.
pet, 20. ruj 2024. u 00:44 github-actions[bot] @.***>
napisao je:

[image: welcome]
https://user-images.githubusercontent.com/73097560/121835696-761b5c80-cd04-11eb-9d9c-6a4f6fb07724.gif
Invitation sent to join the GitHub Organization. Welcome to WebXDAO 🎉
Please check your mail to accept the invitation sent by the bot! 🤖
About usAn Open Source Community that focuses on decentralized
applications, Web3, and Blockchain technologies 💻 Great to have you in our
community ✨ Looking forward to your valuable contributions! 🤓 You can also
check our community socials https://bio.link/WebXDAO ✨ 💛 You can also
share about our community with other folks who want to learn Blockchain
tech together in an inclusive environment 👉👈
—
Reply to this email directly, view it on GitHub
https://github.com/WebXDAO/start-here/issues/591#issuecomment-2362327375,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/A6LS6DTGEBUATZIDFBAZFQTZXNHVZAVCNFSM6AAAAABOQ3XXUGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGNRSGMZDOMZXGU
.
You are receiving this because you authored the thread.Message ID:
@.***>

repo: WebXDAO/start-here


text:
Unable to connect the chat: This is a not group channel.

Hi there, I am trying to add a non-group chat but still getting this error returned, is this still working?
Thanks.

What kind of channel exactly are you adding the bot to?
You must be in a private channel (not private chat) with only you and facebot.
Feel free to re-open this is that was not your issue and you can give some more details 👍

repo: Weetbix/facebot


text:
[Question] Alpine Linux Support?

Figured to ask: Has this utility been tested on Alpine Linux? if yes, is it compatible with it? if not, would you be interested in having someone testing it?

went to check, it is indeed compatible, just not listed apparently...

Might? More like is....
WARNING: You may run into audio issues, even after running this script. Please report any issues on github.
Apollolake has two audio drivers:
SOF: Stable but doesn't work with headphones.
AVS: Unstable and can cause damage to speakers but supports all audio hardware.
NOTE: Speakers are disabled on AVS as a safety precaution. (use --force-avs-install to override)Your speakers will still work on SOF though.
Which driver would you like to use? [sof/avs]: sof
Using sof
Installing SOF
Installing SOF firmware
Unknown package manager! Please install sof-firmware using your package manager.
Installing UCM configuration
Cloning into '/tmp/chromebook-ucm-conf'...
remote: Enumerating objects: 1297, done.
remote: Counting objects: 100% (321/321), done.
remote: Compressing objects: 100% (136/136), done.
remote: Total 1297 (delta 170), reused 306 (delta 163), pack-reused 976
Receiving objects: 100% (1297/1297), 222.23 KiB | 928.00 KiB/s, done.
Resolving deltas: 100% (657/657), done.
Traceback (most recent call last):
  File "/home/kilo/chromebook-linux-audio/./setup-audio", line 322, in <module>
    install_ucm()
  File "/home/kilo/chromebook-linux-audio/./setup-audio", line 40, in install_ucm
    cpdir(f"/tmp/chromebook-ucm-conf/{platform}", "/usr/share/alsa/ucm2/conf.d")
  File "/home/kilo/chromebook-linux-audio/functions.py", line 65, in cpdir
    mkdir(dst_as_string)
  File "/home/kilo/chromebook-linux-audio/functions.py", line 52, in mkdir
    mk_dir_as_path.mkdir(parents=create_parents)
  File "/usr/lib/python3.12/pathlib.py", line 1311, in mkdir
    os.mkdir(self, mode)
FileNotFoundError: [Errno 2] No such file or directory: '/usr/share/alsa/ucm2/conf.d'

~/chromebook-linux-audio $ doas apk add sof-firmware
(1/1) Installing sof-firmware (2024.03-r1)
OK: 3246 MiB in 753 packages

~/chromebook-linux-audio $ doas apk add alsa-ucm-conf
(1/1) Installing alsa-ucm-conf (1.2.11-r1)
OK: 3249 MiB in 754 packages

~/chromebook-linux-audio $ doas ./setup-audio
WARNING: You may run into audio issues, even after running this script. Please report any issues on github.
Apollolake has two audio drivers:
SOF: Stable but doesn't work with headphones.
AVS: Unstable and can cause damage to speakers but supports all audio hardware.
NOTE: Speakers are disabled on AVS as a safety precaution. (use --force-avs-install to override)Your speakers will still work on SOF though.
Which driver would you like to use? [sof/avs]: sof
Using sof
Installing SOF
Installing UCM configuration
Cloning into '/tmp/chromebook-ucm-conf'...
remote: Enumerating objects: 1297, done.
remote: Counting objects: 100% (321/321), done.
remote: Compressing objects: 100% (136/136), done.
remote: Total 1297 (delta 170), reused 306 (delta 163), pack-reused 976
Receiving objects: 100% (1297/1297), 222.23 KiB | 655.00 KiB/s, done.
Resolving deltas: 100% (657/657), done.
Increasing alsa headroom (fixes instability)
Audio installed successfully! Reboot to finish setup.
~/chromebook-linux-audio $ ```

Works flawlessly after installing both `alsa-ucm-conf` and `sof-firmware` using `doas apk add sof-firmware alsa-ucm-conf`.

Support for apk has been added

repo: WeirdTreeThing/chromebook-linux-audio


text:
How to customise cell in FSCalendar?

I am trying to achieve Date Range selection using FSCalendar, and i am achieving that but the view i want that is not proper . so can anyone help for that? I want it rounded as below.
My Current Output:

Desired output:

ViewController:
    func initCalendar() {
        calendar.dataSource = self
        calendar.delegate = self
        calendar.allowsMultipleSelection = true
        calendar.firstWeekday = 2
        calendar.backgroundColor = .clear
        calendar.appearance.eventSelectionColor = UIColor.white
        calendar.appearance.eventOffset = CGPoint(x: 0, y: 0)
        calendar.placeholderType = .none
        calendar.scope = .month
        calendar.appearance.headerTitleColor = Defined.reuColor
        calendar.appearance.weekdayTextColor = Defined.reuColor
        //calendar.appearance.
        calendar.today = nil // Hide the today circle
        calendar.register(DateCalendarCell.self, forCellReuseIdentifier: "cell")
        calendar.clipsToBounds = false // Remove top/bottom line
        calendar.swipeToChooseGesture.isEnabled = true // Swipe-To-Choose
        self.calendar.accessibilityIdentifier = "calendar"
    }
extension AddRequestViewController: FSCalendarDelegate, FSCalendarDelegateAppearance, FSCalendarDataSource {
    func calendar(_ calendar: FSCalendar, cellFor date: Date, at position: FSCalendarMonthPosition) -> FSCalendarCell {
        let cell = calendar.dequeueReusableCell(withIdentifier: "cell", for: date, at: position)
        return cell
    }

    func calendar(_ calendar: FSCalendar, willDisplay cell: FSCalendarCell, for date: Date, at position: FSCalendarMonthPosition) {
        self.configure(cell: cell, for: date, at: position)
    }

    func calendar(_ calendar: FSCalendar, titleFor date: Date) -> String? {
        return nil
    }

    func calendar(_ calendar: FSCalendar, appearance: FSCalendarAppearance, titleDefaultColorFor date: Date) -> UIColor? {
        return Defined.reuColor
    }

    // MARK: - FSCalendarDelegate

    func calendar(_ calendar: FSCalendar, boundingRectWillChange bounds: CGRect, animated: Bool) {
        self.calendar.frame.size.height = bounds.height

    }

    func calendar(_ calendar: FSCalendar, shouldSelect date: Date, at monthPosition: FSCalendarMonthPosition) -> Bool {
        return monthPosition == .current
    }

    func calendar(_ calendar: FSCalendar, shouldDeselect date: Date, at monthPosition: FSCalendarMonthPosition) -> Bool {
        return monthPosition == .current
    }

    func calendar(_ calendar: FSCalendar, didSelect date: Date, at monthPosition: FSCalendarMonthPosition) {

        if calendar.selectedDates.count == 3 {
            for date in calendar.selectedDates {
                calendar.deselect(date)
            }
            calendar.select(date)
        }

        if calendar.selectedDates.count == 1 {
            let date = calendar.selectedDates[0]
            self.startDate = date.dateTimeRequest
            self.startDateForView = date.fullDateString
            self.lblDateRange.text = "\(startDateForView) > \(startDateForView)"

            self.joinPickedDateAndTime()
        }

        if calendar.selectedDates.count == 2 {
            var first = calendar.selectedDates[0]
            var second = calendar.selectedDates[1]
            if second <= first {
                let temp = first
                first = second
                second = temp
            }
            self.startDate = first.dateTimeRequest
            self.endDate = second.dateTimeRequest
            self.startDateForView = first.fullDateString
            self.endDateForView = second.fullDateString
            self.lblDateRange.text = "\(self.startDateForView) > \(self.endDateForView)"

            self.joinPickedDateAndTime()
        }
        self.configureVisibleCells()
    }

    func calendar(_ calendar: FSCalendar, didDeselect date: Date, at monthPosition: FSCalendarMonthPosition) {
        self.configureVisibleCells()
    }

    func calendar(_ calendar: FSCalendar, appearance: FSCalendarAppearance, eventOffsetFor date: Date) -> CGPoint {
        return CGPoint(x: 0, y: 0)
    }

    // MARK: - Private functions

    private func configureVisibleCells() {
        calendar.visibleCells().forEach { (cell) in
            let date = calendar.date(for: cell)
            let position = calendar.monthPosition(for: cell)
            self.configure(cell: cell, for: date!, at: position)
        }
    }

    private func configure(cell: FSCalendarCell, for date: Date, at position: FSCalendarMonthPosition) {
        guard let diyCell = (cell as? DateCalendarCell) else {return}
        diyCell.circleImageView.isHidden = true
        if position == .current {
            var selectionType = SelectionType.none
            if calendar.selectedDates.count == 2 {
                var first = calendar.selectedDates[0]
                var second = calendar.selectedDates[1]
                if second <= first {
                    let temp = first
                    first = second
                    second = temp
                }
                if date == first {
                    selectionType = .leftBorder
                } else if date == second {
                    selectionType = .rightBorder
                } else if date >= first && date <= second {
                    selectionType = .middle
                }
            } else {
                if calendar.selectedDates.contains(date) {
                    if calendar.selectedDates.count == 1 {
                        selectionType = .single
                    } else {
                        selectionType = .none
                    }
                } else {
                    selectionType = .none
                }
            }
            diyCell.selectionLayer.isHidden = false
            diyCell.selectionType = selectionType
        } else {
            diyCell.selectionLayer.isHidden = true
            diyCell.titleLabel.textColor = Defined.reuColor
        }
    }
}

DIYCalendarCell.swift
enum SelectionType : Int {
    case none
    case single
    case leftBorder
    case middle
    case rightBorder
}

class DateCalendarCell: FSCalendarCell {

    weak var circleImageView: UIImageView!
    weak var selectionLayer: CAShapeLayer!

    fileprivate var lightBlue: UIColor = Defined.lightBlue
    fileprivate var darkBlue: UIColor = Defined.filterColor

    var selectionType: SelectionType = .none {
        didSet {
            setNeedsLayout()
        }
    }

    required init!(coder aDecoder: NSCoder!) {
        fatalError("init(coder:) has not been implemented")
    }

    override init(frame: CGRect) {
        super.init(frame: frame)

        let circleImageView = UIImageView(image: UIImage(named: "ic_today_wrapper")!)
        self.contentView.insertSubview(circleImageView, at: 0)
        self.circleImageView = circleImageView

        let selectionLayer = CAShapeLayer()
        selectionLayer.fillColor = darkBlue.cgColor
        selectionLayer.actions = ["hidden": NSNull()]
        self.contentView.layer.insertSublayer(selectionLayer, at: 0)
        self.selectionLayer = selectionLayer

        self.shapeLayer.isHidden = true
        self.titleLabel.textColor = Defined.reuColor
        let view = UIView(frame: self.bounds)
        view.backgroundColor = .white
        self.backgroundView = view

    }

    override func layoutSubviews() {
        super.layoutSubviews()
        let width = self.contentView.bounds.height
        let distance = (self.contentView.bounds.width - width) / 2
        let frame = CGRect(x: self.contentView.bounds.minX + distance, y: self.contentView.bounds.minY, width: width, height: width)

        self.circleImageView.frame = frame
        self.eventIndicator.isHidden = true
        self.backgroundView?.frame = self.bounds.insetBy(dx: 0, dy: 0)
        self.selectionLayer.frame = self.contentView.bounds
        self.selectionLayer.fillColor = UIColor.white.cgColor
        self.titleLabel.textColor = Defined.reuColor
        selectionLayer.sublayers?.removeAll()
        if selectionType == .middle {
            self.selectionLayer.fillColor = lightBlue.cgColor
            self.titleLabel.textColor = darkBlue
            self.selectionLayer.path = UIBezierPath(rect: CGRect(origin: CGPoint(x: self.selectionLayer.bounds.minX, y: self.selectionLayer.bounds.minY + 6), size: CGSize(width: self.selectionLayer.frame.width, height: self.selectionLayer.frame.height - 12))).cgPath
        } else if selectionType == .rightBorder {
            let layer = CAShapeLayer()
            let path = UIBezierPath()
            path.move(to: CGPoint(x: 0, y: self.selectionLayer.frame.maxY / 2))
            path.addLine(to: CGPoint(x: 10, y: 2))
            path.addLine(to: CGPoint(x: self.selectionLayer.frame.maxX - 10, y: 2))
            path.addLine(to: CGPoint(x: self.selectionLayer.frame.maxX - 10, y: self.selectionLayer.frame.maxY - 2))
            path.addLine(to: CGPoint(x: 10, y: self.selectionLayer.frame.maxY - 2))
            path.close()
            layer.path = path.cgPath
            layer.fillColor = darkBlue.cgColor
            layer.borderWidth = 1
            self.selectionLayer.insertSublayer(layer, at: 0)
            self.selectionLayer.fillColor = lightBlue.cgColor
            self.titleLabel.textColor = .white
            self.selectionLayer.lineCap = .round
            self.selectionLayer.lineWidth = 3
            self.selectionLayer.path = UIBezierPath(rect: CGRect(origin: CGPoint(x: self.selectionLayer.bounds.minX, y: self.selectionLayer.bounds.minY + 6), size: CGSize(width: self.selectionLayer.frame.width - 10, height: self.selectionLayer.frame.height - 12))).cgPath
        } else if selectionType == .leftBorder {
            let layer = CAShapeLayer()
            let path = UIBezierPath()
            path.move(to: CGPoint(x: 10, y: 2))
            path.addLine(to: CGPoint(x: self.selectionLayer.frame.maxX - 10, y: 2))
            path.addLine(to: CGPoint(x: self.selectionLayer.frame.maxX, y: self.selectionLayer.frame.maxY / 2))
            path.addLine(to: CGPoint(x: self.selectionLayer.frame.maxX - 10, y: self.selectionLayer.frame.maxY - 2))
            path.addLine(to: CGPoint(x: 10, y: self.selectionLayer.frame.maxY - 2))
            path.close()
            layer.path = path.cgPath
            layer.fillColor = darkBlue.cgColor
            layer.borderWidth = 1
            self.selectionLayer.insertSublayer(layer, at: 0)
            self.selectionLayer.fillColor = lightBlue.cgColor
            self.titleLabel.textColor = .white
            self.selectionLayer.lineCap = .round
            self.selectionLayer.lineWidth = 3
            self.selectionLayer.path = UIBezierPath(rect: CGRect(origin: CGPoint(x: self.selectionLayer.bounds.minX + 10, y: self.selectionLayer.bounds.minY + 6), size: CGSize(width: self.selectionLayer.frame.width - 10, height: self.selectionLayer.frame.height - 12))).cgPath
        } else if selectionType == .single {
            self.selectionLayer.fillColor = darkBlue.cgColor
            self.titleLabel.textColor = lightBlue
            let diameter: CGFloat = min(self.selectionLayer.frame.height, self.selectionLayer.frame.width)
            self.selectionLayer.path = UIBezierPath(ovalIn: CGRect(x: self.contentView.frame.width / 2 - diameter / 2, y: self.contentView.frame.height / 2 - diameter / 2, width: diameter, height: diameter)).cgPath
        } else {
            self.selectionLayer.fillColor = UIColor.white.cgColor
            self.titleLabel.textColor = Defined.reuColor
            let diameter: CGFloat = min(self.selectionLayer.frame.height, self.selectionLayer.frame.width)
            self.selectionLayer.path = UIBezierPath(ovalIn: CGRect(x: self.contentView.frame.width / 2 - diameter / 2, y: self.contentView.frame.height / 2 - diameter / 2, width: diameter, height: diameter)).cgPath
            //change from rectangle to circle as background flicks from circle to rectangle
        }

    }

    override func configureAppearance() {
        super.configureAppearance()
        self.eventIndicator.isHidden = true
        // Override the build-in appearance configuration
        if self.isPlaceholder {
            self.titleLabel.textColor = UIColor.lightGray
        } else {
            self.titleLabel.textColor = Defined.reuColor
        }
    }

}

bác cho tui xin sources với đc k?

bác cho tui xin sources với đc k?

Chắc là không rồi :D

repo: WenchaoD/FSCalendar


text:
MCAR assumption fails

1. System Info
All versions of PyCorruptor so far.
2. Information

[X] The official example scripts
[ ] My own created scripts

3. Reproduction
https://github.com/WenjieDu/PyCorruptor/blob/5ed32140053ab9770f72948eb5304974eabf119f/pycorruptor/mcar.py#L73
The current MCAR masking is only on the observed values. If input data itself contains missing data, the MCAR assumption fails.the
4. Expected behavior
MCAR assumption fails.

Hi there,Thank you so much for your attention to PyCorruptor! If you find PyCorruptor helpful to your work, please star⭐ this repository. Your star is your recognition, which can help more people notice PyCorruptor this useful tool. It matters and is definitely a kind of contribution.I have received your message and will respond ASAP. Thank you for your patience! 😃Best,Wenjie

repo: WenjieDu/PyCorruptor


text:
Evaluation of trained EPI policy

Readme asks to run "evaluate_hopper_with_policy.py" but there is only a file by the name "evaluate.py".
Also can someone help me out during evaluation where is interaction happening(using trajectory to get embedding)? Is it happening in env.reset.
Can you please help me out with these issues.

Hi,

It should be "evaluate.py". The typo has been corrected in README. Thank you for pointing this out.
Here is when the interaction is happening:
https://github.com/Wenxuan-Zhou/EPI/blob/master/EPI/envs/hopper_task.py#L19
https://github.com/Wenxuan-Zhou/EPI/blob/master/EPI/interaction_policy/epi_policy.py#L72

Let me know if you have any other questions.

authors: Wenxuan-Zhou parth-p

repo: Wenxuan-Zhou/EPI


text:
Upload functionality

Upload to a database for running queries/analysis on top of the tickercsv data.

Setup Postgres with Docker for testing

store the password somewhere in your local file system, for example $HOME/postgres/root_password;
run the following command to create a postgres container:$ docker run --restart always -d -p 5432:5432 -v $HOME/postgres/root_password:/run/secrets/postgres-passwd -v $HOME/postgres/data:/var/lib/postgresql/data -e="POSTGRES_PASSWORD_FILE=/run/secrets/postgres-passwd" --name postgres postgres:12

run $ docker exec -it postgres bash to access the container and create the user b3user and the database b3data (remember to set the ownership for the database for b3user)

...
After ingesting a file, you can quickly verify it worked comparing the count from file and database:
$ docker exec -it postgres su postgres -c "psql -U b3user -d b3data -c 'select count(0) from tickercsv'"


text:
[feature request] make elp eqwalize return nonzero on found type errors

Describe the bug
If invoking eqwalizer results in type errors, it would be nice if elp returned nonzero.  A few cases come to mind where that could be beneficial:

eqwalizing in a loop or otherwise against multiple modules and breaking on the first failure
eqwalizing while editing/rebasing a long history of commits (e.g., elp eqwalize X && git rebase --continue)
eqwalizing as a condition of a git bisect run

I know that finding type errors is not a failure of the tool, but think this would make sense from a user perspective.
To Reproduce
-module(some_mod_with_errors).
-spec x(y) -> z; (term()) -> undefined.
x(_) -> z.

elp eqwalize some_mod_with_errors

Expected behavior
% elp eqwalize some_mod_with_errors && echo ok || echo failed
...
failed

Actual behavior
% elp eqwalize some_mod_with_errors && echo ok || echo failed
...
error: incompatible_types
  ┌─ some_mod_with_errors.erl:3:9
  │
4 │ x(_) -> z.
  │         ^ 'z'.
Expression has type:   'z'
Context expected type: 'undefined'

1 ERROR
ok

It makes sense to me. If we want to ensure backward compatibility, we could implement this behaviour via an optional -f (--fail) flag. @alanz @VLanvin opinions?

Makes sense to me, but as you said @robertoaloi it should definitely be a flag. There are contexts where we don't want this behaviour.

Came to ask for the same thing but for usage in CI. In projects using elp for type checking before PR merges they are getting the false impression by doing this https://github.com/open-telemetry/opentelemetry-erlang/blob/main/.github/workflows/erlang.yml#L148-L149 that there aren't any eqWAlizer errors in the code being merged :)

Also, while I'm happy with whatever doesn't require me to write a pipe -> grep of the stdout to check for "# ERROR" I am curious why this shouldn't be the default? What scenario would you want it to always return 0 @VLanvin ? In the case of not wanting a script to fail if elp command fails you can just | true right? Are there non-script cases you are thinking of that this is needed to be the default?
I also think if its the default to always return 0 then the issue of people putting it in CI and not realizing it is passing because it will never fail will take a while to realize, even if its documented.

authors: VLanvin robertoaloi tsloughter zerth

repo: WhatsApp/erlang-language-platform


text:
Incompatible with PSR/Cache ^2

Hi!
If you try to install this package in a Symfony 5.x environment with Doctrine 2.9, you get the next error:
Problem 1
    - Root composer.json requires whichbrowser/parser v2.1.2 -> satisfiable by whichbrowser/parser[v2.1.2].
    - whichbrowser/parser v2.1.2 requires psr/cache ^1.0 -> found psr/cache[1.0.0, 1.0.1] but the package is fixed to 2.0.0 (lock file version) by a partial update and that version does not match. Make sure you list it as an argument for the update command.

I think it can be solved by downgrading the version of psr/cache, but I think it would be better to make this library compatible with it.
This is the exit of composer why psr/cache:
$ composer why psr/cache
doctrine/annotations     1.13.1   requires   psr/cache (^1 || ^2 || ^3)
doctrine/cache           2.0.3    conflicts  psr/cache (>=3)
doctrine/orm             2.9.2    requires   psr/cache (^1 || ^2 || ^3)
doctrine/persistence     2.2.1    requires   psr/cache (^1.0|^2.0|^3.0)
symfony/cache            v5.2.10  requires   psr/cache (^1.0|^2.0)
symfony/cache-contracts  v2.4.0   requires   psr/cache (^1.0|^2.0|^3.0)

It seems like all the dependencies of psr/cache will work with version ^1, but I think it would be better to upgrade the dependency of this library.

Pull request #665 adds compatibility with psr/cache v2 and v3. Unfortunately, it is still waiting for approval.
@NielsLeenheer can you please check the pull-requests awaiting approval?

for while, to solve it, you can use the fork branch in your project:
{
    "repositories": [
        {
            "type": "vcs",
            "url": "https://github.com/javer/Parser-PHP"
        }
    ],
    "require": {
        "whichbrowser/parser": "dev-psr-cache"
    }
}

@therealsamsquanch
psr/cache 2.0 and 3.0 require php: >=8.0.0
See here as proof: https://packagist.org/packages/psr/cache
This repo says: https://github.com/WhichBrowser/Parser-PHP/blob/bcf642a1891032de16a5ab976fd352753dd7f9a0/composer.json#L17
p.s. I'm half way through coding this repo to php 8.0.3

Working php 8.0.3 version changes needed:
    "require": {
        "php": "^8.0",
        "psr/cache": "^1.0 || ^2.0 || ^3.0"
    },
    "require-dev": {
        "symfony/yaml": "^5.3",
        "phpunit/php-code-coverage": "^9.2.7",
        "phpunit/phpunit": "^8.0 || 9.*",
        "php-coveralls/php-coveralls": "^2.4.3",
        "enso-media/reverse-regex": "^0.2.0",
        "squizlabs/php_codesniffer": "^3.6",
        "cache/array-adapter": "^1.2"
    },

Proof:

Thanks. Included in v2.1.3.

authors: NielsLeenheer mangelsnc rogeriolino summercms therealsamsquanch

repo: WhichBrowser/Parser-PHP


text:
Column size too small

Hi I had this issue :
Failed to create claim world in table
com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column 'world_environment' at row 1
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3931) ~[mysql-connector-java-5.1.49.jar:5.1.49] {}
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3869) ~[mysql-connector-java-5.1.49.jar:5.1.49] {}
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2524) ~[mysql-connector-java-5.1.49.jar:5.1.49] {}
I suggest to improve the size of thie column for future users
Quick Fix :
ALTER TABLE husktowns_claim_worlds MODIFY world_environment VARCHAR(32) NOT NULL;

Okay -- but I'm a bit confused? What environment is it failing to generate for?
CUSTOM - 6 chars
NORMAL - 6 chars
NETHER - 6 chars
THE_END - 7 chars

16 should be enough? Unless you're doing something wacky :) I'd like to know

Closed in https://github.com/WiIIiam278/HuskTowns/commit/5b2eb6e805783d4910fe9368005813382ca60221


text:
Inherit PageHeader from CommandBar. …

Better Design Time support.
Removed Text dependency property and reintroduced the content property.
Ellipsis Button is always visible, following the commandbar behavior.
We can hide the ellipsis if no commands exist, or introduce a behavior property to control it

Good idea. Could you re-merge and resubmit? This is out of sync.

authors: JerryNixon MichaelPetrinolis


text:
connect, design and try new one

after https://github.com/WindowsGeekPro/workaholic-meow/issues/3

The design builds could be many indeed. ;) #fyi

adding https://github.com/WindowsGeekPro/workaholic-meow/issues/18 support

scribbling something for last few hours... adding inspirations..

Done! Now, requires some more work https://github.com/WindowsGeekPro/workaholic-meow/issues/18

repo: WindowsGeekPro/workaholic-meow


text:
[BUG] Compiler unignore path syntax to be part of identifiers

Identifier like this shouldn't been allowed to compiled
function ../hello(){
    say "hi";
}

../hello();

function hello:///hello

Fixed in v1.2.5

repo: WingedSeal/jmc


text:
Fix ResourceWarning when AlreadyLocked

This is issue https://github.com/WoLpH/portalocker/pull/50 appearing on another line.
When acquire-ing a portalocker.Lock, there are parameters fail_when_locked for indicating whether to raise an AlreadyLocked exception if the first attempt in locking fails, and timeout for indicating how long to attempt locking for if locking fails.
The unit test test_with_timeout suggests that a valid combination of arguments can be to fail_when_locked with a positive timeout.
with portalocker.Lock(tmpfile, timeout=0.1, mode='wb',
                      fail_when_locked=True):

So there should be no warnings issued from using it. In particular, no ResourceWarning from not closing a file handle.
Expected Behavior
In the following, we lock a temporary file, and then try to acquire another lock on the same file again.  All ResourceWarning-s are set to be shown to check if they are issued.
#!/usr/bin/env python3

import portalocker
import tempfile
import warnings

warnings.filterwarnings('always', category=ResourceWarning)
with tempfile.NamedTemporaryFile() as pid_file:
    with portalocker.Lock(filename=pid_file.name):
        try:
            portalocker.Lock(
                fail_when_locked=True,
                filename=pid_file.name,
                timeout=0.1,
            ).acquire()
        except portalocker.exceptions.AlreadyLocked:
            pass
        else:
            raise RuntimeError('Expected AlreadyLocked.')

The acquire docstring says that
fail_when_locked is useful when multiple threads/processes can race
when creating a file. If set to true than the system will wait till
the lock was acquired and then return an AlreadyLocked exception.

So the acquire call should raise an AlreadyLocked exception.  There should be no ResourceWarning-s issued.
Current Behavior
The exception is indeed raised.  However, the warning is issued.
$ ./test_portalocker.py
/home/boni/base/src/tmp/./test_portalocker.py:17: ResourceWarning: unclosed file <_io.TextIOWrapper name='/tmp/tmpkk2prhbu' mode='a' encoding='UTF-8'>
  pass
ResourceWarning: Enable tracemalloc to get the object allocation traceback

This occurs because the file handle to the pid_file used for locking was not closed before raising the error.
fh = self._get_fh()
try:
    fh = self._get_lock(fh)
except exceptions.LockException as exception:
    timeout_end = current_time() + timeout
    while timeout_end > current_time():
        time.sleep(check_interval)
        try:
            if fail_when_locked:
                # ---- HERE ----
                # The `fh` is closed for timeout in `else` below,
                # but not for failing.
                raise exceptions.AlreadyLocked(exception)
            else:
                fh = self._get_lock(fh)
                break
        except exceptions.LockException:
            pass
    else:
        fh.close()
        raise exceptions.LockException(exception)

# Prepare the filehandle (truncate if needed)
fh = self._prepare_fh(fh)

self.fh = fh
return fh

Possible Solution
The simplest fix is to add fh.close() before raising the exception.
A more defensive alternative, guarding also against say KeyboardInterrupt, is to wrap the whole thing with a finally clause to close the handle.  (There is also dropping Python 2.7 support and use a context manager!)
try:
    fh = self._get_fh()
    ...
    return fh

finally:
    if self.fh is None:
        fh.close()

I am not sure how to tell coverage that fh.close() -> return fh is not possible though.
Context (Environment)
I am using Debian bullseye/sid, Python 3.9.

First of all, thank you for the very detailed and well constructed bug report!
For safety and backwards compatibility I prefer the option of adding the fh.close() before the raise but I think that would introduce a new bug. I think that simply adding the fh.close() at line 169 will make the next iteration of the loop inevitably fail because the file handle will be closed. So instead of capturing exceptions.LockException I think it should capture exceptions.BaseLockException so it also captures exceptions.AlreadyLockedException.
I would actually prefer to refactor that code a little because it has a little bit of duplication anyhow.
As for wrapping in a finally clause, that would still need a special case as it would also close the handle in the success state. And that would be bad :)
Dropping Python 2.7 support is something I want to do within the next year with a "final" version downloadable for people that are still stuck.

I think that simply adding the fh.close() at line 169 will make the next iteration of the loop inevitably fail because the file handle will be closed. So instead of capturing exceptions.LockException I think it should capture exceptions.BaseLockException so it also captures exceptions.AlreadyLockedException.

Hm... if I understand the code properly, it is not supposed to catch the AlreadyLocked exception. The exception propagates out of the function as per the API, and there would not be a next iteration.

I would actually prefer to refactor that code a little because it has a little bit of duplication anyhow.

I did feel an urge to do some refactoring. Butm well, obligatory spacebar and heater xkcd!
If you intend to refactor a little, I would like to ask: is it necessary to wait for one iteration to raise AlreadyLocked? The fail_when_locked variable is essentially constant inside the function. So the exception is either raised in the first iteration, or it never will. In particular, it would make sense to pull it above the while loop, unless it is intentional to wait one iteration first. From reading the acquire docstring (copied below), perhaps it was to ensure other locking threads have a chance to finish locking?
fail_when_locked is useful when multiple threads/processes can race
when creating a file. If set to true than the system will wait till
the lock was acquired and then return an AlreadyLocked exception.

As for wrapping in a finally clause, that would still need a special case as it would also close the handle in the success state. And that would be bad :)

Yes, I agree! It does feel a little off that the preferred path requires special handling.

Dropping Python 2.7 support is something I want to do within the next year with a "final" version downloadable for people that are still stuck.

Nice! May be type hinting will come in too!

I believe the lastest commit addca52b22345372aee3629e264b5aece1e805a9 has fixed this. I will leave closing this issue to you, in case you want to do that only when merging to the main branch.
And thank you for your excellent work on this. It is a lot more readable (to me) now. I have even learnt that except clauses del the assigned exc variable. That is surprising to me! I had to look this up.

I believe the lastest commit addca52b22345372aee3629e264b5aece1e805a9 has fixed this. I will leave closing this issue to you, in case you want to do that only when merging to the main branch.
And thank you for your excellent work on this. It is a lot more readable (to me) now. I have even learnt that except clauses del the assigned exc variable. That is surprising to me! I had to look this up.

Yes, I'll close it with the new release. Should be out somewhere this week :)
The exception thing is indeed a tricky one, you'll never know it went wrong until it bites you. It's a "feature" that was introduced in Python 3, Python 2 didn't have that issue. I discovered it several years ago when doing research for my Python book :)
For future reference, even though you would expect it to work, this does not work:
exception = None
try:
    ...
except Something as exception:
    # `exception` is still available here
    ....

# `exception` is not available here

Yes, I'll close it with the new release. Should be out somewhere this week :)
The exception thing is indeed a tricky one, you'll never know it went wrong until it bites you. It's a "feature" that was introduced in Python 3, Python 2 didn't have that issue. I discovered it several years ago when doing research for my Python book :)
For future reference, even though you would expect it to work, this does not work:
exception = None
try:
    ...
except Something as exception:
    # `exception` is still available here
    ....

# `exception` is not available here

The new release is now online. It also includes type hinting and it has a distributed redis lock included.

The new release is now online. It also includes type hinting and it has a distributed redis lock included.

And thank you for all the help of course :)

And thank you for all the help of course :)

authors: BoniLindsley WoLpH

repo: WoLpH/portalocker


text:
v0.5.0

更换git repo

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@d063653). Click here to learn what that means.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master       #1   +/-   ##
=========================================
  Coverage          ?   52.19%
=========================================
  Files             ?        9
  Lines             ?      889
  Branches          ?        0
=========================================
  Hits              ?      464
  Misses            ?      383
  Partials          ?       42

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 d063653...7b39c13. Read the comment docs.

authors: codecov-commenter jacexh

repo: WoSai/deepmock


text:
Web API design

Now we have DB schema and JSON schema defined.
We need to think about the web API exposed to the users. I think many of my design could be re-used with a little efforts.

Yes. The code should be very similar.
The first thing and the most important thing is an API to receive data from devices or vclient.
Maybe like this?
HTTP POST /api/input
Content-type : application/json

API specifications:

/api/login
to login to a user
AJAX request, POST method, MIME media is application/json. Content-Type=json
   data: {'username':'..', 'password': '..'}
return 200 on success, 400 on failure.
/api/logout
log out
AJAX request, MIME media is application/json. Content-Type=json
/api/getUserInfo
After login, getting user information.
AJAX request, GET method, MIME media is application/json. Content-Type=json. No data.
Return:
200, on success, with data. the data is like:

{
    'house': {
        'name': '',
        'description': '',
        'rooms': [
            {
                'name': '',
                'description': '',
                'devices': [
                    '<this should be device id used for other queries>' ,
                    '<this should be device id used for other queries>'
                ]
            }
        ]
    }
}

/api/getLastestDeviceInfo:
get specific lastest state of a device
AJAX request, GET method, MIME media is application/json, Content-Type=json
   data is like "{'deviceId'='111'}"

{
    'deviceId': 'unique identifer from devices in getUserInfo api',
    'name': 'friendly name user has defined',
    'type': 'pre-define type',
    'time': 'time when value was recorded',
    'values': [
        {
            'param': ''
            'value': 'all string'
        },
        {
            'param': ''
            'value': 'all string'
        },
    ]
}

@kbumsik
With these implemented, we should be able to create current status viewer page. Once API is defined, I can start working on the pages. Let me know, if you have suggestions or want to modify the format.

@cjackie
I was writing API document for you but it took some time to organize my thought so I am commenting now. Let me tell you about AJAX, HTTP request, and usual RESTful API structures first.
AJAX
First of all, AJAX is just a better, handy, and (by far) flexible tool to make HTTP requests using JavaScript than the HTML's HTTP Request form. There is only HTTP request/response between Web browser and Server. Therefore, there is no such things like AJAX Request to Server-side. 'AJAX request' is totally up to front-end developer decision for HTTP request implementation. So I will not mention AJAX in API document. But of course, APIs should be designed for use of AJAX in mind.
About HTTP Request
Each HTTP consist of three things (with examples):

HTTP Type(?)

GET /api/login HTTP/1.1 (For request)
HTTP/1.1 200 OK (For response)

Header

Date: ... , Content_Length: ... , Content_Type: application/json , Cookie: ..., Accept: application/json, and much more.

Content

{"username"="defaultUser", "password"="dummypassword"} in application/json format
username=defaultUser&password=dummypassword

This is application/x-www-form-urlencoded format. this is kind of default content type.
WARNING: in jQuery's $.ajax, If you don't use explicitly JSON.stringify() for data:, jQuery will send JavaScript Object data in this format, even if you set contentType: "application/json". So make sure to use  JSON.stringify() when you expect content to be JSON string.

Let's talk about HTTP type method and header. As you probably know, they are GET, POST, PUT, DELETE.....others are not used much. Let's start with this:

AJAX request, GET method, MIME media is application/json, Content-Type=json
data is like "{'deviceId'='111'}"

HTTP Request content is used in ONLY POST and PUT. The other methods like GET does not have content (but response can have content as return). So GET method is never able to send {'deviceId'='111'}! Also because GET method does not have content, Content-Type: application/json field in HTTP header is totally useless too. jQuery let you $.ajax(type: "GET", url: "/anything" , data={'deviceId'='111'}); without error, but this actually sends HTTP GET request with empty content, data=''.
So, how GET method send extra parameters? We can use URL. That is the reason you see some URLs like /apt/login?username=defaultUser&password=dummypassword. The server will evaluate things after ? as extra parameters. On top of that, this is also the reason why we use POST method to login. To login using GET method will expose ID and Password on URL!.
Meanwhile, Value of Content-Type field in HTTP header is one of MIME media type. So, there is only Content-Type:application/json. MIME and Content-Type is not separately used like MIME media is application/json, Content-Type=json.
You might have seen contentType: "application/json", dataType: "json" in $.ajax. In jQuery, dataType: "json" is for Accept: application/json in HTTP header. Accept: field is content-type that client expect from server as response. If you do not include dataType: "json", in $.ajax, jQuery will send Accept: */*, meaning the client can receive any content-type as response. That means it will be okay to exclude dataType: "json" but we probably want do to it more explicitly.
RESTful APIs
We can see something like RESTful and CRUD everything about them is "URL itself should be representational and operation of APIs should be divided into Create(POST), Read(GET), Update(PUT), and Delete(DELETE)"
To use these ideas, my initial thought of the API structure is like this:

URL
Method
Short Description

/api/location
GET
list all locations (house and rooms) of a user

/api/location
POST
create a new location

/api/location/<id>
GET
get detail of location #id

/api/location/<id>
PUT
change detail of location (such as name)

/api/location/<id>
DELETE
delete location

/api/device
GET
get all list of devices of a user

/api/device
POST
create a new device

/api/device/<id>
GET
show detail of device #id

/api/device/<id>
PUT
Update detail of device (such as name)

/api/device/<id>
DELETE
Delete a device

/api/device/<id>/<parameter>
GET
Get all records of a parameter of device #id (e.g. /api/device/1/temp will show all records of temp)

For names like /api/getUserInfo and /api/getLastestDeviceInfo. GET already represents /get... name.
/api/getUserInfo can be divided into location and device. So i would suggest you to use GET /api/location and GET /api/device to get info of user. And the name of /api/getLastestDeviceInfo can be replace by GET /api/device/<id>.

This is all my thoughts. Please tell if there is any more suggestion.

Great! the API specifications are clear to me. And it makes sense.
Thanks for explanations on HTTP protocol. These answers some questions I had when working with JQuery. 😄

authors: cjackie kbumsik

repo: Wolfie-Home/Documents


text:
Add CentOS Stream 8 to test reasonably old GCC version for Linux

We want to establish a decent floor for compiler compatibility, and
CentOS Stream 8 is a good place for supportability reasons, as it
is essentially the Red Hat Enterprise Linux 8 platform.
We use the CentOS Hyperscale SIG official container since it
pre-configures all the necessary base repositories for us.

Sounds reasonable to me. Can we also add Ubuntu:latest at some point, since that's probably the major platform we're targeting (and it's derivatives)

Sounds reasonable to me. Can we also add Ubuntu:latest at some point, since that's probably the major platform we're targeting (and it's derivatives)?

If we were to add a third platform, it'd probably be to add the Steam SDK container. Between CentOS Stream and Fedora, we've got the spectrum of common environments for testing. So the only remaining Linux platform worth adding (and not adding to the build time!) is the Steam Runtime, matching the version that is used for building the app for Steam.

authors: Conan-Kudo feliwir

repo: WolfireGames/overgrowth


text:
🛑 My site is down

In 343e917, My site ($URL_TO_MONITOR) was down:

HTTP code: 0
Response time: 0 ms

Resolved: My site is back up in a2ec983.


text:
🛑 NextCloud is down

In 4ced122, NextCloud (https://nextcloud.woomy.be) was down:

HTTP code: 503
Response time: 1061 ms

Resolved: NextCloud is back up in b98a609 after 6 minutes.

repo: Woomymy/status


text:
Concurrent Survey Process

Adds funcionality for CSP
https://trello.com/c/zgCyUiHl/204-3-concurrent-survey-process-step-3-ios-sdk
This commit:

Includes end_user_id, user_id and unique_link on requests to responses and
decline
Creates unique_link algorithm to be a SHA256 hash of NPS token,
end_user_email, date and a random string
Adds priority number to responses and declines
Adds WTRApiClientTests to test CSP changes

Code needed a refactor to make it more testable. I've focused on testing
the parts that involved CSP changes. There is still more testing to be
done but I prefered to leave that for another PR, atomic commits.
One thing I did include in this commit was changing identation of
ViewController.m and WTRApiClient.m from 4 spaces to 2. This is
and inconsistency throughout the project. I decided to settle for
2 spaces but haven't changed other files that use 4. Again, I'm
planning on doing this in a separate PR.

Write some tests.

Glad to see tests coming in here, see if you like my suggestions and please add the test for priority. It's almost done, great work!

Looks much better now, hope we had CI configured for this. 👍

:shipit:

@diegoserranoa :+

authors: diegoserranoa hachibu marinhero

repo: Wootric/WootricSDK-iOS


text:
Add "How to use" documentation for Visual Studio Code

I only just started playing with Visual Studio Code, but it would be nice to include it in the readme.

https://tommcfarlin.com/php-codesniffer-in-visual-studio-code/


text:
Add better error handling and reporting to the PR review reminders DAG

Problem

The PR review reminders DAG needs to be able to finish the list of PRs without erroring out. Additionally, it sometimes skips PRs without us being able to easily know why.
Description

Prevent errors in communication with GitHub from causing the entire DAG to fail. Additionally, send a report to the Slack notifications channel with a list of the PRs that it errored on, the PRs it created comments for, and the list of PRs that it skipped. This will help give us visibility into the ongoing operation of this DAG.

Duplicate of #1364

repo: WordPress/openverse