Photon exception on client after disconnect event

Describe the bug
After getting disconnected from photon, the client sometimes develops an exception that fires every frame. This bug is a complement to bug Unity-Technologies/com.unity.multiplayer.mlapi#823. It isn't wrong that the client gets disconnected (although the timeout of only a few seconds is pretty aggressive). But it seems that the PhotonRealtimeTransport is in a bad state after the shutdown, and generates exceptions.
To Reproduce

Open the BossRoom demo in editor. Window->Photon Realtime->Highlight Server Settings.
Put in your own personal appid from photonengine.com
Start the game in a separate built client, select "Start", and then "Relay Host".
Start the game in editor, select "Join", "Relay Host", and the room name.
Once both host and client are in character select, pick character and enter the game.
Walk around with the joiner client and pick a fight with an imp (I think having some active network traffic is helpful in getting the exception).
Pull your network cable. Count to 5, then plug it back in.
Observe that sometimes (around 50% of the time), after you are returned to main menu, you get a continuous stream of exceptions from the PhotonRealtimeTransport

Actual outcome
An exception gets thrown every frame after a client gets disconnected from the Photon Relay Server.
Expected outcome
No exceptions are generated.
Screenshots
If applicable, add screenshots to help explain your problem.
Environment (please complete the following information):

OS: [e.g. Windows 10]
Unity Version: [e.g. 2019.1]
MLAPI Version: [e.g. v6.0.1]
MLAPI Commit: [e.g. https://github.com/Unity-Technologies/com.unity.multiplayer.mlapi/commit/c102935df1d7e0928283b48948fe96e5d96dd961]

Additional context
callstack of the Exception. m_Client is null, which is no surprise, since NetworkManager has already been Shutdown by this point.
Int32 MLAPI.Transports.PhotonRealtime.PhotonRealtimeTransport:get_CurrentMasterId ()+0x0 at C:\dev\com.unity.multiplayer.samples.coop\Library\PackageCache\com.mlapi.contrib.transport.photon-realtime@3f0350ae57\Runtime\PhotonRealtimeTransport.Matchmaking.cs:[15:34-15:115]	C#
Int32 MLAPI.Transports.PhotonRealtime.PhotonRealtimeTransport:GetPhotonRealtimeId (UInt64)+0xc at C:\dev\com.unity.multiplayer.samples.coop\Library\PackageCache\com.mlapi.contrib.transport.photon-realtime@3f0350ae57\Runtime\PhotonRealtimeTransport.cs:[472:17-472:40]	C#
Void MLAPI.Transports.PhotonRealtime.PhotonRealtimeTransport:RaisePhotonEvent (UInt64, Boolean, ArraySegment`1, Byte)+0xf at C:\dev\com.unity.multiplayer.samples.coop\Library\PackageCache\com.mlapi.contrib.transport.photon-realtime@3f0350ae57\Runtime\PhotonRealtimeTransport.cs:[245:13-245:87]	C#
Void MLAPI.Transports.PhotonRealtime.PhotonRealtimeTransport:FlushAllSendQueues ()+0x58 at C:\dev\com.unity.multiplayer.samples.coop\Library\PackageCache\com.mlapi.contrib.transport.photon-realtime@3f0350ae57\Runtime\PhotonRealtimeTransport.cs:[231:17-231:113]	C#

Void MLAPI.Transports.PhotonRealtime.PhotonRealtimeTransport:LateUpdate ()+0x2 at C:\dev\com.unity.multiplayer.samples.coop\Library\PackageCache\com.mlapi.contrib.transport.photon-realtime@3f0350ae57\Runtime\PhotonRealtimeTransport.cs:[114:13-114:34]	C#

This is the callstack showing the network shutdown the client gets, triggered by a Disconnect event from the Photon relay server.
Void MLAPI.NetworkManager:Shutdown ()+0x1 at C:\dev\com.unity.multiplayer.samples.coop\Library\PackageCache\com.unity.multiplayer.mlapi@3e3aef6aa0\Runtime\Core\NetworkManager.cs:[603:13-603:66]	C#
Void MLAPI.NetworkManager:StopClient ()+0x3d at C:\dev\com.unity.multiplayer.samples.coop\Library\PackageCache\com.unity.multiplayer.mlapi@3e3aef6aa0\Runtime\Core\NetworkManager.cs:[512:13-512:24]	C#
Void MLAPI.NetworkManager:HandleRawTransportPoll (NetworkEvent, UInt64, NetworkChannel, ArraySegment`1, Single)+0x182 at C:\dev\com.unity.multiplayer.samples.coop\Library\PackageCache\com.unity.multiplayer.mlapi@3e3aef6aa0\Runtime\Core\NetworkManager.cs:[895:25-895:38]	C#
Void MLAPI.Transports.NetworkTransport:InvokeOnTransportEvent (NetworkEvent, UInt64, NetworkChannel, ArraySegment`1, Single)+0x14 at C:\dev\com.unity.multiplayer.samples.coop\Library\PackageCache\com.unity.multiplayer.mlapi@3e3aef6aa0\Runtime\Transports\NetworkTransport.cs:[123:13-123:92]	C#

Void MLAPI.Transports.PhotonRealtime.PhotonRealtimeTransport:InvokeTransportEvent (NetworkEvent, UInt64, NetworkChannel, ArraySegment`1)+0x41 at C:\dev\com.unity.multiplayer.samples.coop\Library\PackageCache\com.mlapi.contrib.transport.photon-realtime@3f0350ae57\Runtime\PhotonRealtimeTransport.cs:[424:21-424:113]	C#
Void MLAPI.Transports.PhotonRealtime.PhotonRealtimeTransport:OnPlayerLeftRoom (Player)+0x3c at C:\dev\com.unity.multiplayer.samples.coop\Library\PackageCache\com.mlapi.contrib.transport.photon-realtime@3f0350ae57\Runtime\PhotonRealtimeTransport.Room.cs:[48:17-48:58]	C#
Void Photon.Realtime.InRoomCallbacksContainer:OnPlayerLeftRoom (Player)+0x22 at C:\dev\com.unity.multiplayer.samples.coop\Library\PackageCache\com.mlapi.contrib.transport.photon-realtime@3f0350ae57\Runtime\Photon\PhotonRealtime\Code\LoadBalancingClient.cs:[4184:17-4184:54]	C#
Void Photon.Realtime.LoadBalancingClient:OnEvent (EventData)+0x2d5 at C:\dev\com.unity.multiplayer.samples.coop\Library\PackageCache\com.mlapi.contrib.transport.photon-realtime@3f0350ae57\Runtime\Photon\PhotonRealtime\Code\LoadBalancingClient.cs:[3197:21-3197:84]	C#
Boolean ExitGames.Client.Photon.PeerBase:DeserializeMessageAndCallback (StreamBuffer)+0x2e9 at :-1	C#
Boolean ExitGames.Client.Photon.EnetPeer:DispatchIncomingCommands ()+0x3b6 at :-1	C#
Boolean ExitGames.Client.Photon.PhotonPeer:DispatchIncomingCommands ()+0x3a at :-1	C#
Void MLAPI.Transports.PhotonRealtime.PhotonRealtimeTransport:Update ()+0x1c at C:\dev\com.unity.multiplayer.samples.coop\Library\PackageCache\com.mlapi.contrib.transport.photon-realtime@3f0350ae57\Runtime\PhotonRealtimeTransport.cs:[105:24-105:86]	C#

Thanks for the report. Easy to repro. Fix is in a pr. Same core issue as #69 .

Fixed by #73


Generate a new S3 bucket for deep zooming

Decide on bucket location and naming convention
Adjust terraform/infra to generate new bucket
Make sure permissions are in line with required application access

DoD:
Bucket is generated with the correct permission

reference: https://github.com/chanzuckerberg/single-cell-explorer/pull/879

@kaloster I think this is done? Thank you! CC: @ebezzi

I think we just need to create the S3 bucket for prod now IIRC

@tihuan The bucket has been created on all 3 envs. We can close this ticket.

Really appreciate your help, Emanuele 😍🙏 Closing!


Problem with $interval( ... ) when phone not plugged to a computer.

using a timer to trigger stuff at a regular interval seems to work consistently while the phone is plugged to a computer. (to debug, monitor, etc... even when the phone locks and screen goes dark - or the app not longer in foreground, works fine)
But if the phone is not plugged to a computer, let by itself, the triggers do not happen consistently. only the first few. Then it skips, or does not trigger for long periods of time. and triggers again from time to time. inconsistently.
Help on this issue would be greatly appreciated! EDIT: i'm on android 4.4.2 phone

I see the same behaviour on Android 5.0. The background mode only works correctly while the phone is plugged into power. Otherwise, the process is only allowed to run occasionally - anywhere between every 10 to 90 minutes.

Made my own solution, https://github.com/boltex/cordova-plugin-powermanagement
I modified the power management plugin : I changed SCREEN_DIM_WAKE_LOCK to PARTIAL_WAKE_LOCK
here's how i use it along with the background mode plugin so the app is never in background and always running as a service...(altough it does let the screen turn off and/or switch to other apps but your app will keep running and never miss a timer trigger):
if( ionic.Platform.isAndroid() ){
cordova.plugins.backgroundMode.enable();
window.powerManagement.dim(function() {
console.log('Wakelock acquired');
}, function() {
console.log('Failed to acquire wakelock');
});
window.powerManagement.setReleaseOnPause(false, function() {
console.log('setReleaseOnPause successfully');
}, function() {
console.log('Failed to set');
});
}

Thank you so much for pointing me to your solution! It was exactly what I needed, and this is what is really required to make background mode work on Android.

Huge thank you on this! (cordova-plugin-powermanagement)
It allowed me to have a consistent interval working in background even when the user put the device to sleep.
For future readers, please note that the PARTIAL_WAKELOCK ensures that the CPU is running and that the screen and keyboard backlight are allowed to go off. If the user presses the power button, then the screen will be turned off but the CPU will be kept on until all partial wake locks have been released. So, the interval will always be respected no matter what until you release the wakelock. (more info: http://developer.android.com/reference/android/os/PowerManager.html#PARTIAL_WAKE_LOCK)

Boltex (or anyone for that matter) I was hoping you could help me out. (preferably asap as I'm supposed to start my user evaluation for my dissertation really soon and need to get this bug ironed out.)
I've got an app that I need to do stuff in the background while the screen is off. There's a stopwatch on the main page that I'm using (although the app does more than this).
Basically, I'm using the same solution as you've mentioned above. And it has made it so when the screen goes off and I wait for a while and turn it back on, the timer has moved on from when I turned the screen off. But if I actually time it with a different stop watch, the duration between screen off and screen on is not reflected accurately by my app. Sometimes there's a difference of 10 seconds, sometimes a minute - possibly more. I'm really confused and hoped you could shed some light on it.
As a side note it's not just the timer that isn't being updated properly, im detecting sensors as well and they're not being monitored while the screen is off properly.
Thanks

@boltex The plugin does use partial wake lock now to run even the phone is locked

Thanks ! You rock ! :)


Google drive link for checkpoints

Hi, the link for downloading checkpoints seems to be broken:
https://drive.google.com/drive/folders/1Nf-EJ2W3CsZwpc5blZFi7tm7o1wEiTg4?usp=sharing
Is there any updated link?
Thanks :)

Thank you for the reminder about the expired Google Drive link. The links have been updated, so please feel free to check them.


Remove all the cout/printf based logging

That kind of messages are ok for testing, but not for master branch

Done in cefa3a63f718ac5781e099a80cd618282cf6f7f4


Incompatible with Armorable Mobs

Forge Version
<IP_ADDRESS>60
Galacticraft Version
<IP_ADDRESS>3
Log or Crash Report
https://gist.github.com/Gandalf360one/76073c933d6f7acf4c39bb3bf6ca4872
Reproduction steps
When using Armorable Mobs and staging them with Gamestages, Galacticraft will block the mob lodout from spawning.
How to reproduce:

Add the following mods to your game: Galacticraft, Crafttweaker, Armorable Mobs, Gamestages, Bookshelf to your game.
Add the following script for adding a new mob lodout to the game: https://pastebin.com/8XXHPWmP
Loadup your game. Give yourself the gamestage "stone".
Spawn some Zombies. They should spawn with diamond gear but they wont.
Remove or out comment "group.addGameStage("stone");"
Loadup your game again and spawn some zombies. Now it work.

Sorry if the description is a bit weaird.

Found a fix.
Please close it and sorry for wasting your time by reading this.


Unhandled exception when rotating mobile device

The following exception is thrown (presumably when the user rotates the mobile):

[RemoteRenderer] Unhandled exception rendering component: undefined is not an object (evaluating 'screen.orientation.onchange = function () {
dotNetHelper.invokeMethodAsync('UpdateImage');
}')
module code@https://mywebsite/_content/Blazor.SignaturePad/sigpad.interop.js:17:19
evaluate@[native code]
moduleEvaluation@[native code]
@[native code]
asyncFunctionResume@[native code]
@[native code]
promiseReactionJobWithoutPromise@[native code]
promiseReactionJob@[native code]
Microsoft.JSInterop.JSException: undefined is not an object (evaluating 'screen.orientation.onchange = function () {
dotNetHelper.invokeMethodAsync('UpdateImage');
}')
module code@https://mywebsite/_content/Blazor.SignaturePad/sigpad.interop.js:17:19
evaluate@[native code]
moduleEvaluation@[native code]
@[native code]
asyncFunctionResume@[native code]
@[native code]
promiseReactionJobWithoutPromise@[native code]
promiseReactionJob@[native code]
at Microsoft.JSInterop.JSRuntime.InvokeAsync[TValue](Int64 targetInstanceId, String identifier, Object[] args)
at SignaturePad.SignaturePad.OnAfterRenderAsync(Boolean firstRender)
at Microsoft.AspNetCore.Components.RenderTree.Renderer.GetErrorHandledTask(Task taskToHandle, ComponentState owningComponentState)

I'm not ablte to reproduce this issue. Can you provide me with more details on how to trigger this exception?
I've tried it on multiple tablets and phones and it worked fine for me.
Perhaps a small repository or a video on how to trigger this would help.

Even I can't reproduce the problem. I will keep on trying.

Will let you know if it's fixed.


techpoints_cmd

hey @ahmedmokeddem thank you for your contribution , i really liked the idea of the topic suggest command , still just to test it


[Request] 1.21

Hello, love your mod. I'm putting together a modpack for 1.21 and was wondering if you had any plans to update this. I don't see much activity on this repo as you seem to be focused on other projects. If that's the case, then no worries; it's just a nice-to-have.

Thank you for your interest!
From what I know 1.21.1 is a bit more popular since it's a hotfix version for 1.21...
After I add the new GUI and a better fuel source, I will be porting the mod to other popular versions for sure!

Awesome, thank you. I'm looking forward to it


docker swarm init with invalid parameter returns an error while swarm still initialized?

Hi, All
Today I hope to create a swarm using docker swarm init --cert-expiry 1m, however it returns an error:
root@ubuntu:~# docker swarm init --cert-expiry 1m
Error response from daemon: error updating cluster settings: rpc error: code = 3 desc = minimum certificate expiry time is: 1h0m0s

Since it returns an error, I thought that swarm is not created at all. However it surprised me that Swarm is created successfully.
root@ubuntu:~# docker swarm init --cert-expiry 1m
Error response from daemon: error updating cluster settings: rpc error: code = 3 desc = minimum certificate expiry time is: 1h0m0s
root@ubuntu:~# docker info
Containers: 20
 Running: 0
 Paused: 0
 Stopped: 20
Images: 58
Server Version: 1.13.0-rc2
Storage Driver: aufs
 Root Dir: /var/lib/docker/aufs
 Backing Filesystem: extfs
 Dirs: 355
 Dirperm1 Supported: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: bridge host macvlan null overlay
Swarm: active
 NodeID: kmc3j7ub0cst680bq4qk1xxu0
 Is Manager: true
 ClusterID: pxt34l9o54x45yh5pbuw1010f
 Managers: 1
 Nodes: 1
 Orchestration:
  Task History Retention Limit: 5
 Raft:
  Snapshot Interval: 10000
  Number of Old Snapshots to Retain: 0
  Heartbeat Tick: 1
  Election Tick: 3
 Dispatcher:
  Heartbeat Period: 5 seconds
 CA Configuration:
  Expiry Duration: 3 months
 Node Address: <IP_ADDRESS>
 Manager Addresses:
  <IP_ADDRESS>:2377
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 03e5862ec0d8d3b3f750e19fca3ee367e13c090e
runc version: 51371867a01c467f08af739783b8beafc154c4d7
init version: 949e6fa
Security Options:
 apparmor
Kernel Version: 3.19.0-25-generic
Operating System: Ubuntu 14.04.3 LTS
OSType: linux
Architecture: x86_64
CPUs: 1
Total Memory: 1.954 GiB
Name: ubuntu
ID: HRBI:EV6M:3NAC:CXZ3:BDS7:UOKL:PD6Y:ZCK4:V3PF:V7MR:CU2Y:3LGG
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): true
 File Descriptors: 38
 Goroutines: 170
 System Time: 2016-12-05T20:46:34.844572415+08:00
 EventsListeners: 0
Registry: https://index.docker.io/v1/
WARNING: No swap limit support
Experimental: false
Insecure Registries:
 <IP_ADDRESS>/8
Live Restore Enabled: false

Steps to reproduce the issue:

docker swarm init --cert-expiry 1m
docker info

Describe the results you received:
Swarm is created.
Describe the results you expected:
Since error returned, it makes user think that creation action failed.
Additional information you deem important (e.g. issue happens only occasionally):
Output of docker version:
root@ubuntu:~# docker version
Client:
 Version:      1.13.0-rc2
 API version:  1.25
 Go version:   go1.7.3
 Git commit:   1f9b3ef
 Built:        Wed Nov 23 06:24:33 2016
 OS/Arch:      linux/amd64

Server:
 Version:             1.13.0-rc2
 API version:         1.25
 Minimum API version: 1.12
 Go version:          go1.7.3
 Git commit:          1f9b3ef
 Built:               Wed Nov 23 06:24:33 2016
 OS/Arch:             linux/amd64
 Experimental:        false

Output of docker info:
root@ubuntu:~# docker info
Containers: 20
 Running: 0
 Paused: 0
 Stopped: 20
Images: 58
Server Version: 1.13.0-rc2
Storage Driver: aufs
 Root Dir: /var/lib/docker/aufs
 Backing Filesystem: extfs
 Dirs: 355
 Dirperm1 Supported: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: bridge host macvlan null overlay
Swarm: active
 NodeID: kmc3j7ub0cst680bq4qk1xxu0
 Is Manager: true
 ClusterID: pxt34l9o54x45yh5pbuw1010f
 Managers: 1
 Nodes: 1
 Orchestration:
  Task History Retention Limit: 5
 Raft:
  Snapshot Interval: 10000
  Number of Old Snapshots to Retain: 0
  Heartbeat Tick: 1
  Election Tick: 3
 Dispatcher:
  Heartbeat Period: 5 seconds
 CA Configuration:
  Expiry Duration: 3 months
 Node Address: <IP_ADDRESS>
 Manager Addresses:
  <IP_ADDRESS>:2377
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 03e5862ec0d8d3b3f750e19fca3ee367e13c090e
runc version: 51371867a01c467f08af739783b8beafc154c4d7
init version: 949e6fa
Security Options:
 apparmor
Kernel Version: 3.19.0-25-generic
Operating System: Ubuntu 14.04.3 LTS
OSType: linux
Architecture: x86_64
CPUs: 1
Total Memory: 1.954 GiB
Name: ubuntu
ID: HRBI:EV6M:3NAC:CXZ3:BDS7:UOKL:PD6Y:ZCK4:V3PF:V7MR:CU2Y:3LGG
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): true
 File Descriptors: 36
 Goroutines: 168
 System Time: 2016-12-05T20:47:47.952148074+08:00
 EventsListeners: 0
Registry: https://index.docker.io/v1/
WARNING: No swap limit support
Experimental: false
Insecure Registries:
 <IP_ADDRESS>/8
Live Restore Enabled: false

Additional environment details (AWS, VirtualBox, physical, etc.):

ping @aaronlehmann

It makes me feel surprised. And I found that Init operation in the daemon side could be two parts, one startNewNode, the other is initClusterSpec.

I'm not a fan of the initClusterSpec code. I think these initial values should be passed through startNewNode to swarmnode.New, which should take an initial spec.


Added support for retrieving Attachment data from a path on the device

Aren't we introducing any risks by changing from "Always" authorization to "WhenInUse"? Personally I like the change, but it I currently don't see why we change it in this PR (which is about snagging). Sorry for being annoying, I'm a noob when it comes to the AIQJSBridge.

Ignore my previous comment, I heard that this was requested from Vincent.


Unexpection location in workspace 'absolute:MyApp.xcodeproj'

Hey, I have some problem using xctool. When I use:
xctool -workspace 'MyApp.xcworkspace' -configuration 'Test' -scheme 'Unit Tests' -sdk 'iphonesimulator' -destination 'platform=iOS Simulator,name=iPhone 6,OS=9.0' test

and exception is generated:
2015-09-11 10:33:05.675 xctool[40926:2595013] *** Terminating app due to uncaught exception 'NSGenericException', reason: 'Unexpection location in workspace 'absolute:MyApp.xcodeproj''
*** First throw call stack:
(
	0   CoreFoundation                      0x00007fff9197e03c __exceptionPreprocess + 172
	1   libobjc.A.dylib                     0x00007fff856c176e objc_exception_throw + 43
	2   CoreFoundation                      0x00007fff9197deed +[NSException raise:format:] + 205
	3   xctool                              0x0000000107816fe4 __44+[XcodeSubjectInfo projectPathsInWorkspace:]_block_invoke + 1110
	4   xctool                              0x000000010781697f +[XcodeSubjectInfo projectPathsInWorkspace:] + 959
	5   xctool                              0x00000001078173c4 +[XcodeSubjectInfo schemePathsInWorkspace:] + 143
	6   xctool                              0x000000010780b29b -[Options validateAndReturnXcodeSubjectInfo:errorMessage:] + 2111
	7   xctool                              0x00000001077fc25e -[XCTool run] + 2299
	8   xctool                              0x00000001077fafb3 main + 819
	9   xctool                              0x00000001077f81c4 start + 52
	10  ???                                 0x000000000000000c 0x0 + 12
)
libc++abi.dylib: terminating with uncaught exception of type NSException
[1]    40926 abort      xctool -workspace 'MyApp.xcworkspace' -configuration 'Test' -scheme  -sdk

Am I something doing wrong?

Seems I found reason of it. Project I received had wrong configured cocoapods. After pod install second MyApp.xcodeproj has been created. I deleted the old xcodeproj and starts to work again. Thanks.

Thanks for letting us know. Glad the issue is resolved.


Typos, grammar, style, etc.

As I read through units I will try to fix typos and English errors as I go along. This is a work in progress. Finished! (Would close issue #291 )

[x] Unit 0
[x] Unit 1
[x] Unit 2
[x] Unit 3
[x] Unit 4
[x] Unit 5
[x] Unit 6
[x] Unit 7
[x] Unit 8
[x] Bonus 1
[x] Bonus 2
[x] Bonus 3

Thanks for this big update work I'm checking the result and merge it 🤗

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint.

Thanks so much for this contribution :exploding_head: this is amazing!!

Thanks for the update 🤗 . I'm checking the build and merging.
I sent you a mail to your WVU email please let me know if it's still your current email 😄 .


More weather cleanups

useWeatherForecasts -> useLatestWeatherForecasts
add a useLatestWeatherForecast hook to get weather for a particular zone
make parser a little more robust when handling table entries like Saturday Afternoon*
make a little more room for precipitation amounts so they don't wrap as easily, but it's still quite a tight squeeze in that space:

Oh 100%, my musing was more for the final API (though I can see that wasn’t
at all in the comment).
On Fri, Jan 27, 2023 at 05:26 Steve Kuznetsov @.***>
wrote:

@.**** commented on this pull request.
In hooks/useLatestWeatherForecasts.ts
https://github.com/stevekuznetsov/avalanche-forecast/pull/107#discussion_r1088959538
:

| 'Monday'

| 'Tuesday'
| 'Wednesday'
| 'Thursday'
| 'Friday'
| 'Saturday'
| 'Sunday Night'
| 'Monday Night'
| 'Tuesday Night'
| 'Wednesday Night'
| 'Thursday Night'
| 'Friday Night'
| 'Saturday Night';

+export interface ZoneForecastPeriod {

// TODO: does this object need an actual time? Right now, all it has is a relative field like "Sunday Night",

We should draw a line in the sand for the amount of effort put into this
particular take on this approach - e.g. instead of attempting to parse
"Sunday Night" into a UTC date-time, we can just assert that the JSON API
give us a UTC date-time.
—
Reply to this email directly, view it on GitHub
https://github.com/stevekuznetsov/avalanche-forecast/pull/107#pullrequestreview-1272689708,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAAYWTC4KSWJOZDPXSXD2DDWUPEGVANCNFSM6AAAAAAUIETUQY
.
You are receiving this because you modified the open/close state.Message
ID: @.***
com>


Illuminate packages are not up to date

Laravel Version: 5.4

Description:
The illuminate packages are stuck on version 5.4.19, while the latest is 5.4.23.

Thanks, will take care of that :)

@themsaid Same issue now with version stuck on 5.5.2


Build page data deux

Note: merge https://github.com/Azure/kashti/pull/158 first before this one. This is branched off of it.
This builds upon @flynnduism's work in #152. Due to all the change in mock data and it was easier to re-apply his changes on top of a fresh branch.
Closes #151

@radu-matei addressed all of your feedback, thanks!

@flynnduism mergin'!


fix: Fix SSO Groups not being propagated + Remove deprecated field groups

New terraform provider creates Okta integrations in the control plane using Generic SAML APIs, due to that the group parameter in the SAML assertion is populated by default with the value memberOf
However, the Okta application at Okta propagates the groups' information through the groups SAML parameter.
The mismatch above leads the SSO groups to not be propagated from Okta to the Control Plane.

Terraform-Okta-IDP test:
terraform apply
var.idp_integration_name
  IdP integration name that will be shown in Control Plane.

  Enter a value: gpereira

var.okta_app_name
  The name of the Okta Application that will be created.

  Enter a value: gpereira

data.cyral_saml_certificate.this: Reading...
data.cyral_saml_certificate.this: Read complete after 3s [id=a2ebbf9XXXXXXXXXX662707c32]

Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols:
  + create
 <= read (data resources)

Terraform will perform the following actions:

  # data.cyral_saml_configuration.this will be read during apply
  # (config refers to values not yet known)
 <= data "cyral_saml_configuration" "this" {
      + allowed_clock_skew                    = (known after apply)
      + back_channel_supported                = (known after apply)
      + base_64_saml_metadata_document        = (known after apply)
      + disable_force_authentication          = (known after apply)
      + disable_post_binding_authn_request    = (known after apply)
      + disable_post_binding_logout           = (known after apply)
      + disable_post_binding_response         = (known after apply)
      + disable_using_jwks_url                = (known after apply)
      + disable_validate_signature            = (known after apply)
      + disable_want_assertions_signed        = (known after apply)
      + disable_want_authn_requests_signed    = (known after apply)
      + gui_order                             = (known after apply)
      + hide_on_login_page                    = (known after apply)
      + id                                    = (known after apply)
      + ldap_group_attribute                  = (known after apply)
      + name_id_policy_format                 = (known after apply)
      + principal_type                        = (known after apply)
      + saml_xml_key_name_tranformer          = (known after apply)
      + signature_type                        = (known after apply)
      + signing_certificate                   = (known after apply)
      + single_logout_service_url             = (known after apply)
      + single_sign_on_service_url            = (known after apply)
      + sync_mode                             = (known after apply)
      + want_assertions_encrypted             = (known after apply)
      + xml_sig_key_info_key_name_transformer = (known after apply)
    }

  # cyral_integration_idp_saml.this will be created
  + resource "cyral_integration_idp_saml" "this" {
      + id                         = (known after apply)
      + idp_metadata_xml           = (known after apply)
      + saml_draft_id              = (known after apply)
      + single_sign_on_service_url = (known after apply)
    }

  # cyral_integration_idp_saml_draft.this will be created
  + resource "cyral_integration_idp_saml_draft" "this" {
      + disable_idp_initiated_login = false
      + display_name                = "gpereira"
      + id                          = (known after apply)
      + idp_type                    = "okta"
      + service_provider_metadata   = (known after apply)
      + sp_metadata                 = (known after apply)
    }

  # okta_app_saml.this will be created
  + resource "okta_app_saml" "this" {
      + accessibility_self_service  = false
      + acs_endpoints               = (known after apply)
      + assertion_signed            = true
      + audience                    = (known after apply)
      + authn_context_class_ref     = "urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport"
      + auto_submit_toolbar         = false
      + certificate                 = (known after apply)
      + destination                 = (known after apply)
      + digest_algorithm            = "SHA256"
      + embed_url                   = (known after apply)
      + entity_key                  = (known after apply)
      + entity_url                  = (known after apply)
      + features                    = (known after apply)
      + hide_ios                    = false
      + hide_web                    = false
      + honor_force_authn           = true
      + http_post_binding           = (known after apply)
      + http_redirect_binding       = (known after apply)
      + id                          = (known after apply)
      + key_id                      = (known after apply)
      + keys                        = (known after apply)
      + label                       = "gpereira"
      + logo_url                    = (known after apply)
      + metadata                    = (known after apply)
      + metadata_url                = (known after apply)
      + name                        = (known after apply)
      + recipient                   = (known after apply)
      + response_signed             = true
      + saml_signed_request_enabled = false
      + saml_version                = "2.0"
      + sign_on_mode                = (known after apply)
      + signature_algorithm         = "RSA_SHA256"
      + single_logout_certificate   = "MIICnTCCAYUCBgGIITQg2zANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAdkZWZhdWx0MB4XDTIzMDUxNTIwNTU0NFoXDTMzMDUxNTIwNTcyNFowEjEQMA4GA1UEAwwHZGVmYXVsdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKO134TmSlX1wfEPyc4AIdlKyNdrhMLdhjHz1/BsIGbhfqUtSEPU5IWY4vkJHv2bUE50whPynyF/PVrlgyIIWWjN5k1GjDvDuAMUq1IPNx1bf/Va1mCphI2NQbuOP/S5t8RNjXtnwhPI816nQbDA7oypJurn+FlAOwGhD30mTZ81fBzY1+z/GoJ2ZlGKHV8PUxsxJbtX8jaPo2QXBouEk4F+TsYcN/iFH/8FsliT+hDPrRRWm/pkb94YhG4TWhaU8x9ESuHZvksQFWc/L52exK1NU/qClWWRDxzvLF4lJIUANZ9fHBnn+eNnccx2+964ZqRf5+gkAsXqVazyYPSL0icCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAEehdqS9I0pgKq1JDjg3pJ1Z8gdzjulxDB7lJxFLyd6VBUzbjCxlwsEMZrhKfdWAGjPgM1yJtItOdHmZBfEwLekgobWJ4gJG+mpUeSFkIP6KEF7PX77T3m0Vvw02muzkvTKaKqWr0IsySy14w0DrsBtxofbIkExaGBgnpnferdT2AZeEmVOnCjmpPMm41W1jIE+udNuSjnazXRgNBaogEY9Ix6b1eU5rxwIHGKq3I9gTHvp62erOhp0tDi7qgv2hvGta8dxN1886wPKSY9Ua4N6+nbpGR/xRfWiHC3nMPHvFIGlztKh/SEmjgqngEoFUpSEG1mh41HuQnOnF84L/gPw=="
      + single_logout_issuer        = (known after apply)
      + single_logout_url           = (known after apply)
      + skip_groups                 = false
      + skip_users                  = false
      + sp_issuer                   = (known after apply)
      + sso_url                     = (known after apply)
      + status                      = "ACTIVE"
      + subject_name_id_format      = "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress"
      + subject_name_id_template    = "${user.userName}"
      + user_name_template          = "${source.login}"
      + user_name_template_type     = "BUILT_IN"

      + attribute_statements {
          + name      = "EMAIL"
          + namespace = "urn:oasis:names:tc:SAML:2.0:attrname-format:basic"
          + type      = "EXPRESSION"
          + values    = [
              + "user.email",
            ]
        }
      + attribute_statements {
          + name      = "FIRST_NAME"
          + namespace = "urn:oasis:names:tc:SAML:2.0:attrname-format:basic"
          + type      = "EXPRESSION"
          + values    = [
              + "user.firstName",
            ]
        }
      + attribute_statements {
          + name      = "LAST_NAME"
          + namespace = "urn:oasis:names:tc:SAML:2.0:attrname-format:basic"
          + type      = "EXPRESSION"
          + values    = [
              + "user.lastName",
            ]
        }
      + attribute_statements {
          + filter_type  = "REGEX"
          + filter_value = ".*"
          + name         = "memberOf"
          + namespace    = "urn:oasis:names:tc:SAML:2.0:attrname-format:basic"
          + type         = "GROUP"
          + values       = []
        }
    }

  # random_uuid.this will be created
  + resource "random_uuid" "this" {
      + id     = (known after apply)
      + result = (known after apply)
    }

Plan: 4 to add, 0 to change, 0 to destroy.

Changes to Outputs:
  + integration_idp_okta_id = (known after apply)
  + okta_app_saml_id        = (known after apply)

Do you want to perform these actions?
  Terraform will perform the actions described above.
  Only 'yes' will be accepted to approve.

   Resources: 4 added, 0 changed, 0 destroyed.

Outputs:

integration_idp_okta_id = "XXXXX"
okta_app_saml_id = "XXXXXX"

Thanks for working on this fix @juniocezar and @gabfelp.


BaseButton.is_hovered() returning true while LMB is pressed and mouse has left the button

Godot version: 3.1.1.stable
OS/device including version: Windows 10 18362
Issue description: The function should return false after the mouse leaves the button, even with the LMB pressed
Steps to reproduce:

Minimal reproduction project:

Closing as a duplicate of #20881.


Update Developer Guide with add task and edit task use cases

Codecov Report
Base: 72.15% // Head: 72.15% // No change to project coverage :thumbsup:

Coverage data is based on head (4c96e91) compared to base (5d8a1f4).
Patch has no changes to coverable lines.

Additional details and impacted files
@@            Coverage Diff            @@
##             master      #88   +/-   ##
=========================================
  Coverage     72.15%   72.15%
  Complexity      399      399
=========================================
  Files            70       70
  Lines          1232     1232
  Branches        125      125
=========================================
  Hits            889      889
  Misses          311      311
  Partials         32       32

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

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


Universal build for macOS

hard-code the universal arch-specific asar base paths in the main.js
as we know from packaging that we are running as mac universal binary
Update node-gyp for mac arm64 build (>7.1.0)
Switch to a fork of jitsi-meet-electron-utils, because the original still depends
on the original mac-screen-capture-permissions which contains a x64 binary
without rebuild instructions. For details, see https://github.com/karaggeorge/mac-screen-capture-permissions/pull/6
Use Big Sur SDK to allow for arm64 builds on mac, this is a github
actions specific fix, as macos-11.0 runner is currently restricted
to private preview

Nice thank you!


Don't sort entry when adjusting start / end

Right now the sorting of the time entry will change if you adjust the start or end time automatically. Wait for updating the store when leaving the item altogether.
It might also be a good idea to only update the store when leaving an item (onBlur) or when the user input has been idle for a while.

I already made efforts to make time and date inputs only fire on blur instead of on change, also accepts changes from outside.
I'll test if this seems to work for now, or will change to onBlur of whole item.


Help registering commands.

Command Class: https://pastebin.com/JdDrNG2G
Bot Start Method: https://pastebin.com/bjT8RBa7
Help Command Image: https://gyazo.com/ab43de85f3a2542869db7314a8abb967
I have a few commands made but none of them get registered for some reason, using 1.1.0

Hello, first of all thanks for using my lib and reporting that bug. That's very strange, I'll look after it asap. Could you also provide a log with DEBUG level?

Noticed I was still on JDA 4.1.1 version, updated it to 4.2.0_191 but it didn't fix.
How would I provide a log like that? Thanks

Nevermind, found MC's debug.log and I was missing some dependancies. Works fine now, thanks!


Add Support to get more than 30 files containing specific naming scheme or ext

Looks like currently Box CLI only can return 30 files at once. Is there a way for it to return like hundreds of files through the CLI?

@abarber229 What command are you running?  If it's box search, there is not a way currently to get more results.  We're working on this issue in the upcoming v2 release of the CLI, and will at the very least probably increase the default number of results returned to around 100.

In the current version of the CLI, there is no way to get more than the initial set of search results, but the next version of the CLI will be released by December 13th.

Thank you!

Did the new boxcli get released today?
Thank you.

@abarber229 It was released today!  You can find the new installers at https://github.com/box/boxcli/releases/tag/v2.0.0 — please give it a try and let us know if you run into any issues!

So I updated to the newest version. However, the search parameters are returning incorrect results unless I am using the search command incorrectly. Here is the command that I am running - box search "SORRY-FOR-FILES" --fields="id" --fields="name" --file-extensions="html" --token "inserttokenhere" > "C:\Temp\Sorry-For-Files.csv". The Sorry-For-Files search field is not returning any files that say that. Thoughts?
Here are a couple of examples:
[
{
"type": "file",
"id": "363197203723",
"name": "glossary.html"
},
{
"type": "file",
"id": "363196393723",
"name": "glossary.html"
},
{
"type": "file",
"id": "363196717723",
"name": "glossary.html"
},
{
"type": "file",
"id": "363188206281",
"name": "MPO - RMPO-W1190-811.html"

sorry for getting back to you late. I used to be able to just run "box search "Sorry-for-files" --token "token"" and export that to a file in V1. I tried it your way in the example and returned these results.  I am only getting HTML files but without the name that I am searching for. The script looks to skip the query file name that I would like to find. The return were the same results I posted before. Examples are below again. Any other idea or commands? Could you create an "Sorry-For-Files.html" in your environment to test?
type,id,name
file,370619319764,viewer.html
file,370649219066,viewer.html
file,369924997556,viewer.html
file,369928631504,viewer.html
file,363197203723,glossary.html
file,363196393723,glossary.html
file,363196717723,glossary.html

here is the verbose output if that helps:
C:\Program Files\@boxcli>box search '"SORRY-FOR-FILES"' --fields name --file-extensions html --token "mytoken" -v
  box:@box/cli:hooks:init done +0ms
  box init version<EMAIL_ADDRESS>argv: [ 'search', '\'SORRY-FOR-FILES\'', '--fields', 'name', '--file-extensions', 'html', '--token', 'mytoken', '-v' ] +0ms
  box-cli:init Initializing Box CLI +0ms
  box-cli:init Loaded settings { boxReportsFolderPath: 'C:\\Users\\barbera\\Documents\\Box-Reports',
  box-cli:init   boxReportsFolderName: 'Box-Reports',
  box-cli:init   boxReportsFileFormat: 'json',
  box-cli:init   boxDownloadsFolderPath: 'C:\\Users\\barbera\\Downloads\\Box-Downloads',
  box-cli:init   boxDownloadsFolderName: 'Box-Downloads',
  box-cli:init   autoSave: false,
  box-cli:init   outputJson: true } +2ms
  box-cli:init Using passed in token mytoken+1ms
  box-cli:execute Starting execution command: search argv: [ '\'SORRY-FOR-FILES\'',
  box-cli:execute   '--fields',
  box-cli:execute   'name',
  box-cli:execute   '--file-extensions',
  box-cli:execute   'html',
  box-cli:execute   '--token',
  box-cli:execute   'mytoken',
  box-cli:execute   '-v' ] +0ms

@abarber229 I'm able to make this work correctly on my machine (a Macbook), but the verbose output you gave is very helpful — the issue seems to be with how your Windows shell is passing the quoted string to the CLI.  Here's the key difference:
What the CLI sees on my machine:
  box-cli:execute Starting execution command: search argv: [ '"SORRY-FOR-FILES"',
  box-cli:execute   '--fields',
  box-cli:execute   'name',
  box-cli:execute   '--file-extensions',
  box-cli:execute   'html',
  box-cli:execute   '--token',
  box-cli:execute   'mytoken',
  box-cli:execute   '-v' ] +0ms

What the CLI sees on your machine:
  box-cli:execute Starting execution command: search argv: [ '\'SORRY-FOR-FILES\'',
  box-cli:execute   '--fields',
  box-cli:execute   'name',
  box-cli:execute   '--file-extensions',
  box-cli:execute   'html',
  box-cli:execute   '--token',
  box-cli:execute   'mytoken',
  box-cli:execute   '-v' ] +0ms

I'm not totally sure why, but your shell is passing single quotes to the CLI instead of double quotes — the Search API requires double quotes for specifying an exact match.  Could you try just escaping the double quotes instead, like this:
box search \"SORRY-FOR-FILES\" --fields name --file-extensions html

Please let me know if that does the trick!

Looks to be pulling zero results now. However, the search looks to be correct like you mentioned. I can confirm that their are filenames that match the criteria.
C:\Program Files\@boxcli>box search \"SORRY-FOR-FILES\" --fields name --file-extensions html --token "L4IxZOtrnQhxfvMA4Q0bzEtqbGdzNUyI" -v
  box:@box/cli:hooks:init done +0ms
  box init version<EMAIL_ADDRESS>argv: [ 'search', '"SORRY-FOR-FILES"', '--fields', 'name', '--file-extensions', 'html', '--token', 'token', '-v' ] +0ms
  box-cli:init Initializing Box CLI +0ms
  box-cli:init Loaded settings { boxReportsFolderPath: 'C:\\Users\\barbera\\Documents\\Box-Reports',
  box-cli:init   boxReportsFolderName: 'Box-Reports',
  box-cli:init   boxReportsFileFormat: 'json',
  box-cli:init   boxDownloadsFolderPath: 'C:\\Users\\barbera\\Downloads\\Box-Downloads',
  box-cli:init   boxDownloadsFolderName: 'Box-Downloads',
  box-cli:init   autoSave: false,
  box-cli:init   outputJson: true } +1ms
  box-cli:init Using passed in token token +1ms
  box-cli:execute Starting execution command: search argv: [ '"SORRY-FOR-FILES"',
  box-cli:execute   '--fields',
  box-cli:execute   'name',
  box-cli:execute   '--file-extensions',
  box-cli:execute   'html',
  box-cli:execute   '--token',
  box-cli:execute   'tokten',
  box-cli:execute   '-v' ] +0ms
  box-cli:output Formatted 0 output entries for display +0ms
  box-cli:output Using json output format +0ms
  box-cli:output Processed output as JSON +2ms
  box-cli:output Writing output to terminal +1ms
[]
  box-cli:output Finished writing output +4m
```s

@abarber229 Now the argv is identical to what I'm seeing on my machine (where I get the correct results), I would suspect that the CLI is making the correct API call on your machine.  In that case, the issue might be with your specific environment.  Here are a few other things to check:

Ensure that the token you're using is for an account with access to the files you want to find — you can run box users:get me --token <TOKEN> to check which account you're making calls as with that token.  If you know the file ID of the file you're trying to find, you can also run box files:get <FILE_ID> --token <TOKEN> to verify that the account has access to the file in question.
If the file was recently uploaded, it may not have been indexed for search yet.  New files can take ~10 minutes to be indexed.
The double quotes make the search query require an exact match.  You should check that the filename or content you're looking for matches character for character.

@abarber229 Well, at least that tells us that the issue probably isn't in the search command!  The first thing to check here would be the token you're passing in — how are you getting it?  Also, when you run box users:get me --fields login --token <THAT_TOKEN>, do you see the same email address you use to log into the web application?

I'm getting the token from the Box Dev Console. When I run the get me command, it does return the same email address that I am using to login to Box.com with. Would you like to share screens today?
C:\Program Files@boxcli>box users:get me --token "token" -v
box:@box/cli:hooks:init done +0ms
box init version<EMAIL_ADDRESS>argv: [ 'users:get', 'me', '--token', 'token', '-v' ] +0ms
box-cli:init Initializing Box CLI +0ms
box-cli:init Loaded settings { boxReportsFolderPath: 'C:\Users\barbera\Documents\Box-Reports',
box-cli:init   boxReportsFolderName: 'Box-Reports',
box-cli:init   boxReportsFileFormat: 'json',
box-cli:init   boxDownloadsFolderPath: 'C:\Users\barbera\Downloads\Box-Downloads',
box-cli:init   boxDownloadsFolderName: 'Box-Downloads',
box-cli:init   autoSave: false,
box-cli:init   outputJson: true } +2ms
box-cli:init Using passed in token token+2ms
box-cli:execute Starting execution command: users:get argv: [ 'me', '--token', 'token', '-v' ] +0ms
box-cli:output Formatted output content for display +0ms
box-cli:output Using json output format +1ms
box-cli:output Processed output as JSON +1ms
box-cli:output Writing output to terminal +0ms
{
"type": "user",
"id": "213243789",
"name": "austin barber",
"login"<EMAIL_ADDRESS>"created_at": "2014-03-14T07:42:09-07:00",
"modified_at": "2018-12-27T06:45:01-08:00",
"language": "en",
"timezone": "America/New_York",
"space_amount":<PHONE_NUMBER>000000,
"space_used":<PHONE_NUMBER>50,
"max_upload_size":<PHONE_NUMBER>0,
"status": "active",
"job_title": "",
"phone": "",
"address": "",
"avatar_url": "https://bakerconcrete.app.box.com/api/avatar/large/213243789"
}
box-cli:output Finished writing output +1ms

@abarber229 Given the behavior you're describing, it seems like the issue here isn't with the CLI — everything appears to be working as expected there.  For additional troubleshooting, you should open a ticket with Box Support — they can help you diagnose the issue further!


Landscape view

When i have my app in landscape view the notification showup like a portrait.

great work megastep!


General Direction / Differences Between v1 and v2?

If an issue is the incorrect place for this please let me know and I'll close it.
Is there a general "design doc" for this project? Something that explains what v2 hopes to accomplish over v1? What changes are in progress? What changes are complete? What do you guys need help with? Etc. etc. etc.
<3 Tornadofx, you guys rock, I'd love to help in whatever miniscule way I can / am able.

I agree with the sentiment, I think that many people are eager to contribute to this repository, but the work to be done is undefined. I think that this repository would get volunteer activity if someone was there to manage things. My suggestion would be to:

enable Discussions on the repository (a new GitHub feature) — this would help the engagement with the commnunity
state the general direction and the vision of the project
assign a maintainer (maybe someone who has contributed on v1 and who you trust) that would watch over the repository and put the plan into action
owner or maintainer should then create projects which describe general areas to be worked on, which should contain issues that are broken-down enough so that the community can easily contribute

I, for one, would gladly help with issue triaging (issue tagging, issue confirmation, pull request review etc.) if needed.

I agree with the sentiment, I think that many people are eager to contribute to this repository, but the work to be done is undefined.

I think the thumbs up on your post reinforces this point. People want this project to continue but it needs maintainers.
I am not experienced enough to maintain something like this alone, but if a handful of others were willing to becoming a new set of maintainers and come together and agree on direction and work for the project I would happily throw my hat in the ring.
Would anyone else be interested? If we gather a few people, sit down and hash some stuff out we might be able to get into a position to do something.

@SKeeneCode  I would like to help with maintaining the project though my time is also limited.

Sign me up, I'd love to help in whatever (probably minor) way I can.

Sorry Ive been away for a while; had to focus on my business during COVID. We are back working on our software that needs this project so will be more active in it.


Crc on macos(hyperkit) network(bridge mode) issue

On macOs after crc version 1.2, hyperkit is the only hypervisor supported. Currently, Hyperkit network is configured in bridged mode and not configured as a NAT mode, which makes an issue with VPN clients which only allow/pass connections from domicile host.
Is it possible to start/configure crc/hyperkit to switch to NAT mode or bring back vmware support.
Regards,
Goran.

We will not support VMware (we never did for CRC), as it is the same story for VirtualBox #838
However, I am not familiar with the possibility to use NAT for Hyperkit? Where did you see this possibility?

did look into this again, and the situation hasn't changed; the way around this is to use vpnkit. at the moment we do not support this.

Vmware is an typo, so the actual situation would be if you install crc localy and need to reach from the inside of crc resources like DB's, which are only available from VPN. So you fire up your favorite VPN, and the issue it that VPN discards all packets which doesn't have(originate) source IP address of your local machine where the VPN is fired up. Because hyperkit has such routing that packets from VM are not SNAT-ed to local machine IP VPN  discard those packets. VritualBOX has the "right way"NAT implementation. I read about vpnkit, and it  sound that it would be a solution  for  this situation. Is it possible for me to get prerelease version of  crc which does have vpnkiti implemented?

The issue is solved with enabling ip.forwarding and NAT-ing traffic from crc host interface to VPN interface with VPN interface IP(sNAT).

the issue it that VPN discards all packets

Right, and this is related to how the VPN is condfigured (the route-all rule). We will look into possible solutions, but for now this would be to reconfigure your client and disallow the netwerksegments for libvirt and crc, or even 192.168./16

Is it possible for me to get prerelease version of crc which does have vpnkiti implemented?

Currently not worked on. You can however use a VM with VPNkit alongside it for now as a workaround.

Hello, I am having exact same issue.
My deployments should access certain sources which are accessible only with the VPN.
But CRC can not access the source because it is not using my host computers VPN connection.
@gsustek mentioned
The issue is solved with enabling ip.forwarding and NAT-ing traffic from crc host interface to VPN interface with VPN interface IP(sNAT).
Can you please guide me how can I do the same?
Thank you.

sources=  https://apple.stackexchange.com/questions/265237/corresponding-ipfw-rules-in-macos-for-this-iptables-rules
https://apple.stackexchange.com/questions/230300/what-is-the-modern-way-to-do-port-forwarding-on-el-capitan-forward-port-80-to/230331#230331
https://docs.mitmproxy.org/stable/howto-transparent/
https://unix.stackexchange.com/questions/505712/how-to-setup-simple-port-forwarding-on-macos-with-pf-rules-must-be-in-order-o
https://serverfault.com/questions/791181/redirecting-traffic-to-a-specific-address-and-port-using-pf-on-macos
https://kfigiela.github.io/2014/11/07/using-native-os-x-nat-with-virutalbox/
https://forums.freebsd.org/threads/generic-nat-firewall-pf-config-template.60144
#first enable routing on your mac
sudo sysctl net.inet.ip.forwarding=1
example of anchor file:
`# com.apple anchor point

###pflog_logfile="/var/log/pflog"
scrub-anchor "com.apple/"
#fix mtu
scrub on ppp0 all max-mss 1314
nat-anchor "com.apple/"
#add nat
nat on ppp0 from bridge100:network to any -> (ppp0)
rdr-anchor "com.apple/"
#add state
pass from ppp0 to bridge100:network keep state
dummynet-anchor "com.apple/"
anchor "com.apple/*"
load anchor "com.apple" from "/etc/pf.anchors/com.apple"`
#check
sudo pfctl -vnf /etc/pf.conf
#execute
sudo pfctl -Eef /etc/pf.conf
#add dns entry on your interface


Footer UI Upgraded

Hello @codervivek5 ,
I have updated/upgraded the  footer.
Image -

It is ready to merge

perfect :)
Thanks for contribution


[backport 1.27] Fix intermittent cpu spike in grpc async client (#30123)

Commit Message:
backport of https://github.com/envoyproxy/envoy/pull/30123
Additional Description:
Risk Level:
Testing:
Docs Changes:
Release Notes:
Platform Specific Features:
[Optional Runtime guard:]
[Optional Fixes #Issue]
[Optional Fixes commit #PR or SHA]
[Optional Deprecated:]
[Optional API Considerations:]

@vikaschoudhary16 just realized this has no changelog - would you mind adding - wondering about the 1.28 bp and main

hey, release notes were not added on main PR and hence neither on 1.28 bp and this one. Please let me know if I should add.

Please let me know if I should add.

probably yes - if the change warrants backporting then it should be in the changelog


[SPARK-40737][CONNECT] Add basic support for DataFrameWriter

What changes were proposed in this pull request?
This change adds basic support for writes through the Spark Connect API. In todays implementation of the write API from a DataFrame perspective the interface of the DataFrameWriter is as declarative as possible today.
The write support is implemented as a Command and does not return anything.
Why are the changes needed?
Write support through Spark Connect.
Does this PR introduce any user-facing change?
Experimental API
How was this patch tested?
Added new unit tests for the behavior.

@cloud-fan @amaliujia @hvanhovell please take a look!

Can one of the admins verify this patch?

@hvanhovell @cloud-fan @HyukjinKwon can you please have a look?

Merging this one.


My device ble info

Hello,
is it possible to get information from my BLE such as my uuid or my name?

My yes, I assume :D

then show how because Im finding it all day long and not found it yet

And what have you been looking for?


Feature request: list the missing patterns

Currently it just says: "For example, the pattern '_' is not covered."
It would be nice if it said, subclass X is missing.

I agree that that would be nice. You can see from the closed issues that I invest very little time in this. In fact that is the reason why it only suppresses existing diagnostics instead of issuing its own.
Having said that, what you suggest should be a one-time effort only. I may look into it in a couple of weeks.
You can always suggest a PR on your own to expedite things.


Added Server sided validations for Posts

Checking the uploaded media according to social platform's requirements.

Making additional changes. Wait before merging.

You can merge now.

You can merge now.

Invalid PR so closing this PR


Handle when API Key, OAuth 2.0 and Http authentication mechanisms available at the same time

Description:
There can be scenarios where both OAuth and API Key authentication have been listed down as security schemas in open-api definition
securitySchemes:
    Bearer:
      in: header
      name: Authorization
      type: apiKey
    Client_Credentials:
      description: Client Credentials Flow for ChatBots
      flows:
        clientCredentials:
          scopes: {}
          tokenUrl: https://api.zoom.us/oauth/token
      type: oauth2
    OAuth:
      flows:
        authorizationCode:
          authorizationUrl: https://zoom.us/oauth/authorize
          scopes: {}
          tokenUrl: https://zoom.us/oauth/token
      type: oauth2

Need to generate correct client connector for this scenario
Suggested Labels:

client
improvement

Suggested Assignees:
Affected Product Version:
OS, DB, other environment details and versions:
Steps to reproduce:
Related Issues:
https://github.com/wso2-enterprise/choreo/issues/6008

https://raw.githubusercontent.com/APIs-guru/openapi-directory/main/APIs/dev.to/0.9.7/openapi.yaml
Above specification also has both API Key and OAuth2 in the security schema.
 securitySchemes:
    api_key:
      in: header
      name: api-key
      type: apiKey
    oauth2:
      flows:
        authorizationCode:
          authorizationUrl: https://dev.to/oauth/authorize
          refreshUrl: https://dev.to/oauth/token
          scopes: {}
          tokenUrl: https://dev.to/oauth/token
        clientCredentials:
          refreshUrl: https://dev.to/oauth/token
          scopes: {}
          tokenUrl: https://dev.to/oauth/token
      type: oauth2

Please find the below initial design.
import ballerina/http;
import ballerina/url;
import ballerina/lang.'string;

# Provides API key configurations needed when communicating with a remote HTTP endpoint.
public type ApiKeysConfig record {|
   # API keys related to connector authentication
   map<string> apiKeys;
   # The configurations to be used when initializing the `connector
   http:ClientConfiguration clientConfig =  {};
|};

# Provides a set of configurations for controlling the behaviours when communicating with a remote HTTP endpoint.
public type ClientConfig record {|
   # Configurations related to client authentication
   http:BearerTokenConfig|http:OAuth2RefreshTokenGrantConfig auth;
   # The HTTP version understood by the client
   string httpVersion = "1.1";
   # Configurations related to HTTP/1.x protocol
   http:ClientHttp1Settings http1Settings = {};
   # Configurations related to HTTP/2 protocol
   http:ClientHttp2Settings http2Settings = {};
   # The maximum time to wait (in seconds) for a response before closing the connection
   decimal timeout = 60;
   # The choice of setting `forwarded`/`x-forwarded` header
   string forwarded = "disable";
   # Configurations associated with Redirection
   http:FollowRedirects? followRedirects = ();
   # Configurations associated with request pooling
   http:PoolConfiguration? poolConfig = ();
   # HTTP caching related configurations
   http:CacheConfig cache = {};
   # Specifies the way of handling compression (`accept-encoding`) header
   http:Compression compression = http:COMPRESSION_AUTO;
   # Configurations associated with the behaviour of the Circuit Breaker
   http:CircuitBreakerConfig? circuitBreaker = ();
   # Configurations associated with retrying
   http:RetryConfig? retryConfig = ();
   # Configurations associated with cookies
   http:CookieConfig? cookieConfig = ();
   # Configurations associated with inbound response size limits
   http:ResponseLimitConfigs responseLimits = {};
   # SSL/TLS-related options
   http:ClientSecureSocket? secureSocket = ();
|};

public isolated client class Client {
   final http:Client clientEp;
   final readonly & map<string> apiKeys;
   # Gets invoked to initialize the `connector`.
   #
   # + config - The configurations to be used when initializing the `connector`
   # + serviceUrl - URL of the target service
   # + return - An error if connector initialization failed
   public isolated function init(ApiKeysConfig|ClientConfig config, string serviceUrl = "https://petstore.swagger.io/v2") returns error? {
       http:Client httpEp;
       if config is ClientConfig {
           httpEp = check new (serviceUrl, config);
       } else {
           httpEp = check new (serviceUrl, config.clientConfig);
           self.apiKeys = config.apiKeys.cloneReadOnly();
       }
       self.clientEp = httpEp;

   }
   # Update an existing pet
   #
   # + payload - Pet object that needs to be added to the store
   # + return - Invalid ID supplied
   remote isolated function updatePet(Pet payload) returns http:Response|error {
       string  path = string `/pet`;
       map<any> headerValues = {"api_key": self.apiKeys["api_key"]};
       map<string|string[]> accHeaders = getMapForHeaders(headerValues);
       http:Request request = new;
       json jsonBody = check payload.cloneWithType(json);
       request.setPayload(jsonBody);
       http:Response response = check self.clientEp->put(path, request, headers = accHeaders, targetType=http:Response);
       return response;
   }
}

@indikasampath2000 @abeykoon

Can we see the design when we have query parameters and headers other than API keys ?
Sample Scenario
/chrome/pdf/url:
    get:
      parameters:
        - in: query
          name: url
          required: true
          schema:
            type: string
        - in: header
          name: HEADER-X
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponseSuccess"
          description: A PDF file or a JSON object depending on the `output` query parameter
components:
 securitySchemes:
    api_key:
      in: query
      name: api-key
      type: apiKey
    oauth2:
      flows:
        authorizationCode:
          authorizationUrl: https://dev.to/oauth/authorize
          refreshUrl: https://dev.to/oauth/token
          scopes: {}
          tokenUrl: https://dev.to/oauth/token
        clientCredentials:
          refreshUrl: https://dev.to/oauth/token
          scopes: {}
          tokenUrl: https://dev.to/oauth/token
      type: oauth2

Can we see the design when we have query parameters and headers other than API keys ?
Sample Scenario
/chrome/pdf/url:
    get:
      parameters:
        - in: query
          name: url
          required: true
          schema:
            type: string
        - in: header
          name: HEADER-X
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponseSuccess"
          description: A PDF file or a JSON object depending on the `output` query parameter
components:
 securitySchemes:
    api_key:
      in: query
      name: api-key
      type: apiKey
    oauth2:
      flows:
        authorizationCode:
          authorizationUrl: https://dev.to/oauth/authorize
          refreshUrl: https://dev.to/oauth/token
          scopes: {}
          tokenUrl: https://dev.to/oauth/token
        clientCredentials:
          refreshUrl: https://dev.to/oauth/token
          scopes: {}
          tokenUrl: https://dev.to/oauth/token
      type: oauth2

@aneeshafedo Let's say the worst case scenario is user will give values for queryparams and headers + we need to add apiKeys to both queryparams and headers.
Following is the planned design.
remote isolated function getPDR(string url, string? headerX = ()) returns ApiResponseSuccess|error {
    string path = string `/chrome/pdf/url`;
    map<anydata> queryParam = {"url": url};
    addApiKeysToMap(queryParam, {"api-key": "apiKey"}, self.apiKeyConfig);
    path = path + check getPathForQueryParam(queryParam);

    map<any> headerValues = {"HEADER-X": headerX};
    addApiKeysToMap(headerValues, {"api-key": "apiKey"}, self.apiKeyConfig);
    map<string|string[]> accHeaders = getMapForHeaders(headerValues);

    ApiResponseSuccess response = check self.clientEp->get(path, accHeaders);
    return response;
}

isolated function addApiKeysToMap(map<any> targetMap, map<string> apiKeyMap, ApiKeysConfig? apiKeyConfig) {
    if (apiKeyConfig is () === false) {
        foreach var [keyName, valueName] in apiKeyMap.entries() {
            targetMap[keyName] = apiKeyConfig[valueName];
        }
    }
}


Fix null pointer access on release build

I suppose this is somehow related to #15.
get_interface will crash and return a STATUS_ACCESS_VIOLATION on release build if the get_method returns null pointer. Use ptr::null_mut instead of MaybeUninit can resolve this issue.
Tested with stream_range and custom_protocol from wry's example.

So get_method no longer sets the pointer to NULL when it has nothing to return.
Thanks!


When recording long track, waveform updates are located outside of the screen: please scroll!

When recording for more than 30s or something like that, the track waveform updates are too far on the right, please make the screen scroll and follow the recording progression.

Done. Scrolling works also during playback.


How to use with nuxt?

Hi. I've tried to set it using Nuxt but it does not work, I've declared it as a plugin in mystore.jsand it does nothing, I've setted it in my nuxt.config.js in modules block but result is the same.
I think it is the better vuex persistance plugin, please help me adding it. Thanks.

Hello, @jonalxh . I didn't tried to use this plugin with Nuxt.js before. I'll check this asap and I will try to provide you a solution.

Thank you so much. @gabrielmbmb
I'll be waiting for you, because I've not been able to set it with any lpugin for store persistance.

Hi again @jonalxh. I added instructions in README.md. Also, I added a NuxtJS project example which integrates the plugin.

Wow. This is amazing,
I was trying to do it in a similar way but i had no idea of the client mode, I've tried and it worked instantly.
I am very grateful to you.


feat: 🎸 MSDK-754 Allow non-entities as checkpoints while creating a DividendDistribution

JIRA Link
https://polymath.atlassian.net/browse/MSDK-754
Change Description
This allows passing an object with id and type as checkpoint value while creating DividendDistribution along with already supported types Checkpoint , CheckpointSchedule and Date.
The type can be have either of two values -

Existing - if id value defines a Checkpoint
Scheduled- if id value defines a CheckpointSchedule

@prashantasdeveloper
I pushed a commit addressing @monitz87  recent comments. I took out the assert in getCheckpointValue, updated the names, and changed InitiateCorporateActionParams

:tada: This PR is included in version 12.0.0-alpha.6 :tada:
The release is available on:

npm package (@alpha dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This PR is included in version 14.0.0-alpha.1 :tada:
The release is available on:

npm package (@alpha dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This PR is included in version 14.0.0-beta.1 :tada:
The release is available on:

npm package (@beta dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


version 1 of the myeye ready to be put into production

Here are a few prompts that we can pick from for the name of the app instead of "myeye". Let me know what are your thoughts about this.  my suggestions are in bold.
-SightBoost
-VisionNav
-SeeingEye
-SightAid
-VisiGuide
-BlindNav
-VisionMate
-SightMate
-VisionHelper
-SightHelper
-VisiAssist
-BlindAssist
-VisionPlus
-SightPlus
-VisiNav
-BlindNavigator
-VisionPro
-SightPro
-VisiMate
-BlindMate

Stay tuned for more 😊✌


[BUG] Backlash reversed for internal gears

Describe the bug
Backlash on ring_gear decreases the gap between an spur_gear and the ring_gear instead of
increasing it.
Code To Reproduce Bug
include <BOSL2/std.scad>;
include <BOSL2/gears.scad>;

$fn=128;

gd = gear_dist(teeth1 = 20, teeth2 = 50, internal2 = true, mod = 2);

translate([0,gd,0]) spur_gear(teeth = 20, mod = 2);
ring_gear(teeth = 50, backlash = 0.5, mod = 2);

translate([150,0,0]) union () {
translate([0,gd,0]) spur_gear(teeth = 20, mod = 2);
ring_gear(teeth = 50, mod = 2);
}

Expected behavior
Specifying backlash on a ring_gear should produce a gap between the ring_gear and a spur_gear.
Hopefully I didn't misunderstand backlash on ring_gears.

I think you have it right.  I added code to reverse the backlash for internal gears to fix this in the PR.
Note: you should give a text description of issues you post.


Availability backbone model

Hi!
Thanks for your effort, seems very promising.
However, I got stuck with getting the backbone model in "Load Encoder Weights for Language Model" section. How could I get this backbone model?
in addition, a couple suggestions for reproducibility of notebook:
The spacy model for Spanish needs to be downloaded:
!python -m spacy download es
And a link to the dataset would be cool:
http://www.sepln.org/workshops/tass/tass_data/download.php?auth=ntcabsQs44XedvseKre
I'm trying to replicate in Google Colab your work, right now available here:
https://github.com/danielcanueto/misc/blob/master/Spanish_GeneralTASSv2.ipynb
When this Colab is finished; i'll let you know and cite you as the responsible of this work.
Thanks!
Daniel

Hey Daniel. I have the model but it is too heavy for Github, how would you rather I send it to you? Would you like to share an open GDrive where I can upload it?
Thanks in advance,
Francisco

Hi Francisco,
Sure, give me an e-mail address and I'll share a link to edit the Google Drive folder so you can upload the file there:
https://www.gtricks.com/drive/upload-files-someone-elses-google-drive/
I have right now 10 GB available.
Thanks a lot!
Daniel

Hi to both of you,
I am also interested in having access to the model.
@danielcanueto could you share the GDrive link once the model is uploaded?
Thanks for your work

Sure, no problem, if @lesscomfortable agrees with it.

Absolutely. The more the merrier.

Here there is the link with the access to the model:
https://drive.google.com/drive/folders/1D6w8N6iooaQEMWFVKsm8V-Yf4hH_kovk?usp=sharing
Thanks a lot Francisco! Very very busy these days finishing my PhD, but I hope to reproduce its use during next days.

It would be cool to update this repository with the lastest techniques in NLP applied to Spanish. For starters check Improving Language Understanding with Unsupervised Learning and ELMO

This repo  provides an implementation of the OpenAI model (pretrained on English only).
But in this issue they discuss modifications needed to train for other languages.

Yeah, we could use that as a guide. Is anyone interested in collaborating?

@danielcanueto Daniel, would you care if I shared these weights openly in the repo's README?

No problem.
In my case, I'm finishing this month my PhD thesis while working and trying to finish two manuscripts, so you might guess I'm right now overloaded. :D After September 2nd, I should have much more time to help in whichever necessary.

👋 Hi @lesscomfortable and @danielcanueto. Just to confirm: The model linked to on GDrive the pretrained backbone model, analogous to the English one used in the Fastai IMDB notebook?

Maybe I am confused, but in addition to 'lm1_weights_kl.h5', don't we also need 'itos+100.pkl', the int to string mapping from the run that generated the base model?

Hi Sam, with respect to the code for generating the model, the general code is in fact in the repo but the actual code used for that model used different hyperparameters. Those weights were obtained by a fellow student with whom I was experimenting and he did not send me his notebook, only the hyperparemeters. He used the weights from the Wiki_Corpus.ipynb as initial weights and he changed some hyperparameters for training. I'll see if I can get the original notebook, in the meantime here are the changes he made when he re-trained:
drops = np.array([0.25, 0.1, 0.2, 0.02, 0.15])*0.4
learner.clip=.4
learner.fit(lr, 1.5, cycle_len=5, use_clr_beta=(10,10,0.95,0.85), best_save_name="spanish-best-1")

By the way I uploaded the itos file to the GDrive folder.

Thanks @lesscomfortable for uploading the itos map! I'm partly done with my own run now, so (assuming it works) I will compare the two. I am using an AWS c5.18xlarge, so am hoping to get by without removing tokens (except when they are below the threshold frequency), so it might give better results...
Since we are planning on build base language models for a few languages, I thought I could host them and their corresponding itos maps on S3... but then I saw that Jeremy Howard is planning on doing that at nlp.fast.ai.


Generated tests to use the Tests Namespace

I get a PHP Fatal error:  Class 'TestCase' not found in error on a newly created API and Repository test generated by api_scaffold
The TestCase class and the trait CreatesApplication are in the namespace Tests.
My autoload-dev looks like this:
"autoload-dev": {
        "psr-4": {
            "Tests\\": "tests/"
        },
        "classmap": [
            "tests/TestCase.php",
            "tests/ApiTestTrait.php",
            "tests/traits"
        ]
    },

After this fix, anyone who wants to fix this will need to delete config/infyom/laravel_generator.php and run php artisan vendor:publish command to publish a new file.
If you have modified config file then take a back of that file first, then apply those changes again to config/infyom/laravel_generator.php


Logger doesn't support %llu format string

On master with logging/log.h
LOG_DBG("%llu", my64bitint); results in a u in the log output rather than the number expected

That makes sense, maybe note which format strings are supported directly in the docs


Better API for strings in yasl.h

4 functions, based on heap or not, and C or YASL style.

merged into v0.6.2


FancyZones Allow zones to span across specific monitors instead of all monitors

Description of the new feature / enhancement
Instead of grouping all monitors together, it would be really helpful to be able to group individual monitors together.
Scenario when this would be used?
Home office with multiple monitors
From left to right:

Curved 4k monitor in landscape (identified as monitor 4)
Curved 4k monitor in landscape (identified as monitor 2)
Flat 4k monitor in portrait (identified as monitor 3)
Laptop display in landscape with non-standard 4k resolution (3840x2400)  (identified as monitor 1)

In this case, it would be helpful to group the two curved monitors together since they are physically right next to each other.
The third monitor should be have its own group since it's in portrait mode
The laptop display should be by itself since it uses 3840x2400 resolution instead of 3840x2160
Supporting information

Can I ask for the use case and layouts? Maybe you could snap windows to multiple zones that are on different monitors?

My request was more because of how unusable the feature was when I tried to see how it worked than an actual need for the feature.

I see. The rectangle encloses all displays, which means it has blind areas. You might be better off turning that setting off.

Yes, that's why I was thinking it would be handy to group monitors 2 & 4 in the description. I've turned the option off for now.  I didn't realize the sheer volume of issues that have the FancyZones-Layouts label.


Fix pharos-site development environment

Expected behavior
Running yarn site:develop should run pharos site successfully locally
Actual behavior
Locally, I am seeing blank page and console errors after running yarn site:develop. (More in Additional Information)
Steps to reproduce the issue

On develop branch, run yarn site:develop
Gatsby service with pharos site docs, should be running on http://localhost:8000
Visiting, http://localhost:8000 displaying blank page and having above mentioned console error (from Actual Behavior)

Screenshots or code
If applicable, add screenshots or code to help explain the issue.
Pharos version
pharos site: 5.13.4
Your environment

OS: MacOS
Browser: Chrome
Version: 117.0.5938.149

Additional information
After running yarn site:develop, I see blank page with below console error:
Uncaught Error: ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: ../../node_modules/gatsby-plugin-mdx/loaders/mdx-components.js.
Also, I see this warn message during build process: warn ../../node_modules/gatsby-plugin-mdx/wrap-root-element.js Attempted import error: 'plugins' is not exported from './loaders/mdx-components' (imported as 'mdxPlugins').

I believe this is because of the current version of gatsby-plugin-mdx, which we can resolve by:

Upgrading to MDX 3 (this is involved, a bit)
Upgrading to Gatsby 5 (I think this is ~free once we upgrade MDX)
Upgrading gatsby-plugin-mdx to latest version

@ithaka/pharos-maintainers
versions:
node v20.11.1
I am back at this issue and I am not seeing this happening anymore.  There is no console error anymore and i could see both yarn site:serve and yarn site:develop commands working as expected.  Can someone confirm you are seeing same behavior please ?
However, pages such as Icon are currently broken and from console errors I understand its related to recent ally-label change we made in v14. I categorize this behavior as completely different issue.


Hue Search Dashboard: log scaled y-axis

Feature Proposal:
With data that spans multiple orders of magnitude, e.g. in a bar chart, the auto-zoom kills small values. A log scaled y-axis would help here.

That would make sense, we are going to bump the Search app in Q4 this year, so will have a look at this improvement at that time


Not able to run code based on examples/lightrag_ollama_demo.py

When I run  code based  on examples/lightrag_ollama_demo.py I get following error, see below.
This happens with llm_model_name="gemma2:2b"
python3.11/site-packages/tiktoken/model.py", line 84, in encoding_name_for_model
    raise KeyError(
KeyError: 'Could not automatically map gpt-4o-mini to a tokeniser. Please use `tiktoken.get_encoding` to explicitly get the tokeniser you expect.'

Can you suggest a solution?

Hello,
I didnt face error with lightrag_ollama_demo.py, when i used the sample code from repo using gemma2:2b.
I created a new env, followed setup procedure as listed under readme.
Then ollama pull gemma2:2b

Well the error is about wrong tokeniser in my python 3.11 environment maybe that is the problem.
What python version do you use?
My script references local docs, I will try with what you have posted and let you know.
I actually got it running by adding this line:
tiktoken_model_name="gpt2"
just before
 embedding_func=EmbeddingFunc(
But it did not seem to make any progress and I had to kill it after couple of hours.
How long was it running on your PC?

Here is the result, still seeing the error
INFO:lightrag:Writing graph with 0 nodes, 0 edges
Traceback (most recent call last):
File ./rag_ollama_demo.py", line 31, in
rag.insert(f.read())
File "miniconda3/lib/python3.11/site-packages/lightrag/lightrag.py", line 167, in insert
return loop.run_until_complete(self.ainsert(string_or_strings))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "miniconda3/lib/python3.11/asyncio/base_events.py", line 653, in run_until_complete
return future.result()
^^^^^^^^^^^^^^^
File "miniconda3/lib/python3.11/site-packages/lightrag/lightrag.py", line 192, in ainsert
for dp in chunking_by_token_size(
^^^^^^^^^^^^^^^^^^^^^^^
File "miniconda3/lib/python3.11/site-packages/lightrag/operate.py", line 32, in chunking_by_token_size
tokens = encode_string_by_tiktoken(content, model_name=tiktoken_model)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "miniconda3/lib/python3.11/site-packages/lightrag/utils.py", line 121, in encode_string_by_tiktoken
ENCODER = tiktoken.encoding_for_model(model_name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "miniconda3/lib/python3.11/site-packages/tiktoken/model.py", line 97, in encoding_for_model
return get_encoding(encoding_name_for_model(model_name))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "miniconda3/lib/python3.11/site-packages/tiktoken/model.py", line 84, in encoding_name_for_model
raise KeyError(
KeyError: 'Could not automatically map gpt-4o-mini to a tokeniser. Please use tiktoken.get_encoding to explicitly get the tokeniser you expect.'

I'm using 3.10. I've not changed anything from the og script.


Possible bug in error handling of files in dev version of build 21354

I installed the new build preview of windows 10 that is in the "dev" phase on the insiders, the build is 21354, I set the files as the default manager file for windows 10 with the files that you have available to change the registry, when I did this, he displayed a notification saying: "An error not expected by the developers appeared, report", then, I went to test to see what had happened, to see if it was opening and such, I went to open it by firefox, and to my surprise, everything was normal , to be able to open files see the properties and everything, so I believe it was a "false" error warning on the part of the files.

@matheus1776 Could you please upload the log file? You can find it in %localappdata%\Packages\49306atecsolution.FilesUWP_et10x9a9vyk8t\LocalState

debug.txt

Thanks for the additional info. It looks like this was not a false positive, as there was indeed an unhandled exception thrown. There doesn't seem to be an issue open for this. If you could make a new one, it would be greatly appreciated.
Here is the exception info:
Parameter name: index|System.ArgumentOutOfRangeException: Index larger than max value.
Parameter name: index
   at System.Runtime.InteropServices.WindowsRuntime.IVector_CCWAdapter.EnsureIndexInt32(UInt32, Int32) + 0x74
   at System.Runtime.InteropServices.WindowsRuntime.IBindableVector_CCWAdapter.GetAt(IList, UInt32) + 0x26
   at System.Collections.IList__Impl.Vtbl.GetAt__n(IntPtr, UInt32, Void**) + 0x3e
   at System.Runtime.InteropServices.McgMarshal.ThrowOnExternalCallFailed(Int32, RuntimeTypeHandle) + 0x21
   at __Interop.ComCallHelpers.Call(__ComObject, RuntimeTypeHandle, Int32) + 0xb8
   at __Interop.ForwardComStubs.Stub_19[TThis](__ComObject, Int32) + 0x24
   at Microsoft.AppCenter.Utils.ApplicationLifecycleHelper.<.ctor>b__17_1(Object, UnhandledErrorDetectedEventArgs) + 0x3d
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() + 0x21
   at Microsoft.AppCenter.Utils.ApplicationLifecycleHelper.<.ctor>b__17_1(Object, UnhandledErrorDetectedEventArgs) + 0x75
   at System.EventHandler`1.Invoke(Object, TEventArgs) + 0x2e
   at __Interop.Intrinsics.HasThisCall__24[TArg0](Object, IntPtr, Object, TArg0) + 0x36
   at Files!<BaseAddress>+0x158d6e0


Form validator : reset ?

Hello Olton,
Is there a way to reset form validator ?
I've got a form in a dialog  : when I click cancel (button type=reset) my dialog is closed and value reseted.
But if I call the form again it load with the last validator state.

create example pen for your problem code on codepen.io

https://codepen.io/Falconpage/pen/dedVex
Click test then add a value to input name only then press the test button.
Form Validator display errors.
Press Cancel : form is closed and reseted.
Now load de form again : as you can see the validator is not reseted.

https://codepen.io/olton/pen/jxZxpP
Let it be for now. In 4.2.6, I'll add the method to the validator

4.2.6

[x] Validator: add func reset for reset field state
[x] Validator: add auto method reset for forms with role validator

Perfect, thanks ! Great work


Clear the suggestion on copy-earlier-word

The test isn't correct, I can't actually get it to fail. Hoping for some input here.

This aims to fix #437 .

Thanks! It looks like async mode has to be enabled for copy-earlier-word to fail. See #319 for a fix to a very similar issue. Any widget that relies on $LASTWIDGET will likely break in async mode, since the autosuggest-suggest widget is called asynchronously when the suggestion is ready, overwriting the previous value of $LASTWIDGET that the other widget is expecting.


References to IDictionary and ICollection are not links

You can see several references in this doc to things like System.Collections.Generic.IDictionary`2.Add(`0,`1). It seems like these things were intended to be links. There are some in the "See Also" section and some outside of it.
Adam Comella
Microsoft Corp.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: f6dd1542-eb79-4a77-bc94-717598a7d78a
Version Independent ID: cea7f775-1e01-b306-bdc5-b78fa69b541b
Content: IDictionary<TKey, TValue>.Item Property (System.Collections.Generic) - UWP app developer
Content Source: https://cpubwin.visualstudio.com/DefaultCollection/windows-uwp/_git/winrt-api-build?path=%2fwinrt-api-build%2fwindows.foundation.collections.valueset.yml&version=GBlive&_a=contents
Product: windows
Git Login: wdg-dev-content
Microsoft Alias: wdg-dev-content

This page no longer exists. I'm going to close this issue.


Add is.gd URL shortening API

[x] My submission is formatted according to the guidelines in the contributing guide
[x] My addition is ordered alphabetically
[x] My submission has a useful description
[x] The description does not end with punctuation
[x] Each table column is padded with one space on either side
[x] I have searched the repository for any relevant issues or pull requests
[x] Any category I am creating has the minimum requirement of 3 items
[x] All changes have been squashed into a single commit

@yannbertrand

Thanks for your contribution @theabbie 😆


'e' command do not open emcas

I've installed emacs24 and enabled emacs plugin in or-my-zsh .zshrc file. Then when I tried open emacs using e command it is immedialty quiting (going back to promt). No error or any other messages are shown on command line.
My quick fix if to modify emacsclient.sh file:
diff --git a/plugins/emacs/emacsclient.sh b/plugins/emacs/emacsclient.sh
index 625201a..636339d 100755
--- a/plugins/emacs/emacsclient.sh
+++ b/plugins/emacs/emacsclient.sh
@@ -1,7 +1,7 @@
 #!/bin/sh

 # get list of available X windows.
-x=`emacsclient --alternate-editor '' --eval '(x-display-list)' 2>/dev/null`
+x=`emacsclient -t --alternate-editor '' --eval '(x-display-list)' 2>/dev/null`

 if [ -z "$x" ] || [ "$x" = "nil" ] ;then
     # Create one if there is no X window yet.

Now, all emacs command will open emacs frame in current terminal. I'm not sure if this is the proper fix for this problem (eg. maybe one would prefer to have '-c' instead of '-t' there)

Open a PR to discuss this solution

I tried the above quick fix and it works fine.
However, when I start "emacs" my theme gone and also "emacs -nw" is not working. I think more change must be done in order to make this script work for emacs24.
emacs 24.4
zsh 5.0.2

I'd really like to see a full fix for emacs24. Maybe I can provide some help?

This -e flag fixed my problem when killing last Emacs frame using  c-x c-c (save-buffers-kill-terminal) and then trying to open something using oh-my-zsh emacs plugin.
Looking forward to see PR resolving this issue.

Any news on this issue?

I have this problem, too.

On my Ubuntu server, I have this problem too.
It works for me with this PR


⚠ ClamAV has degraded performance

In 88a85d9, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 79 ms

Resolved: ClamAV performance has improved in 88e7eaa.


AssertionError: barracks.store.start.send: cb should be a function -- in subscriptions

Expected behavior
Let me execute send with two arguments
Actual behavior
It throw and error and say me it need a third argument (cb)
Steps to reproduce behavior
subscriptions: [
(send, done) => {
setInterval(() => {
send('app:add', { payload: 'dog?' }), 1000)
},1000)
}
]

Hey, so you can't send multiple arguments in send() - when sending data from inside a model it expects exactly three arguments: the name of the action you're calling, the data you want to send, and finally a callback to handle errors through the global onError() hook. So if you want to send two values, you'd have to either send an array or object containing them.
To update your example:
subscriptions: [
  (send, done) => {
    setInterval(() => {
      send('app:add', { payload: 'dog?', myOtherValue: 1000 }), (err) => {
        if (err) return done(err)
      })
    }, 1000)
  }
]

I hope this answers your question! :sparkles:

Also stumbled upon this. Better documentation that you need to provide a callback here would be awesome. And what it is for. Just to add some weight here.

@yoshuawuyts, the example you just provided has a minor syntax error, you closed the send method before adding the error callback.
subscriptions: [
  (send, done) => {
    setInterval(() => {
      send('app:add', { payload: 'dog?', myOtherValue: 1000 }), (err) => {
        if (err) return done(err)
      })
    }, 1000)
  }
]

should be
subscriptions: [
  (send, done) => {
    setInterval(() => {
      send('app:add', { payload: 'dog?', myOtherValue: 1000 }, (err) => {
        if (err) return done(err)
      })
    }, 1000)
  }
]

Also since this example is almost exactly the same as the subscriptions example in the documentation, I feel it needs to be updated to include the error handler.
I made a pull request with these changes https://github.com/yoshuawuyts/choo/pull/139.
Also I added an update to the send documentation to include an optional callback handler send(actionName, data[, callback]) since this needs to be addressed for any calls to send inside a model.

@traducer oooh, yeah - thanks for that! :grin:


./bin/build fails

I followed the steps here: https://github.com/cloudfoundry/cli#building
But the build fails:
Generating Binary...
 Generating i18n Resource file
flag provided but not defined: -ignore
Usage: go-bindata [options] <input directories>

I removed -ignore ".go" from https://github.com/cloudfoundry/cli/blob/master/bin/generate-language-resources#L8 and it worked.
It looks like go-bindata changed it's CLI.

Can you post the output of go-bindata -version, please?

Hi! Off course:
$ go-bindata --version
go-bindata 3.1.0 (Go runtime go1.2).
Copyright (c) 2010-2013, Jim Teeuwen.

@dodev: I am also running v3.1.0, and -ignore is a valid flag. Maybe try reinstalling go-bindata?
$ go-bindata -h
Usage: go-bindata [options] <input directories>
  -debug=false: Do not embed the assets, but provide the embedding API. Contents will still be loaded from disk.
  -dev=false: Similar to debug, but does not emit absolute paths. Expects a rootDir variable to already exist in the generated code's package.
  -ignore=: Regex pattern to ignore
  -mode=0: Optional file mode override for all files.
  -modtime=0: Optional modification unix timestamp override for all files.
  -nocompress=false: Assets will *not* be GZIP compressed when this flag is specified.
  -nomemcopy=false: Use a .rodata hack to get rid of unnecessary memcopies. Refer to the documentation to see what implications this carries.
  -nometadata=false: Assets will not preserve size, mode, and modtime info.
  -o="./bindata.go": Optional name of the output file to be generated.
  -pkg="main": Package name to use in the generated code.
  -prefix="": Optional path prefix to strip off asset names.
  -tags="": Optional set of build tags to include.
  -version=false: Displays version information.
$ go-bindata -version
go-bindata 3.1.0 (Go runtime go1.4.2).
Copyright (c) 2010-2013, Jim Teeuwen.

The difference looks to be the version of golang: @dodev is running 1.2, and @simonleung8 is running 1.4.2. Trying using 1.4.2?

I should have stated this, but I also tried running it in go v.1.2.2 and the -ignore flag is still valid

Maybe it's because I'm running it on linux (debian/stable)?

@dodev I've just run this on an Ubuntu machine without hiccups. Could you please post the output of go-bindata -h?

Hi, I still don't have -ignore flag:
dodev@dodev-nb-linux ~/source/gocode $ go-bindata -h
Usage: go-bindata [options] <input directories>

  -debug=false: Do not embed the assets, but provide the embedding API. Contents will still be loaded from disk.
  -nocompress=false: Assets will *not* be GZIP compressed when this flag is specified.
  -nomemcopy=false: Use a .rodata hack to get rid of unnecessary memcopies. Refer to the documentation to see what implications this carries.
  -o="./bindata.go": Optional name of the output file to be generated.
  -pkg="main": Package name to use in the generated code.
  -prefix="": Optional path prefix to strip off asset names.
  -tags="": Optional set of uild tags to include.
  -version=false: Displays version information.

I updated the go-bindata source and then rebuilt it, but still no -ignore flag in the cli. Very strange.
BTW, I used the following command to get go-bindata: go get github.com/jteeuwen/go-bindata/..., like it's suggested in cloudfoundry/cli/README.md

git log -n1?

$ git show
commit a0ff2567cfb70903282db057e799fd826784d41d
Merge: bfe36d3 8ed2cd0
Author: Jim Teeuwen<EMAIL_ADDRESS>Date:   Fri Oct 23 11:11:02 2015 +0200

    Merge pull request #115 from grobie/fix-go-fmt

    Fix go format of generated code

Part of the problem with go-bindata is that -version has had the same output for a long time.
Here's when -ignore arrived: https://github.com/jteeuwen/go-bindata/commit/7f6fddddd093fa329c7b5441c38b4d9d2ef87472
As you can tell, that is tagged as early as v3.06. At v3.06, guess what -version gave?
https://github.com/jteeuwen/go-bindata/blob/1743f47c0112eff669b0199889670d61384b4730/go-bindata/version.go
So getting your -version to determine what version you have turned out to be pointless.
Can you do:
mv $GOPATH/bin/go-bindata{,.old}
cd $GOPATH/src/github.com/jteeuwen/go-bindata
go install ./...
go-bindata

...and see if that last invocation has the full command set?

OK, I figured it out. It was an issues with my go environment configuration.
So I tried what @camelpunch suggested and still got the old command set.
I did a git log in jtweeuwen/go-bindata and the commit which added support for -ignore was there. So I did a manual build in the same directory go build -o gobd go-bindata/*. As a result I got a binary file, which when called with --help showed the new command set:
$ ./gobd --help
Usage: ./gobd [options] <input directories>

  -debug=false: Do not embed the assets, but provide the embedding API. Contents will still be loaded from disk.
  -dev=false: Similar to debug, but does not emit absolute paths. Expects a rootDir variable to already exist in the generated code's package.
  -ignore=: Regex pattern to ignore
...

I thought that this is very weird. How come go install build a version of go-bindata that is pre-2014.
So I checked the executable I was working with globally:
dodev@dodev-nb-linux ~ $ which go-bindata
/usr/bin/go-bindata
dodev@dodev-nb-linux ~ $ dpkg -s go-bindata
Package: go-bindata
Status: install ok installed
Priority: extra
Section: devel
Installed-Size: 2328
Maintainer: Debian Go Packaging Team<EMAIL_ADDRESS>Architecture: amd64
Source: golang-bindata
Version: 3.0.5-1
....

So I checked my go environment configuration and there it was:
export PATH=$PATH:$GOPATH/bin

The global path overrides my locally build executables. I just switched the places of the local and global path and the script cloudfoundry/cli/bin/build worked like a charm.
I did my go environment configuration by the go lang's Getting Started Guide and I used the golang packages provided with debian stable.
I hope this thread helps solving future problems with building the cf executable on debian machines.

Thanks for sharing!


Added new config to keep the same line when switching between diffEditors

This PR fixes #155036.
Added a new boolean config diffEditor.keepLine.
If enabled, switching between diffEditors with a command (workbench.action.compareEditor.focusPrimarySide, workbench.action.compareEditor.focusSecondarySide, workbench.action.compareEditor.focusOtherSide) will keep the cursor on the same line.

The current implementation jumps to the last focused line, I see it potentially useful for merge conflicts.
Maybe we can keep the config but instead of a boolean we can explicit the "strategy" that would be either corresponding line or last focused and if we see this new feature as way metter, set it as default.

@hediet @Balastrong  Hello! I stumbled upon this PR when trying to figure out if it's possible to sync the cursor between diff panels today. Is this PR still expected to be merged? Is there any help needed? It would be shame to leave it like this, unless there's already a different way to do it.


Feature Request: Automatically parse CSV files from supported banks on import (PR?)

In the last days, I've written a tool called You Need A Parser that allows users to parse bank statements from a variety of banks (40+ from over 15 countries, and more to come) into a CSV format that's readable by YNAB. The parsing and conversion happen entirely in-browser and I've published the parsers as a separate NPM package called ynap-parsers (source).
Currently, the tool converts files but doesn't add them to YNAB automatically. It would be awesome to include this package in toolkit-for-ynab so it can automatically parse files into the right format when they're dragged into YNAB. I'd be open to creating a PR for that if you think that this feature fits the scope of your extension.

@leolabs I've done a poor job reading every issue (WE HAD SO MANY) so I completely missed this. If you'd like, I can add you to our discord and we can chat about using this in an "Upload" feature of some sort?

Hey @joshmadewell, no worries :)
Sounds good. My username is leolabs#9005.

Is this still pending on @leolabs ?
As I'm located in Europe, I'm surprised this is not upvoted. Uploading directly to YNAB would be faster than uploading to a converter and then uploading to YNAB.

I had intended to implement it, but stopped using YNAB in September 2020. If you would like to take over this work, that would be awesome! My converter is open-source and neatly packaged on NPM, so it should be fairly straight-forward from that perspective.

Thanks but it would be better to integrate its code to https://github.com/bank2ynab/bank2ynab

ynap-parsers uses bank2ynab's format definitions, so it supports all CSV formats that bank2ynab supports, plus some formats that are specifically written for ynap-parsers, like the XLSX that some banks output. It's already written in JS and optimized for the browser, so using it would be the easiest way to go. I'm open about merging with bank2ynab, but I think the purposes of the two projects differ too much for that.