Building for OSX currently doesn't work

Currently the nuitka build for OSX doesn't work.
I don't really care enough to trouble-shoot and fix it, but if anyone wants it to work, the issue seems to be related to this issue: https://github.com/Nuitka/Nuitka/issues/1024 but please don't re-open / bother the nuitka developer there. It seems to be an OSX/python issue.
Anyways, judging from the output, it seems the osx github runner doesn't have the Tcl library in the right place, so maybe look in that direction?
Runner error:
Nuitka:INFO: Starting Python compilation with Nuitka '1.3.8' on Python '3.10' commercial grade 'not installed'.
Nuitka-Plugins:INFO: tk-inter: Injecting pre-module load code for module 'PySimpleGUI':
Nuitka-Plugins:INFO: tk-inter:     Need to make sure we set environment variables for TCL.
Nuitka-Plugins:INFO: tk-inter: Injecting pre-module load code for module 'tkinter':
Nuitka-Plugins:INFO: tk-inter:     Need to make sure we set environment variables for TCL.
Nuitka-Plugins:INFO: options-nanny: Note, when using 'tkinter', consider using '--disable-console' option. Otherwise high resolution will not be available and a terminal window will open.
Nuitka-Plugins:INFO: pkg-resources: Injecting post-module load code for module 'pkg_resources':
Nuitka-Plugins:INFO: pkg-resources:     Registering Nuitka loader with "pkg_resources".
Nuitka-Plugins:INFO: multiprocessing: Injecting pre-module load code for module 'multiprocessing':
Nuitka-Plugins:INFO: multiprocessing:     Monkey patching "multiprocessing" load environment.
Nuitka-Plugins:INFO: multiprocessing: Injecting post-module load code for module 'multiprocessing':
Nuitka-Plugins:INFO: multiprocessing:     Monkey patching "multiprocessing" for compiled methods.
FATAL: tk-inter: Could not find Tcl, you might need to use '--tcl-library-dir' and if that works, report a bug so it can be added to Nuitka.
Error: Process completed with exit code 1.```

I encounter the same problem, and end up with use pyinstaller
the command is : pyinstaller -F main.py
It can use tcl tk


Allow unauthenticated users to compare

This brings Gitea slightly closer to GitHub parity as far as branch comparisons go. If a repository is public, there's no reason (that I can see) that unauthenticated users shouldn't be able to compare branches.
This pull request improves the unauthenticated user experience ever-so-slightly, by:
1.) Allowing unauthenticated users to compare branches,
2.) Adding "Compare" buttons for unauthenticated users to the repo's home route, so they can easily compare the branch they're viewing like they can on GitHub -- it goes where the Pull Request button normally goes, and actually just replaces the verbiage as the routes are the same.
3.) Changes "New Pull Request" verbiage on the branch listing (e.g. https://try.gitea.io/kevans/test_repo/branches/) to "Compare" for unauthenticated users, no longer leading to a sign-in form.

These changes could also be previewed on my personal Gitea instance; note that browsing the FreeBSD repo isn't necessarily feasible in Gitea quite yet due to the massive number of subdirectories and fairly diverse/large history:

https://git.kevans.dev/kevans/freebsd/src/branch/luaconf -- noting the new "Compare" button next to  "Branch: luaconf", where "New Pull Request" would have otherwise gone
https://git.kevans.dev/kevans/freebsd/branches/ -- noting the "Compare" verbiage where it tradionally says "New Pull Request"
https://git.kevans.dev/kevans/freebsd/compare/master...luaconf -- noting that the flow is pretty clean, "Compare commits" -> branch selection -> commit log -> diff

@kevans91 CI is failing (related)

Apologies; still haven't worked out a means to execute any of the test suite over here, and I have no Linux machines/VMs for the Docker stuff inherently required. =-(

@kevans91 no problem :)
and for the testing stuff, just have a look at https://docs.gitea.io/en-us/hacking-on-gitea
I dont know if tests works on windows or freebsd but building gitea should work :)

Rebased now that pull #11264 landed, which added a formal grouping for /:username/:reponame endpoints that don't require authentication.

Ping LG-TM


Result::unwrap()on anErr` value:  Conversion("cannot interpret Numeric(Some(3266644.0)) as an i32 value")

I'm new to rust, so I might be missing something. I'm getting the error in the title when trying to get the result from a query. This is the code:
let row = client
        .simple_query("SELECT ident_current('Document') + ident_incr('Document')")
        .await?.into_row()
        .await?.unwrap();

let last_document_id = row.get::<i32, _>(0).unwrap();

I used the same code with this query
SELECT MAX(d.Number) FROM Document d

And it ran without problems, which is strange because the SQL output is similar.
Full error:
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Conversion("cannot interpret Numeric(Some(3266644.0)) as an i32 value")', src\main.rs:27:32
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

This is what SQL returns:
       |
-------+
3266644|

I also tried using &str and f32 and the result is the same.

After studying the SQL output carefully, I noticed the SELECT MAX()… query returns an int and the SELECT ident_current... returns Numeric. Using SELECT CAST (... as int) removes the error.
Is it possible to solve the problem without using SQL CAST() function?

I was looking for something else in the documentation when I found the numeric module the library offers, so that solves it.


(Dev/INT) Prepare to run BPN:DID Resolver Component

Scope
Participant gets enabled to resolve a participant BPN to a did
Possible Reference solution: https://github.com/Metaform/bdrs/tree/main
https://github.com/eclipse-tractusx/bpn-did-resolution-service
###Architecture

Authentication
Thinking about enabling access via SSI VCs (e.g. all companies with a membership credential can access the service)
The VC is ideally put into the header
Request Details
GET via BPN the did (via the did-regsitry)
{
"content": {
   ["{BPNL}","{did}"],
   ["{BPNL}","{did}"],
   ["{BPNL}","{did}"]
 }
}

only response those where did is existing
if we have duplicates; we provide

Non-Tech

Highly available
All connectors (no matter where they are located) would need to call the service (...note: we are thinking about a connector cache strategy)

Details
After running the refinement; we aligned that the reference solution https://github.com/eclipse-tractusx/bpn-did-resolution-service will be taken over by us.
We will run the service inside our internal env.; the team around the reference solution development will support on functional development as well as bug fixing.
Ticket stays in place for Helm Chart review; environment config file creation; etc....

Open discussion: authentication with SSI or OIDC

consortia specific config is kept in the following branch: https://github.com/eclipse-tractusx/bpn-did-resolution-service/tree/chore/consortia-env

BDRS runs now stable on int (and dev) with the 0.0.4 version
https://github.com/eclipse-tractusx/bpn-did-resolution-service/tree/chore/0.0.3-consortia-envs

setting ticket to "user ready" tests are successfully started


Json Serializer Settings Ignored while unit testing endpoints

Json Serializer settings are not respecting JsonSerializer settings for ignoring cycles
**This only seems to be happening when calling SendAsync() in the endpoint
Setting Response = ... in the endpoint does seem to work as a workaround but is inadequate if I want to check status codes.
app.UseFastEndpoints(c =>
{
    .Endpoints.RoutePrefix = "api";
    c.Serializer.Options.ReferenceHandler = System.Text.Json.Serialization.ReferenceHandler.IgnoreCycles;
});

In the test itself I have even tried to configure the Json Options
var endpoint = Factory.Create<Endpoint>(ctx =>
  {
    ctx.AddTestServices(s => s.ConfigureHttpJsonOptions(opts => opts.SerializerOptions.ReferenceHandler = System.Text.Json.Serialization.ReferenceHandler.IgnoreCycles));
   }, _context, A.Fake<IOutputCacheStore>());

This should now work starting v<IP_ADDRESS>-beta.
Thanks for reporting.


Invalid french translation for autocomplete values address-line1, address-line2, address-line3

Request type

[ ] Please close this issue, I accidentally submitted it without adding any details
[ ] New documentation
[x] Correction or update

Details
The French description for autocomplete values address-line1, address-line2, address-line3 does not have the same meaning in French and in English.
The correct formulation is in English, and it says:

Each individual line of the street address. These should only be present if the "street-address" is not present.

Based on that, the French translation should be:

Des lignes individuelles pour décrire l'adresse postale. Ces valeurs peuvent être utilisées seulement lorsque la valeur street-address est absente.

https://developer.mozilla.org/fr/docs/Web/HTML/Attributs/autocomplete

@xel1045 Thanks for taking the time to post this. I'm closing because the MDN team doesn't have time to maintain translations, but this is a wiki so you are able to make this change yourself and we'd welcome you doing so.


Fix a little grammar in README.md

Hi, I have fixed a little grammar in README.md, check it out.

Thank you so much @harry34

It's my pleasure to be a small part of your wonderful project!


failed to memset memory: HIP_ERROR_InvalidValue

Please make sure that this is a build/installation issue. As per our GitHub Policy, we only address code/doc bugs, performance issues, feature requests and build/installation issues on GitHub. tag:build_template
System information

OS: Linux Ubuntu 18.04
TensorFlow installed from (source or binary): binary
TensorFlow version: 1.15 rocm
Python version: 3.6
ROCm/MIOpen version:
GPU model and memory: 5700XT

Describe the problem
I am following the guild on https://rocm.github.io/install.html#rocm-binary-package-structure to install the ROCm related libs and tool chains. So far below command run properly,
/opt/rocm/bin/rocminfo
/opt/rocm/opencl/bin/x86_64/clinfo
However, on running a simple tensorflow example:
import tensorflow as tf
mnist = tf.keras.datasets.mnist
(x_train, y_train),(x_test, y_test) = mnist.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0
model = tf.keras.models.Sequential([
tf.keras.layers.Flatten(),
tf.keras.layers.Dense(512, activation=tf.nn.relu),
tf.keras.layers.Dropout(0.2),
tf.keras.layers.Dense(10, activation=tf.nn.softmax)
])
model.compile(optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
model.fit(x_train, y_train, epochs=5)
model.evaluate(x_test, y_test)
Error happens:
2019-12-18 16:10:46.391155: E tensorflow/stream_executor/rocm/rocm_driver.cc:506] failed to memset memory: HIP_ERROR_InvalidValue
Segmentation fault (core dumped)
Any other info / logs
Full log:
2019-12-18 16:10:40.624634: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libhip_hcc.so
2019-12-18 16:10:40.690714: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1629] Found device 0 with properties:
name: Device 731f
AMDGPU ISA: gfx1010
memoryClockRate (GHz) 0.1
pciBusID 0000:67:00.0
2019-12-18 16:10:40.722320: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library librocblas.so
2019-12-18 16:10:40.723078: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libMIOpen.so
2019-12-18 16:10:40.724007: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library librocfft.so
2019-12-18 16:10:40.724174: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library librocrand.so
2019-12-18 16:10:40.724237: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1746] Adding visible gpu devices: 0
2019-12-18 16:10:40.724495: I tensorflow/core/platform/cpu_feature_guard.cc:142] Your CPU supports instructions that this TensorFlow binary was not compiled to use: SSE4.1 SSE4.2 AVX AVX2 AVX512F FMA
2019-12-18 16:10:40.736117: I tensorflow/core/platform/profile_utils/cpu_utils.cc:94] CPU Frequency:<PHONE_NUMBER> Hz
2019-12-18 16:10:40.739055: I tensorflow/compiler/xla/service/service.cc:168] XLA service 0x55a3203cbbf0 executing computations on platform Host. Devices:
2019-12-18 16:10:40.739095: I tensorflow/compiler/xla/service/service.cc:175]   StreamExecutor device (0): Host, Default Version
2019-12-18 16:10:40.739289: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1629] Found device 0 with properties:
name: Device 731f
AMDGPU ISA: gfx1010
memoryClockRate (GHz) 0.1
pciBusID 0000:67:00.0
2019-12-18 16:10:40.739340: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library librocblas.so
2019-12-18 16:10:40.739362: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libMIOpen.so
2019-12-18 16:10:40.739384: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library librocfft.so
2019-12-18 16:10:40.739404: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library librocrand.so
2019-12-18 16:10:40.739468: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1746] Adding visible gpu devices: 0
2019-12-18 16:10:40.739582: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1159] Device interconnect StreamExecutor with strength 1 edge matrix:
2019-12-18 16:10:40.739610: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1165]      0
2019-12-18 16:10:40.739632: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1178] 0:   N
2019-12-18 16:10:40.739804: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1304] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:0 with 7524 MB memory) -> physical GPU (device: 0, name: Device 731f, pci bus id: 0000:67:00.0)
2019-12-18 16:10:46.391155: E tensorflow/stream_executor/rocm/rocm_driver.cc:506] failed to memset memory: HIP_ERROR_InvalidValue
Segmentation fault (core dumped)

Hi @juliusshufan , ROCm currently doesn't have full GFX10 architecture support. We'll update this thread when we have more information to share.

@sunway513 Thanks for the information, is GFX10 support on the ROCm roadmap?

Hi @juliusshufan , I don't have more information to share at the moment.
For ROCm support status, please check with the ROCm main repository below:
https://github.com/RadeonOpenCompute/ROCm


I've been using it for nearly three months. I hope the following functions can be added.

In the design table interface, a row of fields is copied. After pasting, it is not pasted, but a new field

In the data editing interface, select a line to copy and paste in a new line. The data pasted is incorrect
3.Add batch new data in the data editing interface. You want to paste one column by one.
For example, 1. If I want to insert 100 rows of data and 3 fields, I can paste each column three times to complete the import of 100 rows of data.
For example, 2. Excel has 100 lines of data that can correspond to the data field. Copy 100 lines of data directly in Excel, paste 100 lines of data into the tool and save it.

hi @blankhcn ,
point 2 and 3, if I understand you right, could be resolved if you'll use Advanced Paste (Ctrl+Shift+V) instead of usual Paste (Ctrl+V)

We hope that the function of designing data table field can be realized, which is often needed and practical 。


add version 10 to package.json, copy tests

All I did was add 10 to the list of available knex version in package.json, and make a copy of the 0.9.0 test dir and name it 0.10.0 and then run the tests with knex 10 installed. I compared 0.8.0 and 0.9.0 test dirs but didn't see a diff so I'm assuming it's up to me to install each knex version to test with, which I did. It would be nice to have each version installed locally and required in each test dir so that this can be used on travis-ci.

@fourq Thank you for the PR, As for the multiple versions do you have a suggestion on how to achieve this? Without mulitlpe version support (https://github.com/npm/npm/issues/5499) it becomes more intensive.
One option would be to use something like shelljs and parse the peerDependencies for knex, install and run each version over the tests.

well I was thinking that is the devDeps have each version needed, require('knex@0.9.0'), etc... could be used in the test dirs

Don't think we can do that, as it will only install one version of the same package currently to my knowledge.

hmm, maybe a github url will do the trick

didn't work for me tried both tag and archived tar.gz but both failed to install. error regarding missing bin/cli.js

I'll ask a few people their opinions and get back to ya, thanks!

ha, I see we both had the same idea https://github.com/npm/npm/issues/5499

What about having a package.json for each test version directory?


(re) connect PRs and issues to Slack

New pull requests are not showing up in the mobile slack channel any more.

Turns out this was a slack configuration issue. All is good now thanks to @colinta's magic Slack settings management. Gonna close it.


Warnings fixed

What: Pure refactoring. Fixing some typical minor problems with the code.
How: Wandering around the code (trying to learn the functionalities). Also using IntelliJ Code Inspection.

I appreciate your work, thanks! I'll look at all your submissions tonight.


Cargo-verify: always patch with --features

This makes processor-specific feature tests return false so that,
for example, vectorized versions of code are disabled.
This is probably good to use with SeaHorn as well - but I am
only using this with KLEE because I have not tested with SeaHorn.

LGTM


now scale bug

now scale [deployment] 1 1
Prints in terminal:
> Scale rules for bru1, sfo1 (min: 1, max: 1) saved [6s]
> ✔ Scaled 1 instance in sfo1 [3s]
> ✔ Scaled 1 instance in bru1 [5s]
> Success! Scale state verified [5s]

Shows in menu bar app:

What @tomsvogel said is correct. However, we should definitely work on displaying this in a better way and showing exactly which DC received which scaling rules.

Got it. So there's no way of keeping only one instance alive? I have a cron job running and with 2 instances running in parallel it's firing twice.

@joshhopkins then you need to shutdown one DC
now scale [deployment] [sfo1 / bru1] 0 0

Right, that's how to shutdown a DC – thanks @tomsvogel! Yeah – jobs are started with npm start


feat: symmetry of the second derivative over R or C

We expand the API around maps with symmetric second derivatives on vector spaces, to be used in #18396 for the Lie bracket of vector fields on manifolds. We also extend the fact that C^2 maps have symmetric second derivatives, already known on the reals, to a general RCLike field.

bors r+

bors r+


Option to not have the locale anywhere in the URL

Is your feature request related to a problem? Please describe.
As I understand the only two options next-intl currently provides is having the locale either as a prefix of the path, or as a subdomain. I'd like to use this library for a large application with (almost) everything behind authentication. The end user will have the option to choose their preferred language to use the application in, but I don't like and don't need the locale to show up in the URL.
Describe the solution you'd like
I would like to:

not have to put my pages inside a [locale] directory
have the middleware not determine the locale based on the current URL and/or not redirect/rewrite based on the locale.
be able to retrieve the current locale in my app/layout.tsx, so I can pass it on to NextIntlClientProvider, or maybe NextIntlClientProvider can retrieve the locale internally.

Describe alternatives you've considered
I've actually written my own middleware. Copy and pasting the bits of code from this library that I needed, leaving out the parts that didn't suit my use case. At the end, I both save the locale in a cookie and in a custom response header.
In the app/layout.tsx I retrieve the current locale from the custom response header (couldn't make it work to read the cookie), and passed the value on to the NextIntlClientProvider.
I am using this library in a Next13 app with the app router. So far I've only got it set up for client components. I have looked at the setup needed for server components, but couldn't figure out how to avoid having the locale in the URL.
So, I can use your library now, with my middleware setup myself. I would love to see this option appear and be able to set things up more properly and start to make use of server components as well.
Thanks for this beautiful library!

Thanks for the quick response @amannn
localePrefix: 'never' sounds good. Still making use of cookie and accept-language is what I would do as well.
Why is it still necessary to have the routes in a [locale] directory (and do a redirect based on locale)?
Let me see if I can indeed contribute this feature. Thanks for pointing to the relevant code.

@boris-arkenaar would you mind sharing your custom middleware?
I'm encountering the same issues:

I don't want to have a [locale] directory
because I don't want the middleware to do all these redirects/rewrites

Currently, I'm using another library for a full-authenticated app with a lot of middleware conditions (for authorization, old browsers detections and other stuff) and to make i18n work I simply have to add a language cookie based of Accept-Language.

Soooo actually it's super easy, I just set a cookie NEXT_LOCALE=en for instance and it works 🥰

Why is it still necessary to have the routes in a [locale] directory (and do a redirect based on locale)?

Having the locale available as a segment in the URL enables static rendering of different language versions of your app (works in the latest stable version for Client Components and is on the roadmap for the RSC beta). Furthermore, the locale that is received in layouts and pages can also be used for the Metadata & Route Handler API.
I understand that it might feel unnecessary to require the [locale] folder if you intend to never have it be part of the routing. I think localePrefix: 'never' would be really useful though because then it's just a matter of flipping a config option to choose between different routing patterns and static rendering is supported everywhere.

Soooo actually it's super easy, I just set a cookie NEXT_LOCALE=en for instance and it works 🥰

That's true, this workaround will work currently, because next-intl first checks the presence of a cookie in components. There might be some updates to this part of the library in the future when support for static rendering is added though (there are some details on this here: https://github.com/amannn/next-intl/pull/149).
There will likely be an upgrade path if the cookie solution works for you currently, but localePrefix: 'never' would be the cleanest option IMO, without having to rely on internals.
Hope this helps!

Let me see if I can indeed contribute this feature. Thanks for pointing to the relevant code.

Fantastic, let me know if I can help with something! I've just migrated the test runner to vitest this week, should be more fun to work with tests now!

@boris-arkenaar would you mind sharing your custom middleware?

middleware.ts
import { RequestCookies } from 'next/dist/compiled/@edge-runtime/cookies';
import { NextResponse } from 'next/server';
import Negotiator from 'negotiator';
import { match } from '@formatjs/intl-localematcher';

import type { NextRequest } from 'next/server';

const COOKIE_LOCALE_NAME = 'NEXT_LOCALE';
const defaultLocale = 'en';
const locales = ['en', 'nl'];

function getAcceptLanguageLocale(
  requestHeaders: Headers,
  locales: Array<string>,
  defaultLocale: string
) {
  let locale;

  const languages = new Negotiator({
    headers: {
      'accept-language': requestHeaders.get('accept-language') || undefined,
    },
  }).languages();
  try {
    locale = match(languages, locales, defaultLocale);
  } catch (e) {
    // Invalid language
  }

  return locale;
}

function resolveLocale(
  locales: Array<string>,
  defaultLocale: string,
  requestHeaders: Headers,
  requestCookies: RequestCookies
) {
  let locale;

  // Prio 1: Use existing cookie
  if (requestCookies) {
    if (requestCookies.has(COOKIE_LOCALE_NAME)) {
      const value = requestCookies.get(COOKIE_LOCALE_NAME)?.value;
      if (value && locales.includes(value)) {
        locale = value;
      }
    }
  }

  // Prio 2: Use the `accept-language` header
  if (!locale && requestHeaders) {
    locale = getAcceptLanguageLocale(requestHeaders, locales, defaultLocale);
  }

  // Prio 3: Use default locale
  if (!locale) {
    locale = defaultLocale;
  }

  return locale;
}

export async function middleware(req: NextRequest) {
  const res = NextResponse.next();

  const locale = resolveLocale(
    locales,
    defaultLocale,
    req.headers,
    req.cookies
  );

  const hasOutdatedCookie =
    req.cookies.get(COOKIE_LOCALE_NAME)?.value !== locale;

  if (hasOutdatedCookie) {
    res.cookies.set(COOKIE_LOCALE_NAME, locale, {
      sameSite: 'strict',
    });
  }

  res.headers.set('x-my-locale', locale);

  return res;
}

export const config = {
  /*
   * Match all request paths except for the ones starting with:
   * - api (API routes)
   * - _next/static (static files)
   * - _next/image (image optimization files)
   * - favicon.ico (favicon file)
   */
  matcher: '/((?!api|_next/static|_next/image|favicon.ico).*)',
};

layout.tsx
import { NextIntlClientProvider } from 'next-intl';
import { headers } from 'next/headers';
import { notFound } from 'next/navigation';

export default async function RootLayout({
  children,
}: {
  children: React.ReactNode;
}) {
  const locale = headers().get('x-my-locale') || 'en';
  let messages;
  try {
    messages = (await import(`../messages/${locale}.json`)).default;
  } catch (error) {
    notFound();
  }

  return (
    <html lang={locale}>
      <body>
        <NextIntlClientProvider locale={locale} messages={messages}>
          {children}
        </NextIntlClientProvider>
      </body>
    </html>
  );
}

@amannn Hello,
I'm having this issue, how can I handle errors and not-found pages, using notFound function?
All the locale context is missing, so I have a not-found localized page without language.
Thanks in advance!

@kylemorena I'd kindly ask you to not hijack issues for usage questions. This question was asked here before, hope this helps: https://github.com/amannn/next-intl/discussions/329. I might include docs for this in the future, as the question has come up a few times before (but is ultimately more related to Next.js itself than next-intl).

@kylemorena I'd kindly ask you to not hijack issues for usage questions. This question was asked here before, hope this helps: #329. I might include docs for this in the future, as the question has come up a few times before (but is ultimately more related to Next.js itself than next-intl).

@amannn Thank you for your prompt response.

@V1RE I'll rebase the RSC branch and publish a new beta—should be ready in a bit!

<EMAIL_ADDRESS>brings enhanced support for this use case: announcement.
Maybe this can be helpful to some of you!


Main menu blurry text

Affecting only main menu. A14
Vanilla on the right
https://cloud.githubusercontent.com/assets/20729235/17785949/089b00fe-6583-11e6-91bb-516b04a040f0.png
do not want silky&smooth cinematic experience :(
my eyes are bleeding.
11" 1366х768

Not sure what causes this as CCL doesn't change any render settings, it just renders.

Just to be sure tried clean RW (0.14.1249 rev955) with only CCL (d5c91283c0505277efb7e92ee52a4268ca79f304)
Vanilla on the left

Additional information wasn't needed, a screenshot less so.  But thanks anyway.

This appears to be caused by how the "menuOptionsRect" is calculated in the MainMenuDrawer.MainMenuOnGUI() detour.
If you comment out the line:
MainMenuDrawerExt.PaneSize = new Vector2( PaneWidth, PaneHeight );
...the default PaneSize will be used in the menuOptionsRect calculation.  This screws up other things, of course, but it does fix the text blurriness (at least on my desktop - dunno if this repros elsewhere).


rsync --skip-compress plot

@jameswood, any opinions?  I noticed that I was getting low throughput and 100% CPU usage with --compress-level=0.  The man page doesn't seem to explicitly state that level 0 disables compression, rather that non-zero implies --compress.  I dunno, doesn't make a lot of sense.  But I'm getting 70-80 MiB/s over WiFi and 40% CPU usage at the moment with this change.

Mm...  maybe this doesn't cut it.  It's sometimes fast and sometimes still 100% load and slow.  I'll poke some more.

Hey Kyle, I don't really have any input on this one, other than to say that the Mac says rsync: --skip-compress: unknown option
I haven't seen the issues you mentioned, but I have had one Mac that seems to crash during-or-after phase 4 and I'm not sure why. Possibly related to the rsync task?? It was a pretty old Mac Mini that was taking over a day to do a plot anyway, so it has been retired and replaced with a Ryzen.

Hey Kyle, I don't really have any input on this one, other than to say that the Mac says rsync: --skip-compress: unknown option
I haven't seen the issues you mentioned, but I have had one Mac that seems to crash during-or-after phase 4 and I'm not sure why. Possibly related to the rsync task?? It was a pretty old Mac Mini that was taking over a day to do a plot anyway, so it has been retired and replaced with a Ryzen.

Maybe --skip-compress=plot from what I gather looking at the docs might be what it is expecting?

Maybe --skip-compress=plot from what I gather looking at the docs might be what it is expecting?

Ubuntu server:
rsync -h | grep skip-compress
     --skip-compress=LIST    skip compressing files with a suffix in LIST

macOS 11.2.3:
rsync -h | grep skip-compress returns nothing. The options is not available ¯\(ツ)/¯

Mm... maybe this doesn't cut it. It's sometimes fast and sometimes still 100% load and slow. I'll poke some more.

I did some testing... Slow transfers only happened if rsync grabs an existing file and tries to resume that. Inside of -P hides --partial and --progress. The question is if both are needed here, or if partial should be skipped, to ensure full bandwidth all the time.
I think the compression part can be completely left out, i wasnt able to spot a difference in speed or timing. To get out a little more performance one could choose -W to skip delta-transfer algorithm, whatever that means :D

@jameswood, could you share the full output of rsync --help please?  Is this an Apple-provided rsync?  Or maybe from homebrew?
But yeah, I do think at this point that the partial stuff isn't useful.  That's great when both sides can read a pile of data off the disk faster than they can transfer it, but that's not significantly the case here.  I think it's a bit more robust and simple to just restart the transfer if it fails.  Anyways, elsewhere we are going to get arbitrarily configurable options so everyone can pick themselves.

@altendky I'm pretty sure it's the standard system-supplied rsync, it's at /usr/bin/rsync. Output in next post!

James@Rocketmac ~ % rsync --help
rsync  version 2.6.9  protocol version 29
Copyright (C) 1996-2006 by Andrew Tridgell, Wayne Davison, and others.
<http://rsync.samba.org/>
Capabilities: 64-bit files, socketpairs, hard links, symlinks, batchfiles,
              inplace, IPv6, 64-bit system inums, 64-bit internal inums

rsync comes with ABSOLUTELY NO WARRANTY.  This is free software, and you
are welcome to redistribute it under certain conditions.  See the GNU
General Public Licence for details.

rsync is a file transfer program capable of efficient remote update
via a fast differencing algorithm.

Usage: rsync [OPTION]... SRC [SRC]... DEST
  or   rsync [OPTION]... SRC [SRC]... [USER@]HOST:DEST
  or   rsync [OPTION]... SRC [SRC]... [USER@]HOST::DEST
  or   rsync [OPTION]... SRC [SRC]... rsync://[USER@]HOST[:PORT]/DEST
  or   rsync [OPTION]... [USER@]HOST:SRC [DEST]
  or   rsync [OPTION]... [USER@]HOST::SRC [DEST]
  or   rsync [OPTION]... rsync://[USER@]HOST[:PORT]/SRC [DEST]
The ':' usages connect via remote shell, while '::' & 'rsync://' usages connect
to an rsync daemon, and require SRC or DEST to start with a module name.

Options
 -v, --verbose               increase verbosity
 -q, --quiet                 suppress non-error messages
     --no-motd               suppress daemon-mode MOTD (see manpage caveat)
 -c, --checksum              skip based on checksum, not mod-time & size
 -a, --archive               archive mode; same as -rlptgoD (no -H)
     --no-OPTION             turn off an implied OPTION (e.g. --no-D)
 -r, --recursive             recurse into directories
 -R, --relative              use relative path names
     --no-implied-dirs       don't send implied dirs with --relative
 -b, --backup                make backups (see --suffix & --backup-dir)
     --backup-dir=DIR        make backups into hierarchy based in DIR
     --suffix=SUFFIX         set backup suffix (default ~ w/o --backup-dir)
 -u, --update                skip files that are newer on the receiver
     --inplace               update destination files in-place (SEE MAN PAGE)
     --append                append data onto shorter files
 -d, --dirs                  transfer directories without recursing
 -l, --links                 copy symlinks as symlinks
 -L, --copy-links            transform symlink into referent file/dir
     --copy-unsafe-links     only "unsafe" symlinks are transformed
     --safe-links            ignore symlinks that point outside the source tree
 -k, --copy-dirlinks         transform symlink to a dir into referent dir
 -K, --keep-dirlinks         treat symlinked dir on receiver as dir
 -H, --hard-links            preserve hard links
 -p, --perms                 preserve permissions
     --executability         preserve the file's executability
     --chmod=CHMOD           affect file and/or directory permissions
 -o, --owner                 preserve owner (super-user only)
 -g, --group                 preserve group
     --devices               preserve device files (super-user only)
     --specials              preserve special files
 -D                          same as --devices --specials
 -t, --times                 preserve times
 -O, --omit-dir-times        omit directories when preserving times
     --super                 receiver attempts super-user activities
 -S, --sparse                handle sparse files efficiently
 -n, --dry-run               show what would have been transferred
 -W, --whole-file            copy files whole (without rsync algorithm)
 -x, --one-file-system       don't cross filesystem boundaries
 -B, --block-size=SIZE       force a fixed checksum block-size
 -e, --rsh=COMMAND           specify the remote shell to use
     --rsync-path=PROGRAM    specify the rsync to run on the remote machine
     --existing              skip creating new files on receiver
     --ignore-existing       skip updating files that already exist on receiver
     --remove-source-files   sender removes synchronized files (non-dirs)
     --del                   an alias for --delete-during
     --delete                delete extraneous files from destination dirs
     --delete-before         receiver deletes before transfer (default)
     --delete-during         receiver deletes during transfer, not before
     --delete-after          receiver deletes after transfer, not before
     --delete-excluded       also delete excluded files from destination dirs
     --ignore-errors         delete even if there are I/O errors
     --force                 force deletion of directories even if not empty
     --max-delete=NUM        don't delete more than NUM files
     --max-size=SIZE         don't transfer any file larger than SIZE
     --min-size=SIZE         don't transfer any file smaller than SIZE
     --partial               keep partially transferred files
     --partial-dir=DIR       put a partially transferred file into DIR
     --delay-updates         put all updated files into place at transfer's end
 -m, --prune-empty-dirs      prune empty directory chains from the file-list
     --numeric-ids           don't map uid/gid values by user/group name
     --timeout=TIME          set I/O timeout in seconds
 -I, --ignore-times          don't skip files that match in size and mod-time
     --size-only             skip files that match in size
     --modify-window=NUM     compare mod-times with reduced accuracy
 -T, --temp-dir=DIR          create temporary files in directory DIR
 -y, --fuzzy                 find similar file for basis if no dest file
     --compare-dest=DIR      also compare destination files relative to DIR
     --copy-dest=DIR         ... and include copies of unchanged files
     --link-dest=DIR         hardlink to files in DIR when unchanged
 -z, --compress              compress file data during the transfer
     --compress-level=NUM    explicitly set compression level
 -C, --cvs-exclude           auto-ignore files the same way CVS does
 -f, --filter=RULE           add a file-filtering RULE
 -F                          same as --filter='dir-merge /.rsync-filter'
                             repeated: --filter='- .rsync-filter'
     --exclude=PATTERN       exclude files matching PATTERN
     --exclude-from=FILE     read exclude patterns from FILE
     --include=PATTERN       don't exclude files matching PATTERN
     --include-from=FILE     read include patterns from FILE
     --files-from=FILE       read list of source-file names from FILE
 -0, --from0                 all *-from/filter files are delimited by 0s
     --address=ADDRESS       bind address for outgoing socket to daemon
     --port=PORT             specify double-colon alternate port number
     --sockopts=OPTIONS      specify custom TCP options
     --blocking-io           use blocking I/O for the remote shell
     --stats                 give some file-transfer stats
 -8, --8-bit-output          leave high-bit chars unescaped in output
 -h, --human-readable        output numbers in a human-readable format
     --progress              show progress during transfer
 -P                          same as --partial --progress
 -i, --itemize-changes       output a change-summary for all updates
     --out-format=FORMAT     output updates using the specified FORMAT
     --log-file=FILE         log what we're doing to the specified FILE
     --log-file-format=FMT   log updates using the specified FMT
     --password-file=FILE    read password from FILE
     --list-only             list the files instead of copying them
     --bwlimit=KBPS          limit I/O bandwidth; KBytes per second
     --write-batch=FILE      write a batched update to FILE
     --only-write-batch=FILE like --write-batch but w/o updating destination
     --read-batch=FILE       read a batched update from FILE
     --protocol=NUM          force an older protocol version to be used
 -E, --extended-attributes   copy extended attributes
     --cache                 disable fcntl(F_NOCACHE)
 -4, --ipv4                  prefer IPv4
 -6, --ipv6                  prefer IPv6
     --version               print version number
(-h) --help                  show this help (-h works with no other options)

Use "rsync --daemon --help" to see the daemon-mode command-line options.
Please see the rsync(1) and rsyncd.conf(5) man pages for full documentation.
See http://rsync.samba.org/ for updates, bug reports, and answers

Ahhhh that is OLDE

Alrighty, thanks for that.  Though, as mentioned, it will soon only matter for the sake of providing reference configurations for people as we'll have complete control on each system.
For completeness, here's mine.
rsync --help
rsync  version 3.1.3  protocol version 31
Copyright (C) 1996-2018 by Andrew Tridgell, Wayne Davison, and others.
Web site: http://rsync.samba.org/
Capabilities:
    64-bit files, 64-bit inums, 64-bit timestamps, 64-bit long ints,
    socketpairs, hardlinks, symlinks, IPv6, batchfiles, inplace,
    append, ACLs, xattrs, iconv, symtimes, prealloc

rsync comes with ABSOLUTELY NO WARRANTY.  This is free software, and you
are welcome to redistribute it under certain conditions.  See the GNU
General Public Licence for details.

rsync is a file transfer program capable of efficient remote update
via a fast differencing algorithm.

Usage: rsync [OPTION]... SRC [SRC]... DEST
  or   rsync [OPTION]... SRC [SRC]... [USER@]HOST:DEST
  or   rsync [OPTION]... SRC [SRC]... [USER@]HOST::DEST
  or   rsync [OPTION]... SRC [SRC]... rsync://[USER@]HOST[:PORT]/DEST
  or   rsync [OPTION]... [USER@]HOST:SRC [DEST]
  or   rsync [OPTION]... [USER@]HOST::SRC [DEST]
  or   rsync [OPTION]... rsync://[USER@]HOST[:PORT]/SRC [DEST]
The ':' usages connect via remote shell, while '::' & 'rsync://' usages connect
to an rsync daemon, and require SRC or DEST to start with a module name.

Options
 -v, --verbose               increase verbosity
     --info=FLAGS            fine-grained informational verbosity
     --debug=FLAGS           fine-grained debug verbosity
     --msgs2stderr           special output handling for debugging
 -q, --quiet                 suppress non-error messages
     --no-motd               suppress daemon-mode MOTD (see manpage caveat)
 -c, --checksum              skip based on checksum, not mod-time & size
 -a, --archive               archive mode; equals -rlptgoD (no -H,-A,-X)
     --no-OPTION             turn off an implied OPTION (e.g. --no-D)
 -r, --recursive             recurse into directories
 -R, --relative              use relative path names
     --no-implied-dirs       don't send implied dirs with --relative
 -b, --backup                make backups (see --suffix & --backup-dir)
     --backup-dir=DIR        make backups into hierarchy based in DIR
     --suffix=SUFFIX         set backup suffix (default ~ w/o --backup-dir)
 -u, --update                skip files that are newer on the receiver
     --inplace               update destination files in-place (SEE MAN PAGE)
     --append                append data onto shorter files
     --append-verify         like --append, but with old data in file checksum
 -d, --dirs                  transfer directories without recursing
 -l, --links                 copy symlinks as symlinks
 -L, --copy-links            transform symlink into referent file/dir
     --copy-unsafe-links     only "unsafe" symlinks are transformed
     --safe-links            ignore symlinks that point outside the source tree
     --munge-links           munge symlinks to make them safer (but unusable)
 -k, --copy-dirlinks         transform symlink to a dir into referent dir
 -K, --keep-dirlinks         treat symlinked dir on receiver as dir
 -H, --hard-links            preserve hard links
 -p, --perms                 preserve permissions
 -E, --executability         preserve the file's executability
     --chmod=CHMOD           affect file and/or directory permissions
 -A, --acls                  preserve ACLs (implies --perms)
 -X, --xattrs                preserve extended attributes
 -o, --owner                 preserve owner (super-user only)
 -g, --group                 preserve group
     --devices               preserve device files (super-user only)
     --copy-devices          copy device contents as regular file
     --specials              preserve special files
 -D                          same as --devices --specials
 -t, --times                 preserve modification times
 -O, --omit-dir-times        omit directories from --times
 -J, --omit-link-times       omit symlinks from --times
     --super                 receiver attempts super-user activities
     --fake-super            store/recover privileged attrs using xattrs
 -S, --sparse                turn sequences of nulls into sparse blocks
     --preallocate           allocate dest files before writing them
 -n, --dry-run               perform a trial run with no changes made
 -W, --whole-file            copy files whole (without delta-xfer algorithm)
     --checksum-choice=STR   choose the checksum algorithms
 -x, --one-file-system       don't cross filesystem boundaries
 -B, --block-size=SIZE       force a fixed checksum block-size
 -e, --rsh=COMMAND           specify the remote shell to use
     --rsync-path=PROGRAM    specify the rsync to run on the remote machine
     --existing              skip creating new files on receiver
     --ignore-existing       skip updating files that already exist on receiver
     --remove-source-files   sender removes synchronized files (non-dirs)
     --del                   an alias for --delete-during
     --delete                delete extraneous files from destination dirs
     --delete-before         receiver deletes before transfer, not during
     --delete-during         receiver deletes during the transfer
     --delete-delay          find deletions during, delete after
     --delete-after          receiver deletes after transfer, not during
     --delete-excluded       also delete excluded files from destination dirs
     --ignore-missing-args   ignore missing source args without error
     --delete-missing-args   delete missing source args from destination
     --ignore-errors         delete even if there are I/O errors
     --force                 force deletion of directories even if not empty
     --max-delete=NUM        don't delete more than NUM files
     --max-size=SIZE         don't transfer any file larger than SIZE
     --min-size=SIZE         don't transfer any file smaller than SIZE
     --partial               keep partially transferred files
     --partial-dir=DIR       put a partially transferred file into DIR
     --delay-updates         put all updated files into place at transfer's end
 -m, --prune-empty-dirs      prune empty directory chains from the file-list
     --numeric-ids           don't map uid/gid values by user/group name
     --usermap=STRING        custom username mapping
     --groupmap=STRING       custom groupname mapping
     --chown=USER:GROUP      simple username/groupname mapping
     --timeout=SECONDS       set I/O timeout in seconds
     --contimeout=SECONDS    set daemon connection timeout in seconds
 -I, --ignore-times          don't skip files that match in size and mod-time
 -M, --remote-option=OPTION  send OPTION to the remote side only
     --size-only             skip files that match in size
 -@, --modify-window=NUM     set the accuracy for mod-time comparisons
 -T, --temp-dir=DIR          create temporary files in directory DIR
 -y, --fuzzy                 find similar file for basis if no dest file
     --compare-dest=DIR      also compare destination files relative to DIR
     --copy-dest=DIR         ... and include copies of unchanged files
     --link-dest=DIR         hardlink to files in DIR when unchanged
 -z, --compress              compress file data during the transfer
     --compress-level=NUM    explicitly set compression level
     --skip-compress=LIST    skip compressing files with a suffix in LIST
 -C, --cvs-exclude           auto-ignore files the same way CVS does
 -f, --filter=RULE           add a file-filtering RULE
 -F                          same as --filter='dir-merge /.rsync-filter'
                             repeated: --filter='- .rsync-filter'
     --exclude=PATTERN       exclude files matching PATTERN
     --exclude-from=FILE     read exclude patterns from FILE
     --include=PATTERN       don't exclude files matching PATTERN
     --include-from=FILE     read include patterns from FILE
     --files-from=FILE       read list of source-file names from FILE
 -0, --from0                 all *-from/filter files are delimited by 0s
 -s, --protect-args          no space-splitting; only wildcard special-chars
     --address=ADDRESS       bind address for outgoing socket to daemon
     --port=PORT             specify double-colon alternate port number
     --sockopts=OPTIONS      specify custom TCP options
     --blocking-io           use blocking I/O for the remote shell
     --stats                 give some file-transfer stats
 -8, --8-bit-output          leave high-bit chars unescaped in output
 -h, --human-readable        output numbers in a human-readable format
     --progress              show progress during transfer
 -P                          same as --partial --progress
 -i, --itemize-changes       output a change-summary for all updates
     --out-format=FORMAT     output updates using the specified FORMAT
     --log-file=FILE         log what we're doing to the specified FILE
     --log-file-format=FMT   log updates using the specified FMT
     --password-file=FILE    read daemon-access password from FILE
     --list-only             list the files instead of copying them
     --bwlimit=RATE          limit socket I/O bandwidth
     --stop-at=y-m-dTh:m     Stop rsync at year-month-dayThour:minute
     --time-limit=MINS       Stop rsync after MINS minutes have elapsed
     --outbuf=N|L|B          set output buffering to None, Line, or Block
     --write-batch=FILE      write a batched update to FILE
     --only-write-batch=FILE like --write-batch but w/o updating destination
     --read-batch=FILE       read a batched update from FILE
     --protocol=NUM          force an older protocol version to be used
     --iconv=CONVERT_SPEC    request charset conversion of filenames
     --checksum-seed=NUM     set block/file checksum seed (advanced)
     --noatime               do not alter atime when opening source files
 -4, --ipv4                  prefer IPv4
 -6, --ipv6                  prefer IPv6
     --version               print version number
(-h) --help                  show this help (-h is --help only if used alone)

Use "rsync --daemon --help" to see the daemon-mode command-line options.
Please see the rsync(1) and rsyncd.conf(5) man pages for full documentation.
See http://rsync.samba.org/ for updates, bug reports, and answers

Would it be a good idea for the Mac installation instructions could mention that the factory-default rsync is old, do you think?

Like for the upcoming custom configuration?  Yeah, that would be a valuable note.  I'm not sure it is important for the present setup though?

I have experienced if I interrupt last archive and leave an old plot file in archive folder, next time run archive will go in stuck.
suggest to add "--inplace" option to prevent this happened.

--inplace doesn't use a temp file so if your destination is a farming directory chia will mark it bad and wont re-read until you restart the farmer.
Unless you have an unreliable connection, don't add the -P or --partial flags.  If you try to resume that transfer you'll have to hash the partial file before starting transfers anyway so you may not actually save any time but you will hit the CPU on the destination.

--inplace doesn't use a temp file so if your destination is a farming directory chia will mark it bad and wont re-read until you >restart the farmer.

I think thats only partially correct. The file gets detected as too small to be a plot and wont be added until the next cycle of directory scan. Shouldnt be a problem, but with the tempfile you can find broken uploads more easily, and it changes nothing performancy-wise.
I would prefer to remove the -P flag.

Go ahead and test it for yourself, I did.  Chia adds the file as corrupt and doesn't re-read.   Whatever test that might be done on filesystem doesn't work for me.

I'm going to throw this out since https://github.com/ericaltendorf/plotman/pull/627 is nearing completion.  You can look in target_definitions.yaml to see the defaults options for the present presets.


Inconsistently named enums

The following enum constants are not named consistently with their lv_xxx_t: (this was found using this script
lv_border_part_t :  LV_BORDER_NONE,LV_BORDER_BOTTOM,LV_BORDER_TOP,LV_BORDER_LEFT,LV_BORDER_RIGHT,LV_BORDER_FULL
lv_shadow_type_t :  LV_SHADOW_BOTTOM,LV_SHADOW_FULL
lv_design_mode_t :  LV_DESIGN_DRAW_MAIN,LV_DESIGN_DRAW_POST,LV_DESIGN_COVER_CHK
lv_anim_builtin_t :  LV_ANIM_NONE,LV_ANIM_FLOAT_TOP,LV_ANIM_FLOAT_LEFT,LV_ANIM_FLOAT_BOTTOM,LV_ANIM_FLOAT_RIGHT,LV_ANIM_GROW_H,LV_ANIM_GROW_V
lv_hal_indev_type_t :  LV_INDEV_TYPE_NONE,LV_INDEV_TYPE_POINTER,LV_INDEV_TYPE_KEYPAD,LV_INDEV_TYPE_BUTTON,LV_INDEV_TYPE_ENCODER
lv_label_long_mode_t :  LV_LABEL_LONG_EXPAND,LV_LABEL_LONG_BREAK,LV_LABEL_LONG_SCROLL,LV_LABEL_LONG_DOT,LV_LABEL_LONG_ROLL,LV_LABEL_LONG_CROP
lv_preloader_type_t :  LV_PRELOAD_TYPE_SPINNING_ARC
lv_cursor_type_t :  LV_CURSOR_NONE,LV_CURSOR_LINE,LV_CURSOR_BLOCK,LV_CURSOR_OUTLINE,LV_CURSOR_UNDERLINE,LV_CURSOR_HIDDEN

I am not yet sure whether (and if so, how) these inconsistencies should be fixed. However, they currently cause uncertainty as to how these enums should be called when generating bindings for another language, e.g. should one use:
lvgl.BORDER.BOTTOM or lvgl.BORDER_PART.BOTTOM
In case of the lv_preloader_type_t, I think the constant should be LV_PRELOADER_TYPE_SPINNING_ARC

These inconsistencies can be fixed in v6.0 because they might affect the backward compatibility in v5.3.
v5.3 will be released soon and the dev-6.0 branch will be created where the fixes can be added.
Until that, I'd prefer lvgl.BORDER.BOTTOM-like names. So the enums should be extracted from the definition itself. Is it okay for you?

I've just read your detailed questions/suggestions about naming in #557. I suggest discussing it there. I will answer there today as I can!


After many files in a large PR the last files redirect to Github instead of opening the diff

Issue Type: Bug

Checkout the branch the PR is on locally
Open a large PR with many files in the extension
Click the last files on the list in vscode

Expected: Should open the diff in vscode
Actual: Redirects to view the file on Github.com
Sounds like it may be related to https://github.com/microsoft/vscode-pull-request-github/issues/552
Even if I have the branch checked out, past ~170 files clicking the files redirect to view the blob in Github instead of showing the diff.
Extension version: 0.6.0
VS Code version: Code 1.33.1 (51b0b28134d51361cf996d2f0a1c698247aeabd8, 2019-04-11T08:20:22.771Z)
OS version: Linux x64 5.0.13-300.fc30.x86_64

Hey @YLivay, this is a duplicate of https://github.com/microsoft/vscode-pull-request-github/issues/442. There are some situations where we cannot fetch the file content so we redirect to GitHub (if the change was just a file rename, or the file is an unsupported type, for example). I just merged in a PR from the community to show a notification in such a case.

Hey @RMacfarlane, I don't think this is a duplicate. This issue is about well supported files not being handled. The files that are not handled are only the last ones on the list, and they are the same type as the files that were returned. I'm assuming GitHub is just not returning the last entries because of the sheer size of the request. I'm hoping there's a way to break it apart to multiple requests instead of having the extension give up past a few hundred files.

Should be fixed by https://github.com/microsoft/vscode-pull-request-github/issues/3623


Crash Caused by Fast Suite

I run a server and it's been crashing every time a particular player joins. The crash report had a bunch of stuff regarding Tinkers' Construct and Fast Suite. So I deleted Fast Suite and now it's not crashing anymore.
KnightMiner (dev for Tinkers') told me to report the issue here, as it's not the first instance of this happening that he's seen.
Here's a full server log.
debug-2.log.gz

Here's the crash report too!
crash-2021-08-03_22.26.45-server.txt

Current suspicion is that some threadedness is breaking everything, though the stacktraces are unhelpful and nothing is conclusive.

Can you see if this jar resolves the issue? https://github.com/Shadows-of-Fire/FastSuite/releases/tag/1.1.1


Item name

Currently monsters loot only contains items ID. A way of getting the name by its ID would be nice.

Maybe parsing items.xml also to get the names


Issue Template for LWKD Newsletter update request

Please examine the following two points before merging this pr:

For Related projects, we need to link a list of projects from which we welcome submissions. Check issue.
Is the label 'kind/feature' correct, or should it be changed to 'kind/documentation'?

I want to do some editing on this form, will get to it soon

Thanks!


bug: Issue while fetching data with address(0) in the argument (runresource error)

Bug Report
Kakarot RPC version:

Current behavior: When passing the address(0) on the argument we receive an error related to runresource, without the address(0) the function returns the right data

Expected behavior: It should return data correctly with address(0), (we have checked the result on other EVMs)

Steps to reproduce:
Contract Address: 0x4855443432F58b968b49b3732205866E23c97d4c
Json Artifact/ABI : VaultReader.json
Function to be called: getVaultTokenInfoV4
Arguments to pass:

0x22eFEB944d65D982cA871Ff702a2eA8a0BCFBafC
0xEd65BD1882CccCf391d9548E2F5d772cCD2cc187
0xf42991f02c07ab66cfea282e7e482382aeb85461
1000000000000000000
["0x0000000000000000000000000000000000000000","0xf42991f02c07ab66cfea282e7e482382aeb85461","0x9ee1aa18f3feb435f811d6ae2f71b7d2a4adce0b","0x057e8e2bc40ecff87e6f9b28750d5e7ac004eab9","0xad45924555be89f07019376eeb4cb30e3d857cfd","0xb0aaaa41170ad29b00fc166e41da3100d11edf68"]

Related code: The function which we deployed

    function getVaultTokenInfoV4(address _vault, address _positionManager, address _weth, uint256 _usdgAmount, address[] memory _tokens) public view returns (uint256[] memory) {
        uint256 propsLength = 15;

        IVault vault = IVault(_vault);
        IVaultPriceFeed priceFeed = IVaultPriceFeed(vault.priceFeed());
        IBasePositionManager positionManager = IBasePositionManager(_positionManager);

        uint256[] memory amounts = new uint256[](_tokens.length * propsLength);
        for (uint256 i = 0; i < _tokens.length; i++) {
            address token = _tokens[i];
            if (token == address(0)) {
                token = _weth;
            }

            amounts[i * propsLength] = vault.poolAmounts(token);
            amounts[i * propsLength + 1] = vault.reservedAmounts(token);
            amounts[i * propsLength + 2] = vault.usdgAmounts(token);
            amounts[i * propsLength + 3] = vault.getRedemptionAmount(token, _usdgAmount);
            amounts[i * propsLength + 4] = vault.tokenWeights(token);
            amounts[i * propsLength + 5] = vault.bufferAmounts(token);
            amounts[i * propsLength + 6] = vault.maxUsdgAmounts(token);
            amounts[i * propsLength + 7] = vault.globalShortSizes(token);
            amounts[i * propsLength + 8] = positionManager.maxGlobalShortSizes(token);
            amounts[i * propsLength + 9] = positionManager.maxGlobalLongSizes(token);
            amounts[i * propsLength + 10] = vault.getMinPrice(token);
            amounts[i * propsLength + 11] = vault.getMaxPrice(token);
            amounts[i * propsLength + 12] = vault.guaranteedUsd(token);
            amounts[i * propsLength + 13] = priceFeed.getPrimaryPrice(token, false);
            amounts[i * propsLength + 14] = priceFeed.getPrimaryPrice(token, true);
        }

        return amounts;
    }

Other information:
VaultReader.json

hey @vanshtah, can you verify the vault address? Calling cast code on it returns an empty value and I don't see anything deployed on the explorer at this address. Also I am seeing that you are using the wrong WETH address, it should be 0x761612F0C8bdf8cF10e6F10045E2Ca7cbffBa8A3.


Add inclusion options in Slicer GUI

Transferred from https://github.com/fepegar/EpilepsySemiology/issues/2, @thenineteen said:
need four cross-boxes in slicer under one heading Ground Truth and Prior Inclusions to filter results:

[x] Seizure-Freedom (Engel Ia/Ib or ILAE 1 or 2*)
[x] Concordance of Imaging and Neurophysiology
[x] Cortical Stimulation
[x] Patients from studies with pre-selected brain regions (Topology)

By default all the check boxes should be ticked. If any of the check boxes ARE UNTICKED then these scripts are run from Semiology-Visualisation-Tool::
e.g. if the 2. concordance box is unticked

[ ] Concordance

the dataframe to use is under resources:
from SVT import resources

path_to_file = resources/DataFrames_Exclusions_df_postictalPEThyper_concordance_ET.pickle
with open(path_to_file, 'rb') as f:
    data = pickle.load(f)
 _, _, df_exclusions_concordance, _ = data

alternative solution for above:
after running the MEGA_ANALYSIS (or using the first pickled df):
from SVT.mega_analysis.crosstab.mega_analysis import exclusions

df_exclusions_concordance = exclusions(df,
                POST_ictals=False,
                PET_hypermetabolism=False,
                SPECT_PET=False,
                CONCORDANCE=True)

The other most useful cross-out-box would be

[ ] ET: Topology/EZ

When unticked, it should run this from exclusions.py:
exclude_ET(df)

Transferred from https://github.com/fepegar/EpilepsySemiology/issues/2, @thenineteen said:
see try/except clauses under scripts in
slicer_run_query_semiology_lateralisation.py
this should replace mega_analysis_test.py
I didn't know how your tickboxes work so you will need to update the if statements, specifically how the tick boxes being ticked (True) or unticked (False) logic works, once you've done this pleas remove the try/except clauses so it does throw an error if it can't load module:
try:
    if slicer_tickbox_concordance == False:
        df_exclusions_concordance = exclusions(df,
                POST_ictals=False,
                PET_hypermetabolism=False,
                SPECT_PET=False,
                CONCORDANCE=True)
        df = df_exclusions_concordance
except: pass

try:
    if slicer_tickbox_ET == False:

        df = exclude_ET(df)
except: pass

try:
    if slicer_tickbox_sEEG_ES == False:
        df = exclude_sEEG_ES(df)
except: pass

If mega_analysis can't handle exclusions, there's no point in including these options in the GUI yet.

Fixed in https://github.com/thenineteen/Semiology-Visualisation-Tool/commit/38eef7a0c25268dd4b619503d03d6a708b1c25ad.

need also checkbox which is ticked by default, but we could untick:

[ /] Paediatric Cases

if unticked, it should call a new function (to be appended to the exclusions.py module) which filters the present DataFrame as such:
def exclude_paediatric(df):
    paediatric_col = 'padeiatric? <7 years (0-6 yrs) y/n'
    df_exclude_paeds = df.loc[df[paediatric_col ]!='y']

    return df_exclude_paeds

Is this for each semiology or for all of them?

so all of the above options are global options, whether looking at one semiology alone or combinations

Which one did we say should be specific for each semiology the other day?

that was lateralisation:
it probably makes more sense to have a global dominant hemisphere defined, which is specific and constant for each patient (i.e. each search for however number of different semiologies). (Patient Class so to speak)
The symptoms_or_signs_lateralisations should be a member of the Semiology Class, which can be altered for each semiology: e.g. right asymmetric tonic, L automatisms should be ccombined (can't do this currently.)
at the same time, the post-ictal semiolgies should also be modified so that they can switched on /off for each semiology, just like symptoms_or_signs_lateralisations

this would be highly useful to have...

I would edit the filters as follows, to better explain what actually we are filtering out:

Patients who became Seizure-Free After Surgery
Patients with Multimodal Concordance (Imaging & Neurophysiology)
Patients who underwent Invasive EEG Monitoring
Patients from papers sampling for Epilepsy Topology (e.g. TLE)
Patients from studies sampling for Seizure Semiology (e.g. gelastic)
Patients from studies on Electrical Brain Stimulation

or, if this is too wordy, we can divide it in this way:

Epileptogenic Zone's Ground-Truths:

Post-Surgical Seizure-Freedom
Multimodal Concordance Imaging-Neurophysiology
Invasive EEG Monitoring

Publication Approaches:

Papers sampling for Epilepsy Topology (e.g. TLE)
Papers sampling for Seizure Semiology (e.g. gelastic)
Papers sampling for Electrical Brain Stimulation

Hemispheric Dominance
it is fine to have as default choice Left Hemisphere (and in case the patient is instead known to be R dominant or ND, to give such options), and I would expect that by selecting "Aphasia" I will see data on the L hemisphere, and if I select "Ictal speech"  on the R hemisphere . The latter semiology is not in the list yet, but when I select Aphasia I can only see bilateral data. I remember this was just a code-related issue, right?

The postictals: I'm not sure how you would do this, given when the data loads slicer runs an exclusions. I can think of the following for postictals:

if we click on nose wiping, then left laterality, then postictal checkbox, slicer has to run MEGA_ANALYSIS again to load the data, this time only including postictals. (not the same as not excluding them).
remove the exclusions modules from MEGA_ANALYSIS so that they are not run when slicer loads the data. Then for each semiology, when we click on the semiology checkbox and the laterality, the data is then fiktered to exclude postictals. This way, I can create separate semiologies for postictals, and you tell them not to run the exclusion for these three semiologies (nose wiping, drinking, postictal limb paresis)

option 1 is probably easiest, concur?

There are a lot of comments here. Let's see.

You guys are proposing different GUI designs. Gloria's: https://github.com/thenineteen/Semiology-Visualisation-Tool/issues/21#issuecomment-622546762. I like splitting them into two groups. The other is Ali's image: https://github.com/thenineteen/Semiology-Visualisation-Tool/issues/21#issuecomment-624700250. You need to find an agreement so that I know what to implement.
Before writing a GUI, this needs to be solved at a lower level, i.e. in mega_anaysis.

At the moment, Slicer calls only the function combine_semiologies(semiologies), where semiologies is a list of instances of Semiology. Both the function and the class are implemented in the mega_analysis.semiology module.
Each instance of Semiology is instantiated as follows:
https://github.com/thenineteen/Semiology-Visualisation-Tool/blob/3da076fcd797419aa719c99849ff8364296ff855/slicer/SemiologyVisualization.py#L240-L244
But the constructor (__init__ method) of the Semiology class takes more arguments, currently unused by Slicer:
https://github.com/thenineteen/Semiology-Visualisation-Tool/blob/3da076fcd797419aa719c99849ff8364296ff855/mega_analysis/semiology.py#L78-L104
As you can see, the exclusion options implemented so far, all disabled by default, are
seizure_freedom
concordance
seeg
cortical_stimulation
et_topology_ez

If I compare that to Gloria's suggestion, the "Papers sampling for Seizure Semiology (e.g. gelastic)" option seems to be missing.
If I compare that to Ali's suggestion, the "Spontaneous semiology" and "Pediatric", options seem to be missing. And Ali didn't include the SEEG option.
The Semiology class filters the table (data frame) computed by MEGA_ANALYSIS (with default parameters) like this:
https://github.com/thenineteen/Semiology-Visualisation-Tool/blob/3da076fcd797419aa719c99849ff8364296ff855/mega_analysis/semiology.py#L107-L125
All those exclusion functions were implemented by @thenineteen and can be found in mega_analysis.crosstab.mega_analysis.exclusions.
It seems like what we need is a couple more exclusion functions: post-ictal, paediatric and spontaneous semiology. Is that correct?

Yes, that is correct
Gloria's version is the correct one
I'll write the remaining 2 remaining functions: paeds and spontaneous; and extract postictal exclusion from within the mega_analysis function

Ok, cool. Please open a PR, so that we can make sure all tests are passing before merging. Once everything is ready, I'll add the options to the GUI.

Glad we agreed on the GT and publications filters!
As for the post-ictal semiology - just a proposal - I would probably just double within the semiology list those semiologies that can have either early ictal vs post-ictal presentation, and in consequence different value: early onset having both lateralising and localising power, while post-ictal only lateralising.  So by listing e.g. both ictal and post-ictal aphasia, or ictal and post-ictal paresis, we give on one side more fine options to the user, that can better interact with the tool, and on the other side we select the appropriate lat/loc data points from the database for each semiology. At the moment, we are experimentally collecting localising data also for post-ictal semiology, and started recently to take note of paediatric data when < 7yo, but this kind of data collection is not homogeneous and not fully rationalised in all its pros and cons, so I would not tailor the code to circumvent this experimental/dirty data collection - I would put instead more efforts in refining the database, to make it more tidy and homogeneous, once finished the screening. Once digested, I guess we will find other factors that would be worth using as additional filters, in addition to age<7y, so we can create a third category of additional filters.

Inclusion filters added in c7a0abd86b1be93266669395da90bdda952a00ac
I'm going to add tooltips with the definitions in the README.

Will add the rest once @thenineteen have implemented them and tests are passing.

This is what tooltips look like:

That's great!! Well done! Could you just please change from StereoEEG to "Invasive EEG monitoring"?

If we want to be super-precise, it would be even better to swap the invasive EEG monitoring from third line to the second, and put concordance as third option.

Done. Why does the order matter?

The order of the options does not change the substance, I know, but visually it can be a clue to weight the strength of the the ground truths, as post-op sz freedom is the strongest, the invasive EEG monitoring is the 2nd strongest and the multimodal concordance is the 3rd, and kind of weak in comparison to the first 2.

Ok, thanks!

That's great!! Well done! Could you just please change from StereoEEG to "Invasive EEG monitoring"?

Gloria can you clarify why? We included sEEG and CES for invasive moniting, not subdural grids, so why invasive? invasive would suggest we included subdural grids? What am I missing?

@fepegar
currently we have exclusion options. But looking at the GUI, it feels that having inclusion options might be more intuitive. Are you happy for me to still finish the peadiatric, spontaenous and post-ictals as exclusions? i.e. when the checkbox is unticked, it runs these functions?

currently we have exclusion options.

Do you mean that's what's coded in mega_analysis? I don't think it's worth it to change everything. The Semiology class handles it well with the if not include statements I pasted above.
If you add more exclusion options, I'll add the corresponding inclusions to Slicer.

the individual exclusions docstrings should ideally be shown as a tooltip for these exclusions - as they are sometimes different (e..g. excluding all topology or excluding seizure free iff it is the only ground truth)

ok I've done this
see pull request


Navigation does not work with

Swiper Version: 6.4.15.
Platform/Target and Browser Versions: Windows 10, Chrome

What You Did
I am trying to use swiper in <details></details> (It is a open/close tab html tag).
Like this:

Why?
Because

And here is the example about what I am trying to do.
https://stackblitz.com/edit/ddfwbe?file=index.html
Expected Behavior
It should be able to swipe the images with buttons smoothly.
Actual Behavior
I cannot use the next/prev btn to swipe the images,
and It swipes "heavily" with mouse dragging.

Enable observer in swiper parameters

Enable observer in swiper parameters

I tried like you said,
but it still not work...

Then you need to call swiper.update() when summary opens https://stackoverflow.com/questions/7363117/detecting-the-opening-or-closing-of-a-details-element
Closing as not related to swiper directly


Notification feature

feature/notifier
Makes Zsh print a bell when...
dotphiles/dotzsh
audio bell (\a)

TBD. This feature will implement zplug version 2.


Struggling to work with Storybook 5.2.5 with Vue

Describe the bug
I can't seem to get the add on to work with the latest version of Storybook.  Following the install instructions, I can get the Info panel to show, however it is constantly blank.
To Reproduce
Steps to reproduce the behavior:

yarn add -D storybook-addon-vue-info, then import in .storybook/addons.js
Add to .storybook/config.js

import { withInfo } from 'storybook-addon-vue-info'
addDecorator(withInfo);

Update .storybook/webpack.config.js

config.module.rules.push({
    test: /\.vue$/,
    loader: 'storybook-addon-vue-info/loader',
    enforce: 'post'
  })

Add an info object to a story

export const Button = () => ({
  components: { BaseButton },
  props: {
    cssClass: {
      default: text("CSS classes", "")
    },
    disabled: {
      default: boolean("Disabled", false)
    },
    text: {
      default: text("Button text", "Click Me")
    },
    type: {
      default: select(
        "Button Type",
        { Button: "button", Submit: "submit", Reset: "reset" },
        "button"
      )
    }
  },
  info: {},
  template:
    '<base-button :class="cssClass" :type="type" :disabled="disabled">{{ text }}</base-button>'
});

Expected behavior
I expect to see some info within the Info(Vue) panel, however nothing is showing
Versions

storybook-addon-vue-info: ^1.3.2
@storybook/vue: ^5.2.5

Additional context
I have also tried adding comments etc. to my base components, as per the Vue Docgen API guidelines, however this still does not resolve my issue.

@michaelsmedley
I assume you are using CSF (Component Story Format), right? In that case, you need to place the story parameters inside story property or module-level config.

Hi @pocka
Thanks for the response, much appreciated.
I will give that a try, but I'm pretty certain you have pointed me in the right direction, so I'm going to close this as its user error on my part!
Thanks again


[supervisor.addons.validate] Add-on config 'auto_uart' is deprecated, use 'uart'

zigbee2mqtt add-on version (if edge, please report commit hash):
Current version: 1.17.1
Operating environment (HassOS, Virtual Machine, Device/platform running Home Assistant):

System Health
version: core-2021.2.1
installation_type: Home Assistant OS
dev: false
hassio: true
docker: true
virtualenv: false
python_version: 3.8.7
os_name: Linux
os_version: 5.4.94
arch: x86_64
timezone: UTC
GitHub API: ok
Github API Calls Remaining: 4875
Installed Version: 1.11.0
Stage: running
Available Repositories: 712
Installed Repositories: 16
logged_in: false
can_reach_cert_server: ok
can_reach_cloud_auth: ok
can_reach_cloud: ok
host_os: Home Assistant OS 5.11
update_channel: stable
supervisor_version: supervisor-2021.02.5
docker_version: 19.03.13
disk_total: 30.8 GB
disk_used: 3.5 GB
healthy: true
supported: true
board: ova
supervisor_api: ok
version_api: ok
installed_addons: File editor (5.2.0), SSH & Web Terminal (8.0.0), Samba share (9.3.0), Zigbee2mqtt (1.17.1)
dashboards: 1
resources: 8
views: 5
mode: storage

Description of problem:
21-02-08 10:44:21 WARNING (MainThread) [supervisor.addons.validate] Add-on config 'auto_uart' is deprecated, use 'uart'. Please report this to the maintainer of Zigbee2mqtt
21-02-08 10:44:21 WARNING (MainThread) [supervisor.addons.validate] Add-on config 'auto_uart' is deprecated, use 'uart'. Please report this to the maintainer of Zigbee2mqtt Edge
Your entire configuration from the frontend (with sensitive fields redacted):
data_path: /share/zigbee2mqtt
external_converters: []
devices: devices.yaml
groups: groups.yaml
homeassistant: true
permit_join: false
mqtt:
  base_topic: zigbee2mqtt
  server: 'mqtt://<IP_ADDRESS>:1883'
serial:
  port: >-
    /dev/serial/by-id/usb-Texas_Instruments_TI_CC2531_USB_CDC___0X00124B0014D9322D-if00
advanced:
  log_level: info
  pan_id: 6754
  channel: 11
  network_key:
    - 1
    - 3
    - 5
    - 7
    - 9
    - 11
    - 13
    - 15
    - 0
    - 2
    - 4
    - 6
    - 8
    - 10
    - 12
    - 13
  availability_blocklist: []
  availability_passlist: []
device_options: {}
blocklist: []
passlist: []
queue: {}
frontend:
  port: 8099
experimental:
  new_api: false
socat:
  enabled: false
  master: 'pty,raw,echo=0,link=/dev/ttyZ2M,mode=777'
  slave: 'tcp-listen:8485,keepalive,nodelay,reuseaddr,keepidle=1,keepintvl=1,keepcnt=5'
  restartdelay: 1
  initialdelay: 1
  options: '-d -d'
  log: false

Your logs from Home Assistant
21-02-08 10:44:21 WARNING (MainThread) [supervisor.addons.validate] Add-on config 'auto_uart' is deprecated, use 'uart'. Please report this to the maintainer of Zigbee2mqtt
21-02-08 10:44:21 WARNING (MainThread) [supervisor.addons.validate] Add-on config 'auto_uart' is deprecated, use 'uart'. Please report this to the maintainer of Zigbee2mqtt Edge

Having exactly the same issue on 1.17.1 running on a NUC

My z2m addon does nothing after start today with the new HASS version.

It appears the z2m log shows there's a problem with the usb...
Zigbee2MQTT:info  2021-02-10 05:09:01: Starting zigbee-herdsman (0.13.59)
Zigbee2MQTT:error 2021-02-10 05:09:01: Error while starting zigbee-herdsman
Zigbee2MQTT:error 2021-02-10 05:09:01: Failed to start zigbee
Zigbee2MQTT:error 2021-02-10 05:09:01: Exiting...
Zigbee2MQTT:error 2021-02-10 05:09:01: Error: Error while opening serialport 'Error: Error: No such file or directory, cannot open /dev/serial/by-id/usb-Texas_Instruments_TI_CC2531_USB_CDC___0X00124B0014DA399E-if00'
at Znp. (/zigbee2mqtt-1.17.1/node_modules/zigbee-herdsman/dist/adapter/z-stack/znp/znp.js:136:32)
at Generator.next ()
at /zigbee2mqtt-1.17.1/node_modules/zigbee-herdsman/dist/adapter/z-stack/znp/znp.js:27:71
at new Promise ()
at __awaiter (/zigbee2mqtt-1.17.1/node_modules/zigbee-herdsman/dist/adapter/z-stack/znp/znp.js:23:12)
at SerialPort. (/zigbee2mqtt-1.17.1/node_modules/zigbee-herdsman/dist/adapter/z-stack/znp/znp.js:134:49)
at SerialPort._error (/zigbee2mqtt-1.17.1/node_modules/zigbee-herdsman/node_modules/@serialport/stream/lib/index.js:198:14)
at /zigbee2mqtt-1.17.1/node_modules/zigbee-herdsman/node_modules/@serialport/stream/lib/index.js:242:12

The problem of the auto_uart is not your configuration, is the definition of the addon:
https://github.com/danielwelch/hassio-zigbee2mqtt/blob/3793c6cb4c19ae6b5a7d4cb164b8b2cf6507fc93/zigbee2mqtt/config.json#L6
The configuration of this is here: https://developers.home-assistant.io/docs/add-ons/configuration/
And it seems it only needs to change auto_uart by uart.

Turns out that this isn't what was causing my issues, it would seem to be old firmware - I flashed my CC2531 with the latest firmware and my issue is gone.

Turns out that this isn't what was causing my issues, it would seem to be old firmware - I flashed my CC2531 with the latest firmware and my issue is gone.

Ordered my debugget and downloader cable today

Having exactly the same issue on 1.17.1 running on a NUC

barebone ?  or thru a Virtual instance ?

Running in the Home Assistant supervisor (docker) on the barebones NUC.

Turns out that this isn't what was causing my issues, it would seem to be old firmware - I flashed my CC2531 with the latest firmware and my issue is gone.

could you please specify wich firmware version ?
is it working now ?
so the re is no problem with zigbee2mqtt addon right ?

The problem of the auto_uart is not your configuration, is the definition of the addon:
https://github.com/danielwelch/hassio-zigbee2mqtt/blob/3793c6cb4c19ae6b5a7d4cb164b8b2cf6507fc93/zigbee2mqtt/config.json#L6
The configuration of this is here: https://developers.home-assistant.io/docs/add-ons/configuration/
And it seems it only needs to change auto_uart by uart.

so could you detail how exactly i need to change the auto uart to uart ?
cheers

Are you a developer of the addon?

The developer (or anyone that wants to collaborate) must push a PR changing the file that I pointed in the message, modifying "auto_uart": true by "uart": true or that is what I understand. For the normal and the edge versions.
Is a file used by Home Assistant when installing the addon, not a problem for the end user until they block addons without this correction.

Are you a developer of the addon?

The developer (or anyone that wants to collaborate) must push a PR changing the file that I pointed in the message, modifying "auto_uart": true by "uart": true or that is what I understand. For the normal and the edge versions.
Is a file used by Home Assistant when installing the addon, not a problem for the end user until they block addons without this correction.

so il just have to wait for the developer to fix it right ?
Thank you !

This will get fixed in https://github.com/zigbee2mqtt/hassio-zigbee2mqtt which will become the official repo soon.

Released as part of 1.17.1-1 https://github.com/zigbee2mqtt/hassio-zigbee2mqtt

Released as part of 1.17.1-1 https://github.com/zigbee2mqtt/hassio-zigbee2mqtt

nice ! Thank you so much
but !
can u help me ?

where exactly do i need to look or what command was in the Terminal to see my serial usb stick ?
what was that herdsman compatiblity command / config line ?  do i need to do that ?

you should see your serial port name as mentioned in the docs under Notes: https://github.com/zigbee2mqtt/hassio-zigbee2mqtt/blob/master/zigbee2mqtt/DOCS.md#notes
/dev/ttyS0 doesn't look like the correct serial port.

you should see your serial port name as mentioned in the docs under Notes: https://github.com/zigbee2mqtt/hassio-zigbee2mqtt/blob/master/zigbee2mqtt/DOCS.md#notes
/dev/ttyS0 doesn't look like the correct serial port.

Thank for the help !
I did have a look , but honestly they are really messed up .. could you spot it ?  i cant ...  and i remember that was the original config prior to the update that worked .

I will close this issue as uart problem is fixed, and you can add your system details to discuss the hassos read-only problem here: https://github.com/zigbee2mqtt/hassio-zigbee2mqtt/issues/27


Add edit last message by pressing a key (default up arrow)

This would be a great addition, I think :)

A must ! 😉


libc++abi: terminating with uncaught exception of type std::runtime_error: No operation named "serving_default_input_1" exists

I'd like to document an issue I ran into and the resolution in case anyone else runs into it, and to propose an api improvement, if possible, that would make the issue less difficult in the future.
I got the above error while trying to load a Keras model, and the resolution was that I needed to make sure the first layer of my model was named "input_1".
Keras has a singleton-esque pattern for naming its layers. That is, each time a layer of the same type is initialized in the same runtime, it increments the counter of the layer name. So the first time you create an input it's "input_1", the second time it's "input_2", etc...
This makes it really easy to make a model that throws the above error and not know exactly why it's happening. If it's possible, why not inspect the layers of the Keras model in cpp and use the first input layer as input by default, rather than looking for a hard-coded default name?

Hi @garricklw
I don't fully understand what are you proposing. You mean matching the strings returned by model::get_operations() against the string input?

Hi @garricklw
I am sorry, but I don't know yet how to inspect the definition of the model to retrieve the default inputs and outputs. I guess it would require to somehow parse the MetaGraphDef obtained when doing TF_LoadSessionFromSavedModel. I don't know if that's the best way to obtain it, and I don't know if it could be obtained without using the Protobuff library.

#203 is a small step towards this

Perhaps I could change the error generated when the operation is not found and suggest to use the saved_model_cli to obtain the correct name. That might have helped you.


TCP appender does not send messages to logstash

Hi guys,
I am trying to send log messages using net.logstash.logback.appender.LogstashTcpSocketAppender, with the following logback.xml:
<configuration>     <appender name="stash"         class="net.logstash.logback.appender.LogstashTcpSocketAppender">            <remoteHost><IP_ADDRESS></remoteHost>            <port>4560</port>            <encoder class="net.logstash.logback.encoder.LogstashEncoder"/>            <keepAliveDuration>5 minutes</keepAliveDuration>     </appender>     <root level="DEBUG">            <appender-ref ref="stash" />     </root> </configuration>
On the logstash side, the configuration is:
input {    tcp {      port => 4560      codec => json_lines    } } output {    stdout {      codec => rubydebug    } }
The testcase run from within Eclipse logs 100 messages but none of them reach logstash.
If I debug the testcase then some of them will be eventually sent. I added a breakpoint in the doEncode() of net.logstash.logback.encoder.CompositeJsonEncoder and saw that, indeed, the method gets called randomly which explains why not all messages reach logstash.
I telnet-ed the 4560 port of logstash and it works just fine. The port is in LISTEN mode. So the problem is on the logback side.
Am I doing something wrong?
Thanks!
Regards,
Alin

Hi Alin,
One likely cause is that the JVM is shutting down before the async thread that sends messages across the wire has had a chance to send all the messages.
To ensure all logged messages are sent, you should shutdown logback prior to shutting down the JVM.  The shutdown logic will ensure all events are flushed.

True, it works just fine if I stop the LoggerContext of logback classic. Thanks again!

Thank for you answer, it works well@philsttr


Use DenyAssignments to restrict read access to specific container

I have already posted my question at "learn.microsoft.com". However, I guess the expertise to solve this issue can rather be found here. I hope it is okay, if I just post the link to my question here:
https://learn.microsoft.com/en-us/answers/questions/1806091/use-denyassignments-via-deployment-stack-to-restri
If you have any suggestion on how to solve this I would greatly appreciate it! Thank you very much in advance and please let me know if you need any further input from my side. Thanks a lot!

Hi,
Answer was provided to you in the Q&A thread. In short stacks is not intended for the capabilities you are looking for.


Proposal: Please start using Semantic Versioning

I found that this project already supports Go modules. But sadly, the [tags](https://github.com https://github.com/j-keck/lsleases/tags) doesn't follow Semantic Versioning, which means that all tags of this project will be ignored by Go modules and replaced by pseudo-versions, go get acts weirdly when tags are not in that form. It would be great to have the tagged release be named in the format vX.X.X format so that go mod can read it.
	github.com/j-keck/lsleases v0.0.0-20191121073906-1d417cebcd73

Else the mod file shows something like github.com/j-keck/lsleases v0.0.0-20191121073906-1d417cebcd73 which is not very readable and difficult to upgrade. It’s hard to verify which version is in use. This is not conducive to version control.
So, I propose this project to follow Semantic Versioning in future versions. For example, v1.0.1, v2.0.0, v3.1.0-alpha, v3.1.0-beta.2etc, so that other project can use tag in go.mod.

@j-keck  Could you help me review this issue? Thx :p

Hello  KateGo520,
thanks for your report. I just pushed a new tag: v2.1.1.


1.21.3 update

Hi! Is an 1.21.3 update in the plans?
Thanks a lot for this mod!

Yes. I will be working on it this week.

Any updates @CriochDev ?

My apologies, I've been distracted by the US elections.
I'm currently working on it; trying to fix the loot generation because they changed it again.

@vico93 This has been updated to 1.21.3


[feature] #3082: Provide full data in Created event

Signed-off-by: Shanin Roman<EMAIL_ADDRESS>

Description of the Change
Created events now contain builder object which provide all necessary data.

Issue
Closes #3082

Benefits
Ease of use for orillion.

Possible Drawbacks
Events became heavier.

Usage Examples or Tests [optional]

Alternate Designs [optional]

I would consider adding metadata events just in case.

We already have events like MetadataInserted/MetadataRemoved which include inserted/deleted key value pair. Or you mean something else?


Dropping many frames on a low-end machine

What version of Shaka Player are you using?
2.0.2

Can you reproduce the issue with our latest release version?
Yes
Can you reproduce the issue with the latest code from master?
Yes

Are you using the demo app or your own custom app?
Both are same for the problem

If custom app, can you reproduce the issue using our demo app?
Yes

What did you do?
Drm encrypted video content with multiple audio and 6 bitrates.

What content did you load?
Drm encrypted video content with multiple audio and 6 bitrates

If standard demo asset, which one?

If custom asset, what manifest and license server URIs?

How did you interact with the content, if at all?

What did you expect to happen?
It should be playable smoothly

What actually happened?
The player can buffer without problems and it has enough buffer to play but in every 5-15 seconds it pauses 0.1 - 1 seconds on low-end machine.

Core 2 duo 2 Ghz
2 Gb Ram
Windows 8
Chrome 55 with or without hardware accelerated.
There no problem on high-end machines.
Thank you.

@hyurtseven81, can you please collect some additional data for us?  In the demo app, reproduce the problem.  Then, open the JS console and run this:
JSON.stringify(shakaDemo.localPlayer_.getStats());

Then copy the resulting string and paste it here for us.  That will help us understand what the Player and browser were doing when the problem occurred.  Thanks!

Hi this is from shaka player demo:
{"width":1024,"height":426,"streamBandwidth":847976,"decodedFrames":2421,"droppedFrames":277,"estimatedBandwidth":1354235.0455966967,"playTime":100.9060001373291,"bufferingTime":10.399999856948853,"switchHistory":[{"timestamp":1482257692.107,"id":18,"type":"audio","fromAdaptation":true},{"timestamp":1482257692.107,"id":16,"type":"video","fromAdaptation":true},{"timestamp":1482257692.107,"id":1,"type":"text","fromAdaptation":true},{"timestamp":1482257714.235,"id":12,"type":"video","fromAdaptation":true},{"timestamp":1482257733.92,"id":15,"type":"video","fromAdaptation":true},{"timestamp":1482257750.902,"id":14,"type":"video","fromAdaptation":true},{"timestamp":1482257762.185,"id":15,"type":"video","fromAdaptation":true},{"timestamp":1482257771.055,"id":14,"type":"video","fromAdaptation":true},{"timestamp":1482257790.403,"id":15,"type":"video","fromAdaptation":true}]}
And this is from my implementation:
{"width":960,"height":540,"streamBandwidth":1928000,"decodedFrames":989,"droppedFrames":598,"estimatedBandwidth":2797661.432542304,"playTime":74.41499996185303,"bufferingTime":4.71399998664856,"switchHistory":[{"timestamp":1482257883.496,"id":1,"type":"audio","fromAdaptation":true},{"timestamp":1482257883.496,"id":5,"type":"video","fromAdaptation":true},{"timestamp":1482257892.207,"id":8,"type":"video","fromAdaptation":true},{"timestamp":1482257900.254,"id":5,"type":"video","fromAdaptation":true},{"timestamp":1482257908.544,"id":6,"type":"video","fromAdaptation":true},{"timestamp":1482257932.689,"id":7,"type":"video","fromAdaptation":true},{"timestamp":1482257940.81,"id":8,"type":"video","fromAdaptation":true},{"timestamp":1482257950.422,"id":7,"type":"video","fromAdaptation":true}]}
Thank you for your helps

It looks like the real problem is not that we enter a buffering state, but rather that the browser can't decode the content fast enough.  It is dropping a lot of frames.  In one set of stats, it dropped 277 / 2421 (11.4%), and in another it dropped 598 / 989 (60.4%).
This is not something we can control directly.  The best thing to do would be to limit the resolution chosen on low-end hardware.
If you suspect the hardware is low-end, we offer a configuration you can use to restrict the resolution:
player.configure({ restrictions: { maxHeight: 480 } });

Or:
player.configure({ restrictions: { maxPixels: 640 * 480 } });
});

If the limit is a known hardware limitation, we also have this API which is used to limit to 1080p on Chromecast:
player.setMaxHardwareResolution(720, 480);

If you don't know which hardware will drop frames, the best you can do is react to dropped frames dynamically.

You can write your own AbrManager plugin which uses dropped frames to inform adaptation decisions and blacklist resolutions that can't be decoded fast enough.
You can modify our default AbrManager plugin (SimplerAbrManager) to account for dropped frames and send us a PR.
You can periodically check player.getStats().droppedFrames in your application and use that info to call player.setMaxHardwareResolution() when a lot of frames are being dropped.

Does this help?

Thank you for your help, i'm gonna try your resolution solution and i will share the results here.
Thank you again.

By the way is there an optimal drop rate threshold?

We have never had enough data to determine a good threshold for dropped frames.  This is the main reason our default AbrManager does not account for dropped frames yet.  It's something we'd like to be able to offer, though.

Thank you again, i will try to find a solution.

I hope you don't mind me hijacking this thread.
Perhaps it would be possible to dream up some kind of benchmarking while decoding segments?
I have encountered the same problem, but we ended up throttling the bitrate for all users, while adding a settings option to the GUI to manually set the max allowed quality level.
Lacking an API in the browser to provide useful information about the hardware configuration, I've been trying to figure out another way to guess the most appropriate quality level for playback, before we start dropping frames, but I've had no success yet.
From my experience, it's the Widewine CDM that creates a significant performance overhead, so if it was at possible to do some sort of timing of the content decryption, that might be a way to go, but from what I've gathered, that information, like the chrome://media-internals, is buried to deep in the guts of the browser to be retrieved.
Last year it was widely reported that Netflix would only play 720p (3000kbps) video content in Chrome (and this is also true for Firefox), while Edge and Safari would be served 1080p (5800kbps), and this still holds true. This could indicate some known performance problems, comparatively speaking, with Widevine, but I think that browser sniffing or CDM detection as a basis for quality choice is not an ideal solution and neither is reacting to frame drops, since at the point where this is detected, the user experience has already suffered.
Have you guys already looked into this stuff or do you have any brilliant insights or ideas regarding the subject?

Sorry, I have no insight into Netflix's heuristics for this.
I think the most reasonable path forward for Shaka Player in the near term is for someone to develop an algorithm that uses dropped frames as feedback to set restriction on what resolutions we choose.  It is unfortunate that we should have to drop frames first to do this, but I see no other way with today's APIs.
There are some new APIs being developed for detecting capabilities: https://github.com/WICG/media-capabilities
The media capabilities API could, in future, tell us which resolutions/codecs/etc will play well before we play them.  In the mean time, dropped frames is all we really have.

It's been a while since anyone commented on this.  Does anyone have any experience to share regarding dropped frames as an ABR feedback mechanism?  If not, I will eventually close the issue.

For my part, my question was answered, thank you.
I don't have any concrete experience implementing a method for observing dropped frames as an ABR signal, but I know that Dash.js has something of the sort implemented:
https://github.com/Dash-Industry-Forum/dash.js/blob/master/src/streaming/rules/abr/DroppedFramesRule.js
However, I've worked with a player based on Dash.js and it operated with a total number of lost frames during the course of the playback, which is not an ideal solution, since frame drops can also be caused by a number of different outside factors, such as resizing the browser window, even on a very fast machine. Therefore it seems to me, that such an algorithm should be able to account for temporary fluctuations in the frequency of frame drops (which should ideally be zero per second), caused by either observable user action (scrolling, resizing etc.) or actions taken outside the context of the browser.
I apologize for lacking the mathematical vocabulary to perhaps properly explain this, but I think that what I'm thinking of is calculating from a rolling window or moving average, so as not to penalize the entire playback of a movie back to lowest bitrate, because the user switched to full screen in the first couple of minutes.
Perhaps dropped frame checking could be a little more aggressive around the time when ABR switches to a better quality and larger segments are being decrypted for the first time.

@ToreJuloe, thanks.  I've filed https://github.com/google/shaka-player/issues/745 to track any efforts we make in future on using dropped frames for ABR feedback.  I'll go ahead and close this issue now.


remove some duplicate assertion in StringUtilsTest

keep it clean

Codecov Report

Merging #913 (af085e2) into master (2e71945) will decrease coverage by 0.01%.
The diff coverage is n/a.

@@             Coverage Diff              @@
##             master     #913      +/-   ##
============================================
- Coverage     91.75%   91.73%   -0.02%
+ Complexity     7439     7437       -2
============================================
  Files           188      188
  Lines         15944    15944
  Branches       2994     2994
============================================
- Hits          14629    14626       -3
- Misses          724      725       +1
- Partials        591      593       +2

Impacted Files
Coverage Δ

...he/commons/lang3/concurrent/AtomicInitializer.java
75.00% <0.00%> (-25.00%)
:arrow_down:

...ache/commons/lang3/concurrent/LazyInitializer.java
90.90% <0.00%> (-9.10%)
:arrow_down:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 2e71945...af085e2. Read the comment docs.

Merged. Thanks @shalk !!