How to properly use riverpod with service pattern

Hi there, I have a use case where I think would be a great idea to use a service pattern but I struggle to understand how would I go about using it with riverpod.
Imagine the following scenario: The app has a feature which allows users to upload files and the app would then read those files. In an OOP world I would mix repository pattern with service pattern. XmlRepository, JsonRepository, CsvRepository and a service to decide which repository to use. But my problem is, there is no way to use Future<List<Obj>> on the UI side if that method is inside a normal Provider.
final xmlRepositoryProvider = Provider(
  (ref) => XmlRepository(),
);

class XmlRepository implements IFileReader {
  Future<List<Obj>> getAll() async {
      ...
  }
}

Imagine other repositories being done this way. And then there is the service:
final fileServiceProvider = Provider(
  (ref) => FileService(ref),
);

class FileService implements IFileService {
  final ProviderReference providerReference;

  FileService (this.providerReference);

  Future<List<Obj>> getAll(FileType fileType) async {
      if (fileType == "XML") {
          var xmlRepository = this.providerReference.read(xmlRepositoryProvider);
          return await xmlRepository.getAll();
      }
      ..
  }
}

But there is no way to use the getAll method with AsyncValue as you can with FutureProvider. So how do you do this in idiomatic riverpod in UI without having to declare an extra FutureProvider ?

I use like this
final fileServiceProvider = Provider((ref) {
  return FileService(
    xmlRepository: ref.watch(xmlRepositoryProvider),
  );
});

class FileService implements IFileService {
  FileService({
    @required this.xmlRepository,
  }) : assert(xmlRepository != null);

  @protected
  final XmlRepository xmlRepository;

  /// ....
}

I use like this
final fileServiceProvider = Provider((ref) {
  return FileService(
    xmlRepository: ref.watch(xmlRepositoryProvider),
  );
});

class FileService implements IFileService {
  FileService({
    @required this.xmlRepository,
  }) : assert(xmlRepository != null);

  @protected
  final XmlRepository xmlRepository;

  /// ....
}

how do you handle the UI side ?
final listProvider = FutureProvider<String>((ref) async {
  return "txt";
});

and in UI you can do the following:

  Widget build(BuildContext context) {
      return Center(
          child: Consumer(
            builder: (context, watch, child) {
              final asyncValue = watch(listProvider);
              return asyncValue.map(
                loading: (_) => ..
                error: (_) => ..
                data: (_) => ..
              );
           }
       }

but How would I do this for a method inside a Service ?

how do you handle the UI side ?
final listProvider = FutureProvider<String>((ref) async {
  return "txt";
});

and in UI you can do the following:

  Widget build(BuildContext context) {
      return Center(
          child: Consumer(
            builder: (context, watch, child) {
              final asyncValue = watch(listProvider);
              return asyncValue.map(
                loading: (_) => ..
                error: (_) => ..
                data: (_) => ..
              );
           }
       }

but How would I do this for a method inside a Service ?

Why do you watch and not read ?

We should not use read inside provider body. https://riverpod.dev/docs/concepts/reading#contextreadmyprovider

but How would I do this for a method inside a Service ?

Why u can't just create future provider for method result?
final regionsProvider = FutureProvider<List<Region>>((ref) {
  return ref.watch(regionsServiceProvider).fetch();
});

class MyWidget extends ConsumerWidget {
  @override
  Widget build(BuildContext context, ScopedReader watch) {
    return watch(regionsProvider).when(
      data: (regions) {
        return ListView(
          children: [
            for (final region in regions)
              Text('${region.name}')
          ],
        );
      },
      loading: () {
        return Text('loading');
      },
      error: (error, stack) {
        return Text('error');
      }
    );
  }
}

Why do you watch and not read ?

We should not use read inside provider body. https://riverpod.dev/docs/concepts/reading#contextreadmyprovider

but How would I do this for a method inside a Service ?

Why u can't just create future provider for method result?
final regionsProvider = FutureProvider<List<Region>>((ref) {
  return ref.watch(regionsServiceProvider).fetch();
});

class MyWidget extends ConsumerWidget {
  @override
  Widget build(BuildContext context, ScopedReader watch) {
    return watch(regionsProvider).when(
      data: (regions) {
        return ListView(
          children: [
            for (final region in regions)
              Text('${region.name}')
          ],
        );
      },
      loading: () {
        return Text('loading');
      },
      error: (error, stack) {
        return Text('error');
      }
    );
  }
}

Would you create a FutureProvider for each Future<List> inside a repository ? This doesnt sound like a great design, does it ?

Would you create a FutureProvider for each Future<List> inside a repository ? This doesnt sound like a great design, does it ?

If you open to using riverpod with flutter_hooks you could use the useFuture hook which will give you an async snapshot without having to create a future provider for each api call. https://pub.dev/documentation/flutter_hooks/latest/flutter_hooks/useFuture.html
Or you can use a FutureBuilder from flutter (but this will involve more nesting, and a FutureProvider would look cleaner in my opinion).

If you open to using riverpod with flutter_hooks you could use the useFuture hook which will give you an async snapshot without having to create a future provider for each api call. https://pub.dev/documentation/flutter_hooks/latest/flutter_hooks/useFuture.html
Or you can use a FutureBuilder from flutter (but this will involve more nesting, and a FutureProvider would look cleaner in my opinion).

@yvz5 It's not necessary to create a FutureProvider for all repository methods that return a future. You only need to create one for methods that the UI depends on for changes - which may be a subset of all methods returning a future in the repository - the FutureProvider gives the UI data, loading and error states to handle.

I developed the below library which automatically generate future providers from the repository methods. If anything you need to change in the library, I'm open for discussion in the issues section
https://pub.dev/packages/riverpod_repo


Secure download endpoint for secure messaging

Use the secure download endpoint for secure messaging instead of the default one.
MOB-2023

!squash

!merge


search directive in resolv.conf is ignored.

Summary
Hi all!
I know that many changes have been made to kong v0.10.x DNS solving, in particular, that kong will be able to read resolv.conf file. However, is kong able to process the search option in this file?
The problem I'm facing is that k8s append the namespace in this entry, so if I have a service SVC in namespace NSNS, and I try to (for example) ping it, DNS resolution will look for the actual name (SVC.NSNS.svc.cluster.local), but kong is still giving me DNS resolution error. Previous to this update, I was using a local dnsmasq service, but I was hoping to remove that dependency with this version.
I've tried to search through issues db, doc and changelog with no luck. Also, kong say that resolv.conf is used by default, so I assume at this point that the feature is not desired/not included by some reason. Is this possible in current kong version?
Steps To Reproduce

Create a echo service & deployment with k8s, and kong service and deployment.
From kong container, try to ping it, and see how it resolves proper DNS domain.
Add echo API to kong
Try to make kong resolv it.

Additional Details & Logs

Kong version 0.10.0
Kong error logs:

2017/03/14 08:59:12 [error] 75#0: *2112 [lua] responses.lua:101: before(): failed the initial dns/balancer resolve for 'SVC' with: dns server error; 2 server failure, client: <IP_ADDRESS>, server: kong, request: "POST /echo HTTP/1.1", host: "<IP_ADDRESS>:8000"

The current dns implementation does not honor the search option.
see also https://github.com/Mashape/lua-resty-dns-client/blob/master/src/resty/dns/client.lua#L248

can you post the resolv.conf file for your example?

Sure:
search default.svc.cluster.local svc.cluster.local cluster.local google.internal
nameserver <IP_ADDRESS>
options ndots:5

Also, If I try to go back with the previous configuration (intermediate dnsmasqd), kong says me:
Error: dns_resolver must be a comma separated list in the form of IPv4 or IPv4:port, got 'localhost:53'

I could file a separate issue for that if you want

well, that error is exactly what it says. Change "localhost:53" to "<IP_ADDRESS>:53" in your config and you'll probably be fine.

Sorry, I though that you wanted to maintain that kind of retro compatibility :) fixed that part then.
Is there something in mind to support resolv.conf search domains? this way, I would not need dnsmasq in my installation anymore. I can try to send PR, but it would be my first time in lua, if you do agree that is a valid use case.

if you use fully qualified names, it should work.
I think it can be added, but it would be related to another module that Kong uses under the hood; https://github.com/Mashape/lua-resty-dns-client
It would involve honouring the search and ndots parameters from resolv.conf. Those parameters are already parsed iirc, just not used when the client actually resolves names.

if you use fully qualified names, it should work.

Yes, in that case all works OK, but then I have to add (and duplicate) more logic. If it makes sense to you, I can try to send you a PR.

I probably won't get to it on a short notice, so feel free to take a stab at it

Closing, this is going into 0.11! :D

Great! I'll be looking forward into it! :D thanks a lot!


Error in build palace from source

Hi!
I want to build palace-0.13.0 form soure, but it always failed cause the internet error. I think that if I can download the all third-party packages by mannual and then compile by myself would help to address this problem.But i don't know how to revise the CMakeLists.txt.
Any help or advise will be appreciate!

Hi @huangyb2,
The decision was taken to build Palace's dependencies directly as part of the Palace build process because a) there are many dependencies, many optional, so requiring a user to build externally would open a lot of space for configuration errors b) often we need specific commits from the various repositories as fixes and bugs appear and c) we apply various patches to the dependencies. Orchestrating this outside of the build system would be extremely cumbersome for both developers and users, so we decided to avoid it and roll everything into a controllable build system. As such there is no plan at present to support externally built dependencies in the way you describe.
If you post the particular error message, maybe I could be of more help.

I might also suggest trying to build with Spack, which may have better support for configuring and building the Palace dependencies on your system.

Hi@sebastiangrimberg ,
Thanks your reply! I did buid palace-0.12.0 by Spack, and it is very convinient. When build palace-0.13.0 from soure, error message as fellow:

Hi@hughcars
I notice that most the third-party dependencies got by git clone.And I have build palace-0.12.0 by Spack.Whether it is possible to link to these dependecies build form Spack, when I build palace-0.13.0 from source？

Hi @huangyb2, I do not know. In general spack is pretty intelligent in reusing relevant builds of dependencies if they already exist in the cache. So if spack is rebuilding, that suggests that there is a difference in the dependency and as such it is unable to reuse. I would suggest referring to the spack documentation if you need to understand more about the spack build/cache system.

Hi@sebastiangrimberg,@hughcars ,Thanks your sugegests.I successfully solve this problem. And palace-0.13.0 can both be installed by linking to local dependencies and linking dependenices to that 3-parties installed by spack.


[ERROR]  /home/ec2-user/lib/utils.sh: No such file or directory

This is when I try running scripts in the kubernetes folder .
::DEBUG OUTPUT ::
sh k1.sh
+++ dirname k1.sh
++ cd .
++ pwd

srcdir=/home/ec2-user
. /home/ec2-user/lib/utils.sh
k1.sh: line 25: /home/ec2-user/lib/utils.sh: No such file or directory

Read the readme, you need to clone the repo and run it from the checkout because lots of scripts use libs and adjacent scripts for code reuse

Thanks Hari for your response!


This project needs an update

Your example in Expo is out date. Can you update your example??

Yes ? Please. I would like to try!

2 months later...

#3039 Duplicate


Add ability to hide outputs in Notebooks

Request for ability to hide output from notebooks.
Currently in the Python implementation of Notebooks, we have output that are hidden.

Today these are neither displayed in our old Python Notebooks nor in Jupyter
As far as I can tell, most of these outputs end up as Rich Displays, containing an object with a single key. However no real data for display purposes.
The outputs are not displayed, however they are persisted on disck (i.e. they are part of the ipynb content).

Adding an issue for what was discussed (forgot to add this issue last week).
@rebornix /cc

@rebornix What's a good way to verify this change?

@DonJayamanne to provide logic for hiding empty ipywidget output.

@rebornix Unfortunately the logic for rendering a widget is in the widget manager.
Here's the sample code:
import nglview
view = nglview.show_pdbid("3pqr")
view

When we run this we get two outputs with almost identical data, but with different model_ids, see below:
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "d2fc10942d3e4a0d93f055c7f85bdf5d",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": ""
     },
     "metadata": {
      "transient": {}
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "bfc1da481100435990053406e1c8348f",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": "NGLWidget()"
     },
     "metadata": {
      "transient": {}
     },
     "output_type": "display_data"
    }
   ],

Unfortunately, only the widget manager knows which one needs to be hidden.
Basically we query the widget manager to see if it has any views to be rendered for the provided model_id. If there isn't any view associated with the model_id, then we don't render it.
With the renderer architecture, the only way to determine whether a cell needs to be rendered or not can only be provided by the renderer.
Finally, the renderer doesn't render the output immediately.
Just because the renderer was asked to render an output for model_id = xyz doesn't mean it will render the output immediately. This is all asynchronous.

@DonJayamanne I guess we can have a workaround for this by doing:

When we see a two mimetype output (pretty common in Jupyter), one is custom mimtype, which will be rendered in the webview, another one is text/plain, which will be rendered by VS Code itself. If the custom mimetype rendered in the webview has height of zero and the text/plain mimetype is empty string, we then not preserve any whitespace in the output container and will also hide the mimetype switcher.

We can even limit this behavior to application/vnd.jupyter.widget-view+json/text/plain mimetype bundle only

Sure, but my concern is if there are two legitimate outputs then VSCode might end up removing the padding.
Because VS Code code will probably run before the renderer code (renderer code is async & needs to wait for the data to come through from kernel into the widget manager).
Hence possible that VS Code will assume the output is empty (0 height) & remove the padding & after that the widget manager renders the output.

Hence possible that VS Code will assume the output is empty (0 height) & remove the padding & after that the widget manager renders the output.

When this happens, we will automatically bring back the padding, it has a listener to the content height change. Does this fix the problem?

I think this was fixed along with https://github.com/microsoft/vscode/issues/214886, though that never got verified.
Empty outputs should be combined into a single output


Horizontal instance nested within vertical root instance - parent's vertical scroll not respected

Describe the bug
It seems when there is a horizontally-scrolling lenis instance as an ancestor of the default-config root-level lenis instance, scroll events conflict seem to conflict.
Vertical scroll behaves as expected, until mousing over the horizontally-scrolling instance - at which point all vertical scrolling stops and seems to be passed to the nested instance which does not scroll vertically. You are then unable to vertically scroll at all until you mouse out of the horizontal container, at which point you can resume normal page scroll.

Using the data-lenis-prevent attribute seems to not affect things.
Using overscroll-behaviour CSS rules tends to introduce a vertical flickering effect, which indicates that the browser is trying to scroll vertically as expected, but being blocked by Lenis

Expected behaviour
I would expect the nested-scroll behaviour to mimic the behaviour of native scroll - which can be demonstrated by commenting out all JS. Vertical overscroll from within a horizontally-scrolling element should chain back up to the root-level scroll container.
To Reproduce
A reproduction of this issue as a fork of the minimal setup codepen can be  found here:
https://codepen.io/damnsamn/pen/WNPRMpV
I also have prepared a (still simple) reproduction which is more representative of the UX problem it poses in my particular case:
https://codepen.io/damnsamn/pen/dyaNdbz

Hi @damnsamn
I'm currently trying to do the same. Have you solved your problem?

@MaxHiit  no, I’ve just chalked nested opposing axis scroll containers as being unsupported. I just disabled it on the inner container and moved on.

@damnsamn this is fixed in 1.1.14-dev.2, can you test?


[matrices] projectV3

Hi @postspectacular 👋
So text-canvas example is super funny and easy to follow :-) thanks! and I use matrices.project (as I told you recently) to have an svg print of my 3d scene and it works great in the end.
But I have to transform all the 3d coordinates in 4d.
I understand it is not really a computational problem but I thought about a projectV3 version to avoid add3([0, 0, 0, 1], p, pos) to add the 4th w homogeneous coordinate as always 1.
At least I can imagine a lot of cases where we want to just plot some 3d scene and we always working with [x, y, z, 1].
Does it make sense?

@nkint - yeah, good idea & go for it!  It could just be like this (untested):
export const project3 = (
    out: Vec | null,
    mvp: ReadonlyMat,
    view: ReadonlyMat,
    p: ReadonlyVec
) => (
    !out && (out = []),
    mulV23(out, view, mulV344([], mvp, p))
)

Btw. That demo was partially addressed to you, but was going to mention it only once that package is actually ready... 😄 Also, in that example, the add3([0, 0, 0, 1], p, pos) is needed because the cube is instanced to 4 different positions, but still, I'm all for a project3() :)

Super quick test done with runjs is not working, I will double check later:
import {
  concat,
  lookAt,
  perspective,
  project,
  rotationX44,
  rotationY44,
  viewport,
  IDENT44,
  mulV23,
  mulV44,
  mulV344
} from<EMAIL_ADDRESS>import { add3, setC3 } from<EMAIL_ADDRESS>
const W = 64;
const H = 32;

const view = lookAt([], [0, 0, 2], [0, 0, 0], [0, 1, 0]);
const proj = perspective([], 60, W / H, 0.1, 10);
const viewp = viewport([], 0, W, H, 0);

const mvp = concat([], proj, view, IDENT44);

console.log("1", project([], mvp, viewp, [23, 42, 5, 1]));

//----------- internals justo to debug in RunJS
const vop = <T extends Function>(dispatch = 0) => {
  const impls = new Array(5);
  let fallback: T;
  const fn = (...args: any[]) => {
    const g = impls[args[dispatch].length] || fallback;
    return g
      ? g(...args)
      : unsupported(`no impl for vec size ${args[dispatch].length}`);
  };
  fn.add = (dim: number, fn: T) => (impls[dim] = fn);
  fn.default = (fn: T) => (fallback = fn);
  fn.impl = (dim: number): T => impls[dim] || fallback;
  // fn.impls = impls;
  return fn;
};
const fromHomogeneous = vop(1);
//----------- internals justo to debug in RunJS

const fromHomogeneous4 = fromHomogeneous.add(4, (out, [x, y, z, w]) =>
  setC3(out || [], x / w, y / w, z / w)
);
const fromHomogeneous4V3 = fromHomogeneous.add(4, (out, [x, y, z, w]) => {
  /*console.log(x, y, z);*/ return setC3(out || [], x, y, z);
});

const projectV3 = (out, mvp, view, p) => (
  !out && (out = []),
  mulV23(out, view, fromHomogeneous4V3(out, mulV344([], mvp, p)))
);

console.log(mulV44([], mvp, [23, 24, 5, 1]));
console.log(mulV344([], mvp, [23, 24, 5]));
console.log("V3", projectV3([], mvp, viewp, [23, 42, 5]));

@nkint - fixed it, the above project3() is fine, the issue was the way w was wrongly computed in mulV344()...

After https://github.com/thi-ng/umbrella/commit/61c36fcc532d78b21d78dddeee5523155b0798b2, I think we can close this now...


Adding label parameter to value format function

By adding the label parameter to the value format function, a user can display both the correctly-formatted value and the label outside the chart.

I plan to add custom mode like this
mode: function (args) {
  args // {value: 123, label: 'Something', percentage: 50 }
  return args.label + ': ' + args.value;
}

and deprecate format options. It should be more flexible.

When would you be able to get around to this?

I think It will be done in couple days.

you can use render function to do this in v0.7.0.


Support for new username update?

Hi! Are there any plans on switching from user tags to usernames? Discord is releasing username update to everyone or at least to some people gradually especially with those who has nitro before march 2023 and non-nitro users after sometime. So i thought if this will happen tho.

Update Discord.js to 14.12


V8 WishList: Support $filter=point eq geo.point(lat,long)

When querying for records, I want to be able to query based on a geographypoint.
Given a DTO which contains a Microsoft.Spatial.GeographyPoint called "Location", I should be able to do:
$filter=(location eq geo.point(10,20))
$filter=(location ne geo.point(10,20))

Both of these return true if the latitude and longitude matches.  If a third argument to the geo.point is provided, that is the Z match.  Coordinate system is ignored in these tests.

Predecessor: #852

Update: You don't do this - you do geo.distance(p0, p1) lt some-small-amount.


Fix memory aligned access for arm based cpus

Especially in ARM Cortex-M devices a memory unaligned access
can result in a hard fault error.

Sorry for super late reply.
And thank you very much for the fix.


Includes metadata in semantic nodes

Implements part 1 of github.com/libp2p/go-smart-record/pull/12
Depends on: https://github.com/libp2p/go-smart-record/pull/19

[x] Fixes the separation of semantic and syntactic nodes in base grammar.
[x] Adds metadataCtx to IR nodes.
[x] Assembly process assembles an IR node with metadata embedded.
[x] Implemented metadataTypes for assemblyTime and TTL
[x] Includes the update of metadataCtx when updating nodes.
[x] Basic tests.

@petar, this PR is ready for review. It adds metadata to semantic nodes.
I will start now with the implementation of the TTL garbage collection process in the VM, and create a new PR for it when I'm done.
Thanks!


added WhitestormJS webgl 3d engine

added "use strict" by mistake. Delete please.

Violates Micro JS's first rule:

Must not have dependencies (It's ok to target a specific platform, like Node.js or WebKit)

Sorry -- I was interested in how a physics engine could be micro... couldn't.


Controller in another file

I'm trying to put a DKScrollingTabController in its own class, DKViewController : DKScrollingTab Controller instead of with the MainViewController.
The issue is that the UIButtons doesn't show in the main view controller. When I press in the section it's suppose to be showing in, the delegate responds. I also NSLog buttons array and it has all the buttons I want.
Could this maybe be a thread issue?
Note All of the code is the same when transferring from the MainViewController to DKViewController

Can you share your code or project

DKGroupViewController.h
 #import <UIKit/UIKit.h>
 #import "DKGroupViewController.h"
 #import <DKScrollingTabController.h>
 @interface DKGroupViewController : UIViewController

- (DKScrollingTabController *)groupScrollingTabController;

DKGroupViewController.m
#import "DKGroupViewController.h"
#import "RZEThemeManager.h"

@interface DKGroupViewController ()

@end

@implementation DKGroupViewController

- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

- (DKScrollingTabController *)groupScrollingTabController {
     DKScrollingTabController *groupTabController = [[DKScrollingTabController alloc] init];

    groupTabController.view.backgroundColor = [UIColor blackColor]
    groupTabController.unselectedBackgroundColor = [UIColor clearColor];
    groupTabController.selectedBackgroundColor = [UIColor clearColor];
    groupTabController.buttonPadding = 40; // button width
    groupTabController.underlineIndicator = YES;
    groupTabController.underlineIndicatorColor = [UIColor whiteColor];
    groupTabController.buttonsScrollView.showsHorizontalScrollIndicator = NO;
    groupTabController.selectedTextColor = [UIColor whiteColor];
    groupTabController.unselectedTextColor = [UIColor whiteColor];
    groupTabController.startingIndex = 0;
    groupTabController.buttonTitleEdgeInsets = UIEdgeInsetsMake(10, 0, 10, 0);
    groupTabController.selection = @[@"PLACE\n0"];
    [groupTabController setButtonName:@"All" atIndex:0];

    return groupTabController;
 }

MainViewController.m
 groupTabController1 = [[DKGroupScrollingTabController alloc] init];
 groupTabController1 = [[DKGroupScrollingTabController alloc] groupDKScrollingTabController];

 groupTabController1.delegate = self;
 [self addChildViewController:groupTabController1];
 [groupTabController1 didMoveToParentViewController:self];
 [self.view addSubview:groupTabController1.view];
 groupTabController1.view.frame = CGRectMake(0, 60, self.view.bounds.size.width, 44);

 for (UIButton *button in groupTabController1.buttons) {
    button.titleLabel.numberOfLines = 3;
    button.titleLabel.textAlignment = NSTextAlignmentCenter;

    NSString *buttonName = button.titleLabel.text;
    NSString *text = buttonName;
    NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:buttonName];
    NSDictionary *attributes = @{ NSFontAttributeName : [UIFont systemFontOfSize:12] };
    NSRange range = [buttonName rangeOfString:text];
    [attributedString addAttributes:attributes range:range];

    button.titleLabel.text = @"";
    [button setAttributedTitle:attributedString forState:UIControlStateNormal];
}

Thank you
Hmm I see
The way DKScrollingTabController is supposed to be added is through view controller containment https://developer.apple.com/library/ios/featuredarticles/ViewControllerPGforiPhoneOS/ImplementingaContainerViewController.html
So it should not be in the interface, just added to the implementation file, just like in the demo https://github.com/dkhamsing/DKScrollingTabController/blob/master/Demo-Objc/Demo/ViewControllerSimple.m
Does this help?

I am implementing DKScrollingTabController as a view controller containment. The only thing that is messing up is when I'm fixing up all the UIButtons in the for-loop/enumeratingBlocks. I've tried to put it in the DKGroupViewController.m and then MainViewController.m but they both give me the same result.
Note I just left all the code in MainViewController.m and everything works. I would just like to have  MainViewController.m cleaned up and also I would like to use DKGroupViewController.m in other files so that I don't have to keep repeating the same code.

Hm I see
If things are ok when you leave them in MainViewController, then the issue is probably in DKGroupViewController:

Looks like you are adding groupTabController1 to MainViewController
But you are not adding groupTabController  in DKGroupScrollingTabController: try that

I'm not sure how you are using the control but maybe it should not be repeated.. really depends on what you want to accomplish
Ideally it is created once and displayed once, tapping a button would load up something else.


[DNM]: test ci on release-5.3

What problem does this PR solve?

Issue Number: close #xxx
What is changed and how it works?
Check List
Tests

Unit test
Integration test
Manual test (add detailed scripts or steps below)
No code

Questions
Will it cause performance regression or break compatibility?
Do you need to update user documentation, design documentation or monitoring documentation?
Release note
Please refer to [Release Notes Language Style Guide](https://pingcap.github.io/tidb-dev-guide/contribute-to-tidb/release-notes-style-guide.html) to write a quality release note.

If you don't think this PR needs a release note then fill it with `None`.

/verify

Codecov Report

:exclamation: No coverage uploaded for pull request base (release-5.3@57673d9). Click here to learn what that means.
The diff coverage is n/a.

Additional details and impacted files
@@               Coverage Diff                @@
##             release-5.3      #7704   +/-   ##
================================================
  Coverage               ?   55.7397%
================================================
  Files                  ?        227
  Lines                  ?      24008
  Branches               ?          0
================================================
  Hits                   ?      13382
  Misses                 ?       9292
  Partials               ?       1334


Example Publisher fails with bonefish

When trying example from master/examples with bonefish router.
./bonefish -w 8080 -t 8000 -r default -d
Publisher example does not work as expected.

Bonefish and Python Publisher works -

[rawsocket_transport.cpp:39][send_message] sending message: event
[wamp_message_processor.cpp:46][process_message] processing message: publish
[wamp_broker.cpp:108][process_publish_message] session [3648815945442074,default,open], publish [12, {}, com.examples.subscriptions.topic1, [12], nil]
[wamp_broker.cpp:141][process_publish_message] session [7090515283965860,default,open], event [1,<PHONE_NUMBER>422709, {}, [12], nil]
[rawsocket_transport.cpp:39][send_message] sending message: event
[wamp_message_processor.cpp:46][process_message] processing message: goodbye
[wamp_router_impl.cpp:211][process_goodbye_message] session [3648815945442074,default,closed], goodbye [{}, wamp.close.normal]
[websocket_transport.cpp:39][send_message] sending message: goodbye
[wamp_dealer.cpp:79][detach_session] detach session: session [3648815945442074,default,closed]
[wamp_dealer.cpp:84][detach_session] cleaning up session registrations
[wamp_dealer.cpp:113][detach_session] cleaning up pending caller invocations
[wamp_dealer.cpp:133][detach_session] cleaning up pending callee invocations

Bonefish and Cpp Publisher fails -

[rawsocket_transport.cpp:39][send_message] sending message: event
[wamp_message_processor.cpp:46][process_message] processing message: publish
[wamp_broker.cpp:108][process_publish_message] session [3648815945442074,default,open], publish [12, {}, com.examples.subscriptions.topic1, [12], nil]
[wamp_broker.cpp:141][process_publish_message] session [7090515283965860,default,open], event [1,<PHONE_NUMBER>422709, {}, [12], nil]
[rawsocket_transport.cpp:39][send_message] sending message: event
[wamp_message_processor.cpp:46][process_message] processing message: goodbye
[wamp_router_impl.cpp:211][process_goodbye_message] session [3648815945442074,default,closed], goodbye [{}, wamp.close.normal]
[websocket_transport.cpp:39][send_message] sending message: goodbye
[wamp_dealer.cpp:79][detach_session] detach session: session [3648815945442074,default,closed]
[wamp_dealer.cpp:84][detach_session] cleaning up session registrations
[wamp_dealer.cpp:113][detach_session] cleaning up pending caller invocations
[wamp_dealer.cpp:133][detach_session] cleaning up pending callee invocations
Not sure if this is a autobahn-cpp issue or a bonefish one. since @davidchappelle  is also a contributor here, Im submitting it here.

I'll take a look later this evening.

Without digging at all: is it just where the message-numbers start? Bonefish rejects 0 so the numbers must start at 1 (AutobahnPython was starting at 0, which meant "nothing" worked w/ bonefish).

I ran the example code without modification and it publish only once.

If you look at the publisher code it only publishes once and then returns from main so that is expected behaviour. I am not seeing any issues here. I am testing against latest bonefish and AutobahnCpp.
Bonefish Output
dchappelle@orion:build$ ./daemon/bonefish -r default -t 9000 -d
[rawsocket_server_impl.cpp:94][start] starting rawsocket server
[wamp_message_processor.cpp:46][process_message] processing message: hello
[wamp_router_impl.cpp:107][attach_session] attaching session: session [7090515283965860,default,none]
[wamp_dealer.cpp:62][attach_session] attach session: session [7090515283965860,default,none]
[wamp_broker.cpp:51][attach_session] attach session: session [7090515283965860,default,none]
[wamp_router_impl.cpp:163][process_hello_message] session [7090515283965860,default,none], hello [default, {"roles":{"caller":{"features":{"call_timeout":true}}, "callee":{"features":{"call_timeout":true}}, "publisher":{}, "subscriber":{}}}]
[wamp_router_impl.cpp:191][process_hello_message] session [7090515283965860,default,open], welcome [7090515283965860, {"roles":{"dealer":{"features":{"call_timeout":true}}, "broker":{}}}]
[rawsocket_transport.cpp:39][send_message] sending message: welcome
[wamp_message_processor.cpp:46][process_message] processing message: subscribe
[wamp_broker.cpp:163][process_subscribe_message] session [7090515283965860,default,open], subscribe [1, {}, com.examples.subscriptions.topic1]
[wamp_broker.cpp:196][process_subscribe_message] session [7090515283965860,default,open], subscribed [1, 1]
[rawsocket_transport.cpp:39][send_message] sending message: subscribed
[wamp_message_processor.cpp:46][process_message] processing message: hello
[wamp_router_impl.cpp:107][attach_session] attaching session: session [2257228500326156,default,none]
[wamp_dealer.cpp:62][attach_session] attach session: session [2257228500326156,default,none]
[wamp_broker.cpp:51][attach_session] attach session: session [2257228500326156,default,none]
[wamp_router_impl.cpp:163][process_hello_message] session [2257228500326156,default,none], hello [default, {"roles":{"caller":{"features":{"call_timeout":true}}, "callee":{"features":{"call_timeout":true}}, "publisher":{}, "subscriber":{}}}]
[wamp_router_impl.cpp:191][process_hello_message] session [2257228500326156,default,open], welcome [2257228500326156, {"roles":{"dealer":{"features":{"call_timeout":true}}, "broker":{}}}]
[rawsocket_transport.cpp:39][send_message] sending message: welcome
[wamp_message_processor.cpp:46][process_message] processing message: publish
[wamp_broker.cpp:108][process_publish_message] session [2257228500326156,default,open], publish [1, {}, com.examples.subscriptions.topic1, ["hello"], nil]
[wamp_broker.cpp:141][process_publish_message] session [7090515283965860,default,open], event [1,<PHONE_NUMBER>965860, {}, ["hello"], nil]
[rawsocket_transport.cpp:39][send_message] sending message: event
[wamp_message_processor.cpp:46][process_message] processing message: goodbye
[wamp_router_impl.cpp:211][process_goodbye_message] session [2257228500326156,default,closed], goodbye [{}, wamp.error.close_realm]
[rawsocket_transport.cpp:39][send_message] sending message: goodbye
[wamp_dealer.cpp:79][detach_session] detach session: session [2257228500326156,default,closed]
[wamp_dealer.cpp:84][detach_session] cleaning up session registrations
[wamp_dealer.cpp:113][detach_session] cleaning up pending caller invocations
[wamp_dealer.cpp:133][detach_session] cleaning up pending callee invocations
[wamp_broker.cpp:66][detach_session] detach session: 0x1ec5800
[rawsocket_connection.hpp:302][handle_system_error] connection closed: asio.misc:2

AutobahnCpp Subscriber Output
dchappelle@orion:build$ ./examples/subscriber -d -p 9000
realm: default
starting io service
connected to server
RawSocket handshake reply received
rawsocket handshake: using msgpack serializer
rawsocket handshake: start wamp async
RX preparing to receive message ..
session started
TX message (105 octets) ...
TX message sent (109 / 109 octets)
RX message (59 octets) ...
RX message received.
RX WAMP message: [2,<PHONE_NUMBER>965860, {"roles"=>{"dealer"=>{"features"=>{"call_timeout"=>true}}, "broker"=>{}}}]
RX preparing to receive message ..
joined realm:<PHONE_NUMBER>965860
TX message (39 octets) ...
TX message sent (43 / 43 octets)
RX message (4 octets) ...
RX message received.
RX WAMP message: [33, 1, 1]
RX preparing to receive message ..
RX message (20 octets) ...
RX message received.
RX WAMP message: [36, 1,<PHONE_NUMBER>965860, {}, ["hello"]]
Warning: event handler threw exception
RX preparing to receive message ..

AutobahnCpp Publisher Output
dchappelle@orion:build$ ./examples/publisher -d -p 9000
starting io service
connected to server
RawSocket handshake reply received
rawsocket handshake: using msgpack serializer
rawsocket handshake: start wamp async
RX preparing to receive message ..
session started
TX message (105 octets) ...
TX message sent (109 / 109 octets)
RX message (59 octets) ...
RX message received.
RX WAMP message: [2,<PHONE_NUMBER>326156, {"roles"=>{"dealer"=>{"features"=>{"call_timeout"=>true}}, "broker"=>{}}}]
RX preparing to receive message ..
joined realm:<PHONE_NUMBER>326156
event published
TX message (46 octets) ...
TX message sent (50 / 50 octets)
TX message (26 octets) ...
TX message sent (30 / 30 octets)
RX message (30 octets) ...
RX message received.
RX WAMP message: [6, {}, "wamp.error.goodbye_and_out"]
RX preparing to receive message ..
left session (wamp.error.goodbye_and_out)
stopped io service
stopped session

FWIW the caller and callee examples are also working for me as expected.

Oh I  just missed -d options thats made it look like theres no output at all. Thanks

Im reopening again since I see still there is something not working. If you see the subsriber example code.
void topic1(const autobahn::wamp_event& event) {
    std::cerr << "received event: " << event.argument<uint64_t>(0) << std::endl;
}

you never see this calback topic being called when using publisher example but it works perfectly when using a python publisher.
You also get exception in AutobahnCpp Subscriber
Warning: event handler threw exception

For Python Publisher I get this
received event  1


Connect pantheon db to drupal-vm

Hi,
is it possible to connect the db of the vm to a remote db on pantheon?

Sort-of; you can have Drupal point to a database anywhere, as long as the database configuration in settings.php can point to that database over the active network connection on your computer.
However, what most people would do is grab a copy of the database off pantheon, or use Drush sql-sync to sync the database from Pantheon to your Drupal VM instance; this way you don't have to deal with the tremendous latency of using a database over the Internet.


CompositeByteBuf.component() returns ByteBuf duplicates without adjusting the indexes

Expected behavior
Removing a component from a CompositeByteBuf, and adding it back to the same place does not change the content of the  CompositeByteBuf.
Actual behavior
In certain cases, removing a component from the CompositeByteBuf, and adding it back results in the CompositeByteBuf with the content different from before the removal. In such cases, CompositeByteBuf.component() returns a buffer with the reader index out-of-sync with the readable portion of the buffer contributing to the CompositeByteBuf.
Steps to reproduce
This corresponds to the code example in the next section.

Create a new CompositeByteBuf with a single component, content: ---01234; read first 3 bytes:

###### composite1
Full:
         +-------------------------------------------------+
         |  0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f |
+--------+-------------------------------------------------+----------------+
|00000000| 2d 2d 2d 30 31 32 33 34                         |---01234        |
+--------+-------------------------------------------------+----------------+
Readable:
         +-------------------------------------------------+
         |  0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f |
+--------+-------------------------------------------------+----------------+
|00000000| 30 31 32 33 34                                  |01234           |
+--------+-------------------------------------------------+----------------+
CompositeByteBuf(ridx: 3, widx: 8, cap: 8, components=1)

Wrap it into another CompositeByteBuf:

###### composite2
Full:
         +-------------------------------------------------+
         |  0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f |
+--------+-------------------------------------------------+----------------+
|00000000| 30 31 32 33 34                                  |01234           |
+--------+-------------------------------------------------+----------------+
Readable:
         +-------------------------------------------------+
         |  0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f |
+--------+-------------------------------------------------+----------------+
|00000000| 30 31 32 33 34                                  |01234           |
+--------+-------------------------------------------------+----------------+
CompositeByteBuf(ridx: 0, widx: 5, cap: 5, components=1)

Note that now the full view of the buffer is the same as the readable portion, as addFlattenedComponents made the adjustments to exclude the bytes already read (---).

Let's explore the result of CompositeByteBuf.component(0):

###### component
Full:
         +-------------------------------------------------+
         |  0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f |
+--------+-------------------------------------------------+----------------+
|00000000| 2d 2d 2d 30 31 32 33 34                         |---01234        |
+--------+-------------------------------------------------+----------------+
Readable:
         +-------------------------------------------------+
         |  0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f |
+--------+-------------------------------------------------+----------------+
|00000000| 2d 2d 2d 30 31 32 33 34                         |---01234        |
+--------+-------------------------------------------------+----------------+
UnpooledDuplicatedByteBuf(ridx: 0, widx: 8, cap: 32, unwrapped: PooledUnsafeHeapByteBuf(ridx: 0, widx: 8, cap: 32))

Note that the component still contains the bytes discarded by the CompositeByteBuf(). This contradicts to what's returned by internalComponent(), which returns the slice() under the hood:
###### internalComponent
Full:
         +-------------------------------------------------+
         |  0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f |
+--------+-------------------------------------------------+----------------+
|00000000| 30 31 32 33 34                                  |01234           |
+--------+-------------------------------------------------+----------------+
Readable:
         +-------------------------------------------------+
         |  0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f |
+--------+-------------------------------------------------+----------------+
|00000000| 30 31 32 33 34                                  |01234           |
+--------+-------------------------------------------------+----------------+
UnpooledSlicedByteBuf(ridx: 0, widx: 5, cap: 5/5, unwrapped: PooledUnsafeHeapByteBuf(ridx: 0, widx: 8, cap: 32))

What's even more interesting, if we call .duplicate() on the slice, it'll return the full view of the buffer, and with correctly offset indexes!
###### internalComponentDup
Full:
         +-------------------------------------------------+
         |  0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f |
+--------+-------------------------------------------------+----------------+
|00000000| 2d 2d 2d 30 31 32 33 34                         |---01234        |
+--------+-------------------------------------------------+----------------+
Readable:
         +-------------------------------------------------+
         |  0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f |
+--------+-------------------------------------------------+----------------+
|00000000| 30 31 32 33 34                                  |01234           |
+--------+-------------------------------------------------+----------------+
UnpooledDuplicatedByteBuf(ridx: 3, widx: 8, cap: 32, unwrapped: PooledUnsafeHeapByteBuf(ridx: 0, widx: 8, cap: 32))

Remove the component, then add it back to the composite buf. Results:
Actual

###### Resulting composite
Full:
         +-------------------------------------------------+
         |  0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f |
+--------+-------------------------------------------------+----------------+
|00000000| 2d 2d 2d 30 31 32 33 34                         |---01234        |
+--------+-------------------------------------------------+----------------+
Readable:
         +-------------------------------------------------+
         |  0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f |
+--------+-------------------------------------------------+----------------+
|00000000| 2d 2d 2d 30 31 32 33 34                         |---01234        |
+--------+-------------------------------------------------+----------------+
CompositeByteBuf(ridx: 0, widx: 8, cap: 8, components=1)

Expected
###### Resulting composite
Full:
         +-------------------------------------------------+
         |  0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f |
+--------+-------------------------------------------------+----------------+
|00000000| 30 31 32 33 34                                  |01234           |
+--------+-------------------------------------------------+----------------+
Readable:
         +-------------------------------------------------+
         |  0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f |
+--------+-------------------------------------------------+----------------+
|00000000| 30 31 32 33 34                                  |01234           |
+--------+-------------------------------------------------+----------------+
CompositeByteBuf(ridx: 0, widx: 5, cap: 5, components=1)

Minimal yet complete reproducer code
package io.grpc.netty;

import static com.google.common.truth.Truth.assertThat;
import static io.netty.util.CharsetUtil.US_ASCII;

import io.netty.buffer.ByteBuf;
import io.netty.buffer.ByteBufAllocator;
import io.netty.buffer.ByteBufUtil;
import io.netty.buffer.CompositeByteBuf;
import io.netty.buffer.PooledByteBufAllocator;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;

@RunWith(JUnit4.class)
public class CompositeByteBufTest {
  @Test
  public void compositeByteBuf_componentIndexes_demo() {
    ByteBufAllocator alloc = new PooledByteBufAllocator();

    // Create underlying buffer spacious enough for the test data.
    ByteBuf buf = alloc.buffer(32).writeBytes("---01234".getBytes(US_ASCII));

    // Start with a regular cumulation and add the buf as the only component.
    CompositeByteBuf composite1 = alloc.compositeBuffer(8).addFlattenedComponents(true, buf);
    // Read composite1 buf to the beginning of the numbers.
    assertThat(composite1.readCharSequence(3, US_ASCII).toString()).isEqualTo("---");

    printBufDebug("composite1", composite1);

    // Wrap composite1 into another CompositeByteBuf. This is similar to
    // what NettyAdaptiveCumulator.cumulate() does in the case the cumulation has refCnt != 1.
    CompositeByteBuf composite2 =
        alloc.compositeBuffer(8).addFlattenedComponents(true, composite1);
    assertThat(composite2.toString(US_ASCII)).isEqualTo("01234");

    printBufDebug("composite2", composite2);

    // The previous operation does not adjust the read indexes of the underlying buffers,
    // only the internal Component offsets.

    // Remove the last component from the cumulation, then add it back.
    int tailComponentIndex = composite2.numComponents() - 1;
    int tailStart = composite2.toByteIndex(tailComponentIndex);
    ByteBuf component = composite2.component(tailComponentIndex);
    printBufDebug("component", component);

    // internalComponent and internalComponentDup are for the demo purposes.
    // ByteBuf internalComponent = composite2.internalComponent(tailComponentIndex);
    // ByteBuf internalComponentDup = composite2.internalComponent(tailComponentIndex).duplicate();
    // printBufDebug("internalComponent", internalComponent);
    // printBufDebug("internalComponentDup", internalComponentDup);

    // Take the ownership of the component.
    component.retain();

    // Remove the component from the composite buf.
    composite2.removeComponent(tailComponentIndex).setIndex(0, tailStart);

    // Add it back to the composite byte buf.
    composite2.addFlattenedComponents(true, component);
    printBufDebug("Resulting composite ", composite2);

    assertThat(composite2.toString(US_ASCII)).isEqualTo("01234");
  }

  private static void printBufDebug(String title, ByteBuf buf) {
    String msg = "###### " + title + "\n";
    msg += "Full:\n";
    msg += ByteBufUtil.prettyHexDump(buf, 0, buf.readerIndex() + buf.readableBytes())  + "\n";
    msg += "Readable:\n";
    msg += ByteBufUtil.prettyHexDump(buf)  + "\n";
    msg += buf + "\n";
    System.out.println(msg);
  }
}

Netty version
4.x
JVM version (e.g. java -version)
Any
OS version (e.g. uname -a)
Any
Misc
This is the root cause for the initial rollback of NettyAdaptiveCumulator in gRPC (https://github.com/grpc/grpc-java/pull/7532).
Now that we found the issue, we're bringing back the NettyAdaptiveCumulator in https://github.com/grpc/grpc-java/pull/9558, but using a hack with copying the indexes from the internalComponent().duplicate(). This issue is to track the fix in the upstream.
cc @ejona86 @normanmaurer

As I understand it, the essence of the issue is that CompositeByteBuf.component(int) returns a duplicate of the component as it was originally given, rather than as a projection through the composite buffer index ranges.
We can ask ourselves if getting a component buffer out of a composite buffer is the dual of adding, or if it's only the readable contents of the buffers that matters.
As far as I can see, tests and documentation don't say either way, but I'm hesitant to change this for compatibility.
Also, looking at other methods, none of them modify the indices of the component buffers, so there is precedence for leaving them alone.
We can update the javadoc to say that the component indices do not reflect the indices of the composite buffer.
We can also add a new method, "componentSlice" or something, which returns a slice of the component for the bytes-that-are-readable-through-the-composite-buffer, which I think is what you're after.
@sergiitk How does that sound? Would you be interested in contributing such a PR?

Hey @chrisvest. Yes, I was going to make the PR soonish. Regarding what approach to choose - I'll follow up later, need to dig a bit more first.

The essence of this issue is "what does component() mean when components have been moved from another CompositeByteBuf via addFlattenedComponent()?" And "what does component() mean after discardReadBytes()"?
Ordinarily with addComponent(), a composite's capacity() is the sum of readable bytes of its components. The strangeness with addFlattenedComponent is that the readerIndex and writerIndex of the "donor" composite are used to restrict the provided capacity of components, so the readable bytes of srcBuf can be larger than the provided capacity. It appears this happens with discardReadBytes() as well. I think those are the only two cases, inspecting code that sets/modifies srcAdjustment.
I'll note that all usages of srcBuf use srcIdx() except component(). So component() is the only API that can see this discrepancy.
If we add a new API, its semantics will be that the returned buffer's reader/writer indexes match the capacity the component provides to the composite. The reader/writer indexes of the composite are unrelated. And we'd define the existing composite() to be "a duplicate of the original buffer passed to a composite instance."

Note that CompositeByteBuf does not implement discardReadBytes() (and discardSomeReadBytes()) as documented by ByteBuf nor documents its alternative behavior. ByteBuf.discardReadBytes() does not change the capacity; it just moves the readable bytes to the front of the buffer. In the class documentation it says "writable bytes (got more space)" (which never happens with composite) and has capacity unchanged in the diagram (which composite decreases when not a noop).


Moving imported file types to Info.plist

While running the demo on my Mac (os is 13.2.1), I was unable to select the .mlpackage file to some issues with the defined UTType's
Moving them to the app-level Info.plist seems to have fixed any import issues
Let me know if you find any issues with this solution while testing across different devices!

Hey @dkman94. How are you? I am not sure but I think this is intend to run on MacOS 15 or iOS 18 if I am not mistaken.


Some materials for beginners

Hi, folks. Could I connect with you to learn this field of dose computation and plan optimization? Can you share some materials? I am interested in how fluence maps converted to dose maps. Thanks.

You can start by reading the review papers mentioned on the readme page and going through the Jupyter Notebooks. In the future, we plan to create an educational YouTube channel


Select Servant with Append in Support screen

Added additional checking for appends, entirely optional and will be skip if the user didn't select it

Upon checking of this feature turns out that there are 3 display states for skill display checking

Skill
Append
Switching Skill & Append every few seconds

In order to lessen the time it takes for checking of this state:

Assume the initial state was Skill display, perform no checking of the skill state
Upon checking the append, just make sure it was not on the skill display state and if it was, then press the skill display button to go into the append display
After the checking of the Appends, just click the Skill display twice to return to the Skill display state

Perform no checking of append if the follow was on the right side, this is due to the fact that story/event servants don't have append

Don't have images for other servers, so just going to assume and perform no checking, YOLO!

@ArthurKun21 I’m new to this app and srry if this sound stupid but can I ask where can I find the also check append skill?


(GH-58) Set an Expiration Date on Cookie

This adds an expiration date to the cookie notice so that the cookie
persist through multiple user sessions, actually 100 years. This is
inline with how it is set on chocolatey.org.
Without setting an expiration date, the cookie is reset every time the
user starts a new session.
A slight update to the cookie notice button has been made to stay
inline with chocolatey.org and make the button slightly larger on
mobile, making it easier to tap.
Fixes #58

@designxsteph thanks for getting this done!


Better error text for JSON syntax errors during schema parsing

If there isn't an indication soon that this isn't a dead project I'm going to start using your issues to advertise my supported fork of the project (an irony because that is how I found this project when it became unsupported by the original developer).

I'd be happy to help with maintenance of this lib... I need to make some improvements for my usage, but AFAICT the linkedin go-avro lib won't work for me at all. @ChrisRx are you still using this?
It would be nice to keep the repo here for the cleaner looking import path...


Certain queries (e.g. summarize rate(1) by bin_auto(_time), <field>) return incorrect results in 0.6.0

(Initially made a comment about this in #74 but now think it's probably a separate issue.)
After upgrading to 0.6.0 (and modifying my Grafana charts to use 'Prepare time series'), certain queries, such as anything involving summarize rate(1) by bin_auto(_time), <field>, return results that are drastically different (and always larger) than running the same query in axiom.co. The error appears to scale with the number of time series returned, but I'm not fully sure. summarize count() by bin_auto(_time), <field> appears to be unaffected.

Hi @tasgon, thank you for raising this! We'll take a look and get back to you 🙌


Minimap2 parameters for ONT 1D cDNA prior to TALON

Hi,
Which Minimap2 parameters would you suggest for ONT 1D cDNA reads prior to running TALON?
The recommended '-ax splice' parameters or '-ax splice:hq -uf'/'-ax splice -uf -k14' to force Minimap2 to consider the forward transcript strand only? Which is crucial for TALON?
Also when running Minimap2 prior to TALON, would you recommend including both primary and secondary alignments or only the primary alignments (minimap --secondary=no)?
Best,
Sebastian

Hi Sebastian, you should be fine using the recommended '-ax splice' parameters. TALON will only use the primary alignments, so feel free to use --secondary=no, but it's safe either way.


Cannot connect MQTT using esp8266

I can not connect MQTT and I receive an error is : " last error :-10  return code : 5". Could someone tell me where I am wrong?

This generally means that the client was disconnected due to authentication failure.
Did you set everything up in ciotc_config.h? You may want to try going through the quickstart again.

I'm setting up based on readme . I just change location. Like bellow
const char* project_id = "tactile-acrobat-231604";
const char* location = "asia-east1";
const char* registry_id = "atest-registry";
const char* device_id = "ngoc233";
const char* private_key_str =
"c6:52:31:fc:2b:c6:88:4e:4a:29:ce:cd:1f:1b:c6:"
"4a:47:36:0d:40:a4:ef:d2:30:95:11:61:2c:dc:a5:"
"f6:58";
In the Serial, I have new error
Success to open ca file
07:00:25.969 -> loaded
07:00:26.002 -> checking wifi...check wifi done
07:00:26.002 ->
07:00:26.002 -> connecting...lasterror :-5
07:00:27.463 -> return code : 6

I see some problems in this code
gcloud iot devices create atest-dev --region=us-central1
--registry=atest-registry
--public-key path=ec_public.pem,type=es256
And I changed it like bellow
gcloud iot devices create ngoc233
--project=project_id
--region=asia-east1
--registry=atest-registry
--public-key path=ec_public.pem,type=es256

@ngoc233 If there's a bug in the README, let us know and we can update it. The region and other configuration for the device you create needs to be the same as the one you have configured in ciotc_config.h.

Make sure that private_key_str has 32 pairs in it. If not, you need to pad 00 or remove extra padding.

It looks like you're creating the device in the correct region and have a valid private key, I'm not sure why it is not working. Maybe try enabling a more verbose level of logging as described in the updated README. Closing as I cannot reproduce the issue.


eclipse-tomcat6-GWT Compile error

Loading inherited module 'org.opendatakit.aggregate.AggregateUI'
   [ERROR] Unable to find 'org/opendatakit/aggregate/AggregateUI.gwt.xml' on your classpath; could be a typo, or maybe you forgot to include a classpath entry for source?

Please ask questions on the opendatakit-developers@ list
Please open GitHub issues when they are real issues.
See the CONFIGURE.txt file for how to configure Eclipse properly.
In particular, when compiling GWT modules you must Refresh for the changes
to be picked up within an EAR project.
On Mon, Aug 8, 2016 at 12:45 AM, Quan<EMAIL_ADDRESS>wrote:

Loading inherited module 'org.opendatakit.aggregate.AggregateUI'
[ERROR] Unable to find 'org/opendatakit/aggregate/AggregateUI.gwt.xml' on
your classpath; could be a typo, or maybe you forgot to include a classpath
entry for source?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/opendatakit/opendatakit/issues/1246, or mute the
thread
https://github.com/notifications/unsubscribe-auth/ACLO00cCNztg5TeLKmtfpNomhKn0w_TNks5qdt6fgaJpZM4JeyDI
.

--
Mitch Sundt
Software Engineer
University of Washington
<EMAIL_ADDRESS>

I follow the Minimal Tomcat6 MySQL/PostgreSQL Eclipse Setup from the CONFIGURE.txt. And My database is Mysql. When i follow the (10) Select eclipse-tomcat6, right-click, Google / GWT Compile. It meet the error.

在 2016年8月9日星期二 UTC+8上午12:45:06，Mitch写道：

Please ask questions on the opendatakit-developers@ list
Please open GitHub issues when they are real issues.
See the CONFIGURE.txt file for how to configure Eclipse properly.
In particular, when compiling GWT modules you must Refresh for the changes to be picked up within an EAR project.
On Mon, Aug 8, 2016 at 12:45 AM, Quan<EMAIL_ADDRESS>wrote:
Loading inherited module 'org.opendatakit.aggregate.AggregateUI'
[ERROR] Unable to find 'org/opendatakit/aggregate/AggregateUI.gwt.xml' on your classpath; could be a typo, or maybe you forgot to include a classpath entry for source?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.
I follow the Minimal Tomcat6 MySQL/PostgreSQL Eclipse Setup from the CONFIGURE.txt. And My database is Mysql. When i follow the (10) Select eclipse-tomcat6, right-click, Google / GWT Compile. It meet the error.
--
Mitch Sundt
Software Engineer
University of Washington
<EMAIL_ADDRESS>

Closing.  Follow-up will be on opendatakit-developer@ list.

在 2016年8月9日星期二 UTC+8上午12:45:06，Mitch写道：

Please ask questions on the opendatakit-developers@ list
Please open GitHub issues when they are real issues.
See the CONFIGURE.txt file for how to configure Eclipse properly.
In particular, when compiling GWT modules you must Refresh for the changes to be picked up within an EAR project.
On Mon, Aug 8, 2016 at 12:45 AM, Quan<EMAIL_ADDRESS>wrote:
Loading inherited module 'org.opendatakit.aggregate.AggregateUI'
[ERROR] Unable to find 'org/opendatakit/aggregate/AggregateUI.gwt.xml' on your classpath; could be a typo, or maybe you forgot to include a classpath entry for source?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.
--
Mitch Sundt
Software Engineer
University of Washington
<EMAIL_ADDRESS>
I had refresh many times. I am using:
Eclipse jee-neon (4.6)
Google Suite Plugin 3.9.4

在 2016年8月9日星期二 UTC+8上午12:45:06，Mitch写道：

Please ask questions on the opendatakit-developers@ list
Please open GitHub issues when they are real issues.
See the CONFIGURE.txt file for how to configure Eclipse properly.
In particular, when compiling GWT modules you must Refresh for the changes to be picked up within an EAR project.
On Mon, Aug 8, 2016 at 12:45 AM, Quan<EMAIL_ADDRESS>wrote:
Loading inherited module 'org.opendatakit.aggregate.AggregateUI'
[ERROR] Unable to find 'org/opendatakit/aggregate/AggregateUI.gwt.xml' on your classpath; could be a typo, or maybe you forgot to include a classpath entry for source?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.
--
Mitch Sundt
Software Engineer
University of Washington
<EMAIL_ADDRESS>
It seems that Mars has a problem on Ubuntu 16.04. It can't import project!
So i use Windows 10 and Mars. First i want to install "Google Suite Plugin 3.9.3", but it meet a error. Then i install " Google Suite Plugin 3.9.4".
Start to build.
GWT Complie:
waring: Could not open/create prefs root node Software\JavaSoft\Prefs at root 0x80000002. Windows RegCreateKeyEx(...) returned error code 5.
Loading inherited module 'org.opendatakit.aggregate.AggregateUI'
[ERROR] Unable to find 'org/opendatakit/aggregate/AggregateUI.gwt.xml' on your classpath; could be a typo, or maybe you forgot to include a classpath entry for source?
So, the problem is still here.
And there are many Maven Dependency lib missing.


MPN gold and silver incidents do not support LCS

MPN gold and silver incidents are for on-premises products only. Therefore, they should not be used for Cloud products such as Dynamics 365, Azure etc

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

ID: 8710098e-7f1d-d216-83c2-b513753c969d
Version Independent ID: 64e1a812-a65f-6d3e-a902-5e1cce22bc3e
Content: Manage the support experiences for Finance and Operations apps
Content Source: articles/fin-ops-core/dev-itpro/lifecycle-services/cloud-powered-support-lcs.md
Service: dynamics-ax-platform
Product: ****
Technology: ****
GitHub Login: @kfend
Microsoft Alias: anupams

Thank you for your feedback. @kfend can you please take a look?

I reviewed this content with a support engineer.  He said MPN can used, if applicable. LCS handles not only online, but on-premises, as well.


Regression - Open query on website opens the api link instead of the normal link

Fixed in https://github.com/Sidekick-Poe/Sidekick/commit/19f0e9ad022aaddcb9b4f3aeb9d3e40d192d4cc8


Feature cache playlist

New feature: press 'shift+c' in play list menu to cache all the songs in play list.

455 457 close了
这个我测一下


dts: label: label defined in soc does not take effects in final zephyr.dts

Describe the bug
label defined in dts\arm\nxp\nxp_rt11xx.dtsi, does not take effects in final zephyr.dts
Please also mention any information which could help others to understand
we have defined i2c1 label in zephyr\dts\arm\nxp\nxp_rt11xx.dtsi
		lpi2c1: i2c@40104000 {
			compatible = "nxp,imx-lpi2c";
			clock-frequency = <I2C_BITRATE_STANDARD>;
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0x40104000 0x4000>;
			interrupts = <32 0>;
			clocks = <&ccm IMX_CCM_LPI2C1_CLK 0x70 6>;
			label = "I2C_1";
			status = "disabled";
		};

and after we build a application the label is not passed to final zephyr.dts
                lpi2c1: i2c@40104000 {
                        compatible = "nxp,imx-lpi2c";
                        clock-frequency = < 0x186a0 >;
                        #address-cells = < 0x1 >;
                        #size-cells = < 0x0 >;
                        reg = < 0x40104000 0x4000 >;
                        interrupts = < 0x20 0x0 >;
                        clocks = < &ccm 0x400 0x70 0x6 >;
                        status = "okay";
                        pinctrl-0 = < &pinmux_lpi2c5 >;
                        pinctrl-names = "default";
                };

To Reproduce
Steps to reproduce the behavior:

cd samples/sensor/fxos8700
west build -b mimxrt1170_evk_cm7

Expected behavior
label is passed to final dts so application can use the label to get driver device_get_binding(label)
Environment (please complete the following information):

OS: (e.g. Linux, MacOS, Windows)
Toolchain (e.g Zephyr SDK, ...)
Commit SHA or Version used: 1e25763f572309c7e92bcbb3461d8263b1006245

Tried reproducing this and I see the label property in /zephyr/zephyr.dts

@galak  can you attach your zephyr.dts? my result seems different
zephyr.zip

Here's me zephyr.dts zephyr.dts.gz
Here's my tweak to dts:
diff --git a/dts/arm/nxp/nxp_rt11xx.dtsi b/dts/arm/nxp/nxp_rt11xx.dtsi
index 854da3a461..4a2c50ba89 100644
--- a/dts/arm/nxp/nxp_rt11xx.dtsi
+++ b/dts/arm/nxp/nxp_rt11xx.dtsi
@@ -262,6 +262,7 @@
                        interrupts = <32 0>;
                        clocks = <&ccm IMX_CCM_LPI2C1_CLK 0x70 6>;
                        status = "disabled";
+                       label = "KUMAR";
                };

                lpi2c2: i2c@40108000 {

@galak , the dts/arm/nxp/nxp_rt11xx.dtsi content is as below, there is already label defined.
		lpi2c1: i2c@40104000 {
			compatible = "nxp,imx-lpi2c";
			clock-frequency = <I2C_BITRATE_STANDARD>;
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0x40104000 0x4000>;
			interrupts = <32 0>;
			clocks = <&ccm IMX_CCM_LPI2C1_CLK 0x70 6>;
			label = "I2C_1";
			status = "disabled";
		};

@galak , the dts/arm/nxp/nxp_rt11xx.dtsi content is as below, there is already label defined. I guess we are not in the same code base.
		lpi2c1: i2c@40104000 {
			compatible = "nxp,imx-lpi2c";
			clock-frequency = <I2C_BITRATE_STANDARD>;
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0x40104000 0x4000>;
			interrupts = <32 0>;
			clocks = <&ccm IMX_CCM_LPI2C1_CLK 0x70 6>;
			label = "I2C_1";
			status = "disabled";
		};

We recently removed that in upstream Zephyr.

@ok, seems it is fixed in latest version


New Process Is Not Started As Impersonated User

Hello,
I'm trying to start a instance of FireFox as an impersonated user.  However, when I run it and check the Task Manager, I see the process was started as the user logged in to the OS and not the impersonated user.  I've tried just about all of the logonTypes but no luck.  Could I be misunderstanding what this library does? Thanks for the help!
static private Process StartProcess()
{
    var credentials = new SimpleImpersonation.UserCredentials("MyDomain", "MyUsername", "MyPasswordPlainText");
    SimpleImpersonation.Impersonation.RunAsUser(credentials, SimpleImpersonation.LogonType.Interactive, () => {
        Process proc = new Process();
        proc.StartInfo.FileName = @"C:\Program Files (x86)\Mozilla Firefox\firefox.exe";
        proc.Start();
        return proc;
    });
}

As of version 4.0.0, this library simply exposes a SafeAccessTokenHandle that can be used with WindowsIdentity.RunImpersonated and similar methods.  Thus, any further discussion about what works within such impersonated code is better served at https://github.com/dotnet/runtime/issues.  Thanks.


Create a Swagger implementation for Kitura apps

We should implement a Swagger-compliant interface and add it to the following list:
http://swagger.io/open-source-integrations/

Closing as this is being progressed elsewhere.


Return entire webpage

I've used Wombat before for projects like Noodles that require a simple web scraper, but now I'm trying to pull back the entirety of the web page. I want everything — the head, the body, the contents — not just something specific. Is Wombat able to do this?

You should probably just use straight Mechanize or Nokogiri


Document troubleshooting steps for mpv.

Problem Description
Passing --x11-netwm=yes to mpv makes mpv compatible with xmonad-contrib's fullscreen modules.
Documenting this troubleshooting step somewhere might be helpful.

I realize that it should be a proper issue.


Generate scenario (Release)

I have asked around and the general consensus seems to be, that best approach to release a TAS is through a scenario.
As that should allow for the inclusion of both LUA code and map settings. Making it a cleaner solution to releasing a TAS to the public than including a map-exchange-string.
Implementation:

It needs a new file path: to the scenarios folder
It needs a map generation details (lets hope an exchange string works)
Both can be placed in the Script menu

Scenarios are slightly different from mods, but from the description none of the differences should matter to us.

Sounds like a good idea. I hope it is possible to implement.

It turns out that my initial idea for implementing this was vastly more complicated than i anticipated. So I'll postpone this for a little while.


Protoc failing due to weak imports used in the containers.proto

Description
Please check the https://github.com/protocolbuffers/protobuf/issues/9184 for the background. For one of my projects, I am doing a very simple operation with protoc to generate header files. Encountered an issue as mentioned below:
$ protoc --cpp_out=. -I/usr/share/gocode/src/github.com/containerd/containerd/api/services/containers/v1 -I/usr/share/gocode/src/github.com/gogo/protobuf/protobuf/ -I/usr/share/gocode/src/github.com/gogo/protobuf/ /usr/share/gocode/src/github.com/containerd/containerd/api/services/containers/v1/containers.proto
[libprotobuf FATAL ./google/protobuf/compiler/cpp/cpp_file.h:175] CHECK failed: !options_.opensource_runtime:
terminate called after throwing an instance of 'google::protobuf::FatalException'
what(): CHECK failed: !options_.opensource_runtime:
Aborted (core dumped)
protoc is failing with CHECK failed error. I have no clue about the error.
Logged a bug in protobuf community (https://github.com/protocolbuffers/protobuf/issues/9184) and was told that the issue was due to using weak imports in containers.proto file. Check https://github.com/protocolbuffers/protobuf/issues/9184#issuecomment-962279178
I am logging this issue to request to get rid of weak imports in containerd project.
Steps to reproduce the issue

Install latest protoc. I have used v3.14.0
Run $ protoc --cpp_out=. -I/usr/share/gocode/src/github.com/containerd/containerd/api/services/containers/v1 -I/usr/share/gocode/src/github.com/gogo/protobuf/protobuf/ -I/usr/share/gocode/src/github.com/gogo/protobuf/ /usr/share/gocode/src/github.com/containerd/containerd/api/services/containers/v1/containers.proto

Describe the results you received and expected
The protoc should be successful and the necessary headers should be properly generated. Instead, protoc command failed.
What version of containerd are you using?
latest version
Any other relevant information
No response
Show configuration if it is related to CRI plugin.
No response

@stevvooe @kzys PTAL

It was introduced by #1778 in 2017. @stevvooe, @crosbymichael and/or @mlaventure may have some context.
Removing weak import shouldn't affect any functionalities, but may affect the resource consumption, according to the PR description above.
We may need to remove them anyway to update our protobuf packages.


Fix action parameter validation when action overrides a parameter

This pull request fixes a bug described here https://github.com/StackStorm/st2/pull/2335#issuecomment-169615849.
The problem was that we didn't perform a deep merge of runner + action parameters which means that if user would override runner parameter in an action and only specify a single parameter attribute (e.g. only immutable, but not type, etc.) things would explode.
Schema validation code changes didn't touch this part so probably the only reason it worked in the past is because we didn't actually perform full strict validation of the runner parameter types (lovely, eh? :P)
TODO:

[x] Tests

@Kami: I think this is duplicate of https://github.com/StackStorm/st2/pull/2359

https://stackstorm.slack.com/archives/stackstorm/p1452194722021258

@m4dcoder I think those are two different issues, at least that's what I thought when I first saw your PR.

https://stackstorm.slack.com/archives/stackstorm/p1452202169021366

It looks like I can't really resolve conflicts and merge this PR until we decide on this - https://github.com/StackStorm/st2/pull/2359#issuecomment-169921028 so I will wait on that.

https://stackstorm.slack.com/archives/stackstorm/p1452245563021539

Alright, I resolved the merge conflicts as discussed with @m4dcoder.
I will go ahead, merge this PR into master and open a new PR for auto-generated documentation for parameter attributes which can be overriden.


Update or remove the Singularity instructions in the README

The page previously hosting the Singularity container seems to be down. This means that the instructions on how to retrieve Singularity is now outdated.
Also, I am not sure whether it works to run the previous command to retrieve the actual container. It would make more sense to leave this out for now, and find a new hosting option. Either using Singularity on some other site, or transferring the container to Docker instead.

Docker file added and singularity file removed n Pull request #10


Need to define @text-color-modified

I'm getting some errors from packages that expect this to be defined in ui-variables.less

See #52, sorry for the double issue


[Bug]: Using predefined network does not work

Description
When setting up a N8N Sqlite instance, during the creation I selected the destination network I wanted to add N8n too. Before launching for the first time, I selected Connect to Predefined Networks and then started the stack. During the startup a new docker network was created where N8n is located.

Minimal Reproduction (if possible, example repository)

Add a new N8N resource to a project

Select any server

Select a destination (eg. coolify)

Check the Connect To Predefined Network slider:

Click Deploy

Note, that even though we selected a destination and set the Connect To Predefined Network slider the service still creates a network when starting up.

Exception or Error
No response
Version
v4.0.0-beta.224

Yes, this functions as intended. If you attempt to link two services with the same name within a single network, it can lead to network problems because they share the same internal DNS. When you try to connect to one of them, the Docker network will round-robin you to one of them.
That is why, a separate network is created.
Connect To Predefined Network is there to be able to connect from other services, with the custom internal hostname, which is in your case is n8n-u8cgos4.


[Feature] Rich Text Combo insert Code Snippet

Is it possible to insert code snippet with formatting like markdown ?

At the moment you can create rich text combo with formatting, but it will be removed in the next version, so do not use it. The reason is explained here.


kotlin-native: 1.8.0 -> 1.8.10

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/JetBrains/kotlin/releases.
meta.description for kotlin-native is: A modern programming language that makes developers happier
meta.homepage for kotlin-native is: https://kotlinlang.org/
Updates performed

Version update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
found 1.8.10 with grep in /nix/store/c3bkchbl34daq7yzwf4vnqvhwclqn88q-kotlin-native-1.8.10
found 1.8.10 in filename of file in /nix/store/c3bkchbl34daq7yzwf4vnqvhwclqn88q-kotlin-native-1.8.10

Rebuild report (if merged into master) (click to expand)

1 total rebuild path(s)

1 package rebuild(s)

First fifty rebuilds by attrpath
kotlin-native

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/c3bkchbl34daq7yzwf4vnqvhwclqn88q-kotlin-native-1.8.10 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A kotlin-native https://github.com/r-ryantm/nixpkgs/archive/e30fe876489c1254c1c9e36340717e9ec0c2908c.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/c3bkchbl34daq7yzwf4vnqvhwclqn88q-kotlin-native-1.8.10
ls -la /nix/store/c3bkchbl34daq7yzwf4vnqvhwclqn88q-kotlin-native-1.8.10/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

kotlin-native

Maintainer pings
cc @fabianhjr for testing.

Superseded by #215250.


Adds vagrant aliases.

Hi @marksmall @typekpb @curiositycasualty,
These (#2964 #3140 #3312) are more or less accomplishing the same thing, can you agree together on one single PR so we can merge it?

I vote for mine :D! /cc @marksmall @typekpb

And #3762, now, too.


Enhancing the Light/Dark Mode feature.

Adding a light and dark mode toggle button to apply mode changes to each part of website including the navbar, Enhancing the feature.
@mnosov622 kindly assign me this under Hacktoberfest2022.

Sure !

@mnosov622 kindly review my PR #53 .

@mnosov622 kindly review my PR #53


rawQueryString seems to be a string instead of bytes literals

👋 @erm, first let me thank you for this ~great~ awesome library, as the author of another proxy for aws lambda I know this can be a 🕳 sometimes.
I'm currently working on https://github.com/developmentseed/titiler which is a FastAPI based tile server. When deploying the lambda function using mangum and the new api gateway HTTP endpoint, most of my endpoints works except for the ones where I call request.url.scheme
e.g: https://github.com/developmentseed/titiler/blob/master/titiler/api/api_v1/endpoints/metadata.py#L59
and I get AttributeError: 'str' object has no attribute 'decode'
Logs
File "/tmp/pip-unpacked-wheel-a0vaawkp/titiler/api/api_v1/endpoints/metadata.py", line 59, in tilejson
File "/tmp/pip-unpacked-wheel-xa0z_c8l/starlette/requests.py", line 56, in url
File "/tmp/pip-unpacked-wheel-xa0z_c8l/starlette/datastructures.py", line 45, in __init__
AttributeError: 'str' object has no attribute 'decode'

So looking at my cloudwatch logs I can deduce:

in https://github.com/encode/starlette/blob/97257515f8806b8cc519d9850ecadd783b3008f9/starlette/datastructures.py#L45 starlette expect the query_string to be a byte literal

in https://github.com/erm/mangum/blob/4fbf1b0d7622c19385a549eddfb603399a125bbb/mangum/adapter.py#L100-L106

it seems that Mangum is getting the rawQueryString for the event, and in my case I think this would be a string instead of a byte literal.
I'll work on adding logging and test in my app to confirm this, but I wanted to share this to see if I was making sense ;-)
Thanks

@vincentsarago thanks for the detailed description of the issue. :)
I had a look, a bytes string is being suppled for the rawQueryString in the tests, but this is incorrect. I'm working on a pre-release currently and will address this as part of those changes.
I'll update this issue when the changes are in.

These changes are now in master, https://github.com/erm/mangum/commit/dc14a0027212812cca3e1d7d5087fa9f236ebd03#diff-12d2884e46108e48b62f0482aa6988d3R104. I'll see about a pre-release later tonight or tomorrow (still want to do some more testing of the latest batch of changes before pushing 0.9.0).

Actually I ended up just pushing the 0.9.0 release (includes this change). Please follow-up if you run into any further issues.

thanks a lot @erm I will test it right away :-)

Everything works now 😄 🎉
thanks so much


Wrong title "Drag and drop"

The title "Drag and drop" is wrong.
I think it should be "Set content".

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

ID: 2ed70f5b-8ede-03e4-fe8d-15f710288dd9
Version Independent ID: a1225888-45e3-f2f6-bfe2-ab679fec7953
Content: Copy and paste - UWP apps
Content Source: windows-apps-src/app-to-app/copy-and-paste.md
Product: uwp
Technology: communication
GitHub Login: @mcleanbyron
Microsoft Alias: mcleans

Thanks for your feedback. I have updated this heading to "Set the copied content".


Fix flaky test [7164] for PR 6040: Leave virt-launcher container up for failed VMI

Signed-off-by: Hao Yu<EMAIL_ADDRESS>
What this PR does / why we need it:
Purpose:  to fix a flaky test [7164] that was introduced for a merged PR #6040.
Problem:  the test makes the assumption that if the VMI reaches a failed state that the pod will immediately also be in a failed state. Because there can be a lag between when the VMI and pod fail, the test has a race condition.
Fixes:

add an eventually block around the test;
replace the testing of the eventual phase of the virt-launcher pod to testing the eventual state of the container-status of the compute container to be running. This adjustment better targets the test to PR #6040.

Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Fixes #
Special notes for your reviewer:
Release note:

We do want the whole virt-launcher pod to eventually go to the right state, not just the compute container. In the case where we don't want virt-launcher to survive (keepLauncherBool == false), I believe the eventually-loop should just keep checking for launcherPod.Status.Phase to become PodFailed. In the other case (keepLauncherBool == true), we probably want to use Consistently instead of Eventually, to make sure that the virt-launcher pod stays alive for longer than a few milliseconds.
Since both tests happen in the same function, and to avoid massive ugly if blocks, how about we always do an Eventually followed by a Consistently? Like:

Start broken VMI
Expect that we'll eventually reach the desired state (Running if keepLauncherBool, Failed if not)
Expect that we'll consistently stay in that state for, say, 20 seconds

Great idea. Will comply.

/retest

/retest

/retest

No need to keep retesting if you plan on making changes to this PR

/retest

/approve

/release-note-none

/retest


QGIS & read_zip_shapefile

Context for Issue:
I was trying to teach an intern how to create a spatialVector for a dataset, and we ran into the following error message when trying to read in the shapefiles:
> upstream_pid <- selectMember(dp, "sysmeta@fileName", "upstream_points.zip")
> shapefile <- arcticdatautils::read_zip_shapefile(mn, upstream_pid)
Error in arcticdatautils::read_zip_shapefile(mn, upstream_pid) :
  Zipped directory must contain one and only one .shp file

Ways we tried to debug the issue:

There's only 1 pid for the upstream_pid object, so no doubles there
There's only 1 .shp file in the zip folder
The same .shp file can be read in properly using the sf::st_read() function that the read_zip_shapefile eventually calls in the function.
Tested the read_zip_shapefile function on a file from the Kapsar dataset, and didn't get an error. The main difference between these two is that the dataset we're trying to process has a .qpj file for QGIS.

Not sure if function is having explicit difficulty with the .qpj file from QGIS, but didn't have time to debug today. The read_zip_shapefile function can be found below.

Function Code:
https://github.com/NCEAS/arcticdatautils/blob/d08d3e066cf48a115b03064fc596ea78ace3a65f/R/helpers.R#L438-L482

found and fixed, in https://github.com/NCEAS/arcticdatautils/commit/5722e9c30b1af8bf537264de3bdc4621e0c73774


Are ghcr.io/cross-rs/... Docker images still being updated (last update 2022)?

Looking at https://github.com/orgs/cross-rs/packages, it seems the Docker images haven't been updated since 2022, which is quite some time ago. At the same time, when looking at the Docker files (https://github.com/cross-rs/cross/tree/main/docker) there have been recent changes.
Some context:
I noticed that different targets were being built against different library versions. Looking at the images that I am using, I noticed these were based on different base images, which explains why the library versions are different:
$ docker pull ghcr.io/cross-rs/aarch64-unknown-linux-musl:latest
latest: Pulling from cross-rs/aarch64-unknown-linux-musl
Digest: sha256:702154f52b2d8091671aa2c84d5582d849f949977228c735ff8462f93cc0e1e4
Status: Image is up to date for ghcr.io/cross-rs/aarch64-unknown-linux-musl:latest
ghcr.io/cross-rs/aarch64-unknown-linux-musl:latest

$ docker pull ghcr.io/cross-rs/armv7-unknown-linux-musleabihf:latest
latest: Pulling from cross-rs/armv7-unknown-linux-musleabihf
Digest: sha256:b4f481f30ceca34730a5723f717396d762d94f6eddd7e1cf7c7862d1377ff98c
Status: Image is up to date for ghcr.io/cross-rs/armv7-unknown-linux-musleabihf:latest
ghcr.io/cross-rs/armv7-unknown-linux-musleabihf:latest

$ docker pull ghcr.io/cross-rs/x86_64-unknown-linux-musl:latest
latest: Pulling from cross-rs/x86_64-unknown-linux-musl
Digest: sha256:77db671d8356a64ae72a3e1415e63f547f26d374fbe3c4762c1cd36c7eac7b99
Status: Image is up to date for ghcr.io/cross-rs/x86_64-unknown-linux-musl:latest
ghcr.io/cross-rs/x86_64-unknown-linux-musl:latest

$ docker run --rm -it ghcr.io/cross-rs/aarch64-unknown-linux-musl:latest cat /etc/debian_version
buster/sid

$ docker run --rm -it ghcr.io/cross-rs/armv7-unknown-linux-musleabihf:latest cat /etc/debian_version
bullseye/sid

$ docker run --rm -it ghcr.io/cross-rs/x86_64-unknown-linux-musl:latest cat /etc/debian_version
bullseye/sid

Looking at the related Docker files, they should all use the same base image:

https://github.com/cross-rs/cross/blob/main/docker/Dockerfile.aarch64-unknown-linux-musl
https://github.com/cross-rs/cross/blob/main/docker/Dockerfile.armv7-unknown-linux-musleabihf
https://github.com/cross-rs/cross/blob/main/docker/Dockerfile.x86_64-unknown-linux-musl

Yes, the "published xxx" is just how github presents it, it's not when the image was updated. You'll have to look at the individual tags to see when they were updated.
take
https://github.com/cross-rs/cross/pkgs/container/armv7-unknown-linux-musleabihf
for example

See https://github.com/cross-rs/cross/discussions/1290 for a new release 0.3.0.
As to the mismatch on debian versions, they are different because of what was supported at the time.
So, don't use latest if you want the images as they are currently on the main branch, use :main or :edge

one other note, the debian versions can mismatch due to https://github.com/cross-rs/cross/blob/main/docker/linux-image.sh too


Ordering bug in renderer

Sort students alphabetically by grade (some test data is committed below)
search
  [#student name grade teacher]
  index = sort[value: name, per: grade]

bind @browser
  [#div grade children:
    [#h3 sort: 0, text: "Grade: {{grade}}"]
    [#div sort: index, text: "{{index}} {{name}}"]]

The output is:
1 Damion

### Grade: 12

2 Gretchen
3 Octavio
4 Pa

The expected output is:

### Grade: 12

1 Damion
2 Gretchen
3 Octavio
4 Pa

Despite being told it's sort: 0, the h3 is ordered at position 2 in the div. If I change it's sort: -1, then it appears in the right spot.

Commit some test data
commit
  [#student name: "Damion", grade: 12, teacher: "Mrs. Purple", GPA: "3.8"]
  [#student name: "Gretchen", grade: 12, teacher: "Mrs. Yellow", GPA: "2.8"]
  [#student name: "Octavio", grade: 12, teacher: "Mrs. Purple", GPA: "3.4"]
  [#student name: "Pa", grade: 12, teacher: "Mrs. Yellow", GPA: "3.5"]

Interesting, an index value of 0, 1, or 2 all result in the indexed position of 2.
When I read the docs about sort it details that indexing begins at a positive int so wouldn't an index value of 0 or even -1 for that matter be invalid?  Also, since the H3 tag has an auto-index value less than that of the div tags, one would expect it to render first?

I'm pretty sure this is an off-by-one (the renderer was written long before
we switched to 1-indexed, and I don't recall if it's been updated). Will
investigate.
On Thu, Nov 17, 2016 at 7:01 PM pingram3541<EMAIL_ADDRESS>wrote:

Interesting, an index value of 0, 1, or 2 all result in the indexed
position of 2.
When I read the docs about sort
http://docs.witheve.com/handbook/general/sort/ it details that indexing
begins at a positive int so wouldn't an index value of 0 or even -1 for
that matter be invalid? Also, since the H3 tag has an auto-index value less
than that of the div tags, one would expect it to render first?
—
You are receiving this because you were assigned.
Reply to this email directly, view it on GitHub
https://github.com/witheve/Eve/issues/570#issuecomment-261436802, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AATKDm4S8vhGXfOVFFyc8uhGT1CFrxt1ks5q_RT7gaJpZM4K17IV
.


why this HEPPINING IM THROWING AHH HELP

Describe your problem here. If you are modding, please try testing your problem in a clean version of the engine instead, this ensures the problem is actually caused by the engine itself. Also, if you're using an older version of JSE, please try the latest action build in the Actions tab or the latest release build. The issue has probably been fixed since that version. Oh yeah, and also be sure to check the pinned 'JS Engine: Known Issues' issue, to double check if your issue hasn't already been found!

Lua
What is your build target?
Windows x64
Did you edit anything in this build? If so, mention or summarize your changes.
No response

vvvv

v

vvv

you need to use the mods folder, not the assets folder


Wrongly created issue

Sorry, This issue got created at the complete wrong place. Can you please delete it


Public vs Private API is unclear

Besides TableGenerator it's not clear which functions are public vs private API.
Empirically, one would think generate is the only public-facing function but it's not documented one way or the other.

One of the unusual things about this package's API is that the functions one extends to generate rows aren't really intended to be called by the user. For example, you're expected to define a new method for visit!, but realistically there's no situation in which you'd actually call visit!, you only take advantage of the fact that the method you defined allows you to call generate.

One of the unusual things about this package's API is that the functions one extends to generate rows aren't really intended to be called by the user. For example, you're expected to define a new method for visit!, but realistically there's no situation in which you'd actually call visit!, you only take advantage of the fact that the method you defined allows you to call generate.

yeah totally understand, and I think for that reason generate should be exported and documented as part of the public API which users call vs the private methods they should extend  if they want to support new generator types.

We may want to consider exporting generate under the name generate_rows in order to differentiate it from generate_tables, which we should also export, and also because generate_rows is strictly more descriptive of what the function actually generates.


Added Firmware 2021 Accord Hybrid

***** Template: Fingerprinting for 2021 Honda Accord Hybrid *****
Description No support for 2021 Honda Accord Hybrid, added firmwares to values.py
Verification Followed fingerprinting wiki
Route
Route: None yet
-->

What's your dongle ID?

What's your dongle ID?

It is:
1949e3587c4885e7

Does it work after adding the fingerprint? There's a car port PR open for the 2021 Accords. #20550

Does it work after adding the fingerprint? There's a car port PR open for the 2021 Accords. #20550

Yes, car no longer says 'No Exact Match Found', and haven't had any issues with the driving capabilities.

@feyded1020 Can you please provide the VIN for the vehicle and also a cabana link that is from the "Copy Share Link" button? You can message me on the comma Discord with the username @csouers with any questions.  I am doing the the port for the 2021+ Accord and Odyssey and this is very curious. I would expect to see different radar and camera firmware IDs for this model year.