Add option to set background color

LGTM

👍 Can you merge?  I don't have merging rights in this repository.


feat(agent): loop over DHCP servers and interfaces

closes https://github.com/opiproject/sztp/issues/396

@bhoopesh369 thanks for your contribution
when I look at Ubuntu, when using Network Manager, I see a separate file per interface and not all interfaces in the same file...
See example:
root@bf2:~# ls -l /var/lib/NetworkManager/dhclient-*
-rw-r--r-- 1 root root 6981 Jun 19 20:31 /var/lib/NetworkManager/dhclient-aa93b667-6aac-3804-91e9-4958e07fdb2f-oob_net0.lease
-rw-r--r-- 1 root root 2514 Jun  7 18:52 /var/lib/NetworkManager/dhclient-oob_net0.conf

I wonder what is the right approach here ? pass the folder to scan ?
I also worried if NetworkManager vs networkd will have different formats...

for example I found:
root@bf2:~# nmcli -f DHCP4 device show oob_net0
DHCP4.OPTION[1]:                        broadcast_address = <IP_ADDRESS>
DHCP4.OPTION[2]:                        dad_wait_time = 0
DHCP4.OPTION[3]:                        dhcp_lease_time = 600
DHCP4.OPTION[4]:                        dhcp_message_type = 5
DHCP4.OPTION[5]:                        dhcp_server_identifier = <IP_ADDRESS>
DHCP4.OPTION[6]:                        domain_name = lab.opiproject.org
DHCP4.OPTION[7]:                        domain_name_servers = <IP_ADDRESS> <IP_ADDRESS>
DHCP4.OPTION[8]:                        expiry =<PHONE_NUMBER>
DHCP4.OPTION[9]:                        ip_address = <IP_ADDRESS>
DHCP4.OPTION[10]:                       network_number = <IP_ADDRESS>
DHCP4.OPTION[11]:                       next_server = <IP_ADDRESS>
DHCP4.OPTION[12]:                       requested_broadcast_address = 1
DHCP4.OPTION[13]:                       requested_domain_name = 1
DHCP4.OPTION[14]:                       requested_domain_name_servers = 1
DHCP4.OPTION[15]:                       requested_domain_search = 1
DHCP4.OPTION[16]:                       requested_host_name = 1
DHCP4.OPTION[17]:                       requested_interface_mtu = 1
DHCP4.OPTION[18]:                       requested_ms_classless_static_routes = 1
DHCP4.OPTION[19]:                       requested_netbios_name_servers = 1
DHCP4.OPTION[20]:                       requested_netbios_scope = 1
DHCP4.OPTION[21]:                       requested_ntp_servers = 1
DHCP4.OPTION[22]:                       requested_rfc3442_classless_static_routes = 1
DHCP4.OPTION[23]:                       requested_root_path = 1
DHCP4.OPTION[24]:                       requested_routers = 1
DHCP4.OPTION[25]:                       requested_static_routes = 1
DHCP4.OPTION[26]:                       requested_subnet_mask = 1
DHCP4.OPTION[27]:                       requested_sztp_redirect_urls = 1
DHCP4.OPTION[28]:                       requested_time_offset = 1
DHCP4.OPTION[29]:                       requested_wpad = 1
DHCP4.OPTION[30]:                       routers = <IP_ADDRESS>
DHCP4.OPTION[31]:                       subnet_mask = <IP_ADDRESS>
DHCP4.OPTION[32]:                       sztp_redirect_urls = https://bootstrap:8080/restconf/operations/ietf-sztp-bootstrap-server:get-bootstrapping-data

@bhoopesh369 thanks for your contribution
when I look at Ubuntu, when using Network Manager, I see a separate file per interface and not all interfaces in the same file...
See example:
root@bf2:~# ls -l /var/lib/NetworkManager/dhclient-*
-rw-r--r-- 1 root root 6981 Jun 19 20:31 /var/lib/NetworkManager/dhclient-aa93b667-6aac-3804-91e9-4958e07fdb2f-oob_net0.lease
-rw-r--r-- 1 root root 2514 Jun  7 18:52 /var/lib/NetworkManager/dhclient-oob_net0.conf

I wonder what is the right approach here ? pass the folder to scan ?
I also worried if NetworkManager vs networkd will have different formats...
WDYT ?

@bhoopesh369 thanks for your contribution
when I look at Ubuntu, when using Network Manager, I see a separate file per interface and not all interfaces in the same file...
See example:
root@bf2:~# ls -l /var/lib/NetworkManager/dhclient-*
-rw-r--r-- 1 root root 6981 Jun 19 20:31 /var/lib/NetworkManager/dhclient-aa93b667-6aac-3804-91e9-4958e07fdb2f-oob_net0.lease
-rw-r--r-- 1 root root 2514 Jun  7 18:52 /var/lib/NetworkManager/dhclient-oob_net0.conf

I wonder what is the right approach here ? pass the folder to scan ?
I also worried if NetworkManager vs networkd will have different formats...
WDYT ?

hmm, so the lease file format is same for NetworkManager and dhclient (but in NetworkManager one file for each interface)
but is different in networkd
i saw the lease file inside of the sztp-client-1 container, located at /var/dhclient/dhclient.leases - in this everything was present in one file.
I think we have to parse networkd lease files seperately and yea pass the folder to scan
WDYT?

Makes sense
Will look into it

so i searched for nmcli wrapper packages in go
I found some, but it has very limited capabilities and can't fetch leases.
I looked for any alternates that can do this and found this: https://github.com/insomniacslk/dhcp/
I wrote a quick code to test this out.
you can find it over here: https://github.com/bhoopesh369/nmcli-test/blob/main/src/nmcli-test/dhcp/dhcp_info_new.go
Here's what the code will do under the hood:

It creates a new DHCP client.
It initiates a DHCP exchange (DISCOVER, OFFER, REQUEST, ACK sequence) with the DHCP server for the specified network interface.
It extracts information from the DHCP ACK message received from the server.

This means that the code is getting fresh DHCP information directly from the network, not from any stored lease files.
is this good, or WDYT

is this good, or WDYT

I do not think we can run our own DHCLIENT... since there is one that will be running already on every server, so we will conflict on packets... the only option is to use fetch from existing clients...
so we can

open new issue to investigate nmcli in golang more
open new issue to investigate networkd in golang
open new issue to investigate single file vs folder for dhcp leases
definitely take your code that runs single time loop to a separate action
in cmd run call the function above once and exit
in cmd daemon call the function in a loop till success

WDYT ?

hmm works, i get why we cant run another dhclient
cool, so refactor the runCommandDaemon function and then raise those 3 issues right?

hmm works, i get why we cant run another dhclient cool, so refactor the runCommandDaemon function and then raise those 3 issues right?

yep

@bhoopesh369 I'm looking at the code right now and I think we should revert all the changes...
the network interfaces, are not applicable as we saw the separate dhcp files...
so the only thing we should do is probably

call performBootstrapSequence() function in a loop in daemon command
call performBootstrapSequence() function once in run command

Thanks for opening rest of the issues

Cool, I was thinking the same too
I will update it now

@bhoopesh369 I'm looking at the code right now and I think we should revert all the changes... the network interfaces, are not applicable as we saw the separate dhcp files...
so the only thing we should do is probably
* call `performBootstrapSequence()` function in a loop in `daemon` command

* call `performBootstrapSequence()` function once in `run` command

Thanks for opening rest of the issues

which run command are you talking about, this one below?

@bhoopesh369 looks great, please fix test
2024-06-25T18:48:48.5860162Z --- FAIL: TestAgent_RunCommand (0.00s)
2024-06-25T18:48:48.5860680Z     --- FAIL: TestAgent_RunCommand/TestAgent_RunCommand (0.00s)

@bhoopesh369 looks great, please fix test
2024-06-25T18:48:48.5852000Z === RUN   TestAgent_RunCommand/TestAgent_RunCommand
2024-06-25T18:48:48.5852378Z 2024/06/25 18:48:47 runCommand started
2024-06-25T18:48:48.5852920Z 2024/06/25 18:48:47 [INFO] Starting the Request to get On-boarding Information.
2024-06-25T18:48:48.5853521Z 2024/06/25 18:48:47 [DEBUG] Sending to: https://localhost:8443
2024-06-25T18:48:48.5854772Z 2024/06/25 18:48:47 [DEBUG] Sending input: {"ietf-sztp-bootstrap-server:input":{"hw-model":"Virtual Machine","os-name":"Ubuntu 22.04.4 LTS","os-version":"22.04","nonce":""}}
2024-06-25T18:48:48.5856001Z 2024/06/25 18:48:47 Error doing the request Post "https://localhost:8443": dial tcp [::1]:8443: connect: connection refused
2024-06-25T18:48:48.5856931Z 2024/06/25 18:48:47 [ERROR]  Post "https://localhost:8443": dial tcp [::1]:8443: connect: connection refused
2024-06-25T18:48:48.5857994Z 2024/06/25 18:48:47 Error in performBootstrapSequence inside runCommand:  Post "https://localhost:8443": dial tcp [::1]:8443: connect: connection refused
2024-06-25T18:48:48.5859410Z     run_test.go:64: RunCommand() error = Post "https://localhost:8443": dial tcp [::1]:8443: connect: connection refused, wantErr false
2024-06-25T18:48:48.5860162Z --- FAIL: TestAgent_RunCommand (0.00s)
2024-06-25T18:48:48.5860680Z     --- FAIL: TestAgent_RunCommand/TestAgent_RunCommand (0.00s)

yep looking into it

a mock test server is not configured inside the test, that's why it failed,
I think the test for RunCommand() is redundant because the same is done by tests for each func inside of bootstrap sequence.
The test if written, will jus be a cummuative copy of the individual tests
WDYT?

a mock test server is not configured inside the test, that's why it failed,
I think the test for RunCommand() is redundant because the same is done by tests for each func inside of bootstrap sequence.
think that is why a test is not there for the daemon command
WDYT?

ok, you can remove this test now in this PR
and open an issue to add back both tests properly, since we do want 100% code coverage..
.
see https://app.codecov.io/gh/opiproject/sztp/blob/main/sztp-agent%2Fpkg%2Fsecureagent%2Fdaemon.go

Also consider invoking run in this compose file for end2end CI:
https://github.com/opiproject/sztp/blob/126f501e6c8b31c1eafa5ead4b887bd1350f3849/docker-compose.yml#L220-L227


Specifying certificate compression algorithms

For openssl s_client/s_server we need to be able to specify certificate compression algorithms.
Also probably we need to add -cert_comp option for s_client (similar to s_server)

I agree that algorithms might be useful.
-cert_comp has a specific purpose on the server, but could be used on the client to simply ignore sending compressed certs.


Move Simulation and Mockup into a Chip instead of Cluster abstraction.

After #248 , we can finaly move tt_SimulationDevice and tt_MockupDevice into a Chip abstraction.
They would be created through cluster by passing vector of chips to cluster to work with.

Think about how would this be used from tt::umd::Cluster.
We could create a constructor which accepts a custom set of chips?


fix "'FileExistsError' is not defined" error

FileExistsError and open mode 'x' are added in Python 3.3
https://docs.python.org/3.3/library/exceptions.html#FileExistsError
https://docs.python.org/3.3/library/functions.html#open
this will cause an error when using the latest stable PyPy ( PyPy3 2.4.0 ,Python 3.2.5 compatible)
this commit fix this error for latest stable PyPy and Python3.2 :-)
CLA signed :-)

Won't that introduce a TOCTTOU issue?
I noticed it too but I wasn't sure what the best approach was. I thought about forcing -f on when not running in 3.3, but that's kind of ugly.

Agreed,  forcing -f on when not running in 3.3 is not a good idea.
The original code is elegance but not backward compatible.
Since os.path.exists takes almost no time, TOCTTOU should not be a problem in this case.
cProfile.run("os.path.exists('test-enjarify.jar')")
5 function calls in 0.000 seconds
Ordered by: standard name
ncalls  tottime  percall  cumtime  percall filename:lineno(function)
1    0.000    0.000    0.000    0.000 :1()
1    0.000    0.000    0.000    0.000 genericpath.py:15(exists)
1    0.000    0.000    0.000    0.000 {built-in function exec}
1    0.000    0.000    0.000    0.000 {built-in function posix.stat}
1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
seems PyPy3 2.5 release is not predictable yet, this commit should be a fine  workaround before it release:-)


Custom data subscription not working with the same symbol from multiple exchanges

Expected Behavior

All the custom data subscriptions are properly working and 4 data entries are available in each slice (see repro example)
Actual Behavior

Custom data subscriptions for the same symbol from multiple exchanges are not working as expected. The custom data subscription is not created for every symbol but only the first one and is being reused by the others.
Potential Solution

I don't have enough information on backward compatibility and the initial design reasons to make a proper suggestion to fix it.
Not using the US market but the same market as in the source symbol seems to work, but this might have further implications I'm not aware of. Especially after reading https://github.com/QuantConnect/Lean/pull/3484
Reproducing the Problem

public class Test : QCAlgorithm
{
    public override void Initialize()
    {
        SetStartDate(2023, 01, 1); // Set Start Date
        SetEndDate(new DateTime(2023, 01, 01).AddMinutes(2)); // Set Start Date
        SetAccountCurrency("USDT", 10000);

        var market1 = AddCryptoFuture("BTCUSDT", Resolution.Minute, Market.Bybit, false);
        var data1 = AddData<MyCustomData>(market1.Symbol, Resolution.Minute, DateTimeZone.Utc, false);

        var market2 = AddCryptoFuture("BTCUSDT", Resolution.Minute, Market.Binance, fillForward: false);
        var data2 = AddData<MyCustomData>(market2.Symbol, Resolution.Minute, DateTimeZone.Utc, false);
    }

    public override void OnData(Slice slice)
    {
        // I'm expecting 4 data entries here but it's always only 3
        // It seems like the symbol being created is the same for both custom data subscriptions as it's created for the US market
        // Registering the data source using the ticker instead of the underlying symbol works but that way we're loosing the market information
        // in the BaseData making reading the data more complicated.
        // Another solution would be to use a different data type per symbol as the data type because the final symbol consists of {underlying_ticker}.{data_type_name}

        Log($"Data: {slice.Count} Expected: 4");
    }
}

System Information

N/A
Checklist

[x] I have completely filled out this template
[x] I have confirmed that this issue exists on the current master branch
[x] I have confirmed that this is not a duplicate issue by searching issues

[x] I have provided detailed steps to reproduce the issue

@Marinovsky @Martin-Molinero
It seems this bug is only partially fixed and/or there seems to be an additional issue:

The data timezone of the custom data seems to be always America/New_York this might be related to still using the USA market here: https://github.com/QuantConnect/Lean/blob/844602c04a6cf2fb9a77f6401705950a770180f5/Algorithm/QCAlgorithm.Python.cs#L266

This example will still not work, in this case it's the same exchange but a different security type.
var market1 = AddCryptoFuture("BTCUSDT", Resolution.Minute, Market.Bybit, false);
var data1 = AddData<MyCustomData>(market1.Symbol, Resolution.Minute, DateTimeZone.Utc, false);

var market2 = AddCrypto("BTCUSDT", Resolution.Minute, Market.Bybit, fillForward: false);
var data2 = AddData<MyCustomData>(market2.Symbol, Resolution.Minute, DateTimeZone.Utc, false);

Hey @arodus!
Whops yes nice catch about 1, reopening so we address it 👍. Regarding 2, I don't think that use case is currently supported, suggest maybe using inheritance to add CryptoCustomData : MyCustomData & CryptoFutureCustomData : MyCustomData believe that would do the trick

Amazing thank you. The workaround works for me :)


Better biblatex export is not possible anymore

Hello,
I have been able to use the better biblatex export previously but, suddenly, the option disappeared from the export drop down menu. I attach a picture of that menu.

Are the Better BibTeX preferences still present in the preferences pane?

Yes, they are. I also tried to reinstall better biblatex but it did not solve the problem.

OK, good.

go into Preferences->Advanced, check "Enable after restart"
close down Firefox entirely (all FF windows must be closed or FF won't really restart),
after restart, select "report ZotPlus error" from the gear menu
click through until you see a red URL displayed
post that URL here

I cannot see any red URL but the log has thousands of lines so I may have missed it. Is there a particular string close to that URL that I can look for to find it easily?

There ought to be a "continue" button, the resulting window will display a short red URL.

I see. The url is http://goo.gl/vKNtJ4

There are no errors in the log. Could you try disabling all plugins except zotero and BBT and then restart, to see if the translators come back? Not meant as a permanent solution, but there has been interference by other plugins before (recoll for example), and I'd like to know whether this could be the case. If so, we can work towards narrowing down which it is.

I disabled all add-ons but Zotero and BBT, but it does not change anything :(

I installed Zotero standalone instead and it works well.
I also noticed that when I used Zotero with Firefox, the last line in the Import/Export preferences of BBT (Clickable URLs) is not shown. The window is somehow truncated just under "Retain Latex markup ..."

The display issue is unrelated (if annoying) and will be fixed in #159. Can you go to Preferences->Advanced->Files and Folders->Show data directory, and check whether:

the file "translators/Better BibLaTeX.js" exists, and
the directory "translators" is writable for the current user by going into that directory and creating a file. You  can remove the file once created, name doesn't matter.

The file does exist and the directory is writable.

Sheesh, there goes one easy explanation. Could you go into Preferences->Advanced->Files and Folders again, click "Reset translators", restart firefox, and see whether that file reappears?

Hmm, now I can see the Better BibLatex exporter again in Firefox! I think that the installation of standalone Zotero made it work again, even in Firefox. It could be that the translator did not exist prior to the installation of standalone Zotero. I only checked after I had installed the standalone version.

It's still weird though, the FF installation had the preferences, and BBT
installs the translators anew at every start.
On Tue, Mar 17, 2015 at 3:40 PM, CamilleH<EMAIL_ADDRESS>wrote:

Hmm, now I can see the Better BibLatex exporter again in Firefox! I think
that the installation of standalone Zotero made it work again, even in
Firefox. It could be that the translator did not exist prior to the
installation of standalone Zotero. I only checked after I had installed the
standalone version.
—
Reply to this email directly or view it on GitHub
https://github.com/ZotPlus/zotero-better-bibtex/issues/168#issuecomment-82388089
.

I had to install BBT in standalone Zotero. Could it be that the installation in FF was broken and installing BBT in the standalone somehow repaired it?

If those two installations shared a profile, it is not impossible, but I
don't immediately see how.

Anyway, it works now. Thanks for your help!
Shall I close the issue?

Always a pleasure, never a chore. Yes, you can close the issue; I generally leave that up to the user, so I don't close the issue before the customer is satisfied :)


Redshift transition to ACM Certificates

I use DBeaver to access Amazon Redshift.
We just got this notification from Amazon, about our Redshift cluster:
https://docs.aws.amazon.com/redshift/latest/mgmt/connecting-transitioning-to-acm-certs.html
It mentions, "Amazon Redshift drivers beginning with ODBC version <IP_ADDRESS>0 and JDBC version <IP_ADDRESS>5 automatically manage the transition from an Amazon Redshift self-signed certificate to an ACM certificate."
I keep DBeaver up to date, and my Redshift driver currently has "<IP_ADDRESS>3" in it -- presumably this is the JDBC driver version, right?
Will I need to do anything with DBeaver, in order to continue using it to access my Redshift cluster, after Amazon makes this change to ACM Certificates?
Would you start shipping DBeaver with a newer Redshift driver that handles it? Or would I need to update the driver, manually, myself? (I'm not sure how to do this, but I could probably figure it out.)
Or anything else? Thanks!

You can always update driver version (to older or newer) in DBeaver driver manager.
We can upgrade default RedShift driver version in DBeaver configuration if older version become obsolete. The only concern is about backward compatibility. Maybe it'll make sense to have two different prconfigured drivers.

What do you think?

For my purposes, I'm happy to just update the driver.
I'm not 100% sure how to do this, however. I've looked at DBeaver's driver manager. Selecting the Redshift driver file and clicking "Download/Update" doesn't seem to update to a newer version of the driver -- right?
So, I download the corresponding .jar file, from Amazon (it looks like DBeaver wants a JDBC 4.1–compatible flavor of the driver). Then, I open the driver manager in DBeaver. Now, what? Do I select "Redshift" and click "Edit"...then change the Redshift driver? What do I edit?
Or, do I click "New"...and create a new item in DBeaver's driver manager, with the new version of the driver?
I couldn't find the steps documented anywhere. Thanks for your help!

Download new driver jar.
In driver manager, find RedShift driver. Click on Edit.
On tab Libraries:

Select preconfigured library jar (<IP_ADDRESS>3) and click on Delete.
Click on Add file
Choose jar file you just downloaded
Click Ok

That's it.

I'll create Wiki article for driver management. Thanks for reminder :)

Easy, indeed. That worked, thanks!

There are a couple of related issues with this particular AWS Redshift driver update.

As Redshift is a managed service, there really isn't much of a backward compatible concern as AWS will be changing the SSL cert. on all clusters on the dates they announced.  In other words, supporting older Redshift drivers shouldn't be much of concern for DBeaver as AWS will be breaking compatibility anyway.
Redshift is changing the SSL cert. used for all Redshift clusters because the current cert. will expire soon.  So all SQL clients and applications that use encrypt connections with SSL using JDBC, ODBC on the client will have to upgrade their client end driver because AWS is packaging the SSL cert into the driver. Yea!
Redshift as part of the changing the SSL cert. they are changing from a self-signed cert. to an Amazon Certificate Manager (ACM) Certificate Authority (CA) signed cert. However, the ACM CA trust chain is not in the default JVM truststore.  This means that in addition to installing the new JDBC/ODBC driver with the new cert packaged in it, the CA trust chain has to be installed into the truststore that's used by the driver, in the truststore of the JVM used by DBeaver for JDBC on all OSes, in the Windows system truststore for ODBC on Windows, and I'm not sure where for ODBC on *nix.  As DBeaver has 3 install modes, packaged installer with JVM, ZIP using separate JVM, and Eclipse plugin using Eclipse JVM. there are 3 possible scenarios for installing the ACM CA trust chain into the truststore used by the JVM DBeaver uses.  I respectfully request that DBeaver always add this new ACM CA trustchain to the JVM in the packaged install.  I've been doing manual JVM trust chain installs for some other tools that package a JVM and overwrite the JVM every new minor version upgrade and I can tell you it a huge pain a barrier to keep using the tool when an installed trust chain keeps getting overwritten.

Everything that's needed to do this is available for public download directly from the Redshift doc.

@BigDataDaddy This makes sense (to include ACM trust keychain in JRE packaged in installer).
Two questions:

Driver version update. As Redshift drivers aren't in any public Maven repository DBeaver uses direct download links and can't get the most recent driver version automatically. I wondering is there any way to automate this.
Is there any doc which describes how/where to get trustchain, how to put it in JRE?


Scan codes

https://scannables.scdn.co/uri/plain/png/000000/white/640/spotify:playlist:0qtAGoh3i4qOdw0pKaFjMz
https://github.com/spotify/web-api/issues/519

Added scancode in artist/album/song specific pages.
https://github.com/dishwasher-detergent/sprobble.xyz/pull/24


Hidden Mansion mirror room

When I go into the mirror room in the hidden mansion the door doesn't lock behind me so the mirror ghosts don't spawn. This is the second time this has happened so I know its not a one time thing.

Found the issue, and I know how to fix it; it's a remnant of an older system to prevent blockades spawning inside you.
I'll push a change for most rooms to prevent this ever being an issue again.
I wonder how I missed this in my test run...

can I fix it without restarting?

It's fixed in the commit; the room should start immediately when you're inside it.


Interpolated variable get re-interpolated.

When I beautify,
    calc( 100% - #{$foo} );

becomes
    calc( 100% - #{#{$foo}} );

any ideas why?

Yep getting the same.

I'm also bumping up against this issue atm. :( Anyone got any ideas?

what's weird is that it seems to only happen with the automatic beautification. If you do beautify the file manually ( alt + w ) the issue doesn't occur

I get it with the [cmd][shift][p] Command Palette approach too.


Added three missing park URLs and fixed two errors

-fixed the bad character for Neneikekh/Nanika-Kidprice Park
-removed the extra 'ORCSSite' column
Description
This PR includes the following proposed change(s):

{List all the changes, if possible add the jira ticket #}

Type of change

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Refactoring / Documentation
[ ] Version change

if your change is a breaking change, please add breaking change label to this PR
How Has This Been Tested?
Please describe the tests that you ran to verify your changes.
Does the change impact or break the Docker build?

[ ] Yes
[ ] No

If Yes: Has Docker been updated accordingly?

[ ] Yes
[ ] No

Checklist:

[ ] My code follows the style guidelines of this project
[ ] I have performed a self-review of my own code
[ ] I have made corresponding changes to the documentation
[ ] New and existing unit tests pass locally with my changes

This PR is superseded by 194


qmapboxgl  - android build

Hello!
I built 'libmapbox-gl.so' under android.
Then i tried to connect this lib to qmapboxgl project:
'qmapboxgl.pro'
    INCLUDEPATH += "../mapbox-gl-native/include"
    LIBS += -L../mapbox-gl-native/build/android-arm-v7/Release/lib.target -lmapbox-gl
}```
But i can't build project.

```../qmapboxgl/src/qmapboxgl.cpp:39: error: undefined reference to 'mbgl::Map::setStyleJSON(std::string const&, std::string const&)'
../qmapboxgl/src/qmapboxgl.cpp:49: error: undefined reference to 'mbgl::Map::setLatLng(mbgl::LatLng, std::chrono::duration<long long, std::ratio<1ll,<PHONE_NUMBER>ll> > const&)'
../qmapboxgl/src/qmapboxgl.cpp:59: error: undefined reference to 'mbgl::Map::setLatLng(mbgl::LatLng, std::chrono::duration<long long, std::ratio<1ll,<PHONE_NUMBER>ll> > const&)'
../qmapboxgl/src/qmapboxgl.cpp:69: error: undefined reference to 'mbgl::Map::setZoom(double, std::chrono::duration<long long, std::ratio<1ll,<PHONE_NUMBER>ll> > const&)'
../qmapboxgl/src/qmapboxgl.cpp:97: error: undefined reference to 'mbgl::Map::moveBy(double, double, std::chrono::duration<long long, std::ratio<1ll,<PHONE_NUMBER>ll> > const&)'
../qmapboxgl/src/qmapboxgl.cpp:108: error: undefined reference to 'mbgl::Map::scaleBy(double, double, double, std::chrono::duration<long long, std::ratio<1ll,<PHONE_NUMBER>ll> > const&)'
../qmapboxgl/src/qmapboxgl.cpp:110: error: undefined reference to 'mbgl::Map::scaleBy(double, double, double, std::chrono::duration<long long, std::ratio<1ll,<PHONE_NUMBER>ll> > const&)'
../qmapboxgl/src/qmapboxgl.cpp:126: error: undefined reference to 'mbgl::DefaultFileSource::DefaultFileSource(mbgl::FileCache*, std::string const&)```

What is wrong?

@tmpsantos describe the problem in detail:
I built libmapbox-gl.so for android (arch armeabi-v7a) using make-android from this git (https://github.com/mapbox/mapbox-gl-native).
Then I tried to use your qmapboxgl project.

edit .pro-file:

 {

   ANDROID_EXTRA_LIBS = \

   $$PWD/../Desktop/mapbox-gl-native/build/android-arm-v7/Release/lib.target/libmapbox-gl.so

 }```

instead

``` PKGCONFIG += libmbgl ```

2) In .pro file add path to the headers:
``` INCLUDEPATH += $$PWD/.../Desktop/mapbox-gl-native/include ```

3) Build project - several errors appears.
For example: ```undefined reference to mbgl::DefaultFileSource(...)```

@ljbade said that you don't use Qt-Android.

How can I solve this problem? Or I have to use Android SDK and Java?

Build project - several errors appears.
For example:
undefined reference to mbgl::DefaultFileSource(...)

This is because the way how Mapbox GL Android is built doesn't include some symbols we need for QMapboxGL.

@ljbade said that you don't use Qt-Android.

He is right, it is not supported. QMapboxGL at the moment is just a cool experiment. :)

How can I solve this problem? Or I have to use Android SDK and Java?

You can try to make a custom build of Mapbox GL for Android in a way to include all the symbols (read .cpp .hpp) files needed by QMapboxGL.
If you are to attempt that, make sure you are using Mapbox GL version 0.5.2, because that is the last one I tried to build QMapboxGL.


Does not install properly on ST3+W8

On install I get in the console:
Traceback (most recent call last):
  File "errormarker in \Apps\Sublime Text\Data\Installed Packages\SublimeSBT.sublime-package", line 28, in mark_errors_in
  File "errormarker in \Apps\Sublime Text\Data\Installed Packages\SublimeSBT.sublime-package", line 57, in _mark_errors_in_view
  File "errormarker in \Apps\Sublime Text\Data\Installed Packages\SublimeSBT.sublime-package", line 78, in _highlighter
  File "highlighter in \Apps\Sublime Text\Data\Installed Packages\SublimeSBT.sublime-package", line 18, in __init__
  File "highlighter in \Apps\Sublime Text\Data\Installed Packages\SublimeSBT.sublime-package", line 95, in _update_highlight_args
  File "highlighter in \Apps\Sublime Text\Data\Installed Packages\SublimeSBT.sublime-package", line 101, in _create_highlight_args
TypeError: 'NoneType' object is not subscriptable

After this, none of the commands show up in the palette.

I'm getting similar behavior, except that "SBT: Clear History" is the only command showing up.  I see the same error in the console when I install or enable the package.  I'm running ST3, build 3065.  I've got a scala file in the directory as well as .sbt.

Getting exactly the same problem as @boonedox. Here's the output from the installation:

I don't have a W8 machine to try on but perhaps we can investigate together. Most of the crashes are in the following code from sbtsettings.py (line 55 is the second line):
def _view_settings(self):
    for view in maybe(self.window.active_view()):
        return view.settings().get('SublimeSBT', {})
    return {}

It seems strange for this to be going wrong, so probably the first thing to do is to print some stuff out to see things in more detail. If you're up for poking around, try inserting (untested):
print ('window: ' + str(self.window))
print ('active_view: ' + str(self.window.active_view()))

Reload and see what happens.


lang_country not stored in DB as expected

Hello,
I have followed the instructions to install this package and expected the lang_country to be stored in the new user.lang_country table of my database but it remains NULL even after numerous logins and cache dumps etc.
Should it be added to the db or do I need to add it manually on login somehow?

Did you implement this in your LoginController?
public function authenticated(Request $request, $user)
{
    // Set the right sessions
    if (null != $user->lang_country) {
        \LangCountry::setAllSessions($user->lang_country);
    }

    return redirect()->intended($this->redirectPath());
}

Kind of yes (it's in a listener but essentially the same).
I may missunderstand the full functionality process but as far as I can tell, it only updates the users table 'lang_country' when you switch languages. It doesn't set the 'lang_country' field on logging in unless you switch languages correct?
My scenario. a guest registers via socialite. This creates a new user but doesn't set a value for 'lang_country' (leaving it NULL).
*on 'authenticated' checks for !null then sets session.
for demo purposes I set the fallback to es_ES and register through twitter via socialite. (my browser is using en_GB).
My login creates a new user and lang_country defaults to NULL.
what I can see: The session is set and the lang_country is set to en_GB (and not the fallback) as hoped for. However, the users.lang_country is not set to en_GB as expected.
Is it supposed to set the lang_country only once a user has "switched" language?
Is it suposed to set the lang_country if it is NULL on login ?
I'd like (if it doesnot already) the package to set the lang_country to the same as the session if the users.lang_country is NULL else only update on amual "switch" ...does this sound like a good idea to you?
thanks.
*also I have a pull request brewing

Hi @jayenne
A lot of questions in this one 😊

Kind of yes (it's in a listener but essentially the same).

Are you sure? The middleware is first in the request lifecycle, and it will set the correct session for you. You need this session.

My scenario. a guest registers via socialite. This creates a new user but doesn't set a value for 'lang_country' (leaving it NULL).

Two options here:

Option 1: Make use of the LangCountry::allLanguages(); helper. You can use this to make a dropdown in your signup form so the user can select the prefered language.
Option 2 (what I do most of the time): Make the signup form translatable and make sure the middleware is also applied here. Then you don't need a dropdown for the available languages. You can set the lang_country on the user creation in your controller based on the session('lang_country')

Hope this helps!

Thanks for the info Stefro.
DEfinately sure the code works and the session is being set. the route works too and it set the db as expect. I think I was expecting the package to set the db to the derived country/language if it found it to be null. By your asnwer, I think that it doesn't ans so there is no problem :)
...other than my own missunderstanding.
Thank you.

No problem! Hope you can use the package as needed. Let me know if you have any more questions. Good luck!


Bucklescript error filepath

Hi!
Would be nice if bsb error output file path will lead to actual line column
We've found a bug for you!
./MyFile.re 97:39-67

./MyFile.re path is clickable but it scrolls to line 1 column 1

Can you recheck with v0.72 please ?

@Coobaha it's ok with 0.73 no ?

@giraud
clicking on error path is still leading to line 1.
current format of path is ~/src/Module.re 3:22-23
Maybe if path will have no space it might work out of the box:  ~/src/Module.re:3:22-23

@giraud I've found a reason! It was one of the plugins that I had... Ruby plugin was a culprit. Do you have any idea how it is possible? Without ruby plugin -Editor jumps on click to correct line+column of file.

Following issue was created https://youtrack.jetbrains.com/issue/WEB-38377

I'm closing the issue then

(FWIW the Ruby plugin also causes this in IntelliJ version 2020.1.1 :) And the same fix works: Disabling the Ruby plugin.)


Add DNS resolver

All the system provided DNS resolvers are lame.
May be worth playing with this one:
http://25thandclement.com/~william/projects/dns.c.html
License is compatible.

I've managed to use native Linux functionality for this.
On other platforms, the solution isn't obvious.

Closing for now. Not clear how to support non-Linux platforms.


Variable name starting with UnderScore is not recognized correctly in Unity

A partial class is correctly generated in a .NET7 application using the code below, but when brought to Unity, a MEMPACK006 error is output.
Environment that does not work properly
Unity 2022.3.8f1
MemoryPack 1.10.0
Environment that works properly
net7.0
MemoryPack 1.10.0
[MemoryPackable]
public partial class Example
{
    [MemoryPackConstructor]
    private Example(string defaultLocale)
    {
        _defaultLocale = defaultLocale;
    }

    [MemoryPackInclude] private readonly string _defaultLocale;
}

When I checked, it seems that the content fixed in #156 is not included in Unity's Generator. Looking at the History, it seems that the version of the Generator included in Unity is quite old.
https://github.com/Cysharp/MemoryPack/commits/main/src/MemoryPack.Unity/Assets/Plugins/MemoryPack/Runtime/MemoryPack.Generator/MemoryPack.Generator.Roslyn3.dll

#219 The same issue has already been raised as an issue.

Hello. Thanks for your report.
1.20.0 has been released and support in Unity has changed to via NuGet. So I believe this issue has been resolved.
Please check the release notes for more information. Thanks!


Accessibility view: all actions have a bell icon

Testing #191344
This is probably intentional, but I notice that all notification actions use a bell icon. Have you considered something like a sub-menu for the different options instead of repeating an icon?

We want to have these in a top level menu so that they can be navigated using just arrow keys as that's easier for screen reader users. Without knowing what each action is (which we cannot know as they could be coming from extensions), we have to go with the default here, the bell.

The described behavior is how it is expected to work. If you disagree, please explain what is expected and what is not in more detail. See also our issue reporting guidelines.
Happy Coding!


irb command doesn't work in test mode

The irb command would hang without any output in the test mode:
❯ ruby test/debug/irb_test.rb
Loaded suite test/debug/irb_test
Started
[1, 2] in /var/folders/yg/hnbymwxd5pn7v94_clc59y6r0000gn/T/debugger20210624-80600-aod65v.rb
=>    1| a = 1
      2| b = 2
=>#0    <main> at /var/folders/yg/hnbymwxd5pn7v94_clc59y6r0000gn/T/debugger20210624-80600-aod65v.rb:1
INTERNAL_INFO: {"location":"/var/folders/yg/hnbymwxd5pn7v94_clc59y6r0000gn/T/debugger20210624-80600-aod65v.rb:1","line":1}
irb

(rdbg) irb
# then timeout

I suspect it's because the test framework doesn't support such cases yet.
Example test:
require_relative '../support/test_case'

module DEBUGGER__
  class IRBCommandTest < TestCase
    def program
      <<~RUBY
      a = 1
      b = 2
      RUBY
    end

    def test_irb_starts_an_irb_session
      debug_code(program) do
        type 'irb'
        assert_line_text(/irb\(main\)/)
        type 'exit'
        assert_line_text(/rdbg/)
        type 'q!'
      end
    end
  end
end

@ono-max can you give this a look? thx

Thanks. I took a look the issue.
Piece of code in utils.rb
 when /INTERNAL_INFO:\s(.*)/
                @internal_info = JSON.parse(Regexp.last_match(1))
                cmd = @queue.pop
                if cmd.is_a?(Proc)
                  cmd.call
                  cmd = @queue.pop
                end
                if ask_cmd.include?(cmd)
                  write.puts(cmd)
                  cmd = @queue.pop
                end
                write.puts(cmd)
                @last_backlog.clear
                next # INTERNAL_INFO shouldn't be pushed into @backlog and @last_backlog
              when /\(rdbg\) irb/
                while output = read.getc
                  print output
                end

Output
$ ruby test/debug/hoge_test.rb
Loaded suite test/debug/hoge_test
Started
[1, 2] in /var/folders/kv/w1k6nh1x5fl7vx47b2pd005w0000gn/T/debugger20210625-33210-j22slv.rb
=>    1| a = 1
      2| b = 2
=>#0	<main> at /var/folders/kv/w1k6nh1x5fl7vx47b2pd005w0000gn/T/debugger20210625-33210-j22slv.rb:1
INTERNAL_INFO: {"location":"/var/folders/kv/w1k6nh1x5fl7vx47b2pd005w0000gn/T/debugger20210625-33210-j22slv.rb:1","line":1}
irb

(rdbg) irb
# this is the content of `output` variable.
▽^[[63;2R^C

@st0012
BTW do you think we can test irb?
I'm not sure about it.

thanks for investigating. do you know why we can't see irb's prompt properly? I thought since it's not colorized or contain any special character, we should be able to read it like any debugger output?

BTW do you think we can test irb?

I'm not trying to test irb. I just want to verify that the debugger can enter the irb session correctly.

do you know why we can't see irb's prompt properly?

No, that's why I asked you ￼￼if we can test irb 😵

I’ll give this another try. @ko1 do you have any guess on the cause?

It seems recent irb can not control on PTY.

tried on this script and I can't quit it (and old irb bundled with ruby 2.6 can work).
maybe it needs other techs.
require 'pty'

PTY.spawn('irb '){|r, w, pid|
  puts r.readpartial(1024)
  w.print "quit\r\n"
  w.flush
  while true
    puts r.readpartial(1024)
  end
}

it seems hard so let's skip the test.
(or remove irb command)

ok let's skip the irb test for now. the command is still needed imo.


Virtual Playable Piano has been added to JS Games

Added new Piano game to issue number 2216

Close #2216

Checklist:

[✅] I have mentioned the issue number in my Pull Request.
[✅] I have commented my code, particularly in hard-to-understand are
[✅] I have created a helpful and easy to understand README.md
-

@pranjay-poddar Kindly, review the changes and merge the PR. I have also requested another 2 PR's


feat: #297 Added tag releases for semver versions

Ticket Number
297
Environment to be used in testing

[x] prod
[ ] dev-oicr
[ ] qa (which version?)

Description of Changes
Added pipeline to tag pro semver versions

Wrong Project


Groups

Requirements

Create a predefined list of groups and store them in a XML file
Each group may have an optional parent group which indicates inclusion relationship from the parent to the child. If a group does not have a parent, it is considered as a top level group
User-membership identifies which of the groups each user belongs to
Add tests to verify existence of groups in this XML file, and to detect the cases of group membership with an undefined group or user, and a group definition with a non-existing parent as erroneous

Note: Does the program prevent circular parent-child definition? How? Add test to demonstrate this if this is the case
Example

Each of these can be contained in a single or each can have its own.

Merged in #45


[BUG] Java on macosx apple scilicon is installed as a bundle, path to java is incorrect

Describe the bug
When running the app, the launcher looks for the java executable in /(game directory)/(java runtime directory)/bin/java, but it needs to point to /(game directory)/(java runtime directory)/jre.bundle/Contents/Home/bin/java
Current workaround is checking if the user is using a mac with apple silicon, then performing the following code right before the process starts:
process.StartInfo.FileName = process.StartInfo.FileName.Replace("/bin/java", "/jre.bundle/Contents/Home/bin/java")
Doing this filename fix launches the app correctly on mac.
Environment (please complete the following information):

OS: macosx Sonoma 14.4.1
CmlLib.Core Version: 3.3.10
.NET version: .net6.0

thanks for reporting thr issue. I'll test this on a real macOS device later.


Simplified cluster clean logic

This logic takes advantage of the fact that the StorageClusterInitialization object doesn't recreate NooBaa objects if we delete them. This means you can techincally delete the noobaa object and resulting pvcs, then tear down the rest of the cluster without using cascade=false on certain objects.

/hold
The fact that NooBaa isn't re-created when we delete it is something we need to discuss. I don't know if I consider this a feature or a bug at this point.

@jarrpa @davidvossel who's going to continue this?

At this point I'm gonna say I'm fine with it. It is working as designed.
/hold cancel
/lgtm


Describe the Reservability PMA

I'm open to other terms for the enumerated PMA values.

Merged manually.


Feature Request: Add sounds, view in bottom status bar

Hi,
Nice small plugin. I want to request two things if not too much

Notification sound when timer expires.
May be option for some background music.
a small widget in the bottom status bar to see timer.

Thanks

Great idea. I don´t know how to add sounds to notifications. In the obsidian API - Notification class is no sound option. Do you know a way to add sounds. I see no solution to that.

Hi,
You can have a look at implementation of another plugins like pomodoro
timer, which has sound options.
On Thu, 16 Nov, 2023, 01:51 Marius Wörfel, @.***> wrote:

Great idea. I don´t know how to add sounds to notifications. In the
obsidian API - Notification class is no sound option. Do you know a way to
add sounds. I see no solution to that.
—
Reply to this email directly, view it on GitHub
https://github.com/Raboro/obsidian-timer-plugin/issues/1#issuecomment-1813204328,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/A43TBXDVAJKMKX3T7FIHBZTYEUP3FAVCNFSM6AAAAAA7LQ26OWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQMJTGIYDIMZSHA
.
You are receiving this because you authored the thread.Message ID:
@.***>

I literally came here to say the timer doesn't have sound. You kinda can't use it unless you're alerted that it's stopped. Currently there isn't an alert of any sort. But seeing this was posted in November and it hasn't changed makes me realize it's probably going to stay like this.

I included timer in status bar in 1.0.6 and notification sound if timer expired in 1.0.5. Thanks for waiting.


regex ripple improved

@mrqc thank you, but the change makes the baseX call fail and it breaks the validator. Since this is just cosmetic change, I won't be looking into that myself.


return bounding box of result in simple projection

where bottom left is [0, 0] and top-right is [width, height] of the input geotiff base image
it's possible if you use an overview, that the simple srs bbox result will not be integers

done


"Setup FTPSync in this folder" fails on clean ST3 installation

Started a fresh portable ST3 on Windows 10, installed Package Control as usual, restarted ST3, installed FTPSync, ran "Setup FTPSync in this folder". Nothing happens, View Console says:
Traceback (most recent call last):
  File "D:\_temp\sublime_plugin.py", line 551, in run_
    return self.run(**args)
  File "FTPSync in D:\_temp\Data\Installed Packages\FTPSync.sublime-package", line 3001, in run
  File "./python3.3/ntpath.py", line 256, in dirname
  File "./python3.3/ntpath.py", line 220, in split
  File "./python3.3/ntpath.py", line 162, in splitdrive
TypeError: object of type 'NoneType' has no len()

What could be the issue?

No longer relevant to me, closing


Improved Error in :mod:.utils.tex_file_writing

Overview: What does this pull request change?
This removes the infamous max() arg is an empty sequence error
Added an insight for when a package is not installed
Fixes #2360
Further Information and Comments

I am not sure if

Install it using your LaTeX package manager

is a helpful enough insight. Suggestions Welcome!

Reviewer Checklist

[ ] The PR title is descriptive enough for the changelog, and the PR is labeled correctly
[ ] If applicable: newly added non-private functions and classes have a docstring including a short summary and a PARAMETERS section
[ ] If applicable: newly added functions and classes are tested

Sure!

I sank in enough time, but I have no idea why the logs will not be produced even after passing in the --log_to_file parameter.

Insights are logged as INFO not ERROR.
Here the verbosity is set to ERROR. Since you asked:

Can you add tests that assert the correct error messages are raised?

Setting it to INFO will include the insights

I think it'll be good to test that the insight is raised.

This unfortunately broke rendering of TeX strings containing %. Trying to create Tex(r"\%") fails in v0.15.0.


Fix tutorials page on mobile

At the moment it looks like this:

Design has been updated so this is now fixed


Support for pyro messenger guide in posterior sampling

This change introduces support for a new family of automatic guides that are more flexible (especially support for custom distributions at certain sites) and efficient (including using less memory) - because the guide works as a messenger that tracks model execution. This specific PR speeds up posterior sampling when this guide type is used. These new guides are in the pyro dev branch and will be released in the next release: https://github.com/pyro-ppl/pyro/milestone/20

@meeseeksdev backport to 0.14.x


Update iot-predictive-maintenance.md

Added "cse" to metadata for FCP PowerBI reporting

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

#sign-off

@doodlemania2: I'm sorry - only the author of this article, @tmmarshall, can sign off on your changes. But we do have an exception process - if you are on the Microsoft content or product team for this product area, you can ask the PR review team to review and merge it by sending mail to the techdocprs alias.


Card Re-design for Template Marketplace

The existing card design for the Template Marketplace/ Scaffodler Page/Create Page is text-rich and not intuitive.

Feature Suggestions
It would be great if we enhance the Card design with the following improvements:

[ ] Add images to the card by referencing path or absolute URL - must have a decent fallback/default image
[ ] Ability to showcase user-docs for the Template which we can already associate with a catalog of kind: Template

Although I am no designer - have a few ideas:

Context
Visuals are always good for better understanding and quick lookups.
Backstage Plugin page is a prime example of this:

And docs are necessary for improving self-service so that users can consume the templates without any support needed.
cc/ @katz95

Hey :wave: Thanks for this, Kat is unfortunately no longer working on Backstage, but we're in the process of spinning up a team to deal with some of this ux and design work. In the meantime I think we can use our best judgement and discuss more in the PR's. It might be worth bringing to your attention that I did some redesigning of the template cards in the /create/next version of the scaffolder, so they look a little different. Could be worth bringing some of these concepts to
those new cards too.

Incredible, I've seen a few PRs by you around Scaffolder next but although we're on the latest Backstage version I see a white page on create/next - can you please link docs/link to PR I can use to play around.
Cheers,

Yeah you'll need to include the new route in your app manually for now, although I'm probably going to change that when it's actually fully working so that you can enable it using a feature flag. It's still all under heavy development, But the form part, and review step is done, just got to do the ongoing tasks part for now, and then some other bits to tidy up.
If you check out the packages/app/src/App.tsx and check out the create/next part you should be able to see it in the main repo.

@benjdlambert: another thought on this - alongside adding images and linking TechDocs.
Would it also make sense to hide the tags from the front?

We can still use tags for filtering and searching but not showcase them on the card - it will look much cleaner and more concise.


chore(deps): update Go to 1.23

Testing the waters, as there have been reports about some breaking changes in standard libraries.

I think this is good to go for now, one thing we should keep in mind ourselves is that Go 1.23 continued to enrich the standard libraries (https://go.dev/doc/go1.23#library), with more iterator utilities for slices and maps.


Getting 500 status while changing the initial password

Describe the Bug
Similar to https://github.com/umami-software/umami/issues/1712 but I already added the mentioned ?pgbouncer to the URL.
Using netlify and supabase.
DATABASE_URL=postgres://postgres:PASSWORD@db.DATABASE.supabase.co:6543/postgres?pgbouncer=true
with PASSWORD and DATABASE using the proper values.
Result is a red window:

Error is 500.
HTML basically is

500

Internal Server Error

Edit: that was the port for pooling (6543). I also tried the normal one (5432) but no difference.
Edit2: password is only letters and numbers, no special chars.
Edit3: built locally with yarn build and yarn start it works (I can log in and create sites), so the DB is reachable.
Database
PostgreSQL @ supabase
Relevant log output
No response
Which browser are you using? (if relevant)
No response
How are you deploying your application? (if relevant)
No response

It works now.
I'm not sure what I made differently. I was using the one-button-deploy and that didn't work before but now it does.


[CHALLENGE SUBMISSION]  - Challenge 9

Please provide the following information for your submission:
What is your name? (First, Last)
Pawel Haracz
Where is your GitHub Repo ?(With your challenge solution)
https://github.com/PawelHaracz/25daysofserverless/tree/master/Day9
What Challenge is this for? (Challenge number between 1 and 25)
9
(Optional) Anything else we should know? e.g., language used, location, blog post?
C#, Octokit

From all of us on the Cloud Advocacy team at Microsoft, thank you @PawelHaracz for creating this issue!
Have a Happy Holiday season!

Thanks - Great example of using c# and azure functions!

We checked out your repository. We're thrilled to say your solution is now listed in our Hall of Fame
Thank you for your contributions!
This issue is now resolved! 🎉


VPL node names

The node names do not correspond to the VPL nodes when added. Add _1... etc to the node names from the start.

Also, when the nodes are originally added, the color picker is black by default and changes once you move them around.

node color picker and name is not prepared when the node be added and rendered.

Closed


979 multiple secretary per fap

Closes: https://github.com/UserOfficeProject/user-office-project-issue-tracker/issues/979
Description
Added the ability to have multiple secretaries per FAP. Also fixed the FAP meeting tests not running (sorry about that one)
Motivation and Context

How Has This Been Tested
Manually and E2E tests
Fixes

Changes

Added new table fap_secretaries and migrate old FAPS to new table
Added ablity to see and add multiple Secretaries in frontend

Depends on

Tests included/Docs Updated?

[ ] I have added tests to cover my changes.
[ ] All relevant doc has been updated

I kicked off the failing E2E test check a couple times when reviewing and it failed each time, I guess something broke in the latest merge?

I kicked off the failing E2E test check a couple times when reviewing and it failed each time, I guess something broke in the latest merge?

I'll have a look

Turns out i had not pushed this change up but had it on local: https://github.com/UserOfficeProject/mock-uows/pull/13

Didn't read all your comment lol, I went ahead and fix them here


Proposal: Make states deterministic

This is a spin off from #378, there was some discussion on it there, most notable @IanBellomy's lengthy reply.

We've decided to decouple the two issues and will continue the discussion here.

In the previous state API the order state changes occurred influenced the resulting position of the layer. Consider the following example:
background = new BackgroundLayer
layer = new Layer

layer.states.add
	right:
		x: Align.right
	bottom:
		y: Align.bottom
	left:
		x: Align.left
	top:
		y: Align.top

background.onClick ->
	layer.states.next()

(Also available here: http://share.framerjs.com/ff6vwjpn0wet/)
Because not all states define all properties, you can end up with some in-between state (try clicking quickly in the example). Therefor we would like to make states deterministic. That is: every state defines every property. If you omit a property during the definition of the state, we use the initial state as the default value for that property.
Examples of this can be found here: http://share.framerjs.com/kthdx2kmp00m/
The red layer shows deterministic states, but all derived from the initial states, this layer will always end up in one of the corners, but never reach the bottom right corner
The blue layer has deterministic states, and defines the x and y for every state, resulting in the intended behaviour.

Just a thought, not sure if it's going somewhere: What if we don't make states themselves deterministic, but store the order in which they are applied, so we can still recreate the resulting state?
Possible problems I can see with this:

Switching states mid-animation
Properties being edited outside of states (like as the result of a drag)

On making things better, plz don't overlook the default state (for currently that one gets created the moment the first custom state gets added, the default state's props being set to whatever values the properties are set to at that exact moment).
Now back to the swimming pool ;-)

Thanks! We're going to add an initial state that is exactly for that purpose. It will be created during construction of the layer

I think that makes a lot of sense and it's exactly what I would expect.
On Fri, Jul 22, 2016 at 3:26 AM Niels van Hoorn<EMAIL_ADDRESS>wrote:

Just a thought, not sure if it's going somewhere: What if we don't make
states themselves deterministic, but store the order in which they are
applied, so we can still recreate the resulting state?
Possible problems I can see with this:

Switching states mid-animation
Properties being edited outside of states (like as the result of a
drag)

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/koenbok/Framer/issues/384#issuecomment-234484387, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AACbYupOyd3bkyVXb0tpSkd2nsKWVk3Iks5qYH60gaJpZM4JSiuS
.

If supporting comments is a priority, I wonder if there's much wiggle room. Entirely deterministic states aren't a huge drag really, so long as there's work arounds (like nested layers).

What if we don't make states themselves deterministic, but store the order in which they are applied, so we can still recreate the resulting state?

This sounds interesting. I may be in over my head at this point though; This smells like a trip into state-machine theory.
If I understand your proposal right, switching to a state would be similar to an animation call where a state's data serves as the target, e.g.
layer.animate(properties:stateObject)

Handily, this allows expressive multi-dimensional state spaces:
box = new Layer
box.states =
	selected:
		scale:1.5
	active:
		opacity:1
	inactive:
		opacity:0.5

box.setState "active"
box.setState "selected"

The first catch is that nextState() and previousState() are out the window. (Unless states have a group property or similar?)
The second catch is that there's no singular current state. Some additional methods may be necessary:
box.isInState(STATE_NAME) # returns Boolean
box.getCurrentStateValues() # returns object containing the combined properties of the state history.

 You can't just do an indexOf(STATE_NAME) on the history. At some point one state will (or should) 'overwrite' another.
For example, if the history looks like this:
["active","inactive","selected"]

The layer should be in states selected and inactive, but not active. I suspect that trying to infer this from state properties could result in ambiguous or undesirable behavior.
box = new Layer
box.states =
	selected:
		scale:1.5
	active:
		opacity:1
	inactive:
		opacity:0.5
	hidden:
		scale:0

box.setState "active"
box.setState "selected"
box.setState "hidden"	# This would overwrites the 'inactive' state.

Lastly, there's this situation:
box = new Layer
box.states =
	selected:
		scale:1.5
	active:
		opacity:1
	inactive:
		opacity:0.5
	hidden:
		scale:0
	revealed:
		scale:"Not 0? Depends on whether active of inactive?"

This last example almost begs a style sheet approach.
These are pretty common use cases to me, but I'm not sure what your user base is up to, or what kinds of thinks you'd like to 'encourage' people to build...


iface: fix outdated docs on Interface::new

The methods linked in the docs don't exist anymore.
Also I believe with #745 neighbor_cache and hardware_address are not optional anymore and thus a panic can not happen?

Thank you, you are right! However, there can still be a panic when the medium of the hardware address does not match the address of the device.
https://github.com/smoltcp-rs/smoltcp/blob/81fbe9194743c62fbe98ca1de401c15c322e3e40/src/iface/interface/mod.rs#L470-L474
Could you maybe add this information to the documentation?

Thank you, you are right! However, there can still be a panic when the medium of the hardware address does not match the address of the device.
https://github.com/smoltcp-rs/smoltcp/blob/81fbe9194743c62fbe98ca1de401c15c322e3e40/src/iface/interface/mod.rs#L470-L474
Could you maybe add this information to the documentation?

:+1: Done. Feel free to nitpick my wording.

LGTM, thanks!


attach mount is not valid

[Enter feedback here]
The option mount= does not work on my machine. It simply responds with:
Microsoft DiskPart version 10.0.22000.1

VDISK       - Attaches a virtual disk file.

and not attaching commences. Is this by design?
Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: d6ac6c7b-22cb-1094-ceca-8be11bfc9558
Version Independent ID: 6f7aa81a-8cc7-2a5b-0e89-059c8fbb14a5
Content: Assign a mount point folder path to a drive.
Content Source: WindowsServerDocs/storage/disk-management/assign-a-mount-point-folder-path-to-a-drive.md
Product: windows-server
Technology: storage
GitHub Login: @JasonGerend
Microsoft Alias: jgerend

Never mind


Allow parsing image from raw bitmap data

Description
I'd like a way to programmatically generate PNGs inside typst from raw pixel values.
While this would technically already be possible using https://typst.app/docs/reference/visualize/image/#definitions-decode it would either 1) involve a plugin or 2) generating a PNG string in pure typst
Use Case
One good example of a place where this would be useful is for the heatmap feature in cetz
https://github.com/johannes-wolf/cetz/pull/295
This has very poor performance, since it's literally drawing rectangles for each "pixel".

I think this should be implemented using a function image.bitmap(..colors), that takes an array of colors, a width and a height. Checks that the length of colors is width * height (or generated an error) and produces an images. The colors would be of the built-in color type that way we stay nice and consistent with the rest of the API. Internally it can then be converted into a RGBA<u8> or something like that.

Note: I'm working on this now.

I haven't worked on this issue actively enough to warrant still being assigned to it. I still do want to work on it in the future, but I definitely don't want to halt progress on this issue by telling potential contributors that they should look for a different thing to work on.

I fear that image.bitmap(..colors) would both be slow and not super useful if you want to generate the pixels via a WASM plugin. Something to provide RGBA bytes directly would be more efficient, though designed for a bit different use case I guess. There'd also be the question of what's up with non-RGBA.

I fear that image.bitmap(..colors) would both be slow and not super useful if you want to generate the pixels via a WASM plugin. Something to provide RGBA bytes directly would be more efficient, though designed for a bit different use case I guess. There'd also be the question of what's up with non-RGBA.

I think both would be useful depending on what the user wants to do

I am again working on this issue and this time I have something to show for it.
I intend to publish a PR very soon, perhaps tomorrow, but we'll see.
Said PR will only contain functionality for converting bytes to an image, no color array for now in order to get the base functionality out the door at least.


ProtectedClassMemberSniff

It looks like the following Pull request 84192d436966a9f93810d9269672b59c775d48bd had to fix
not a typo but change a sniff to at least  PrivateClassMemberSniff like it is in MEQP1 standard.
But in general what is the nature of the following sniffs? Why using of private/protected members is a bad practice?

@martinboy, this sniff is correct, it warns Magento 2 developers that all nop-public methods and properties should be private. Please, follow here for the detailed explanation and related links.

#7


ZEVA Update ZEVA System for Class 2b Vehicles, Adjust GVWR Limits

Describe the task
Update the ZEVA system to capture Class 2b vehicles by including vehicles with a GVWR of 4,536 kg or less, effective October 1, 2024. Update the existing warning system to reflect the new GVWR limit of 4,536 kg, replacing the current limit of 3,856 kg. Implement a flagging system to identify vehicles with a GVWR above 3,856 kg but below 4,536 kg as Class 2b on the weight line in the system. Additionally, update the upload feature's wording to ensure all required documents, including proof of range, can be included, as Class 2b vehicles will not have a posted range. When sending a comment back to Vehicle Suppliers from the Government, we need to ensure that the commentator’s name is not displayed. Currently, the comment includes the full name of the commentator, the date, and the comment description. It should only include the comment title, date, and description.
Purpose
This task is to include the classification of Class 2b vehicles in the ZEVA System, aligning with regulatory changes. The flagging system aids suppliers and IDIR users by identifying vehicles that fall within the specified GVWR range for Class 2b. The warning system will continue to alert suppliers if a vehicle's GVWR exceeds 4,536 kg.
Mock Up
Acceptance Criteria

[ ] Update the ZEVA system's GVWR limit from 3,856 kg to 4,536 kg.
[ ] Create a flagging system for vehicles with a GVWR between 3,856 kg and 4,536 kg, marking them as Class 2b on the weight line.
[ ] Update the upload feature to accommodate all required documents, including proof of range for Class 2b vehicles.

Additional context

The current GVWR limit is 3,856 kg and will be updated to 4,536 kg to include Class 2b vehicles.
This change aligns with regulatory updates effective October 1, 2024.
The upload feature's wording update is necessary to include proof of range for Class 2b vehicles, which might not have a posted range.

This is most likely a new ticket and I will try to create one

[ ] Update the information provided in a comment from the Government back to the vehicle suppliers to ensure that the commentator’s name is not displayed

@shayjeff I just wanted to confirm that "2B" is not a new "vehicle class" as defined in the ZEV Act right? We still have exactly one "vehicle class", and that's the "reportable vehicle class"? We're simply expanding our only vehicle class to include both LDV and 2B vehicles? I'm asking because I'm concerned about section 12 of the Act (offsetting credits and debits), which seems to say that a credit may offset a debit only if both the credit and the debit are associated with the same vehicle class. So if we had 2 distinct vehicle classes, then there could be a lot more work we need to do. Thanks!

@tim738745 that is correct it's not a new class. I just received clarification from the BA and they only want a 2B flag on the idir side and not the BCeId side.

[x] Update the ZEVA system's GVWR limit from 3,856 kg to 4,536 kg.
[ ] Create a flagging system for vehicles with a GVWR between 3,856 kg and 4,536 kg, marking them as Class 2b on the weight line.
[x] Update the upload feature to accommodate all required documents, including proof of range for Class 2b vehicles.

[x] Update the ZEVA system's GVWR limit from 3,856 kg to 4,536 kg.
[x] Create a flagging system for vehicles with a GVWR between 3,856 kg and 4,536 kg,
[ ] marking them as Class 2b on the weight line.

[x]  marking them as Class 2b on the weight line.


Create a Index::open_directory(...) function

Right now, one can open a MMapDirectory from a path, but we really should have a method that works for any directory.

Yes, I had to write/add another static function to index for opening the S3 directory type.


[Setup] Add SwiftType <meta> tags for each page

Description
SwiftType is already set up to crawl and index the developer site. That said, we should add some <meta> tags to help give a little bit of context for each page. The the docs site currently has this set up, and can be used for reference (see screenshot). We should be able to use <Helmet> for this stuff.
Helpful Links

SwiftType documentation

Screenshots

@zstix should we come up with a way that we want to add the meta tags to each side? or is there a way we can programmatically add them to the head by the use of helmet?

I think we can add these to each page via Helmet.
Perhaps the user can configure some of this stuff in the Gatsby theme, such as the type of page (docs, blog, dev site, etc). The rest we should already have access to in the dev site instance of helmet (the SEO component). I'm happy to work on this with ya after standup if you want.

@zstix yes please! I would love to pair on this


ENH - README Structure Reorganization

Summary
This PR reorganizes the structure of the README to be more user focused. This PR addresses a few issues I was seeing with customers:

Redundancy: A handful of concepts were explained multiple times increasing the overall reading burden for the user
Relevance: There were a few concepts/sections that weren't relevant, or top priority for the end user. These sections were moved so they're still accessible, but is located so that it only require reading if the user needs it.

I.e. Tokenize a single file is a section that just adds noise since it recommends users don't use it unless they have custom splits - as such, it's been moved to the advanced usage section.

Order: I adjusted the ordering of concepts here so that it follows the mental model of the standard customer.

Required input format? -> what is produced as output? ->  Tokenizer? -> max_seq_len -> Quickstart -> Customize from there

I believe this structure will be a lot more straightforward for customers to digest and get started with. It contains virtually all the same information, just re-ordered/re-structured a bit so it flows better. I have some customers that are willing to read and provide feedback as well. There will probably be some additional tweaks needing to be made here, but overall this should clear things up for the new users a bit.

Seriously looks good, the train test eval splits section is much cleaner.
Amazing job 🚀


Tenant Registration

Tenant Registration can involve 3 steps

Enter Personal Details
Enter Company Details
Payment Page
Finally, Success page should be displayed once the payment is successful.

This issue is same as merged issue #34 on Angular Boilerplate


Change htmlinfowindow on marker based on user action on button

Hi all & @wf9a5m75 ,
I have a situation where im creating  no. of markers and each marker has its infowindow (containing button for user action). Now based  on user action i want to change the infowindow button value and count value i.e a label in infowindow. When im calling my createinfowindow function again based on click of that button by user it executes the function with updated values from my backend server but then when i again click on the marker on the map it opens the previous infowindow containing previous values. As the marker is bound to that at the start.
Appreciate any advice/help to overcome this.

You have to do infoWindow.setContent() again.

The plugin does not take care of the contents at all.
I don't know how do you set the contents, such as HTML strings or DOM element, but you have to manage it by yourself.

https://github.com/mapsplugin/cordova-plugin-googlemaps/blob/multiple_maps/www/HtmlInfoWindow.js

i kind of tried that with using jQuery html property of that label but when i close and reopen that infowindow an earlier instance is loaded i.e having previous values due to on click bound to marker right?? I dont have the instance of the marker in which this button  was clicked to use the infowindow setcontent.
I am using a createwindow func to create window and its content is created as below
var html = 'Creator '+ value.Creator+
'+value.Required+''+
'Date '+value.data+
'Time '+value.time+

So when i click this true button it updates the db and based on response if success it should become false. So on next click of that marker the false button and its updated value should be loaded in the htmlinfowindow this is also executed in create window event but based on the values the true or false button part is loaded based on if else.

This is the very common mistakes for JS beginners.
I guess you write your code something like this:
data.forEach(function(markerOpts) {
   map.addMarker(markerOpts, function(marker) {
       marker.on(plugin.google.maps.event.MARKER_CLICK, function() {
           var htmlInfoWindow = new plugin.google.maps.HtmlInfoWindow();
           htmlInfoWindow.setContent("<button onclick='onButtonClick(" + markerOpts.myId + ")'>button</button>");
           htmlInfoWindow.open(marker);
       });
   });
});
function onButtonClick(myId) {

}

Write your code more smart:
var htmlInfoWindow = new plugin.google.maps.HtmlInfoWindow();

data.forEach(function(markerOpts) {
   map.addMarker(markerOpts, function(marker) {
       marker.on(plugin.google.maps.event.MARKER_CLICK, onMarkerClick);
   });
});

function onMarkerClick() {
  var marker = this;

  var myHtml = document.createElement("div");
  myHtml.innerHTML = "<button>button</button>";
  var button = myHtml.getElementsByTagName("button")[0];
  button.addEventListener("click", function() {

     dbUpdate({
        myId: marker.get("myId")
     }, function() {
        button.innerText = "clicked!");
        htmlInfoWindow.setContent(myHtml);
        htmlInfoWindow.open(marker);
     });

  });
  htmlInfoWindow.setContent(myHtml);
  htmlInfoWindow.open(marker);
}

And if i try to pass the marker instance when inside the callback function of addmarker by sending onclick=trueevent(marker) i am getting [object object] in the true event function. So not getting the instance of wother the infowindow or the marker.

onclick=trueevent(marker)

Did you consider why you get [object object] ?

ping

Since this is not bug, I close this issue thread. But you can still reply to this thread.
If you reply with enough information, I reply to your comment.


Change Layout

TAHub Displays Two Separate Lists via Tabs (Students & Consultations)
Layout of TAHub has also changed

GUI

Don't Merge Yet. I've yet to add Tab CSS.

lgtm


Support for v9 closing release v9.280

v9.280 is out, which should be the final v9 release
https://foundryvtt.com/releases/9.280

Thanks for the ping..  I totally missed the announcement.  I'll start a build...


ecosystem wallet refactor (part 2)

Problem solved
Short description of the bug fixed or feature added

PR-Codex overview
This PR focuses on refactoring the thirdweb wallet implementation, particularly enhancing the in-app wallet functionalities by replacing the getAuthToken method with a new localStorage approach, and modifying wallet creation and ecosystem handling.
Detailed summary

Deleted get-auth-token.ts and ecosystem-core.ts.
Replaced getAuthToken calls with localStorage.getAuthCookie() in multiple files.
Updated createWallet to handle EcosystemWalletId and inApp wallets more effectively.
Refactored createInAppWallet to include ecosystem handling.
Adjusted the InAppWebConnector to utilize local storage for authentication.

✨ Ask PR-Codex anything about this PR by commenting with /codex {your question}

[!WARNING]
This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

#4780  👈
#4755
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @joaquim-verges and the rest of your teammates on  Graphite


peripheral_hr on VEGABoard disconnects from central_hr after BT_CONN_PARAM_UPDATE_TIMEOUT

Describe the bug
When running peripheral_hr on a VEGABoard, connected to a nrf52 central_hr, after 5s, the peripheral disconnects with error code 0x08 (timeout).
To Reproduce
Steps to reproduce the behavior:

cmake -Bbuild_vega -G"Eclipse CDT4 - Ninja" -DBOARD=rv32m1_vega_ri5cy -DCMAKE_REQUIRED_FLAGS=-Wl,-dT=/dev/null /work/zephyr/zephyr-source/samples/bluetooth/peripheral_hr
ninja -Cbuild_vega
deploy on VEGA Board

Expected behavior
The peripheral_hr is able to communicate endlessly with the central_hr
Impact
The VEGA SW LL disconnects after 5s (which is equal to BT_CONN_PARAM_UPDATE_TIMEOUT), and reconnects, which is a showstopper (unstable)
Screenshots or console output
central_hr:
***** Booting Zephyr OS build v2.1.0-rc1-151-g8125da91eb3c *****
Bluetooth initialized
Scanning successfully started
[DEVICE]: ed:8f:dd:77:f0:7a (random), AD evt type 0, AD data len 11, RSSI -21
[AD]: 1 data_len 1
[AD]: 3 data_len 6
Connected: ed:8f:dd:77:f0:7a (random)
[ATTRIBUTE] handle 25
[ATTRIBUTE] handle 26
[ATTRIBUTE] handle 28
[SUBSCRIBED]
[NOTIFICATION] data 0x200065f7 length 2
[00:00:00.066,000]  bt_hci_core: Vendor HCI extensions not available
[00:00:00.066,000]  bt_hci_core: Identity: 00:60:37:07:6a:3e (public)
[00:00:00.066,000]  bt_hci_core: HCI: version 4.2 (0x08) revision 0x000b, manufacturer 0x0025
[00:00:00.067,000]  bt_hci_core: LMP: version 4.2 (0x08) subver 0x0123
[NOTIFICATION] data 0x200065f7 length 2
[NOTIFICATION] data 0x200065f7 length 2
[NOTIFICATION] data 0x200065f7 length 2
[NOTIFICATION] data 0x200065f7 length 2
[UNSUBSCRIBED]
Disconnected: ed:8f:dd:77:f0:7a (random) (reason 0x08)
[DEVICE]: ed:8f:dd:77:f0:7a (random), AD evt type 0, AD data len 11, RSSI -21
[AD]: 1 data_len 1
[AD]: 3 data_len 6
Connected: ed:8f:dd:77:f0:7a (random)
[ATTRIBUTE] handle 25
[ATTRIBUTE] handle 26
[ATTRIBUTE] handle 28
[SUBSCRIBED]
[NOTIFICATION] data 0x200065f7 length 2
[NOTIFICATION] data 0x200065f7 length 2
[NOTIFICATION] data 0x200065f7 length 2
[NOTIFICATION] data 0x200065f7 length 2
[NOTIFICATION] data 0x200065f7 length 2
[UNSUBSCRIBED]
Disconnected: ed:8f:dd:77:f0:7a (random) (reason 0x08)
peripheral:
***** Booting Zephyr OS build v2.1.0-rc1-171-g472efcd0f881 *****
Bluetooth initialized
Advertising successfully started
[00:00:00.020,000]  bt_hci_core: HW Platform: reserved (0x0000)
[00:00:00.020,000]  bt_hci_core: HW Variant: unknown (0x0000)
[00:00:00.020,000]  bt_hci_core: Firmware: Standard Bluetooth controller (0x00) Version 2.1 Build 0
[00:00:00.030,000]  bt_hci_core: No static addresses stored in controller
[00:00:00.180,000]  bt_hci_core: Identity: ed:8f:dd:77:f0:7a (random)
[00:00:00.180,000]  bt_hci_core: HCI: version 5.1 (0x0a) revision 0x0000, manufacturer 0x05f1
[00:00:00.180,000]  bt_hci_core: LMP: version 5.1 (0x0a) subver 0xffff
Connected
[00:00:06.890,000]  hrs: HRS notifications enabled
Disconnected (reason 0x08)
Connected
[00:00:16.040,000]  hrs: HRS notifications disabled
[00:00:16.390,000]  hrs: HRS notifications enabled
Disconnected (reason 0x08)
Connected
[00:00:25.550,000]  hrs: HRS notifications disabled
[00:00:25.900,000]  hrs: HRS notifications enabled
Disconnected (reason 0x08)
Connected
[00:00:35.060,000]  hrs: HRS notifications disabled
[00:00:35.410,000]  hrs: HRS notifications enabled
Environment (please complete the following information):

OS: Linux
Toolchain: VEGA OpenISA official toolchain
head/master

Reverting d1d603afc3558f31a4728d70179d1cb5d74890c5 Bluetooth: controller: split: Fix conn update to be cacheable seems to 'fix' it.

Here's a capture of the packet exchanges. At 339, you can see the start of the connection update procedure. Then the disconnection happens.
conn_update_fail.zip

@alexandru-porosanu-nxp You said it was 5 seconds. But from the Sniffer Capture the slave disappears at the Connection Update Instant.
@cvinayak From the sniffer log it looks like the master is sending outside of the TX transmit window for the connection parameter update.
The master transmits 34690 us after the slave, backtracked using empty packets. that is:
34689 + 150 + 80 + 80 = 34999
The tx windows should start at 24 * 1250 + (1 + 4) * 1259 = 36295
Old conn interval = 24
TX window offset = 4
Seems to me the master transmitted too early so the slave fails to sync up with it.

Connection update is done/initiated in ull_conn_llcp() called from ull_slave_ticker_cb().
d1d603afc3558f31a4728d70179d1cb5d74890c5 breaks this somehow.
Still debugging

@George-Stefan Can you check if the master is sending connetion update because of the L2CAP conn param update request? Or if it initiated it itself? Or possibly both?
Or is it possible that 24 * 1250 + (1 + 4) * 1250 has turned into 24 * 1250 + 4 * 1250 instead?
My suspicion for that is that there is state confusion between connection parameter update procedure, and connection parameter request procedure.

@George-Stefan Can you check if the master is sending connetion update because of the L2CAP conn param update request?
Yes, the slave (Vega board) sends BT_L2CAP_CONN_PARAM_REQ.

Same scenario with and without  d1d603afc3558f31a4728d70179d1cb5d74890c5:

the  master sends the same conn update params
but in the  1st scenario the slave misses all the connection evens after instant

My suspicion for that is that there is state confusion between connection parameter update procedure, and connection parameter request procedure.

It's disabled.
BT_CTLR_CONN_PARAM_REQ_SUPPORT(=n)

	**if (((conn->llcp_req - conn->llcp_ack) & 0x03) == 0x02) {**
		switch (conn->llcp_type) {
		case LLCP_CONN_UPD:
		{
			if (event_conn_upd_prep(conn, lazy,
						ticks_at_expire) == 0) {
				return -ECANCELED;
			}
		}

-	conn->llcp_type = LLCP_CONN_UPD;
-	conn->llcp_ack -= 2U;

Yes I saw that as well. It has been changed to -- instead.
@cvinayak Should this  llcp_cu.ack be -= 2U? I think there was other places that had this change as well. I think it is fair to say that something is not right in the connection param update procedure.

conn->llcp_cu.ack--; was added but conn->llcp_cu.ack isn't checked for in  ull_conn_llcp() when CONFIG_BT_CTLR_CONN_PARAM_REQ is disabled

@joerchan , I haven't been really clear in my statement: 5s after the connection is established, the slave disconnects; 5s being the conn update interval as well. Increasing this to 6s will lead to a disconnection 6s after the establishment of the connection. Sorry for not being more specific.

conn->llcp_cu.ack--; was added in conn_upd_recv() but conn->llcp_cu.ack isn't checked for in ull_conn_llcp() when CONFIG_BT_CTLR_CONN_PARAM_REQ is disabled
I believe that the bug will reproduce on a Nordic board as well when CONFIG_BT_CTLR_CONN_PARAM_REQ and CONFIG_BT_CTLR_PHY are disabled

I've disabled all the features that I could for the controller side and I've run  on the nrf52 we've got here:
CONFIG_BT_CTLR_LE_ENC is not set
CONFIG_BT_CTLR_CONN_PARAM_REQ is not set
CONFIG_BT_CTLR_SLAVE_FEAT_REQ is not set
CONFIG_BT_CTLR_PRIVACY is not set
CONFIG_BT_CTLR_CHAN_SEL_2 is not set
CONFIG_BT_CTLR_ADV_EXT is not set
CONFIG_BT_CTLR_DTM_HCI is not set
CONFIG_BT_CTLR_ADVANCED_FEATURES is not set
the result is an identical behavior with the VEGA Board: after conn update interval, the connection gets broken. I've attached the config file that I used. I'll try to slowly add one by one till I can pinpoint which are the ones that make/break the behavior.

config.zip

I believe that the bug will reproduce on a Nordic board as well when CONFIG_BT_CTLR_CONN_PARAM_REQ and CONFIG_BT_CTLR_PHY are disabled

@alexandru-porosanu-nxp  see my commen

I believe that the bug will reproduce on a Nordic board as well when CONFIG_BT_CTLR_CONN_PARAM_REQ and CONFIG_BT_CTLR_PHY are disabled

@alexandru-porosanu-nxp see my comment

Yep, running now w/both CONFIG_BT_CTLR_CONN_PARAM_REQ  and CONFIG_BT_CTLR_PHY disabled and see what happens. I've already run with CONFIG_BT_CTLR_CONN_PARAM_REQ=n but the issue did not appear.

Another interesting fact: enabling CONFIG_BT_CTLR_SLAVE_FEAT_REQ_SUPPORT and CONFIG_BT_CTLR_SLAVE_FEAT_REQ on VEGA leads to the issue disappearing: there is no more disconnection after the connection update interval

-	conn->llcp_type = LLCP_CONN_UPD;
-	conn->llcp_ack -= 2U;

Yes I saw that as well. It has been changed to -- instead.
@cvinayak Should this llcp_cu.ack be -= 2U? I think there was other places that had this change as well. I think it is fair to say that something is not right in the connection param update procedure.

@cvinayak , @joerchan  correct me if I'm wrong, but isn't the whole concept of 'cachable conn update' to allow more than 1 LLCP PDUs to be non-ack'ed (and hence the -2)?

@alexandru-porosanu-nxp the differential value (llcp_req, llcp_ack) is used as guard on the llcp context wherein the difference have the following meaning:

Thread is modifying the context of the LLCP. Ex: Populating parameters before ISR processes it.
Thread has commits the values and ISR can start processing the LLCP.
ISR has modified the LLCP context while thread requested to modify. The thread will revert its request.

This design was necessary earlier before making control procedures cacheable i.e. to cache local initiated control procedure when another prior local initiated procedure or a remote procedure is in progress.
The channel map procedure has not been made cacheable, which is the only one currently modifying llcp_req value in thread. This the only one checking using the guard design. Refer to ull_conn_llcp_req

@cvinayak The bug comes from the fact that in ull_conn_llcp()
		/* check if connection update procedure is requested */
		} else if (conn->llcp_cu.ack != conn->llcp_cu.req) {
			/* switch to LLCP_CONN_UPD state machine */
			conn->llcp_type = LLCP_CONN_UPD;
			conn->llcp_ack -= 2U;

is under
#if defined(CONFIG_BT_CTLR_CONN_PARAM_REQ) || defined(CONFIG_BT_CTLR_PHY)
which are not defined for Vega

@George-Stefan yes, I just discovered it myself... will you send a PR? or should I?

@cvinayak let me do it

@alexandru-porosanu-nxp the differential value (llcp_req, llcp_ack) is used as guard on the llcp context wherein the difference have the following meaning:

Thread is modifying the context of the LLCP. Ex: Populating parameters before ISR processes it.
Thread has commits the values and ISR can start processing the LLCP.
ISR has modified the LLCP context while thread requested to modify. The thread will revert its request.

This design was necessary earlier before making control procedures cacheable i.e. to cache local initiated control procedure when another prior local initiated procedure or a remote procedure is in progress.
The channel map procedure has not been made cacheable, which is the only one currently modifying llcp_req value in thread. This the only one checking using the guard design. Refer to ull_conn_llcp_req

Right, it now makes more sense. Thanks for your response @cvinayak

Another interesting fact: enabling CONFIG_BT_CTLR_SLAVE_FEAT_REQ_SUPPORT and CONFIG_BT_CTLR_SLAVE_FEAT_REQ on VEGA leads to the issue disappearing: there is no more disconnection after the connection update interval

Doing this will prevent BT_L2CAP_CONN_PARAM_REQ being sent by the slave

@alexandru-porosanu-nxp can you update the title of the issue to be more descritiptive of what the actual issue was. Nice to have for the history.

@alexandru-porosanu-nxp can you update the title of the issue to be more descritiptive of what the actual issue was. Nice to have for the history.

Sure, I'm thinking to change the tile to "Fix connection state machine if !(BT_CTLR_CONN_PARAM_REQ) || BT_CTLR_PHY)". Does it sound OK?


Do not render untill all texture resources are available

Fixes #814

Does this trigger a render request once all textures are available?

Hmm.. good point. I do not think so. Will look.

@hjanetzek Updated.

Rebased and Updated. Ultra small code change here!


Should loadUserProfile assert the 'sub' claim's JavaScript datatype is identical?

I noticed that the initial JWT id_token during the Implicit Authentication process has sub: "123" (i.e. as a string), but when I call oauthService.loadUserProfile() the server response has sub: 123 (as a Number). (The fact they're alternately served as a string or number is an issue in my IdentityServer implementation that I'll fix myself.)
This library asserts the sub claim in the existingClaims and the newly-downloaded UserInfo object match - however it uses this logic:
if (
    this.oidc &&
     (!existingClaims['sub'] || info.sub !== existingClaims['sub'])
)

Couldn't use the more forgiving != operator instead of !==?

Don't think that makes sense, as 123 is a different sub from "123". If you ever encounter this problem it is:

at best a weird mix of numeric and string subs
most probably a bug you want to uncover asap
at worst a security breach

I don't have the RFC at hand, but I do assume it requires a strict equality.

Yes, you're right - and it's good it is strict because it made me catch the bug. Closing this.


Production/Store version broken on Firefox on Linux

The extension broke sometime yesterday, I believe. None of the features appear to be working. Here is a screenshot of what I see. This is after refreshing the page after unchecking the options. I am on using Firefox 89.0.2 on Fedora KDE.

Thank you for notifying me! I reverted a change (starting content script on document_start vs document_idle) which should fix it. It will be published to the store within a day.

Wonderful, thank you!


What is the signature_name of provided models?

What is the signature_name for these pretrained models? I've figured out that the name is facenet. Not sure about the signature_name though.
Used the following code to extract signature_name. Source
 with tf.Session() as sess:
        print (sess)
        new_saver = tf.train.import_meta_graph('/home/ml2/maruf/tf_server/serving/facenet-export/001575852/export.meta')
        graph = tf.get_default_graph()
        print (graph.get_all_collection_keys())
        pb = graph.get_collection("serving_signatures")
        print (pb)
        signatures = manifest_pb2.Signatures()
        print (signatures)

<tensorflow.python.client.session.Session object at 0x7f6f80411110>
[u'cond_context', u'trainable_variables', u'variables', u'losses', u'regularization_losses', u'train_op', u'queue_runners', u'moving_average_variables', u'summaries', u'model_variables']
[]

It seems, I am not using the correct API.
Any suggestion?

I don't have any experience with Tensorflow Serving but all the code for training the models are in the repo so based on that it should be possible to figure out.

Thanks


Thanks!

Thanks!
Originally posted by @gregvanl in https://github.com/microsoft/vscode-docs/pull/2747#issuecomment-500632408

Ok good


Docker-based development environment

NB: Don't merge this yet
PR for phase 1 of issue #1341, which includes the most basic docker services and git submodules for oae-rest and 3akai-ux.

Travis will keep failing until the latest PR for this in 3akai-ux has been merged I think?

You're right, I forgot to submit the PR for the frontend. It's here.


demogen: loading resnet models fails

After working-around a problem in example.py as described in previous issue I could load NIN models but not resnet models.  The error is below:
I0716 13:20:53.269759<PHONE_NUMBER>26944 saver.py:1280] Restoring parameters from data/demogen_models/RESNET_CIFAR10/resnet_wide_1.0x_batchnorm__decay_0.0_1/model.ckpt-150000
Traceback (most recent call last):
  File "/usr/lib64/python2.7/runpy.py", line 174, in _run_module_as_main
    "__main__", fname, loader, pkg_name)
  File "/usr/lib64/python2.7/runpy.py", line 72, in _run_code
    exec code in run_globals
  File "~/google-research/demogen/example.py", line 62, in <module>
    tf.app.run(main)
  File "~/.local/lib64/python2.7/site-packages/tensorflow/python/platform/app.py", line 40, in run
    _run(main=main, argv=argv, flags_parser=_parse_flags_tolerate_undef)
  File "~/.local/lib64/python2.7/site-packages/absl/app.py", line 300, in run
    _run_main(main, args)
  File "~/.local/lib64/python2.7/site-packages/absl/app.py", line 251, in _run_main
    sys.exit(main(argv))
  File "~/google-research/demogen/example.py", line 57, in main
    load_and_run(model_config, root_dir)
  File "~/google-research/demogen/example.py", line 44, in load_and_run
    sess.run(logits)
  File "~/.local/lib64/python2.7/site-packages/tensorflow/python/client/session.py", line 950, in run
    run_metadata_ptr)
  File "~/.local/lib64/python2.7/site-packages/tensorflow/python/client/session.py", line 1173, in _run
    feed_dict_tensor, options, run_metadata)
  File "~/.local/lib64/python2.7/site-packages/tensorflow/python/client/session.py", line 1350, in _do_run
    run_metadata)
  File "~/.local/lib64/python2.7/site-packages/tensorflow/python/client/session.py", line 1370, in _do_call
    raise type(e)(node_def, op, message)
tensorflow.python.framework.errors_impl.UnimplementedError: Generic conv implementation only supports NHWC tensor format for now.
         [[node resnet/conv2d/Conv2D (defined at /tmp/tmpdCZJAJ.py:12) ]]

Errors may have originated from an input operation.
Input Source operations connected to node resnet/conv2d/Conv2D:
 transpose (defined at demogen/data_util.py:79)
 resnet/conv2d/kernel/read (defined at demogen/models/resnet.py:136)

Original stack trace for u'resnet/conv2d/Conv2D':
  File "/usr/lib64/python2.7/runpy.py", line 174, in _run_module_as_main
    "__main__", fname, loader, pkg_name)
  File "/usr/lib64/python2.7/runpy.py", line 72, in _run_code
    exec code in run_globals
  File "~/google-research/demogen/example.py", line 62, in <module>
    tf.app.run(main)
  File "~/.local/lib64/python2.7/site-packages/tensorflow/python/platform/app.py", line 40, in run
    _run(main=main, argv=argv, flags_parser=_parse_flags_tolerate_undef)
  File "~/.local/lib64/python2.7/site-packages/absl/app.py", line 300, in run
    _run_main(main, args)
  File "~/.local/lib64/python2.7/site-packages/absl/app.py", line 251, in _run_main
    sys.exit(main(argv))
  File "~/google-research/demogen/example.py", line 57, in main
    load_and_run(model_config, root_dir)
  File "~/google-research/demogen/example.py", line 41, in load_and_run
    logits = model_fn(image, is_training=False)
  File "demogen/models/resnet.py", line 391, in __call__
    strides=self.conv_stride, data_format=self.data_format)
  File "demogen/models/resnet.py", line 136, in conv2d_fixed_padding
    data_format=data_format)
  File "~/.local/lib64/python2.7/site-packages/tensorflow/python/util/deprecation.py", line 324, in new_func
    return func(*args, **kwargs)
  File "~/.local/lib64/python2.7/site-packages/tensorflow/python/layers/convolutional.py", line 424, in conv2d
    return layer.apply(inputs)
  File "~/.local/lib64/python2.7/site-packages/tensorflow/python/keras/engine/base_layer.py", line 1479, in apply
    return self.__call__(inputs, *args, **kwargs)
  File "~/.local/lib64/python2.7/site-packages/tensorflow/python/layers/base.py", line 537, in __call__
    outputs = super(Layer, self).__call__(inputs, *args, **kwargs)
  File "~/.local/lib64/python2.7/site-packages/tensorflow/python/keras/engine/base_layer.py", line 634, in __call__
    outputs = call_fn(inputs, *args, **kwargs)
  File "~/.local/lib64/python2.7/site-packages/tensorflow/python/autograph/impl/api.py", line 146, in wrapper
    ), args, kwargs)
  File "~/.local/lib64/python2.7/site-packages/tensorflow/python/autograph/impl/api.py", line 450, in converted_call
    result = converted_f(*effective_args, **kwargs)
  File "/tmp/tmpdCZJAJ.py", line 12, in tf__call
    outputs = ag__.converted_call('_convolution_op', self, ag__.ConversionOptions(recursive=True, force_conversion=False, optional_features=(), internal_convert_user_code=True), (inputs, self.kernel), None)
  File "~/.local/lib64/python2.7/site-packages/tensorflow/python/autograph/impl/api.py", line 356, in converted_call
    return _call_unconverted(f, args, kwargs)
  File "~/.local/lib64/python2.7/site-packages/tensorflow/python/autograph/impl/api.py", line 255, in _call_unconverted
    return f(*args)
  File "~/.local/lib64/python2.7/site-packages/tensorflow/python/ops/nn_ops.py", line 1079, in __call__
    return self.conv_op(inp, filter)
  File "~/.local/lib64/python2.7/site-packages/tensorflow/python/ops/nn_ops.py", line 635, in __call__
    return self.call(inp, filter)
  File "~/.local/lib64/python2.7/site-packages/tensorflow/python/ops/nn_ops.py", line 234, in __call__
    name=self.name)
  File "~/.local/lib64/python2.7/site-packages/tensorflow/python/ops/nn_ops.py", line 1953, in conv2d
    name=name)
  File "~/.local/lib64/python2.7/site-packages/tensorflow/python/ops/gen_nn_ops.py", line 1071, in conv2d
    data_format=data_format, dilations=dilations, name=name)
  File "~/.local/lib64/python2.7/site-packages/tensorflow/python/framework/op_def_library.py", line 788, in _apply_op_helper
    op_def=op_def)
  File "~/.local/lib64/python2.7/site-packages/tensorflow/python/util/deprecation.py", line 507, in new_func
    return func(*args, **kwargs)
  File "~/.local/lib64/python2.7/site-packages/tensorflow/python/framework/ops.py", line 3616, in create_op
    op_def=op_def)
  File "~/.local/lib64/python2.7/site-packages/tensorflow/python/framework/ops.py", line 2005, in __init__
    self._traceback = tf_stack.extract_stack()

Hi @uricohen, thank you for using the code base!
By any chance you are running this on CPU? The ResNet I use is optimized for performance with channel first format but I think the NCHW format is only supported on GPU.

OK, solved after pip install tensorflow-gpu and properly installing the needed versions of CUDA, CuDNN.

Great! Can you close the issue if it has been properly addressed?

How can we run in CPU? I am using macbook and does not have GPU@yidingjiang


WKDownloadHelper not working some link pdf download

I test your sample project and change the link for the download pdf to
"https://file-examples.com/index.php/sample-documents-download/sample-pdf-download"
It's worked.
but I change the link
"https://www.energyabsolute.co.th/annual_report?lang=E"
It's don't work anymore. and no response. no error.
and I don't know what is wrong with it.
Thank you for your answer

Sorry I'm super busy so I couldn't check with my code, but what happens if you try to open directly one of the URLs of the page? For example https://www.energyabsolute.co.th/annual/an_ea_2019_E.pdf