create new tools for displaying program output

This issue is meant to address questions that came up in #1363 and #1289.
What We Currently Do
Currently most of our example applications are set up to use a TCP sink. The directions for running these applications tell the user to use either Giles Receiver or nc to receive the output. In some cases the directions tell the user to write the nc output to a file and then we provide a script for turning the contents of that file into a human-readable format, while in other cases the directions tell the user to run nc in a way that write the incoming TCP data directly to the console.
Different approaches are used for different example applications because:

some example applications use framed output, which is difficult for humans to read directly
some example applications do not use framed output, which cannot be handled by Giles Receiver
some example applications are meant to on more than one worker, which means that the receiving application must handle more than one TCP connection

Why Can't We Just Pick A Tool?
nc's major weaknesses are:

it can cause a bottleneck which can slow down the upstream application
it can only handle one connection, so it doesn't work well with more than one worker

Giles Receiver's major weaknesses are:

it only handles framed messages
it can't display the data it receives on the console, it only knows how to write to a file
it stores messages to a file with additional information, not just the bytes that were sent to it, so extracting data from the file requires knowing the application data format and the format of the additional data

So neither nc nor Giles Receiver is the right tool for all of our example applications.
Some Possible Solutions
Decide On A Consistent Set Of Goals For Example Applications So We Can Pick One Tool
Currently example applications are designed to show different things. For example, one of the goals of the word_count application was to produce output that the user could see in the console as it comes in. On the other hand, one of the goals of the alphabet_partitioned application was to demonstrate an application that runs on multiple workers. Without making changes, neither nc nor Giles Receiver can deal with both of these goals.
Create New Tools (Or Modify Existing Ones) To Better Handle Our Goals
There are changes that we could make to Giles Receiver to make it handle messages that are not framed using a length-based framing mechanism, and changes that we could make so that it would print out message data to the console. Or we could create a new program explicitly for this purpose.
Create Other Sink Types That Are Better For Examples
There may be other types of sinks that would be better for demonstrating how our system works. Some examples might include:

A sink that prints a string to the console that represents the message. This would run as part of the application and the messages would be seen as part of the application's output. This would add noise to the output, but maybe it would be useful.
A sink that writes messages to a file directly. This would allow us to get rid of the need to have programs that listen for TCP connections. The messages would be written to file by the application and the files could then be inspected.

@SeanTAllen has added a data receiver program to the go-api-experiment branch that might address some of the problems that this issue covers. This is also related to #804.

@SeanTAllen do you think we can close this one since we now have the data receiver and we're deprecating Giles Receiver in #2341 ?

@aturley yes


[BUG]

Describe the bug
Hello, thank you for creating this fantastic plugin for us. I've encountered an issue regarding the "Height and Width" of flashcards. I attempted to utilize the flashcards separator alongside the metadata tag to designate specific sections. However, upon reviewing the flashcards, as illustrated in the screenshots below, I noticed that the visible area is being cut off on the front side.
Screenshots

Versions (please complete the following information):

Obsidian version: [e.g. v1.5.12]
Plugin version: [e.g. v1.12.3]

Hi @Nicepro-X thanks for letting us know.
Could you please also:

Post the actual markdown file (attach, not copy/paste)
What platform are you using - e.g. Windows 10, mac
Have you been using this plugin for a while, is this a new issue with a recent update?

test for spaced repetition.md
Hello, I'm pleased to have received your response. Here are the replies to your three queries:
Regarding your first inquiry, I've attached the test file as requested. Please review it at your convenience.
I'm currently using Windows 11, specifically the version for 23H2.
I've been utilizing the plugin for several months now and hadn't encountered a similar issue previously. However, I suspect this isn't a new problem introduced by the latest update, as I only updated the plugin after discovering this issue.

Hi @Nicepro-X thanks for sending that, but I can't reproduce the error. The following looks correct to me:

Is the file you posted above test for spaced repetition.md, the same file that you used when taking the screenshots?

I've been utilizing the plugin for several months now and hadn't encountered a similar issue previously. However, I suspect this isn't a new problem introduced by the latest update, as I only updated the plugin after discovering this issue.

Have you installed any other plugins recently?
Does the issue still occur if you disable all other plugins?

Hey, it seems like I'm still encountering the issue even after disabling all other plugins. The only distinction I noticed between your capture and mine is that I have to scroll down when I click on "show answer." This might be due to differences in our display resolutions.

Good pick up... I've reduced the window size for Obsidian, so I now get the vertical scroll bar.

But I also get the horizontal scroll bars, so I can view all the content. By chance do they appear for you if you hover below the text?

Apologies for the delayed comment. Yes, scrolling down to the bottom restores the content, but the issue persists when scrolling back up to the top.
For the second question, I'm afraid it's not possible to view all the content by simply scrolling up and down. When you scroll down to the bottom, there isn't enough space to display all the content.


Add updated doc strings for php doc

:warning: Please install the  to ensure uploads and comments are reliably processed by Codecov.
Codecov Report
Attention: Patch coverage is 92.30769% with 1 line in your changes missing coverage. Please review.

Project coverage is 99.42%. Comparing base (0b4b4bd) to head (bf4c3d8).

Files with missing lines
Patch %
Lines

src/Exceptions/ApiException.php
50.00%
1 Missing :warning:

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@             Coverage Diff              @@
##               main      #15      +/-   ##
============================================
- Coverage     99.63%   99.42%   -0.21%
  Complexity      167      167
============================================
  Files            40       40
  Lines           545      523      -22
============================================
- Hits            543      520      -23
- Misses            2        3       +1

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


chore: only add hover once

Description
Not super important but it would be bad if interactable are added twice to the list.

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


Use realistic error handling in example code

Per this guideline, we prefer ? in examples over try! or unwrap.
The first example in lib.rs should be using ? instead of unwrap where it says:
let mut resp = reqwest::get("https://www.rust-lang.org").unwrap();

Fixed in #135.


Build failed on windows 10 MSB3073: :VCEnd" exited with code 1

System information

Have I written custom code (as opposed to using a stock example script provided in TensorFlow): No
OS Platform and Distribution (e.g., Linux Ubuntu 16.04): Windows 10 64 bit
Mobile device (e.g. iPhone 8, Pixel 2, Samsung Galaxy) if the issue happens on mobile device:
TensorFlow installed from (source or binary): source
TensorFlow version (use command below): master
Python version: 3.6
Bazel version (if compiling from source): NA
GCC/Compiler version (if compiling from source): Visual Studio 2017
CUDA/cuDNN version: 9.2/7.1
GPU model and memory: GTX 1080 8GB
Exact command to reproduce: MSBuild /p:Configuration=Release tf_python_build_pip_package.vcxproj

Describe the problem
Build failed with error MSB6006: "cmd.exe" exited with code 1. Before that, there is an ModuleNotFound Error: No module named 'tensorflow.python.tools.api' while running create_python_api, even though I do find it from the specified location.
Source code / logs
Task Parameter:BuildSuffix=
                     :VCEnd (TaskId:7050)
                     Task Parameter:TrackerLogDirectory=x64\Release\estimator_python_api\estimato.8A00678D.tlog\ (TaskId:7050)
                     Task Parameter:MinimalRebuildFromTracking=True (TaskId:7050)
                     Task Parameter:TrackFileAccess=True (TaskId:7050)
                     Task Parameter:ToolArchitecture=Native32Bit (TaskId:7050)
                     Write Tracking Logs: (TaskId:7050)
                     	x64\Release\estimator_python_api\estimato.8A00678D.tlog\custombuild.write.1.tlog (TaskId:7050)
                     Read Tracking Logs: (TaskId:7050)
                     	x64\Release\estimator_python_api\estimato.8A00678D.tlog\custombuild.read.1.tlog (TaskId:7050)
                     No output for C:\WORK\LIBRARIES_LOCAL\TENSORFLOW\TENSORFLOW\CONTRIB\CMAKE\BUILD\CMAKEFILES\C75366AEF4FA6332EF71118C646F7D1C\__INIT__.PY.RULE was found in the tracking log; source compilation required. (TaskId:7050)
                     C:\work\libraries_local\tensorflow\tensorflow\contrib\cmake\build\CMakeFiles\c75366aef4fa6332ef71118c646f7d1c\__init__.py.rule will be compiled because it was not found in the tracking log. (TaskId:7050)
                     setlocal
                     cd C:\work\libraries_local\tensorflow\tensorflow\contrib\cmake\build\tf_python
                     if %errorlevel% neq 0 goto :cmEnd
                     C:
                     if %errorlevel% neq 0 goto :cmEnd
                     C:\work\tools\cmake-3.12.0-win32-x86\bin\cmake.exe -E env PYTHONPATH=C:/work/libraries_local/tensorflow/tensorflow/contrib/cmake/build/tf_python C:/Anaconda3/envs/python36/python.exe C:/work/libraries_local/tensorflow/tensorflow/contrib/cmake/build/tf_python/tensorflow/python/tools/api/generator/create_python_api.py --apidir=C:/work/libraries_local/tensorflow/tensorflow/contrib/cmake/build/tf_python/tensorflow/python/estimator/api --package=tensorflow.python.estimator --apiname=estimator --output_package=tensorflow.python.estimator.api C:/work/libraries_local/tensorflow/estimator_api_init_files_list.txt
                     if %errorlevel% neq 0 goto :cmEnd
                     :cmEnd
                     endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone
                     :cmErrorLevel
                     exit /b %1
                     :cmDone
                     if %errorlevel% neq 0 goto :VCEnd (TaskId:7050)
                     Generating __init__.py files for Python API. (TaskId:7050)
                     Traceback (most recent call last): (TaskId:7050)
                       File "C:/work/libraries_local/tensorflow/tensorflow/contrib/cmake/build/tf_python/tensorflow/python/tools/api/generator/create_python_api.py", line 27, in <module> (TaskId:7050)
                         from tensorflow.python.tools.api.generator import doc_srcs (TaskId:7050)
                     ModuleNotFoundError: No module named 'tensorflow.python.tools.api' (TaskId:7050)
15:52:23.015     2>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets\Microsoft.CppCommon.targets(171,5): error MSB6006: "cmd.exe" exited with code 1. [C:\work\libraries_local\tensorflow\tensorflow\contrib\cmake\build\estimator_python_api.vcxproj]
                   Done executing task "CustomBuild" -- FAILED. (TaskId:7050)
15:52:23.016     2>Done building target "CustomBuild" in project "estimator_python_api.vcxproj" -- FAILED.: (TargetId:18239)
15:52:23.016     2>Done Building Project "C:\work\libraries_local\tensorflow\tensorflow\contrib\cmake\build\estimator_python_api.vcxproj" (default targets) -- FAILED.
15:52:23.016     1>Done executing task "MSBuild" -- FAILED. (TaskId:8)
15:52:23.016     1>Done building target "ResolveProjectReferences" in project "tf_python_build_pip_package.vcxproj" -- FAILED.: (TargetId:12)
15:52:23.016     1>Done Building Project "c:\work\libraries_local\tensorflow\tensorflow\contrib\cmake\build\tf_python_build_pip_package.vcxproj" (default targets) -- FAILED.

I receive the same error when Building TensorFlow in Windows 10 (without GPU version) 1.9 with Visual Studio 2015 after 2,5 hours of buidling time.
File "D:/temp/tensorflow/tensorflow/contrib/cmake/build/tf_python/tensorflow/python/tools/api/generator/create_python_api.py", line 27, in  from tensorflow.python.tools.api.generator import doc_srcs
ModuleNotFoundError: No module named 'tensorflow.python.tools.api'
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppCommon.targets(171,5): error MSB6006: "cmd.exe" exited with code 1.
Protobuf, google and absl-py packages in the python environment were updated beforehand.
The machine that was used has 16 GB RAM and 2GB RAM for the nVidia GPU.
If someone has a clue how to avoid this error message, please help.

@bignamehyp Yes it was built against HEAD.

Figured it out - in my case it was because target copy path is too long so it has problem creating a file with specified path. It would be nice if the error message can be made more informative.

Nagging Assignee @bignamehyp: It has been 14 days with no activity and this issue has an assignee. Please update the label and/or status accordingly.

Nagging Assignee @bignamehyp: It has been 29 days with no activity and this issue has an assignee. Please update the label and/or status accordingly.

Nagging Assignee @bignamehyp: It has been 44 days with no activity and this issue has an assignee. Please update the label and/or status accordingly.

Automatically closing due to lack of recent activity. Please update the issue when new information becomes available, and we will reopen the issue. Thanks!


Timetable end v1.2

Modified Person class to accept a List of Appts and modified corresponding tests
(All tests work now, just that AddApptCommandTest is still commented out)

Good job on using a Set to show the list of appointments


Add Gitbook Versions Plugin

Now that people are using Feathers in production and core V3 changes are likely to have breaking changes we should version the docs. Looks like we can do it via Gitbook still. http://developer.gitbook.com/books/versions/

As we discussed, since the docs can be browsed through GitHub I think before a new release we can create a tag for the current version  and just link to that.

Absolutely. If we are tagging the versions we can actually add this plugin: https://plugins.gitbook.com/plugin/versions

@ekryski I enabled that plugin, but it dramatically slowed down the docs loading time, so I removed it.  I think we should just manually link to the repo.  Closing this for now.

ok cool. Thanks for trying it out @marshallswain!


Is it possible to set a StringMap() from environment?

If I define a StringMap() I can set multiple key/value pairs by repeating the flag:
 --flag foo=bar --flag baz=bar

But this can not work with environment variables because you can only have one variable of the same name:
APP_FLAG=foo=bar

I could not find a way to set the second parameter with the env var - is this supported?  I tried to add a \n to it but it didnt work.

You should be able to set APP_FLAG to a newline separated list:
APP_FLAG="foo=bar
baz=bar"


Make all packages use the same asset url file

Fixes #402

Because if we're to change the tarball name, we might as well start naming it after the repository directly rather than going through this asset-version intermediate phase.

I wonder if a better scoped fix wouldn't be to simply change the url file name, not the archive name.

This is exactly what it is doing. It changes from $projectname-$version.url to asset-$version.url. I kept the version to keep some entropy and just replaced the $projectname with the fixed string asset. The reason was that I wanted to keep the change small in the context of a bugfix.
Overall I agree that in the medium run we should name it after $reponame-$version.url but I believe that is a somewhat more controversial change that's visible from outside the dune-release "internals" so while I'll happily do that (and would solve #366 as well) I'd suggest this as a side-step to be able to release a 1.5.2 soon.


0.14.0v  Upgrad problem.

SimpleLocationBuilder
const String nPUBLIC_PAGE_VIEW = 'pageview';
    '/' + nPUBLIC_PAGE_VIEW + '/' + ':pageId': (BuildContext context, BeamState state) {
      final String pageId = state.pathParameters['pageId'].toString();

      BeamPage(
          key: ValueKey('$nPUBLIC_PAGE_VIEW-$pageId'),
          title: nPUBLIC_PAGE_VIEW,
          child: PublicPageView( pageId: pageId));
    },

PublicPageView
class PublicPageView extends HookWidget {
  String pageId = '';
   PublicPageView({required String pageId, Key? key}) : super(key: key);
  @override
  Widget build(BuildContext context) {
        return _PageView(smartPages.first);
      },
    );
  }
}

Hey, I think you forgot to return your BeamPage. Can this be?

^^ return..thank you.

Hey @Patrick386, I think this issue can be closed 😄. Or is there another problem you have with v0.14.0?

Hey @Patrick386, I think this issue can be closed 😄. Or is there another problem you have with v0.14.0?

Yes.  No additional problems were found for v0.14. Thank you.


Dovecot config ssl config in wrong place

Dovecot refuses to start because:
doveconf: Fatal: Error in configuration file /etc/dovecot/dovecot.conf: ssl enabled, but ssl_cert not set
Needs:
ssl_cert=</etc/ssl/certs/ssl-cert-snakeoil.pem
ssl_key=</etc/ssl/private/ssl-cert-snakeoil.key
not in a protocol section

This one's fixed


Fix Kotlin DSL setup snippet

Trying out with a Kotlin DSL project returns this error with the existing snippet
e: build.gradle.kts:52:44: Too many arguments for public open fun isOptionalGettersForNullableFieldsOnly(): Property<Boolean!>! defined in com.github.davidmc24.gradle.plugin.avro.DefaultAvroExtension

After the change it runs fine (like all other property setters)

Thanks for the PR!


Add a .travis.yml and disable the doctests.

This PR adds a .travis.yml so we can test Goat Guardian on CI.

Travis is passing, so I'll go ahead and merge this in.


About proxy

Can you add an option to --proxy, and only allow the proxy to pass the api, and not use the proxy when downloading, because crunchyroll does not limit the download IP, which can save the traffic of the proxy and make the download speed faster. Download speed is no longer limited by proxy bandwidth

Support for this was added in v3.3.0.
Instead of passing a single proxy url to --proxy you can use one of the following schemes instead:

<url>: - Only proxies api requests
:<url> - Only proxies download traffic
<url>:<url> - Proxies api requests through the first url and download traffic through the second url


[Issue] Change default storage-account networkAcls

Right now, the default storage account networkAcls allow all traffic.
param networkAcls object = {
  bypass: 'AzureServices'
  defaultAction: 'Allow'
}

That effectively says "Allow all traffic from Azure" and "Allow all traffic", which in the end is equal to "Allow all traffic".
I believe this is done to allow a seamless experience for local users.
We should instead figure out a way to allow the local users IP access, like this:
param networkAcls object = {
  bypass: 'AzureServices'
  defaultAction: 'Deny'
  ipRules: [
    {
      action: 'Allow'
      value: '<IP_ADDRESS>'
    }
  ]
}

Where <IP_ADDRESS> is the user's IP address.

Are you imagine azd'ing having a function similar to secretOrRandomPassword, like userIpAddress()?
cc @charris-msft as I think we were talking about allowing user IPs in a different conversation. Maybe when we were discussing VNet integration/deployment, so maybe not related.

I do think azd should have a userIpAddress() function, but it really needs to be used in a "just-in-time" fashion because:

Public IPs for many user's workstations change over time.
It's not a good security practice to leave a hole in the firewall that isn't being actively used.

Rather, I think we need to create the firewall rule during deploy, even if it's a bicep deployment that does it, that way the rule can be created, deployment performed, and then the rule can be deleted again.
A nice alternative would be for the team that owns the firewall (not sure if that's Azure Network or the service team) to allow us to create a temporary rule that only lasts for a pre-determined period of time (say 1 hour). That would allow us to create at the beginning of the deployment, but if something fails during deployment we would not be leaving a hole behind.


refactor(core/raw): adjust setter methods of AccessorInfo

Which issue does this PR close?
No
Rationale for this change
In current usage scenarios, this change will provide a better experience in method chaining,
although it will result in a breaking change.
What changes are included in this PR?
adjust setter methods of AccessorInfo

remove:

fn full_capability_mut(&mut self) -> &mut Capability

add:

fn set_full_capability(mut self, capability: Capability) -> Self

change:

fn set_scheme(&mut self, scheme: Scheme) -> &mut Self => fn set_scheme(mut self, scheme: Scheme) -> Self
fn set_root(&mut self, root: &str) -> &mut Self => fn set_root(mut self, root: &str) -> Self
fn set_name(&mut self, name: &str) -> &mut Self => fn set_name(mut self, name: &str) -> Self
fn set_native_capability(&mut self, capability: Capability) -> &mut Self => fn set_native_capability(mut self, capability: Capability) -> Self

Are there any user-facing changes?
setter methods of AccessorInfo struct

fn set_scheme(&mut self, scheme: Scheme) -> &mut Self => fn set_scheme(mut self, scheme: Scheme) -> Self
fn set_root(&mut self, root: &str) -> &mut Self => fn set_root(mut self, root: &str) -> Self
fn set_name(&mut self, name: &str) -> &mut Self => fn set_name(mut self, name: &str) -> Self
fn set_native_capability(&mut self, capability: Capability) -> &mut Self => fn set_native_capability(mut self, capability: Capability) -> Self

Hi, this is our API naming style that:

fn abc(&self) -> Abc
fn set_abc(&mut self, v: Abc) -> &mut Self
fn with_abc(mut self, v: Abc) -> Self.

Hi, this is our API naming style that:

fn abc(&self) -> Abc
fn set_abc(&mut self, v: Abc) -> &mut Self
fn with_abc(mut self, v: Abc) -> Self.

@Xuanwo So do you think this change is ok, except for the API naming style?

So do you think this change is ok, except for the API naming style?

I believe we only need to add set_full_capability and mark full_capability_mut as deprecated. Other changes seem not needed.

Hi, sorry for not expressing my idea correctly. Breaking changes like 5fdd515 (#5244) just to alter API naming don't seem good to me.

In general, we don't want to introduce breaking changes to the API unless there are compelling reasons to do so. For example, such changes might significantly improve our readability, or they might be necessary for implementing certain features.

In general, we don't want to introduce breaking changes to the API unless there are compelling reasons to do so. For example, such changes might significantly improve our readability, or they might be necessary for implementing certain features.

but for now, AccessorInfo has setter APIs with &mut self as parameter and return &mut Self as return value, IMV, they don't work well with method chaining in current use cases, like below:

Before this PR:

    fn info(&self) -> Arc<AccessorInfo> {
        let mut am = AccessorInfo::default();
        am.set_scheme(Scheme::AliyunDrive)
            .set_root(&self.core.root)
            .set_native_capability(Capability {
                stat: true,
                create_dir: true,
                read: true,
                write: true,
                write_can_multi: true,
                // The min multipart size of AliyunDrive is 100 KiB.
                write_multi_min_size: Some(100 * 1024),
                // The max multipart size of AliyunDrive is 5 GiB.
                write_multi_max_size: if cfg!(target_pointer_width = "64") {
                    Some(5 * 1024 * 1024 * 1024)
                } else {
                    Some(usize::MAX)
                },
                delete: true,
                copy: true,
                rename: true,
                list: true,
                list_with_limit: true,

                ..Default::default()
            });
        am.into()
    }

After this PR

    fn info(&self) -> Arc<AccessorInfo> {
        AccessorInfo::default()
            .with_scheme(Scheme::AliyunDrive)
            .with_root(&self.core.root)
            .with_native_capability(Capability {
                stat: true,
                create_dir: true,
                read: true,
                write: true,
                write_can_multi: true,
                // The min multipart size of AliyunDrive is 100 KiB.
                write_multi_min_size: Some(100 * 1024),
                // The max multipart size of AliyunDrive is 5 GiB.
                write_multi_max_size: if cfg!(target_pointer_width = "64") {
                    Some(5 * 1024 * 1024 * 1024)
                } else {
                    Some(usize::MAX)
                },
                delete: true,
                copy: true,
                rename: true,
                list: true,
                list_with_limit: true,

                ..Default::default()
            })
            .into()
    }

IMV, they don't work well with method chaining in current use cases, like below:

It's fine since this API has never been exposed to users. (Please note it's part of the raw API and not our public API surface.)
It's not that bad, right? These APIs are only written once per service and are rarely modified.
Perhaps we can discuss this when we are ready for the OpenDAL core v1.0 release. At this time, introducing breaking changes isn't worth it.

BTW, I found that the API of trait Access is a little different from trait LayeredAccess.
Is this intentional or caused by misaligned changes?
pub trait Access: Send + Sync + Debug + Unpin + 'static {
    fn info(&self) -> Arc<AccessorInfo>;
}

pub trait LayeredAccess: Send + Sync + Debug + Unpin + 'static {
    fn metadata(&self) -> Arc<AccessorInfo> {
        self.inner().info()
    }
}

And the similar inconsistencies exist in the APIs of kv::Adapter and typed_kv::Adapter.

kv::Adapter

pub trait Adapter: Send + Sync + Debug + Unpin + 'static {
    /// Return the metadata of this key value accessor.
    fn metadata(&self) -> Metadata;
}

/// Metadata for this key value accessor.
pub struct Metadata {
    scheme: Scheme,
    name: String,
    capabilities: Capability,
}

typed_kv::Adapter

pub trait Adapter: Send + Sync + Debug + Unpin + 'static {
    /// Get the scheme and name of current adapter.
    fn info(&self) -> Info;
}

/// Info for this key value accessor.
pub struct Info {
    scheme: Scheme,
    name: String,
    capabilities: Capability,
}

BTW, I found that the API of trait Access is a little different from trait LayeredAccess. Is this intentional or caused by misaligned changes?

Yes, I believe it's misaligned. We used to use metadata and changed it to info.

And the similar inconsistencies exist in the APIs of kv::Adapter and typed_kv::Adapter.

Keen eyes! They are inconsistent for the same reason. I would appreciate it if you could help fix them.

Hi, @Koushiro. I'm going to close this PR as we don't need it for now. Feel free to propose a discussion if you think there has been a misunderstanding.


Spin refactor

I'm not going to merge this as-is, I'm breaking it up into multiple smaller PRs.

Reorganized into #763


Load vars from .env file correctly

The source command won't work, because the env vars are not exported with export, which lead to e.g. the DB_PASSWORD being ignored. This change will load the env variables from the .env file correctly.

Can you share how I can recreate the current bug on a fresh Laravel application?

Nevermind, I tried to reproduce and there was a mistake in my thinking. Of course the source command works here.


sign in not working in real device after downloading from playstore

implemented this sample code, it works in test device, however google sign in stucks in real device downloaded from playstore. is there any changes to be made for final app. implemented as per tutorial given though.

This issue was moved to firebase/friendlychat-android#19


Is there any way to focus space without disabling system integrity protection?

I noticed that yabai -m window --space 1 --focus works without disabling system integrity protection. It is also related to focus. So is it possible that yabai -m space --focus 1 will work?

if you just want to switch spaces without disabling SIP, there is a built-in shortcut in macOS in settings - keyboard - shortcuts - mission control

if you just want to switch spaces without disabling SIP, there is a built-in shortcut in macOS in settings - keyboard - shortcuts - mission control
this, however, will not disable the fade-in space switch animation

As I understand you're talking about the whole fade-in / switch animation.  You can reduce it by turning on the reduce motion setting in Accessibility > Display > Reduce motion (but there is still a bit of fade animation).
If you have any idea of how to reduce the latter, you're welcome !


add engine(Tineye)

Parser operation principle:

Sends a POST request to https://tineye.com/api/v1/result_json/
To obtain result domains (for subsequent filtering search, for example), uses https://tineye.com/api/v1/search/get_domains/

In total, two initial requests
Since the page only shows 10 results, and there might be many pages, a next_page (and pre_page) function was created that sends a get request to the next page to retrieve results. If we were using the official API, we could set the limit to 0, but no matter how I tried, this is an unchangeable parameter when manually parsing.
P.S. Regarding new engines. I couldn't find any new more or less decent engines, and most likely they simply don't exist, so I probably won't be adding new ones in the near future. Only stocks and trash sites remain. I think if someone needs a new engine, they will create an issue.

Your work is as impressive as always.
I almost wish I could ask you to help analyze the reverse image search engine for e-hentai to improve it.
It seems like a major update to the ehentai site some time ago affected this engine's functionality, or maybe I just haven’t figured it out yet.
Also, I actually attempted to add Tineye a long time ago, seemingly using the same API you mentioned here.
I remember it worked fine back then, but I kept putting off adding it into the library and left it at the demo code stage.
When I finally got around to adding it, I found that it no longer worked.
I'll give you feedback after I thoroughly test the code in this PR.

To be honest, I don't really understand what this is about, because I hardly ever used e-hentai (or ASCII2D). I don't know how it was before, but now, as I understand it, e-hentai only searches for exact matches, at least that's the conclusion I came to.

To be honest, I don't really understand what this is about, because I hardly ever used e-hentai. I don't know how it was before, but now, as I understand it, e-hentai only searches for exact matches, at least that's the conclusion I came to.

I checked the website's update announcement on the forum, and found one specific line confirming that the feature is indeed no longer available.
2024-02-11

- The "similarity scan" function for file searches has been disabled since the algorithm used can no longer scale with the size of the database. We'll be looking into if this can be replaced with a better performing lookup.

Honestly, I triggered a Cloudflare block when running the demo code.
There's no good workaround yet.

While refactoring based on your PR, I also took the opportunity to fix some mypy issues that hadn't been addressed before.
To be honest, the refactoring process has left me a bit exhausted.
So, could I kindly ask you to test all the modules to make sure everything works as expected?

I don't understand why the demo/__init__.py file is needed.
Modified how domains are obtained, now it gets them correctly.
The thing is that query_hash is a hash (SHA1) of the file itself, which is used to get links to results, while hash is used for getting domains.

I haven't figured out what exactly this hash is, but the point is that hash is needed for getting domains, not query_hash.
Everything else seems to be correct"

The demo/__init__.py file was added to enable mypy to perform type checking on the demo directory.


Correct presenceTaskStarted default and always reset to zero

Dropping the ctx.Done() wait from the previous logic because even if the bot is Stop()-ed (and therefore the context channel closed), there's probably still value in waiting until interval has elapsed before allowing a new presence update to happen, should the both be restarted.

I don't think this is going to work.  We are immediately going to call updatePresence, get a response, check the atomic and see it is still 1 then never start another update presence task to update our presence again.  You are basically forcing the race condition to happen that I drew a diagram for in my other PR.

Ah I see @noiz , how about this update?

I think it has the same race condition that I am trying to fix in my PR.  If we decrement the counter after doing a update presence TX we can still the the case where the main Start() thread processes a RX to update presence call before we can do the atomic decrement.  Then we never start the update presence task again since no more update presence TX calls go out.

How could this have the same race condition when it will always call updatePresence until the counter is down to zero? Theoretically in this code each updatePresence call will both inc and dec the counter, but only the first one will trigger the goroutine, so I would expect that loop to run forever.

It does mean the interval we get in the response is kind of useless if the loop is already running. Not sure the implications of that.

Oh, yeah, I had misread the code, so I think this would be fine.  The one issue I do see in these changes is if the interval changes we would never change to sending on that new interval.  So maybe also keep the interval as an atomic in the Bot struct and read it on every time we start the loop?  Also we would probably want to move back to doing a select statement so we can kill this goroutine if someone tries to shut down the bot cleanly by listening to <-b.ctx.Done():

Are we overthinking this? Should we just have a goroutine kick off on bot Start that does the presence check in an infinite loop with the sleep? And let the response with interval just update the interval ? I might put up another diff to demonstrate that for us  to noodle over

That is what I reverted in commit https://github.com/alaingilbert/ttapi/commit/247990d5f4564b27c63f70c799b8ea4cbd70869f since it was failing after a couple days.  I notice when we respond as a presence update comes back that it is not always 10 seconds between the calls (sometimes it is 11 or 12 seconds between calls).  For whatever reason the back end seems to not like when it is called on exactly 10 second boundaries.

oh so https://github.com/alaingilbert/ttapi/pull/9 is not a good idea then?

oh so #9 is not a good idea then?

Yeah, that is basically going back to what I saw was failing after a couple days of keeping my bot running.

Same as before, except the previous code was not respecting the return
interval from the back end. I would assume this would be an improvement
On Mon, Jul 5, 2021, 4:05 PM noiz @.***> wrote:

oh so #9 https://github.com/alaingilbert/ttapi/pull/9 is not a good
idea then?
Yeah, that is basically going back to what I saw was failing after a
couple days of keeping my bot running.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/alaingilbert/ttapi/pull/8#issuecomment-874361253, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AACKQ7WTWAMK45CRTG7C55DTWI3DHANCNFSM473NGDTA
.

Yeah, but it still forces the calls to go out every 10 seconds on the dot which seems the back end did not like.  I still favor my PR since basically we are not wanting more than 1 update presence task to be running at a time.  We can have as many people calling update presence TX (which the library lets a user do by calling SetStatus) but under the hood we only have one task going on to make sure it goes out at least once per interval.

Fair enough. Without having seen the core issue I'm shooting in the dark.
It feels like if we know we need a presence check every so often it should
be in a loop explicitly. Regardless of that we need to get to a place where
master isn't broken though. Maybe it's time to add a simple test to make
sure the bot can at least start up too.
On Mon, Jul 5, 2021, 4:16 PM noiz @.***> wrote:

Yeah, but it still forces the calls to go out every 10 seconds on the dot
which seems the back end did not like. I still favor my PR since basically
we are not wanting more than 1 update presence task to be running at a
time. We can have as many people calling update presence TX (which the
library lets a user do by calling SetStatus) but under the hood we only
have one task going on to make sure it goes out at least once per interval.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/alaingilbert/ttapi/pull/8#issuecomment-874364264, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AACKQ7VQWSAVG2VWY6MQER3TWI4LXANCNFSM473NGDTA
.

Yeah, this issue is hard since the bot starts up fine and goes into a room, the issue is if you try and PM a bot running this code they show up as offline.  With the fixes we have now the bot seems to only go offline after a couple of days of running.  So that is what I was trying to fix with my PRs.

I didn't read all the details. But is your bot tagged as a "bot" in turntable system? Because if you don't explicitly tag the account as being a bot, they will kick it out at some point, and your issue sounds exactly like this is what's happening.

I didn't read all the details. But is your bot tagged as a "bot" in turntable system? Because if you don't explicitly tag the account as being a bot, they will kick it out at some point, and your issue sounds exactly like this is what's happening.

Yeah, I have my bot registered as a bot (my bot is named 7 hanging out in the indie google+ room).  The issue is not that I am getting kicked out of a room or off the site, it is just if you PM the bot that it is having issues.  After > 24 hours of running trying to PM the bot will show it is offline so you cannot PM the bot commands.  It stays offline for a bit then randomly gets kicked back online for a while then goes back offline.  With the changes I made it looks like that issue is gone now.


pkgsStatic: Add libffi override

Motivation for this change
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)

Built on platform(s)

[x] NixOS
[ ] macOS
[x] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)

[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nix-review --run "nix-review wip"

[ ] Tested execution of all binary files (usually in ./result/bin/)

[ ] Determined the impact on package closure size (by running nix path-info -S before and after)

[ ] Ensured that relevant documentation is up to date

[x] Fits CONTRIBUTING.md.

[x] Tested via static-haskell-nix

Notify maintainers
cc @matthewbauer

Can you please resolve the merge conficts and/or rebase on top of a current version of master?

@matthewbauer Is right. this was only necessary for me because I had to override libffi in another place.
Closing.


FeeInsufficient error paying invoice to routed (not directly connected) c-lightning node

I'm trying to pay an invoice generated by the Blockstream c-lightning store (buying stickers!)
My lnd node is configured, funded, well connected and has 3 channels open to other well funded and connected nodes.
If I use queryroutes, I see 5-6 routes with 0-2 SAT total fees and plenty of capacity. The invoice is for 81009 SAT payment. When I try to "payinvoice", I get this error:
"payment_error": "FeeInsufficient(fee=81009343 mSAT...
That fee is actually the entire invoice amount, not the fee. The payment amount is 81009, and lnd seems to add 0.343 SAT to the end of it.

I have now replicated this error with the destination node being lnd too. Invoice amount is 10 SAT.
"payment_error": "FeeInsufficient(fee=10800 mSAT...

So lnd->c-lightning and lnd->lnd. In both cases not directly connected. In both cases queryroutes shows between 5 and 12 routes, all with low fees, plenty of capacity. In both cases, the "fee" shown is actually the invoice amount plus some extra sub-satoshi amount.

I'm having a similar problem, routed payments to other nodes (c-lightning and not) gives the error when there is no direct channel, but succeeds once a direct channel is established.
When trying to pay an invoice generated at http://minimax.bight.nl/ I get
FeeInsufficient(fee=101001 mSAT..

lncli queryroutes reveals many paths of 3 or 4 hops, and at least two of those paths have zero fees set.

Additional information:
$ lnd --version
lnd version 0.4.0-alpha

running on mainnet

by the Blockstream c-lightning store

I think the store is currently in the process of being updated, as it's running a pretty old version of clightning and their current master has had many bug fixes and improvements since then. Users have reported issues even establishing connections, so I'd wait a few days before interacting with it to give them time to gracefully update their service.

That fee is actually the entire invoice amount, not the fee. The payment amount is 81009, and lnd seems to add 0.343 SAT to the end of it.

The amount in the returned error is actually the amount of the HTLC, not the fee itself.

I have now replicated this error with the destination node being lnd too. Invoice amount is 10 SAT.

The issue would point to some intermediate node that either isn't upholding its advertised fees, or keeps changing them mid payment retry.
This PR was recently merged which fixes some issues that users have encountered due to old un-upgraded nodes on the network. Before if we encountered an insufficient fee error, we would halt routing attempts rather than continuing with the fee fee update applied. If you update to the latest master (there'll be a patch release soon fixing this along with other bugs reported, yay testers!), are you able to reproduce this?

Now at commit @807b84e
v0.4.0-beta
Now I'm getting a different error "ExpiryTooSoon", but I'm not getting the FeeInsufficient error any longer...

ExpiryTooSoon would point to either the destination node, or an intermediate node not being synced to the chain. I'll dig into this as it may be another gap in our handling or the set of possible routing errors that can be returned.

Payment to the lnd node (fresh invoice) is giving error:
IncorrectCltvExpiry

Is your node, and the node you're trying to pay synced to the chain? This error can occur if a node is either setting the wrong time locks, or from the PoV of another node, the timelocks are off since it doesn't know what the current blockheight is.

Both nodes (source, destination) are fully synched.

TimeLockDelta: (uint16) 0,

That's an invalid value even. The timelock delta can't be zero, otherwise a race condition if a party goes on-chain to claim an HTLC is introduced. We need a value > 0 in order to give node C time to settle is incoming HTLC after it settles its outgoing HTLC.
Seems the path finding logic should be modified to skip nodes that have a timelock delta of zero.

In general, that returned channel policy looks off:

ShortChannelID: (lnwire.ShortChannelID) 7:14125056:701,

That would mean the channel is in block 7, tx index 14125056, which is impossible.

Flags: (lnwire.ChanUpdateFlag) 56473,

There are no currently defined flags that go that high. Max value is 3 atm.
My hunch is that it's trying to route through a node that has memory corruption due to a use after free, or pointer over run, or something of the like.
Our logic should handle this though, and just route around the faulty node, should have a PR up later today.

Here's the other error (paying for Blockstream stickers):
Mar 22 20:42:25 ip-172-30-0-66 lnd[4942]: 2018-03-22 20:42:25.633 [ERR] CRTR: Attempt to send payment 3b667f267215b8a6fe6f6529bfc60a8209182bb8be250f59cde3d355daf450e8 failed: ExpiryTooSoon(update=(lnwire.ChannelUpdate) {
Mar 22 20:42:25 ip-172-30-0-66 lnd[4942]:  Signature: (lnwire.Sig) (len=64 cap=64) {
Mar 22 20:42:25 ip-172-30-0-66 lnd[4942]:   00000000  e6 49 f4 e6 04 f3 eb 79  b5 f7 cf 92 ed b5 91 03  |.I.....y........|
Mar 22 20:42:25 ip-172-30-0-66 lnd[4942]:   00000010  9c c9 8a 5a 31 60 ec 7c  a0 ff da 98 4b 6b 51 e1  |...Z1`.|....KkQ.|
Mar 22 20:42:25 ip-172-30-0-66 lnd[4942]:   00000020  2d 5e 25 34 df 1d 95 08  48 7e 0a 97 2d 55 7f f1  |-^%4....H~..-U..|
Mar 22 20:42:25 ip-172-30-0-66 lnd[4942]:   00000030  1f c8 de d5 43 2c 09 57  58 8b e9 da 1e 73 eb 3b  |....C,.WX....s.;|
Mar 22 20:42:25 ip-172-30-0-66 lnd[4942]:  },
Mar 22 20:42:25 ip-172-30-0-66 lnd[4942]:  ChainHash: (chainhash.Hash) (len=32 cap=32)<PHONE_NUMBER>19d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f,
Mar 22 20:42:25 ip-172-30-0-66 lnd[4942]:  ShortChannelID: (lnwire.ShortChannelID) 514583:647:0,
Mar 22 20:42:25 ip-172-30-0-66 lnd[4942]:  Timestamp: (uint32)<PHONE_NUMBER>,
Mar 22 20:42:25 ip-172-30-0-66 lnd[4942]:  Flags: (lnwire.ChanUpdateFlag) 0,
Mar 22 20:42:25 ip-172-30-0-66 lnd[4942]:  TimeLockDelta: (uint16) 4,
Mar 22 20:42:25 ip-172-30-0-66 lnd[4942]:  HtlcMinimumMsat: (lnwire.MilliSatoshi) 1000 mSAT,
Mar 22 20:42:25 ip-172-30-0-66 lnd[4942]:  BaseFee: (uint32) 0,
Mar 22 20:42:25 ip-172-30-0-66 lnd[4942]:  FeeRate: (uint32) 1
Mar 22 20:42:25 ip-172-30-0-66 lnd[4942]: }

I think the issue with that one, is a misconfigured node. The operator looks like they've set their timelock delta value too low. Most nodes have a grace period, and the timelock delta needs to be greater than this grace period. For example: if my grace period is 10, then my timelock delta can't be 5, as otherwise the time gap is insufficient.

My time_lock_delta is 4. If it is an intermediary node, we should route
around it, I guess.
I am ready to test any PRs you suggest.
On Thu, Mar 22, 2018 at 2:51 PM, Olaoluwa Osuntokun <
<EMAIL_ADDRESS>wrote:

I think the issue with that one, is a misconfigured node. The operator
looks like they've set their timelock delta value too low. Most nodes
have a grace period, and the timelock delta needs to be greater than this
grace period. For example: if my grace period is 10, then my timelock delta
can't be 5, as otherwise the time gap is insufficient.
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/lightningnetwork/lnd/issues/922#issuecomment-375453469,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABII2_5J5m6n2JOmFjACw9RdFIi2MKvHks5thA7vgaJpZM4S3mD4
.

--
Andreas M. Antonopoulos
<EMAIL_ADDRESS>

Ah, well that returned value would be from the source of the error. I'll see if I can reproduce myself. Agreed we should route around it, but I'm going to investigate to see if there's a deeper issue, either way will have a PR up to test soon.

Was looking if FinalIncorrectCltvExpiry error was reported and have different question regarding errors.
Why there is always  "payment_route": null when an error occurs?
Shoudnt this provide information about route used for payment?

PR seems to have solved the LND to LND payment errors I was having (where no direct channel existed) - now routes properly.

Re-investigating this in light of some new evidence...

Aight, I've located the actual root cause. Have some newly added failing tests locally. Should have a PR with a proper remedy tomorrow-ish. Thanks for testing!

Have the same issue today with 2 different nodes in mainnet:
-- CommunityJar
-- Blockstream store
I have the same output in both situations:
2018-06-06 16:02:55.852 [ERR] CRTR: Attempt to send payment 24f2ffd1c8819e9c0e1f1b64e84d0d45570547890d8ba7a0512df58586bb9bfc failed: FeeInsufficient(fee=1002012 mSAT, update=(lnwire.ChannelUpdate) {
Signature: (lnwire.Sig) (len=64 cap=64) {
00000000  5e 1b 19 ad 2a 66 51 2f  4d c9 2b 83 e7 07 46 99  |^...*fQ/M.+...F.|
00000010  dc 49 21 e1 c5 f1 c6 0a  c6 3e e9 77 64 e2 7e 23  |.I!......>.wd.~#|
00000020  07 c1 5f 36 79 d2 73 ab  49 24 4a 65 cc 40 38 f2<EMAIL_ADDRESS>00000030  3f 4b 1e 36 75 0b 67 6d  c8 eb 01 f1 2d b7 d3 c0  |?K.6u.gm....-...|
},
ChainHash: (chainhash.Hash) (len=32 cap=32)<PHONE_NUMBER>19d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f,
ShortChannelID: (lnwire.ShortChannelID) 526107:658:1,
Timestamp: (uint32)<PHONE_NUMBER>,
Flags: (lnwire.ChanUpdateFlag) 1,
TimeLockDelta: (uint16) 14,
HtlcMinimumMsat: (lnwire.MilliSatoshi) 1000 mSAT,
BaseFee: (uint32) 1000,
FeeRate: (uint32) 10
}
Queryroutes executes successfully (i see routes to both end nodes for different amounts)

Is that a terminal failure? We'll retry in light of errors like that. Also queryroutes just looks at if the channels exist or not, if all the nodes for example are offline, it'll still display results as it looks at static graph information.

@Roasbeef Sorry, what do you mean "Is that a terminal failure"?
Thank you very much for clarifying about queryroutes. I still learn a lot from my own experience but should learn some posts and BOLTs. Of course, now I understand that there could be no route, because some nodes go offline... even if there are a lot of intermediate nodes to reach.
At least I got lucky with Community Jar, I've sent 1000 satoshis successfully.

Terminal failure means the last failure that happens before path finding stops.

If it's just the remote node rapidly changing their fee rate, then we'll ignore them after they send two duplicate fee updates. We recently fixed an issue w.r.t the way lnd handles fee forwarding (if it's an lnd node), it's possible that they haven't yet updated to the newest version with this fixed.

It seems that sometimes the proper fee to send together with the payment amount into the network is not calculated correctly. This may happen with 3+ hop routes and relatively high fee rates. It may lead to a FeeInsufficient error. Work in progress in https://github.com/lightningnetwork/lnd/pull/1382.

I am creating a send to route transaction with the route circling back to myself on simnet. When I vary the total_time_lock by 1sec the error goes from ExpiryTooSoon to ExpiryTooFar.

I still have the same error when I just create a route to another node.

@nharmon9 It depends on your block timestamps.


Update to elastic 5.5 mainly by changing string to keyword for regist…

Updated elasticsearch to 5.5 by changing "String" to "Keyword" for namespace and registry. The main change to get 5.5 working was to change registry/namespace to 'keyword' since the type 'string' is deprecated.  Later on, all string types should be changed to 'keyword' or 'text' for future compatibility.

Coverage increased (+0.04%) to 72.412% when pulling 81fa2f798f3980203b801200f5f73e7b6a4c9939 on feature/elastic5.5 into c457c62429668d135413642bb9de32c0b9a41191 on develop.

Coverage remained the same at 72.373% when pulling 308b7d0ed10145b967dd3b56a385343c3102ba12 on feature/elastic5.5 into c457c62429668d135413642bb9de32c0b9a41191 on develop.

Coverage increased (+0.04%) to 72.412% when pulling 6abadc36ce22d27508e1c3d0a75097b2ec5dbcd3 on feature/elastic5.5 into c457c62429668d135413642bb9de32c0b9a41191 on develop.


Exposing response headers through a generated C# client

Preface: I want to implement the ETag header for some of my resources. My initial plan is to use [SwaggerResponse(HttpStatusCode.NotModified, typeof(void))] and handle ETag logic inside the action.
For the above to work, I need to be able to read the response headers with my generated clients, to extract the current ETag. I'm not quite sure how this can be achieved without breaking existing code. Perhaps a new generator setting can be added, to have methods return value tuples containing the response headers. So instead of
Task<Foo> Foos_GetFooAsync(int id)

it generates
Task<(Foo value, HttpResponseHeaders responseHeaders)> Foos_GetFooAsync(int id)

Then you can either use the headers
(var foo, var headers) = await Foos_GetFooAsync(id)

or discard them
(var foo, _) = await Foos_GetFooAsync(id)

Do you think this is a path worth exploring? Or do you have something else in mind? I can help out with implementing this if you like.

On a related note, the code generator currently handles HEAD requests, but it doesn't seem to do anything other than throwing on an unexpected status code.

There is the WrapResponses option...
Another option would be to split the generated method in two e.g. GetFooAsync and ProcessGetFooAsync(...). You could then make GetFooAsync protected (ProtectedMethods) and reimplement it with calls to GetFooAsync and ProcessGetFooAsync and own code...

Thank you, I'll take a look at both options soon-ish.

The second option is not yet implemented

WrapResponses seems to do what I need. I also see there is a WrapResponseMethods option, but I couldn't figure out the correct syntax. I tried the following but none of them work:

/wrapresponses:true /wrapresponsemethods:Workspaces.Head
/wrapresponses:true /wrapresponsemethods:WorkspacesController.Head
/wrapresponses:true /wrapresponsemethods:Workspaces.Workspaces_Head
/wrapresponses:true /wrapresponsemethods:WorkspacesController.Workspaces_Head

I think it’s clientName.methodName

https://github.com/RSuter/NSwag/blob/8a6a331e9ceed740255f54bef6f7bd6f976cffd4/src/NSwag.CodeGeneration/Models/OperationModelBase.cs#L250

Ah, thank you. The client name is Client in this case, so Client.Workspaces_Head made it work.

@RicoSuter maybe I am just not as familiar with the product.. but I feel like the code (the link you referenced above) and the description here and here are a bit confusing. I was having trouble too with the format for wrapResponseMethods. I think it should be labeled as ClientName.MethodName instead of ControllerName.MethodName


How to verify that the string is empty? Use length to judge?

package main

import (
	"fmt"
	"github.com/asaskevich/govalidator"
)

type T struct {
	Title  string `json:"title" valid:"required"`
	Content string `json:"content" `
	Text string `json:"text" valid:"required"`
}

func main() {
	_f := T{
		Title:   "",
		Content: "",
		Text:    "",
	}

	_, err := govalidator.ValidateStruct(_f)
	fmt.Println(err)
	// IS nil
}

How to verify that the string is empty? Use length to judge?

I'm having the same problem. What was the solution for this? @codexuexi

I'm having the same problem. What was the solution for this? @codexuexi

Might be related to: https://github.com/asaskevich/govalidator/issues/359

Might be related to: https://github.com/asaskevich/govalidator/issues/359


report missing database directory

Expanding on issue #3 , let's report an error and exit the process when the database is unable to be created. I have documented the mkdir -p data step in setup, but this is an easy thing to forget, especially during development.

Good catch on this -- tho I'm not sure why the mkdirSync call isn't recursively creating this directory. i'll investigate

The latest architecture does not allow this (handled by the backfill command)


Focuses out when removing error text

In a form page like this:
= form-for resource
  = input-for 'title'
  = input-for 'body'
  = submit as='button'

I've a presence validation for title. When I focus out of the title field, an error message is displayed. When I start writing in the title input field, after taking only one character, it removes the message but at the same time focuses out of the title field. For the fields containing multiple validations, it focuses out of the input fields every time an error text removal is triggered.
I'm using ember-cli 1.13.13, ember 2.0 and ember-easy-form 1-0-stable branch (the most recent as of this writing).

Ember is re-rendering the component when the error changes, and then the component loses focus.
Do you want to try to fix it? I will not be able to work on this for the next few weeks.

I'll try to. Can you give me some hints where to look for to fix it?

First I would search for similar issues reported in the Ember's repo. I'm sure someone else already had this problem. Maybe this gives some indication of what is the ocurring.

I think I found a solution. :smile: Could you check if it's working in your project?
Replace the code of the file addon/keywords/input-for.js with this:
import {assign} from 'ember-easy-form/utilities';
import {knownProperties} from 'ember-easy-form/components/internal-input-for';

export default function inputFor(morph, env, scope, originalParams, hash, template, inverse, visitor) {

  // Move all values to the `inputOptions` hash, except the ones we use in the `internal-input-for`
  let customHash = {};
  let inputOptions = assign({}, hash);
  for(let i=0; i<knownProperties.length; i++) {
    const key = knownProperties[i];
    if (inputOptions.hasOwnProperty(key)) {
      customHash[key] = inputOptions[key];
      delete inputOptions[key];
    }
  }

  customHash.inputOptions = inputOptions;

  env.hooks.component(morph, env, scope, 'internal-input-for', originalParams, customHash, { default: template, inverse }, visitor);
  return true;
}

Yes it works. :+1:

Fixed: #220


LUCENE-10184: mention to opening a Jira issue

Maybe good to add a request to open a Jira before opening a PR? I'm not sure if there is a policy about it, I noted it's "optional" but required when the contribution should be mentioned in CHANGES.

We could simply add the PR number in the CHANGES and I think it'd be developer-friednly, I don't think this works at this moment.

@dweiss Thank you for confirming.


Fixed compilation of pthread-based parallel_for with gcc 4.4.3

See issue: http://code.opencv.org/issues/4386

:+1:


How to Refresh WebChat Token

Hi
I am using Webchat in my web site application
I am generated Token using WebChat Secret, Not using DirectLine
I am not able to find API and process to Refresh token after 30 min for my Webchat
due to this chat session is expired after 30 min and stop responding
If I regenerate token with secret my conversation data will lost

I have got solution to refresh web-chat token by using direct-line API
I am generating token for my web-chat using below URL
https://webchat.botframework.com/api/conversations
and refreshing with direct-line it's working
https://directline.botframework.com/v3/directline/tokens/refresh


Cannot find module 'm3u8stream/lib/parse-time' on new installation (unable to download any music)

Node: 12.13.0
npm: 6.12.0
Error Screenshot:

Sam issue, hopefully gets fixed

This issue is fixed in the latest v0.0.8 version.
Please update using the npm install -g music-dl command.
If it still persists, please reopen this issue.


Nextjs with configured basepath is not displayed in CS #176

I completely agree !
But there was no way to avoid it because Nextjs constructs some URLs on the fly from multiple bits.
So we can only affect string part of it, but not parts that come from variables.


You can create multiple of the same entry by spamming the create button

Bug
When adding money flow you can repeatedly click the submit button to create more entries.
How To Reproduce

Go to add money flow
Fill out you details
Click add new money flow many times

User Specifications
OS: Windows 10
Browser: Chrome Version 131.0.6778.86
Screenshots

Fixed. On branch fix-bug-bounty1


Agdigger 229

Changes
Added expect module workflow if jenkins_private_key_password variable is defined
How to test
Create a password protected private key (with the name id_rsa) and add a jenkins_private_key_password in vars/buildfarm.yml with the private key password.

@odra wow, I haven't realized that this change would make things a bit shittier when I was creating the task. I don't see any other way though :(
Just maybe one idea: have you ever seen something like a wrapper? I mean, perhaps we can do sth like following with a custom Ansible module:
- command_with_expect:
  command: java -jar /tmp/jenkins-cli.jar -remoting -s {{ jenkins_route_protocol | default('https') }}://{{ route_output.stdout }}  groovy /tmp/proxy-config.groovy
  responseQuestion: 'Enter passphrase for .*'
  response: "{{ jenkins_private_key_password }}"
  expectWhen: jenkins_private_key_password is defined

This could go "expect path" when expectWhen==true. Or, it could just execute the command otherwise.
I don't know if we can do something like this with a simple include. I haven't seen any example that include uses some kind of composition.
@odra @laurafitzgerald give me your thoughts on these ideas and then I can verify this if we keep it as is.

yeah I don't like it as well (open to suggestions), I guess I could try to create a custom ansible module

@aliok I couldn't find any documentation on a command_with_expect module. The logic in ansible is tricky and we've had to do something similar before using the when variable to decide on running particular tasks. @PhilipGough might have some insights on whether there is a better way to do this also?

@laurafitzgerald I was suggesting that we create a "command_with_expect" module ourselves. Sorry for not being clear.
yes, @PhilipGough any suggestions?

@aliok @odra @laurafitzgerald Personally I don't like this for the gain we are getting an we are also forcing installation of another module/dependency onto their OpenShift master I believe? Correct me if I'm wrong. Not sure how desirable that would be to be honest as it seems a little invasive just so we can dismiss a requirement.
@odra I think I would look at seeing if you can do something with a custom module. We can then just create a lib  folder and drop it in there to use directly.

@aliok @odra @laurafitzgerald Personally I don't like this for the gain we are getting an we are also forcing installation of another module/dependency onto their OpenShift master I believe? Correct me if I'm wrong. Not sure how desirable that would be to be honest as it seems a little invasive just so we can dismiss a requirement.

@PhilipGough sorry I think I didn't understand what you mean.
You don't like the idea of having this improvement (that allows using a private key with a password)? or you don't like the custom module approach?

I think the best route would be trying to extend the expect module to support the "expect when" parameter

We would need an extra dependency anyway, either the "expect" system package or the "pexpect" python package

@PhilipGough yeah, as @odra said, we need to have the expect/pexpect on the machine if we want to do this. custom module or not. I was not able to find an alternative to Ansible's expect module unfortunately, when I was creating the JIRA.

@aliok @odra in that case should we go with the solution provided in this pr? It's a bit tricky but I think that is down to the restrictions in the use of logic in ansible.

@aliok sure ok. @laurafitzgerald yeah tend to agree now given the discussion. It is not as much benefit as I thought to do otherwise.

ok, we go as is then. let's verify this...
👀 👀

ok, tested these scenarios:

id_rsa HAS NO password; DIDN'T pass jenkins_private_key_password: all good, old behavior preserved
id_rsa HAS NO password; passed -e jenkins_private_key_password=password: all good. (Ansible's expect module doesn't see that password is asked and everything goes smooth)
id_rsa HAS a password; DIDN'T pass jenkins_private_key_password: failed as expected
id_rsa HAS a password; passed WRONG jenkins_private_key_password: failed as expected
id_rsa HAS a password; passed jenkins_private_key_password: all good

Merge it!


routines are leaked when permissions are closed

I am adding a E2E test in pion/ice that asserts no routines are leaked.
Even after I close all permissions I am getting https://gist.github.com/Sean-Der/dbd0ed46c9d05798bdf4ecf66224fb07
I don't see a way to close a Allocation so these might be attached to that. Haven't really dived in yet

@ernado mind taking a quick look at this? Is there any additional cleanup I should be calling with the turnc public API?

Will take a look.
Can you please share the e2e tests with me so I can debug?

Yep!
If you grab this branch https://github.com/pion/ice/pull/66
Do go test -run TestRelayOnlyConnection


Unable to utilise QImage support for file writing with Qt5.15.x

I've tried to tap into the QImage support through simage but have hit a snag in simage_qimage.cpp in qimage_set_save_format. I'm using Qt5.15.10 which is returning a list of supportedImageFormates in lower case. The qimage_set_save_format converts the passed in image format into upper case, but then does a case sensitive string comparison between the passed in format and the returned Qt formats, ultimately resulting in there never being a valid matching format resulting in buf[0] always being set to zero and subsequently never writing out an image.
In my debugger I forced buf back to lowercase and the image then outputted fine. Is there an inplace workaround to this behaviour or is this going to need a code change? I assume at some point in time Qt used to report the image formats in upper case but now report in lower?
Would it make sense to dispose of the convert to upper case block (lines 148 to 152 on latest source) and replace the existing strcmp calls with stricmp? Or perhaps convert the reported QList to upper case for direct comparison?

Thanks for reporting the issue. It seems like supportedImageFormats always returns a list of lower case image format descriptors so IMHO it would be best to always use lowercase comparison here. I checked with 4.8 and with 5.15 and 6.5.3 and it seems it has always been the case. Maybe in versions before 4.8 the list was upper case but I did not find the sources for that.

Thanks @VolkerEnderlein , I've picked that up and it works beautifully 👍


Separate C-Litmus and asm-Litmus in places

The backend infrastructure has a notion of input sources, of which there are two at the moment: LiftUnknown, which is basically unused, and LiftLitmus, which is currently generally hard-coded everywhere.  There is actually a distinction between C litmus tests and assembly litmus tests: while Herd and Litmus both accept both, rmem only accepts assembly tests, and generally we don't want to use the other two in assembly litmus mode in most cases.
Ideally, we want three things here:

a split between LiftCLitmus and LiftAsmLitmus (where lift jobs targeting the latter pick up the architecture from the existing field on the job);
a way of checking the architecture of a Litmus test, which might be useful for auto-inferring the type (combined with filekind.GuessFromFile, I guess);
de-hardcoding LiftLitmus in places.

We'll also need to split backend.CanLiftLitmus, and probably add a piece of backend metadata to say which architectures are supported.


Revise patches to fix compiler warnings?

I've been seeing this for awhile now. The patches maintained here cause the new code to produce compiler warnings in downstream repositories. Should an effort be made to modify the changes so these warnings can be properly addressed?

It should doable for the majority of the warnings caused by the patches.  There are instances where we've added early returns that cause unreachable code warnings and unused variable/function warnings.  The patches would just need to be updated to remove more code than they currently do.  It's something that has been on my mind before, but I've pushed it off as something I'd start working on once I've finished experimenting with alternate safebrowsing patches.

You don't need to remove code to make it dead. You can use #if 0 ... #endif blocks to disable them too to achieve the same result. It would probably be easier to maintain than just removing the whole block since that would require more hassle when updating the patches for changed content.

You can use #if 0 ... #endif blocks

Quite the opposite! Doing so one could make the intentions obscure and harden the maintenance.


[Feature request] Filter posts out using RegEx or other parameters

Hello! I am really enjoying FixEmbed! 😄
I was wanting a way to filter out posts by having a certain emoji or word within them, it would be nice if that was configurable.
As an example, you could make it so a post with a certain emoji or certain words wouldn't be automatically switched.

Hi DerekTurtleRoe,
Thanks for the kind words!
That sounds like a great idea, how about enclosing the link in <> or [] to avoid link conversion?
If you have a better way, I'd love to hear it.
Thanks,
Ken

Hi DerekTurtleRoe,
Thanks for the kind words!
That sounds like a great idea, how about enclosing the link in <> or [] to avoid link conversion?
If you have a better way, I'd love to hear it.
Thanks,
Ken

It still converts links when I do that, but I thought that was intentional in case another user tried to hide a link or something.

Sorry for the misunderstanding, I was asking if <> would be something you'd like to use. I just updated the bot to exclude links that are encased in <>, so they are not converted though. Thank you for the suggestion!


Better describe and suggest new rules' version options

Following @IllusionMH's comment in https://github.com/Microsoft/tslint-microsoft-contrib/pull/647#issuecomment-436277440 -  we should have a better template for what users should put in README.md as the rules' starting version.
During the release process, we change them to what's correct, but until then it can be misleading to see incorrect version numbers in the big README.md table.
This should be a small intermediate fix until #575 gets rid of that table.

In offline discussion @next was picked.


Initialize GitHub actions

Megred this PR. The issues in this branch are resolved in
https://github.com/reshnashrestha/23-Homework4G1/tree/test_github_actions


get the download job id before the download actually starts [feature requests]

if i have a list of available downloads (app interface), i'm able to begin the download of each one even if another hasn't finished, but, if i cancel one that has not really started downloading (onBegin callback has not being called), i get an error because i still don't have the actual jobId.
i think that if we get the job id when we just started the download, this could be fixed, is it possible?

@CesarLanderos We could return the jobId synchronously.
So instead of returning just the promise, we could return something like:
{
  jobId: 1,
  promise: <Promise>
}

What do you think? We're in the process of releasing V2, so now is the time to be making breaking changes such as this one. :-)

Great!, and yeah!, definitely most be asynchronous, but with this approach, i have just one concern, its not really bad.
I am working in an app in wich a user can download certain contents, each content has many files to download, so i make use (extensively) of Promise.all()
For example:
Promise.all(files.map(file =>
    RNFS.download(options)
))
.then(results =>
    // done
);

But well, i will just have to make some adjustments to the map function, it will not be as clean as before, but is cleaner that the workaround that i had to make, than consisted on deleting the content from the downloaded contents db, and when the onBegin callback gets called, i check if the content still exists in the db, if not then immediately stops the download, it is not very semantic to be honest :p

Typo!, must be synchronous, not asynchronous hehe.

Added this in https://github.com/johanneslumpe/react-native-fs/commit/5af22b2782515ed2b21280a6c55b716d235a96bd


allow disabling on a rule-by-rule basis

Some folks might like to disable rules on a case by case basis.

:+1:

Yes please!  This will help large organizations filter out noise and focus on the rules that are most important to them.

Sorry for the late reply @NathanMcCauley, but we're planning to rewrite the script and when doing so add support for individual and grouped tests.

What me and @konstruktoid were thinking of doing was the ability of supporting different Profiles. Companies could reuse the current tests and selectively add/remove tests from any of the base profiles, and maybe even contribute them back to dockerbench.com.

That's even better, will help as we bring more groups from our company onto Docker - each group can configure their own profile.

I like the profiles idea

I believe this was solved with #283. Closing.


Bug: @xstate/vue's useActor incorrectly types the send() function with EventFrom rather than EventFromLogic

XState version
XState version 5
Description
@xstate/vue's useActor function creates a top level alias for actorRef.send so that you can destructure send out like so:
const { send } = useActor(myLogic, { /* ... */ })

However, this send function is typed as (event: EventFrom<TLogic>) => void which consistently resolves to never when fed an ActorLogic, because the underlying ResolveEventType only checks for ActorRefs not ActorLogics.
Expected result
useActor(/* ... */).send({ type: 'my-event' }) should not produce a type error
Actual result
useActor(/* ... */).send({ type: 'my-event' }) produces a type error, because "{ type: 'my-event } is not assignable to never"
Reproduction
codesandbox link
Additional context
My investigation only involved fromTransition, although it looks like all from* logic definers result in an ActorLogic type. In any event, if I've made a mistake here I apologize.
Also happy to open a PR for this if I'm on the right track

Also happy to open a PR for this if I'm on the right track

A PR would be welcome; your solution seems like it would fix the problem.

I ended up copying the React package with ActorRefFrom<TLogic>['send']>


Smart HTTP VM Access Helper

Can one of the admins verify this patch?

Pull Request Test Coverage Report for Build 1859

66 of 66 (100.0%)  changed or added relevant lines in 5 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.2%) to 53.245%

Totals

Change from base Build 1858:
0.2%

Covered Lines:
9608

Relevant Lines:
16004

💛  - Coveralls


License

Do you have any idea about a license you like to apply to this project?

Yup, applied the MIT Licence.


Arrangement of Engineering drawing resources

Issue Title

Arrangement of Engineering drawing resources

Issue Description

To arrange the video resources of Engineering Graphics and Drawing in order.

i want to work in this section. Please assign me.

I want to work in this section with aindrila. Please assign me.

This issue has been resolved.


Add 'builderCliOptions' setting

We were blocked by this while trying to configure electron-builder to publish artifacts.
Happy to hear your thoughts on an alternative interface.

Hey,
thank you very much for your contribution 🙂
I've never used that feature of electron-builder so at the moment this looks good to me. Just after 1.0 building installer and packaging will be refactored a little bit and probably moved to a plugin so I reserve the right to contact you in order to consult this when I will be working on that part :wink:

@ramijarrar your changes were just released in 0.8.0


Consider supporting   in addition to &ngsp;

I've started seeing the "ng space" &ngsp; entity (when you want to put a space in a preserveWhitespace: false template), and my first reaction was that it was a typo of  . I imagine anyone familiar with HTML but not with AngularDart could also have this first reaction when seeing &ngsp;.
To avoid this confusion, can we use the standard space character entity ( ) instead of a new non-standard entity?

I, too, thought it was a typo the first time I saw it.

I haven't heard much feedback here since the initial request. We can revisit if needed.


RolePlay chat for GenericAgent

Why are these changes needed?
This PR implements MultiAgent RolePlay chat for GenericAgent, plus a notebook example on how to use it.
Related issue number
will create issue later
Checks

[ ] I've included any doc changes needed for https://microsoft.github.io/FLAML/. See https://microsoft.github.io/FLAML/docs/Contribute#documentation to build and test documentation locally.
[ ] I've added tests (if relevant) corresponding to the changes introduced in this PR.
[ ] I've made sure all auto checks have passed.

I reviewed all the files except the notebook. One high-level observation is that the existing communication method via send() and receive() is not used. Instead, a few new methods like role_play are directly called. I wonder whether we could/should incorporate this design in our framework. @qingyun-wu
Please review #1154 as it will affect this PR.

Closing because the major functionality of this PR is already in main.


Command final waypoint identically when traj_point_active_ptr_ is null

Addresses #671
Contributions via pull requests are much appreciated. Before sending us a pull request, please ensure that:

Limited scope. Your PR should do one thing or one set of things. Avoid adding “random fixes” to PRs. Put those on separate PRs.
Give your PR a descriptive title. Add a short summary, if required.
Make sure the pipeline is green.
Don’t be afraid to request reviews from maintainers.
New code = new tests. If you are adding new functionality, always make sure to add some tests exercising the code and serving as live documentation of your original intention.

To send us a pull request, please:

[ X ] Fork the repository.
[ X ] Modify the source; please focus on the specific change you are contributing. If you also reformat all the code, it will be hard for us to focus on your change.
[ X ] Ensure local tests pass. (colcon test and pre-commit run (requires you to install pre-commit by pip3 install pre-commit)
[ X ] Commit to your fork using clear commit messages.
[x] Send a pull request, answering any default questions in the pull request interface.
[x] Pay attention to any automated CI failures reported in the pull request, and stay involved in the conversation.

Check 1 fails at rosdep (installing ros-humble-generate-parameter-library, not found), not sure how to fix.
I cannot reproduce the test failure on my machine:
<testcase name="position_error_normalized/0" value_param="({ "position" }, { "position" })" status="run" result="completed" time="0.259" timestamp="2023-06-16T10:33:34" classname="joint_trajectory_controller.PositionTrajectoryControllers/TrajectoryControllerTestParameterized" />

Can anybody else confirm?

Is this also applicable to rolling and iron? Please open PRs against the master branch for fixes and indicate you'd like a humble backport.

@bmagyar Understood, closing and re-upping as a master push with backport request.


Convert to swift 2.0

Please add new branch for swift 2.0 in the repo

Please somebody do this! Create a new Swift-2 branch for now


show blank about 10s after app splash screen disapear

this issue isn't solved after 0.0.45 version.I create new ionic project and build  with 0.0.47 0.0.48 1.0.0,app will show blank about 10s after app splash screen disapear,then homepage shown.0.0.45 is ok.Is there nobody get this problem???

Are you using --prod when viewing your project? Otherwise you are getting develop mode which is optimized for debugging but not for speed.

use
ionic build android --prod

Yes, use --prod 🐱
Thanks,
Dan


ES6 class You cannot rename this element

From @mikehaas763 on May 23, 2016 16:35

VSCode Version: 1.1.1
OS Version: OS X El Capitan 10.11.5

Steps to Reproduce:

Create an ES6 class with a constructor

export class AppEnvironment {
    constructor(environment) {
        this.environment = environment;
    }
}

right click the environment symbol that's part of the this.environment expression -> click rename symbol
Rename the symbol
"You cannot rename this element"

I'm aware that this probably doesn't work because it's just not implemented yet. Just want to bring it up to hope it gets implemented.
Copied from original issue: Microsoft/vscode#6680

This should work in a .js file, but not a .ts file.

Symbols weren't being created for this.x = ... assignments in ES6 constructors. Fix is up at #8844


.NET 8 project template changes

New features have been sneaked into the GA build. This includes project template changes:

Changes to MainPage.xaml
dotnet_bot.svg replaced with dotnet_bot.png
Colors and styles updated

https://github.com/dotnet/maui/pull/18379
https://github.com/dotnet/maui/pull/18550

Associated WorkItem - 181000

Taken care of by #1868


More NYT API updates

Hi, thanks for all your work on this!
I just pulled this repo today and have been having difficulty getting the endpoints to work...
I've refactored it to call a new v3 endpoint. If you would like, I can publish my branch for you to review and pull, but I don't want to step on your toes.
As a bonus, I've added a parameter that will pull Mini and/or Bonus puzzles as well :)
LMK if that would be helpful

Cool! What's the best way to get the changes over to you? I don't have permission to push a branch, but I can fork and push to a repo of my own if you'd prefer to keep this one clean

The easiest way is to make a PR by creating a fork, pushing your branch to your fork, and creating a pull request against this repo. See this GitHub reference: https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request-from-a-fork.
Ideally, if you have the time and willingness to address any feedback that comes up, we can just go through the PR review process and merge your changes. Otherwise, I can take over and give you credit.

Oh for god's sake, I'm commenting in the wrong NYT repo :( Please go ahead and close this.

boneheaded mistake :(

Ah darn, no worries. If you're willing to share, I'd still love to learn more about the new API's so that I can incorporate that functionality into this repo when I someday™ find the time and energy.

Heh. Good luck with the magical time and energy. I found it for this project while I avoided other stuff I'm supposed to be doing.  I did what I did by listening in on Chrome - there may be much better and more complete approaches.  here's the branch I've set up as a PR for the project I actually am working on:
https://github.com/kgweber-um/nyt-crossword-stats/tree/v3-fix


Remove ability to create a new FCC account using GitHub

As a user, the initial email address I used to create my account will remain my email address even if I have a different email address on GitHub.

As a user, when I visit the /signin path, I only see an option to sign up with email, or to click a link that says "click here if you already have an account" - which then takes me to a sign in view with both email and github login options.

Disable the ability for github OAuth to create a new account

edit(@berkeleytrue): Updated user stories

@QuincyLarson i think at the time of registration if we authenticate the user by sending a OTP to there register mobile number then it Increase the security level. Because it is easy to create lot's of fake email by using one single number.

@AkiraLaine asked in chat how these duplicate accounts are being created.

A camper will create an FCC account with an email address. They will create a GitHub account, but fail to link it to their FCC account. Then when they return, they will click the "sign in with GitHub" button. This will create a brand new FCC account. They will get upset and blame us for losing all their user data.

A user will initially create their FCC account using GitHub. Their GitHub account will be configured so that we don't get their email address - or it will be associated with a completely different email address. But they won't know this, and on a subsequent visit to FCC, they will try to sign in with an email address. This will create a brand new FCC account. They will get upset and blame us for losing all their user data.

Again, both of these things happen many times a day, and I suspect most events are unreported. Instead of messaging us to tell us what happened, most campers just say "screw this" and quit using Free Code Camp. Even if they do email to explain what happened, it is still a negative user experience that is entirely avoidable.

I agree. In the past I had 2 accounts because I signed in with the email first, then with github. I don't remember, but probably I had to send an email to @QuincyLarson to ask for help...

This can be taken up after passwordless has been integrated.

@raisedadead OK - sounds good.


Azure LoadBalancer InvalidExpandQueryOptionValue

I'm trying to run a very simple test to see if the load balancer exists using this code:
import (
	"testing"

	"github.com/gruntwork-io/terratest/modules/azure"
	"github.com/gruntwork-io/terratest/modules/terraform"
	"github.com/stretchr/testify/assert"
)

func TestTerraformAzureLB(t *testing.T) {
	t.Parallel()

	subscriptionID := "<redacted>"

	// Configure Terraform setting up a path to Terraform code.
	terraformOptions := &terraform.Options{
		// The path to where our Terraform code is located.
		TerraformDir: ".",
	}

	// At the end of the test, run `terraform destroy` to clean up any resources that were created.
	defer terraform.Destroy(t, terraformOptions)

	// Run `terraform init` and `terraform apply`. Fail the test if there are any errors.
	terraform.InitAndApply(t, terraformOptions)

	// Run `terraform output` to get the values of output variables
	resourceGroupName := terraform.Output(t, terraformOptions, "lb_resource_group_name")
	expectedLBName := terraform.Output(t, terraformOptions, "lb_name")

        // Check Load Balancer exists.
        actualLBExists := azure.LoadBalancerExists(t, expectedLBName, resourceGroupName, subscriptionID)
        assert.True(t, actualLBExists)

This returns this error output.  It appears like it may be an issue with the azure CLI, but I'm not sure what's going on.  In the below output, it returns the actual subscription ID in place of "redacted subscriptionID" (redacted for security purposes).  I downloaded the latest version of azure CLI for macos (2.34.1) to no avail.
loadbalancer.go:15:
                Error Trace:    loadbalancer.go:15
                                                        my_test.go:35
                Error:          Received unexpected error:
                                network.LoadBalancersClient#Get: Failure responding to request: StatusCode=400 -- Original Error: autorest/azure: Service returned an error. Status=400 Code="InvalidExpandQueryOptionValue" Message="$expand query option value is invalid. The resource does not have property "redacted subscriptionID" or the property does not represent a reference to another resource." Details=[]

The resources get created and the outputs all look good.  It's just the terratest function that appears to be failing.  Even if I hard-code the resource names instead of using output variables, it still fails with the above error.

@cochrasc looking into it

Fixed in https://github.com/gruntwork-io/terratest/releases/tag/v0.40.7


Dockerfile moves files to wrong location

Hi, this is a bug here, this will move both the tar.gz file and the apache-activemq-X.XX.X directory into /opt/activemq so then the bin directory becomes /opt/activemq/apache-activemq-X.XX.X/bin instead of /opt/activemq/bin.
https://github.com/disaster37/activemq-kube/blob/a442a60c364d0d2cf601eca905d8bcf3910f1d34/docker/Dockerfile#L25
That means when you use sed on a conf file a few lines down, that file won't be in /opt/activemq/conf:
https://github.com/disaster37/activemq-kube/blob/a442a60c364d0d2cf601eca905d8bcf3910f1d34/docker/Dockerfile#L29

I not really understand that you need.
You can check it by:
docker run -ti webcenter/activemq-kube:5.16.0 ls /opt/activemq


Class parameter incorrectly treated as bivariant

🔎 Search Terms
class parameter generic bivariant constructor typeof extends
🕗 Version & Regression Information

This is the behavior in every version I tried

⏯ Playground Link
https://www.typescriptlang.org/play?ts=5.3.0-dev.20231026#code/C4TwDgpgBAggRgZ2AJwIYGNirgGwgYQHsA7JZAV00OQB4BLUrY9aAXigG8BfAPinexkMwKMQgB3KAAoAsACgAkADoVqZAHMEALlEQAbhGQBtALryAlPz4MkqZhHnzQkKAElGdlgHkAZjXQkZJTA1Hys8goBjBRUyFAQAB7AEMQAJgiwiCjC2HhE0cHU9MQ+hlA2TCx8APzlHvZQOmIGyI5y6DioCBkAYoSEnBGpEB1q0HBqOijkDnJcbaPdUAAKyIQhNGBrIfFJKemZQpi5BIHTsfyH2ce4pwWxfBxDI53I0BWeEDrutva+m9tCDx5PM5PIAPTgqBeADWTnA0Bgl1W60IRgARB97OizHJIVACQA9aptfGw+EuABCyMBNGcEEIPigfSBGKxLBxEKhRJJYLxUPJcnpUHwlyRiWSaQy1Nq02gOh8qBwCFm+J5pKhABUABZ0DIIbWEcg4VJQODQRXK2bCgBaNNRu0lBxRG3pjOZ-RqUDljSglpVXIJUGJQA
💻 Code
type AbstractableConstructor<instance = {}> = abstract new (
	...args: never[]
) => instance

type InstanceOf<constructor> =
	constructor extends AbstractableConstructor<infer instance> ? instance : never

class Foo {
	declare bar: true
}

class Proto<proto extends AbstractableConstructor = AbstractableConstructor> {
	declare instance: InstanceOf<proto>
}

// Ok
type A = Proto["instance"]
//   ^? {}

// Ok
type B = Proto<typeof Foo>["instance"]
//   ^? Foo

// Ok
type C = A extends B ? true : false
//   ^? false

// This should be false
type Z = Proto extends Proto<typeof Foo> ? true : false
//   ^? true

🙁 Actual behavior
proto is treated as bivariant with no structural comparison, resulting in Z evaluating to true.
🙂 Expected behavior
proto should be treated as covariant as only its return type is used, or compared structurally, resulting in Z evaluating to false.
Additional information about the issue
No response

Pretty weird. Thankfully easy to work around by putting an out annotation on proto

Like @RyanCavanaugh said, the workaround is trivial once you know that this is happening, but getting to that point? Probably much less so in a real-world scenario.
@Andarist mentioned that it might be related to the variance being "unmeasurable." If it can't be inferred accurately, I'd rather have to explicitly cast if I want to allow an assignment like this than get a false positive when I don't.
Is there any way in this situation to treat the parameter as invariant rather than bivariant without breaking an unacceptable amount of existing code?

We could potentially consider some sort of diagnostic when variance is measured as independent as that is generally not intended. However, that no doubt would be a breaking change and would need to be under (yet another) compiler switch.
Alternatively this could be a lint thing, provided the necessary type checker information is exposed in our API.

Hmm, actually, we measure InstanceOf to be bivariant and therefore Proto also ends up measuring bivariant. The bivariance comes from effects of the rule:
// Two conditional types 'T1 extends U1 ? X1 : Y1' and 'T2 extends U2 ? X2 : Y2' are related if
// one of T1 and T2 is related to the other, U1 and U2 are identical types, X1 is related to X2,
// and Y1 is related to Y2.

It does seem a bit arbitrary to pick bivariance as we don't end up measuring any differences in outcomes between the marker types we use for variance probing. Effectively, we're saying that when we can't measure variance for a conditional type, we regard that conditional type to be bivariant.

@ahejlsberg
InstanceOf is treated as covariant correctly here.
type T1 = InstanceOf<AbstractableConstructor> extends InstanceOf<typeof Foo> ? true : false;
//   ^? type T1 = false
type T2 = InstanceOf<typeof Foo> extends InstanceOf<AbstractableConstructor> ? true : false;
//   ^? type T2 = true

InstanceOf is treated as covariant correctly here.

Right, what's going on here is that InstanceOf<AbstractableConstructor> and InstanceOf<typeof Foo> are resolved to {} and Foo respectably before the conditional type is evaluated. So, it's like writing {} extends Foo ? true : false, and at that point we don't even consult the variance computed for InstanceOf.
But in the case of relating two instances of Proto we do consult the variance information, and, since it claims bivariance, we consider the Proto<AbstractableConstructor> and Proto<typeof Foo> to be related in both directions. You can see the difference by forcing a structural comparison:
class Proto2<proto extends AbstractableConstructor = AbstractableConstructor> {
	declare instance: InstanceOf<proto>
}

type Z2 = Proto extends Proto2<typeof Foo> ? true : false
//   ^? false

Ideally we'd detect when conditional type variance is unmeasurable and instead force structural comparisons, but we've tried that in the past with pretty disastrous results for performance.

I found this a bit hard to understand, so put together a simpler repro. Figured I'd post it here in case it helps someone else:
type Id<T = {}> = T

type ConditionalId<T> = T extends Id<infer Value> ? Value : never

class Box<B> {
  declare value: ConditionalId<B>
}

// Ok
type A = Box<{}>["value"]
//   ^? {}

// Ok
type B = Box<{ foo: true }>["value"]
//   ^? { foo: true }

// Ok
type C = A extends B ? true : false
//   ^? false

// This should be false
type Z = Box<{}> extends Box<{ foo: true }> ? true : false
//   ^? true


Bug Report with new failing test related to ObjectExpression

Bug Report:
Expected: When disabling config for ObjectExpressionOpeningBrace, ObjectExpressionClosingBrace and Property, we would expect these tests to pass.

Just to clarify, the tests are supposed to be failing currently, because I am just reproducing what I think is a bug.
I have no idea how to fix this myself, but with some guidance, I could give it a shot!


Fix for expected PDU_TYPE_DEMAND_ACTIVE 0001, got 0007

This is related to issue #729 and it is probably #729's cause.
The problem here is that during rdp_client_connect_demand_active, an error PDU may be sent from the server.   The code is set up to handle unexpected PDUs, but it skips over a fixed number of bytes (RDP_PACKET_HEADER_MAX_LENGTH) rather than basing it on the content of the headers (TPKT+X224+T125, etc.).  In summary, it skips over 15 bytes when it should be skipping over 14, and then when the demand_active parsing picks up again, it starts in the wrong place and fails.
The fix is to use the same header-parsing code to handle the error packet header, rather than relying on a fixed offset.  That code is smart enough to compute the offsets correctly.

Fix broken in Debian Jessie:
xfreerdp --version
This is FreeRDP version 1.1.0-beta1 (git n/a)
xfreerdp /u:user /p:pass /app:"||calc" /v:machine /cert-ignore
loading channel rail
connected to machine:3389
expected PDU_TYPE_DEMAND_ACTIVE 0001, got 0007
SSL_read: I/O error: Success (0)
works obviously if you omit /app


Dirty file marker (the dot) no longer appers when a file is modified but not saved.

Issue Type: Bug
Steps to reproduce
1\ Open a file.
2\ Make modifications to the file.
3\ No dot next to the name in the file tab appears, even though the contents in the editor do not match what is on disk anymore.
The indicator still seems to show up with a NEW file up until the moment you save it.
1\ Create a NEW file.
2\ Make modifications to the empty file.
3\ The dot next to the "Untitled-#" appears.
4\ Save the file (dot dissappears).
5\ Make modifications to the file.
6\ No dot next to the name in the file tab appears, even though the contents in the editor do not match what is on disk anymore.
Tested with all extensions disabled, same behavior.

Auto save enabled?

Thanks, that does appear to be the case, not sure how it got turned on.


Add MDMS method and examples

Add multi-dataset multi-subject (MDMS) SRM analysis method and two example files.

The pr-check finished successfully on my computer and Princeton Adroit cluster, but the Travis CI build couldn't complete here. It says "No output has been received in the last 10m0s, this potentially indicates a stalled build or something wrong with the build itself." Also, I don't have the permission to view the output from the Jenkins linux build, so I don't know what happened there.

Could anyone take a look?

The linux failure seems to be related to failure of installying scipy... Not sure why. I think it is unrelated to your code.

The Travis CI build couldn't complete. It says "No output has been received in the last 10m0s, this potentially indicates a stalled build or something wrong with the build itself." Did anyone have the same issue before? Is there a way to workaround or ask it to build again with the same code?

Any of the @brainiak/committers can restart Travis builds from the Travis website.

I checked my permission status and it turns out I don't have the write access to this repo, so I can't restart the build (I couldn't click the restart build button or restart from the console).

@hejiaz, I'm sorry I was not clear in my previous comment. I didn't mean that you should be able to restart the build, I meant the member of the committers team.
I can build your branch on my computer. I'll investigate the Travis issue. In the meantime, we should get a review. If no one volunteers, can you suggest someone?

@mihaic Thank you! I suggest Mingbo @lcnature as the reviewer.

@hejiaz, @lcnature, could you please have another look at this PR?

@hejiaz @mihaic Sorry. It was my fault. I will catch up asap