Create cm-workflow

Create rough explanation of case manager workflow, needs from patients and case managers, and data needed

where will this live?

@mebates I think either some separate readme or the wiki would work, but I'd honestly leave it up to you. (This was a stab at #23, so wherever you think is a good place for that is cool with me.)

@lwaldsc  talked to mollie and we're going to throw this in the wiki. Going to close without merging and put your work in a wiki page. Thanks so much for getting this going.

Put in https://github.com/colinxfleming/dcaf_case_management/wiki/DCAF-101 ; closing PR.


Collate function

❓ Questions & Help
Hi! Is there a way to create a collate function that batches different Data objects? I am using in particular the MNIST dataset and it gives me errors as it expects a tensor but finds a data object. Thanks in advance!

If you want to modify the collate_fn, you can directly use the torch.utils.data.DataLoader and override the collate_fn. This is exactly what we are doing for torch_geometric.data.DataLoader.

Hi @rusty1s Thanks for your help! I am trying to use the collate_fn used in the torch geometric data loader but it doesn't work in the setting I am trying to use.
I am trying to use pytorchgeometric together with pycox (you can find here my notebook and here the issue where the people from pycox tell me what the outputs from collate should be.
I am trying to use:
`from collections.abc import Mapping, Sequence
from torch_geometric.data import Data, Batch
from torch.utils.data.dataloader import default_collate
class Collater(object):
def init(self, follow_batch, exclude_keys):
self.follow_batch = follow_batch
self.exclude_keys = exclude_keys
def collate(self, batch):
    elem = batch[0]
    if isinstance(elem, Data):
        print('1')
        return Batch.from_data_list(batch, self.follow_batch,
                                    self.exclude_keys)
    elif isinstance(elem, torch.Tensor):
        return default_collate(batch)
    elif isinstance(elem, float):
        return torch.tensor(batch, dtype=torch.float)
    elif isinstance(elem, int):
        return torch.tensor(batch)
    elif isinstance(elem, str):
        return batch
    elif isinstance(elem, Mapping):
        return {key: self.collate([d[key] for d in batch]) for key in elem}
    elif isinstance(elem, tuple) and hasattr(elem, '_fields'):
        return type(elem)(*(self.collate(s) for s in zip(*batch)))
    elif isinstance(elem, Sequence) and not isinstance(elem, str):
        return [self.collate(s) for s in zip(*batch)]

    raise TypeError('DataLoader found invalid type: {}'.format(type(elem)))

def __call__(self, batch):
    return self.collate(batch)

collate_fn=Collater(follow_batch = [],exclude_keys = [])
dl_train = DataLoader(dataset_train, batch_size, shuffle=True, collate_fn=collate_fn)
dl_test = DataLoader(dataset_test, batch_size, shuffle=False, collate_fn=collate_fn)
`
but it is not working when doing:
net = GCN(hidden_channels=10)
batch = next(iter(dl_train))
x, y = batch
net(*x)

error being TypeError: unsupported operand type(s) for @: 'tuple' and 'Parameter'


Add rule function for IP addresses, only supports IPv4 for now

Referring to #45

Ergonomics Could it be ergonomic and flexible to leverage the existing composability of the existing functions, instead of having multiple match variants? For instance:

contains(cidr("<IP_ADDRESS>/28"), ip("<IP_ADDRESS>"))
lt(ip(env["user.ip"], ip("<IP_ADDRESS>"))
not(ip(env["user.ip"], ip("<IP_ADDRESS>"))

Of course ip and cidr would have to return something. Long and Range could be good choices, but this is related to the next point.

I agree, I haven't put more thought into this, and creating the rule to be composable seems to be a lot better. So there will be 2 new function
cidr -> return Range
ip -> return Long

Performance The current proposal relies on a non-trivial regular expression that we can't pre-compile, which can be suboptimal considering FFS is designed to do thousands of evaluations per second. But IP addresses are just numbers, and IP+mask are just ranges. We could treat them like that?

In this case, the regex is redundant, it was only used to validate the IP / CIDR format. Referring to the Ergonomics, treating IP addresses and mask as numbers are to be expected.

Specifically, what if we:

Add a range type (with tests & docs). It seems useful, regardless of IPs.
Implement ip(value) as a function that takes an IP, and returns a Long. An IP is just a group of 4 bytes, so we could parse it (example) and combine it together in a single number.
Implement cidr(value) as a function that takes an IP+mast, and returns a range. It can reuse the range and ip(value) implementations from before.

This could be very efficient. What do you think?

Yes, this will be efficient to run. My only concern is the IPv6 format. It's not straightforward to convert the IP to number, even using ULong, so we'll need to find a way to represent the IPv6 in 1 single variable while keeping it comparable to the CIDR
For the Alpha milestone, will it be enough if we only support IPv4?

128-bit can represent IPv6, so if this strategy works well, we can consider using a List with two Long, or representing IPs using byte arrays, os similar. But one challenge at a time, IPv4 for now sounds good! 😄

First thing, thank you for taking your time to review my code, and really appreciate all your detailed writings, I learned a lot of new things and processes from this codebase 😊👍
Summary

Implement a Range function based on https://gist.github.com/goncalossilva/2406eb278eb0c8a1b89c3db76f4e0e2b, with a small tweak tonot(contains(cidr("<IP_ADDRESS>/23"), ip("<IP_ADDRESS>"))) allow the range to use a function, e.g. contains([datetime("2021-1-1"):datetime("2022-10-1")], now())
Create IP to decimal converter function that can be used in rule composition
Create a CIDR range function, it will return a range of min and max IP addresses, works well with rule composition
Add test and docs for these 3 features

IP Converter Implementation
IP addresses (string) is converted to their decimal format, using a simple calculation, it should be very efficient to run in production
Example composition gt(ip("<IP_ADDRESS>"), ip("<IP_ADDRESS>")) = true
CIDR implementation
Based on https://stackoverflow.com/questions/62124452/converting-cidr-notation-into-ip-range-without-other-library
The implementation returns a Range of Long, using a similar boilerplate as the range function contains([min:max], value), so it can be strung together nicely in rule composition
Example composition not(contains(cidr("<IP_ADDRESS>/23"), ip("<IP_ADDRESS>"))) = false

Ooops, accidentally closed this pull request when cleaning up my repo fork. 😓
I will create a squashed commit that incorporates your recent comments 😊


[Problem] Unnecessary replace genesis file & modify config file in node setup

Ref: https://github.com/crypto-org-chain/cronos/issues/374

Updated with https://github.com/crypto-org-chain/cronos-docs/pull/138 & https://github.com/crypto-org-chain/cronos-docs/pull/137


Upgrade GitHub Actions

As Node 12 is deprecated.

approved

I don't understand how come the merge is block now


stats block events

I've just downloaded the repo, and tried to play with it, I've noticed that stats blocks events, thus, I can't add new lights or move the light when mouse move..
Fixed it by commenting those lines only in index.html:
stats.domElement.style.right = '0px';
stats.domElement.style.bottom = '0px';

This repo looks to be abandoned but this is here
#17

@msqaddura its alive again.


Update drush launcher to 0.8.0

Currently has some memory issues that result in tests failures https://github.com/drush-ops/drush-launcher/issues/82

@csandanov Hi, could you explain how to run the tests? Would like to debug it ... Thanks!

Update drush launcher version to 0.8.0 in Dockerfile on this line
Since we install drush launcher only for PHP 7.x run PHP_VER=7.4 make from the repository root to build the image
Comment this line to disable Drupal 8 tests in Makefile since the issue only reproduced in Drupal 7
Then  run PHP_VER=7.4 make test

Here's the failure example from github actions. It fails on drush status --format=yaml. It first runs drupal 8 tests, then drupal 7, it fails only on Drupal 7 tests that located at https://github.com/wodby/drupal-php/blob/master/tests/7/tests.sh
You probably can just run make shell to launch and access the container after the image is built without running all tests

https://github.com/box-project/box/issues/512

Included drush launcher is already 0.10.1 so maybe this issue can be closed?


Error on connect.mongo.db when database name has - characters

Hi
I have a database name with dashes ,and when the connector it's trying to connect , this error  message is produced:
org.apache.kafka.common.config.ConfigException: connect.mongo.db contains an '-' which are invalid characters for mongo collections
	at com.datamountaineer.streamreactor.connect.mongodb.config.MongoSettings$.apply(MongoSettings.scala:51)
	at com.datamountaineer.streamreactor.connect.mongodb.sink.MongoWriter$.apply(MongoWriter.scala:148)
	at com.datamountaineer.streamreactor.connect.mongodb.sink.MongoSinkTask.start(MongoSinkTask.scala:62)
	at org.apache.kafka.connect.runtime.WorkerSinkTask.initializeAndStart(WorkerSinkTask.java:302)
	at org.apache.kafka.connect.runtime.WorkerSinkTask.execute(WorkerSinkTask.java:191)
	at org.apache.kafka.connect.runtime.WorkerTask.doRun(WorkerTask.java:175)
	at org.apache.kafka.connect.runtime.WorkerTask.run(WorkerTask.java:219)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)

Is there a restriction for the - char in the database name?
Because I think mongodb has not got this restriction in the db name
Thanks in advance.

hmmm in fact there's a restriction for dashes in the db name -> https://github.com/Landoop/stream-reactor/blob/master/kafka-connect-mongodb/src/main/scala/com/datamountaineer/streamreactor/connect/mongodb/config/MongoSettings.scala#L50 Why?

@manute This is a bug, it was meant to check the collections but is on the database name by mistake. Do you feel up to submitting a PR?

sure -> https://github.com/Landoop/stream-reactor/pull/607

Fixed in #607


Naming of the cluster function

The cluster function returns a \code{SummarizedExperiment} with clustering information in its colData or rowData:

cluster(... , MARGIN="features")
cluster(... , MARGIN="samples")

This could then be used to visualize the clusters on ordination plots, or to merge rows/cols e.g. with mergeFeatures / mergeSamples.
Usual connotation of "clustering" would be that it groups elements together; this could also include merging but the current cluster function does not merge rows/cols, it only adds information in rowData / colData.
In this sense it is similar to functions like:

addPerSampleDominantTaxa (adds information on dominant taxon per sample to colData)
estimateDiversity (estimates alpha diversity and adds it to colData)

We also have:

perSampleDominantTaxa  (checks dominant taxa per sample, and returns a named character vector with this info)
-> this only calculates dominant taxon but does not add to colData (as in addPerSampleDominantTaxa which extends this function)

There is clearly some divergence in the naming schemes here.
I suggest the following naming scheme (via deprecation of the old names):

cluster -> addCluster
addPerSampleDominantTaxa -> addPerSampleDominantFeature (taxa -> feature, as agreed elsewhere)
estimateDiversity -> addDiversity (same for other estimate* functions: diversity, richness, evenness, dominance)

However, if these functions always add information to row/col data, then we can ask if the add* is unnecessary term. Could also be, for instance, just:

cluster -> cluster
addPerSampleDominantTaxa -> dominantFeature
estimateDiversity -> diversity

In addition, we can consider whether functions like perSampleDominantTaxa need to be exported. This returns the information before it is being added to colData. If we export these functions, then it would be good to do systematically and also have the same available for diversities and clusters.
Not sure what works best but the naming conventions may vary a bit too much at the moment.

I would have a preference for the latter option: removing the add in front, but I think it's also better to have an action/verb in the function name. cluster works but dominantFeature and diversity might lack clarity as to what their purpose is.
So if the latter two could be renamed it would be nice. Otherwise, the option of adding add in front of the functions could work.
As for the export of functions like perSampleDominantTaxa, I'm not sure it's necessary. It could be confusing to have plenty of functions with almost the same purpose from a user point of view. If the user wants to access the data, he can just access it from the TSE. If need be, maybe a parameter could be added to handle this. For example, a storeData parameter, that stores data if set to true and doesn't if not.

I agree with the latter point, i.e. to have just one function for the task.
I sort of like the idea of adding a handle that could store the data, or not store. However, this could be added later if appears to become relevant.
If there will be no separate functions for just calculating and returning stuff vs. adding them to colData, then there is also less need to indicate this in the function name. Then "addX" would be redundant, and even if misleading if the suggested handle will be added later.
Then suitable, hopefully final, function names could be:

cluster -> cluster or getCluster (I agree that just "cluster" is quite nice; unless we like to have similar prefix for all functions that get some per-sample information)
addPerSampleDominantTaxa -> getDominant or getDominantElement (for a margin-agnostic name)
estimateDiversity -> getDiversity (no need to change other than to harmonize the naming scheme)

I could even be in favor of extending the dominantFeature & diversity functions to cover both row and col margins.. no fundamental reasons why not; the default margins would matter, though (should be samples).

I agree that names could be better. This thing is related to overall unifying of functions that we have discussed earlier. Might be best to first list all the functions and then start to think the naming convention across the ecosystem (mia vs other mia packages vs SCE)
I think one function is enough for each task. On the other hand, scater has one function for storing and one for returning just the result (just like we have currently). I think that is why we have them, but we can make our own decision.

Ok, no renaming for now but I am opening a separate issue on that and it would be relevant to deal with relatively soon if updates are done. Preferably before the next Bioc release in Oct.


[Path Provider] MissingPluginException(No implementation found for method getApplicationDocumentsDirectory when app is in the background

Describe the bug
For example when using path_provider inside a BackgroundMessageHandler the handler stops execution with an error like this:
I/flutter ( 4554): FlutterFire Messaging: An error occurred in your background messaging handler: I/flutter ( 4554): MissingPluginException(No implementation found for method getApplicationDocumentsDirectory on channel plugins.flutter.io/path_provider)`
Steps to reproduce
Steps to reproduce the behavior:
Take the [example project](https://github.com/FirebaseExtended/flutterfire/tree/master/packages/firebase_messaging/firebase_messaging/example)
Add [path_provider](https://pub.dev/packages/path_provider) to the pubspec.yaml.
Call getApplicationDocumentsDirectory in main.dart's _firebaseMessagingBackgroundHandler.
Run the app and put in the background in order to use the BackgroundMessageHandler.
Send a message through firebase.

Expected behavior
I expected that getApplicationDocumentsDirectory would return the same value as if i run it in the main method and not to throw an error.
Sample project
If you use the example project for firebase messageing the only difference is to add path_provider to the pubspec.yaml and edit the main.dart beginning like this.
import 'dart:async';
import 'dart:convert';

import 'package:firebase_core/firebase_core.dart';
import 'package:firebase_messaging/firebase_messaging.dart';
import 'package:firebase_messaging_example/firebase_config.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:http/http.dart' as http;
import 'package:flutter_local_notifications/flutter_local_notifications.dart';
import 'package:path_provider/path_provider.dart';

import 'message.dart';
import 'message_list.dart';
import 'permissions.dart';
import 'token_monitor.dart';

/// Define a top-level named handler which background/terminated messages will
/// call.
///
/// To verify things are working, check out the native platform logs.
Future<void> _firebaseMessagingBackgroundHandler(RemoteMessage message) async {
  // If you're going to use other Firebase services in the background, such as Firestore,
  // make sure you call `initializeApp` before using other Firebase services.
  WidgetsFlutterBinding.ensureInitialized();
  print(getApplicationDocumentsDirectory());  // this line produces a MissingPluginException
  await Firebase.initializeApp(options: DefaultFirebaseConfig.platformOptions);
  print('Handling a background message ${message.messageId}');
}

/// Create a [AndroidNotificationChannel] for heads up notifications
late AndroidNotificationChannel channel;

/// Initialize the [FlutterLocalNotificationsPlugin] package.
late FlutterLocalNotificationsPlugin flutterLocalNotificationsPlugin;

Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();
  print(getApplicationDocumentsDirectory());  // however this does not.
  await Firebase.initializeApp(
    options: const FirebaseOptions(
      apiKey: 'AIzaSyAHAsf51D0A407EklG1bs-5wA7EbyfNFg0',
      appId: '1:448618578101:ios:0b11ed8263232715ac3efc',
      messagingSenderId: '448618578101',
      projectId: 'react-native-firebase-testing',
    ),
  );

  // Set the background messaging handler early on, as a named top-level function
  FirebaseMessaging.onBackgroundMessage(_firebaseMessagingBackgroundHandler);

  // the rest of the file

Additional context
I tried several fixes including a clean build an even uninstalling the sdk completely an re-clone the project to make sure I have no build files leftover on my pc.
A coworker also build the build the project but clean an for the first time.
His machine did not have this problem.
Flutter doctor
Run flutter doctor and paste the output below:
$ /opt/sdk/flutter/bin/flutter doctor -v
[✓] Flutter (Channel stable, 2.10.2, on Arch Linux 5.16.11-arch1-1, locale en_US.UTF-8)
    • Flutter version 2.10.2 at /opt/sdk/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 097d3313d8 (11 days ago), 2022-02-18 19:33:08 -0600
    • Engine revision a83ed0e5e3
    • Dart version 2.16.1
    • DevTools version 2.9.2

[✓] Android toolchain - develop for Android devices (Android SDK version 32.1.0-rc1)
    • Android SDK at /opt/sdk/android
    • Platform android-32, build-tools 32.1.0-rc1
    • Java binary at: /opt/android-studio/jre/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.11+0-b60-7590822)
    • All Android licenses accepted.

[✓] Chrome - develop for the web
    • Chrome at google-chrome

[✓] Linux toolchain - develop for Linux desktop
    • clang version 13.0.1
    • cmake version 3.22.2
    • ninja version 1.10.2
    • pkg-config version 1.8.0

[✓] Android Studio (version 2021.1)
    • Android Studio at /opt/android-studio
    • Flutter plugin version 64.1.2
    • Dart plugin version 211.7798
    • Java version OpenJDK Runtime Environment (build 11.0.11+0-b60-7590822)

[✓] IntelliJ IDEA Ultimate Edition (version 2021.3)
    • IntelliJ at /opt/intellij-idea-ultimate-edition
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart

[✓] Connected device (3 available)
    • sdk gphone64 x86 64 (mobile) • emulator-5554 • android-x64    • Android 12 (API 32) (emulator)
    • Linux (desktop)              • linux         • linux-x64      • Arch Linux 5.16.11-arch1-1
    • Chrome (web)                 • chrome        • web-javascript • Google Chrome 98.0.4758.102

[✓] HTTP Host Availability
    • All required HTTP hosts are available

• No issues found!
`
```

Hi @mAlkhatieb, Thanks for filing the issue. I am able to reproduce the issue on stable and the master channel.  Calling getApplicationDocumentsDirectory() when the app is in the background it throws missing plugin exception.
Notice the logs calling getApplicationDocumentsDirectory in main prints Instance of 'Future<Directory> but throws missing plugin exception when called while app is in background

logs
Launching lib/main.dart on Redmi K20 Pro in debug mode...
Warning: Mapping new ns http://schemas.android.com/repository/android/common/02 to old ns http://schemas.android.com/repository/android/common/01
Warning: Mapping new ns http://schemas.android.com/repository/android/generic/02 to old ns http://schemas.android.com/repository/android/generic/01
Warning: Mapping new ns http://schemas.android.com/sdk/android/repo/addon2/02 to old ns http://schemas.android.com/sdk/android/repo/addon2/01
Warning: Mapping new ns http://schemas.android.com/sdk/android/repo/repository2/02 to old ns http://schemas.android.com/sdk/android/repo/repository2/01
Warning: Mapping new ns http://schemas.android.com/sdk/android/repo/sys-img2/02 to old ns http://schemas.android.com/sdk/android/repo/sys-img2/01
✓  Built build/app/outputs/flutter-apk/app-debug.apk.
W/FlutterActivityAndFragmentDelegate(17048): A splash screen was provided to Flutter, but this is deprecated. See flutter.dev/go/android-splash-migration for migration steps.
Connecting to VM Service at ws://<IP_ADDRESS>:52159/EOdwXFZOGMA=/ws
I/flutter (17048): Instance of 'Future<Directory>'
W/FlutterJNI(17048): FlutterJNI.loadLibrary called more than once
I/ResourceExtractor(17048): Found extracted resources res_timestamp-1-1646305914058
W/FlutterJNI(17048): FlutterJNI.prefetchDefaultFontManager called more than once
W/FlutterJNI(17048): FlutterJNI.init called more than once
I/FLTFireBGExecutor(17048): Creating background FlutterEngine instance, with args: [--start-paused, --enable-dart-profiling]
D/PathProviderPlugin(17048): Use TaskQueues.
I/flutter (17048): Token monitor set null
I/FLTFireMsgService(17048): FlutterFirebaseMessagingBackgroundService started!
I/flutter (17048): FCM Token: dFHYqUaMTamHwNU_idOH9-:APA91bHGfitU8DHpaxxfXNv09hNy3VhVOAPzY_bgBCZYOfrgqZM0TZAIEOAP5oqxc35H0Qdvjub1E8FLMnQEnp7CzoEzWmusbWv9ehryPbkp0lLfbntr4z7Z6wHPsMIG_woT0jel9o9Y
I/flutter (17048): Token monitor set null
I/evercode.triag(17048): ProcessProfilingInfo new_methods=1846 is saved saved_to_disk=1 resolve_classes_delay=8000
D/FLTFireMsgReceiver(17048): broadcast received for message
W/evercode.triage(17048): type=1400 audit(0.0:342914): avc: denied { read } for name="u:object_r:vendor_displayfeature_prop:s0" dev="tmpfs" ino=17608 scontext=u:r:untrusted_app:s0:c14,c260,c512,c768 tcontext=u:object_r:vendor_displayfeature_prop:s0 tclass=file permissive=0 app=com.nevercode.triage
E/libc    (17048): Access denied finding property "ro.vendor.df.effect.conflict"
E/libc    (17048): Access denied finding property "ro.vendor.knock.type"
W/evercode.triag(17048): Accessing hidden method Landroid/os/WorkSource;->add(I)Z (greylist,test-api, reflection, allowed)
W/evercode.triag(17048): Accessing hidden method Landroid/os/WorkSource;->add(ILjava/lang/String;)Z (greylist,test-api, reflection, allowed)
W/evercode.triag(17048): Accessing hidden method Landroid/os/WorkSource;->get(I)I (greylist, reflection, allowed)
W/evercode.triag(17048): Accessing hidden method Landroid/os/WorkSource;->getName(I)Ljava/lang/String; (greylist, reflection, allowed)
W/FirebaseMessaging(17048): Unable to log event: analytics library is missing
I/flutter (17048): Instance of 'Future<Directory>'
E/flutter (17048): [ERROR:flutter/lib/ui/ui_dart_state.cc(209)] Unhandled Exception: MissingPluginException(No implementation found for method getApplicationDocumentsDirectory on channel plugins.flutter.io/path_provider)
E/flutter (17048): #0      MethodChannel._invokeMethod
E/flutter (17048): <asynchronous suspension>
E/flutter (17048): #1      getApplicationDocumentsDirectory
E/flutter (17048): <asynchronous suspension>
E/flutter (17048):
I/flutter (17048): Handling a background message 0:1646305938972130%a9039156a9039156

code sample
// Copyright 2019 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// @dart=2.9

import 'dart:async';
import 'dart:convert';

import 'package:firebase_core/firebase_core.dart';
import 'package:firebase_messaging/firebase_messaging.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:http/http.dart' as http;
import 'package:flutter_local_notifications/flutter_local_notifications.dart';
import 'package:path_provider/path_provider.dart';

import 'message.dart';
import 'message_list.dart';
import 'permissions.dart';
import 'token_monitor.dart';

AndroidNotificationChannel channel;
FlutterLocalNotificationsPlugin flutterLocalNotificationsPlugin;

/// Define a top-level named handler which background/terminated messages will
/// call.
///
/// To verify things are working, check out the native platform logs.
Future<void> _firebaseMessagingBackgroundHandler(RemoteMessage message) async {
  // If you're going to use other Firebase services in the background, such as Firestore,
  // make sure you call `initializeApp` before using other Firebase services.
  WidgetsFlutterBinding.ensureInitialized();
  print(getApplicationDocumentsDirectory());
  await Firebase.initializeApp();
  print('Handling a background message ${message.messageId}');
}

Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp();
  print(getApplicationDocumentsDirectory());
  // Set the background messaging handler early on, as a named top-level function
  FirebaseMessaging.onBackgroundMessage(_firebaseMessagingBackgroundHandler);

  if (!kIsWeb) {
    /// Create a [AndroidNotificationChannel] for heads up notifications
    channel = AndroidNotificationChannel(
      'high_importance_channel', // id
      'High Importance Notifications', // title
      description:
          'This channel is used for important notifications.', // description
      importance: Importance.high,
    );

    /// Initialize the [FlutterLocalNotificationsPlugin] package.
    flutterLocalNotificationsPlugin = FlutterLocalNotificationsPlugin();

    /// Create an Android Notification Channel.
    ///
    /// We use this channel in the `AndroidManifest.xml` file to override the
    /// default FCM channel to enable heads up notifications.
    await flutterLocalNotificationsPlugin
        .resolvePlatformSpecificImplementation<
            AndroidFlutterLocalNotificationsPlugin>()
        ?.createNotificationChannel(channel);

    /// Update the iOS foreground notification presentation options to allow
    /// heads up notifications.
    await FirebaseMessaging.instance
        .setForegroundNotificationPresentationOptions(
      alert: true,
      badge: true,
      sound: true,
    );
  }

  runApp(MessagingExampleApp());
}

/// Entry point for the example application.
class MessagingExampleApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Messaging Example App',
      theme: ThemeData.dark(),
      routes: {
        '/': (context) => Application(),
        '/message': (context) => MessageView(),
      },
    );
  }
}

// Crude counter to make messages unique
int _messageCount = 0;

/// The API endpoint here accepts a raw FCM payload for demonstration purposes.
String constructFCMPayload(String token) {
  _messageCount++;
  return jsonEncode({
    'to': token,
    'data': {
      'via': 'FlutterFire Cloud Messaging!!!',
      'count': _messageCount.toString(),
    },
    'notification': {
      'title': 'Hello FlutterFire!',
      'body': 'This notification (#$_messageCount) was created via FCM!',
    },
  });
}

/// Renders the example application.
class Application extends StatefulWidget {
  @override
  State<StatefulWidget> createState() => _Application();
}

class _Application extends State<Application> {
  String _token;

  @override
  void initState() {
    super.initState();
    FirebaseMessaging.instance
        .getInitialMessage()
        .then((RemoteMessage message) {
      if (message != null) {
        print("Got initial message $message");
        Navigator.pushNamed(context, '/message',
            arguments: MessageArguments(message, true));
      }
    });

    FirebaseMessaging.onMessage.listen((RemoteMessage message) {
      RemoteNotification notification = message.notification;
      AndroidNotification android = message.notification?.android;
      print('A new onMessage event was published!');
      if (notification != null && android != null && !kIsWeb) {
        flutterLocalNotificationsPlugin.show(
            notification.hashCode,
            notification.title,
            notification.body,
            NotificationDetails(
              android: AndroidNotificationDetails(
                channel.id,
                channel.name,
                channelDescription: channel.description,
                // TODO add a proper drawable resource to android, for now using
                //      one that already exists in example app.
                icon: 'launch_background',
              ),
            ));
      }
    });

    FirebaseMessaging.onMessageOpenedApp.listen((RemoteMessage message) {
      print('A new onMessageOpenedApp event was published!');
      Navigator.pushNamed(context, '/message',
          arguments: MessageArguments(message, true));
    });
  }

  Future<void> sendPushMessage() async {
    if (_token == null) {
      print('Unable to send FCM message, no token exists.');
      return;
    }

    try {
      var resp = json.decode((await http.post(
        Uri.parse('https://fcm.googleapis.com/fcm/send'),
        headers: <String, String>{
          'Content-Type': 'application/json; charset=UTF-8',
          'Authorization':
              'key=AAAAcVC6H8o:APA91bF9eBcw6f4RbqJ89uYUGJ7RpMm2w0-yU8T8TIJ5LgXbjc91z_WxlOOzsUotZc6kYpqIQs7EnO5Im00xrLNuLpbkZ7VHgtFQ_Jv19W-XMi2dvWLteOZDTo77u8SzPHy-qF1bxBgp'
        },
        body: constructFCMPayload(_token),
      ))
          .body);
      print(resp);
      if (resp['failure'] == 1) {
        print(
            "Failed to send to $_token due to ${resp['results'][0]['error']}");
      }
    } catch (e) {
      print(e);
    }
  }

  Future<void> onActionSelected(String value) async {
    switch (value) {
      case 'subscribe':
        {
          print(
              'FlutterFire Messaging Example: Subscribing to topic "fcm_test".');
          await FirebaseMessaging.instance.subscribeToTopic('fcm_test');
          print(
              'FlutterFire Messaging Example: Subscribing to topic "fcm_test" successful.');
        }
        break;
      case 'unsubscribe':
        {
          print(
              'FlutterFire Messaging Example: Unsubscribing from topic "fcm_test".');
          await FirebaseMessaging.instance.unsubscribeFromTopic('fcm_test');
          print(
              'FlutterFire Messaging Example: Unsubscribing from topic "fcm_test" successful.');
        }
        break;
      case 'get_apns_token':
        {
          if (defaultTargetPlatform == TargetPlatform.iOS ||
              defaultTargetPlatform == TargetPlatform.macOS) {
            print('FlutterFire Messaging Example: Getting APNs token...');
            String token = await FirebaseMessaging.instance.getAPNSToken();
            print('FlutterFire Messaging Example: Got APNs token: $token');
          } else {
            print(
                'FlutterFire Messaging Example: Getting an APNs token is only supported on iOS and macOS platforms.');
          }
        }
        break;
      default:
        break;
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('Cloud Messaging'),
        actions: <Widget>[
          PopupMenuButton(
            onSelected: onActionSelected,
            itemBuilder: (BuildContext context) {
              return [
                const PopupMenuItem(
                  value: 'subscribe',
                  child: Text('Subscribe to topic'),
                ),
                const PopupMenuItem(
                  value: 'unsubscribe',
                  child: Text('Unsubscribe to topic'),
                ),
                const PopupMenuItem(
                  value: 'get_apns_token',
                  child: Text('Get APNs token (Apple only)'),
                ),
              ];
            },
          ),
        ],
      ),
      floatingActionButton: Builder(
        builder: (context) => FloatingActionButton(
          onPressed: sendPushMessage,
          backgroundColor: Colors.white,
          child: const Icon(Icons.send),
        ),
      ),
      body: SingleChildScrollView(
        child: Column(
          children: [
            MetaCard('Permissions', Permissions()),
            MetaCard('FCM Token', TokenMonitor((token) {
              print('Token monitor set $_token');
              _token = token;
              return Column(
                children: [
                  token == null
                      ? const CircularProgressIndicator()
                      : Text(token, style: const TextStyle(fontSize: 12)),
                  Row(
                    mainAxisAlignment: MainAxisAlignment.center,
                    children: [
                      IconButton(
                        onPressed: () async {
                          var before = _token;
                          print('Before: $_token');
                          var token;
                          if (kIsWeb) {
                            token = await FirebaseMessaging.instance.getToken(
                                vapidKey:
                                    "BHOPmb4Gz7mSLtue-BSzZGOzIO1LTiHThiHl1_ZbUtRaj5PhHJhR2Isr9hGBH1gfw4jhcKJVTyDPneau8kdLyVw");
                          } else {
                            token = await FirebaseMessaging.instance.getToken();
                          }
                          _token = token;
                          print('After: $_token');
                          if (_token == null) {
                            ScaffoldMessenger.of(context).showSnackBar(
                                SnackBar(content: const Text("No token!")));
                            return;
                          }
                          if (before == _token) {
                            ScaffoldMessenger.of(context).showSnackBar(SnackBar(
                                content:
                                    const Text("Current token is valid!")));
                          } else {
                            ScaffoldMessenger.of(context).showSnackBar(SnackBar(
                                content: const Text("Got new token!")));
                          }
                        },
                        icon: const Icon(Icons.refresh),
                        tooltip: "Get token",
                      ),
                      if (_token != null)
                        IconButton(
                          onPressed: () {
                            Clipboard.setData(ClipboardData(text: _token));
                            ScaffoldMessenger.of(context).showSnackBar(SnackBar(
                                content:
                                    const Text("Copied token to clipboard!")));
                          },
                          icon: const Icon(Icons.copy),
                          tooltip: "Copy token to clipboard",
                        ),
                      if (_token != null)
                        IconButton(
                          onPressed: () async {
                            await FirebaseMessaging.instance.deleteToken();
                            print('Deleted token $_token');
                            var token =
                                await FirebaseMessaging.instance.getToken();
                            print("New token $token");
                            ScaffoldMessenger.of(context).showSnackBar(SnackBar(
                                content: const Text("Deleted token!")));
                          },
                          icon: const Icon(Icons.delete_forever),
                          tooltip: "Delete token",
                        ),
                    ],
                  ),
                ],
              );
            })),
            MetaCard('Message Stream', MessageList()),
          ],
        ),
      ),
    );
  }
}

/// UI Widget for displaying metadata.
class MetaCard extends StatelessWidget {
  final String _title;
  final Widget _children;

  // ignore: public_member_api_docs
  MetaCard(this._title, this._children);

  @override
  Widget build(BuildContext context) {
    return Container(
        width: double.infinity,
        margin: const EdgeInsets.only(left: 8, right: 8, top: 8),
        child: Card(
            child: Padding(
                padding: const EdgeInsets.all(16),
                child: Column(children: [
                  Container(
                      margin: const EdgeInsets.only(bottom: 16),
                      child:
                          Text(_title, style: const TextStyle(fontSize: 18))),
                  _children,
                ]))));
  }
}

flutter doctor -v (mac)
[✓] Flutter (Channel stable, 2.10.3, on macOS 12.1 21C52 darwin-arm, locale en-GB)
    • Flutter version 2.10.3 at /Users/mahesh/Documents/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 7e9793dee1 (18 hours ago), 2022-03-02 11:23:12 -0600
    • Engine revision bd539267b4
    • Dart version 2.16.1
    • DevTools version 2.9.2

[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at /Users/mahesh/Library/Android/sdk
    • Platform android-31, build-tools 31.0.0
    • ANDROID_HOME = /Users/mahesh/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.8+10-b944.6916264)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 13.2.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • CocoaPods version 1.10.2

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 4.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.8+10-b944.6916264)

[✓] IntelliJ IDEA Community Edition (version 2021.2.1)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin version 61.2.4
    • Dart plugin version 212.5080.8

[✓] VS Code (version 1.63.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.36.0

[✓] Connected device (3 available)
    • Redmi K20 Pro (mobile) • <IP_ADDRESS>:5555 • android-arm64  • Android 11 (API 30)
    • macOS (desktop)        • macos            • darwin-arm64   • macOS 12.1 21C52 darwin-arm
    • Chrome (web)           • chrome           • web-javascript • Google Chrome 99.0.4844.51

[✓] HTTP Host Availability
    • All required HTTP hosts are available

• No issues found!

[✓] Flutter (Channel master, 2.11.0-0.0.pre.715, on macOS 12.1 21C52 darwin-arm, locale en-GB)
    • Flutter version 2.11.0-0.0.pre.715 at /Users/mahesh/Documents/flutter_master
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 8b95cd6f35 (7 hours ago), 2022-02-28 16:31:12 -0800
    • Engine revision 615a60512c
    • Dart version 2.17.0 (build 2.17.0-150.0.dev)
    • DevTools version 2.11.1

[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at /Users/mahesh/Library/Android/sdk
    • Platform android-31, build-tools 31.0.0
    • ANDROID_HOME = /Users/mahesh/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.8+10-b944.6916264)
    • All Android licenses accepted.

[!] Xcode - develop for iOS and macOS (Xcode 13.2.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    ! CocoaPods 1.10.2 out of date (1.11.0 is recommended).
        CocoaPods is used to retrieve the iOS and macOS platform side's plugin code that responds to your plugin usage on
        the Dart side.
        Without CocoaPods, plugins will not work on iOS or macOS.
        For more info, see https://flutter.dev/platform-plugins
      To upgrade see https://guides.cocoapods.org/using/getting-started.html#installation for instructions.

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 4.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.8+10-b944.6916264)

[✓] IntelliJ IDEA Community Edition (version 2021.2.1)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin version 61.2.4
    • Dart plugin version 212.5080.8

[✓] VS Code (version 1.63.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.34.0

[✓] Connected device (4 available)
    • Redmi K20 Pro (mobile) • <IP_ADDRESS>:5555                     • android-arm64  • Android 11 (API 30)
    • iPhone 13 Pro (mobile) • CBEF6BFA-D3DC-4680-8900-E01C62A4B04C • ios            •
      com.apple.CoreSimulator.SimRuntime.iOS-15-2 (simulator)
    • macOS (desktop)        • macos                                • darwin-arm64   • macOS 12.1 21C52 darwin-arm
    • Chrome (web)           • chrome                               • web-javascript • Google Chrome 98.0.4758.109

[✓] HTTP Host Availability
    • All required HTTP hosts are available

! Doctor found issues in 1 category.

Duplicate of https://github.com/flutter/flutter/issues/99155
See https://github.com/flutter/flutter/issues/99155#issuecomment-1052023743 for the current workaround.

I can confirm the work around works, verified on Android

logs
mahesh@Maheshs-MacBook-Air-M1 firebase_messaging_example % flutter run
Multiple devices found:
Redmi K20 Pro (mobile) • <IP_ADDRESS>:5555                     • android-arm64  • Android 11 (API 30)
iPhone 12 Pro (mobile) • 14F40EC6-3B73-469A-A1C0-8CF0B152290F • ios            •
com.apple.CoreSimulator.SimRuntime.iOS-14-5 (simulator)
macOS (desktop)        • macos                                • darwin-arm64   • macOS 12.1 21C52 darwin-arm
Chrome (web)           • chrome                               • web-javascript • Google Chrome 99.0.4844.51
[1]: Redmi K20 Pro (<IP_ADDRESS>:5555)
[2]: iPhone 12 Pro (14F40EC6-3B73-469A-A1C0-8CF0B152290F)
[3]: macOS (macos)
[4]: Chrome (chrome)
Please choose one (To quit, press "q/Q"): 1
Launching lib/main.dart on Redmi K20 Pro in debug mode...
Warning: Mapping new ns http://schemas.android.com/repository/android/common/02 to old ns http://schemas.android.com/repository/android/common/01
Warning: Mapping new ns http://schemas.android.com/repository/android/generic/02 to old ns http://schemas.android.com/repository/android/generic/01
Warning: Mapping new ns http://schemas.android.com/sdk/android/repo/addon2/02 to old ns http://schemas.android.com/sdk/android/repo/addon2/01
Warning: Mapping new ns http://schemas.android.com/sdk/android/repo/repository2/02 to old ns http://schemas.android.com/sdk/android/repo/repository2/01
Warning: Mapping new ns http://schemas.android.com/sdk/android/repo/sys-img2/02 to old ns http://schemas.android.com/sdk/android/repo/sys-img2/01
Note: /Users/mahesh/Documents/flutter/.pub-cache/hosted/pub.dartlang.org/path_provider_android-2.0.12/android/src/main/java/io/flutter/plugins/pathprovider/PathProviderPlugin.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
Note: /Users/mahesh/Documents/flutter/.pub-cache/hosted/pub.dartlang.org/firebase_messaging-11.2.8/android/src/main/java/io/flutter/plugins/firebase/messaging/JobIntentService.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Running Gradle task 'assembleDebug'...                            128.4s
✓  Built build/app/outputs/flutter-apk/app-debug.apk.
Installing build/app/outputs/flutter-apk/app.apk...                20.2s
W/FlutterActivityAndFragmentDelegate(10458): A splash screen was provided to Flutter, but this is deprecated. See flutter.dev/go/android-splash-migration for migration steps.
I/flutter (10458): Instance of 'Future<Directory>'
W/FlutterJNI(10458): FlutterJNI.loadLibrary called more than once
W/FlutterJNI(10458): FlutterJNI.prefetchDefaultFontManager called more than once
W/FlutterJNI(10458): FlutterJNI.init called more than once
I/flutter (10458): Token monitor set null
I/flutter (10458): FCM Token: dFHYqUaMTamHwNU_idOH9-:APA91bHGfitU8DHpaxxfXNv09hNy3VhVOAPzY_bgBCZYOfrgqZM0TZAIEOAP5oqxc35H0Qdvjub1E8FLMnQEnp7CzoEzWmusbWv9ehryPbkp0lLfbntr4z7Z6wHPsMIG_woT0jel9o9Y
I/flutter (10458): Token monitor set null
I/evercode.triag(10458): ProcessProfilingInfo new_methods=1846 is saved saved_to_disk=1 resolve_classes_delay=8000
W/Choreographer(10458): Frame time is 0.072607 ms in the future!  Check that graphics HAL is generating vsync timestamps using the correct timebase.
Syncing files to device Redmi K20 Pro...                           688ms

Flutter run key commands.
r Hot reload. 🔥🔥🔥
R Hot restart.
h List all available interactive commands.
d Detach (terminate "flutter run" but leave application running).
c Clear the screen
q Quit (terminate the application on the device).

Running with unsound null safety
For more information see https://dart.dev/null-safety/unsound-null-safety

An Observatory debugger and profiler on Redmi K20 Pro is available at:
http://<IP_ADDRESS>:49773/sORnwN-3fRQ=/
The Flutter DevTools debugger and profiler on Redmi K20 Pro is available at:
http://<IP_ADDRESS>:9101?uri=http://<IP_ADDRESS>:49773/sORnwN-3fRQ=/
D/FLTFireMsgReceiver(10458): broadcast received for message
E/libc    (10458): Access denied finding property "ro.vendor.df.effect.conflict"
E/libc    (10458): Access denied finding property "ro.vendor.knock.type"
W/evercode.triage(10458): type=1400 audit(0.0:447007): avc: denied { read } for name="u:object_r:vendor_displayfeature_prop:s0" dev="tmpfs" ino=17608 scontext=u:r:untrusted_app:s0:c14,c260,c512,c768 tcontext=u:object_r:vendor_displayfeature_prop:s0 tclass=file permissive=0 app=com.microsoft.office.outlook
W/evercode.triag(10458): Accessing hidden method Landroid/os/WorkSource;->add(I)Z (greylist,test-api, reflection, allowed)
W/evercode.triag(10458): Accessing hidden method Landroid/os/WorkSource;->add(ILjava/lang/String;)Z (greylist,test-api, reflection, allowed)
W/evercode.triag(10458): Accessing hidden method Landroid/os/WorkSource;->get(I)I (greylist, reflection, allowed)
W/evercode.triag(10458): Accessing hidden method Landroid/os/WorkSource;->getName(I)Ljava/lang/String; (greylist, reflection, allowed)
W/FirebaseMessaging(10458): Unable to log event: analytics library is missing
I/flutter (10458): Instance of 'Future<Directory>'
I/flutter (10458): Handling a background message 0:1646392240172387%a9039156a9039156

Please share the code if possible

@subhashish-bacancy not sure what code you are looking for the workaround for the problem is here https://github.com/flutter/flutter/issues/99155#issuecomment-1052023743


No url found for submodule path

I m facing the issue during build process
Issue Faced:
Error: submodule update: fatal: No url found for submodule path 'abc' in .gitmodules
Project Structure
We have a project in which we are trying to add two git modules. during the build process we are facing the above issue.
How we solve this issue?

Hello @Ank7719 👋
In case you still experience this issue, could you please submit a ticket to us with all the details you can provide at https://support.bitrise.io/?
Please make sure to send us the URL of a related build and enable Support User  so we can take a closer look! 🙂


Auth::user() is inaccessible from scopes when retrieving the model through route model binding

I have a global scope on a model which adds an extra where clause including the user's ID (No, relations isn't going to work since they are also already in use). Everything worked perfectly until I tried to use model binding on one of my routes to clean it up. Apparently the model binding runs so early during the lifecycle of the request that Auth::user() hasn't been set yet and therefore just returns null.

Yes, that is true.

Sorry, but this is not a bug, it's just how it works.


OpenGL error-Environment prerequisite

I'm using CUDA-10.1 and Ubuntu 16.04, the docker built was fine and the data is located as mentioned. However, receiving this error
Missing GL version
terminate called after throwing an instance of 'std::runtime_error'
  what():  Failed to initialize GLEW.
  Aborted (core dumped)

Any ideas ? also can you share your tested environment details?

Hi,
Sorry, I don't know why this error comes.
My platform is an Intel NUC with a 1080ti GPU on ubuntu 16.04. The driver is 455.45.01, and Cuda is 11.1.
Is it possible that your driver is too old? Or it's because your hardware is not compatible. Please see this: https://github.com/PRBonn/semantic_suma/issues/15

@maskjp Thank you for your reply.
Upgraded driver and stopped using X11 forwarding.
Now the GUI works and shows up however the data doesn't load I'm providing the folder as ~/Rellis-3D/0000 with the described data folder structure. Any debugging tips?

Hi, @bmankirLinker,
Can you post the output from the command line? My output is as follows:
root@605596e98f86:~/catkin_ws/src/point_labeler/bin# ./labeler
OpenGL Context Version 4.5 core profile
GLEW initialized.
OpenGL context version: 4.5
OpenGL vendor string  : NVIDIA Corporation
OpenGL renderer string: GeForce GTX 1080 Ti/PCIe/SSE2
temp mem size: 3.6 MB
Found 0 instanceable labels.
-- Setting 'tile size' to 150
mem size: 1010.07 MB
-- Setting 'max scans' to 2000
-- Setting 'min range' to 0
-- Setting 'max range' to 150
/root/catkin_ws/src/point_labeler/bin
#tiles  = 14
Reading instances.txt...finished.
2847 point clouds read.
0, 0, 150
Setting points...copied 2847 scans with 31564544 points

Here's my output
GLEW initialized.
OpenGL context version: 4.5
OpenGL vendor string  : NVIDIA Corporation
OpenGL renderer string: GeForce RTX 2080 Ti/PCIe/SSE2
temp mem size: 3.6 MB
Found 0 instanceable labels.
-- Setting 'tile size' to 150
mem size: 1010.07 MB
-- Setting 'max scans' to 2000
-- Setting 'min range' to 0
-- Setting 'max range' to 150
/root/catkin_ws/src/point_labeler/bin
Setting points...copied 0 scans with 0 points
Setting points...copied 0 scans with 0 points

Here is my folder structure
.
`-- 00000
    |-- calib.txt
    |-- files
    |-- os1_cloud_node_kitti_bin
    `-- poses.txt

Does your os1_cloud_node_kitti_bin file include .bin files? It looks like that your os1_cloud_node_kitti_bin folder doesn't include any bin file. Please check it. And when you open the folder you need to select the seq folder, for example, the 00000 folder.
00000
├── os1_cloud_node_kitti_bin/             -- directory containing ".bin" files with Velodyne point clouds.
├── labels/   [optional]  -- label directory, will be generated if not present.
├── pylon_camera_node/  [optional]  -- directory containing ".png" files from the color   camera.
├── calib.txt             -- calibration of velodyne vs. camera. needed for projection of point cloud into camera.
└── poses.txt             -- file containing the poses of every scan.

os1_cloud_node_kitti_bin folder in ~/Rellis-3D/0000 :
.
|-- 000000.bin
|-- 000001.bin
|-- 000002.bin
|-- 000003.bin
|-- 000004.bin
|-- 000005.bin
|-- 000006.bin
|-- 000007.bin
...
|-- 002846.bin

also using the ~/Rellis-3D/0000 as my dataset argument for running docker

Ok, that's the problem. You might want to use ~/Rellis-3D as your dataset argument for running docker. And you open the 00000 folder in the software. Or if you don't want to re-run the docker, now you can try to open the parent folder of os1_cloud_node_kitti_bin in docker (I believe the folder is called dataset)

Ok, that's the problem. You might want to use ~/Rellis-3D as your dataset argument for running docker. And you open the 00000 folder in the software. Or if you don't want to re-run the docker, now you can try to open the parent folder of os1_cloud_node_kitti_bin in docker (I believe the folder is called dataset)

Yeah, that worked, thanks for the help. One last question, does the label folder name has to be os1_cloud_node_semantickitti_label_id or labels? Couldn't visualize them.

Great! The label folder name needs to be os1_cloud_node_semantickitti_label_id. The readme is not correct. I will change it. Thank you!

Any other actions to be done in GUI after loading the sequence?

No, the label should be visualized after you open the folder if your data were organized correctly. Could you post the output from the terminal again? It might provide some information.

GLEW initialized.
OpenGL context version: 4.5
OpenGL vendor string  : NVIDIA Corporation
OpenGL renderer string: GeForce RTX 2080 Ti/PCIe/SSE2
temp mem size: 3.6 MB
Found 0 instanceable labels.
-- Setting 'tile size' to 150
mem size: 1010.07 MB
-- Setting 'max scans' to 2000
-- Setting 'min range' to 0
-- Setting 'max range' to 150
/root/catkin_ws/src/point_labeler/bin
#tiles  = 14
Reading instances.txt...finished.
2847 point clouds read.
0, 0, 150
Setting points...copied 2847 scans with 31564544 points

My folder
|-- calib.txt
|-- instances.txt
|-- os1_cloud_node_kitti_bin
|-- os1_cloud_node_semantickitti_label_id
`-- poses.txt

label folder:
.
|-- 000000.label
|-- 000001.label
|-- 000002.label
|-- 000003.label
|-- 000004.label
|-- 000005.label
|-- 000006.label
|-- 000007.label
|-- 000008.label
...

All looks correct! I don't understand why the labels are not showing.  Could you change the label folder name from "os1_cloud_node_semantickitti_label_id" to "labels"? Because before the Jan 21 commit, the folder was called "labels If you did download the code before Jan 21, you should update it.
If you downloaded the code after Jan 21, C, try to label some point cloud using the tool, save the labels, reopen the app and reload the data to whether the label can be visualized?


Update global variables of Prometheus if required

Prometheus might be created on another namespace like "istio-system" for WatsonX, but not always on redhat-ods-monitoring.
Using a new keyword "Set Prometheus Variables" it will update the required global variables: RHODS_PROMETHEUS_URL and RHODS_PROMETHEUS_TOKEN,
if they were not set in ods_ci/test-variables.yml (and only if Prometheus is running).

Verified:
All monitoring tests passed, even when Prometheus vars where not defined in test variables:


Pass server arguments over socket

I tried to improve readability/robustness of configuration passed from the client ot the server: 870ced088ef469829722678f71a05412db34e88d (branch name_params)
But on Windows, it failed:
ERROR: Command too long (255 chars)
ERROR: Failed to execute: [adb], [shell], [CLASSPATH=/data/local/tmp/scrcpy-server.jar], [app_process], [/], [com.genymobile.scrcpy.Server], [1.13], [max_size=0], [bit_rate=8000000], [max_fps=0], [lock_video_orientation=-1], [tunnel_forward=false], [crop=], [send_frame_meta=true], [control=true], [display_id=0], [show_touches=false], [stay_awake=false]

I think many of these key=value pairs should be passed over the socket (not tunnel_forward because the socket creation depends on it).
Or maybe you have a better idea?

Do you mean using some kind of JSON, XML or INI file?

I got redirected here by this Google search: "scrcpy Command too long (255 chars)"
My problem is that I set this
ADB="C:\Program Files\Unity\Hub\Editor\2020.2.1f1\Editor\Data\PlaybackEngines\AndroidPlayer\SDK\platform-tools\adb.exe"

and got this:
C:\Builds>scrcpy --max-size 720 --bit-rate 1M --max-fps 30 --show-touches --always-on-top
INFO: scrcpy 1.17 <https://github.com/Genymobile/scrcpy>
C:\ProgramData\chocolatey\lib\scrcpy\tools\scrcpy-server: 1 file pushed. 2.3 MB/s (34930 bytes in 0.014s)
ERROR: Command too long (255 chars)
ERROR: Failed to execute: [C:\Program Files\Unity\Hub\Editor\2020.2.1f1\Editor\Data\PlaybackEngines\AndroidPlayer\SDK\platform-tools\adb.exe], [shell], [CLASSPATH=/data/local/tmp/scrcpy-server.jar], [app_process], [/], [com.genymobile.scrcpy.Server], [1.17], [info], [720], [1000000], [30], [-1], [false], [-], [true], [true], [0], [true], [false], [-], [-]

I get this error even if I enable long path support in Windows 10 via
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem\LongPathsEnabled

I was able to get around this problem with subst:
subst x: "C:\Program Files\Unity\Hub\Editor\2020.2.1f1\Editor\Data\PlaybackEngines\AndroidPlayer\SDK\platform-tools"
ADB="x:\adb.exe"

# to unmap x: drive
subst x: /D

So it looks like something in the scrcpy pipeline is limiting the path length.

It's only limited on Windows releases by mingw. If you know a solution to extand this limit on mingw, please help.
Refs https://github.com/Genymobile/scrcpy/issues/1358

Though it will be a misery to deal with, did you try using Unicode Win32 functions i.e. CreateProcessW? Also try with prepending \\?\ before the command line, e.g. L"\\\\?\\MyFiles\\adb.exe". CreateFileW has that kind of trickery.

I don't know the actual solution unfortunately. I mostly wanted to post the workaround as reference.
However, I did a bit of digging based on how Git for Windows (it uses mingw) handles long paths (the core.longpaths option) and found interesting sources that match what @Biswa96 mentions:
handle_long_path() in
https://github.com/git-for-windows/git/blob/main/compat/mingw.h
https://github.com/git-for-windows/git/blob/main/compat/mingw.c
A blog that discusses this:
https://www.brycevandyk.com/of-too-long-file-names-in-windows-and-git/
Hopefully this can help!

Thank you for the links.
Note that here the problem is that the command (including the arguments) is too long, not the path of the executable.

If I compile the 'name_params' branch can I reproduce this issue? Can you provide a prebuilt binary of Android side server? I can compile the C program but Android SDK is in Gigs.

Yes, I also mean the command line, the second argument in CreateProcessW, the lpCommandLine. Off-topic, see my little experiment here as an example.

 See a9d9cbf8b502cb537a1c7caaf2689be9eca3af60.
Also refs:

2eb881c5f13ae2c3a8c9ca68188c1abce77b48bd
04e5537f8ce21dbae365dcd980efda911188c945
7b29f5fd2de8f302e03365013093f5665efd3cfd


this.restangular.one is not a function

I'm working on an Angular 5 app.
I want to use Restangular in a service. Following is my code -
import { Injectable } from '@angular/core';
import { Restangular } from 'ngx-restangular';
import { Observable } from 'rxjs/Observable';

@Injectable()
export class ProjectService {

	constructor(public restangular: Restangular) {}

	restoreProject(project): Observable<any> {
		return this.restangular.one('projects', project.id).get();
	}

}

Following is the test for the above service -
import { TestBed, inject } from '@angular/core/testing';
import { Restangular } from 'ngx-restangular';
import { HttpModule, Http, BaseRequestOptions, XHRBackend } from '@angular/http';
import { MockBackend } from '@angular/http/testing';

import {ProjectService } from './project.service';

describe('ProjectService', () => {
	let service = ' ';

	beforeEach(() => {
		TestBed.configureTestingModule({
			providers: [
				ProjectService,
				{ provide: XHRBackend, useClass: MockBackend }
			]
		});
	});

	beforeEach(() => {
		service = new ProjectService(Restangular);
	});

	describe('restoreProject method', () => {

		let connection = '';

		beforeEach(inject([XHRBackend], (MockBackend) => {
			MockBackend.connections.subscribe((httpConnection: any) => connection = httpConnection);
		}));

		it('should query restore project', () => {
			service.restoreProject({id: 2});
			expect(connection.request.url).toMatch('projects/2', 'url invalid');
		});
	})
});

Karma outputs
this.restangular.one is not a function
The documentation had nothing about how to test this.

Referred to https://blog.thoughtram.io/angular/2016/11/28/testing-services-with-http-in-angular-2.html#testing-the-service
Was not a Restangular issue at all.
Some documentation on testing parts of the application that use restangular would be nice, though !


Api sprint1

PR for Lobby and User API

Where is the tracking issue for the lobby service unit tests?


Registration procedure - Create your own app

To many customers get stuck in the registration procedure.
We get 80% phone calls or emails of people who are stuck in the registration.
OSA and technology should asap sit together and redesign the registration flow.
Many cities are getting started and we are losing customers very fast in this way.
What we know already:
1/ Customers do not know they gonna receive an email to confirm their emailaddress - they do not know they have to confirm within 24hours - so 80% forgets about this and gets stuck afterwords.
Some of those issues should be solved at least before Tuesday next week!!

I think the instructions are clear, for example after submitting the application, this message is shown

To continue the registration process, you need to verify your e-mail address. An e-mail with further instructions has been sent to<EMAIL_ADDRESS>
Also, the 24-hours validity is mentioned in the email address itself, we might show it with the previous message instead.

@stevendepaepe, you can put the specifications here

Text to be used after registration:

Your registration is almost completed. These are the next steps of your registration.
Step 1
To be sure the e-mail address is entered correctly and really exists, we just sent an e-mail with a "Verify" button. You might need to check your Spam of Junk folders.
Step 2
Once you click the "Verify" button in the e-mail, your city/town will be notified of your registration.
Step 3
When your city/town approves your registration, you will receive an e-mail with your login and password.
OK, I understand

"Ok, I understand" should be a button, linking to https://dashboard.onzestadapp.be/customers/signin

Dutch:

Uw registratie is bijna voltooid. Dit zijn de volgende stappen van uw registratie.
Stap 1
Om zeker te zijn dat het e-mailadres correct is ingevuld en wel degelijk van u is, hebben we zonet een e-mail verstuurd met een "Verifiëren" knop. Vergeet niet te kijken in uw Spam of Ongewenste E-mail map.
Stap 2
Wanneer u op de "Verifiëren" knop in de e-mail geklikt hebt, zal uw stad/gemeente op de hoogte gebracht worden van uw registratie.
Stap 3
Wanneer de stad/gemeente uw registratie aanvaardt, zal u een e-mail ontvangen met uw login en wachtwoord.
OK, ik begrijp het


[add] airline term's color palette

Hello, maintainer.
Thanks for creating great Vim's colorscheme.
I love this colorscheme.
By the way, I've updated the color scheme in the terminal section of the vim-airline.
This is expected to improve the user interface.
This uses the same green color scheme as the insert mode color scheme.
before behaovor

normal mode

terminal mode

after behavior

normal mode

terminal mode

ping @ghifarit53

@ghifarit53
No reply?

@ghifarit53
No reply?

Hi @kazukazuinaina, thanks for the pull request. Sorry because I've been busy these few weeks and totally forgot about this

Hi @kazukazuinaina, thanks for the pull request. Sorry because I've been busy these few weeks and totally forgot about this


Add Folder for Q21 Onboarding Projects

This pull request adds an onboarding folder to the repository with sub directories corresponding to each season. This should help keep everything organized and help us separate official mainline boards from onboarding projects. Onboarding projects for this year should be merged into the Q21 sub directory. There is also a README file in the Q21 directory where the designer can provide a quick description of their project and sign their name.

This was on my list to do for when the first onboarding project becomes ready to merge, but good idea to get it set up ahead of time.
Related to this, I think it would be a good idea to create a release / tag at the end of every season, and refactor the repo in preparation for the next year (ie. clearing onboarding folder, moving proven designs to a reference or maybe archive folder etc.) Thoughts?

The archive folder you are talking about would be the Q21 folder inside this PR then we would add onboarding projects from the following year into a folder called Q22 and so on. Another option is to refactor each year into an archive folder, I am good with either. One  way to tag if an onboarding design is working and can be used for reference is mentioning it in the readme for the subdirectory where the project is stored.


fix: missing json import attribute when importing iconify packages

Resolves #186

@antfu Would we be able to get this merged? I see it was approved 9 days ago.
Thanks!


Update “radio-buttons”

Automatically generated by Netlify CMS

I updated the design tokens for radio buttons on this branch but some of them are messed up, I'll fix Monday.


Domo Connector: Domo Models Source Connector

ML Models can be done later on. Moving this to the backlog


Remove ORDS Validations

They just aren't working. I was using ords.<IP_ADDRESS>.12.48.zip and got a ton of errors. Had to manually remove all the checks.
Tested on CentOS 7.2 from Digital Ocean

@tschf I have temporarily disabled these checks in the appropriate files (just commented out). See commit for changes.

Some options:

Remove
Add unzip and java to build.sh
Validate based on filename only

Solution: Move package install ahead of config

Issue with moving package update before config OOS_MODULE_NODEJS is not defined. Will go back and manually install the two packages in build.sh


Features / gems / buzzphrases

separate aspects: auth, vis, sound, logging, meta, messaging etc.
vanilla-first
Respects semantic HTML
web-components friendly
clean tree
Particles of behavior, pieces / fragments / atoms / particles of logic
Can be gradually infused into react/JSX, reducing tree complexity
Replacement to HOCs
Natural hydration
0 bundling
real SPA
best of react, rxjs and jquery worlds

In readme.


Provided typings do not work for TS2

On TS 2.0.10, attempting to use UrlPattern like this:
import { UrlPattern } from 'url-pattern';
This fails with error:
.........node_modules/url-pattern/index"' has no exported member 'UrlPattern'.
Do you only support a particular TS version?

@mikaelwaltersson added the typescript typings initially. i have little experience with typescript.
@mikaelwaltersson or @dawnofthedev  are you interested in adding support for TS 2.0.10? that would be great!

Hi, sorry for the delayed response.
In this case there is nothing wrong with the typings, can't vouch for really early versions of TypeScript but there should be no problem using it from 2.0.0 and later.
The problem here is that url-pattern doesn't export a member named UrlPattern, instead it export a single unnamed object.
Use the following line to import the library instead:
import * as UrlPattern from 'url-pattern';
This issue should be closed

Thanks it works. You should include that in the docs.


Validate prop doesn't work

Hi,
I tried to use validation for a prop but it does not work. Seems like validate method isn't called at all. No error is thrown.
Using Zoid version 9.0.63.

I am also experiencing this issue.  I am using zoid 9.054  Here is a snippet from my create call where I provide some validation for a prop :
props: {
someProp: {
type: 'number',
validate: ({ value, props }) => {
console.log(value, props);
throw Error('Bad Prop');
}
},
I am also not getting any errors or seeing anything in the console.

Any progress, solution on this?

@bluepnume This is a modified version of the demo app to show the problem. An invalid email is passed here. This validation is expected to trigger an error but doesn't get called.
Thanks!


[Feature]: Add a Sortable toggle to table column properties

Is there an existing issue for this?

[X] I have searched the existing issues

Summary
Sometimes it's beneficial to restrict sorting on certain columns. It may not make sense to sort by a certain field, or you may be running a custom query onSort and attempting to sort a custom column will cause the query to fail. It would be nice if each column had a property toggle to allow/disallow sorting of the column.
Why should this be worked on?
This will improve the UX control of the developer by allowing them to disable a behavior that could potentially break the table or confuse the data for the end user.
 Front conversations

Hey @AS-Laguna, Do we know what fails for the user if this sortable action is not present? I am trying to understand their use case better!

For the user I raised this for, their table breaks if they sort by a custom column because they run a query on sort and the column doesn't exist. @somangshu

This makes sense. We didn't get to it previously, because it wasn't pointed out and we didn't think about it earlier.
I would suggest adding a "Disable sorting" option in the property pane. @keyurparalkar if you need help with prioritising this reach out to me on Slack.

I am also needing to limit which columns the user can sort by. This is because some of my columns, such as custom columns do not exist on the tables.
Due to scale of my DB, I am having to move to server-side pagination, and it is posing quite difficult to account for all the different columns the user could sort by, so just disabling the option to sort by certain columns would make this much easier and more scalable.

@JcbSm You can disable the server side sort and add a select widget where users can choose the columns to sort by
https://docs.appsmith.com/build-apps/how-to-guides/search-and-filter-table-data#sort-data


Feature request: Send request into localeDetector to make it more usable

Hello!
We are using @nimpl/router in our Next project and we see that localeDetector is very limited in use. Its only passed the URL.
I recommend adding this signature:
type LocaleDetector = (url: string, request: Request) => string | undefined;

const router = createMiddleware({
  i18n: {
    defaultLocale: "en",
    locales: [...LOCALES],
    localeDetector: (_, request) => {
       return findAcceptLanguage(request.headers);
    }
  },
});

This way we can actually perform real locale detection like using negotiator to see accept-lang headers etc.

Yes, that would be great, thank you!
But I think we can simply leave one argument - request, and it will contain all the request information, including url.
If you will decide not to do it - please let me know and I'll add the functionality in the nearest free time


Correct way to handle a failed async loading of keys

We have been using PBJVideoPlayer and it is awesome.
We are loading a remote m3u8 video and during the initialization of the AVURLAsset, PBJVideoPlayer  loads information about the video asynchronously using loadValuesAsynchronouslyForKeys. The keys that are currently in the list are "tracks", "playable", and "duration". We have one tester who is halfway around the world from our test server that is always having the problem that the "tracks" and "playable" keys succeed with the AVKeyValueStatusLoaded. However, the "duration" key is failing with AVKeyValueStatusFailed.
So, despite searching the Apple documentation and the  internet high and low, I am not exactly sure what to do in this situation and have a few questions:

Does AVKeyValueStatusFailed on a single key indicate that the AVAsset won't play? Is "duration" a key that will prevent playback.
Can I just re-query that single key with loadValuesAsynchronouslyForKeys and expect that the additional time since the creation of the AVURLAsset will cause it to succeed also?
Do I need to re-create the AVURLAsset object?
Will calls to [PlayerItem duration] block if this key failed? Will it return the wrong value?

I just can't seem to determine what the behavior will be if I change the code to ignore a failure on "duration" or how to attempt to correct it. Currently the PBJVideoPlayerController returns and never finished initializing the video if any of the key loading fails.

#26 Might be related


Problem running custom Flavor on iOS

I am trying to creating custom flavos. Everything works fine for Android and the gradle build system, but for iOS things are more problematic.
When I try to run the app using custom schemes and, each using a custom .xcconfg file (containing the custom bundleID), the flutter compiler cannot attach to the device. It builds correctly, the app ins installed on the device but does not start automatically and hot reload does not work.
This is my custom .xconfig:
#include "Generated.xcconfig"
FLUTTER_TARGET=lib/run_porto.dart
IS_APP_BUNDLE_ID=com.denox.mydenox.porto
IS_APP_NAME=Porto

I have other files, each one has a different bundleId.
I've run the command: flutter run --debug -v -t lib/run_denox.dart --flavor porto and get this error on the end:
An error was encountered processing the command (domain=FBSOpenApplicationServiceErrorDomain, code=1):
The request to open "${IS_APP_BUNDLE_ID}" failed.
The request was denied by service delegate (SBMainWorkspace) for reason: NotFound ("Application "${IS_APP_BUNDLE_ID}" is unknown to FrontBoard").

need help on this

Please add the output of flutter doctor -v.
https://github.com/flutter/flutter/issues/21335#issuecomment-423969759 might help to work around
Merging with #15567


Organize the assets folder

Separate directories for:

team members
card carosels
projects ,etc

i can work on that.


test(deque): add more tests

From #1362

Pull Request Test Coverage Report for Build 4345
Details

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 83.3%

Totals

Change from base Build 4342:
0.0%

Covered Lines:
4634

Relevant Lines:
5563

💛  - Coveralls


[EPIC] pkg/gadgets: Implement unit tests

We have integration tests for the different gadgets in https://github.com/kinvolk/inspektor-gadget/tree/main/integration, however we aren't unit-testing each gadget. Integration tests are great and they have allowed us to catch many problems, however they are difficult to run as they require to have Inspektor Gadget deployed in a Kuberentes cluster. Also integration tests don't cover many possible cases, hence bugs like https://github.com/kinvolk/inspektor-gadget/pull/809 are not caught.
The goal of this issue is to implement unit tests for the different gadgets. We should tests things like:

The tracer is able to capture events
The provided events are complete and its information is correct (pid, uid, etc.)
The filter by container mechanism works fine
Gadget specific flags like AllFiles work fine

PRs /  issues tracker:

advise:

[ ] network-policy
[ ] seccomp-profile

audit:

[ ] seccomp (https://github.com/kinvolk/inspektor-gadget/issues/847)

profile:

[ ] block-io (https://github.com/kinvolk/inspektor-gadget/issues/845)
[ ] cpu (https://github.com/kinvolk/inspektor-gadget/issues/846)

snapshot:

[x] process (https://github.com/kinvolk/inspektor-gadget/issues/843)
[ ] socket (https://github.com/kinvolk/inspektor-gadget/issues/844)

top:

[ ] block-io (https://github.com/kinvolk/inspektor-gadget/issues/839)
[ ] ebpf (https://github.com/kinvolk/inspektor-gadget/issues/840)
[ ] file (https://github.com/kinvolk/inspektor-gadget/issues/841)
[ ] tcp (https://github.com/kinvolk/inspektor-gadget/issues/842)

trace:

[x] bind (https://github.com/kinvolk/inspektor-gadget/issues/829)
[x] capabilities (https://github.com/kinvolk/inspektor-gadget/issues/830)
[ ] dns (https://github.com/kinvolk/inspektor-gadget/issues/831)
[x] exec (https://github.com/kinvolk/inspektor-gadget/pull/821)
[ ] fsslower (https://github.com/kinvolk/inspektor-gadget/issues/832)
[ ] mount (https://github.com/kinvolk/inspektor-gadget/issues/833)
[ ] oomkill (https://github.com/kinvolk/inspektor-gadget/issues/834)
[x] open (https://github.com/kinvolk/inspektor-gadget/pull/821)
[x] signal (https://github.com/kinvolk/inspektor-gadget/issues/835)
[ ] sni (https://github.com/kinvolk/inspektor-gadget/issues/836)
[ ] tcp (https://github.com/kinvolk/inspektor-gadget/issues/837)
[ ] tcpconnect (https://github.com/kinvolk/inspektor-gadget/issues/838)

Since this is a tracker issue for all gadgets, I'll remove myself as assignee as other folks can work on it too.

We're in the process of moving to image based gadgets (https://github.com/inspektor-gadget/inspektor-gadget/issues/2032) and the unit tests will have to be implemented in a different way https://github.com/inspektor-gadget/inspektor-gadget/issues/2046. I'll close this issue to avoid confusion, later on we could open new issues for implemented unit tests once we convert the gadgets to be image-based.


TEST FEEDBACK

testing feedback from msdocs

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

ID: 6c8851f5-a24f-ba89-e28a-bf74b65a322d
Version Independent ID: a668e20d-1380-fd2b-dd67-5c13273b9a37
Content: Announcing the Microsoft 365 DevDays Agenda!
Content Source: documentation/2018_02/23_devdays_agenda.md
Product: openspecs-office
GitHub Login: @mrsgit09
Microsoft Alias: v-sarobi

What happens if I respond?


Using rake to build C is extremely weird

My recommendation is to use CMake similar to what is done in the C++ track.
Using rake to build C code is just... weird.  I doubt anyone that is well steeped in C is going to be familiar with rake.

:+1:

I didn't realize that we were doing that. I wholeheartedly agree that we should use CMake (or plain make) for this.

Don't mind either way. I chose Ceedling because it is one of the unit test frameworks recommended in Test Driven Development for Embedded C, and I wasn't sure if Boost was overkill for unit testing C code.

You can use Unity (ceedling's test framework) without ceedling project management. :)

cgreen is a unit test framework designed with the needs of C in mind.  It does mocking via link-time substitution.  However, the framework may not work properly on Windows.  The last time I checked on it a couple years ago, it assumed unix and therefore had problems functioning properly on Windows.
I don't think you want to use a C++ oriented unit-test framework for testing C code.  I don't think it's reasonable to assume that C programmers know C++.  If they did, they wouldn't use C anymore :smile_cat:.

"Exception names should end with a trailing 'Error'."

Unity is ANSI C, so works everywhere. :)

I don't think you want to use a C++ oriented unit-test framework for testing C code.

Unity is pure C :)

There's also greatest, which doesn't depend on anything and is actively un-opinionated about development style.

It looks like everything is using make at this point.


kog_patch_24

temp fix for lvl zero (commented out staticfunction)
more levels added

It's highly likely your compiler says something along the lines of "this is a static method/funtion in a class" since it doesn't alter or use a class variable (self.), which can cause problems for testing (you have to check within this function only, nowhere else) and is generally bad practice. My suggestion is that you could put a self.display in the init since you're taking it in both as a parameter and as a return value.

comment from #324 has been acknowledged but I don't think it's enough to close issue #343. code needs to be revamped for it to work.

Yea, don't worry about the static method comment, you just need to add the decorator and it should be fine.

I'm not sure if I'm reading the changes correctly, but why is the old code for LevelZero still there and not commented out/deleted. I saw that there were two inits and then saw the repeat methods in the LevelZero class.

Thanks for catching that! I edited the github code again to make sure that isn't the case


Email Domains may lead to Data Leak

Context
If an email domain is chosen at random, there is a chance that a real person would get a email with potentially sensitive info when a developer is testing. Even if a certain domain is not used now, there is no guarantee that it will remain unused in the future.
This problem can be circumvented using the @example domain that is reserved for research and testing purposes
What I'd suggest
Delete the list of email domains under the assets folder and have a static value for the email domain
Alternatively, store random email usernames in the text file and append the @example domain<EMAIL_ADDRESS>

I agree with you.

Thanks, @Akshu-on-github @aayushi-droid for pointing out the issue. would you like to make the suggested change?

Change the email domain to @example.com as suggested by you and keep the username as it.

@Akshu-on-github are you working on the issue?

@codePerfectPlus - yes, I am!


feat: add cassandra components

Adds Cassandra components to the store.
The SVG is from https://www.svgrepo.com/svg/353540/cassandra

Preview of icon:

Wow!
Thanks @jordanrfrazier
This is a big one!
I'll review it ASAP.

Hi @ogabrielluiz just want to check that the failing tests are expected (or at least not due to my changes), and that we're not waiting on any further updates? Thanks


Added a get container method

The client and server side for containers was very clean. The only bit of confusion was the conflation of the get methods for IRContext and Container. These are the same thing, but a context the rendered container. For this reason I exposed both through the API.

container has semantic meaning only to fedora, context is IR agonistic and is why there was only a get for a given context URI
the type of the context should indicate it being container, resource, collection, community, etc.

I think that we had decided that we were going to support container as a concept for all IRs, and that context was going to be a read only rendering of a particular container entry point into the graph?


when can i use party.Waitingfor()

how to use waitingfor method ,can give a simple demo or explain when to use it

The state list ok[j] stores whether parties[j] has sent his message. The method returns the parties that have not receive message from yet. For example, if network disconnected for some party, other parties will find themself waitingfor the disconnected party.


Modifying service token is not allowed when redeploying

I recently tried updating a cluster with and I'm running into this error when updating Karpenter:
KarpenterHelmChart1D98E7F5: Modifying service token is not allowed.

The underlying lambda is changing. I tried just changing the ID of the construct:
 const karpenter = new Karpenter(this, 'KarpenterV2', {
    vpc: this.props.vpc,
    cluster: this.cluster,
  });

But this also fails a deploy because the Role being created is fairly static (KarpenterNodeInstanceProfile-) and a second instance can't be deployed for the same cluster (So then it's a race, I can't create the new one before deleting the old one).
I wouldn't mind deleting the the old one first and staging the deploy, but this might cause an outage I'd like to avoid.
Any ideas how this can be resolved?

Thanks for opening the GH issue. I'm probably going to drop static instance profile naming as I experienced some issues with its length recently.

@mbonig Arghh... I don't think I can remove instanceProfileName because I'm using CfnInstanceProfile (L1) and if no name is provided then I cannot reference this.instanceProfile.instanceProfileName in the provisioner section as it's an empty string now. I don't recall seeing an L2 construct for InstanceProfile in CDK. Perhaps there should be one for this exact reason. WDYT?

@mbonig Give 1.7.1 a try when you get a chance.

@mbonig I spoke too early... pushing out 1.7.2 soon.

@mbonig I just updated some of our clusters with 1.7.2 and created multiple karpenter installations on the same cluster with multiple provisioners. Everything worked on my end. Let me know how it goes for you. Thanks.
Reopen this GH issue if you're still having issues.


System.IO.Pipelines.Tests SocketsFacts hangs for Linux

These two tests were disabled for Linux here https://github.com/dotnet/corefxlab/pull/1532:

CanCreateWorkingEchoServer_PipelineLibuvServer_NonPipelineClient
CanCreateWorkingEchoServer_PipelineSocketServer_NonPipelineClient

cc @pakrym, @davidfowl

@ahsonkhan @pakrym Do these still fail?

This issue is no longer reproducible.
Re-enabled the tests here - https://github.com/dotnet/corefxlab/pull/2120


chore(ci): update actions and javascript dependencies

closes: #2
closes: #4
closes: #33

:tada: This PR is included in version 1.4.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Create a variable in context containing the devices' size

as recorded by django-responsive2

Coverage decreased (-6.09%) to 91.406% when pulling 392b4db55e7830eb796f719f57ff032f44b5209f on djangowebstudio:develop into 890729d2b46b913b66d42f7ba7a0bf93dca83336 on mishbahr:master.

Also please add tests.

No response from OP. Closing merge request.


Runtime error if submitting execute requests with no Kernel running

Current dependencies on/for this PR:

main

PR #172

PR #173

PR #174

PR #175   👈

This comment was auto-generated by Graphite.

Current dependencies on/for this PR:

main

PR #172

PR #173

PR #174

PR #175   👈

This comment was auto-generated by Graphite.


Allow empty TEST paramsters in distribution build workflows

Description
Allow empty TEST paramsters in distribution build workflows
Issues Resolved
https://github.com/opensearch-project/opensearch-build/issues/4919
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

The output is a bit too long, will try to trim a bit later:
Verify Parameter 'BUILD_PLATFORM'
[Pipeline] echo
Parameter Entry: 'linux windows', [linux, windows]
[Pipeline] echo
Supported Entry: 'linux windows'
[Pipeline] echo
Verified 'BUILD_PLATFORM': linux windows

[Pipeline] echo
Verify Parameter 'BUILD_DISTRIBUTION'
[Pipeline] echo
Parameter Entry: 'tar rpm deb zip', [tar, rpm, deb, zip]
[Pipeline] echo
Supported Entry: 'tar rpm deb zip'
[Pipeline] echo
Verified 'BUILD_DISTRIBUTION': tar rpm deb zip

[Pipeline] echo
Verify Parameter 'TEST_PLATFORM'
[Pipeline] echo
Parameter Entry: 'linux', [linux]
[Pipeline] echo
Supported Entry: 'linux windows'
[Pipeline] echo
Verified 'TEST_PLATFORM': linux

[Pipeline] echo
Verify Parameter 'TEST_DISTRIBUTION'
[Pipeline] echo
Parameter Entry: 'tar', [tar]
[Pipeline] echo
Supported Entry: 'tar rpm deb zip'
[Pipeline] echo
Verified 'TEST_DISTRIBUTION': tar

Thanks @prudhvigodithi


oncotator discontinued

Hi,
since oncotator is discontinued - is this gonna be updated to use with their new foncotator?

Hi @Sebbyyy ,
Please accept my apologies for the late reply. For the upcoming Bioconductor release (which is in a week) I have removed oncotate function from the package. However, I am not aware of the Funcotator output. It doesn't seem to support MAF format yet. I will keep an eye on it. If you have a sample output from the tool - please feel free to share it ,and I am happy to write a parser for it (depending on the complexity).

Hi @PoisonAlien,
No problem.
I honestly do not know much about the funcotator currently. It is run by the Broad again so I assume very similar (https://software.broadinstitute.org/gatk/documentation/article?id=11193).
My understanding is that it is an updated better version of oncotator? Seems to be vcf or maf output and just can't input a maf.

Actually this issue has been raised previously #397
MAF was generated from funcotator but somehow the format was weird. Yes, it would be great if you can find an example.

@PoisonAlien Sorry about the delay.
See attached. The actual output comes in a .txt format but same data.
VCF Funcotator Input.xlsx
Funcotator Output.xlsx

Hi,
Any plan on implementing Funcotator in MAFtools ?
With the deprecation of Oncotator this is extremely needed.
Thanks
E

Hi,
You can directly use MAF output from funcotator, it should work.

Thanks, my problem is that I need a wrapper that is capable of annotating similar to your prior Oncotate function which was fantastic.
I have several dataset from different sources and I have been wanting to have them all annotated on the same pipeline.

Oncotate function used to query Oncotator web API for annotations. However, funcotator lacks the API feature which makes its impossible to for on-the-fly annotations.

Are you familiar with Rcwl Pipelines
Maybe it can somehow assist - but I couldn't figure out the input types I need to arrange for it.
BTW, thanks for answering and for an amazing package - really makes my life easier.

Thanks, and I am glad that you find it useful.
Variant annotations are ideally best done outside the R. Maybe using annovar, vcf2maf or the new funcotator which seems pretty good. Running from within R makes it slower and messy IMO.


Regenerate golang code, fix proto comparisons

What this PR does / why we need it:
Golang tests have been failing on the github workflows, because the newest version of protoc-gen-go introduces some unexported fields that gocmp is unable to compare. This PR changes the tests to use proto.Equal for comparing messages instead.

/lgtm


default k=200, special single value serialization format

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

27 of 27 (100.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.001%) to 98.95%

Totals

Change from base Build<PHONE_NUMBER>:
0.001%

Covered Lines:
16399

Relevant Lines:
16573

💛  - Coveralls


Error dialing loggregator server: websocket: bad handshake.

Warning: error tailing logs
Error dialing loggregator server: websocket: bad handshake.
Please ask your Cloud Foundry Operator to check the platform configuration (loggregator endpoint is wss://loggregator.dazyun.com:443).
The loggregator failed.

i am getting same issue.will you please tell me how's this issue will solve..??????


1 builds sometimes fail with with no space left on device

Using jlumbroso/free-disk-space action takes about 3 min to free up about 24 GiB of disk space.
It is tempting to disable the clean action on small images to speed-up their build time. However, the whole workflow has to wait for the completion of large images which require the clean action, so the workflow completion time would be the same.


Compatible Sd Test Printing

Title
testing/[sd_bench|sd_stress]: Make Printing Compatible for Both 32-bit and 64-bit Environments.
Summary
Currently on 64-bit environment, for example, qemu-armv8a, compilation of sd_bench and sd_stress are broken due to type errors.
testing/sd_bench/sd_bench_main.c:
testing/sd_stress/sd_stress_main.c:
size_t type should be printed with %zu instead of %u.
Impact
Bug fixed.
Testing
Verify compilation with:

32-bit environment configuration: esp32s3-devkit:smp
64-bit environment configuration: qemu-armv8a:netnsh

Run sdstress and sdbench test in virtual environment:
qemu-system-aarch64 \
-cpu cortex-a53 \
-smp 4 \
-nographic \
-machine virt,virtualization=on,gic-version=3 \
-chardev stdio,id=con,mux=on \
-serial chardev:con \
-global virtio-mmio.force-legacy=false \
-netdev user,id=u1,hostfwd=tcp:<IP_ADDRESS>:10023-<IP_ADDRESS>:23,hostfwd=tcp:<IP_ADDRESS>:15001-<IP_ADDRESS>:5001 \
-device virtio-net-device,netdev=u1,bus=virtio-mmio-bus.0 \
-drive file=/home/windrow/code/nuttx/2GB.img,format=raw,id=hd,if=none \
-device virtio-blk-device,bus=virtio-mmio-bus.1,drive=hd \
-mon chardev=con,mode=readline \
-kernel \
./nuttx

NuttShell (NSH)
nsh>
nsh> mount -t vfat /dev/virtblk0 /mnt
nsh> sdstress
Start stress test with 64 files, 4096 bytes and 32 iterations.
iteration 0 took 190.000 ms: OK
iteration 1 took 190.000 ms: OK
iteration 2 took 180.000 ms: OK
iteration 3 took 180.000 ms: OK
iteration 4 took 170.000 ms: OK
iteration 5 took 180.000 ms: OK
iteration 6 took 190.000 ms: OK
iteration 7 took 180.000 ms: OK
iteration 8 took 180.000 ms: OK
iteration 9 took 170.000 ms: OK
iteration 10 took 170.000 ms: OK
iteration 11 took 180.000 ms: OK
iteration 12 took 180.000 ms: OK
iteration 13 took 180.000 ms: OK
iteration 14 took 170.000 ms: OK
iteration 15 took 180.000 ms: OK
iteration 16 took 180.000 ms: OK
iteration 17 took 200.000 ms: OK
iteration 18 took 180.000 ms: OK
iteration 19 took 170.000 ms: OK
iteration 20 took 180.000 ms: OK
iteration 21 took 170.000 ms: OK
iteration 22 took 180.000 ms: OK
iteration 23 took 170.000 ms: OK
iteration 24 took 170.000 ms: OK
iteration 25 took 180.000 ms: OK
iteration 26 took 170.000 ms: OK
iteration 27 took 170.000 ms: OK
iteration 28 took 180.000 ms: OK
iteration 29 took 170.000 ms: OK
iteration 30 took 170.000 ms: OK
iteration 31 took 170.000 ms: OK
Test OK: Average time: 177.500 ms
nsh> sdbench -k
Using block size = 512 bytes, sync = false

Testing Sequential Write Speed...
  Run  1:   2263.8 KB/s, max write time: 10.000 ms (50.0 KB/s), fsync: 0.000 ms
  Run  2:   2275.8 KB/s, max write time: 10.000 ms (50.0 KB/s), fsync: 0.000 ms
  Run  3:   2268.5 KB/s, max write time: 20.000 ms (25.0 KB/s), fsync: 0.000 ms
  Run  4:   2274.3 KB/s, max write time: 10.000 ms (50.0 KB/s), fsync: 0.000 ms
  Run  5:   2279.3 KB/s, max write time: 10.000 ms (50.0 KB/s), fsync: 0.000 ms
  Avg   :   2272.3 KB/s, 22.190 MB written.

Testing Sequential Read Speed...
  Run  1:  40576.8 KB/s, max read/verify time: 10.0000 ms (50.0 KB/s)
  Avg   :  40576.8 KB/s, 22.190 MB and verified

@JackyCaoYJ


[libtcod] Update to 1.22.3

What does your PR fix?
Updates to the latest version.  Adds the unicode feature.

Which triplets are supported/not supported?
Yes. unicode feature is enabled by default because it toggles existing API functions.

Yes

All features are tested successfully in the following triplet:
x86-windows
x64-windows
x64-windows-static
x64-linux


translade release note

Description of the new feature / enhancement
translade release note
Scenario when this would be used?
when somebody read release note
Supporting information
No response

a little suggest

While a great idea, we pull the notes from GitHub and combine them at runtime, that would make it very hard make this work correctly as we view GitHub as the source of truth for release notes.
Our thought would be someone would click "See more ..." in the title and then use the web browser translators

While on the face this looks simple, it would require hook ups for some translator API services and i personally would question the ability for contextual correctness of when we use terms like "light" (colors, theme, physical lightbulb, ...), "key" (for a door?  API service? a keyboard) and others based on experience.


Change color

This PR changes the library color according to:

@dialelo @raulraja Could you review please? Thank you.

:+1:


Integrate OML with Nvidia-DALI

DALI allows decoding images directly on GPU which improves performance but it also requires a bit different interface for Dataset and we cannot use normal DataLoader anymore. So, integration may be a bit tricky
Before working on this feature we need to discuss a proposal on a high level

Probably it's a good idea to update torch to 2.0 before working on this task

Closed due to inactivity.


Market cap in the token detail page is incorrect

Context information
application version:
device:
browser:
operating system:
Steps to reproduce

Open any token detail page (example https://aescan.io/tokens/ct_KeTvHnhU85vuuQMMZocaiYkPL9tkoavDRT3Jsy47LK2YqLHYb)
Check Market cap

What is expected?
The total market cap is calculated correctly, using the circulating supply instead of the total supply.
What is actually happening?
The total market cap is calculated by multiplying the token price with the total supply.

Source: MDW, Contract or DEX?

question raised in MDW slack

How is the circulating supply defined? @michele-franchi