useSupabaseSession() returning different results at same routes

Version
@nuxtjs/supabase: 1.2.0
nuxt: 3.11.1
Reproduction Link
I am unable to provide one for personal reasons.
However I can provide parts of the code:
~/middleware/check-already-signed-in.ts
import { clientComposable } from "~/utils/client";
import {useSupabaseSession} from "#imports";

export default defineNuxtRouteMiddleware(async (to, from) => {
    const client = clientComposable();
    const user = useSupabaseSession();

    if (user.value) {
        console.log('User is already authenticated - Redirecting to /dashboard');
        return navigateTo("/dashboard");
    }
});

~/middleware/check-not-signed-in.ts
import { clientComposable } from "~/utils/client";
import {useSupabaseSession} from "#imports";

export default defineNuxtRouteMiddleware(async (to, from) => {
    const client = clientComposable();
    const user = useSupabaseSession();

    if (!user.value && to.path !== "/signin") {
        console.log('User is not authenticated - Redirecting to /signin');
        return navigateTo("/signin");
    }
});

~/pages/signin.vue
<script setup lang="ts">
definePageMeta({
    middleware: ['check-already-signed-in']
});
/* impl. not shown */
/* Supabase auth method is via Email OTP, and pin code is inputted in the same page here */
</script>

<template>
    <!-- stuff here -->
</template>

~/pages/dashboard.vue
<script setup lang="ts">
definePageMeta({
    middleware: ['check-not-signed-in']
});
/* impl. not shown */
</script>

<template>
    <!-- stuff here -->
</template>

Steps to reproduce

Copy and paste the components with their respective directories and stuff in to a project
Run the project
Go to the sign in page and try to sign in
Bug, constantly redirects you inbetween /signin and /dashboard

What is Expected?
Both middlewares should detect that, after signing in, a valid session is present and then user is present and allowed in the /dashboard, while at this time accessing /signin will redirect to /dashboard as the user has a valid session.
What is actually happening?
The middleware check-already-signed-in.ts 's reference to the useSupabaseSession()'s value is null while the other middleware's session value is not null. I used console log to show their values and one of them are always null and the other is always present.


Use esbuild-loader with webpack

https://github.com/privatenumber/esbuild-loader

Coverage remained the same at 99.383% when pulling 381a7dfa395785d1825f104dbc6158f6a6f60c34 on use-esbuild-loader-with-webpack into cd4fc95ddf25f709870b59699c91ffeae5522fd6 on master.

Try using tsconfig.json?
https://github.com/privatenumber/esbuild-loader#configuration

Try using tsconfig.json?
https://github.com/privatenumber/esbuild-loader#configuration

Update: tsconfigRaw doesn't offer much.

Before: Done in 106.64s.
After: Done in 38.06s.


disable bayesopt

Issue #, if available:
https://github.com/awslabs/autogluon/issues/1492
Description of changes:
Disabled bayesopt and use random instead.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Job PR-1497-1 is done.
Docs are uploaded to http://autogluon-staging.s3-website-us-west-2.amazonaws.com/PR-1497/1/index.html


Rust: grouped multiline imports do not split correctly

The plugin does not handle Rust's grouped imports correctly when they're multiline.
(█ is the cursor's position)
use █crate::{
	import1, import2
};

// Is split into
use █crate::import1;
use crate::import2;
	import1, import2
};

// Should be split into
use █crate::import1;
use crate::import2;

Joining first (which puts the imports on the same line), then splitting works as a workaround.

When splitting, the plugin mostly checks a single line and doesn't go farther than that. There might be some existing special cases (I think ruby's case statement breaks this principle), but I try to stick to "split one line, join multiple" as a rule. It's much easier to deal with the contents of a single line and much easier to say "this one line doesn't match a pattern, so let's move on".
In this particular case, it seems easy enough to handle the multiline case, and I can't help but admit it would be convenient for it to work -- I've hit similar situations myself. So I've applied a fix in the main branch. But if it turns out that this complicates something in the future, I might disable it and request that users join first, then split.
For now, though, it should be working and I can't see any failing tests. Could you try it out as well and let me know if you hit any new bugs?

Thanks!
I do hit a minor bug, yes; split imports seem to lose the trailing newline:
use █std::collections::{
	HashMap,
	HashSet
};
use std::error::Error;

// Is split into
use █std::collections::HashMap;
use std::collections::HashSet;use std::error::Error;

Pushed a fix. Try now?

WFM at 64f68a6, thanks!


When connecting to a server, the registered scene prefabs remain disabled (plus spawn-in questions)

This is a two-part issue ticket. Let's start with the puzzler:
In my test scene, I have 2 prefabs that are called "Floor" and "Game". "Game" contains management scripts that the controller I'm porting to TinyBirdNet. Each gameobject has an attached TinyNetIdentity and the Asset GUID is correctly set (as part of the prefab saving process). For example, here's what the "Game" gameobject has attached:

And I have them in the scene, enabled as usual:

However, upon connecting to the server, they get disabled and never get re-enabled (as in, they get grayed out in the inspector). I don't know what's going on, but I have a Network Manager gameobject that contains a very barebones script as follows:
using UnityEngine;
using TinyBirdNet;

public class ExperimentalTinyBirdNetManager : TinyNetGameManager
{
    string hostAddress = "<IP_ADDRESS>";
    int hostPort = 31337;

    // Use this for initialization
    private void Start()
    {
        print("ExperimentalTinyBirdNetManager started up");

        instance.SetPort(hostPort);
        instance.StartServer();

        instance.StartClient();
        instance.ClientConnectTo(hostAddress, hostPort);
    }

    public override void ClientConnectTo(string hostAddress, int hostPort)
    {
        base.ClientConnectTo(hostAddress, hostPort);
    }

    public void OnClientReady()
    {
        print("OnClientReady fired!!");
    }
}

Part 2 of the issue ticket:
What would be the TinyBirdNet Equivalent of this UNET code?
      public override void OnServerAddPlayer(NetworkConnection conn)
        {
            var spawnPosition = Vector3.right * conn.connectionId;
            var player = GameObject.Instantiate(playerPrefab, spawnPosition, Quaternion.identity) as GameObject;
            NetworkServer.AddPlayerForConnection(conn, player);
        }

As you can probably tell, this code is called if you issue a server-side AddPlayer command on the Server side. It would spawn a player object and assign the connection as the owner of that GameObject. I see you either haven't implemented such functions or I'm looking in the wrong place. I cannot use TinyNetPlayerController as the kit I'm using would break and it already uses a lot of RPCs and whatnot for server <-> client communication.
If it's unimplemented then I am going to have to stop porting the kit my project uses to TinyBirdNet because this is a show-stopper.
Sidenote: This looks like a showstopper...

I'm in another country without a computer, but I will ever in contact as
soon as I can!
On Thu, Nov 1, 2018, 05:57 Coburn<EMAIL_ADDRESS>wrote:

This is a two-part issue ticket. Let's start with the puzzler:
In my test scene, I have 2 prefabs that are called "Floor" and "Game".
"Game" contains management scripts that the controller I'm porting to
TinyBirdNet. Each gameobject has an attached TinyNetIdentity and the Asset
GUID is correctly set (as part of the prefab saving process). For example,
here's what the "Game" gameobject has attached:
[image: image]
https://user-images.githubusercontent.com/1762115/47841374-1e56ae00-de05-11e8-83ce-a06ce709f4b9.png
And I have them in the scene, enabled as usual:
[image: image]
https://user-images.githubusercontent.com/1762115/47841402-33cbd800-de05-11e8-93e2-6d7e85f68c39.png
However, upon connecting to the server, they get disabled and never get
re-enabled (as in, they get grayed out in the inspector). I don't know
what's going on, but I have a Network Manager gameobject that contains a
very barebones script as follows:
using UnityEngine;using TinyBirdNet;
public class ExperimentalTinyBirdNetManager : TinyNetGameManager
{
string hostAddress = "<IP_ADDRESS>";
int hostPort = 31337;
// Use this for initialization
private void Start()
{
    print("ExperimentalTinyBirdNetManager started up");

    instance.SetPort(hostPort);
    instance.StartServer();

    instance.StartClient();
    instance.ClientConnectTo(hostAddress, hostPort);
}

public override void ClientConnectTo(string hostAddress, int hostPort)
{
    base.ClientConnectTo(hostAddress, hostPort);
}

public void OnClientReady()
{
    print("OnClientReady fired!!");
}

}
Part 2 of the issue ticket:
What would be the TinyBirdNet Equivalent of this UNET code?
  public override void OnServerAddPlayer(NetworkConnection conn)
    {
        var spawnPosition = Vector3.right * conn.connectionId;
        var player = GameObject.Instantiate(playerPrefab, spawnPosition, Quaternion.identity) as GameObject;
        NetworkServer.AddPlayerForConnection(conn, player);
    }

As you can probably tell, this code is called if you issue a server-side
AddPlayer command on the Server side. It would spawn a player object and
assign the connection as the owner of that GameObject. I see you either
haven't implemented such functions or I'm looking in the wrong place. I
cannot use TinyNetPlayerController as the kit I'm using would break and it
already uses a lot of RPCs and whatnot for server <-> client communication.
If it's unimplemented then I am going to have to stop porting the kit my
project uses to TinyBirdNet because this is a show-stopper.
Sidenote: This looks like a showstopper...
[image: image]
https://user-images.githubusercontent.com/1762115/47842204-bc4b7800-de07-11e8-89b5-7ee24ebdf60e.png
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/Saishy/TinyBirdNet-Unity/issues/11, or mute the
thread
https://github.com/notifications/unsubscribe-auth/AB6zzMzA1vIrMb_5JN-zS4UkrIvTK2vNks5uqrdjgaJpZM4YGBGs
.


FCM did not received push notification when background mode for ios10

I'm developing app with iOS 10.
push notification works fine with foreground mode, but not working when it turned to background mode.
here is my appDelegate.m
#import "AppDelegate.h"

#if defined(__IPHONE_10_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_10_0
@import UserNotifications;
#endif

@import FirebaseInstanceID;
@import FirebaseMessaging;

// Implement UNUserNotificationCenterDelegate to receive display notification via APNS for devices
// running iOS 10 and above. Implement FIRMessagingDelegate to receive data message via FCM for
// devices running iOS 10 and above.
#if defined(__IPHONE_10_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_10_0
@interface AppDelegate () <UNUserNotificationCenterDelegate, FIRMessagingDelegate>
@end
#endif

// Copied from Apple's header in case it is missing in some cases (e.g. pre-Xcode 8 builds).
#ifndef NSFoundationVersionNumber_iOS_9_x_Max
#define NSFoundationVersionNumber_iOS_9_x_Max 1299
#endif

@interface AppDelegate ()

@end

@implementation AppDelegate

NSString *const kGCMMessageIDKey = @"gcm.message_id";

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    // Register for remote notifications. This shows a permission dialog on first run, to
    // show the dialog at a more appropriate time move this registration accordingly.
    if (floor(NSFoundationVersionNumber) <= NSFoundationVersionNumber_iOS_7_1) {
        // iOS 7.1 or earlier. Disable the deprecation warnings.
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
        UIRemoteNotificationType allNotificationTypes =
        (UIRemoteNotificationTypeSound |
         UIRemoteNotificationTypeAlert |
         UIRemoteNotificationTypeBadge);
        [application registerForRemoteNotificationTypes:allNotificationTypes];
#pragma clang diagnostic pop
    } else {
        // iOS 8 or later
        // [START register_for_notifications]
        if (floor(NSFoundationVersionNumber) <= NSFoundationVersionNumber_iOS_9_x_Max) {
            UIUserNotificationType allNotificationTypes =
            (UIUserNotificationTypeSound | UIUserNotificationTypeAlert | UIUserNotificationTypeBadge);
            UIUserNotificationSettings *settings =
            [UIUserNotificationSettings settingsForTypes:allNotificationTypes categories:nil];
            [[UIApplication sharedApplication] registerUserNotificationSettings:settings];
        } else {
            // iOS 10 or later
#if defined(__IPHONE_10_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_10_0
            UNAuthorizationOptions authOptions =
            UNAuthorizationOptionAlert
            | UNAuthorizationOptionSound
            | UNAuthorizationOptionBadge;

            [[UNUserNotificationCenter currentNotificationCenter] requestAuthorizationWithOptions:authOptions completionHandler:^(BOOL granted, NSError * _Nullable error) {
            }];

            // For iOS 10 display notification (sent via APNS)
            [UNUserNotificationCenter currentNotificationCenter].delegate = self;

            // For iOS 10 data message (sent via FCM)
            [FIRMessaging messaging].remoteMessageDelegate = self;
#endif
        }

        [[UIApplication sharedApplication] registerForRemoteNotifications];
        // [END register_for_notifications]
    }

    // [START configure_firebase]
    [FIRApp configure];
    // [END configure_firebase]
    // Add observer for InstanceID token refresh callback.
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(tokenRefreshNotification:)
                                                 name:kFIRInstanceIDTokenRefreshNotification object:nil];

//    NSString *refreshedToken = [[FIRInstanceID instanceID] token];
//    NSLog(@"Current Token : %@", refreshedToken);
    return YES;
}

// [START receive_message]
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {
    // If you are receiving a notification message while your app is in the background,
    // this callback will not be fired till the user taps on the notification launching the application.
    // TODO: Handle data of notification

    // Print message ID.
    if (userInfo[kGCMMessageIDKey]) {
        NSLog(@"Message ID: %@", userInfo[kGCMMessageIDKey]);
    }

    // Print full message.
    NSLog(@"%@", userInfo);
}

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler {
    // If you are receiving a notification message while your app is in the background,
    // this callback will not be fired till the user taps on the notification launching the application.
    // TODO: Handle data of notification

    // Print message ID.
    if (userInfo[kGCMMessageIDKey]) {
        NSLog(@"Message ID: %@", userInfo[kGCMMessageIDKey]);
    }

    // Print full message.
    NSLog(@"%@", userInfo);

    completionHandler(UIBackgroundFetchResultNewData);
}
// [END receive_message]

// [START ios_10_message_handling]
// Receive displayed notifications for iOS 10 devices.
#if defined(__IPHONE_10_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_10_0
// Handle incoming notification messages while app is in the foreground.
- (void)userNotificationCenter:(UNUserNotificationCenter *)center
       willPresentNotification:(UNNotification *)notification
         withCompletionHandler:(void (^)(UNNotificationPresentationOptions))completionHandler {
    // Print message ID.
    NSDictionary *userInfo = notification.request.content.userInfo;
    if (userInfo[kGCMMessageIDKey]) {
        NSLog(@"Message ID: %@", userInfo[kGCMMessageIDKey]);
    }

    // Print full message.
    NSLog(@"%@", userInfo);
}

// Handle notification messages after display notification is tapped by the user.
- (void)userNotificationCenter:(UNUserNotificationCenter *)center
didReceiveNotificationResponse:(UNNotificationResponse *)response
         withCompletionHandler:(void (^)())completionHandler {
    NSDictionary *userInfo = response.notification.request.content.userInfo;
    if (userInfo[kGCMMessageIDKey]) {
        NSLog(@"Message ID: %@", userInfo[kGCMMessageIDKey]);
    }

    // Print full message.
    NSLog(@"%@", userInfo);
}

#endif
// [END ios_10_message_handling]

// [START ios_10_data_message_handling]
#if defined(__IPHONE_10_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_10_0
// Receive data message on iOS 10 devices while app is in the foreground.
- (void)applicationReceivedRemoteMessage:(FIRMessagingRemoteMessage *)remoteMessage {
    // Print full message
    NSLog(@"%@", [remoteMessage appData]);
}
#endif
// [END ios_10_data_message_handling]

// [START refresh_token]
- (void)tokenRefreshNotification:(NSNotification *)notification {
    // Note that this callback will be fired everytime a new token is generated, including the first
    // time. So if you need to retrieve the token as soon as it is available this is where that
    // should be done.
    NSString *refreshedToken = [[FIRInstanceID instanceID] token];
    NSLog(@"InstanceID token: %@", refreshedToken);

    // Connect to FCM since connection may have failed when attempted before having a token.
    [self connectToFcm];

    // TODO: If necessary send token to application server.
}
// [END refresh_token]

// [START connect_to_fcm]
- (void)connectToFcm {
    [[FIRMessaging messaging] connectWithCompletion:^(NSError * _Nullable error) {
        if (error != nil) {
            NSLog(@"Unable to connect to FCM. %@", error);
        } else {
            NSLog(@"Connected to FCM.");
        }
    }];
}
// [END connect_to_fcm]

- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error {
    NSLog(@"Unable to register for remote notifications: %@", error);
}

// This function is added here only for debugging purposes, and can be removed if swizzling is enabled.
// If swizzling is disabled then this function must be implemented so that the APNs token can be paired to
// the InstanceID token.
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
    NSLog(@"APNs token retrieved: %@", deviceToken);

    // With swizzling disabled you must set the APNs token here.
    // [[FIRInstanceID instanceID] setAPNSToken:deviceToken type:FIRInstanceIDAPNSTokenTypeSandbox];
}

// [START connect_on_active]
- (void)applicationDidBecomeActive:(UIApplication *)application {
    [self connectToFcm];
}
// [END connect_on_active]

// [START disconnect_from_fcm]
- (void)applicationDidEnterBackground:(UIApplication *)application {
    [[FIRMessaging messaging] disconnect];
    NSLog(@"Disconnected from FCM");

    int countNoti = 0;
    for(NSString *notiKey in unreadList) {
        NotiClass *tmpNoti = [unreadList objectForKey:notiKey];
        if([tmpNoti.notiType isEqualToString:@"FUTURE"]) {

        } else {
            countNoti++;
        }
    }

    [UIApplication sharedApplication].applicationIconBadgeNumber = countNoti;
}
// [END disconnect_from_fcm]

- (void)applicationWillResignActive:(UIApplication *)application {
    // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
    // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game.
}

- (void)applicationWillEnterForeground:(UIApplication *)application {
    // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background.
}

- (void)applicationWillTerminate:(UIApplication *)application {
    // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
    // Saves changes in the application's managed object context before the application terminates.
    [self saveContext];
}

Hi @choitaehun could you describe how you are sending the notification? Are you using the console or the REST API?

Hello, I have exactely the same problem, using sur firebase console.
Any insight ?

Hi @eussam, messages sent from the console use APNs for delivery so could you confirm that you are getting the didRegisterForRemoteNotificationsWithDeviceToken callback? Also if you disabled swizzling then you need to call setApnsToken

I saw on the Firebase site that for iOS 10.0, use UNUserNotificationCenter instead. I have written this in my didFinishLaunchWithOptions, I have also implemented its delegate method. but still not getting the instance id.

This is my AppDelegate code...
#import "AppDelegate.h"
@import UIKit;
@import Firebase;
@import FirebaseMessaging;
#import "MBProgressHUD.h"
#import "FacebookUtility.h"
#import <GooglePlus/GooglePlus.h>
#import "Stripe.h"
#import "Constants.h"
#import "ProviderDetailsVC.h"
#import <GoogleMaps/GoogleMaps.h>
#import "AGPushNoteView.h"
#import <FBSDKCoreKit/FBSDKCoreKit.h>
#import <Fabric/Fabric.h>
#import <Crashlytics/Crashlytics.h>
@import FirebaseInstanceID;
@implementation AppDelegate
@synthesize vcProvider;
#pragma mark -
#pragma mark - UIApplication Delegate
//constant define...
#define SYSTEM_VERSION_GRATERTHAN_OR_EQUALTO(v)  ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedAscending)
//end...

(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
if([[[UIDevice currentDevice] systemVersion] floatValue]>=8.0)
{
UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:(UIRemoteNotificationTypeBadge
|UIRemoteNotificationTypeSound
|UIRemoteNotificationTypeAlert) categories:nil];
[[UIApplication sharedApplication] registerUserNotificationSettings:settings];
}
else
{
//register to receive notifications
UIRemoteNotificationType myTypes = UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeSound;
[[UIApplication sharedApplication] registerForRemoteNotificationTypes:myTypes];
}
[UIApplication sharedApplication].applicationIconBadgeNumber = 0;
*/

#ifdef __IPHONE_8_0
//Right, that is the point
UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:(UIUserNotificationTypeAlert | UIUserNotificationTypeBadge | UIUserNotificationTypeSound) categories:nil];
[[UIApplication sharedApplication] registerUserNotificationSettings:settings];
#else
//register to receive notifications
UIRemoteNotificationType myTypes = UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeSound;
[[UIApplication sharedApplication] registerForRemoteNotificationTypes:myTypes];
#endif
//code for firebase...!

//For firebase....
//end code for firebase...!

//Working code for Firebase from Firebase testing app.
//[FIRApp configure];

if (floor(NSFoundationVersionNumber) <= NSFoundationVersionNumber_iOS_9_x_Max) {
UIUserNotificationType allNotificationTypes =
(UIUserNotificationTypeSound | UIUserNotificationTypeAlert | UIUserNotificationTypeBadge);
UIUserNotificationSettings *setting =
[UIUserNotificationSettings settingsForTypes:allNotificationTypes categories:nil];
[[UIApplication sharedApplication] registerUserNotificationSettings:setting];
} else {
// iOS 10 or later
    if (floor(NSFoundationVersionNumber) <= NSFoundationVersionNumber_iOS_9_x_Max) {
        UIUserNotificationType allNotificationTypes =
        (UIUserNotificationTypeSound | UIUserNotificationTypeAlert | UIUserNotificationTypeBadge);
        UIUserNotificationSettings *settings =
        [UIUserNotificationSettings settingsForTypes:allNotificationTypes categories:nil];
        [[UIApplication sharedApplication] registerUserNotificationSettings:settings];
    } else {
        // iOS 10 or later

#if defined(__IPHONE_10_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_10_0
UNAuthorizationOptions authOptions =
UNAuthorizationOptionAlert
| UNAuthorizationOptionSound
| UNAuthorizationOptionBadge;
[[UNUserNotificationCenter currentNotificationCenter] requestAuthorizationWithOptions:authOptions completionHandler:^(BOOL granted, NSError * _Nullable error) {
}];
        // For iOS 10 display notification (sent via APNS)
        [UNUserNotificationCenter currentNotificationCenter].delegate = self;
        // For iOS 10 data message (sent via FCM)
        [FIRMessaging messaging].remoteMessageDelegate = self;

#endif
}
    [[UIApplication sharedApplication] registerForRemoteNotifications];

    [FIRApp configure];
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(tokenRefreshNotification:)
                                                 name:kFIRInstanceIDTokenRefreshNotification object:nil];
}

// end of my code...

return YES;

}
#pragma mark - UNUserNotificationCenter Delegate // >= iOS 10

(void)userNotificationCenter:(UNUserNotificationCenter *)center willPresentNotification:(UNNotification *)notification withCompletionHandler:(void (^)(UNNotificationPresentationOptions options))completionHandler{
NSLog(@"User Info = %@",notification.request.content.userInfo);
completionHandler(UNNotificationPresentationOptionAlert | UNNotificationPresentationOptionBadge | UNNotificationPresentationOptionSound);
}

(void)userNotificationCenter:(UNUserNotificationCenter *)center didReceiveNotificationResponse:(UNNotificationResponse *)response withCompletionHandler:(void(^)())completionHandler{
NSLog(@"User Info = %@",response.notification.request.content.userInfo);
completionHandler();
}

#pragma mark -Firebase methods

(void)tokenRefreshNotification:(NSNotification *)notification {
// Note that this callback will be fired everytime a new token is generated, including the first
// time. So if you need to retrieve the token as soon as it is available this is where that
// should be done.
NSString *refreshedToken = [[FIRInstanceID instanceID] token];
NSLog(@"InstanceID token: %@", refreshedToken);
// Connect to FCM since connection may have failed when attempted before having a token.
[self connectToFcm];
// TODO: If necessary send token to application server.
//saving the refreshed token to userdefaults...
if(refreshedToken){
//any code...
}
}

(void)connectToFcm {
// Won't connect since there is no token
if (![[FIRInstanceID instanceID] token]) {
return;
}
// Disconnect previous FCM connection if it exists.
[[FIRMessaging messaging] disconnect];
[[FIRMessaging messaging] connectWithCompletion:^(NSError * _Nullable error) {
if (error != nil) {
NSLog(@"Unable to connect to FCM. %@", error);
} else {
NSLog(@"Connected to FCM.");
}
}];
}

// With "FirebaseAppDelegateProxyEnabled": NO

(void)application:(UIApplication *)application
didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
//NSString *strData = [[NSString alloc]initWithData:deviceToken encoding:NSUTF8StringEncoding];
NSLog(@"Device token%@", deviceToken);
[[FIRInstanceID instanceID] setAPNSToken:deviceToken
type:FIRInstanceIDAPNSTokenTypeSandbox];
}

(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler {
// If you are receiving a notification message while your app is in the background,
// this callback will not be fired till the user taps on the notification launching the application.
// TODO: Handle data of notification
// Print message ID.
if<EMAIL_ADDRESS>{
NSLog(@"Message ID: %@", userInfo[@"gcm.message_id"]);
}
// Print full message.
NSLog(@"My full data%@", userInfo);
NSString* bodyText  = [userInfo valueForKey:@"alert"];
NSMutableDictionary* aps = [userInfo valueForKey:@"aps"];
NSString* bText = [aps valueForKey:@"alert"];
NSLog(@"Body Text is = ", bodyText);
[self generateLocalNotification:bText];
completionHandler(UIBackgroundFetchResultNewData);
}
//AppDelegate.m

#if defined(__IPHONE_10_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_10_0
// Receive data message on iOS 10 devices while app is in the foreground.

(void)applicationReceivedRemoteMessage:(FIRMessagingRemoteMessage *)remoteMessage {
// Print full message
NSLog(@"This is the message whole structure%@", remoteMessage.appData);
NSLocalizedString(@"This is remote message%@", remoteMessage);
}

#ifdef __IPHONE_8_0

(void)application:(UIApplication *)application didRegisterUserNotificationSettings:(UIUserNotificationSettings *)notificationSettings
{
//register to receive notifications
[[UIApplication sharedApplication] registerForRemoteNotifications];
}

(void)application:(UIApplication *)application handleActionWithIdentifier:(NSString *)identifier forRemoteNotification:(NSDictionary *)userInfo completionHandler:(void(^)())completionHandler
{
//handle the actions
if ([identifier isEqualToString:@"declineAction"]){
}
else if ([identifier isEqualToString:@"answerAction"]){
}
}
#endif

#pragma mark -
#pragma mark - Push Notification Methods
/*

(void)application:(UIApplication *)application didRegisterUserNotificationSettings:(UIUserNotificationSettings *)notificationSettings
{
//register to receive notifications
[application registerForRemoteNotifications];
}

//For interactive notification only

(void)application:(UIApplication *)application handleActionWithIdentifier:(NSString *)identifier forRemoteNotification:(NSDictionary *)userInfo completionHandler:(void(^)())completionHandler
{
//handle the actions
if ([identifier isEqualToString:@"declineAction"]){
}
else if ([identifier isEqualToString:@"answerAction"]){
}
}
*/

(void)application:(UIApplication*)application didFailToRegisterForRemoteNotificationsWithError:(NSError*)error
{
NSLog(@"Failed to get token, error: %@", error);
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
[prefs setObject:@"121212121212121212" forKey:PREF_DEVICE_TOKEN];
[prefs synchronize];
}

(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{
if<EMAIL_ADDRESS>{
NSLog(@"Message ID: %@", userInfo[@"gcm.message_id"]);
}
// Print full message.
NSLog(@"simple didReceiveRemoteNotification%@", userInfo);
[[UIApplication sharedApplication] setApplicationIconBadgeNumber: 0];
[[UIApplication sharedApplication] cancelAllLocalNotifications];
[AGPushNoteView close];
}
}

(NSString*)stringWithDeviceToken:(NSData*)deviceToken
{
const char* data = [deviceToken bytes];
NSMutableString* token = [NSMutableString string];
for (int i = 0; i < [deviceToken length]; i++)
{
[token<EMAIL_ADDRESS>data[i]];
}
return [token copy] ;
}

(void)applicationDidEnterBackground:(UIApplication )application
{/
NSUserDefaults * defs = [NSUserDefaults standardUserDefaults];
NSDictionary * dict = [defs dictionaryRepresentation];
for (id key in dict) {
[defs removeObjectForKey:key];
}
[defs synchronize];*/
// Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
// If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
[[FIRMessaging messaging] disconnect];
NSLog(@"Disconnected from FCM");
}

(void)applicationDidBecomeActive:(UIApplication *)application
{
// Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
[FBSDKAppEvents activateApp];
[self connectToFcm];

}
#pragma mark -
#pragma mark - GPPDeepLinkDelegate

(void)didReceiveDeepLink:(GPPDeepLink *)deepLink
{
// An example to handle the deep link data.
UIAlertView *alert = [[UIAlertView alloc]
initWithTitle:@"Deep-link Data"
message:[deepLink deepLinkID]
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alert show];
}

(BOOL)application: (UIApplication *)application openURL: (NSURL *)url sourceApplication: (NSString *)sourceApplication annotation: (id)annotation
{
BOOL handled = [[FBSDKApplicationDelegate sharedInstance] application:application
openURL:url
sourceApplication:sourceApplication
annotation:annotation
];
// Add any custom logic here.
return handled;

//    return [GPPURLHandler handleURL:url sourceApplication:sourceApplication annotation:annotation];
}
@end

Hi @kroikie,  I have downloaded your github code and run on an the real devices, The code runs fine on iOS version 9.3 and I received the instance Id and also the FCM notification sent from its console.
Please see this :  https://cloudup.com/cWsxfUR-BUO
But when I run your code on iOS version 10.0, it creates the same issue, i.e. no instance id is received, and also no notification is received.
Please see this : https://cloudup.com/ch1Js7yPNBm
kindly help me to resolve this issue, Any help will be greatly appreciated...!
Thanks in advance...!!

Hi @ahmadtbox sorry for the delay.
It seems like the iOS 10 device could be having network issues. That would be a likely reason that the default token cannot be generated. Could you confirm that the iOS 10 device has good network connectivity?

Hi @kroikie , Thanks for the response,
it may be the issue, I will confirm it.
Can you please tell me that which FCM delegate function is called when app is in background state and a remote push notification is received, I am receiving the FCM push notification when the app is in foreground and also in background.
When the app is in the foreground state, following delegate function is called,

(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler {
}

But when the app is running in the background, This method is not get called and no other delegate method is called.
Actually, I want to show my custom notification message when a FCM push notification is received but I have not access of any delegate method when a notification is received.
Please help me to resolve this issue, I am really thankful to you for your response.
Thanks in advance...!

@ahmadtbox  as per the documentation application(_:didReceiveRemoteNotification:fetchCompletionHandler:) should get called for both background & foreground remote notifications
https://developer.apple.com/reference/uikit/uiapplicationdelegate/1623013-application
Kindly check your payload structure , whether you have set the
content-available = true
priority = high
if its only Data Payload as per the FCM documentation
https://firebase.google.com/docs/cloud-messaging/concept-options

Thanks, @Sundarrajan S, I am very thankful to you...! I forgot to mention
you about it...!
Yes This was the issue, and I resolved it with your help.
Once again, Thanks...!
On Fri, Feb 3, 2017 at 1:38 PM, Sundarrajan S<EMAIL_ADDRESS>wrote:

@ahmadtbox https://github.com/ahmadtbox as per the documentation
application(_:didReceiveRemoteNotification:fetchCompletionHandler:)
should get called for both background & foreground remote notifications
https://developer.apple.com/reference/uikit/uiapplicationdelegate/1623013-
application
Kindly check your payload structure , whether you have set the
content-available = true
priority = high
if its only Data Payload as per the FCM documentation
https://firebase.google.com/docs/cloud-messaging/concept-options
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/firebase/quickstart-ios/issues/194#issuecomment-277193130,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AVQbxOiGYvlDKMoUaP5tNZuZINFFr8J9ks5rYueHgaJpZM4LNx7G
.


[FR] Extract highlights in the document order in double-column PDFs

An enhancement for the command "Extract & copy annotations in this PDF".
Originally posted by @Kyeonghyeon-Park in https://github.com/RyotaUshio/obsidian-pdf-plus/discussions/172#discussioncomment-9219371

One quick question. Is there a way to extract highlights in the same order (reading perspective) in a double-column PDF? It seems that it orders the highlights with the location. For example, if highlights are located as below, it shows the highlights with the following order: C -> A -> D -> B. But I want to extract highlights with the order: A -> B -> C -> D.
..  C
A D
B

The current implementation sorts annotations according to a simple top-left-to-bottom-right rule:
https://github.com/RyotaUshio/obsidian-pdf-plus/blob/ab34e588b7cafffbf95481398921683744605e90/src/lib/highlights/extract.ts#L66
This FR can be achieved by taking the order of the textContentItems into account in this sorting process.

Will be addressed in the next version (0.39.25).


Don't truncate the newline character when printing out FEW_ARGS

Previously, the few_args routine would only print the first 17 characters of the FEW_ARGS constant, which resulted in the string being printed to STDOUT without a terminating newline.
This commit changes that to 18, which includes the trailing newline character (0XA).

@leocassarani  Thanks man :+1:


Motivation and Purpose

[x] Why are we creating this dashboard?
[x] Who is the target audience and what role are we embodying?
[x] What problem could this dashboard solve for the intended user?

Completed


Keyboard shortcuts do not respect keyboard layout preference.

VSCode Version: Code 1.11.2 (6eaebe3b9c70406d67c97779468c324a7a95db0e, 2017-04-13T07:56:42.517Z)
OS Version: Darwin x64 16.5.0
Extensions:

Extension
Author
Version

plantuml
jebbs
1.5.0

Steps to Reproduce:

Open MacOS Preferences.
Open Keyboard preference pane.
Select Dvorak-Qwerty keyboard layout
Try keyboard commands in Visual Studio Code.
Command-S should be Save even though the "S" key is mapped to "O", instead Command-S is Open. Same for all other keyboard shortcuts.

Duplicate of #23964


Bug of reconnecting

Hi, in the past few days, we were facing an issue if the connection between the node_redis and the redis is down and reconnect immediately, the node_redis will resend some commands(which has been failed by the disconnection of the previous connection) to the server again, but unfortunately, the node_redis seems to never expect these command's response.
For example, it send A, B, C, D to the redis just before the connection is down, and when the connection is down, it do the callback of A,B,C,D with error, after reconnecting, it send A,B,C,D again, and then send E,F,G,H, the redis responses by the requesting sequence:A,B,C,D,E,F,G,H, but the node_redis callback E with A's response, callback F with B's response, and so on. In this case, the application layer will be messed up.
We dig into the codes and found out the root cause, when reconnecting, the node_redis will just call stream.connect() without clearing the data buffer in the stream, so when the new connection is established, it will send the old data again but in the new connection's command queue, those commands never exists.
We have fixed it by creating a new stream object like this, we are not sure if it's the best way or not, but at least, it works. Please fix it, and we will be appreciated if you tell us some better way.
RedisClient.prototype.connection_gone = function (why) {
//......
//self.stream.connect(self.port, self.host);
self.stream.destroy();
self.stream = net.createConnection(self.port, self.host);
self.stream.on("connect", function () {
self.on_connect();
});
self.stream.on("data", function (buffer_from_socket) {
    self.on_data(buffer_from_socket);
});

self.stream.on("error", function (msg) {
    self.on_error(msg.message);
});

self.stream.on("close", function () {
    self.connection_gone("close");
});

self.stream.on("end", function () {
    self.connection_gone("end");
});

self.stream.on("drain", function () {
    self.should_buffer = false;
    self.emit("drain");
});

self.retry_timer = null;

}, this.retry_delay);

In order to better support this project and its new group of collaborators under a new org we are trying to clean up and close issues older than 6 months. Your issue may have been fixed since the issue was open, however, if you are still experiencing a problem please re-open this issue and we will label it accordingly.

@metellica version 2 should have fixed all reconnection issues. If you still encounter any of these, please give me a short reply. And it would be great to be on the safe side that everything works as it should.

Ruben, thanks for your notification, we will test with version 2. Any questions will let you know.
—
通过 Mailbox 发送
On Sat, Sep 26, 2015 at 1:28 AM, Ruben Bridgewater
<EMAIL_ADDRESS>wrote:

@metellica version 2 should have fixed all reconnection issues. If you still encounter any of these, please give me a short reply. And it would be great to be on the safe side that everything works as it should.
Reply to this email directly or view it on GitHub:
https://github.com/NodeRedis/node_redis/issues/601#issuecomment-143295135


Drop support for Puppet 4, Debian 7, and CentOS 6

Pull Request (PR) description

Drop support for Puppet 4
Drop support for Debian 7
Drop support for CentOS 6

This Pull Request (PR) fixes the following issues
Closes: #2

@nmaludy any ideas about the failures mentioned in #2? Maybe later versions of Debian and most versions of Ubuntu already have a conflicting package available in their default repo?
  Unpacking erlang-typer (1:23.2.1-1) ...
  dpkg: error processing archive /tmp/apt-dpkg-install-1yZb5x/19-erlang-typer_1%3a23.2.1-1_amd64.deb (--unpack):
   trying to overwrite '/usr/lib/erlang/bin/typer', which is also in package erlang-base 1:23.2.1-1

@wyardley looks like erlang-solutions has some apt stuff going on that doesn't properly resolve its dependencies: https://github.com/voxpupuli/puppet-erlang/pull/3/checks?check_run_id=1623109601#step:5:1104

@wyardley i'm not an apt wizard, is there a way to tell apt and specifically the package resource to auto-install dependent packages?

@wyardley i'm not an apt wizard, is there a way to tell apt and specifically the package resource to auto-install dependent packages?

@nmaludy installing dependencies is the default behavior. Something else is wrong here.

On my local run of Debian 9, it seems like it’s the ensure absent that was failing.

With the new modulesync changes, having some trouble working with the acceptance tests locally, though

What is the problem?

bundle exec rake beaker:sets doesn't return anything (for this module, anyway), and bundle exec rake beaker:ssh doesn't work even if I set BEAKER_setfile. bundle exec rake beaker also fails for me (probably because of missing spec/acceptance/nodesets. I realize it builds these nodesets in CI, but not sure whether they're supposed to exist in this module or not, or whether it's supposed to be built dynamically here too?
I can do something like
BEAKER_destroy=no PUPPET_INSTALL_TYPE=agent BEAKER_IS_PE=no BEAKER_PUPPET_COLLECTION=puppet6 BEAKER_debug=true BEAKER_setfile=debian9-64 BEAKER_HYPERVISOR=docker CHECK=beaker bundle exec rake beaker

but I can't then do anything like
$ bundle exec beaker:ssh

or
$ BEAKER_setfile=debian9-64 bundle exec beaker:ssh

BEAKER_destroy=no PUPPET_INSTALL_TYPE=agent BEAKER_IS_PE=no BEAKER_PUPPET_COLLECTION=puppet6 BEAKER_debug=true BEAKER_setfile=debian9-64 BEAKER_HYPERVISOR=docker CHECK=beaker bundle exec rake beaker

It should be sufficient to use:
BEAKER_destroy=no BEAKER_setfile=debian9-64 bundle exec rake beaker
This is because we do have some defaults built in:
https://github.com/voxpupuli/voxpupuli-acceptance/blob/master/lib/voxpupuli/acceptance/spec_helper_acceptance.rb#L29-L32
I did that because I was getting sick of writing that all the time.

but I can't then do anything like

I never got beaker:ssh to work with docker. Looking at the code it can only work with vagrant. However, only with BEAKER_set and not BEAKER_setfile.
I've been thinking of dropping that part of puppetlabs_spec_helper and implement it ourselves or in Beaker directly.
For the short term I'd recommend to either use the vagrant(_libvirt) hypervisor or directly attach the docker console with docker exec -it -u root $CONTAINER_ID bash.

It should be sufficient to use:

BEAKER_destroy=no BEAKER_setfile=debian9-64 bundle exec rake beaker

Yeah, that works. Is there a rake task to print the available options, though? If they're going to be dynamic, it would be nice to be able to at a minimum get the list of available integration tests to run, and (even better), be able to run them via rake task (e.g., rake beaker:debian-8-x64, as would show up in rake tasks if the acceptance tests were listed explicitly).

For the short term I'd recommend to either use the vagrant(_libvirt) hypervisor or directly attach the docker console with docker exec -it -u root $CONTAINER_ID bash.

Yeah, that's what I've done in the past with Docker as well. I was a little confused by Puppet not being in $PATH, but it seems to work
With this Debian 9 error, anyway
You might want to run 'apt --fix-broken install' to correct these.
The following packages have unmet dependencies:
 erlang : Depends: erlang-typer but it is not installed
E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify a solution).

If I apply the manifest going between present and absent it seems mostly to be happy enough, so not sure if this is just a case of the acceptance test getting in a wacky state from switching repos in the various tests, or if there's actually an issue.

Preparing to unpack .../erlang-typer_1%3a23.2.1-1_amd64.deb ...
Unpacking erlang-typer (1:23.2.1-1) ...
dpkg: error processing archive /var/cache/apt/archives/erlang-typer_1%3a23.2.1-1_amd64.deb (--unpack):
 trying to overwrite '/usr/lib/erlang/bin/typer', which is also in package erlang-base 1:23.2.1-1
Errors were encountered while processing:
 /var/cache/apt/archives/erlang-typer_1%3a23.2.1-1_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

Beginning to think this is an actual issue with the erlang-solutions packages (with erlang-typer being required, but also including a file that's also included in the erlang package, or something along those lines?)

root@ubuntu1604-64-1:/tmp# dpkg -s erlang
Package: erlang
Status: install ok unpacked
Priority: optional
Section: interpreters
Installed-Size: 58
Maintainer: Debian Erlang Packagers<EMAIL_ADDRESS>Architecture: all
Version: 1:23.2.1-1

Even though the version matches, I think this is actually the regular Debian erlang package, not the erlang-solutions package, hence the conflicts. Not sure what the right behavior for the module is in this scenario. If it were me, I'd tend to use the vendor's available version if a reasonable version is already available, but that would make this module somewhat more complicated and also less consistent, so 🤷

I don't know that we'd want to do it in an integration test, but it seems that setting a value like 100 for package_apt_pin may fix it (by forcing it to prefer this version).

Yeah, that's what I've done in the past with Docker as well. I was a little confused by Puppet not being in $PATH, but it seems to work

I guess bash doesn't execute /etc/profile.d/puppet-agent.sh then. You can source it to get it in $PATH.

I'm thinking either way, may be best to merge this one on red (as 3 atomic commits), and then merge any additional changes needed in separate PRs?

I haven't tried to run these tests locally, but I think the acceptance test needs to uninstall the previous package and apt source repo configuration before trying to install the same package from a different source. Otherwise you have wrong package metadata for the currently-installed package when the source changes. So doing basically this "removing package and repo source" test between each installation test would probably work better: https://github.com/voxpupuli/puppet-erlang/blob/master/spec/acceptance/init_spec.rb#L189
That's what I had to do with the nodejs module: https://github.com/voxpupuli/puppet-nodejs/blob/master/spec/acceptance/class_spec.rb#L83
It would be nice if beaker or litmus could run certain tests on separate machines/containers, thus avoiding this kind of package management work in the tests, but it appears that there's no built-in way to do that.

That’s what I thought, but there’s an ensure absent at the end, and I’m also pretty sure it’s the Debian one, not the bintray one, that seems to be causing the issue here.

diff --git a/data/family/Debian.yaml b/data/family/Debian.yaml
index 110c059..b8daa8a 100644
--- a/data/family/Debian.yaml
+++ b/data/family/Debian.yaml
@@ -1,2 +1,3 @@
 ---
 erlang::repo_source: 'bintray'
+erlang::package_apt_pin: 200

Seems to pass for me with this, however, I'm not sure if this is a safe change to make in defaults.


redirect_uri incorrectly displayed as redirect_url for token exchange

See here for more description: https://community.auth0.com/t/openid-connect-playground-redirect-url-or-redirect-uri/12589/2

+1 Additionally, the parameters are shown as a query string. They should be a JSON body.


iOS - No OpKernel was registered to support Op 'ExtractImagePatches' with these attrs

Hi everyone,
I am trying to load a graph inside iOS that was generated by another software into a .pb file.  It was tested on a Ubuntu machine, so I know the model works correctly.
When trying to use it with iOS, the project builds correctly and then I have the following error:
Could not create TensorFlow Graph: Invalid argument: No OpKernel was registered to support Op 'ExtractImagePatches' with these attrs.  Registered devices: [CPU], Registered kernels:
  <no registered kernels>

	 [[Node: ExtractImagePatches = ExtractImagePatches[T=DT_FLOAT, ksizes=[1, 2, 2, 1], padding="VALID", rates=[1, 1, 1, 1], strides=[1, 2, 2, 1]](concat)]]

I know other issues have been posted related to this; however I was unable to locate a solution.
I am using TensorFlow 1.0.1 and Python 3.6.0
I can run the iOS examples with no problem.
iOS seems not to be able to find ExtractImagePatches Op.
If anyone could help with this issue, it would be greatly appreciated.

By default, the iOS build target doesn't link in core/kernels:extract_image_patches_op.  Can you try to modify your BUILD file and explicitly link this in?

@concretevitamin Which BUILD file should I modify?  The BUILD file in tensorflow/tensorflow or tensorflow/tensorflow/core?
After I modify the correct file, how shall I rebuild?  Will I need to run build_all_ios.sh script?
Thanks for your help.

I'm adding one of our iOS experts @satok16 to further advise.  (Thanks Satoshi!)

To build binaries for iOS, you need to use "build_all_ios.sh" which builds targets by make instead of bazel.  As this process doesn't use BUILD file, you should add kernel c++ files into "tf_op_files.txt".

@satok16
Thanks.  After adding the kernel for extract_image_patches to tf_op_files.txt, I was able to compile successfully; however I am still running into problems with the iOS demo.
I am trying to use the camera demo provided and modify it for object detection instead of object classification.  Is there a tutorial for this anywhere online that I could follow or that you could point me to?
Thanks.

I'm not pretty sure that there is any tutrial for them other than https://github.com/tensorflow/tensorflow/tree/master/tensorflow/examples/android
Andrew, do you have any idea about this?

@petewarden has a nice iOS walkthrough here: https://petewarden.com/2016/09/27/tensorflow-for-mobile-poets/amp/

As we have Pete's great post, let's close this issue for now.  Feel free to create a new ticket if you have any other issues.
Thanks!


problem loading

git folder files not opening!

GitHub cannot handle large files! Please clone the files locally and then view the documents!
The resources are very good!


Handle stale/missing chunks

@jessopb, if the solution is acceptable, I'll rework the entire to repo to change from React.lazy to lazyImport
Currently, I only applied it to Settings and TipModal to test the concept.
Solutions that I know of:

Reload on behalf of user (this PR).
Similar to 1, but instead of reloading directly, we display a message somewhere saying "A new version is available. Please refresh".
Run a serviceWorker to listen for changes, and somehow update the current page (this is beyond my understanding to implement at the moment).

It seems like either approach would require a reload, so number 1 seems the easiest.
There are a few caveats, though:

It works seamlessly for Pages (other than the user seeing a brief flash from the reload), but it's a bit odd for smaller lazy-loaded components like the Tip Modal -- it doesn't open the modal after the reload.
Reloading directly can result in data-loss if the user in the middle of something.

I think this path sounds good.


Visual Studio Version dropdown

The Visual Studio Version dropdown does not contain "Visual Studio 2019", it only contains up to Visual Studio 2017. Is this normal ?

@drinkwater99 - Could you provide a URL where you are seeing this behavior.

@drinkwater99 - Hi - I'm closing this issue. Without a URL of the page you are seeing this behavior, there isn't much we can do. If you have more information, please reopen this issue.

Hi, I'd like to reopen this issue, as i am also seeing the same behavior. Although, i cannot sent you the URL as its secured URL for my organization, yet, i am attaching a screen shot of the same where in we see "The Visual Studio Version dropdown does not contain "Visual Studio 2019", it only contains up to Visual Studio 2017".
Please help

Probably an issue for https://github.com/microsoft/azure-pipelines-tasks, but might be because you're running an older version of https://github.com/microsoft/azure-pipelines-agent that is shipped with an older task

Probably an issue for https://github.com/microsoft/azure-pipelines-tasks, but might be because you're running an older version of https://github.com/microsoft/azure-pipelines-agent that is shipped with an older task

Hi, Is there any update on this issue being worked upon.
Also, we've checked and are running the updated versions of https://github.com/microsoft/azure-pipelines-agent. Therefore, not sure why we are still facing it.

No clue, this is the repo for the docs so product issues usually get bounced to the agent repos that I pointed out, or the MS bug tracker https://developercommunity.visualstudio.com/spaces/21/index.html

So, in that case do we need to install Visual studio 2019 on TFS Build Servers/Agents to get 2019 version available?

No clue, this is the repo for the docs so product issues usually get bounced to the agent repos that I pointed out, or the MS bug tracker https://developercommunity.visualstudio.com/spaces/21/index.html

So, in that case do we need to install Visual studio 2019 on TFS Build Servers/Agents to get 2019 version available?


Remove TraceContext & StepTraceContext

Remove TraceContext & StepTraceContext from Profiler context.

@googlebot I signed it!

@skye Updated!

Looks like you also need to remove the warnings import from jax/_src/profiler.py. See the failing lint_and_tyepcheck check (https://github.com/google/jax/pull/7050/checks?check_run_id=2944156600)

@skye Done! I might have forgotten to run pre-commit locally.

One more ask (hopefully): can you squash your commits into a single commit?


complete adding age-1 index to "base" model for 2022

Tasks

[x] Include age-1 index and a 0.5 CV up to 2019 with estimated extra SD
[x] Include 2021 estimate of age-1 index and a 0.5 CV with estimated extra SD
[x] decrease input CV incrementally but still have extra SD estimated to see if the sum stabilizes to 0.75
[x] Tail compression should be turned on to ensure that the estimated abundance of age-1 fish in the age-2+ survey remains estimated at zero rather than
[x] fix extra SD for age-1 survey at 1.2 to see if down-weighting this survey leads to different fits
[x] Add age-comp data as a trawl survey with no CPUE are specified and if it changes the answer to anything (KFJ)

Notes

Age-1 fish that are sampled in the acoustic survey are not included in the age-proportion data for the age-2+ hake survey and never have been.
As expected, adding the age-1 survey does not decrease the calculated variability of recruitment deviations.

Thanks @aaronmberger-nwfsc for all of your hard work getting the runs completed within the time frame that we wanted to meet.

Why "As expected, adding the age-1 survey does not decrease the calculated variability of recruitment deviations."?
I'd have thought we'd at least 'hope' that the variability decreased (you mean the credible intervals for each year, yes?). I'm missing something....

No, the calculated variability of the estimates compared to the input/fixed value of sigma_r.

Right, the sigma_r is what is setting the variability (and that hasn't changed). Thanks.


[ Critical Bug ] throws error / crash when hovering over function names under specific conditions

Two cases that can 100% reproduce (both on the monaco website and other places):

Consider the following code:

func({
 test: function() {
 },
 test() {
 }
})

When hovering over the first test function, an error will be thrown:
Uncaught Error: Cannot read property 'target' of undefined

TypeError: Cannot read property 'target' of undefined
    at Object.y [as buildSignatureDisplay] (typescriptServices.js:38)
    at typescriptServices.js:57
    at p (typescriptServices.js:57)
    at Object.m [as signatureToDisplayParts] (typescriptServices.js:57)
    at f (typescriptServices.js:60)
    at Object.i [as getSymbolDisplayPartsDocumentationAndSymbolKind] (typescriptServices.js:60)
    at Object.y [as getQuickInfoAtPosition] (typescriptServices.js:63)
    at e.getQuickInfoAtPosition (worker.js:9)
    at t.e.fmr (workerMain.js:7)
    at t._handleMessage (workerMain.js:7)
    at Object.y [as buildSignatureDisplay] (typescriptServices.js:38)
    at typescriptServices.js:57
    at p (typescriptServices.js:57)
    at Object.m [as signatureToDisplayParts] (typescriptServices.js:57)
    at f (typescriptServices.js:60)
    at Object.i [as getSymbolDisplayPartsDocumentationAndSymbolKind] (typescriptServices.js:60)
    at Object.y [as getQuickInfoAtPosition] (typescriptServices.js:63)
    at e.getQuickInfoAtPosition (worker.js:9)
    at t.e.fmr (workerMain.js:7)
    at t._handleMessage (workerMain.js:7)
    at errors.ts:84

Consider the following code:

func({
 test() {
 }
})

When hovering over the function test with the command key pressed (macOS), an error will be thrown:
Uncaught Error: Cannot read property 'length' of undefined

TypeError: Cannot read property 'length' of undefined
    at Object.r [as getDefinitionAtPosition] (typescriptServices.js:59)
    at Object.v [as getDefinitionAtPosition] (typescriptServices.js:63)
    at e.getDefinitionAtPosition (worker.js:9)
    at t.e.fmr (workerMain.js:7)
    at t._handleMessage (workerMain.js:7)
    at Object.handleMessage (workerMain.js:7)
    at e._handleMessage (workerMain.js:7)
    at e.handleMessage (workerMain.js:7)
    at t.onmessage (workerMain.js:7)
    at self.onmessage (workerMain.js:7)
    at Object.r [as getDefinitionAtPosition] (typescriptServices.js:59)
    at Object.v [as getDefinitionAtPosition] (typescriptServices.js:63)
    at e.getDefinitionAtPosition (worker.js:9)
    at t.e.fmr (workerMain.js:7)
    at t._handleMessage (workerMain.js:7)
    at Object.handleMessage (workerMain.js:7)
    at e._handleMessage (workerMain.js:7)
    at e.handleMessage (workerMain.js:7)
    at t.onmessage (workerMain.js:7)
    at self.onmessage (workerMain.js:7)
    at errors.ts:84

These errors will cause the webview to crash every time if the code is run inside a chrome webview (tested on chrome 60. nw0.24)
plz fix this.

@dengkunli an uncaught error should not result in a crash. Can you perhaps consult the nw documentation and see how to add a default error handler that prevents webviews from crashing.
In the meantime, I have opened https://github.com/Microsoft/TypeScript/issues/17683 against the TypeScript compiler, we are using version 2.3.4 in the editor.

This has been fixed and a new version of the editor with the fix is available


FnO workflow integration with Power Automate

The document Workflow FAQ lacks information about the integration between Fno Workflow and Power Automate. There are several limitations that confuse customers and if they were documented, they could resolve themselves without the need to open support tickets and all the time that takes.
For example, in a scenario where FnO starts a workflow, and the business event is triggered by Power Automate to start a flow. It is not clear to the customer that this flow that he started will not interact with the FnO workflow. Sometimes they expect one workflow to interact with the other, like in an approval process that the user can approve in the flow or workflow.
The request is to make clear the functionalities and limitations of the integration of the two workflow engines.

@peter-villadsen can you please review?

Add something like this:
Note: There is some overlap between the two similar concepts offered by Microsoft. One is the workflows that you can create in FnO, that are restricted to run inside FnO. We also have the Power Automate (Power Automate | Microsoft Power Platformhttps://powerautomate.microsoft.com/en-us/) product that allows users to set up workflows that runs outside of FnO. Use Power Automate to set up flows that involve information flowing through your company, and use the Financials and Operations workflows to set up workflows that are specific to your FnO ERP system
From: josaw1 @.>
Sent: Friday, June 9, 2023 9:56 AM
To: MicrosoftDocs/dynamics-365-unified-operations-public @.>
Cc: peter-villadsen @.>; Mention @.>
Subject: Re: [MicrosoftDocs/dynamics-365-unified-operations-public] FnO workflow integration with Power Automate (Issue #4549)
@peter-villadsenhttps://github.com/peter-villadsen can you please review?

Reply to this email directly, view it on GitHubhttps://github.com/MicrosoftDocs/dynamics-365-unified-operations-public/issues/4549#issuecomment-1584886635, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AS3TOV24B5UGGKHIDBZO57LXKNITJANCNFSM6AAAAAAYGQITRY.
You are receiving this because you were mentioned.Message ID: @.***>

@twheeloc can you please make the change suggested by Peter? Thanks.

@fgehrke, updates to this topic will be live later today.


[API][Web][Forms][Workflow][SIMS-#1058]Tuition remittance

Acceptance criteria

[x] Remove "Tuition Remittance" from the offering (Form and DB)
Enable Institution Users to request tuition remittance at the time of confirming enrolment, not to exceed the lesser of EITHER (Actual tuition + Program related costs) OR (Canada grants+Canada Loan+BC Loan)
[x] Add remittance_amount column to disbursement schedule table
[x] Add value to "confirm enrollment" UI to allow number to be entered
[x] On confirm of enrollment, if the validation of that number fails and display toast message "Invalid tuition remittance amount"
[x] On confirm of enrollment, if the validation of that number passes save the value to remittance_amount column
[x] On disbursement of FT ecert file ensure remittance_amount is inserted into School Amount column
[x] On disbursement of FT ecert file ensure Student Amount column is the difference between disbursement amount and school amount
[x] On disbursement of PT ecert file ensure remittance_amount is inserted into School Amount column which inturn inserted into the EI remittance field

Nice work @guru-aot 👍. Added few comments.


Disable rightclick-to-paste

Windows Terminal version
1.16.10262.0
Windows build number
10.0.22621.0
Other Software
No response
Steps to reproduce
rightclick in Windows terminal / cmd / powershell.
clipboard contents are pasted.
Expected Behavior
Rightclick should open a context menu. It should not perform an action, it should not paste.
I can use shift+insert or ctrl+shift+v to paste. I do not need or want any other way to paste.
If some people really need rightclick-to-paste, it should be easy to disable it. In Windows 10 it was easy to disable QuickEdit mode. It should be easy to find help that gives instructions to disable rightclick-to-paste.
I have "automatically copy selection to clipboard" turned off, but no matter what I do, selection is still copied to clipboard.
Actual Behavior
Paste on rightclick is dangerous, inappropriate, inexcusable behavior.

In the short term this will likely be covered by issue #3337 - you'll be able to choose to have a right click menu instead of the current paste behavior. In the longer term you'll be able to choose exactly which operation a right click performs - that's covered by issue #1553.

Yep, thanks!
/dup #3337


Fix parallelization

Previously, hashing only occurred on one thread.  Additionally, the access patterns were near-worst-case sometimes.
Additionally, the code was (and still is) way more complicated than necessary.
I haven't verified if the ignore code is right, but it looks to be.  Please review.
Please test on a single non-SSD, non-ZFS disk before merging.
Testing cold caches is difficult on this machine.
This PR is complete when:

[x] BufReader to improve buffering
[x] parallelizing with automatic num_cpus actually uses all cores
[x] progress bar replaced with indicatif as it supports Send
[x] sort files by inode before reading to improve spinning-rust performance (inode order is a bit of an approximation of file creation order)
[ ] option parsing works

Some smaller gains to be had on spinning rust if desired:

fiemap with inode sort fallback (I don't have a filesystem that supports fiemap handy)
Batched posix_fadvise (POSIX_FADV_SEQUENTIAL, POSIX_FADV_WILLNEED, with POSIX_FADV_DONTNEED afterward) calls to indicate that the OS should warm the caches before access.
MAP_POPULATE for mmap - not sure if this is faster on spinning rust

There is an option parsing bug where --jobs does not work. I'd rather just replace the whole option parsing with the newer style of clap, than try to fix that bug.

Benchmarks
System

Ryzen 7 2700X
64GB 3200MT memory
Samsung 970 EVO 1TB
9-disk SAS ZFS array in RAIDZ2 configuration

Dataset
3,045 files, 40GB total.  ZFS compression disabled.
Size distribution:
  4k:      2
 16k:      6
 64k:      4
128k:     11
256k:     99
512k:     46
  1M:    176
  2M:     94
  4M:     84
  8M:   1280
 16M:    840
 32M:    382
 64M:     21

These are after the third run, to make sure the disk cache is warm.
The disk cache on this machine uses about 30GB of RAM.
Warm cache

SSD Before: 46 seconds, about 870MB/s because most of the data is in RAM.

quickdash -a sha1 --force --create ~/uncompressed/unpacked  22.68s user 22.42s system 96% cpu 46.566 total

SSD After: 10.2 seconds, about 3.9GB/s because most of the data is cached.

cargo run --release -- -a sha1 --force --create ~/uncompressed/unpacked  25.16s user 38.71s system 626% cpu 10.189 total

HDD Array Before: 4m50s, or about 138MB/s.  Slightly more than 50% of one disk's read performance, even with a warm cache.

quickdash -a sha1 --force --create ~/spinning-uncompressed/unpacked  31.07s user 30.77s system 21% cpu 4:49.98 total

HDD Array After: 23 seconds, about 1.74GB/s which is pretty close to the 2250GB/s these disks are capable of on sequential reads.

cargo run --release -- -a sha1 --force --create   33.93s user 35.05s system 300% cpu 22.965 total

Cold cache

SSD Before: 50 seconds, about 800MB/s.

quickdash -a sha1 --force --create ~/uncompressed/unpacked  22.92s user 23.79s system 93% cpu 49.831 total

SSD After: 14 seconds, or about 2.86GB/s.  SSD is rated for 3500MB/s sequential.

cargo run --release -- -a sha1 --force --create ~/uncompressed/unpacked  24.99s user 34.71s system 422% cpu 14.144 total

HDD Array Before: 6:13.54, or about 106MB/s

quickdash -a sha1 --force --create ~/spinning-uncompressed/unpacked  37.68s user 48.41s system 23% cpu 6:13.54 total

HDD Array After: 1 minute 38 seconds, or about 408MB/s.  There's still a lot of room to improve since each disk was only getting about 60MB/s, and I suspect a single drive would have similar improvements left.

cargo run --release -- -a sha1 --force --create   38.40s user 44.48s system 84% cpu 1:38.27 total

Hello, @mjc!
Thanks for bringing improvements to my first command line Rust program I made, haha.

There is an option parsing bug where --jobs does not work. I'd rather just replace the whole option parsing with the newer style of clap, than try to fix that bug.

Sure, use as you see fit. But yeah I do see it would be better just to upgrade clap to their v3 version.

Please test on a single non-SSD, non-ZFS disk before merging.
Testing cold caches is difficult on this machine.

Sure, I will do testing with your PR just tell me what to use for benchmarking and I will do that.

I figured it was something like that! I'm learning that it's pretty easy to tell when someone is new. Funnily enough I got the improvements originally from revisiting the first Rust program I made. I learned a bunch from reading this one too, though. I hadn't tried to do anything generic the way you did with your hash selection, I used traits for it instead.
I'd used this app a couple dozen times before and forgot about it, then went back after realizing mine is almost a superset if this.  I needed mine to work on 15TB of data, so it made sense to spend some time improving it this month.
On Linux, the easiest way to test with any filesystem other than ZFS is to generate several thousand incompressible files that total in size to more RAM than you have memory, then:
sync; echo 3 > /proc/sys/vm/drop_caches  I can whip up a quick script if you'd prefer, since I may have a bunch more changes.
I'm concerned (for both my app and yours tbh) that I may accidentally make things slower for single HDDs. I don't currently have a spare one handy.

On Linux, the easiest way to test with any filesystem other than ZFS is to generate several thousand incompressible files that total in size to more RAM than you have memory, then:
sync; echo 3 > /proc/sys/vm/drop_caches before every run.

Okie, I will use that. And for script, sure why not.

I'm concerned (for both my app and yours tbh) that I may accidentally make things slower for single HDDs. I don't currently have a spare one handy.

I fortunately do have a spare one.
Tbh, the only thing I don't really like in my software is how it check the hash sums. It uses regex for that, which it sucks but at the time I didn't have any other solution for that.

PR works, all good.

https://github.com/AndreVuillemot/QuickDash/pull/28/commits/468fcba9fa4cee09ae95802a62941de784e70c56
In this commit SPINNER_STRINGS should be replaced with just some text. Because Windows CMD terminal don't support showing Unicode emojis. I would instead used just some text. We can use this spinner below.
['⠋', '⠙', '⠹', '⠸', '⠼', '⠴', '⠦', '⠧', '⠇', '⠏']

The command line isn't the same with clap 3, currently.  I don't have time to make it identical.  It did massively simplify things, though.

The command line isn't the same with clap 3, currently. I don't have time to make it identical. It did massively simplify things, though.

Yeah, clap v2 to clap v3 was the biggest pain for me to upgrade.

In general everything looks good.
I will test the PR, soon. PR will be still open since on your TODO, you still have some things to do.

Also, do you want me to add you as crate authors and collaborator?

I don't think I have time to finish the fiemap, fadvise, etc stuff yet.
fiemap in particular is going to require me to find my mini-itx machine buried in a pile of extra hardware 🤣 since ZFS does not support it.
for fadvise there is reapfrog. It works but you have to use for-in which I really don't like.  A replacement for it is on my to-do list.
Might be good to make these into issues, and I can revisit them when I get around to it, or maybe others will see it and contribute.
I'd be happy to be on the contributor list.  I don't know how much time I'll have to work on it in the future, though.  Happy to respond if you find a bug in my contributions.
BTW, I have some code in my project I cribbed these improvements from, for hashing files that are inside zip and 7z archives.  Could be a neat addition if you're interested, and you're welcome to take it, or add an issue for others to work on it.

Can you please add a list of available hashes? Also, it would be nice if you updated DOCS.md, with some of example usage with merged PR.

I updated DOCS.md with the literal output from the help.
However I'm realizing that the subcommand help is a little confusing, as it doesn't show that you should put general options before the subcommand, like:
-a xxh3 create --force ~/uncompressed/unpacked

I'll look into that in a couple hours.

All, good? Can I merge the PR now?

Yeah, it looks ready to me. I am working on a solution for the weird subcommand help message - I think I will need to submit an issue to clap for it.


Migrate from log to tracing

This is a continuation of #58.

I will leave this PR stale for now, as I don't have much time. Might come back to it at some point.

What is remaining to do in this PR?

Checking out your crate, but I am using tracing.
Saw this PR pending. It is not crucial, but it will just make the dependency tree not have log

Checking out your crate, but I am using tracing. Saw this PR pending. It is not crucial, but it will just make the dependency tree not have log

I see. So the tracing-log adapter would not be an option for you?

Will close this for now due to lack of time and interest.

@h7kanna I did a full rewrite, and it is now tracing based. Published as 0.14.0. Just FYI.

Yes I was watching your rewrite 👏

Yes I was watching your rewrite 👏

Nice :) feel free to give me some feedback regarding whether you ran into any problems.


Make Error - Windows, Cygwin

Describe the bug
I was trying to build the bot and encountered a Make error, that I don't know how to solve. I tried running the Cygwin terminal as administrator along with cygstart --action=runas make and no luck.
Expected behavior
Expected it to be built just fine.
To Reproduce
Install Cygwin normally, along with the packages required by the repository, clone the repository, enter, run make and this happens.
Version
Latest, as of writing this.
Windows 10 64-bit.
Stack trace
make[1]: Entering directory 'C:/cygwin64/home/user11/concord/core'
cc -O2 -std=c99 -pthread -D_XOPEN_SOURCE=600 -DLOG_USE_COLOR -I. -I/usr/local/in
clude    -c -o cog-utils.o cog-utils.c
process_begin: CreateProcess(C:\cygwin64\bin\cc, cc -O2 -std=c99 -pthread -D_XOP
EN_SOURCE=600 -DLOG_USE_COLOR -I. -I/usr/local/include -c -o cog-utils.o cog-uti
ls.c, ...) failed.
make (e=5): Access is denied.
make[1]: *** [: cog-utils.o] Error 5
make[1]: Leaving directory 'C:/cygwin64/home/user11/concord/core'
make: *** [Makefile:26: static] Error 2

Check the permissions on your C:\cygwin64\bin\cc, to me it looks like the file may not be executable.

it looks like cc is a symlink to gcc.exe, but for some reason it is trying to load the symlink as an executable instead of what it links to. try doing make CC=gcc or make CC=gcc.exe.

@minneelyyyy
It seems like using make CC=gcc worked. Thank you.


Revert "Fast code with new filter"

Reverts 1iyiwei/topopt#3

I couldn't get the new code to run on Windows and I like to keep the basic code simple for easy extension, so revert for now.

That makes a lot of sense, installing OpenCV is relatively hard. I have no other parts that I can speed up. I'll be converting the code to 3D in the upcoming weeks on my own fork. Have a look if you are interested. And again lots of thanks for providing a nice and very readable code.

I added a link to your fork, so that people can choose which one to use. Thanks!


Needs updating to Swift 2.0

Updating to XCode 7 means that this is no longer usable without running the auto migration tool.

Xcode 7 has a converter to do ths job. You could use it. I did, and works fine so far.

I hope you can upgrade this project, if you are free.

@Inferis84 @liuxuan30 @Whirlwind
https://github.com/ra1028/RAReorderableLayout/pull/17
Updated to support Swift 2.0 by @ekimia .


Possibillity of adding chunks and friends to this crate?

Do you believe it would be possible to add the functions

Serial
Parallel

chunks
par_chunks

chunks_mut
par_chunks_mut

chunks_mut_exact
par_chunks_mut_exact

to this crate? I suspect there might be complications from the fact that these functions are defined on vectors and not iterators, but if you believe it is possible I could take a look at trying to do it, if you do not want to.

I suspect there might be complications from the fact that these functions are defined on vectors and not iterators,

Right, and so rayon has them in separate ParallelSlice and ParallelSliceMut extension traits. I guess we could do similar here, but the implementation is simple:
if parallel {
    CondIterator::Parallel(slice.par_chunks(n))
} else {
    CondIterator::Serial(slice.chunks(n))
}


Update externals.md

Using [string] would make sidebar menu have to string items, so I changed it more literal.

change [string] to literal desc "array of string".

[x] Read and sign the CLA. PRs that haven't signed it won't be accepted.
[x] Make sure your PR complies with the writer's guide.
[x] Review the diff carefully as sometimes this can reveal issues.
[x] Do not abandon your Pull Request: Stale Pull Requests.
Remove these instructions from your PR as they are for your eyes only.

Great catch, thank you!


[23.05] libarchive: apply security fixes from 3.7.1 and 3.7.2

Description of changes
No CVE ID seems to have been assigned to this.
https://github.com/libarchive/libarchive/commit/ee312cfd05c1d1d38f3a5dd10872b97cbc11902c
https://github.com/libarchive/libarchive/commit/1b4e0d0f9d445ba3e4d0c7db7ce0b30300572fe8

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
23.11 Release Notes (or backporting 23.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Might like to suggest to them that they do report this as a CVE?

This also looks like it will produce a merge conflict with libarchive in release-23.05.

Cherry-picked to release-23.05 for testing, built passthru.tests on macos 10.15 & nixos x86_64 successfully. Built pkgsMusl, pkgsStatic, pkgsCross.aarch64-multiplatform, pkgsi686Linux, pkgsLLVM variants successfully.

Might like to suggest to them that they do report this as a CVE?

Yeah it's on my todo list for this week. I did not wanted to bother upstream or deal with MITRE this week-end...


feat(client): language dropdown in the side menu is now a drop down

As suggested in #42951  I have made the following changes:

Make text wrap in the navigation menu items.
Added language dropdown menu in place of the language selection.
Prevent language dropdown menu from closing when selecting a language until after a language is selected.

Checklist:

[x] I have read freeCodeCamp's contribution guidelines.
[x] My pull request has a descriptive title (not a vague title like Update index.md)
[x] My pull request targets the main branch of freeCodeCamp.
[x] I have tested these changes either locally on my machine, or GitPod.

Closes #42951

Screenshots:

Text wrap

Language Dropdown

@ojeytonwilliams, thanks for the comment. I intentionally left the menu open because the select element lives inside the nav bar. If we were to hide the menu immediately, the drop doen options will be gone as well. I'm not sure what the expected behavior should be.

I think the current behaviour of the menu is fine, @shangyilim thanks for your hard work on this.

When I open a link locally, I get redirected to http://chinese./learn or http://www./italian/learn - I am going to assume that will work in production - I guess I expected to see a localhost in there or something.

That is a bit odd, actually.  Could you copy sample.env over .env (clean cache, etc. etc.) and check it's still happening?

Thanks @moT01, it worked on GitPod, so potentially it's just a local config issue.  Still needs investigating before we merge, though.

Good catch, Nick.  The select element just needs expanding to fill the parent.  Probably best to do this before merging, so we don't forget.

Thanks @shangyilim for the pr.  I agree with Nick and Oliver about adjusting the width of the select element in this pr. We can customize the select further in future iterations.


Fixed issue 52 by using only native Windows colors.

This fixes log colorization for Windows. Note: when Zig 0.12 support is no longer needed, a more elegant solution is possible that allows ANSI colors on Windows in most cases. This fix works with Zig 0.12 and up.

@rhues Thanks a lot for the PR !