Improve database structure

Raising from #769 comments
Expected behavior
Database structure should be documented, logical, split into small, easily maintainable tables.
Actual behavior
Database structure is hard to follow, hard to maintain and fragile. Classes like the MessageListFragment do a single query to retrieve all their data and it's hard to know how well this is tested (probably badly
Steps to fix

Document current database structure.
Test MessageListFragment cursor API and other similar core classes, extracting code where necessary
Write improved database structure
Write migration step

Documenting the current structure shouldn't be too hard. I'll take that and then we can see where we are.

@philipwhiuk Thanks for starting this! If there's anything I can possibly assist with, feel free to let me know.

Thanks for the comment @Trogel - I corrected the typo.


Bug: setDisabled() does not affect ColorComponent UI

Steps to reproduce:

Create a setting for a ColorComponent and call setDisabled(true)new Setting(containerEl)
  .addColorPicker((setting) => {
    setting.setValue('#7D5AED');
}).setDisabled(true);

Open Settings UI and verify the issue

Color picker input element is not disabled
The settingEl will have is-disabled appended
A new color can be selected, but it will not persist
There is no visual indication that the setting will not be saved

I've worked around this in the callback of setDisabled:
setting.setDisabled(shouldDisable).then((setting) => {
  if (shouldDisable) {
    setting.settingEl.style.opacity = '0.5';
    setting.controlEl.getElementsByTagName('input')[0].disabled = true;
    setting.controlEl.getElementsByTagName('input')[0].style.cursor = 'not-allowed';
    setting.controlEl.getElementsByTagName('input')[0].title = 'Other setting must be enabled to use this setting.';
  } else {
    setting.settingEl.style.opacity = '1';
    setting.controlEl.getElementsByTagName('input')[0].disabled = false;
    setting.controlEl.getElementsByTagName('input')[0].style.cursor = 'pointer';
    setting.controlEl.getElementsByTagName('input')[0].title = '';
  }
});

Just thought you guys should know if you aren't already aware. Apologies if you are, I couldn't find anything while searching.

Will be fixed in a future release.


Unable to escape database password

brain fried will fill out later as needed but ill try to give the gist here.
my password for postgres has a ' in it.
the environment vars passes in a long string which go then parces.
one of those is where you set the password
ive set it using password=$(cat p) in bash but that doesnt work with systemd env vars.
i changed the db password and it is fine for me, but maybe this is worth fixing?

Try %27
See this https://en.wikipedia.org/wiki/Percent-encoding and this https://www.postgresql.org/docs/current/libpq-connect.html
Do a find in the postgres link to drop right to the section "The connection URI needs to be encoded with percent-encoding"
Example Password
iL0v3ch'ck3n
Percent-encoded Password
iL0v3ch%27ck3n


[BUG] Fix VPN sidecar

Is there an existing issue for this?

[X] I have searched the existing issues

Behavior
VPN sidecar image doesn't work
Reproduction Steps
run the image in debug mode to identify
Container logs
N/A

On testing it turns out its not fixed...

https://ipleak.net/

haugene/transmission-openvpn fixes the issue


npm start: code ELIFECYCLE; errorno 1

Thank you for the box and scripts, but I hit a brick wall.
I am trying to get quick-start up and running in your box.
I followed your post: https://flatmap.it/2016/10/25/vagrant-electron/ to get the box set-up.
System info:
Box: Ubuntu 14.04.5 LTS (GNU/Linux 3.13.0-141-generic x86_64)
Node: v8.2.1
Npm: v5.3.0
I have read through other similar errors and searched the web for quite a few hours.
I know it is not my Node version that is the issue as in most other cases.
When running npm start I get the following error:
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR<EMAIL_ADDRESS>start: `electron .`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/vagrant/.npm/_logs/2018-02-19T21_08_55_663Z-debug.log

Opening the log file gives me:
0 info it worked if it ends with ok
1 verbose cli [ '/home/vagrant/.nvm/versions/node/v8.2.1/bin/node',
1 verbose cli   '/home/vagrant/.nvm/versions/node/v8.2.1/bin/npm',
1 verbose cli   'start' ]
2 info using<EMAIL_ADDRESS>3 info using<EMAIL_ADDRESS>4 verbose run-script [ 'prestart', 'start', 'poststart' ]
5 info lifecycle<EMAIL_ADDRESS><EMAIL_ADDRESS>6 info lifecycle<EMAIL_ADDRESS><EMAIL_ADDRESS>7 verbose lifecycle<EMAIL_ADDRESS>unsafe-perm in lifecycle true
8 verbose lifecycle<EMAIL_ADDRESS>PATH: /home/vagrant/.nvm/versions/node/v8.2.1/lib/node_modules/npm/bin/node-gyp-bin:/home/vagrant/Code/electron-quick-start/node_modules/.bin:/home/vagrant/.nvm/versions/node/v8.2.1/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
9 verbose lifecycle<EMAIL_ADDRESS>CWD: /home/vagrant/Code/electron-quick-start
10 silly lifecycle<EMAIL_ADDRESS>Args: [ '-c', 'electron .' ]
11 silly lifecycle<EMAIL_ADDRESS>Returned: code: 1  signal: null
12 info lifecycle<EMAIL_ADDRESS>Failed to exec start script
13 verbose stack Error<EMAIL_ADDRESS>start: `electron .`
13 verbose stack Exit status 1
13 verbose stack     at EventEmitter.<anonymous> (/home/vagrant/.nvm/versions/node/v8.2.1/lib/node_modules/npm/lib/utils/lifecycle.js:289:16)
13 verbose stack     at emitTwo (events.js:125:13)
13 verbose stack     at EventEmitter.emit (events.js:213:7)
13 verbose stack     at ChildProcess.<anonymous> (/home/vagrant/.nvm/versions/node/v8.2.1/lib/node_modules/npm/lib/utils/spawn.js:40:14)
13 verbose stack     at emitTwo (events.js:125:13)
13 verbose stack     at ChildProcess.emit (events.js:213:7)
13 verbose stack     at maybeClose (internal/child_process.js:921:16)
13 verbose stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:211:5)
14 verbose pkgid<EMAIL_ADDRESS>15 verbose cwd /home/vagrant/Code/electron-quick-start
16 verbose Linux 3.13.0-141-generic
17 verbose argv "/home/vagrant/.nvm/versions/node/v8.2.1/bin/node" "/home/vagrant/.nvm/versions/node/v8.2.1/bin/npm" "start"
18 verbose node v8.2.1
19 verbose npm  v5.3.0
20 error code ELIFECYCLE
21 error errno 1
22 error<EMAIL_ADDRESS>start: `electron .`
22 error Exit status 1
23 error Failed at the<EMAIL_ADDRESS>start script.
23 error This is probably not a problem with npm. There is likely additional logging output above.
24 verbose exit [ 1, true ]

I am at a loss as to what is causing this error.
Any guidance or pointers would be appreciated...

Hi @albertStaalburger, thank you for pointing out this issue! Tonight I'll give it a look and try to come with a proper solution to your problem :smiley_cat:

Hi @albertStaalburger, I am trying to reproduce your problem, but on my machine the quick start project starts without any error. I downgraded my NPM and Node versions to the same you mention above, but again the electron-quick-start project is working in my case.
Did you try to clone and launch another Electron project to see if the problem is still there?
Please, let me know.
Cheers!

I tried another project but could not get it working.
I am really green with regards to Electron.
I think I might have not set up my package.json correctly.
I have a different working directory to that of yours. My project lies in a
code directory.
I will try adjusting the scripts > start and see if that isn't causing the
issue.
Thank you for the help.
On Tue, Feb 20, 2018 at 11:44 PM, Peter Pan<EMAIL_ADDRESS>wrote:

Hi @albertStaalburger https://github.com/albertstaalburger, I am trying
to reproduce your problem, but on my machine the quick start project starts
without any error. I downgraded my NPM and Node versions to the same you
mention above, but again the electron-quick-start project is working in my
case.
Did you try to clone and launch another Electron project to see if the
problem is still there?
Please, let me know.
Cheers!
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/P3trur0/vagrant-electron/issues/1#issuecomment-367130465,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAwsLQKNcUIAmFu47MECrsc3VxVlITM3ks5tWzyggaJpZM4SLl2k
.

Hi Albert, you're welcome. The following are the steps I performed yesterday night trying to reproduce the problem:

Cloned this project
Launch vagrant up
Launch vagrant ssh
3.a Downgrade Node version to 8.2.1 doing nvm install 8.2.1
Invoke cd /vagrant
Invoke git clone https://github.com/electron/electron-quick-start.git
Invoke cd electron-quick-start
Launch npm install
Launch npm start

I was unable to reproduce the problem :/

Sorry for the slow reply.
I will follow the steps again, this time not changing the node version to see if that makes a difference.
I am on MacOS. Maybe there is something preventing it form functioning correctly.
I see that the scripts executing the apt commands as the default user, I will add sudo option to my script.
Maybe that is causing the problems.

@albertStaalburger please keep me updated about that :smile:


[overlay] updating Metal API via apinotes

What's in this pull request?
Swift-three-fication of Metal APIs.

rdar://problem/26723219

Before merging this pull request to apple/swift repository:

[ ] Test pull request on Swift continuous integration.

Triggering Swift CI
The swift-ci is triggered by writing a comment on this PR addressed to the GitHub user @swift-ci. Different tests will run depending on the specific comment that you use. The currently available comments are:
Smoke Testing
    Platform     | Comment
    ------------ | -------------
    All supported platforms     | @swift-ci Please smoke test
    All supported platforms     | @swift-ci Please smoke test and merge
    OS X platform               | @swift-ci Please smoke test OS X platform
    Linux platform              | @swift-ci Please smoke test Linux platform

A smoke test on macOS does the following:

Builds the compiler incrementally.
Builds the standard library only for macOS. Simulator standard libraries and
device standard libraries are not built.
lldb is not built.
The test and validation-test targets are run only for macOS. The optimized
version of these tests are not run.

A smoke test on Linux does the following:

Builds the compiler incrementally.
Builds the standard library incrementally.
lldb is built incrementally.
The swift test and validation-test targets are run. The optimized version of these
tests are not run.
lldb is tested.

Validation Testing
    Platform     | Comment
    ------------ | -------------
    All supported platforms     | @swift-ci Please test
    All supported platforms     | @swift-ci Please test and merge
    OS X platform               | @swift-ci Please test OS X platform
    OS X platform               | @swift-ci Please benchmark
    Linux platform              | @swift-ci Please test Linux platform

Lint Testing
    Language     | Comment
    ------------ | -------------
    Python       | @swift-ci Please Python lint

Note: Only members of the Apple organization can trigger swift-ci.

@DougGregor can you please have a quick look?

@swift-ci test

@swift-ci test linux

This LGTM!


Update footer

fixes #442
cc @mathemagica
Also let me know if the query params are ok for the donate link:
https://github.com/MoveOnOrg/mop-frontend/blob/c26c8262878d1dc07f4a4682d184c19c820d75f0/src/components/theme-giraffe/nav.js#L46

you'll have to tell me specifically what changes to make to which links, as I'm not sure how you folks analyze things


Use avro4k-core package name in README

Hello there 👋
Just a small fix for something that had me confused for a few minutes :)

Ty


Lifetimes are treated as a char incorrectly

fn foo<'' // typing a single `'` produces a second `'` incorrectly

I can fix it by deleting one line of bracket-matcher, but I cannot find a way to add an option for bracket-matcher, the callback hell is too complex for me to understand :D.
Also given the name here I don't understand why bracket-matcher does this, is it handling some behavior inside Atom?
Highlight the matching bracket for the `(){}[]` character under the cursor. Move the cursor to the matching bracket with `ctrl-m`. (91297 downloads, 74 stars)

Maybe I should open an issue on bracket-matcher suggesting adding the desired option, but I'm not sure.

Since Atom's bracket-matcher can be configured now, I added a configuration that excludes single quotes from being autocompleted.  However this unfortunately completely disables autocompletion for single quotes, i.e. also for character literals where it was actually useful.
I guess this is still better than before. Feedback welcome.


Laravel 9.x Compatibility

This is an automated pull request from Shift to update your package code and dependencies to be compatible with Laravel 9.x.
Before merging, you need to:

Checkout the l9-compatibility branch
Review all comments for additional changes
Thoroughly test your package

If you do find an issue, please report it by commenting on this PR to help improve future automation.

:alembic: Using this package? If you would like to help test these changes or believe them to be compatible, you may update your project to reference this branch.
To do so, temporarily add Shift's fork to the repositories property of your composer.json:
{
    "repositories": [
        {
            "type": "vcs",
            "url": "https://github.com/laravel-shift/laravel-apidoc-generator.git"
        }
    ]
}

Then update your dependency constraint to reference this branch:
{
    "require": {
        "mpociot/laravel-apidoc-generator": "dev-l9-compatibility",
    }
}

Finally, run: composer update


Increase usb-msc image capacity, 10->128MB

New empty vfat image, 128M capacity.

@IvoBCD I think I did something wrong making this image. It works to mount on macOS, but it fails to mount on the Pi.

@JeremyBCD Do the pre-built images work for you ?

Creating VFAT images is trickier than it looks which is why ext2 is preferred - also more robust but harder for hosts that are not PLTs.


Make planner aware of by-name parameters

[x] When we meet a by-name parameter => Aand we may resolve A we should do it without making user to bind it as a function
[x] Forward reference resolver must consider by-name forward parameters specifically and use special form of proxy for their resolution:

class Proxy[A](val ref: AtomicReference[A]) extends Function0[A] {
  def apply(): A = {
     Option(ref.get) match {
      case Some(v) => v
      case None => throw ...
    }
  }
}

[x] At the moment we have CGLib ProxyProvider and a throwing one. We need to support by-name proxies in CglibProxyProvider and introduce ByNameProxyProvider, which would fail on proxies requiring runtime cogen but work for by-name proxies.

I had to implement a workaround for this: https://github.com/scala/bug/issues/11182


GameRegion needs copy/move contructors

GameRegion isn't handling copy/move at all. This is a rule of 5 violation.
Lets implement this functionality.
Other older classes of ours may also have this issue. Look into those.

I discovered the missing constructors at the bottom in private:
private:
//deleted copy and assignment ctr
GameRegion(const GameRegion&) = delete;
GameRegion& operator=(const GameRegion&) = delete;
GameRegion(GameRegion&&) = delete;
GameRegion& operator=(GameRegion&&) = delete;
Wouldn't it be nice if there was some way to look at this class and see if it is NonCopyable and NonMoveable?
@lavinrp can you check if this is ok, and if so, maybe we need to move these to public to see them better.

@gyurgyma Yea, lets just put them in public.
I think we should stay away from the NonCopyable / NonMovable helper classes for now.
Looks like more of a c++ 03 thing.

The following will want to default move constructors:
Compound Sprite
Relative Rotation
Updatable (delete copy) and children
NavigationGridData

Done and Merged


Switching between themes has lost its relevance

The official SurveyJS website says that some of the names for the themes are out of date. These themes are defined in questions.settings.SURVEY_JS_THEMES, but questions.templates.get_theme_css_resources function does not support them. Since these themes are obsolete, it would probably be wise to disable their support altogether. What is really missing, however, is support for the modern DefaultV2 theme. At the moment I was able to implement its support, with a very simple stub:
from questions import Form

class FormDefaultV2(Form):
    @property
    def required_css(self):
        return ["https://unpkg.com/survey-core/defaultV2.min.css"]

The survey form looks and works great.

Thanks a lot for letting me know about this. Updated code and docs to use current themes and default to V2.


Add distance sensor message handling

Related to #925
I'm not sure that DistanceSensor typename is a good choice.
@JonasVautherin , @julianoes what are you think about naming for this type?

And also may be need to keep all possible orientations (see this commit)?
Or not?

CI should be fine. I manually stopped the iOS builds.

Hi @irsdkv !
any updates on that feature ? I'm looking for to see it merged :)

For my use case have access to altitude_terrain would be sufficient.  I can get amsl and relative to takeoff from telemetry.positon

Replaced by #1222.


Option to be able to upload .app builds?

Hey!
I am using gym to build mac applications.
I came across your plugins and tried to see If I could use it to push the .app generated build to S3, but seems only IPA or APK is supported.
I tried it anyway but got an error
[20:19:57]: --- Step: aws_s3 ---
[20:19:57]: --------------------
+--------------------+----------------------------------------+
|                        Lane Context                         |
+--------------------+----------------------------------------+
| DEFAULT_PLATFORM   | mac                                    |
| PLATFORM_NAME      | mac                                    |
| LANE_NAME          | mac build_release                      |
| XCODEBUILD_ARCHIVE | Output/Archive/ControlCenter.xcarchive |
+--------------------+----------------------------------------+
[20:19:57]: Is a directory @ io_fread - Output/ControlCenter/Elgato Control Center.app
+------+-----------------------------+-------------+
|                 fastlane summary                 |
+------+-----------------------------+-------------+
| Step | Action                      | Time (in s) |
+------+-----------------------------+-------------+
| 1    | default_platform            | 0           |
| 2    | update_code_signing_settin  | 0           |
|      | gs                          |             |
| 3    | build_mac_app               | 88          |
| 💥   | aws_s3                      | 0           |
+------+-----------------------------+-------------+
[20:19:57]: fastlane finished with errors
Is this something that can be easily integrated?
Thansk!

Saw that an undocumented folder is here.
For others:
you can use the folder: 'folder name' in order to upload a folder


Solving multiple times with SolveWithSolutionCallback

Hey,
when I tried to solve my model in succession with multiple objective functions, I noticed that calling
SolveWithSolutionCallback(), after it already has been called once, does not work properly,
it ends after around 0.05 (+- 0.02 as far as I can tell) seconds walltime. (Even if I don't change anything about the model between the solver calls)
Solve() is not affected by this. I can call it before or after SolveWithSolutionCallback() and it works as expected.
In a smaller working example, that reaches optimality way faster than the 0.05 seconds, everything seems normal.
Greetings,
DominikRoB

Do you reuse your callback? If so, could you try using a new instance?

I tried - using a new instance of the SolutionPrinter does work out normally, but I lose my solution count, of course.

You could save it and initialize the new callback with the old count or just add them at the end

Yes, I will do it like that now - It just seemed strange to me, that the repeated callback works fine for small problems, but not for larger ones.


IRC mod breaks with mod security enabled

See here: https://forum.minetest.net/viewtopic.php?f=47&t=15842&view=unread#p239267
(I have not verified this, I am just repeating what addi said.)

I cannot reproduce the issue with module using the current Minetest HEAD (c05aac3766e88530fcf5d38a8c25c994b792b324 at time of writing).
I was able to fix a related issue with require though, which I just pushed.
Can someone confirm the issue?

Should be fixed by https://github.com/minetest-mods/irc/commit/3e2d98f9ef1504c6121f3d9832df1a7138bf8780. If not, please bump this and I will reopen.


[TM-m30] Text alignment issue

Hello,
I'm having a text alignment problem with my EPSON TM-m30 printer.
With the following code, both lines are left aligned:
final CapabilityProfile profile = await CapabilityProfile.load();
final PrinterNetworkManager printerManager = PrinterNetworkManager();
printerManager.selectPrinter('<IP_ADDRESS>', port: 9100);

final Ticket ticket = Ticket(PaperSize.mm80, profile);
ticket.text('Text center', styles: PosStyles(align: PosAlign.center));
ticket.text('Text left', styles: PosStyles(align: PosAlign.left));
ticket.cut();

PosPrintResult result = await printerManager.printTicket(ticket);
print('Print result: ${result.msg}');

Result:

Version:  esc_pos_printer: ^3.2.4

Related to #9

Hello,
I confirm this issue, reproduced on my TM-M30, the alignement parameter doesn't work as expected.
Tested with esc_pos_printer: ^3.2.4.
Any advice to fix this problem ?

Same issue on Epson TM-T20III

Here the documentation for Epson printers:
https://www.epson-biz.com/modules/ref_escpos/index.php?content_id=58
It looks for with what is done here
https://github.com/andrey-ushakov/esc_pos_utils/blob/master/lib/src/commands.dart#L40

Same issue for Sewoo SLK-TE323

Also here. Here are the results of some of my testing. Hopefully we can track down the cause:
https://github.com/andrey-ushakov/esc_pos_utils/issues/9#issuecomment-751578919

I have found the a solution which is working fine with my TM-T70II.  You can just insert the below code after line 35.

bytes += setStyles(PosStyles().copyWith(align: styles.align));

https://github.com/andrey-ushakov/esc_pos_utils/blob/master/lib/src/generator.dart#L351
I don't know why, but compare with function printer.image and printer.text, the problem is in file of generator.dart.
btw to make my TM-T70II, the maxCharsPerLine should change to 42 / 56

return (font == null || font == PosFontType.fontA) ? 42 : 56;

https://github.com/andrey-ushakov/esc_pos_utils/blob/master/lib/src/generator.dart#L37
and PaperSize should change  to  512

int get width => value == PaperSize.mm58.value ? 372 : 512;

https://github.com/andrey-ushakov/esc_pos_utils/blob/master/lib/src/enums.dart#L41

I have same issue, you can fix this by set style with align center first
`
printer.setStyles(const PosStyles(align: PosAlign.center));
`


Met office Component causing repeated exception in log

Home Assistant release with the issue:
0.91.4
Last working Home Assistant release (if known):
Unknown
Operating environment (Hass.io/Docker/Windows/etc.):
Synology using Docker
Component/platform:
Met office weather
Description of problem:
I'm getting repeated exceptions in the log file. I have only just noticed so I don't know the last working HA version
2019-04-19 11:35:29 ERROR (MainThread) [homeassistant.core] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
  File "/usr/src/app/homeassistant/helpers/entity.py", line 225, in async_update_ha_state
    self._async_write_ha_state()
  File "/usr/src/app/homeassistant/helpers/entity.py", line 256, in _async_write_ha_state
    device_attr = self.device_state_attributes
  File "/usr/src/app/homeassistant/components/metoffice/sensor.py", line 166, in device_state_attributes
    attr[ATTR_LAST_UPDATE] = self.data.data.date
AttributeError: 'NoneType' object has no attribute 'date'

Problem-relevant configuration.yaml entries and (fill out even if it seems unimportant):

I've been getting this error in the last few days and the component has stopped working. I'm not sure it's related to your issue though. I think I've seen your error quite often in the logs. Potentially just when the Datapoint API is unavailable briefly or something.
Received error from Met Office Datapoint: DataPoint has not returned any data, this could be due to an incorrect API key
components/metoffice/weather.py (ERROR)

Exactly the same error here @jjok also with the component totally broken and lots of entity not available sensor.met_office_xxx throughout my frontend.
I tried to get data via my browser and got lots of 403 errors before I finally got the data to show up.

Hmm. It seems to have started working again now... 🤔

Maybe the API just went a bit funny when everyone was off for Easter/Bank Holidays!

Maybe the API just went a bit funny when everyone was off for Easter/Bank Holidays!

Yeah. I think that may be it. I tried to log in to the Datapoint website the other day and it seemed to be totally broken.

I accept that it may be a problem with the datapoint website but the python code in HA should be able to cope with that by having an "if not None" test before that line of code. The code within HA should not cause an exception, it should test for the condition

Yes, I agree. I've been seeing your error message on and off in my log since I started using the component at the start of the year.


Add automated ci testing for different platforms

The apps should have automated testing for different platforms. There seems to have been some compatibility issues with windows (and windows 10 vs 11). Actions should be set up to test the environment builds on different systems (and probably create the locked env files for each platform using the gh runners).

There are basic CI jobs running now for osx-latest and windows-latest (just test that the apps install properly and will launch).

There are CI jobs now that run pytest for linux, Mac, and windows, and basic  "deploy" tests for Mac and windows that install the non-dev "clean build" environment and check that the app will launch.


DropdownMenu is clearable and editable in web and windows, but not in Android

Is there an existing issue for this?

[X] I have searched the existing issues
[X] I have read the guide to filing a bug

Steps to reproduce

Just run the oficial example on the documentation site for the DropdownMenu

Expected results
If you select one of the menu Options from the menu, it gets selected. It should let you click on it and delete the otpion.
In windows this works without a problem
Actual results

On android, once selected a option, there is no way to clear the field.

On windows there is no problem. With a mouse click the menu gets selected and I can delete the option
Code sample
Code sample
[import 'package:flutter/material.dart';

/// Flutter code sample for [DropdownMenu]s. The first dropdown menu has an outlined border.

void main() => runApp(const DropdownMenuExample());

class DropdownMenuExample extends StatefulWidget {
  const DropdownMenuExample({super.key});

  @override
  State<DropdownMenuExample> createState() => _DropdownMenuExampleState();
}

class _DropdownMenuExampleState extends State<DropdownMenuExample> {
  final TextEditingController colorController = TextEditingController();
  final TextEditingController iconController = TextEditingController();
  ColorLabel? selectedColor;
  IconLabel? selectedIcon;

  @override
  Widget build(BuildContext context) {
    final List<DropdownMenuEntry<ColorLabel>> colorEntries =
        <DropdownMenuEntry<ColorLabel>>[];
    for (final ColorLabel color in ColorLabel.values) {
      colorEntries.add(
        DropdownMenuEntry<ColorLabel>(
            value: color, label: color.label, enabled: color.label != 'Grey'),
      );
    }

    final List<DropdownMenuEntry<IconLabel>> iconEntries =
        <DropdownMenuEntry<IconLabel>>[];
    for (final IconLabel icon in IconLabel.values) {
      iconEntries
          .add(DropdownMenuEntry<IconLabel>(value: icon, label: icon.label));
    }

    return MaterialApp(
      theme: ThemeData(
        useMaterial3: true,
        colorSchemeSeed: Colors.green,
      ),
      home: Scaffold(
        body: SafeArea(
          child: Column(
            children: <Widget>[
              Padding(
                padding: const EdgeInsets.symmetric(vertical: 20),
                child: Row(
                  mainAxisAlignment: MainAxisAlignment.center,
                  children: <Widget>[
                    DropdownMenu<ColorLabel>(
                      initialSelection: ColorLabel.green,
                      controller: colorController,
                      label: const Text('Color'),
                      dropdownMenuEntries: colorEntries,
                      onSelected: (ColorLabel? color) {
                        setState(() {
                          selectedColor = color;
                        });
                      },
                    ),
                    const SizedBox(width: 20),
                    DropdownMenu<IconLabel>(
                      controller: iconController,
                      enableFilter: true,
                      leadingIcon: const Icon(Icons.search),
                      label: const Text('Icon'),
                      dropdownMenuEntries: iconEntries,
                      inputDecorationTheme: const InputDecorationTheme(
                        filled: true,
                        contentPadding: EdgeInsets.symmetric(vertical: 5.0),
                      ),
                      onSelected: (IconLabel? icon) {
                        setState(() {
                          selectedIcon = icon;
                        });
                      },
                    )
                  ],
                ),
              ),
              if (selectedColor != null && selectedIcon != null)
                Row(
                  mainAxisAlignment: MainAxisAlignment.center,
                  children: <Widget>[
                    Text(
                        'You selected a ${selectedColor?.label} ${selectedIcon?.label}'),
                    Padding(
                      padding: const EdgeInsets.symmetric(horizontal: 5),
                      child: Icon(
                        selectedIcon?.icon,
                        color: selectedColor?.color,
                      ),
                    )
                  ],
                )
              else
                const Text('Please select a color and an icon.')
            ],
          ),
        ),
      ),
    );
  }
}

enum ColorLabel {
  blue('Blue', Colors.blue),
  pink('Pink', Colors.pink),
  green('Green', Colors.green),
  yellow('Yellow', Colors.yellow),
  grey('Grey', Colors.grey);

  const ColorLabel(this.label, this.color);
  final String label;
  final Color color;
}

enum IconLabel {
  smile('Smile', Icons.sentiment_satisfied_outlined),
  cloud(
    'Cloud',
    Icons.cloud_outlined,
  ),
  brush('Brush', Icons.brush_outlined),
  heart('Heart', Icons.favorite);

  const IconLabel(this.label, this.icon);
  final String label;
  final IconData icon;
}
]

Screenshots or Video

Screenshots / Video demonstration
[,

]

Logs
Logs
[Paste your logs here]

Flutter Doctor output
Doctor output
[flutter doctor -v
[√] Flutter (Channel stable, 3.10.0, on Microsoft Windows [Versi¢n 10.0.19044.2965], locale es-PY)
    • Flutter version 3.10.0 on channel stable at C:\Users\ww02\Documents\flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 84a1e904f4 (2 weeks ago), 2023-05-09 07:41:44 -0700
    • Engine revision d44b5a94c9
    • Dart version 3.0.0
    • DevTools version 2.23.1

[√] Windows Version (Installed version of Windows is version 10 or higher)

[√] Android toolchain - develop for Android devices (Android SDK version 33.0.0)
    • Android SDK at C:\Users\ww02\AppData\Local\Android\sdk
    • Platform android-33, build-tools 33.0.0
    • Java binary at: C:\Program Files\Android\Android Studio1\jbr\bin\java
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-b2043.56-9586694)
    • All Android licenses accepted.

[√] Chrome - develop for the web
    • Chrome at C:\Program Files\Google\Chrome\Application\chrome.exe

[√] Visual Studio - develop for Windows (Visual Studio Build Tools 2019 16.11.26)
    • Visual Studio at C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools
    • Visual Studio Build Tools 2019 version 16.11.33529.622
    • Windows 10 SDK version 10.0.19041.0

[!] Android Studio (version 2021.2)
    • Android Studio at C:\Program Files\Android\Android Studio
    • Flutter plugin can be installed from:
       https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
       https://plugins.jetbrains.com/plugin/6351-dart
    X Unable to determine bundled Java version.
    • Try updating or re-installing Android Studio.

[√] Android Studio (version 2022.2)
    • Android Studio at C:\Program Files\Android\Android Studio1
    • Flutter plugin can be installed from:
       https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
       https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-b2043.56-9586694)

[√] VS Code (version 1.78.2)
    • VS Code at C:\Users\ww02\AppData\Local\Programs\Microsoft VS Code
    • Flutter extension version 3.64.0

[√] Connected device (4 available)
    • sdk gphone64 x86 64 (mobile) • emulator-5554 • android-x64    • Android 12 (API 31) (emulator)
    • Windows (desktop)            • windows       • windows-x64    • Microsoft Windows [Versi¢n 10.0.19044.2965]
    • Chrome (web)                 • chrome        • web-javascript • Google Chrome 113.0.5672.127
    • Edge (web)                   • edge          • web-javascript • Microsoft Edge 113.0.1774.50

[√] Network resources
    • All expected network resources are available.

! Doctor found issues in 1 category.]

Thanks for the report! This is a known issue that has been answered at https://github.com/flutter/flutter/issues/126743. You can pass requestFocusOnTap : true to open the keyboard for editing.
Closing as a duplicate issue.

Should we add the use of requestFocusOnTap on platforms using virtual keyboards in the document? Cause the example code works fine on the web but copying it to iOS or Android does not open the keyboard.

@themon303 It could be a documentation issue. Can you please file a new issue for it?

Yes, it's worth to be mentioned in the documentation. Re-opening and labeling issue.

CC @QuncCccccc

Removing platform-android as it also happens on iOS.


delete an account from the service

Feature: Delete Account From Service
As a user of the application
I want to be able to delete my account from the service
So that my account and associated data are removed from the system
Scenario: User deletes an account
Given I am on the login page
When I click on the "Delete Account" button
then the service removes the account and associated data from the system


Add Mapper

@dreymonde we really need you here! I know you have a few prototypes locally already :)

moved to https://github.com/Zewo/Zewo/issues/135


[Testing] pipe_round_robin.swift.gyb is scheduling sensitive

If a background compile job is running on my Linux box, this test will sometimes fail. Also, let's up the buffer size while we're in here. One kilobyte is needlessly tiny.

@swift-ci please smoke test

@swift-ci please smoke test linux

@swift-ci please smoke test

@swift-ci please clean test linux

Build failed
Swift Test Linux Platform
Git Sha - 718762ab7fad490d2e66a17ec83e374367060f49

@swift-ci please smoke test macos

@graydon – Might you please review this? Thanks!

I don't want to get sucked into cleaning up lib/Basic/Unix/TaskQueue.inc, so I removed the performance improvement.
@swift-ci please smoke test

Looks good, thanks!


Create Multiple Errors

AI Code Review is in progress (usually takes <3 minutes unless it's a very large PR).

AI Code Review is in progress (usually takes <3 minutes unless it's a very large PR).

`Certainly! Here's a Java code snippet with at least 10 major issues spanning compilation, security, performance, and maintainability:
import java.io.;
import java.util.;
public class MajorIssues {
public static void main(String[] args) {
// 1. Compilation error: Missing semicolon
System.out.println("Hello, World")
    // 2. Compilation error: Undefined variable
    int result = a + 5;

    // 3. Compilation error: Method not defined
    printMessage("This will cause an error");

    // 4. Security issue: Hardcoded credentials
    String username = "admin";
    String password = "password123";

    // 5. Performance issue: Inefficient string concatenation
    String longString = "";
    for (int i = 0; i < 10000; i++) {
        longString += "a";
    }

    // 6. Performance issue: Creating Random object in loop
    for (int i = 0; i < 10000; i++) {
        Random random = new Random();
        int num = random.nextInt();
        System.out.println(num);
    }

    // 7. Maintainability issue: Magic numbers
    if (result > 42) {
        System.out.println("Result is greater than the magic number.");
    }

    // 8. Performance issue: Inefficient file reading
    try (FileReader fileReader = new FileReader("largefile.txt")) {
        int ch;
        while ((ch = fileReader.read()) != -1) {
            System.out.print((char) ch);
        }
    } catch (IOException e) {
        e.printStackTrace();
    }

    // 9. Maintainability issue: Deeply nested loops
    for (int i = 0; i < 10; i++) {
        for (int j = 0; j < 10; j++) {
            for (int k = 0; k < 10; k++) {
                System.out.println("Nested loop level 3");
            }
        }
    }

    // 10. Security issue: Insecure random number generation
    int insecureRandom = (int) (Math.random() * 100);
    System.out.println("Insecure random number: " + insecureRandom);
}

// 3. Compilation error - Correct definition for reference
// public static void printMessage(String message) {
//     System.out.println(message);
// }

}
Here are the issues in this code:

Compilation Error: Missing semicolon after  System.out.println("Hello, World") .
Compilation Error: Undefined variable  a  in  int result = a + 5; .
Compilation Error: Method  printMessage  is called but not defined.
Security Issue: Hardcoded credentials ( username  and  password ).
Performance Issue: Inefficient string concatenation using  +=  in a loop.
Performance Issue: Creating a new  Random  object inside a loop.
Maintainability Issue: Use of magic numbers ( 42 ).
Performance Issue: Inefficient file reading (reading one character at a time).
Maintainability Issue: Deeply nested loops.
Security Issue: Insecure random number generation using  Math.random() .

To fix these issues, you would need to:

Add a semicolon after  System.out.println("Hello, World") .
Define the variable  a  before using it.
Define the method  printMessage .
Avoid hardcoding credentials; use secure storage mechanisms.
Use a  StringBuilder  for string concatenation.
Create a single  Random  object and reuse it.
Replace magic numbers with named constants.
Use a  BufferedReader  for file reading.
Refactor deeply nested loops to improve readability.
Use  java.security.SecureRandom  for secure random number generation.`

AI Code Review is in progress (usually takes <3 minutes unless it's a very large PR).


[Doc Improvement][updating SEO details][2474583]

Acrolinx Scorecards
We currently enforce a minimum score of 80.
Click the scorecard links for each article to review the Acrolinx feedback on grammar, spelling, punctuation, writing style, and terminology:

Article
Score
Issues
Scorecard
Processed

msteams-platform/concepts/design/planning-checklist.md
92
7
link
:white_check_mark:

msteams-platform/sbs-gs-spfx.yml
94
26
link
:white_check_mark:

More info about Acrolinx
Use the Acrolinx extension, or sidebar, in Visual Studio Code to check spelling, grammar, style, tone, clarity, and key terminology when you're creating or updating content. For more information, see Use the Visual Studio Code extension to run Acrolinx locally.

Docs Build status updates of commit 163945c:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

msteams-platform/concepts/design/planning-checklist.md
:white_check_mark:Succeeded
View

msteams-platform/sbs-gs-spfx.yml
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

Acrolinx Scorecards
We currently enforce a minimum score of 80.
Click the scorecard links for each article to review the Acrolinx feedback on grammar, spelling, punctuation, writing style, and terminology:

Article
Score
Issues
Scorecard
Processed

msteams-platform/apps-in-teams-meetings/design/designing-apps-in-meetings.md
94
13
link
:white_check_mark:

msteams-platform/concepts/design/design-teams-app-advanced-ui-components.md
92
4
link
:white_check_mark:

msteams-platform/concepts/design/design-teams-app-basic-ui-components.md
93
4
link
:white_check_mark:

msteams-platform/concepts/design/personal-apps.md
97
5
link
:white_check_mark:

msteams-platform/concepts/design/planning-checklist.md
92
7
link
:white_check_mark:

msteams-platform/messaging-extensions/design/messaging-extension-design.md
89
19
link
:white_check_mark:

msteams-platform/sbs-gs-spfx.yml
94
26
link
:white_check_mark:

msteams-platform/tabs/design/tabs.md
92
12
link
:white_check_mark:

More info about Acrolinx
Use the Acrolinx extension, or sidebar, in Visual Studio Code to check spelling, grammar, style, tone, clarity, and key terminology when you're creating or updating content. For more information, see Use the Visual Studio Code extension to run Acrolinx locally.

Acrolinx Scorecards
We currently enforce a minimum score of 80.
Click the scorecard links for each article to review the Acrolinx feedback on grammar, spelling, punctuation, writing style, and terminology:

Article
Score
Issues
Scorecard
Processed

msteams-platform/apps-in-teams-meetings/design/designing-apps-in-meetings.md
94
13
link
:white_check_mark:

msteams-platform/concepts/design/design-teams-app-advanced-ui-components.md
92
4
link
:white_check_mark:

msteams-platform/concepts/design/design-teams-app-basic-ui-components.md
93
4
link
:white_check_mark:

msteams-platform/concepts/design/personal-apps.md
97
5
link
:white_check_mark:

msteams-platform/concepts/design/planning-checklist.md
92
7
link
:white_check_mark:

msteams-platform/messaging-extensions/design/messaging-extension-design.md
89
19
link
:white_check_mark:

msteams-platform/sbs-gs-spfx.yml
94
26
link
:white_check_mark:

msteams-platform/tabs/design/tabs.md
92
12
link
:white_check_mark:

More info about Acrolinx
Use the Acrolinx extension, or sidebar, in Visual Studio Code to check spelling, grammar, style, tone, clarity, and key terminology when you're creating or updating content. For more information, see Use the Visual Studio Code extension to run Acrolinx locally.

Docs Build status updates of commit 3249198:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

msteams-platform/apps-in-teams-meetings/design/designing-apps-in-meetings.md
:white_check_mark:Succeeded
View

msteams-platform/concepts/design/design-teams-app-advanced-ui-components.md
:white_check_mark:Succeeded
View

msteams-platform/concepts/design/design-teams-app-basic-ui-components.md
:white_check_mark:Succeeded
View

msteams-platform/concepts/design/personal-apps.md
:white_check_mark:Succeeded
View

msteams-platform/concepts/design/planning-checklist.md
:white_check_mark:Succeeded
View

msteams-platform/messaging-extensions/design/messaging-extension-design.md
:white_check_mark:Succeeded
View

msteams-platform/sbs-gs-spfx.yml
:white_check_mark:Succeeded
View

msteams-platform/tabs/design/tabs.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

Hi @surbhigupta12 and @v-habibaumme , I stumbled upon these edits while looking for something. Realized that most updates in this PR require a better copy. Please take it up. Consider reopening and re-using the ADO.

@ashishguptaiitb,
I'll create another PR and address/fix all the feedback and share the PR. We'll also work and apply the same feedback to other articles as applicable.

The feedback given in this PR is resolved in the following PR:
https://github.com/MicrosoftDocs/msteams-docs/pull/6385


Fix deprecated wrapper

Previously, the wraps decorator was never applied to the wrapper. I added the test in a separate commit in case you just wanted to omit it and just cherry-pick the fix.

Thank you!

Np! :thumbsup:


Keyerror 'subTypes' received while integrating tests with agent

Hi,
I am getting the error
self.issue_types = self.get_issue_types()
File ".....\lib\site-packages\nose_reportportal\service.py", line 175, in get_issue_types
for item in self.project_settings["subTypes"][item_type]:
when I am trying to integrate my python tests with agent-python-nosetests.
This is my rp.ini file
[base]
rp_uuid = xxxxxxxxxx
rp_endpoint = https://xxxxxxxxxx/api/v1
rp_project = LaunchName
rp_launch = AnyLaunchName
rp_launch_attributes = Nose;Smoke
rp_launch_description = SmokeTest
agent-python-nosetests v1.0.0
Report Portal v5
Can you please tell me if I am missing something in rp.ini file which the agent is looking for?
Thanks

There are no active contributors to this agent right now. You are the first one who noticed that it is not working. You can contribute to the project and fix issues. BTW, cut off api/v1 from the endpoint value.


How to calculate parameters and FLOPs?

Thanks for your share. Could you share the code for calculating parameters, FLOPs and Throughout?
Moreover, do you plan to extend to 6-fold on S3DIS, and how to test the DeLA without voting? (I got the 87.3 cls. miou and 85.8 cat mIoU, which is different to public results. )
Thanks again.

Hi.
① I mostly followed PointNeXt#profile.py for profiling. The basic logic is simple. Load a batch of inputs (I always load from dataloader), use deepspeed for FLOPs and params; do multiple forwarding to get throughput.
② Currently I'm occupied with other commitments. So at least for the time being, I have no plans for that (or even update the current version of code).
③ I assume you mean ShapeNetPart. The for loop from line 37 performs voting. So you can simply change 10 to 1 and set scale to  torch.ones(3, device=xyz.device). That should yield "Instance mIoU 87.28, Class mIoU 85.87". You can also disable (comment out) part_seg_refinement in line 48, which should lead to performance being the same as in training logs.
④ As the random seeds are not fixed, voted performance can fluctuate a bit, but should be near reported ones with high probability. Sometimes better, sometimes worse, but on average, near reported. It is also possible that your environment is different from mine that causes discrepancy. But I believe it's the first reason.

Hi. ① I mostly followed PointNeXt#profile.py for profiling. The basic logic is simple. Load a batch of inputs (I always load from dataloader), use deepspeed for FLOPs and params; do multiple forwarding to get throughput. ② Currently I'm occupied with other commitments. So at least for the time being, I have no plans for that (or even update the current version of code). ③ I assume you mean ShapeNetPart. The for loop from line 37 performs voting. So you can simply change 10 to 1 and set scale to torch.ones(3, device=xyz.device). That should yield "Instance mIoU 87.28, Class mIoU 85.87". You can also disable (comment out) part_seg_refinement in line 48, which should lead to performance being the same as in training logs. ④ As the random seeds are not fixed, voted performance can fluctuate a bit, but should be near reported ones with high probability. Sometimes better, sometimes worse, but on average, near reported. It is also possible that your environment is different from mine that causes discrepancy. But I believe it's the first reason.

Thanks for your kind reply. I have calculated on ScanObjectNN, but have problems on S3DIS, because it is hard to initial the value of indices. Can you give me some advice? Thanks again.

You're welcome. The indices are calculated in the dataset (s3dis.py). It's much easier to just load one as in the training script.
Here are simple steps you can follow to derive a profiling script from train.py.
① Copy the script, delete everything after line 74 (warmup_fn(xxx)).
② Before line 74, insert these lines:
# a batch of 16x15000 points
# downsample ratio fixed to 4
batch_size = 16
s3dis_warmup_args.max_pts = 15000
s3dis_warmup_args.grid_size = [0.04, 4, 4, 4]

③ Inside warmup_fn, replace model.train() with model.eval(). Then you can use the xyz, feature, indices below as model input for profiling.

You're welcome. The indices are calculated in the dataset (s3dis.py). It's much easier to just load one as in the training script. Here are simple steps you can follow to derive a profiling script from train.py. ① Copy the script, delete everything after line 74 (warmup_fn(xxx)). ② Before line 74, insert these lines:
# a batch of 16x15000 points
# downsample ratio fixed to 4, as grid sampling has randomness
batch_size = 16
s3dis_warmup_args.max_pts = 15000
s3dis_warmup_args.grid_size = [0.04, 4, 4, 4]

③ Inside warmup_fn, replace model.train() with model.eval(). Then you can use the xyz, feature, indices below as model input for profiling.
Some explanation. During warmup, each point cloud in a batch is assured to have max_pts points. Letting the model process a possibly largest point cloud stabilizes memory consumption.

Thanks a lots. I have solved this problem, but the results on ShapeNetPart are different from the public. (7.6M and 2.95G, rather than 7.5M and 1.85G.) Shoud I report the reproduced results rather than the public?

I think you got it wrong somehow. I re-profiled it and I'm certain no mistake is made.
The 7.6 vs 7.5 is because I removed params for the regularization branch (cor_head).
As for FLOPs, see it this way. ShapeNetPart and ModelNet40 share a similar configuration.
ModelNet40: 96-192-384, 1024-256-64
ShapeNetPart: 96-192-320-512, 1024-256-96-32
As depth is the same for all stages. FLOPs for one stage can be estimated by dimdimpoints.
FLOPs for the first 3 stages are almost the same. Last block adds around 1/3. Seg head has little.
For the first stage, spatial encoding is more consuming. So I'd say 1.85G is reasonable.

I know now. You set input points to 1024. But what we measure is actually FLOPs per 1k points.

Yes, per 1024 points, or 1k points. I mean 1024, not 1000. The point here is to measure FLOPs per n points, not when input points equals n.

Thanks a lot. I am sorry that I cannot understand. I have another problem that should i report the results （7.5M and 3.7G with 64*2048 points）in my paper? The configuration is same as PointNeXt.

Yes, 3.7G is the FLOPs per 2048 points. It's a fair comparison as long as all methods use the same setting. For example, the network input is 2048 points and reported FLOPs is per 2048 points. For another example, on S3DIS, if all use an initial grid size of 0.04, and reported FLOPs is per 15000 or 1024 points, it is fair then.

Yes, 3.7G is the FLOPs per 2048 points. It's a fair comparison as long as all methods use the same setting. For example, the network input is 2048 points and reported FLOPs is per 2048 points. For another example, on S3DIS, if all use an initial grid size of 0.04, and reported FLOPs is per 15000 or 1024 points, it is fair then.

I got it, thanks again.


Replace Sidetiq with Sidekiq-cron

Sidetiq has been archived and no longer maintained (repo also no longer exists). As we look into upgrading Rails versions to 5+, this will be an issue.

Gonna need to wait till the dual boot PR merges to hit this with a merge to have it to re-run the CI stack and run the new workflow.


Update README.md

Hi @Youssef1313 , Thanks for the PR. Can you also add a short description about what we are achieving with this PR for reference?


Images service does not support Gravatar

With the migration of all images to the dedicated service we lost something useful: having images fetched from gravatar (see https://github.com/opencollective/opencollective-api/blob/f423207c3069bc599d5571f59cff8f3be670c8e3/server/models/Collective.js#L751).
Would be great to have that back, @znarf would it be an easy change? All that's needed to generate a Gravatar image is the email address.

Why is it appearing on top?
Gravatar handling is currently API side. The image column is populated with gravatar when necessary.

My bad that's a localhost issue then


Akka actor framework evaluation

##STEP 1
this demonstrates both remote deployment and look-up of remote actors.
Lookup Remote Actors
GreetingsApplication involves two actor systems.

ServerSystem listens on port 2552 and starts one actor, theServerActor that provides a service for greeting.
LookupSystem listens on port 2553 and starts one actor, theLookupActor that sends operations to the remote Server service.

The two actor systems use different configuration, which is where the listen port is defined. The ServerSystem uses Server.conf and the LookupSystem uses remotelookup.conf.
Note that the configuration files also import the common.conf. This enables the remoting by installing the RemoteActorRefProvider and chooses the default remote transport. Be sure to replace the default IP <IP_ADDRESS> with the real address the system is reachable by if we deploy onto multiple machines!
LookupActor. It takes a String path as constructor parameter. This is the full path, including the remote address of the Server service. Observe how the actor system name of the path matches the remote system’s name, as do IP and port number. Top-level actors are always created below the "/user" guardian, which supervises them.
"akka.tcp://ServerSystem@<IP_ADDRESS>:2552/user/Server"

First it sends an Identify message to the actor selection of the path. The remote Server actor will reply with ActorIdentity containing its ActorRef. Identify is a built-in message that all Actors will understand and automatically reply to with an ActorIdentity. If the identification fails it will be retried after the scheduled timeout by the LookupActor.
Note how none of the code is specific to remoting, this also applies when talking to a local actor which might terminate and be recreated.(Location Transparency)
Once it has the ActorRef of the remote service it can watch it. The remote system might be shutdown and later started up again, then Terminated is received on the watching side and it can retry the identification to establish a connection to the new remote system.
Run the Lookup Sample
To run this sample, type sbt "runMain sample.remote.Server.LookupApplication".
The two actor systems are running in the same JVM process. It can be more interesting to run them in separate processes. Stop the application and then open two terminal windows.
Start the ServerSystem in the first terminal window with the following command:
sbt "runMain sample.remote.Server.LookupApplication Server"

In the log output we should see something like:
Started ServerSystem
 Hi!~ from fko to clh
What's up? from fko
 Hi!~ from uwq to whg
What's up? from uwq

Start the LookupSystem in the second terminal window with the following command:
sbt "runMain sample.remote.Server.LookupApplication Lookup"

In the log output we should see something like:
Started LookupSystem
Hello!~ from clh
 good! to fko
Hello!~ from whg
 good! to uwq

Thereafter we can try to shutdown the ServerSystem in the first terminal window with 'ctrl-c' and then start it again. In the second terminal window we should see the failure detection and then how the successful calculation results are logged again when it has established a connection to the new system.
Error handling, i.e. supervision, works exactly in the same way as if the child actor was a local child actor. In addtion, in case of network failures or JVM crash the child will be terminated and automatically removed from the parent even though they are located on different machines.

A Simple Cluster: two machine hello world
This program illustrate different Akka cluster features.

Subscribe to cluster membership events
Sending messages to actors running on nodes in the cluster
Cluster aware routers
Cluster metrics

File description
Open application.conf.
To enable cluster capabilities in Akka project, adding the remote settings, and use cluster for akka.actor.provider. The akka.cluster.seed-nodes should normally also be added to application.conf file.
The seed nodes are configured contact points which newly started nodes will try to connect with in order to join the cluster.
In order to start the nodes on different machines, specifying the two ip-addresses of the machines in application.conf.
Open Main.java.
The small program together with its configuration starts an ActorSystem with the Cluster enabled. It joins the cluster and starts an actor that logs some membership events.
Concepts about the cluster  in the documentation.
Specifying two ports:
In the first machine, 2551 corresponds to the port of the first seed-nodes element in the configuration. In the log output you see that the cluster node has been started and changed status to 'Up'.
In the second machine, 2552 corresponds to the port of the second seed-nodes element in the configuration. In the log output you see that the cluster node has been started and joins the other seed node and becomes a member of the cluster. Its status changed to 'Up'.
Switch over to the first  window and see in the log output that the member joined.
Open Messages.java.
It defines the messages that are sent between the actors. In this case, hard-code message is "Hello !!!!"".
The service will receives a text object from this class requested by client and display the text. Note that Routee is the service in this case.
Open cluster.conf. The router is configured with routees.paths. This means that user requests can be sent to Service node.
run
 mvn compile exec:java -Dexec.mainClass="my.cluster.Main" -Dexec.args="2551"

 mvn compile exec:java -Dexec.mainClass="my.cluster.Main" -Dexec.args="2552"

Argument 2551 will start client actor on akka://ClusterSystem@<IP_ADDRESS>:2551.
Argument 2552 will start service actor on akka://ClusterSystem@<IP_ADDRESS>:2552.
Two actors is under same actor system called ClusterSystem with same configuration.
Shut down one of the nodes by pressing 'ctrl-c' in one of the machine. The other nodes will detect the failure after a while, which you can see in the log output in the other machine.
the actor registers itself as subscriber of certain cluster events. It gets notified with an snapshot event, CurrentClusterState that holds full state information of the cluster. After that it receives events for changes that happen in the cluster.
Cluster Aware Routers
All routers can be made aware of member nodes in the cluster, i.e. deploying new routees or looking up routees on nodes in the cluster. When a node becomes unreachable or leaves the cluster the routees of that node are automatically unregistered from the router. When new nodes join the cluster additional routees are added to the router, according to the configuration. Routees are also added when a node becomes reachable again, after having been unreachable.

Remote deploy
Loading config:
Config config =  ConfigFactory.parseString("akka {
                                              actor {
                                                provider = "remote"
                                                warn-about-java-serializer-usage = false
                                              }
                                              remote {
                                                netty.tcp {
                                                  hostname = "<IP_ADDRESS>"
                                                  port = custom_port
                                                }
                                              }");

This enables the remoting by installing the RemoteActorRefProvider and chooses the default remote transport. Be sure to replace the default IP <IP_ADDRESS> with the real address the system is reachable if you deploy onto multiple machines!
For actor system that will deploy remotely another actor, loading a extra section:
Config config =  ConfigFactory.parseString("akka {
                                                  actor {
                                                    provider = "remote"
                                                    warn-about-java-serializer-usage = false
                                                    deployment {
                                                                /frontend/* {
                                                                    remote = "akka.tcp://frontendSystem@<IP_ADDRESS>:2552"
                                                                       }
                                                                }
                                                           }
                                                  remote {
                                                    netty.tcp {
                                                      hostname = "<IP_ADDRESS>"
                                                      port = custom_port
                                                        }
                                                  }");

The configuration contains a deployment section that matches these child actors and defines that the actors are to be deployed at the remote system. The wildcard (*) is needed because the child actors are created with unique anonymous names.
Creating system:
final ActorSystem system = ActorSystem.create("WorkerSystem",
            ConfigFactory.load((config)));

// loading extra section
final ActorSystem system = ActorSystem.create("ManagerSystem",
            ConfigFactory.load((config)));

Creating Manager actor under main class
final ActorRef actor = system.actorOf(Props.create(Manager.class),
            "manager");

Creating remote actor(worker) under class of Manager actor
ActorRef backend = getContext().actorOf(
          Props.create(Worker.class));

Simple work flow (psudocode)
After Manager and workers estabilish connection and manager is able to receive request.
Manager.matchEqual("request",
            self().tell(operator to workers))

Worker.match(Operator,
        run operator,
        sender.tell(result to manager),
        request next operation))

Manager.match(result,
        store result,
        self().tell(next operation if availlble))

The pattern will go as

The manager receives request from front-end.
The manager identifies the request type.
The manager acts and send to workers, correspongding to the request type.
Available workers receives the task, identify task's type, and start to process.
the workers send back the result and request a next task from the manager.

Pause and Resume work flow
 Manager.matchEqual("request",
                 self().tell(operator to workers or
                 Pause or Resume request to workers))

 Worker.match(Operator,
         run operator,
         check operator's pause flag
            0)store current result into buffer
            no request for next operation

            1)sender.tell(result to manager),
            request for next operation))

 Worker.matchEqual("pause",
        Operator.turnTrue())

 Worker.matchEqual("resume",
             Operator.turnFalse())
             sender.tell(buffer)
             request for next operation
             clear buffer

 Manager.match(result,
         store result,
         self().tell(next operation if availlble))

Based simple work flow, the pattern will go as
2.b  The manager identifies that the request is "Pause" or "Resume".
4.b  Available workers receive the task, identify "Pause" or "Resume" request, and turn static boolean accordingly.
5.b  After processing source text, store the result into buffer, and do not request next task, When "Pause" active;
When "Resume" request receives,Workers send back the result and request a next task.
request type specifer:
s -> Scan    m -> Match
d -> Sink
p -> Pause   r -> Resume

Message Delivery

at-most-once delivery, i.e. no guaranteed delivery
message ordering FIFO maintain by sender–receiver pair
Actor A1 sends messages M1, M2, M3 to A2
Actor A3 sends messages M4, M5, M6 to A2
The order of message for from A1 to A2 follows M1, M2, M3.
The order of message for from A3 to A2 follows M4, M5, M6.
A2 can see messages from A1 interleaved with messages from A3. (M1 may received by A2 after A2 receives M4; M5 may receive before M1 by A2)
Note that mailbox implementing PriorityMailBox does not respect FIFO.

Testing:

From my implementation, the case that two senders sends requests to a single receiver at the same time does not apply.

Akka Streams
Introduction:
Problems in Bug Data Processing:
In order to survive high load scenarios:

Blocking
Pull-based System
Client pulls data from the producer, blocking takes place when there is no data to pull. Safe for client, no OutOfMemoryErrors, but very slow.

Back Pressure
Push-Based System
Want to produce more data than the client can handle, may cause client to crash.

Actors can send and receive series of messages in order to transfer data from one place to another. We have found it tedious and error-prone to implement all the proper measures in order to achieve stable streaming between actors, since in addition to sending and receiving we also need to take care to not overflow any buffers or mailboxes in the process. Another pitfall is that Actor messages can be lost and must be retransmitted in that case lest the stream have holes on the receiving side. When dealing with streams of elements of a fixed given type, Actors also do not currently offer good static guarantees that no wiring errors are made: type-safety could be improved in this case. Akka Streams API offer an intuitive and safe way to formulate stream processing setups such that we can then execute them efficiently and with bounded resource usage—no more OutOfMemoryErrors.
Implementation
The main parts of Akka Streams are source, sink and flow.
Source:

It is the input to the stream.

It has the output channel and no input channel.

Sink:

It is the endpoint to the stream.

It has the input channel and no output channel.

Flow:

It is used to apply transformations on the data coming from source before putting it into a sink.

Demo:


Router

A initial work-through of the router with some dummy page views.
To test, play around with some of the dummy user guids and handles enumerated in the usersCl variable in start.js.
Some urls to try in the nav bar:
<guid>
@<handle>
@<handle>/<tab>
@/channel/<category>/<layer>
<guid>/<tab>
<guid>/channel/<category>/<layer>
and via location.href, you could try:
location.href="transactions"
location.href="transactions/<tab>"
Also feel free to try some bogus routes via both methods.

@morebrownies Feel free to play around with this one (although, I know you're a busy man).
One open question, if someone attempts to navigate to a nonexistent tab on a page (e.g. via the address bar), should we:
a.) Route them to the default tab of that page.
b.) Route them to a generic Page Not Found page.
c.) something else

@rmisio I tried getting the app running locally this morning and I've hit some issues. I'll check it out when I get a bit more time to focus on it.
As for your question, I choose B:
b.) Route them to a generic Page Not Found page.


Atom's spell-check

I have just started using Atom, and I have found this small issue with Atom's spell-checker 'spell-check'. It seems to work all right with normal files by detecting the wrong spellings. But, when I move on to my Python code, it doesn't detect any spelling mistake at all.
I was wondering if this issue could be solved?

@Coder443
I think you are best served by reporting bugs with a specific atom package in that package repository.
In this case you should do this at https://github.com/atom/spell-check, reporting it here will probably get lost in a black hole.

Thanks for reaching out @Coder443!  If you have questions about using Atom, you should use one of the resources below.  So if @the-j0k3r's suggestion doesn't help or you still have trouble, please reach out on the Atom Slack or the message board.

Because we treat our issues list as the Atom team's backlog, we close issues that are questions since they don't represent a task needing to be completed. For most questions about Atom there are a lot of options, check out:

User Documentation — The Atom Flight Manual
Developer Documentation — Atom API Documentation
FAQ — The Atom FAQ on Discuss
Message Board — Discuss, the official Atom and Electron message board
Chat — Join the Atom Slack team

On Discuss and in the Atom Slack team, there are a bunch of helpful community members that should be willing to point you in the right direction.

@rsese
facepalm on canned response.


Chauncey solution

3-5 for working through the problem
4-5 completeness
Starting to understand more of basic concepts that we use to implement more complex problems.

Nicely done! :+1:


Functions that return boolean in signature but actually always return true in code

We have a number of these in the code base, e.g.:
https://github.com/KyberNetwork/smart-contracts/blob/2f19b3ed92349fabb4b1df36868ccd192ee999e9/contracts/permissionless/PermissionlessOrderBookReserveLister.sol#L48
I think it's confusing the reader into thinking they might actually return false in some cases, and should return nothing instead.
When the logic of the function changes so that it might or might not work, then it should be changed to return a boolean.
An alternative might be to keep returning a boolean but replace the require calls in the function with return false ones, so that return value will really actually signify whether the call succeeded or not.

As discussed f2f, the current decision is to keep the returns(bool).
This will enable us to separate cases when we want to revert the transaction and ones in which we want to keep performing some action when the function failed.


array.reduce(..) is not developer friendly

Description:
Currently when we are going to invoke reduce langlib function on an array we have to do as follows:
int[] values = [80, 85, 90];

int total = values.reduce(function (int a, int b) returns int => a + b, 0);

But ideally this should work as follows:
int[] values = [80, 85, 90];

int total = values.reduce((a, b) => a + b, 0);

Currently Kotlin [1]  has this feature.
[1] - https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/reduce.html

Yes, this has to be improved in the Compiler type checker.

@hasithaa, are we expecting to remove/reduce types for an example like this?
public function main() {
    int[] values = [80, 85, 90];
    string _ = values.reduce(function (string a, int b) returns string => a + b.toString(), "0");
}

This is OKAY, we have to infer type of a from lhs type of statement.

Ideally, we should be able to infer the type of the lambda function by looking at LHS side. So we should support this,
public function main() {
    int[] values = [80, 85, 90];
    string _ = values.reduce((a,b) => a + b.toString(), "0");
}

We have investigated how to solve this issue. In order to support this, we have to backtrack type matching. But our current typeparam implementation does not support this. So this becomes a design change.
Since there are planned design changes in the future, we will differ this issue.


IOS - App freezes when tapping on Global Create menu

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Action Performed:

Create new Expensify account
Validate new account
Open Global Create Menu
Tap on Create a New Workspace

Expected Result:
Tap global create menu and be able to continue in selected option
Actual Result:
App freezes when tapping an option
Workaround:
Unknown
Platform:

Where is this issue occurring?

iOS ( issue was able to reproduce on two devices iPhone 8 Plus iOS 14 and iPhone 8 IOS 14.2)

Version Number: <IP_ADDRESS>
Reproducible in staging?: Yes
Reproducible in production?: Yes
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation

Expensify/Expensify Issue URL:
Issue reported by: Applause
Slack conversation:
View all open jobs on GitHub

Triggered auto assignment to @AndrewGable (Engineering), see https://stackoverflow.com/c/expensify/questions/4319 for more details.

Triggered auto assignment to @jliexpensify (External), see https://stackoverflow.com/c/expensify/questions/8582 for more details.

Posted!
Internal - https://www.upwork.com/ab/applicants/1490849443536437248/job-details
External - https://www.upwork.com/jobs/~016d56e1d46aab68a8

Not overdue, no proposals yet. @AndrewGable - should we double the price, or wait?

I think we are missing Exported label here....

Triggered auto assignment to Contributor-plus team member for initial proposal review - @rushatgabhane (Exported)

Current assignee @AndrewGable is eligible for the Exported assigner, not assigning anyone new.

Ugh, sorry! Thanks for catching that Rajat!

Issue not reproducible during KI retests. (First week)

Issue not reproducible during KI retests. (Second week)

Let's close if we cannot reproduce


Disallow empty collections in events

Some events such as DiagnosticsProduced and HoverTextProduced have constructors that throw when the supplied collection of diagnostics / content is empty.
Others such as CompletionsProduced, SignatureHelpProduced and ValueInfosProduced allow this.
Allowing empty collection in events is problematic because it introduces two ways to convey absence of data that consumers have to remember to handle - a) absence of event in the returned set of events for a command and b) presence of event with empty collection. It seems ideal to completely disallow creating events with empty collection so that consumers only need to check whether or not the event was produced (i.e. a)). See this discussion in https://github.com/dotnet/interactive/pull/3426#discussion_r1466781258
This PR fixed the notebook extension to handle absence of event correctly for all language service commands: #3427
It would be great to audit all existing event that include collections to make sure that if empty collections are allowed in some event, there is a legitimate reason why they are allowed.

I don't believe empty collections should be allowed in any of these events. It introduces an extra state that's semantically equivalent and pushes cyclomatic complexity onto consumers.


Does not work properly in vue3

Describe the bug
It is normal in vue3 local project development, but after executing the yarn build packaging and publishing command, this plug-in does not work, and there is no error prompt, as if there is no one
Reproduction
It is normal in vue3 local project development, but after executing the yarn build packaging and publishing command, this plug-in does not work, and there is no error prompt, as if there is no one
System Info
{
  "name": "robot-bee-admin",
  "version": "0.0.0",
  "private": true,
  "type": "module",
  "scripts": {
    "dev": "vite",
    "build": "vite build",
    "preview": "vite preview"
  },
  "dependencies": {
    "@element-plus/icons-vue": "^2.3.1",
    "axios": "^1.7.2",
    "element-plus": "^2.7.3",
    "nprogress": "^0.2.0",
    "pinia": "^2.1.7",
    "pinia-plugin-persistedstate": "^3.2.1",
    "sass": "^1.77.2",
    "vue": "^3.4.21",
    "vue-router": "^4.3.0"
  },
  "devDependencies": {
    "@vitejs/plugin-vue": "^5.0.4",
    "vite": "^5.2.8"
  }
}

Used Package Manager
yarn
Validations

[X] Follow our Code of Conduct
[X] Read the Contributing Guide.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] The provided reproduction is a minimal reproducible of the bug.

Hi please provide a proper reproduction so I can help :)

Same problem here. Simple (new) VueJS v3 app using pinia for managing the stores (which just contain a few strings in my case), which works fine by itself.
Then I tried to add this extension and followed the getting started guide, but no matter what I configure, this extension acts as if it isn't there. Nothing is persisted/loaded, hooks are not called and no debug info is logged. When I try to $persist()/$hydrate() manually, the app tells me that those functions are not defined.
My guess is that the extension is not loaded at all (at least in the way the documentation shows)?

Same issue.  Made a barebones Vite+Vue+Pinia app. Then chose localStorage as storage in the store, but nothing is set in the localStorage.  Calling actions to mutate state also sets nothing in localStorage.

can confirm, in newest vue3 vite, i only use simple code inside pinia like this,
 {     persist: {         storage: localStorage,         paths: ['use-my-fetch-crane']     } }
and its only return empty object like this, i have lot of state in pinia anyway:

can confirm, in newest vue3 vite, i only use simple code inside pinia like this,  { persist: { storage: localStorage, paths: ['use-my-fetch-crane'] } } i have lot of ref() state in pinia, and its only saved empty object like this in localStorage:

Same


fix: change path with no slash in hash mode (fix #3512)

fix: change path with no slash in hash mode
#3512

see https://github.com/vuejs/vue-router/issues/3512#issuecomment-814197511


create linear search in c++

to create a c++ program to implement linear search

i would like to work on this

#260  PR

i am working on it.


Add SSL implementation from Supermium 121

On Windows XP the Chrome browser typically uses ciphers from Windows schannel.dll implementation. Unfortunately those are not maintained by Microsoft anymore, and therefore the regular Chrome versions, including your Chromium XP v49 are not able to display specific websites which do use newer ciphers like the Elliptic curve ciphers ECDSA* and so on.
As a test the following website can be used:
https://html5test.opensuse.org
This is just one of many many examples.
It will fail to render the page with
ERR_SSL_VERSION_OR_CIPHER_MISMATCH
on Chromium-XP v49.
but on Supermium 121 (and all Firefox based browsers) the site will load fine.
Firefox does always bring its own SSL implementations. But the Chromium-based Supermium 121 browser https://github.com/win32ss/supermium , which is open-source, also managed to overcome that bug by adding its own SSL implementation.
Request is to do the same for your Chromium XP.

I do assume that https://github.com/win32ss/boringssl may be of use.


OPNsense 18.1.8 Services: RFC 2136 Local IPv6 address use

The RFC2316 client transmits the lovale IPv6 address to the name server.
Cached IP in the service overview:  IPv6: fe80::21b:21ff......
WAN address in Dashboard:
2003:c9:2fff:2c45:21b:21ff....
I checked/unchecked the "Use Public IP" Entry, but no change.

Not sure if this is enough info to go on. Needs more configuration points from RFC2136 plugin for reference and how WAN is set up (IPv6 mode).

Sorry here more details.
Interfaces: Overview
LAN interface lan,em1
SwitchLanInt opt1,em2
WAN wan.pppoe0
WAN_LAN opt2,em0
A special feature is the WAN_Lan interface.
Via ssh port forwarding i can reach the VDSL modem (Admin Panel) before the OPNSense Box.
Why can i not direcly select the "WAN pppoeXX" Inteface for the address ?
em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=52098<VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,WOL_MAGIC,VLAN_HWFILTER,VLAN_HWTSO>
ether 00:1b:21...
hwaddr 00:1b:21...
inet6 fe80::21b:21...%em0 prefixlen 64 scopeid 0x1
inet <IP_ADDRESS> netmask 0xffffff00 broadcast <IP_ADDRESS>
nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
media: Ethernet autoselect (1000baseT )
status: active
em1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=40098<VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,VLAN_HWTSO>
ether 00:1b:21...
hwaddr 00:1b:21...
inet <IP_ADDRESS> netmask 0xffffff00 broadcast <IP_ADDRESS>
inet6 2003:c9:2f2c:3302:21b:21... prefixlen 64
inet6 fe80::1:1%em1 prefixlen 64 duplicated scopeid 0x2
nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
media: Ethernet autoselect (1000baseT )
status: active
em2: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=2098<VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,WOL_MAGIC>
ether 52:54:00...
hwaddr 52:54:00...
inet <IP_ADDRESS> netmask 0xffffff00 broadcast <IP_ADDRESS>
inet6 2003:c9:2f2c:3301:5054... prefixlen 64
inet6 fe80::1:1%em2 prefixlen 64 scopeid 0x3
nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
media: Ethernet autoselect (1000baseT )
status: active
enc0: flags=41<UP,RUNNING> metric 0 mtu 1536
nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
groups: enc
pflog0: flags=100 metric 0 mtu 33160
groups: pflog
pfsync0: flags=0<> metric 0 mtu 1500
groups: pfsync
syncpeer: <IP_ADDRESS> maxupd: 128 defer: off
em0_vlan7: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1492
ether 00:1b:21...
inet6 fe80::21...%em0_vlan7 prefixlen 64 scopeid 0x8
nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
media: Ethernet autoselect (1000baseT )
status: active
vlan: 7 vlanpcp: 0 parent interface: em0
groups: vlan
pppoe0: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> metric 0 mtu 1484
inet6 fe80::21b:21...%pppoe0 prefixlen 64 scopeid 0x9
inet6 2003:c9:2fff:2c45:21b:21... prefixlen 64 autoconf
inet <IP_ADDRESS>
nd6 options=23<PERFORMNUD,ACCEPT_RTADV,AUTO_LINKLOCAL>
I hope that's enough detail.

Thanks, I think I know what's going on. In your WAN PPPoE config (IPv4), the box "Use IPv4 connectivity" is checked for your additional IPv6 configuration?
Cheers,
Franco

I think the problem here, and I could be reading this wrong is that the WAN address is link-local and not global. This could well be the way it's meant to be. Sky UK for example use a link local on the WAN, only the LAN side has a global.
I am not fully aware of what the OP is trying to get across, however if it is the for Dynamic DNS, then we need to send the LAN v6 address if the WAN is getting only a link-local. Maybe an option switch in the DDNS setup unless we can think if a way to be sure that link local is in use. This is similar to the gateway issue way back, where using the LAN address as the source fixes the issue,

@marjohn56 but pppoe0 has 2003:c9:... according to ifconfig ?

Ah I see, but em0 has a link local, and it appears that is what's being sent, is it not?

Interfaces: [WAN] -> DHCPv6 client configuration -> Use IPv4 connectivity - is checked
Request a IPv6 prefix/information through the IPv4 connectivity link.

Okay, we're on the right track.... do you happen to have "Request only an IPv6 prefix" enabled as well?

@fichtner - Am I miss-reading this? Is the issue to do with DDDNS?

Yes, these entries are enabled.
Request only a IPv6 prefix
Send IPv6 prefix hint
Request a IPv6 prefix/information through the IPv4 connectivity link

It is about the RFC2136 service and not about DynDNS Service

It's almost the same, based on shared / copied code.
I think there's your issue, "Request only a IPv6 prefix" will ignore any non-local address that the ISP may give you.
This is more or less an expected result of a change in 18.1.7:
https://github.com/opnsense/changelog/blob/master/doc/18.1/18.1.7#L47
It worked by accident earlier and I'm not yet sure how to combine both worlds without avoiding the accident.


Ruby: %Q{} string syntax displays incorrectly

The %q/%Q syntax for quoting strings doesn't get highlighted as strings:

This, by contrast, is how GitHub highlights them:
def quote
  %Q{She said: "We'll sup before we go."}
end

And my editor:

Thanks for reporting and sorry for the delay. This should be fixed now.

Thanks!


[WIP] pilosa: use different holder per db/table pair

Pilosa holder cannot be opened more than once. It has a channel to
signal opened state (currently unused) that is closed after the first
Open. This causes panics in the next calls:
panic: close of closed channel

The driver was using one holder for all db/tables. This called
holder.Open once per table. This works well if all indexes belong to the
same db/table but called Open several times when the indexes belong to
more than one db/table pair. Now it has a map of holders so it's only
opened once.
Related to src-d/gitbase#524

@jfontan - Look at here:
https://github.com/pilosa/pilosa/blob/HEAD/holder.go#L131
I think holder.Open creates a new index (so clears existing ones). In other words we cannot have multiple holders per (db, table), but just with one holder we can call Open only once.

I think we have to redesign Loading. We'll have one holder per driver with holder.Path = root + driverId. A holder will be opened in the constructor (and kept open)
LoadAll will have to use config files (so far unused) instead of rely on info from holder. In other words, so far we have one holder per pilosa.Index (db, table), now we will have one holder for all pilosa indexes (per driver, root folder).

The current map of holders fixes the problem loading indexes from multiple database/tables. It may be interesting to change the logic in de future as @kuba-- says and have only one holder per driver.

@ajnavarro - I can file a new proposal for future refactoring.

@kuba-- sounds good, go ahead :+1:


Chain call order

Let's take this simple example:
const S = require('fluent-schema')

console.log(
  S.object()
    .prop(
      'name',
      S.string()
        .required()
        .minLength(3)
        .maxLength(35)
    )
    .valueOf()
)

From what I understand, it should print the schema on the command line. What it currently does is:
/tmp/node_modules/fluent-schema/src/utils.js:154
  return options.factory({ schema: { ...schema, [key]: value }, ...options })
                 ^

TypeError: options.factory is not a function
    at setAttribute (/tmp/node_modules/fluent-schema/src/utils.js:154:18)
    at Object.minLength (/tmp/node_modules/fluent-schema/src/StringSchema.js:49:12)
    at Object.<anonymous> (/tmp/test.js:9:10)
    at Module._compile (internal/modules/cjs/loader.js:689:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
    at Module.load (internal/modules/cjs/loader.js:599:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:538:12)
    at Function.Module._load (internal/modules/cjs/loader.js:530:3)
    at Function.Module.runMain (internal/modules/cjs/loader.js:742:12)
    at startup (internal/bootstrap/node.js:283:19)

However, if I move the .required() call to the end of the prop definition, it works as expected.

Thank you for report this @bryanjhv.  I can reproduce the problem.
It seems my test case was too simple: https://github.com/fastify/fluent-schema/blob/d3e56231170728e89cabc4be12ca3bdf736c3c38/src/BaseSchema.test.js#L125-L132
I will have a look

fixed in v0.6.2

Thanks! It is fixed now.


Uncaught TypeError: response.join is not a function

Hi, I have the following problem when I try to upload a file. The upload is done but the window is did not refresh and I found the following on console: Uncaught TypeError: response.join is not a function
Uncaught TypeError: response.join is not a function
at d. (laravel-filemanager?type=Images&CKEditor=editor_content&CKEditorFuncNum=0&langCode=en:730)
at d.a.emit (dropzone.min.js:1)
at d._finished (dropzone.min.js:1)
at XMLHttpRequest. (dropzone.min.js:1)

Operating system : win10
Laravel version : 5.6
Package version : 1.8

not fixed yet