Consolidate CSS stylesheets

This ticket is semi-related to https://github.com/freeCodeCamp/freeCodeCamp/issues/52030.
In order to replace Bootstrap in /learn, we need to export a stylesheet from the component library to be used as the bootstrap.min.css replacement. However, the stylesheet situation in the component library itself needs to be sorted out, and this ticket is to track this work.
Current problem
The library currently has multiple stylesheets. Their purposes aren't clear, they have many similar CSS rules and some of the CSS rules don't match, which could cause styling issue if the import order changes.
The stylesheets are:

https://github.com/freeCodeCamp/ui/blob/main/src/colors.css

Contains color tokens

https://github.com/freeCodeCamp/ui/blob/main/src/base.css:

Contains Tailwind styles as well as some Tailwind overrides
Was created as part of the Tailwind setup, following this documentation: https://tailwindcss.com/docs/installation/using-postcss

https://github.com/freeCodeCamp/ui/blob/main/src/global-element-styles.css:

Is a subset of https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.css, containing element styles (styles that use HTML element selectors and affect elements directly)
https://github.com/freeCodeCamp/ui/blob/3886b615b6cb57840295fddc0c08a8d211e9ff3a/src/global-element-styles.css#L1-L3

https://github.com/freeCodeCamp/ui/blob/main/src/normalize.css

Is used for resetting default browser styles
Based on a comment in the file, the code was copied from https://necolas.github.io/normalize.css/3.0.3/normalize.css

Observation:

Except for colors.css, the stylesheets overlap each other:

https://github.com/freeCodeCamp/ui/blob/3886b615b6cb57840295fddc0c08a8d211e9ff3a/src/base.css#L16-L18
https://github.com/freeCodeCamp/ui/blob/3886b615b6cb57840295fddc0c08a8d211e9ff3a/src/global-element-styles.css#L397-L400
https://github.com/freeCodeCamp/ui/blob/3886b615b6cb57840295fddc0c08a8d211e9ff3a/src/normalize.css#L40-L42
(Not to mention that we do have custom CSS in the implementation of each component, in the form of class names, and those custom CSS rules override the base)

The stylesheets also have some conflicting rules:

https://github.com/freeCodeCamp/ui/blob/3886b615b6cb57840295fddc0c08a8d211e9ff3a/src/normalize.css#L61-L64
https://github.com/freeCodeCamp/ui/blob/3886b615b6cb57840295fddc0c08a8d211e9ff3a/src/global-element-styles.css#L150-L155

normalize.css is supposed to match the original https://necolas.github.io/normalize.css/3.0.3/normalize.css, but I found some discrepancies: https://github.com/huyenltnguyen/freeCodeCamp-ui/pull/1
Tailwind provides a preflight stylesheet out of the box, and the purpose of the stylesheet is similar to normalize.css. However, we turned this option off in favor of our custom stylesheets (global-element-styles.css and normalize.css)

https://github.com/freeCodeCamp/ui/blob/1e3252fb0497b1b3ec29e0ddb1ff9a51fc908589/tailwind.config.js#L6

From what I understand, we added global-element-styles.css and normalize.css in because we wanted to mimic the /learn environment in Storybook, in order to develop components for /learn

https://github.com/freeCodeCamp/ui/blob/3886b615b6cb57840295fddc0c08a8d211e9ff3a/.storybook/preview.js#L1-L5
According to the import order, if there is a conflict between global-element-styles.css and normalize.css, global-element-styles.css will take precedence.

Only colors.css and base.css are bundled

https://github.com/freeCodeCamp/ui/blob/3886b615b6cb57840295fddc0c08a8d211e9ff3a/src/base.css#L1
https://github.com/freeCodeCamp/ui/blob/4dfc72ecd15bc6fce0826436ea2eeaab1c1e2c92/package.json#L32

What we want to achieve
For the component library itself, we want:

A simplified styling strategy

For the library consumers, we want:

The color variables
A stylesheet for resetting default browser styles. This should be the same stylesheet that the component library uses internally

Approaches
I think we should start developing the component library as a standalone package, rather than having /learn influence it.
So I'd propose:

Removing global-element-styles.css since this comes from Bootstrap, and includes a lot of CSS customization, not just reset
Using Tailwind preflight for browser styles reset (this means simply flipping the preflight flag to true)

Here is a comparison between normalize.css and Tailwind preflight stylesheets: https://github.com/huyenltnguyen/freeCodeCamp-ui/pull/2/commits/f81770d686b944262569a724d1c8bc432a2e23b7
The differences between them aren't significant. But my concern with normalize.css is the library is not actively maintained, while Tailwind is an active project and its preflight stylesheet is written upon modern-normalize, which is... more modern.
We are already using Tailwind, so I think snapping back to Tailwind preflight would prevent stylesheets conflicts, and allow us to remove an additional dependency

Removing normalize.css, if we choose to use Tailwind preflight

As for the styling strategy in the component library, I think:

Each component should be styled using Tailwind classes. This should be the first option when it comes to styling a component.
If we want to override Tailwind globally, the rules should be added to base.css. As the file name suggests, the file should house very basic CSS styles, and we want to be mindful when adding changes as they will require overrides on the component level, which would bring inconsistencies.

Implications for the Bootstrap removal in /learn
Given that we tried replacing the Bootstrap stylesheet with normalize.css and the result was positive (ref), I don't think the Tailwind preflight would cause a catastrophe.
/learn has a huge global.css file that has all sort of CSS rules to override Bootstrap. I think those rules would help keep the UI intact (or mostly intact) when we swap the stylesheets. (The global.css file also needs a round of review and cleanup as part of the Bootstrap removal, but that's a separate topic.)

It does not have to be my birthday. I always celebrate when I see well-thought out issues like this.
A few thoughts:

At the time, I came to a conclusion that normalize is the industry standard comparing to preflight and it would make removing bootstrap easier since bootstrap was using it. If any of these assumptions are incorrect, we should move forward with preflight.

There should be one set of presets, for the component library regardless of what is being overwritten in learn, etc.

I think the main reason we added normalize and global element styles is that when the elements were imported to learn they would look different from Storybook. Might need to remove them, and see how they effect storybook and learn.

Finally, this is a great blueprint for the stylesheet consolidation. At the same time, it might be helpful to evaluate how it would impact the migration. If we decide to do this before or after the migration, I am on board either way. It is a task that we need to take care of at some point.

I meant normalizers by presets, and look forward to hear about your progress with the experimentation.


The clock rate during play video by HTTP-FLV is slower compared to the normal clock rate.

At the beginning, the time interval between the streaming machine's clock and the playback time for the HTTP-FLV  was around 10 seconds. After a while, this time interval increased. I'm not sure if it's due to a discrepancy in clock rates between the HTTP-FLV streaming  and the actual clock rates, or if there are other reasons.
nginx version:1.22
nginx-http-module version:lasted
OS:Linux
at the begainning:
left is rtmp and right is http-flv

in a while:

You can see he time interval has increased, and what I can confirm is that the clock rate during RTMP streaming is correct.
by the way,I play flv useing flv.min.js,this is a demo:

        <video controls controlslist="nodownload noplaybackrat" id="my-video" autoplay
            class="LiveVideo video-js vjs-default-skin">Your browser is too
            old which doesn't support HTML5 video.</video>

Make sure your network is well. Normally, the delay of HTTP-FLV is about 1~5s (without GOP cache). It seems that HTTP-FLV halted (maybe caused by server timeout). By the way, there is cumulative delay in HTTP-FLV streaming because of network jitter. In other words, TCP is a reliable delivery protocol, it may delay in network, player must wait for delayed packets, that is out of control of server. Further, HTTP-FLV is not as interactive as RTMP, so delay in HTTP-FLV streaming is often larger than RTMP. Players can discard too delayed packets to catch up the streaming pace.


Merge m4a and mp4 into one single file vidoe file?

I noticed that I'm downloading separated file that is .m4a and .mp4.
Is there any reason the audio and video are not synched together into one file, which will be only .mp4?

@KoichaDev yt-dlp is handling everything merging and etc, check in folder what you get in the end

I had to remove the "ytdl-run": "^0.2.1dependency from the package.json, but I did keep "yt-dlp-wrap": "^2.3.12"`.
If I try to do npm install with ytdl-run, I get error:
npm ERR! code 1
npm ERR! path /Users/khoi/Developments/vsdown/node_modules/ytdl-run
npm ERR! command failed
npm ERR! command sh -c node ./install.js
npm ERR! installing youtube-dl...
npm ERR! (node:37639) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead.
npm ERR! (Use `node --trace-deprecation ...` to show where the warning was created)
npm ERR! /Users/khoi/Developments/vsdown/node_modules/got/index.js:482
npm ERR!                        proxy.emit('error', new got.HTTPError(statusCode, res.statusMessage, res.headers, opts), null, res);
npm ERR!                                            ^
npm ERR!
npm ERR! GotError [HTTPError]: Response code 451 (Unavailable For Legal Reasons)
npm ERR!     at EventEmitter.<anonymous> (/Users/khoi/Developments/vsdown/node_modules/got/index.js:482:24)
npm ERR!     at EventEmitter.emit (node:events:519:28)
npm ERR!     at getResponse (/Users/khoi/Developments/vsdown/node_modules/got/index.js:320:5)
npm ERR!     at Immediate.<anonymous> (/Users/khoi/Developments/vsdown/node_modules/got/index.js:147:6)
npm ERR!     at process.processImmediate (node:internal/timers:478:21) {
npm ERR!   host: 'yt-dl.org',
npm ERR!   hostname: 'yt-dl.org',
npm ERR!   method: 'GET',
npm ERR!   path: '/downloads/latest/youtube-dl',
npm ERR!   protocol: 'https:',
npm ERR!   url: 'https://yt-dl.org/downloads/latest/youtube-dl',
npm ERR!   statusCode: 451,
npm ERR!   statusMessage: 'Unavailable For Legal Reasons',
npm ERR!   headers: {
npm ERR!     date: 'Mon, 25 Mar 2024 11:25:26 GMT',
npm ERR!     'content-type': 'text/html; charset=UTF-8',
npm ERR!     'content-length': '384',
npm ERR!     connection: 'keep-alive',
npm ERR!     server: 'nginx',
npm ERR!     'last-modified': 'Tue, 01 Aug 2023 08:39:22 GMT',
npm ERR!     etag: '"180-601d87bdde71b"',
npm ERR!     'accept-ranges': 'bytes',
npm ERR!     'x-xss-protection': '1; mode=block',
npm ERR!     'x-frame-options': 'SAMEORIGIN',
npm ERR!     'strict-transport-security': 'max-age=31536000',
npm ERR!     'x-content-type-options': 'nosniff',
npm ERR!     'referrer-policy': 'strict-origin-when-cross-origin'
npm ERR!   }
npm ERR! }
npm ERR!
npm ERR! Node.js v21.7.1

Maybe that is the issue?
Also, this is the result of the processor from this course

@KoichaDev yt-dlp is handling everything merging and etc, check in folder what you get in the end

I did remove the dependency ytdl-run but kept the yt-dlp-wrap. The reason is that If I try to run npm install with the ytdl-run, then I get this error log below:
npm ERR! code 1
npm ERR! path /Users/khoi/Developments/vsdown/node_modules/ytdl-run
npm ERR! command failed
npm ERR! command sh -c node ./install.js
npm ERR! installing youtube-dl...
npm ERR! (node:37639) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead.
npm ERR! (Use `node --trace-deprecation ...` to show where the warning was created)
npm ERR! /Users/khoi/Developments/vsdown/node_modules/got/index.js:482
npm ERR!                        proxy.emit('error', new got.HTTPError(statusCode, res.statusMessage, res.headers, opts), null, res);
npm ERR!                                            ^
npm ERR!
npm ERR! GotError [HTTPError]: Response code 451 (Unavailable For Legal Reasons)
npm ERR!     at EventEmitter.<anonymous> (/Users/khoi/Developments/vsdown/node_modules/got/index.js:482:24)
npm ERR!     at EventEmitter.emit (node:events:519:28)
npm ERR!     at getResponse (/Users/khoi/Developments/vsdown/node_modules/got/index.js:320:5)
npm ERR!     at Immediate.<anonymous> (/Users/khoi/Developments/vsdown/node_modules/got/index.js:147:6)
npm ERR!     at process.processImmediate (node:internal/timers:478:21) {
npm ERR!   host: 'yt-dl.org',
npm ERR!   hostname: 'yt-dl.org',
npm ERR!   method: 'GET',
npm ERR!   path: '/downloads/latest/youtube-dl',
npm ERR!   protocol: 'https:',
npm ERR!   url: 'https://yt-dl.org/downloads/latest/youtube-dl',
npm ERR!   statusCode: 451,
npm ERR!   statusMessage: 'Unavailable For Legal Reasons',
npm ERR!   headers: {
npm ERR!     date: 'Mon, 25 Mar 2024 11:25:26 GMT',
npm ERR!     'content-type': 'text/html; charset=UTF-8',
npm ERR!     'content-length': '384',
npm ERR!     connection: 'keep-alive',
npm ERR!     server: 'nginx',
npm ERR!     'last-modified': 'Tue, 01 Aug 2023 08:39:22 GMT',
npm ERR!     etag: '"180-601d87bdde71b"',
npm ERR!     'accept-ranges': 'bytes',
npm ERR!     'x-xss-protection': '1; mode=block',
npm ERR!     'x-frame-options': 'SAMEORIGIN',
npm ERR!     'strict-transport-security': 'max-age=31536000',
npm ERR!     'x-content-type-options': 'nosniff',
npm ERR!     'referrer-policy': 'strict-origin-when-cross-origin'
npm ERR!   }
npm ERR! }
npm ERR!
npm ERR! Node.js v21.7.1

The output I get from this course

As you can see, it's a separated file .m4a and .mp4. There is no sound on .mp4, only in .m4a. I assume the .m4a are supposed to merge in with .mp4 when downloading the videos.
Any idea why this is happening?

I noticed that split audio/video files are happening not in all but (reproducable) in the following courses:
28-Vue 3 Composition API
50-Nuxt.js 3 Fundamentals
51-Build a Drag-and-Drop Trello Board with Vue.js
52-Rapid Testing with Vitest
54-Robust Vue.js Forms with FormKit
55-Laravel Backends for Vue.js 3
57-Common Vue.js Mistakes and How to Avoid Them
58-Charts for Vue.js 3
59-AI Chat Bot with Vue.js and GPT-4
60-Advanced Components Exposing Internal State
61-Vue.js Transitions and Animations
63-Content Sites with Astro and Vue.js
64-Material UI with Vuetify and Vue.js
65-Tailwind CSS Fundamentals
66-A "Wordle" on Test Driven Development in Vue.js
69-Nuxt Modules The Ultimate Guide
```

You can merge them with `ffmpeg -i audio.m4a -i video.mp4 -c copy output.mp4`.

hey guys, sorry for delay, try to update yt-dlp to last version on your system, also run the downloader with debug prefix so if any error pops up let me know

Using node v21.7.1 and yt-dlp 2024.03.10 I still have all seperate audio/video files for course 57-Common Vue.js Mistakes and How to Avoid Them (a free course for you to try).

ok, try to delete that folder and try to download it again, if it happens again let me know.
I downloaded entire site over the last free weekend without any issues

Could please update your dependencies (lots of deprecated libs, ytdl-run uses a non-working link for yt-dlp and so on)?
The current master course again has seperate audio/video files.

I pushed new version, please check and run and let me know...


showybox and ctheorems?

Hi everyone
Is there currently a way to use showybox instead of plain block? Or maybe any plans to add this feature?
I'm not sure how complicated implementing it may be, but if not (I'm very new to typst) could you suggest where do I begin?
I'm certain everyone here has seen showybox, but just in case, here's what it can do:

Some more examples:
https://github.com/Pablo-Gonzalez-Calderon/showybox-package/blob/main/examples/examples.pdf

You can indeed use showybox with ctheorems, just by setting an appropriate formatting function fmt to thmenv (you might want to look at the manual, under Function Reference). All thmenv does is handle the counters, which means that you have the flexibility to format the content any way you want.
The style here is borrowed from one of the showybox examples.

The fmt function (here it's showy-fmt) should take the theorem name, number, body (plus optional arguments) and produce formatted content. Here, you can see how the footer gets passed from theorem through showy-fmt down to the showybox naturally.
#import "@preview/ctheorems:1.1.0": *
#import "@preview/showybox:2.0.1": showybox

#show: thmrules

#set page(width: 16cm, height: auto)
#set heading(numbering: "1.")

#let showy-fmt(name, number, body, ..args) = {
  showybox(
    title: [#number #name],
    frame: (
      border-color: blue,
      title-color: blue.lighten(30%),
      body-color: blue.lighten(95%),
      footer-color: blue.lighten(80%),
    ),
    ..args.named(),
    body
  )
}

#let theorem = thmenv(
  "theorem",
  "heading",
  none,
  showy-fmt
).with(supplement: "Theorem")

#let corollary = thmenv(
  "corollary",
  "theorem",
  none,
  showy-fmt
).with(supplement: "Corollary")

= Using `showybox` with `ctheorems`

#theorem(
  "Stokes' theorem",
  footer: "Information extracted from a well-known public encyclopedia"
)[
  Let $Sigma$ be a smooth oriented surface in $RR^3$ with boundary $diff Sigma
  equiv Gamma$. If a vector field $bold(F)(x,y,z)=(F_x (x,y,z), F_y (x,y,z),
  F_z (x,y,z))$ is defined and has continuous first order partial derivatives
  in a region containing $Sigma$, then

  $ integral.double_Sigma (bold(nabla) times bold(F)) dot bold(Sigma) =
  integral.cont_(diff Sigma) bold(F) dot dif bold(Gamma) $
] <stokes>

#theorem(
  lorem(5),
)[
  #lorem(20)
]

#corollary(
  lorem(7),
  frame: (
    border-color: red,
    title-color: red.lighten(10%),
    body-color: red.lighten(90%)
  )
)[
  #lorem(15)

  Refer to @stokes.
]

This is amazing!
Thank you

This is a version defining a showythm which is closer to how thmbox works. I don't think it is a good idea to make this a part of ctheorems directly, but I guess it's worth highlighting as an example.

#import "@preview/ctheorems:1.1.0": *
#import "@preview/showybox:2.0.1": showybox

#show: thmrules

#set page(width: 16cm, height: auto)
#set heading(numbering: "1.")

#let showythm(
  identifier,
  head,
  color: blue,
  ..showy-args,
  supplement: auto,
  base: "heading",
  base_level: none
) = {

  if supplement == auto {
    supplement = head
  }

  return thmenv(
    identifier,
    base,
    base_level,
    (name, number, body, ..args) => {
      if name != none {
        name = [(#name)]
      }
      showybox(
        title: [#head #number #name],
        frame: (
          border-color: color,
          title-color: color.lighten(10%),
          body-color: color.lighten(95%),
          footer-color: color.lighten(80%),
        ),
        ..args.named(),
        body
      )
    }
  ).with(supplement: head)
}

#let theorem = showythm("theorem", "Theorem")
#let lemma = showythm("theorem", "Lemma", color: green)
#let corollary = showythm(
  "corollary",
  "Corollary",
  base: "theorem",
  color: red
)

= Using `showybox` with `ctheorems`

#theorem(
  "Stokes' theorem",
  footer: "Information extracted from a well-known public encyclopedia"
)[
  $ integral.double_Sigma (bold(nabla) times bold(F)) dot bold(Sigma) =
  integral.cont_(diff Sigma) bold(F) dot dif bold(Gamma) $
] <stokes>

#lemma[
  #lorem(20)
]

#corollary(lorem(5))[
  #lorem(15)

  Refer to @stokes.
]

This style of formatting probably isn't very idiomatic (show rules seem to be more prevalent in Typst): something like lemmify might look cleaner.


bug: ERROR Error: Uncaught (in promise): Error: 10 : Google Sign In - Android device

Hi,
I have followed your demo app and done all the configurations as per your docs. When I push the app to a Native Android device using this CLI it shows the below error on the console. It opens the Sign In popup and I have selected my Gmail a/C there. After that below error. Any clue, please.
ionic cap run android -l --host=<IP_ADDRESS>
I have tried with Android studio too. But the same error:
 Ionic CLI                     : 6.16.3 (C:\Users\Sampath\AppData\Roaming\npm\node_modules\@ionic\cli)
   Ionic Framework               : @ionic/angular 6.0.11
   @angular-devkit/build-angular : 13.0.1
   @angular-devkit/schematics    : 13.0.1
   @angular/cli                  : 13.0.1
   @ionic/angular-toolkit        : 5.0.0

Capacitor:

   Capacitor CLI      : 3.4.0
   @capacitor/android : 3.4.1
   @capacitor/core    : 3.4.0
   @capacitor/ios     : not installed

Utility:

   cordova-res : 0.15.3
   native-run  : 1.5.0

System:

   NodeJS : v14.16.1 (C:\Program Files\nodejs\node.exe)
   npm    : 6.14.12
   OS     : Windows 10

main.5dfd8e110055e9fe.js:1 ERROR Error: Uncaught (in promise): Error: 10:
Error: 10:
    at Object.cap.fromNative (VM3:411:32)
    at <anonymous>:1:18
    at A (polyfills.399b2c612e14986c.js:1:17320)
    at polyfills.399b2c612e14986c.js:1:16402
    at Ie (main.5dfd8e110055e9fe.js:1:195570)
    at h.invoke (polyfills.399b2c612e14986c.js:1:7321)
    at Object.onInvoke (main.5dfd8e110055e9fe.js:1:336317)
    at h.invoke (polyfills.399b2c612e14986c.js:1:7261)
    at h.run (polyfills.399b2c612e14986c.js:1:2414)
    at polyfills.399b2c612e14986c.js:1:18126
    at h.invokeTask (polyfills.399b2c612e14986c.js:1:8006)
    at Object.onInvokeTask (main.5dfd8e110055e9fe.js:1:336133)
D_ @ main.5dfd8e110055e9fe.js:1
handleError @ main.5dfd8e110055e9fe.js:1
next @ main.5dfd8e110055e9fe.js:1
__tryOrUnsub @ main.5dfd8e110055e9fe.js:1
next @ main.5dfd8e110055e9fe.js:1
_next @ main.5dfd8e110055e9fe.js:1
next @ main.5dfd8e110055e9fe.js:1
next @ main.5dfd8e110055e9fe.js:1
emit @ main.5dfd8e110055e9fe.js:1
(anonymous) @ main.5dfd8e110055e9fe.js:1
h.invoke @ polyfills.399b2c612e14986c.js:1
h.run @ polyfills.399b2c612e14986c.js:1
runOutsideAngular @ main.5dfd8e110055e9fe.js:1
onHandleError @ main.5dfd8e110055e9fe.js:1
h.handleError @ polyfills.399b2c612e14986c.js:1
h.runGuarded @ polyfills.399b2c612e14986c.js:1
f @ polyfills.399b2c612e14986c.js:1
t.microtaskDrainDone @ polyfills.399b2c612e14986c.js:1
m @ polyfills.399b2c612e14986c.js:1
Promise.then (async)
g @ polyfills.399b2c612e14986c.js:1
h.scheduleTask @ polyfills.399b2c612e14986c.js:1
onScheduleTask @ polyfills.399b2c612e14986c.js:1
h.scheduleTask @ polyfills.399b2c612e14986c.js:1
h.scheduleTask @ polyfills.399b2c612e14986c.js:1
h.scheduleMicroTask @ polyfills.399b2c612e14986c.js:1
H @ polyfills.399b2c612e14986c.js:1
A @ polyfills.399b2c612e14986c.js:1
(anonymous) @ polyfills.399b2c612e14986c.js:1
cap.fromNative @ VM3:428
(anonymous) @ VM39:1

Hi @Sampath-Lokuge,
i close this as duplicate of https://github.com/robingenz/capacitor-firebase-authentication-demo/issues/164.
Please have a look at this comment: https://github.com/robingenz/capacitor-firebase-authentication-demo/issues/164#issuecomment-1081776082

Yes, my issue was the SHA1 key.
When I use this keytool -list -v -alias androiddebugkey -keystore %USERPROFILE%\.android\debug.keystore
It always generates the same SHA1 key for any project. So I have realized that was the issue here. After that, I have used Android Studio for generating SHA1 key like so: https://stackoverflow.com/a/67866731/1077309
After that, I deleted the old one on the Firebase console and add a new one and all are working fine now.
Thanks a lot for the top-quality plugin, docs, and demo app. Keep up the great work!


setup looping

From v1.0.2 I'm getting stuck in a loop at setup. The following is the log that repeats with every loop.  Attempting to visit in a browser gives an "err_too_many_redirects" and the url jumps to https://foo.com/install/update. It makes me think the setup script isn't completing and somehow triggering the containers to reset.  Any ideas? I'm a bit stumped since not much seems to have changed in the container generation scripts since 1.0.2.
leantime-db  |                                                                        ,---. leantime-db  | ,--------.,--.                 ,--.            ,---.    ,--. ,--------.|   | leantime-db  | '--.  .--'--',--.--. ,---.  ,-|  |     ,---. /  .-'    |  | '--.  .--'|  .'
leantime-db  |    |  |   ,--.|  .--'| .-. :' .-. |    | .-. ||  -,    |  |    |  |   |  | leantime-db  |    |  |   |  ||  |   \   --.\ -' |    ' '-' '|  .-'    |  |.--.|  |   --' leantime-db  |    --'   --'--'    ----' ---'      ---' --'      --''--'--'   .--.
leantime-db  |                                                                        '--'
leantime-db  | Image: tiredofit/mariadb:10.6 | Version 3.10.6 Type 'image_changelog' for details
leantime-db  | Repository/Issues/Support: https://github.com/tiredofit/docker-mariadb/
leantime-db  |            Like my work? Visit https://www.tiredofit.ca/sponsor
leantime-db  |
leantime-db  | 2022-08-26.00:13:38 [NOTICE] ** [monitoring] Container configured for monitoring with 'zabbix classic'
leantime-db  | 2022-08-26.00:13:38 [NOTICE] ** [scheduling] Disabling Scheduling
leantime-db  | sed: /etc/logrotate.d/mariadb: No such file or directory
leantime-db  | 2022-08-26.00:13:38 [WARN] ** [mariadb] MariaDB directory already present, skipping database creation
leantime-db  | 2022-08-26.00:13:38 [NOTICE] ** [mariadb-backup] Disabling scheduled backups
leantime-db  | 2022-08-26.00:13:38 [STARTING] ** [mariadb] [1] Starting MariaDB 10.6.7
leantime-db  | 2022-08-26.00:13:38 [STARTING] ** [monitoring] [1] Starting Zabbix Agent (classic) 6.0.0
leantime     |                                                                        ,---.
leantime     | ,--------.,--.                 ,--.            ,---.    ,--. ,--------.|   |
leantime     | '--.  .--'--',--.--. ,---.  ,-|  |     ,---. /  .-'    |  | '--.  .--'|  .' leantime     |    |  |   ,--.|  .--'| .-. :' .-. |    | .-. ||  -,    |  |    |  |   |  |
leantime     |    |  |   |  ||  |   \   --.\ -' |    ' '-' '|  .-'    |  |.--.|  |   --'
leantime     |    --'   --'--'    ----' ---'      ---' --'      --''--'--'   .--. leantime     |                                                                        '--' leantime     | Image:  tiredofit/leantime | Version  1.0.6 Type 'image_changelog' for details leantime     | Repository/Issues/Support:  https://github.com/tiredofit/docker-leantime/ leantime     |            Sponsor me for development and upkeep: https://www.tiredofit.ca/sponsor leantime     |  leantime     | 2022-08-26.00:13:38 [NOTICE] ** [timezone] Timezone: Setting to 'America/New_York' from 'Etc/GMT' leantime     | 2022-08-25.20:13:38 [NOTICE] ** [monitoring] Container configured for monitoring with 'zabbix modern' leantime     | 2022-08-25.20:13:39 [NOTICE] ** [scheduling] Container configured for scheduled tasks with 'cron' leantime     | 2022-08-25.20:13:39 [NOTICE] ** [messaging] Container configured to route mail via SMTP to 'postfix-relay' leantime     | 2022-08-25.20:13:41 [NOTICE] ** [php-fpm] PHP-FPM Preparing to start with the following plugins enabled:  apcu bcmath bz2 ctype curl dom exif fileinfo gd iconv imap intl ldap mbstring mysqli mysqlnd opcache openssl pdo pdo_mysql pgsql phar session simplexml tokenizer xml xmlreader xmlwriter zip leantime     | 2022-08-25.20:13:41 [WARN] ** [leantime] Potential New Installation / Standalone Installation Detected - Copying Leantime Sourcecode leantime     | 2022-08-25.20:13:45 [WARN] ** [leantime] Detected /data directory. Persistently saving settings and volatile information leantime     | ln: /www/html//data/backup/: No such file or directory leantime     | 2022-08-25.20:13:46 [INFO] ** [leantime] Auto Configuring based on Environment Variables leantime     | 2022-08-25.20:13:46 [INFO] ** [leantime] Generating Configuration leantime     | 2022-08-25.20:13:46 [STARTING] ** [nginx] [1] Starting nginx 1.23.1 leantime     | 2022-08-25.20:13:46 [STARTING] ** [php-fpm] [1] Starting php-fpm 8.0.22 leantime     | 2022-08-25.20:13:46 [STARTING] ** [monitoring] [1] Starting Zabbix Agent (modern) 6.2.1 leantime     | 2022-08-25.20:13:46 [STARTING] ** [scheduling] [1] Starting cron leantime     | 2022-08-25.20:13:51 [WARN] ** [leantime] Detected empty Database - Setting up - Please wait a few minutes.. leantime     | 2022-08-25.20:13:51 [INFO] ** [leantime] Initialization Complete. Please visit https://projects.globalgameservices.com and login with your credentials..

Definitely weird. Something perhaps with the SITE_URL variable? You are right as well, not much has changed since 1.0.2 to affect this which is going to make this difficult to track where the issue is. It could very well be something within Leantime itself?

It looks like it's never actually writing to the database. Possibly some sort of silent fail when invoking the auto-creation of the admin user?

Try using environment variable SHOW_OUTPUT=TRUE and lets see.

I just took a look at the config file and there is more options. Have a peek at 1.0.7 and I also believe this may give you a better install experience specifically with custom DB_PORT support and other goodies.

Love the updates.  With the expanded logging, it looks like the issue is in the initialization of the database.  It shouldn't take forever, but surely some time need elapse, the timestamps look like it's instantaneous. I'll go through my config again and ensure all the info is correct for the database connection, and use the handy-dandy new DB_PORT.

leantime     | 2022-08-25.22:35:36 [WARN] ** [leantime] Detected empty Database - Setting up - Please wait a few minutes..
leantime     | 2022-08-25.22:35:36 [INFO] ** [leantime] Initialization Complete. Please visit https://abcd.com and login with your credentials...

Likely unrelated: also seeing a backups error.

leantime     | ln: /www/html//data/backup/: No such file or directory

The same problem for me on my existing install. It is looping between authentication and setup on an existing installation.


Documented instructions do not seem to work

Hi,
Congrats on the release of 1.0.0. Unfortunately I can't get this to work with even your basic instruction from the main page.
Traceback (most recent call last):
File "opengsq.py", line 2, in
from opengsq.protocols import Source
File "/Users/pblaas/Documents/github/insAPI/opengsq.py", line 2, in
from opengsq.protocols import Source
ModuleNotFoundError: No module named 'opengsq.protocols'; 'opengsq' is not a package
import asyncio
from opengsq.protocols import Source

async def main():
    source = Source(address='<IP_ADDRESS>', query_port=27015)
    info = await source.get_info()
    print(info)

asyncio.run(main())

▶ python -V
Python 3.8.10
▶ pip3 list|grep opengsq
opengsq                            1.0.0

I guess the naming of opengsq.py conflicts with opengsq library 😅, try to rename the opengsq.py file, thank you.

Lol yes, sorry :/


Readme examples PHP 5.4

In the begining of Readmy it says:

An easy to use, consistent payment processing library for PHP 5.3+

In code sample you create array with:
$formData = ['number' => '4242424242424242', 'expiryMonth' => '6', 'expiryYear' => '2016', 'cvv' => '123'];

That is allowed only in PHP 5.4+
I know library supports 5.3, but it can be confuse for users with PHP 5.3 who will try to use example code.

Can you submit a PR to fix the example?

@barryvdh If 5.3 not supporting anymore than example is good and you only have to update Readme.md

An easy to use, consistent payment processing library for PHP 5.4+

No 5.3 is still supported.
If you want, you can submit a PR to make the readme 5.3 compatible.


botocore version error

https://github.com/aws/sagemaker-tensorflow-container/blob/e3a7a6581d93997ea4890074e145e42fed0d9801/setup.py#L60
When i run sagemaker test with pytest test/integration/sagemaker , it returns me with the error
ContextualVersionConflict: (botocore 1.13.0 (/usr/local/lib/python2.7/dist-packages), Requirement.parse('botocore<1.13.0,>=1.12.72'), set(['boto3']))
After checking logs i found out the botocore installed here is 1.13.0. is it possible to set it to <1.13.0,>=1.12.72? I tested with botocore==1.12.195, all sagemaker tests passed.
Thanks!

what package in your workspace was requiring botocore<.13.0,>=1.12.72?
If you have a pre-installed version of botocore that satisfies >=1.12.140, then pip install .[test] shouldn't try and upgrade botocore.

what package in your workspace was requiring botocore<.13.0,>=1.12.72?
If you have a pre-installed version of botocore that satisfies >=1.12.140, then pip install .[test] shouldn't try and upgrade botocore.

checked the boto3 version and resolve the problem. thanks!


Get ansible k8s syntax to validate in Visual Studio Code

Normaly i use Visual Studio Code to edit ansible, but I can't figure out how to fix so Visual Studio Code understands the k8 syntax:

Any ideas or suggestions?

HI @mikkeschiren,
It shows a subject related to, I mean more appropriate to VS channels and etc.  However, it may https://code.visualstudio.com/docs/azure/kubernetes#_install-the-kubernetes-extension is what you are looking for.
I'd recommend you looking for extensions and plugins of your IDE.
I am closing this one since shows sorted besides is not be part of operator-framework and sdk scope.

@camilamacedo86 that extension is on one of them I am using, it thought that the project were responsible for it's own schemas? Or were could I find the schema?

Hi @mikkeschiren,
The schemas are provided /defined by the k8s API. However, what is the best plugin to work with k8s API in Visual Studio is not really a operator-framework scope.  If you are using an extension/plugin for your IDE and it still not work well maybe is the version of the extension or plugin that does not support the version of Kube API used with.
So, I'd recommend you check it and in the go.mod of your project you can see the kube version that it is using.
I hope that it clarifies your question and help you with.

I do not think k8 version is something to do with it - it is yaml files for ansible, used by the ansible operator that do no validate. To make it validate it need a schema for the ansible operator. Maybe I can write my own, it should not be so much to add for the offical ansible schemas.

I see you are checking the files for example task.yml. Am I right?
So, if you would like to edit ansible files in the Visual Studio I'd recommend you looking for a plugin/extension for your IDE. See for example: https://marketplace.visualstudio.com/items?itemName=vscoss.vscode-ansible
Have you tried to check this one?
Also, perhaps see if someone already raise this question in https://github.com/ansible/ansible and/or
https://github.com/github/VisualStudio.
Please, let me know if the above-suggested plugin worked for you.

Thanks, but I already have the ansible extension - the problem is not ansible itself - it is that the schema used in the ansible operator does not validate against the existing schemas, like: https://github.com/SchemaStore/schemastore/blob/8af13cd3afa7ca67a1c246b38e19602c7e242783/src/api/json/catalog.json#L13
And then it does not validate, the editor itself (any editor) is more or less useless for editing yaml files for the the ansible operator. So what I am looking for is a ansible schema for the ansible operator.

Hi @mikkeschiren,
Are you able to see errors when you check the .travis file as well? If yes, so your question is: How to make  Visual Studio recognize YML files?
It is important to highlight that the operator-sdk and its Framework are NOT creating any new type of file and it will just use ansible annotations, and python files, as generating k8s resources using its APIs. So, your question would be  How to not see errors in the **Visual Studio** when I open **Ansible YML files**? So, are not the same issues appearing by checking any YML ansible file which was generated or NOT by the operator in your Visual Studio?
In order to help you with: Note that the same behaviour is NOT faced by using Golang IDE and IntelliJ for example.
I checked that I have just the k8s plugin:

Then, I installed the Ansible plugin just to check it with. All still working fine.

So, I'd recommend you raise the question in the https://github.com/github/VisualStudio and/or https://github.com/ansible/ansible since it is specific questions for then and it has more relation to their scope.
Please, let me know if is clear now why it is out off the context of the Operator-SDK and Operator-Framework.

I still believe it is a schema problem - where is the schema for the ansible operator? I cant see how it is relevant for general questions for an editor or the ansible project - the schema of the file is not recognized, and therefor it does not validate, and you do not get stuff like autocompletion etc. Do you get autocompletion in the editors you tried?  All have the same problem, they do not understand ansible operator schema.

HI @mikkeschiren,
Can you please check the Ansible Sample and le us know what and where you see an error as example in your IDE?

Same results:

But if I am using the deprecated k8s_raw:

No warnings any more.

Anyhow, I guess this should be an ansible issue, will create issue overhere.

Hi @mikkeschiren,
Just to clarifies. See the same file open in the Intellij:

Note that I am using just the k8s extension/plugin for IDE and I am not seen any issue).

So, how this behaviour cannot be something specific of Visual Studio IDE and/or extensions used on it? I hope that it can clarify. I'd you suggest raise and issue for ansible and/or visual studio to see if someone can help you find out How to not see errors in ansible files opened in the Visual Studio?
Really thank your attention and close this issue.


Add CustomAgent feature

Oh wait, it's on the wrong branch. Open a new PR targeting v4-beta branch instead.


Update GitHub issues to reflect new release of 0.8.9, and starting of 0.9.0wip

Not sure what this is about.  But, 0.8.10 is released and v0.8.11 is currently in development as v0.8.11wip.  So, closing this issue.


Cookies from  on_browser_created hook are not preserved

I tried this example and i do not see cookie is passed to the new context created after that hook is executed.
Same happens to cookies assigned by the web page or server.
    print("[HOOK] on_browser_created")
    # Example customization: set browser viewport size
    context = await browser.new_context(viewport={'width': 1920, 'height': 1080})
    page = await context.new_page()

    # Example customization: logging in to a hypothetical website
    await page.goto('https://example.com/login')
    await page.fill('input[name="username"]', 'testuser')
    await page.fill('input[name="password"]', 'password123')
    await page.click('button[type="submit"]')
    await page.wait_for_selector('#welcome')

    # Add a custom cookie
    await context.add_cookies([{'name': 'test_cookie', 'value': 'cookie_value', 'url': 'https://example.com'}])

    await page.close()
    await context.close()```

maybe can help link

was able to use this approach. but doc still is not correct and confusing.

Thank you, i will change the crawler code later today and let you know if it works :) You are absolutely amaizing!

Appreciate @flamedmg


Implement new close button to Improve WCAG 3.0 Compliance

Description
Description:
We need to implement a new close button that meets Web Content Accessibility Guidelines (WCAG) standards. The current close button does not provide sufficient accessibility features, and we want to ensure that all users, including those with disabilities, can easily interact with it.
Tasks:
Replace existing close button:

Identify the existing close button element/component in the codebase.

Replace the existing close button with an accessible alternative that meets WCAG guidelines.

Add appropriate accessibility attributes:
Ensure the new close button includes the appropriate accessibility attributes, such as aria-label, role, and tabindex, to provide meaningful information to assistive technologies.
Implement keyboard accessibility:

Verify that the new close button can be easily accessed and triggered using keyboard navigation alone.
Test the button's functionality using keyboard-only interactions and make any necessary adjustments to ensure smooth accessibility.
Test with assistive technologies:

Validate the new close button's behavior and accessibility using screen readers, such as NVDA, VoiceOver, or JAWS.
Identify and address any issues or discrepancies found during testing.

The button can be found here: https://www.figma.com/file/ESobgAq072y7eQa4gP1JCKER/Profil?type=design&node-id=8025-225850&t=fFB01mPqM8TKNHFE-0

Design review:

Gå til api-delegering og test ut lukk-knappen

Testet ok


[MM-49973] Bot and guest tags truncated on suggestion autocomplete

Summary
The flex rule in the row caused unexpected shrinkage of the tag, deviating from the desired functionality.
Ticket Link
https://mattermost.atlassian.net/browse/MM-49973
Related Pull Requests
N/A
Screenshots

before
after

Release Note
NONE

E2E tests not automatically triggered, because PR has no approval yet. Please ask a developer to review and then try again to attach the QA label.

/update-branch

/e2e-test

Successfully triggered E2E testing!
GitLab pipeline | Test dashboard

Cherry pick is scheduled.

/cherry-pick cloud

Cherry pick is scheduled.


VMWareVSphere driver confuses Datastore with Datacenter

While using docker-machine with vsphere driver to deploy docker swarm into a VCenter Server it throws:
Error creating machine: Error in driver during machine creation: Unable to upload on datastore  due to Error: ServerFaultCode: Permission to perform this operation was denied.
I double checked and I did no mistake while building the command.

And the issue is in vc_conn.go line 85:
return errors.NewDatastoreError(conn.driver.Datacenter, "upload", stderr)
So actually I really don't have Permissions? Weird. I'll look more into it.

The error you get means you don't have sufficient privileges to upload an ISO on a datastore.

@manei @frapposelli Is there something we can improve or shall we just close the ticket?

@dgageot this is a permission problem, no way to improve around it.

It can be closed, I think the code was rewritten, I cannot find the problem anymore. The problem was not about the permission was about the actual error it shows: was showing that I did not have permissions to upload on datastore where in fact I hadn't permissions on Datacenter. Which was a little misleading.


[bug]: cannot close channel with state: ChanStatusLocalDataLoss|ChanStatusRestored

Background
My channel partner and I both had our nodes go offline for a few weeks. Upon restoring the wallet and channel.backup file, the channel is stuck in waiting_close_channels for a week now.
{
"total_limbo_balance": "0",
"pending_open_channels": [
],
"pending_closing_channels": [
],
"pending_force_closing_channels": [
],
"waiting_close_channels": [
{
"channel": {
"remote_node_pub": "039910a225afe022698e41afdc69ef7b23832cb03baf632476b42d1b7ccc596fcf",
"channel_point": "c2c5e72c007f87325e633233d4c0d27a29dd90a9dac6755333f4d0504383b42a:0",
"capacity": "110000",
"local_balance": "0",
"remote_balance": "0",
"local_chan_reserve_sat": "0",
"remote_chan_reserve_sat": "0",
"initiator": "INITIATOR_REMOTE",
"commitment_type": "ANCHORS",
"num_forwarding_packages": "0",
"chan_status_flags": "ChanStatusLocalDataLoss|ChanStatusRestored",
"private": true
},
"limbo_balance": "0",
"commitments": {
"local_txid": "",
"remote_txid": "",
"remote_pending_txid": "",
"local_commit_fee_sat": "0",
"remote_commit_fee_sat": "0",
"remote_pending_commit_fee_sat": "0"
},
"closing_txid": ""
},
{
"channel": {
"remote_node_pub": "039910a225afe022698e41afdc69ef7b23832cb03baf632476b42d1b7ccc596fcf",
"channel_point": "48c9fc5606311257c24e2310ee766b28ac1054da6d824c807707422034cd914e:1",
"capacity": "110000",
"local_balance": "0",
"remote_balance": "0",
"local_chan_reserve_sat": "0",
"remote_chan_reserve_sat": "0",
"initiator": "INITIATOR_LOCAL",
"commitment_type": "ANCHORS",
"num_forwarding_packages": "0",
"chan_status_flags": "ChanStatusLocalDataLoss|ChanStatusRestored",
"private": true
},
"limbo_balance": "0",
"commitments": {
"local_txid": "",
"remote_txid": "",
"remote_pending_txid": "",
"local_commit_fee_sat": "0",
"remote_commit_fee_sat": "0",
"remote_pending_commit_fee_sat": "0"
},
"closing_txid": ""
}
]
}
Attempted a force closing of the channel from my side via lncli closechannel c2c5e72c007f87325e633233d4c0d27a29dd90a9dac6755333f4d0504383b42a 0 results in the following error:
[lncli] rpc error: code = Unknown desc = cannot close channel with state: ChanStatusLocalDataLoss|ChanStatusRestored
Your environment

lnd v0.15.4-beta
Linux raspberrypi 5.15.32-v8+
version of btcd, bitcoind, or other backend
any other relevant environment details

did both sides lose the database?

To my knowledge, yes. At least from my side. Presumably so from there end as well.

@tmaiorca if both sides lost the channel state, then only manual recovery with chantools zombierecovery is possible. There's a guide here: https://github.com/guggero/chantools/blob/master/doc/zombierecovery.md

@tmaiorca if both sides lost the channel state, then only manual recovery with chantools zombierecovery is possible. There's a guide here: https://github.com/guggero/chantools/blob/master/doc/zombierecovery.md

Thanks guggero! My peer and I are going to attempt the chantools zombierecovery. Fortunately, we're in contact with one another.


Minor improvements on the usage of fs utilities - unify all the fs functions into the same util/fs to simplify things

Move all the promisified declarations of fs functions such as readFile, writeFile and readdir to util/fs.js module. This also deduplicates the usage a bit.
Update usages and import them from the same module.
Add few tests - just for a quick validation of the module's exports

CI is passing now.


Archive DD1337

It might be worth removing/archiving the DD1137 section since DD1338 has it's own section and is supposed to start tomorrow (16/11).

Hi sorry for late response, I've now deleted DD1337 from the site


Required/recommended browser for portal management app?

Is there a required/recommended browser for using the portal management app? There are several places in the hierarchy of portal entities where you need to select an entity name, and the app seems to have some customisation on the form to support this. See screenshot of a new Entity Permission form below, where the custom entity picker seems to consistently fail to load on the latest version (85) of Firefox, leaving you with just a disabled text field that you can't do anything with.

There are no script errors shown as per the Browser Considerations on this doc page, but I do see this error in the browser dev tools, which seems relevant:

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

ID: ed83e291-fd19-f80b-f423-b2f701e5e279
Version Independent ID: 85df9f5f-602f-af17-fda0-2b24b4627d53
Content: Overview of Portal Management app - Power Apps
Content Source: powerapps-docs/maker/portals/configure/configure-portal.md
Service: powerapps
GitHub Login: @sandhangitmsft
Microsoft Alias: sandhan

Although I didn't see any script errors, this problem appears to be resolved by disabling adblockers as per the existing documentation.

Closing as resolved.


add RTL support

please add RTL support for Persian and Arabic .

@alefvanoon I think I've fixed this, but I'm not 100% sure. Please could you check the screenshots in #5 and confirm?

thanks.
now its working great with persian and arabic.


cmd/cgo: mark all the C functions as go:noescape

What version of Go are you using (go version)?
go tip
Does this issue reproduce with the latest release?
yes
What operating system and processor architecture are you using (go env)?
linux/amd64
What did you do?
Build the following code with go build -gcflags=-m:
package ff

// void f1(void *p) {}
import "C"
import "unsafe"

func f2(a []byte) {
        p := unsafe.Pointer(&a[0])
        C.f1(p)
}

What did you expect to see?
a shouldn't escape when calling C.f1, since, according to cgo rules, C code may not keep a copy of a Go pointer after the call returns.
This means that all the C functions may be safely marked as //go:noescape in order to prevent from useless memory allocations when the argument to C function escapes to heap.
What did you see instead?
a escapes to heap, which leads to useless memory allocation:
./1.go:8: &a[0] escapes to heap
./1.go:7: leaking param: a

@ianlancetaylor

I don't think this is safe.  f1 can call back into Go, causing the Go stack to be copied.  Any subsequent use of p by f1 would then be wrong.

Yes, this is intentional and I don't see a way to avoid it.
Closing this bug since there is nothing we can do.  Sorry.

@ianlancetaylor , is there a possibility to manually mark C.f1 with go:noescape?

Currently I use the following "trick" to avoid memory allocations when passing pointers to Go array to C function:
func f3(a []byte) {
    sh := (*reflect.SliceHeader)(unsafe.Pointer(&a))
    C.f1(unsafe.Pointer(sh.Data))
}

Unfortunately, this leads to the issue #14210 unless GODEBUG=cgocheck=0 is set.

There is no way to manually mark it.  cgo is generating code that deliberately causes it to escape, to ensure that the value is not allocated on the stack.  I don't know whether there is any better approach that will work for your application.  This should probably be discussed on golang-nuts rather than in the issue tracker.


Server does not run due to empty g:nvim_ghost_binary_path

Hello,
If I manually run nvim-ghost-binary the server runs and everything works as expected. However, whenever I launch neovim and load nvim-ghost I get error message "could not connect to localhost:4001". When I debugged I figured out:
echo g:nvim_ghost_installation_dir returns the correct installation path but nvim_ghost_binary_path returns the empty string. When I attempted to manually set nvim_ghost_binary_path to the path of binary file, I would still get an empty string. Any other string can be set to nvim_ghost_binary_path.
In my init.lua I have
vim.g.nvim_ghost_binary_path = "/home/touny/.local/share/nvim/lazy/nvim-ghost.nvim/nvim-ghost-binary"
and echo g:nvim_ghost_binary_path returns the empty string.

What do these return?

echo g:nvim_ghost_installation_dir
echo g:nvim_ghost_scripts_dir
echo g:nvim_ghost_script_path
echo g:nvim_ghost_binary_path

echo g:nvim_ghost_installation_dir

/home/touny/.local/share/nvim/lazy/nvim-ghost.nvim

echo g:nvim_ghost_scripts_dir

/home/touny/.local/share/nvim/lazy/nvim-ghost.nvim/scripts/

echo g:nvim_ghost_script_path

/home/touny/.local/share/nvim/lazy/nvim-ghost.nvim/binary.py

echo g:nvim_ghost_binary_path

empty string

:version

NVIM v0.10.2

Moreover doing let tem = g:nvim_ghost_binary_path = g:nvim_ghost_installation_dir .. "nvim-ghost-binary" then echo tem returns the empty string also

.... this is perplexing.
what's the output of
echo "a/b/c/" .. "a-b-c"
echo g:nvim_ghost_installation_dir
echo g:nvim_ghost_installation_dir .. "HI"
echo g:nvim_ghost_installation_dir .. "nvim-ghost-binary"

I cloned nvim-ghost-binary to nvim-ghost and cloned nvim-ghost-binary.version to nvim-ghost.version, and modified nvim_ghost with let g:nvim_ghost_binary_path = g:nvim_ghost_installation_dir .. 'nvim-ghost' in place of " let g:nvim_ghost_binary_path = g:nvim_ghost_installation_dir .. 'nvim-ghost-binary' .. (has('win32') ? '.exe' : '')
The server does run at expected. When I manually run call nvim_ghost#helper#start_server() it works

echo "a/b/c/" .. "a-b-c"

a/b/c/a-b-c

echo g:nvim_ghost_installation_dir

/home/touny/.local/share/nvim/lazy/nvim-ghost.nvim/

echo g:nvim_ghost_installation_dir .. "HI"

/home/touny/.local/share/nvim/lazy/nvim-ghost.nvim/HI

echo g:nvim_ghost_installation_dir .. "nvim-ghost-binary"

empty string

Also note :GhostTextStart returns E492: Not an editor command: GhostTextStart.

To fix the server startup, I modified file nvim_ghost.vim, function nvim_ghost#enable, changing
function! nvim_ghost#init(defer = 1) to function! nvim_ghost#init(defer = 0) so that line call s:start_server_or_request_focus() inside function nvim_ghost#enable runs on startup.

I think you should modify nvim_ghost.vim file, augroup nvim_ghost, and add autocmd ExitPre * call nvim_ghost#helper#kill_server() also.


Doesn't have instructions to install without Windows Store

I dont have windows store.

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

ID: 98654069-5528-4f98-7218-a803bee0a532
Version Independent ID: b49c32ea-2efa-b090-7123-87c31d10279b
Content: Use the winget tool to install and manage applications
Content Source: hub/package-manager/winget/index.md
Product: dev-environment
Technology: package-manager
GitHub Login: @mattwojo
Microsoft Alias: mattwoj

Hey @jeffsdata - WinGet should be included with your Windows installation be default, but if you're not finding that to be the case, it is installed and run using Windows App Installer. You can get App Installer without the Microsoft Store here: https://learn.microsoft.com/en-us/windows/msix/app-installer/install-update-app-installer


[fix](inverted index) Remove float/double support in index writer

Proposed changes
float and double is not allowed to build inverted index.
We remove them in inverted_index_writer to keep consistent with FE. And to avoid unnecessary exception.

run buildall


would be nice that selecting comfyui would remove the automatic UI so it won't clutter photoshop

Absolutely


Replicator fix deadlock

the way replicator uses GetClientFactory causes a deadlock because we try to get it before starting service. Simple fix is to remove the variable.

Coverage decreased (-0.07%) to 55.893% when pulling d8b26b372b0394ca7a00a0c6abec16cc3fb46377 on replicator_fix_deadlock into e289430d48fee4ac7f1e94f1c9703d3936c99971 on master.

Coverage increased (+0.2%) to 56.157% when pulling d8b26b372b0394ca7a00a0c6abec16cc3fb46377 on replicator_fix_deadlock into e289430d48fee4ac7f1e94f1c9703d3936c99971 on master.


Implement time scaling for the rasterizer

Disabled by default.
Useful for instance if your game features some effects dependant on time and you want them to freeze during pause.
Disclaimer: I've done my best to adapt this to the 3.0 style. I implemented this initially for 2.1 so I'm not sure if this is the right way. Someone should have a look.
Also committed the changes for 2.1 for historic reasons.

@reduz Can you check that patch? Functionality-wise it seems fine to me, my only concern is whether it's okay to access SceneTree from the rasterizer.

I'm aware that introduces a bit of coupling, potentially undesired.
As an alternative, it could be implemented as an API addition to the
VisualServer. That way, you would manually call
VS.pause_renderer_time(bool), or some better name.
El 13 mar. 2017 10:55 a. m., "Rémi Verschelde"<EMAIL_ADDRESS>escribió:

@reduz https://github.com/reduz Can you check that patch?
Functionality-wise it seems fine to me, my only concern is whether it's
okay to access SceneTree from the rasterizer.
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/godotengine/godot/pull/7914#issuecomment-286061602,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ALQCttZRAAJeEHEzjucf3X9x9aUqqhk0ks5rlRJ6gaJpZM4MPir3
.

Some input from the IRC channel:
[13:26] <Akien> reduz: Thoughts on https://github.com/godotengine/godot/pull/7914 ?
[13:26] <Akien> As I mentioned there it looks mostly good but I wonder if accessing SceneTree from the rasterizer is a bad idea?
[13:28] <reduz> yeah it should not acces scenetree
[13:29] <reduz> i would simply add some timescale option somewhere
[13:29] <reduz> and call it from game code as you see feet
[13:29] <reduz> fit
[13:30] <Akien> That would imply adding some pausing / timescale API to VisualServer too then, right?
[13:31] <Akien> Since here the idea is to pause the rendering
[13:32] <reduz> as far as i can see the idea is to simply pause the TIME constant inside the rendering
[13:32] <reduz> i would not pause that by default, but just leave it to the user to do so

Have a look at the last push: now there is a time scale you can set (and get) via the VisualServer. Obviously, 0 would be a total freeze and 1 means no time scale (standard timing, the default).
@reduz, the only place I've seen in which time_scale fits is the rasterizer class itself because it's the one that deals with it and putting it into RasterizerConfigGLES3 makes thinks harder to do from the VisualServer.
Nevertheless, I may have misinterpreted your new design, so please point me in the right direction.
@akien-mga, I've pushed the counterpart changes for 2.1.

I think a set value only function would be enough, visual server can often
run on a thread, so getting values from it blocks it
On Mar 13, 2017 1:57 PM, "Pedro J. Estébanez"<EMAIL_ADDRESS>wrote:

Have a look at the last push: now there is a time scale you can set (and
get) via the VisualServer. Obviously, 0 would be a total freeze and 1
means no time scale (standard timing, the default).
@reduz https://github.com/reduz, the only place I've seen in which
time_scale fits is the rasterizer class itself because it's the one that
deals with it and putting it into RasterizerConfigGLES3 makes thinks
harder to do from the VisualServer.
Nevertheless, I may have misinterpreted your new design, so please point
me in the right direction.
@akien-mga https://github.com/akien-mga, I've pushed the counterpart
changes for 2.1.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/godotengine/godot/pull/7914#issuecomment-286171029,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AF-Z27KM-yzeuyvJ3lB4WRoEzG5SkgSKks5rlXVngaJpZM4MPir3
.

New push!

I'm only scaling the delta, but what about storage->frame.time[]?
Should time[0] be scaled as well since that's the closest equivalent of 2.1's TIME and keep time[1] to time[3] unscaled?

Never mind.
Finally time scaling affects all four time array components, which is the most expected thing to happen. frame[0] is initialized to zero and it accumulates the scaled time.
I've changed 0.001 to just 0 for the delta at the first frame. I've considered that due to the time scaling we must be ready to have a delta of absolute zero. And what's more, if time scaling were set to 0 from the very beginning, that small value would contradict it and make things advance a little bit.
Anyway, if I'm failing to see the actual reason behind that, please correct me!
Otherwise, this is my final proposal.

Ins't there OS::get_time_scale? maybe it's just a bug that the rasterizer is not using it

Ins't there OS::get_time_scale? maybe it's just a bug that the rasterizer is not using it

Actually Engine::get_time_scale in master, but indeed OS:: in 2.1.

Would that cover the following case?:
Game enters pause, you need your pause screen to animate its UI with standard timing while having the underlying game view frozen, which includes shader TIME and particles that are processed right in the rasterizer (namely, 3D particles).

I see, I'm not sure if this is a very good idea because it affects everything. Even if you have a 2D UI with particles in the pause menu, while the background is paused, it will be stopped too.
In exchange, I think what could happen is, as this is specifically for particles and pause, that we make Particles and Particles2D nodes affected by the pause mode (and we add a low level pause function for them). If pause mode is changed, particles are suspended.

But what about the TIME uniform?
How can it be paused so the shaders in the game under the pause UI get frozen? One could capture the game screen and show that instead of the actual game, but on return from pause chances are you'll get a big discontinuity.

The state of things has changed. Closing this in favor of a more up-to-date proposal.

I already implemented time scale for the rasterizer, and pausing particle systems in master.
What can't be done is implementing this per shader instance (TIME) due to performance concerns in 3.x (TIME is in a global UBO, moving it to a regular uniform so it can be updated per object drawn is less optimal.

But then would it be possible to scale TIME globally?

TIME is now scaled according to the global time scale
On Tue, Aug 15, 2017 at 5:00 PM, Pedro J. Estébanez <
<EMAIL_ADDRESS>wrote:

But then would it be possible to scale TIME globally?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/godotengine/godot/pull/7914#issuecomment-322572405,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AF-Z2-E2LXRTGLIv5Ox-I6N2h1z6TZy1ks5sYfjwgaJpZM4MPir3
.

Oh, I'm more outdated than I thought. Too many business to take care of these days.


AttributeError: module 'tensorflow.contrib.tfprof' has no attribute 'model_analyzer'

NOTE: Only file GitHub issues for bugs and feature requests.  All other topics will be closed.
For general support from the community, see StackOverflow.
To make bugs and feature requests more easy to find and organize, we close issues that are deemed
out of scope for GitHub Issues and point people to StackOverflow.
For bugs or installation issues, please provide the following information.
The more information you provide, the more easily we will be able to offer
help and advice.
What related GitHub issues or StackOverflow threads have you found by searching the web for your problem? No
Environment info
Operating System: Win10
The output from python -c "import tensorflow; print(tensorflow.__version__)". 0.12.1
What other attempted solutions have you tried?
I installed tensorflow on Win10 platform. The version is 0.12.1. I tried to run the model zoo's example: resnet:
python ./resnet/resnet_main.py
It occured the error:
Logs or other output that would be helpful
(If logs are large, please upload as attachment or provide link).
"D:\Program Files (x86)\Miniconda3\python.exe" G:/codes/tensorflow/models-master/resnet/resnet_main.py
Traceback (most recent call last):
  File "G:/codes/tensorflow/models-master/resnet/resnet_main.py", line 210, in <module>
    tf.app.run()
  File "D:\Program Files (x86)\Miniconda3\lib\site-packages\tensorflow\python\platform\app.py", line 43, in run
    sys.exit(main(sys.argv[:1] + flags_passthrough))
  File "G:/codes/tensorflow/models-master/resnet/resnet_main.py", line 204, in main
    train(hps)
  File "G:/codes/tensorflow/models-master/resnet/resnet_main.py", line 57, in train
    param_stats = tf.contrib.tfprof.model_analyzer.print_model_analysis(
AttributeError: module 'tensorflow.contrib.tfprof' has no attribute 'model_analyzer'

It actually appears in my 0.12.0-rc1. Do you mind upgrading to 1.0?
python -c "import tensorflow; print(tensorflow.version)"
0.12.0-rc1

print tensorflow.contrib.tfprof.model_analyzer.print_model_analysis
<function print_model_analysis at 0x7fe5949d4b18>

Found this: https://github.com/tensorflow/tensorflow/issues/6731
It seems the packages under tf.contrib is currently missing for Windows

Thanks! No, I have not upgrated to 1.0. When the packages will supplement?

It is still not available for windows. Can anyone suggest alternatives to deal with this error:
"module 'tensorflow.contrib.tfprof' has no attribute 'model_analyzer'"

@jart Any updates?

@jart Co-Ask? Will this problem in Windows been solved soon?

Thank you for your patience. We've only recently introduced Windows support. Bringing contrib support to Windows is something we're still working to accomplish. Please follow #6791 for updates.

Same error, however,
/usr/lib/python3.6/site-packages/tensorflow_core/python/profiler/model_analyzer.py
/usr/lib/python3.6/site-packages/tensorflow_core/contrib/slim/python/slim/model_analyzer.py
/usr/lib/python3.6/site-packages/tensorflow_core/contrib/tfprof/model_analyzer.py
/usr/lib/python3.6/site-packages/tensorflow/python/profiler/model_analyzer.py
/usr/lib/python3.6/site-packages/tensorflow/contrib/slim/python/slim/model_analyzer.py
/usr/lib/python3.6/site-packages/tensorflow/contrib/tfprof/model_analyzer.py


Kafka 4180 - Shared authentification with multiple actives Kafka producers/consumers

This PR builds on top of @rajinisivaram https://github.com/apache/kafka/pull/1979
codeveloped with @mimaison
KAFKA-4180 : Authentication with multiple actives Kafka
producers/consumers
Changed caching in LoginManager to allow one LoginManager per client
JAAS configuration.
Added test to End2EndAuthorization for SASL Plain and Gssapi with two
consumers with different credentials.

@ijuma have updated the code with the changes to the key used to cache the LoginManager

superseded by https://github.com/apache/kafka/pull/2293


[cmake] always target Windows SDK v10.x when using Visual Studio generators (fixes #6448)

Fixes #6448
Related to #5884.
Helps with #6213.
Proposes always targeting v10.x of the Windows SDK in CMake builds using the Visual Studio generators.
Notes for Reviewers
How I tested this
Building the R package, using Visual Studio 17 2022, on my Windows laptop running Windows 10 Home Edition.
Rscript build_r.R --no-build-vignettes

With rtools44 (https://cran.r-project.org/bin/windows/Rtools/rtools44/rtools.html) on PATH.
Without this change, CMake targets via 8.1 of the Windows SDK and detects the wrong Windows version.
Trying 'Visual Studio 17 2022'
-- Selecting Windows SDK version 8.1 to target Windows 6.2.9200.
-- The C compiler identification is unknown
-- The CXX compiler identification is unknown
CMake Error at CMakeLists.txt:28 (project):
-- Configuring incomplete, errors occurred!
  No CMAKE_C_COMPILER could be found.

That causes all of the Visual Studio and then the MSBuild solutions to fail, and therefore installation of the R package to fail.
With this change, it correctly targets v10 of the Windows SDK.
installing via 'install.libs.R' to C:/Users/James/Documents/R/win-library/4.4/00LOCK-lightgbm/00new/lightgbm
Trying 'Visual Studio 17 2022'
-- Selecting Windows SDK version 10.0.19041.0 to target Windows 10.0.
-- The C compiler identification is MSVC 19.33.31630.0
-- The CXX compiler identification is MSVC 19.33.31630.0
...

References

https://discourse.cmake.org/t/problem-differences-in-detected-default-windowssdk-on-two-different-machines/2585/6
https://cmake.org/cmake/help/latest/variable/CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION.html
https://gitlab.kitware.com/cmake/cmake/-/issues/25413
https://discourse.cmake.org/t/selecting-windows-sdk-8-1/7822/3
https://stackoverflow.com/questions/73673196/python-cmake-chooses-wrong-windows-sdk-version
https://cmake.org/cmake/help/latest/variable/CMAKE_GENERATOR_PLATFORM.html#visual-studio-platform-selection
https://stackoverflow.com/a/59514792/3986677
https://stackoverflow.com/a/45693321/3986677

@jameslamb Thanks for looking into this.
Some questions:

What happens if the platform is windows 11 or windows server?
Does lightgbm make any usage of the windows OS API that would make it require linkage to the windows SDK? As far as I am aware, all the functionalities for things like GPU, distributed training, etc. are handled by linking to external dependencies.

What happens if the platform is windows 11 or windows server?

Good question!
My understanding is that v10 of the SDK supports Windows 11 and most versions of Windows Server.
See "Supported Operating Systems" here: https://developer.microsoft.com/en-us/windows/downloads/windows-sdk/.
For example, the R-package MSVC tests here are targeting Windows Server 2019 and Windows 2022.
https://github.com/actions/runner-images?tab=readme-ov-file#available-images
https://github.com/microsoft/LightGBM/blob/20f20928f016e197da74f104a76870c5883cc778/.github/workflows/r_package.yml#L92-L107

Does lightgbm make any usage of the windows OS API that would make it require linkage to the windows SDK?

Not 100% sure (Windows-specific development is not something I have a lot of experience in), but I think that winsock2, for example, comes through the Windows SDK.
https://github.com/microsoft/LightGBM/blob/20f20928f016e197da74f104a76870c5883cc778/src/network/socket_wrapper.hpp#L22-L24
https://learn.microsoft.com/en-us/windows/win32/winsock/creating-a-basic-winsock-application
If you see some other alternative to simplify LightGBM's Windows builds here I'd welcome it.

It compiles correctly with msvc after this PR, but with some caveats: if compiling for a second time, it hangs indefinitely without issuing any message (just stuck in installing the package to build vignettes). It looks like it requires killing the whole console application and then launching a new one in order to successfully install for a second time. Not sure if it has anything to do with the changes here though.

It looks like it requires killing the whole console application and then launching a new one in order to successfully install for a second time.

Oh interesting, I haven't seen that before. I'm not sure what the cause of that might be.
You can skip building the vignettes (and therefore compiling the library twice) by passing --no-build-vignettes:
Rscript build_r.R --no-build-vignettes

We have vignette-building on by default so that the package tarball that's produced is suitable to pass to R CMD check --as-cran. But for work like #6213 where you're primarily interested in just compiling the library and using it or running the unit tests, the vignettes are unnecessary.

@guolinke or @shiyu1994 could you help with a review of this?


Further improve mapped type support for tuples and arrays (almost complete Promisify inside!)

Now that #26063 is merged (which is great BTW), I was toying around with an alternate solution to https://github.com/Microsoft/TypeScript/issues/1360 or https://github.com/Microsoft/TypeScript/issues/25717. The basic idea is to take the parameter list of a NodeJS callback style API as a tuple and generate two other types from it:
1. The type of the last item in the tuple, which can currently be achieved doing this:
// Helper type to drop the first item in a tuple, i.e. reduce its size by 1
type Drop1<T extends any[]> = ((...args: T) => void) extends ((a1: any, ...rest: infer R) => void) ? R : never;

type TakeLast<
	T extends any[],
	// Create a tuple which is 1 item shorter than T and determine its length
	L1 extends number = Drop1<T>["length"],
	// use that length to access the last index of T
> = T[L1];

// Example:
type Foo = TakeLast<[1, 5, 7, 8, 9, string]>; // string

2. The type of all items in the tuple BUT the last.
This one is tricky and isn't working 100% yet. The basic idea is to work with the reduced tuple again and compare indizes with the original tuple:
type MapTuples<T1 extends any[], T2 extends any[]> = { [K in keyof T1]: K extends keyof T2 ? T1[K] : never };
type Bar = MapTuples<[1, 2, 3], [4, 5]>; // [1, 2, never]
type Baz = MapTuples<[1, 2], [3, 4, 5]>; // [1, 2]

As you can see, when T1 is longer than T2, the extra elements get converted to never. In comparison we can use this trick to erase properties from objects, which does not work here. As a result, when we use the following types to try and drop the last argument from a parameter list
type DropLast<
	T extends any[],
	MinusOne extends any[] = Drop1<T>,
> = MapTuples<T, MinusOne>;
// DropLast<[1, 2, 3]> is [1, 2, never]

// Returns the params of a function as a tuple
type Params<F extends (...args: any[]) => void> = F extends ((...args: infer TFArgs) => any) ? TFArgs : never;

// creates a function type with one less argument than the given one
type DropLastArg<
	F extends (...args: any[]) => void,
	FArgs extends any[] = Params<F>,
	RArgs extends any[] = DropLast<FArgs> // ** ERROR **
> = (...args: RArgs) => void;

the last argument is still present, but now has type never
type F1 = DropLastArg<(arg1: number, arg2: string, arg3: boolean) => void>;
// F1 is (arg1: number, arg2: string, arg3: never) => void

In addition, the mapped tuple type is no longer recognized as a tuple [Symbol.iterator()] is missing in type MapTuples<...>, so we have to force RArgs to be one
type ForceTuple<T> = T extends any[] ? T : any[];
type DropLastArg<
	F extends (...args: any[]) => void,
	FArgs extends any[] = Params<F>,
	RArgs extends any[] = ForceTuple<DropLast<FArgs>>
> = (...args: RArgs) => void;

but now F1 has type (...args: any[]) => void because we lost the type information.
However with a few changes, we can get closer to the desired result:
// notice how we now Map from T1 to T2
type MapTuples<T1 extends any[], T2 extends any[]> = { [K in keyof T1]: K extends keyof T2 ? T2[K] : never };
// MapTuples<[1, 2], [4, 5, 6]> is [4, 5]

type DropLast<
	T extends any[],
	// create a tuple that is 1 shorter than T
	MinusOne extends any[] = Drop1<T>,
	// and map the entries to the ones at the corresponding indizes in T
> = MapTuples<MinusOne, T>;
//  DropLast<[1, 2, 3]> is [1, 2] :)

type F1 = DropLastArg<(arg1: number, arg2: string, arg3: boolean) => void>;
// F1 is (arg2: number, arg3: string) => void

Notice how F1 has the correct argument types, but the names are off by one!
Suggestion
So in conclusion I'd like to see some more improvements to mapped tuples, specifically:

the ability to remove items from them and
complex mapped tuples to still be recognized as tuples.

Use Cases
A BIG usecase is typing NodeJS callback-style APIs, which I came very close to type using this:
type Drop1<T extends any[]> = ((...args: T) => void) extends ((a1: any, ...rest: infer R) => void) ? R : never;

type TakeLast<
	T extends any[],
	// Create a tuple which is 1 item shorter than T and determine its length
	L1 extends number = Drop1<T>["length"],
	// use that length to access the last index of T
> = T[L1];

type MapTuples<T1 extends any[], T2 extends any[]> = { [K in keyof T1]: K extends keyof T2 ? T2[K] : never };

type DropLast<
	T extends any[],
	// create a tuple that is 1 shorter than T
	MinusOne extends any[] = Drop1<T>,
	// and keep only the entries with a corresponding index in T
> = MapTuples<MinusOne, T>;

type Params<F extends (...args: any[]) => void> = F extends ((...args: infer TFArgs) => any) ? TFArgs : never;
type ForceTuple<T> = T extends any[] ? T : any[];
type ForceFunction<T> = T extends ((...args: any[]) => any) ? T : ((...args: any[]) => any);

type Promisify<
	F extends (...args: any[]) => void,
	// Extract the argument types
	FArgs extends any[] = Params<F>,
	// Infer the arguments for the promisified version
	PromiseArgs extends any[] = ForceTuple<DropLast<FArgs>>,
	// Parse the callback args
	CallbackArgs extends any[] = Params<ForceFunction<TakeLast<FArgs>>>,
	CallbackLength = LengthOf<CallbackArgs>,
	TError = CallbackArgs[0],
	// And extract the return value
	TResult = 1 extends CallbackLength ? void : CallbackArgs[1]
> = (...args: PromiseArgs) => Promise<TResult>;

Examples
type F1 = (arg1: number, arg2: string, c: (err: Error, ret: boolean) => void) => void;

type F1Async = Promisify<F1>;

// F1Async is (arg2: number, c: string) => Promise<boolean>; (YAY!)

Checklist
My suggestion meets these guidelines:

[x] This wouldn't be a breaking change in existing TypeScript / JavaScript code
[x] This wouldn't change the runtime behavior of existing JavaScript code
[x] This could be implemented without emitting different JS based on the types of the expressions
[x] This isn't a runtime feature (e.g. new expression-level syntax)

@AlCalzone
DropLast<[1 | undefined, 2?]> narrows to [(1 | undefined)?] instead of [1 | undefined]

@sirian When I wrote those types last august, they used to work. But since they involve a lot of hacky workarounds, it is very likely that they don't work anymore.


"add_updater" and "Mobject.become"

Describe the bug

I use "Mobject.become" function in "add_updater".
But it seems not to work!?("angle'" doesn't follow "l2")
In addition,I use the newest Manimgl on Github(v1.6.1).
WHY???????????????????????????
Code:

from manimlib import *
class Test1(Scene):
    def construct(self):
        t=ValueTracker(TAU/6)
        l1=Line(ORIGIN,[2.,0.,0.])
        l2=Line(ORIGIN,[2.,0.,0.]).rotate(t.get_value(),about_point=ORIGIN).add_updater(lambda m:m.set_angle(t.get_value()))
        angle=Arc(angle=l2.get_angle()).add_updater(lambda m:m.become(Arc(angle=l2.get_angle())))
        self.play(ShowCreation(l1),ShowCreation(l2),ShowCreation(angle))
        self.play(t.animate.increment_value(TAU/6))

Wrong display or Error traceback:

https://user-images.githubusercontent.com/97308223/194323849-162b9b34-d03e-4caf-9f1e-f198839256cb.mp4

Additional context

I follow the tutorial on bilibili to code the code on bilibili.It appears in the video(https://www.bilibili.com/video/BV1W4411Z7Zt/?p=23)
Episode 23!!

This is because the updater is removed during mobj.become().
Under the hood, become() change mobj so that is has identical states with param mobj, including points, color attributes, and UPDATERS and so on. That is to say, when being updated for the first time, the original mobj become the newly constructed mobj, which has NO updaters attached to it.

To put it simple, the updater is removed upon the first updating and will not work during subsequent calls.
The correct way to do it should be add_updater(lambda m: m.set_points(Arc(angle=l2.get_angle()).get_points())), which update the shape of mobj only and do not affect its updater list.

简而言之，更新程序在第一次更新时被删除，并且在后续调用期间将不起作用。正确的方法应该是 ，它只更新 mobj 的形状，而不会影响它的更新程序列表。add_updater(lambda m: m.set_points(Arc(angle=l2.get_angle()).get_points()))

It works!!
II appreciate your help very much!

I even don't know the method called "set_points".

I've changed it so that by default, Mobject.become will not cause a mobject to adopt the updaters of the argument.
I think it's fair to say the usual case is that you don't want this, e.g. anytime you want to call become in an updater.


[SPARK-16656] [SQL] Try to make CreateTableAsSelectSuite more stable

What changes were proposed in this pull request?
https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder/62593/testReport/junit/org.apache.spark.sql.sources/CreateTableAsSelectSuite/create_a_table__drop_it_and_create_another_one_with_the_same_name/ shows that create a table, drop it and create another one with the same name failed. But other runs were good. Seems it is a flaky test. This PR tries to make this test more stable.

Test build #62636 has started for PR 14289 at commit 184d679.

test this please

test this please

Test build #62641 has started for PR 14289 at commit 184d679.

Test build #62636 has finished for PR 14289 at commit 184d679.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/62636/
Test PASSed.

Test build #62641 has finished for PR 14289 at commit 184d679.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/62641/
Test PASSed.

Merged build finished. Test PASSed.

Test build #62646 has started for PR 14289 at commit a3fce03.

Test build #62646 has finished for PR 14289 at commit a3fce03.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/62646/
Test PASSed.

Hopefully this can make the test more stable by using different temp dirs for different tests.

I am merging this PR to master and branch 2.0


Fix code example mistake

What it solves
Resolves #97
How this PR fixes it
Replacing create with connect.

I have read the CLA Document and I hereby sign the CLA


Show Author and Maintainer in Project detail view

rebased timofurrer's PR
Closes #1382, #1060.

Thanks @nkanaev!

Thanks @nkanaev :beers:


[ERROR] Error during usage bootstrap accordion item

Dear @gwenaelp,
I'm having some issues during usage of the component that uses bootstrap accordion item.
here the console log:
Unknown custom element: <field-array-bootstrap-accordion-item> - did you register the component correctly? For recursive components, make sure to provide the "name" option.

here some dependencies:
"vue": "^2.5.2",
"vue-form-generator": "^2.2.2",
"bootstrap": "^4.1.3",
"jquery": "^3.3.1",
"vfg-field-array": "0.0.0-development"
here the snippet of the code:
<template>

  <vue-form-generator :model="model"
                      :schema="schema"
                      :options="formOptions"
                      ref="form">
  </vue-form-generator>

</template>

and at the script part I just copied the code at:
(https://github.com/gwenaelp/vfg-field-array#with-bootstrap-4-container-component-object-as-array-item-validation-and-inputname)
and the main.js:
...
import VueFormGenerator from 'vue-form-generator'
import 'vue-form-generator/dist/vfg.css'
import FieldArray from 'vfg-field-array'

...
Vue.use(VueFormGenerator)
Vue.use(FieldArray)

what I'm doing wrong?

I think you need to import this component manually. There was a discussion about it few months ago and I decided not to merge it in the core of vfg-field-array, because I don't think adding bootstrap as a dependency of this lib is a good idea. We are not all using bootstrap and it's a heavy dependancy.
If you have a look at the stories folder, you will see that there is a "bootstrap-accordion-container.vue" file. This contains the component you are trying to integrate.
What you need to do is to load yourself this component. Try to load it globally in your main.js  :
import bootstrapAccordionContainerItem from 'my/folder/bootstrap-accordion-container'

Vue.component('field-array-bootstrap-accordion-item', bootstrapAccordionContainerItem);

This should be able to solve this error.
If this works, you can also try to load it locally, which is a bit cleaner. It's been a long time I haven't done it this for array items containers in this lib, but I think you might be able to load it  locally.
Tell me how you're doing with this issue, i'll try to investigate a bit more if you can't solve it :smile: :+1:

Oh, thanks a lot for the reply. I will try your approach and I'll let you know.
^^


"Format specifiers" table: su lists two possible outputs

In Format specifiers table (not the one for CLI), there is su format specifier. It shows two possible outputs for the same input: L"hello world" and u"hello world". There is no discussion when one or the other is shown.

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

ID: 6a5c135d-ace1-1f09-041a-13411c054ff3
Version Independent ID: 083fc572-d877-2216-19a9-326636c1d8e6
Content: Format specifiers in the debugger (C++) - Visual Studio (Windows)
Content Source: docs/debugger/format-specifiers-in-cpp.md
Product: visual-studio-windows
Technology: vs-ide-debug
GitHub Login: @Mikejo5000
Microsoft Alias: mikejo

@mikekaganski -- Mike, thank you for your feedback.  Please consider these resources:

Visual Studio on Microsoft Q&A
Visual Studio MSDN Forum
Stack Overflow
Reddit

@Mikejo5000 -- Mike, please look into this issue.


feature(ALL): to allow different sizes of material components

Feature Description
I'm a big fan of the Angular framework. As a result, I'm attempting to create all of my projects in Angular solely. But I can't figure out how to resize ui components in angular material to versions like small medium large xlarge. Official documentation explicitly states not to change any internal styles because it may break my code in future versions. I'm currently using CSS's zoom property to create several variants (small, medium, large) of the components. This works for the majority of the components, but not all. . What else can I do at this point? Any suitable recommendations would be much appreciated.
Use Case
No response

This should be covered by https://github.com/angular/components/issues/4597.


Refactoring for backup item action tests

This PR migrates tests related to backups with item actions, and adds additional test cases that weren't implemented in the old test structure.
I made a couple of //TODO comments around cases that I implemented where the observed behavior of Velero is not what I'd intuitively expect it to be.  If you all agree those things are bugs, I can fix them in separate PRs.
@prydonius adding you for FYI only, no obligation to review :)

Why not delete the old file all together and add what is left over to the new test, and keep the file name while at it?

Why not delete the old file all together and add what is left over to the new file, and keep the file name while at it?

It's a little easier for me to keep track of things if the files are separate; ultimately I am planning to delete the old files and rename the new one. If it's ok with you, my pref is to hold off on this until the end.

Yes, np!

Just to be clear, by "end" I meant "after the series of PRs that complete the refactoring for pkg/backup" - so not in this PR, but in a subsequent one

A couple things that I would like to see, but night not need to go on this PR or even on this test, I’m not sure:

tests for the use case where cluster-scoped resources ARE returned and it’s valid
tests that return nothing because the combination of selectors + namespace is invalid
I would also like to document the valid and invalid ways to use the combination of selectors and namespaces in our docs

Btw, these tests are awesome! They straight up convey the logic of the system and do nothing else. Loving it!

I would also like to document the valid and invalid ways to use the combination of selectors and namespaces in our docs

Agreed. I made #1440 for that.

To clarify:

tests that return nothing because the combination of selectors + namespace is invalid

To clarify: I mean, a test where either the selector or namespace by themselves would work, but not combined.

Btw, these tests are awesome! They straight up convey the logic of the system and do nothing else. Loving it!

Good to hear :) the whole point of doing this work is to make them easier to work with so definitely let me know if I am/am not hitting the mark as I continue with this.

tests for the use case where cluster-scoped resources ARE returned and it’s valid
tests that return nothing because the combination of selectors + namespace is invalid
I would also like to document the valid and invalid ways to use the combination of selectors and namespaces in our docs

@carlisia do you mean this specifically for item actions and their resource selectors, or more generally for backups and their includes/excludes?

@carlisia do you mean this specifically for item actions and their resource selectors, or more generally for backups and their includes/excludes?

For general backups for sure. If the same applies for item actions as well, then the same.

I added a couple more test cases that address https://github.com/heptio/velero/pull/1545#issuecomment-499715725 for item actions. I'll do the general backup ones in a separate PR for clarity.

FYI - once reviews are done I'd like to custom-squash this into a couple commits, so please don't merge until I've done so :)

alright, this is ready to merge from my perspective pending CI. prefer to merge as-is (without further squashing).


Generating CHGCAR when there are multi-k-points

Hi,
The example in pyscf/examples/tools/06-chgcar.py shows how to generate CHGCAR file by PySCF.  In this case, only a gamma point calculation is performed. I wondered how shall we generate CHGCAR when more than gamma point is included in pbc calculation.
Shall we first use k2gamma module to transfer MO coefficients/DM to R-space (while the previous small unit cell is replaced by a larger supercell)?
If we want to preserve the small unit cell, is it correct to simply feed the coefficients at gamma point to chgcar.orbital()? For example, chgcar.orbital(cell, 'test.chgcar', kmf.mo_coeff[0])
Or we should transform the coefficients to R-space first and then feed the coefficients at R0 to chgcar.orbital()?
Thank you in advance!

You may try to transform the MOs to Wannier orbitals at the reference cell, like
$W_{\mu i} (R_0) = \frac{1}{N_k} \sum_k C_{\mu i} (k) e^{-i k \cdot R_0}$
but this is probably not a good idea for delocalized MOs.
The supercell MOs given by k2gamma are equivalent to the k-sampling MOs.

Thank you Xing. It helps a lot!


Adding support for CMAKE

While preparing Gentoo ebuilds I addopted the CMAKE way as lots of torch other packages are using it. With CMAKE as build framework I created "more-or-less" common template for any Torch/Lua related stuff and it is quite easy to produce any other ebuild faster.
So I in general added CMakeLists.txt followed by FindReadline.cmake as readline package is required to build against.
Ladislav

thanks!

I thank you for your work! It is really cool :-)
As I am working on ebuilds for Gentoo for whole Torch subsystem, I identified on my journey few common variables used with LUA or C/C++ LUA bindings:
"-DLUADIR=$($(tc-getPKG_CONFIG) --variable INSTALL_LMOD $(usex luajit 'luajit' 'lua'))"
"-DLIBDIR=$($(tc-getPKG_CONFIG) --variable INSTALL_LIB $(usex luajit 'luajit' 'lua'))"
"-DLUA_BINDIR=$($(tc-getPKG_CONFIG) --variable INSTALL_BIN $(usex luajit 'luajit' 'lua'))"
"-DLUA_INCDIR=$($(tc-getPKG_CONFIG) --variable INSTALL_INC $(usex luajit 'luajit' 'lua'))"
"-DLUA_LIBDIR=$($(tc-getPKG_CONFIG) --variable INSTALL_CMOD $(usex luajit 'luajit' 'lua'))"
"-DSCRIPTS_DIR=$($(tc-getPKG_CONFIG) --variable INSTALL_BIN $(usex luajit 'luajit' 'lua'))"
"-DLUALIB=`equery files luajit |grep lib64/libluajit | grep .so | awk 'NR==0; END{print}'`"
"-DLUA=/usr/bin/luajit"
"-DCMAKE_BUILD_TYPE=Release"
"-DCMAKE_PREFIX_PATH=$($(tc-getPKG_CONFIG) --variable INSTALL_BIN $(usex luajit 'luajit' 'lua'))/.."
"-DCMAKE_INSTALL_PREFIX=/usr"

This is common variable set usually required (not always all of them) for any Torch related package. I also realized that some of the CMAKE configurations are not compatible for some reason, so I am forking every not aligned repo and trying to align them all to something like "TORCH CMAKE STYLE" :-)
Thanks again!

thank you. yes, some cmake files are slightly different than others mostly because many different developers worked on them :)
thanks for your contributions.


Failing WidgetController unit tests on master

On latest master, ( 5c3fb976108e34367bcfb2ea8340ac5fd0d8add4 (HEAD -> master, origin/master, origin/HEAD) ),
$ npm test
...
><EMAIL_ADDRESS>test /Users/apetro/code/github_uportal/uportal-home
> karma start web/target/web/karma.conf.js --single-run
...
01 06 2018 11:15:59.294:INFO [HeadlessChrome 0.0.0 (Mac OS X 10.12.6)]: Connected on socket xiD0tWryO3KtFkPAAAAA with id 2684392
HeadlessChrome 0.0.0 (Mac OS X 10.12.6) WidgetController should set layoutEmpty to false after return non empty layout FAILED
	Error: Unexpected request: GET /web/staticFeeds/about-page.json
...
HeadlessChrome 0.0.0 (Mac OS X 10.12.6) WidgetController should set layoutEmpty to true after return empty layout FAILED
	Error: Unexpected request: GET /web/staticFeeds/about-page.json
	    at <Jasmine>
	    at $httpBackend (https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.8/angular-mocks.js:1418:9)
...
Firefox 60.0.0 (Mac OS X 10.12.0) WidgetController should set layoutEmpty to true after return empty layout FAILED
	Error: Unexpected request: GET /web/staticFeeds/about-page.json
	No more request expected in https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.8/angular-mocks.js (line 1418)
...
Firefox 60.0.0 (Mac OS X 10.12.0) WidgetController should set layoutEmpty to false after return non empty layout FAILED
	Error: Unexpected request: GET /web/staticFeeds/about-page.json
	No more request expected in https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.8/angular-mocks.js (line 1418)
...
.........
HeadlessChrome 0.0.0 (Mac OS X 10.12.6): Executed 11 of 11 (2 FAILED) (0.365 secs / 0 secs)
...
........
Firefox 60.0.0 (Mac OS X 10.12.0): Executed 11 of 11 (2 FAILED) (1.12 secs / 0 secs)
TOTAL: 4 FAILED, 18 SUCCESS
...

This may explain CI failures in #817 .

I don't get test failures in uPortal-app-framework master or 9.2.0, so I think these uPortal-home errors are the right ones to be digging into. Proceeding under that hypothesis.


ICE-V-Wireless in the LiteX

Hello everyone! It's only a question.
I just saw that ICE-V-Wireless board files is in the LiteX repository. So, can I load in FPGA of the board a CPU like VexRiscv directly just using LiteX and some tools more?

You can use the python scripts in this repository to program the boards with the artifacts after building using litex.


Update chatgpt_automation.py

literally a massive error by OP

literally a massive error by OP

When I ran it and it didn’t work I just asked chatGPT what the problem was and it told me.
^ this is a joke, but the PR really should be merged 😛

Yeah I know 😂, is this repo a joke? I might just start making my own repo to compete with this
On Sat May 13, 2023, 02:12 PM GMT, Cfomodz @.***> wrote:

literally a massive error by OP
When I ran it and it didn’t work I just asked chatGPT what the problem was and it told me.
^ this is a joke, but the PR really should be merged 😛
—
Reply to this email directly, view it on GitHub https://github.com/Zeeshanahmad4/Automating-ChatGPT-with-Python-and-Selenium/pull/4#issuecomment-1546662107, or unsubscribe https://github.com/notifications/unsubscribe-auth/AHBFVTWZCVX34JNFCDPIOXDXF6JGRANCNFSM6AAAAAAXTY32GQ.
You are receiving this because you commented.Message ID: @.***>

Self promo: https://github.com/Erol444/gpt4-openai-api#gpt4-openai-unofficial-api does the same thing as this repo, but it actually works:)

LMFAO, they are deleting comments that slander them XD

What the heck?! I fixed your code and you don't just delete the comments discussing open source work moving forward but also close the branch unmerged? Lol! Did you also then just take my working code and replace the broken code but weren't willing to accept my changes so you redid my work yourself?

LMFAO, they are deleting comments that slander them XD

Nice ;)

LMFAO, they are deleting comments that slander them XD

Nice ;)

@querybila is the kind of guy who will copy a friends joke and then say he made it up all by himself


Question: Why is the default NavigationView menu defaulting to an acrylic? brush, and how to change it?

Hi, I'm building a test app using project Reunion 0.5 and the NavigationView menu does not look like previous releases.  I have not modified the styling.

How do I get the previous default style back?

This is a known issue, Acrylic is broken in in ProjectReunion 0.5. Currently you wont be able to get the same look from the previous release.


Set default python to 3

Pull Request (PR) description

This Pull Request (PR) fixes the following issues

I was considering setting the default python version on CentOS 7 to python 2. The issue is that we don't test against python 2 since a long time. If I enable python 2 acceptance tests they fail, also python 2 is end of life and centos  7 ships python 3, so it should be used.

Ubuntu 20 / Puppet 5 failures are expected because Puppet does not provide packages for that platform combination.