PCG: No convergence!

I wrote a small piece of code based on ex3 and Mark's idea to compute \integral_b^z (h(x,y,Z)-Z) dZ where h is a scalar-valued field and z is the vertical coordinate. Unfortunately it would not converge with CG and GSSmother returned an error as well -- clear indicator that something was wrong.
To my disappointment, I stared at it for a few days without progress. Any help, literally any, is appreciated. It's a very short code I assure you.
Thank you and happy holidays.
test15.cpp.txt
iceblock.mesh.txt
Best regards,
Wade

Another idea just came to mind. Use a calculus trick. Let this integral be F(x,y,z). By the fundamental theorem of calculus dF/dz = h(x,y,z)-z. Build an FEM weak form of this equation by multiplying by the H1 basis functions and integrating. For the left hand side use the MixedDirectionalDerivativeIntegrator with a vector coefficient equal to the constant vector (0,0,1). For the right hand side you just need an H1 MassIntegrator multiplied by ParGridFunctions representing h and z. Apply Dirichlet boundary conditions on the z=b surface and solve for F. Unless I've missed something, this should work.

Hello, @QiangWei-Wade ,
I was looking at your previous iteration of this test code a bit on Friday but I hadn't really come to any conclusions.  However, this non-convergence issue is a bit more clear.  The system matrix in this case will not be symmetric so CG is not an appropriate choice.  I would suggest GMRES or a sparse direct solver such as UMFPack (see ex1.cpp).
I'll try to take a closer look at this version of the code later today.
Bests wishes,
Mark

Good morning Mark,
Thank you for your response. I tried both options without success so far.
GMRES with GSSmother:
Number of H1 finite element unknowns: 37281
terminate called after throwing an instance of 'std::out_of_range'
what():  _Map_base::at
Aborted (core dumped)
UMFPack
Verification failed: (mat) is false:
--> not a SparseMatrix
... in function: void mfem::UMFPackSolver::SetOperator(const mfem::Operator &)
... in file: /home/wade/pkuism/mfem-prism/linalg/solvers.cpp:2740
Aborted (core dumped)
test16.cpp.txt
iceblock.mesh.txt
By the way, what's the difference between Operator* and OperatorPtr? #1926
Operator* BLF;
...
umf_solver.SetOperator((SparseMatrix&)(*BLF));
Cheers,
Wade

Hi @mlstowell,
I followed @v-dobrev 's suggestion in #1926 and changed FormLinearSystem into FormRectangularLinearSystem. This seemed to solve some problems but not all of them. Updated test16.cpp.txt and current error messages in the post above.

Hello, @QiangWei-Wade ,
I was able to solve this linear system with GMRES without a preconditioner using the following:
   GMRESSolver gmres;
   gmres.SetOperator(*BLF);
   gmres.SetRelTol(1e-10);
   gmres.SetMaxIter(1000);
   gmres.SetPrintLevel(3);
   gmres.Mult(RHS, F);

Convergence is poor but it does produce a result.  Unfortunately, it doesn't produce the accuracy I would have expected.
Regarding the use of FormRectangularLinearSystem, this should have worked.  It should also be possible to build this operator with the BilinearForm class and use its FormLinearSystem method.  It is not clear to me why these approaches are not working as expected.  This test case seems to have exposed a few of MFEM's dusty corners.
Best wishes,
Mark

Good Morning @mlstowell ,
At least it solves now:-)
Let me play around with it for a bit, add real numbers to the test and try to modify it into a parallel one. Meanwhile please let me know if you find anything.
On a side note, can I use DerivativeIntegrator or ConvectionIntegrator instead of MixedDirectionalDerivativeIntegrator?
Best regards,
Wade

Convergence is poor but it does produce a result. Unfortunately, it doesn't produce the accuracy I would have expected.
Regarding the use of FormRectangularLinearSystem, this should have worked. It should also be possible to build this operator with the BilinearForm class and use its FormLinearSystem method. It is not clear to me why these approaches are not working as expected. This test case seems to have exposed a few of MFEM's dusty corners.

Hi, @QiangWei-Wade ,
One of my colleagues and I were looking at this earlier today.  We still have concerns about the trouble we have producing a usable matrix for this problem.  We'll need to track down those issues.  However, I did want to mention that I implemented an exact solution so that I could trace the error convergence.  I had judged the poor accuracy too quickly.  The convergence study actually showed convergence to the exact solution with an error which dropped as the mesh spacing squared for first order basis functions.  For quadratic basis functions the error was only limited by the solver tolerance since the exact solution itself is quadratic in z.
Thank you for bringing this issue to our attention.  We appreciate your feedback and I hope we can make these classes a bit more user-friendly.
Best wishes,
Mark

Hi @mlstowell ,
I would say it's a fun ride, although the learning curve is somewhat steep at first.
Now, when I try to piece the whole problem together which, if you still remember, is VV=V ∙ F, where V=C∙(∇h)^3∙∂h/∂x and F=\integral_b^z (h(x,y,Z)-Z) dZ.
Now that we have have both parts of the right hand side computed as vector Gridfunction v and scalar GridFunction f respectively, I tried to form a ScalarVectorProductCoefficient and solve for vv. It works but feels kind of redundant. What in your opinion would be a good way to multiply them to get VV?
Thank you!
Best wishes,
Wade
`   VectorGridFunctionCoefficient v_coef(v);
GridFunctionCoefficient f_coef(&f);
ScalarVectorProductCoefficient mult_coef(f_coef,v_coef);
LinearForm *b3 = new LinearForm(&fes_nd);
b3->AddDomainIntegrator(new VectorFEDomainLFIntegrator(mult_coef));
b3->Assemble();
//   Create a solution vector to store vv
GridFunction *vv = new GridFunction(&fes_nd);
BilinearForm *a3 = new BilinearForm(&fes_nd);
a3->AddDomainIntegrator(new VectorFEMassIntegrator(one));`

The reason I ignored T(x,y,z) was that we can always just create a coefficient which returns the product of T and (h(x,y)-Z) and tabulate those values rather than (h(x,y)-Z).


real time chart in the latest version of Chartjs

I want to create such a real time chart example in jsbin.
But the addData() and remove() functions are in the older version. So could anyone please tell me about how these two functions are implemented in the latest version?
I know that there is a function update(), but this function alone cannot create the effect of "shifting the whole chart", which can be seen in the example in jsbin.

@wdcao, did you close this issue because you figured out how to implement it in v2? if yes, I'm curious to know your solution :)

Actually, I just partially solved this problem by setting the animation time to be zero.
I still cannot create the effect in the example in sbin


Mentioning Prettier and ESLint plugins

What kind of changes does this PR include?

[x ] New or updated content

Mentions and links to Prettier and ESLint plugins as described in #425
Note: There is specific Prettier setup info in #425 that should make its way to the Prettier plugin's own README.

Closing this, because @Princesseuh is coming in to make a better one!  🥳


Use HTTP DELETE to delete an image

As far as I've seen images are deleted by a GET-Request to /admin?md5=12345&t=1.
Best practice IMHO would be to

Never be destructive on GET requests.
Use DELETE requests for deletes.
Use POST requests with a parameter action=delete to trigger a delete from a webbrowser form.

I would suggest to:

Introduce DELETE A.S.A.P to delete images.
Depricate deletion by GET request.
Remove deletion by GET requests in version 4.0.

 All the api will be refactored and under RESTful style in the next version~


Is it possible to enable the microphone or camera without asking for permission?

Hello WebUi Team, is it possible to enable the microphone or camera without asking the user for permission?
I would like to embed voice chat in my game, then it would be a bit annoying for lay users to have to worry about giving permission...
Is there any way to do this?

For now, no. Unless you find a command line switch that enables it. Even then, it wont work for every browser, and the WebUI needs to support at least the major browsers and they all need to have the same functionality.
As name says, Web UI, is a user interface. Yes, you can write JS apps and run them in the browser, but the right way would be to make your app record the microphone, not the browser. And for that you dont need any permissions.
If your entire app is written in JS, why use WebUI? There are alternatives, such as Electron, which IIRC has the option to interact with devices without asking the user.

I guess --use-fake-ui-for-media-stream won't work. But normally browsers don't ask for permissions when using localhost. Are you sure @skinkairewalker your app prompt the permission on localhost?

In this case, I'm using https://jam.systems/ to create a voice chat.

Is your game written in TS?

I used construct3

Could always see about hooking into FFMPEG.  That can retrieve mic and cam info.  I did that for a program (although I just wrote a TUI for it, but it's on my todo for a legit GUI version) that I use for stop motion and regular paper animation, also recording audio for the same.

Use TLS version of WebUI, and add OpenSSL libraries to your game, and this is far as WebUI can go. We can't change the web browser behavior. Sorry.

hi, In version 2.5.0 will it be possible to use a microphone?


Extend examples, make them easy to copy and paste

For the purpose of getting new users off on the right foot immediately, I added the necessary pragmas to get these working, and built out a trivial example of how to actually use runConsoleIO. I wanted to write something like runConsoleBoring as an example of mocking using Input and Output maybe(?), but I wasn't sure how to go about it. I also haven't tried writing a Resource example, yet.

Cool, great idea! You can write runConsoleBoring as follows:
runConsoleBoring :: [String] -> Semantic (Console ': r) a -> Semantic r ([String], a)
runConsoleBoring inputs = runFoldMapOutput id . runListInput inputs . reinterpret2 \case
  ReadLine -> input
  WriteLine msg -> output msg

GHC seems unhappy with that unless I give it
runConsoleBoring ::
  (Member (Input String) r, Member (Output String) r) =>
    [String] ->
      Semantic (Console ': r) a -> Semantic r ([String], a)

But when I go to write
echoBoring :: Semantic '[Input String, Output String] ([String], a)
echoBoring = runConsoleBoring echo

revBoring :: Semantic '[Input String, Output String] ([String], a)
revBoring = runConsoleBoring rev

I get errors like:
• Ambiguous use of effect 'Input'
      Possible fix:
        add (Member (Input [Char]) r1) to the context of
          the type signature
      If you already have the constraint you want, instead
        add a type application to specify
          '[Char]' directly
    • In the expression: runConsoleBoring echo
      In an equation for ‘echoBoring’: echoBoring = runConsoleBoring echo

First, extreme praise for the very nice error messages. They're really helpful when you're exploring. My only problem is that I think I have the constraint I want, but I don't know for sure that I do. If I do, I don't know where the type application needs to go. If there's a chunk of the docs (which, by the way, are also very good) that makes this clear (or a way to make the errors just a skosh more informative), I may have missed it. I'll go reading again, but if I'm just missing the obvious I wouldn't mind a nudge. 😆

Whoops, try this instead! I forgot runInputList gives you a maybe :)
runConsoleBoring :: [String] -> Semantic (Console ': r) a -> Semantic r ([String], a)
runConsoleBoring inputs
  = runFoldMapOutput (:[])
  . runListInput inputs
  . reinterpret2 \case
      ReadLine -> maybe "" id <$> input
      WriteLine msg -> output msg

That would explain why it was trying to get me to add a constraint with a Maybe String in there. 😄
That does let me write
echoBoring :: [String] -> Semantic '[] ([String], ())
echoBoring = flip unConsoleBoring echo

revBoring :: [String] -> Semantic '[] ([String], ())
revBoring = flip runConsoleBoring rev

which is quite nice.
I'm a little confused by runListInput. The documentation suggests that it'll run my Input effect on each element of the list, but if I try something like
fst $ run $ echoBoring ["hello", "there"]

I only get ["hello"] back, when I'd expect ["hello", "there"].
Rewriting as
runConsoleBoring :: String -> Semantic (Console ': r) a -> Semantic r (String, a)
runConsoleBoring i
  = runFoldMapOutput id
  . runConstInput i
  . reinterpret2 \case
      ReadLine -> input
      WriteLine msg -> output msg

seems in line with the idea (read a line of input, then spit a line out), though I'd still be interested in figuring out what I'm missing about runListInput, which may bring me back around on using the [String] version.
With that definition, I can write
echoBoring :: String -> Semantic '[] (String, ())
echoBoring = flip runConsoleBoring echo

revBoring :: String -> Semantic '[] (String, ())
revBoring = flip runConsoleBoring rev

test :: [String]
test = do
  let a = fst . run $ echoBoring "hello"
      b = fst . run $ revBoring "there"
  [a, b]

What I really want to write is something like
test :: [String] -> [String]
test = ??? (fst . run) [echoBoring, revBoring]

So that I can write something like
test ["hello", "there"]
-- ["hello", "ereht"]

test ["even", "more", "words"]
-- ["even", "erom", "words"]

But I'm not really sure what ??? would be.

The problem is that you're only calling readLine once in echo and rev; the semantics of runListInput is that they will provide a different element of the list for each call to input (or readLine in your example). Try this instead:
echo :: Member Console r => Semantic r ()
echo = do
  msg <- readLine
  writeLine msg
  when (msg /= "") echo

Refactored the examples to use CPS (so echo and rev are just fixpoints), which made it much more natural to express what I was going for, and added Done to the console API. If this has unexpected performance implications that I'm not seeing (or there's just a better way to write it) let me know. I'm going to try to build up a Resource example before I'll consider this ready for a merge.

Added a Resource example:
fileOpen :: Member (Lift IO) r => String -> IOMode -> Semantic (Resource ': r) ()
fileOpen name mode = do
  bracket (sendM $ openFile name mode)
          (sendM . hClose)
          \handle -> do
            f <- sendM $ hGetContents handle
            sendM $ putStrLn f

cat :: String -> IO ()
cat = runM . runResource runM . flip fileOpen ReadMode

I kind of just threw sendMs at fileOpen until it compiled, so if there's a nicer way to write that then I'm happy to update.

Thanks for tackling this documentation stuff!
Using bracket to show off file access doesn't seem like a great example
however; after all, you can do that out of the box with regular-strength
base.
I'd prefer to use something like the Error effect and maybe the
Teletype effect from above; to show how the cleanup action from bracket
is called even if a custom (non-IO) error is thrown via throw. This is a
nontrivial example that AFAIK can't be done via ExceptT and MonadUnliftIO.
On Mon, Apr 15, 2019 at 1:40 PM Jack Henahan<EMAIL_ADDRESS>wrote:

Added a Resource example:
fileOpen :: Member (Lift IO) r => String -> IOMode -> Semantic (Resource ': r) ()
fileOpen name mode = do
bracket (sendM $ openFile name mode)
(sendM . hClose)
\handle -> do
f <- sendM $ hGetContents handle
sendM $ putStrLn f
cat :: String -> IO ()
cat = runM . runResource runM . flip fileOpen ReadMode
I kind of just threw sendMs at fileOpen until it compiled, so if there's
a nicer way to write that then I'm happy to update.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/isovector/polysemy/pull/12#issuecomment-483349152,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AASwF9S5ysBLsPUiqB2_ZH7GFFeDiYIKks5vhLmegaJpZM4csnKj
.

Sounds good to me! I'll throw some time at that idea and let you know if I get stuck.

What's the state of this? Ready for review?

Sorry, got caught up in work fires. I've set aside some time today, so I'll try to get this wrapped up and ready.

data CustomException = ThisException | ThatException deriving Show
instance X.Exception CustomException

program :: Members '[Resource, Teletype, Error CustomException] r => Sem r ()
program = catch work $ \e -> writeTTY ("Caught " ++ show e)
  where work = bracket (readTTY) (const $ writeTTY "hello") $ \input -> do
          writeTTY "entering bracket"
          when (input == "explode") $ throw ThisException
          writeTTY input
          writeTTY "exiting bracket"

How about that? I can run it with runM . runResource runM . runError @CustomException . runTeletypeIO $ program, though I'm having trouble getting runErrorInIO to play nice.

@isovector Updated examples with the new changes, and tried to demonstrate Teletype, Error, and Resource effects all working together.

Made things much less weird!

Good enough for me! Thanks for putting this together!


Question/Request: Scenarios or Roles

Hello,
This may be covered already but thought I'd throw it out here just in case.
Has there been any discussion or plans around allowing logic within the devcontainer spec allowing for different scenarios or role based settings/setups? For instance, it would be nice for a team in a monorepo to be able to switch their devcontainer config based on the task at hand (IE: Frontend dev integrating with services, QA testing out the full stack, Backend dev only working on an API, etc).
I could imagine the IDE detecting these options when loading the devcontainer.json file and prompting the user to select the scenario/role they want to load.
Thank you for your time. 🙏

This is currently supported by having multiple devcontainer.json files in your repo with the following structure:
/.devcontainer/role1/devcontainer.json
/.devcontainer/role2/devcontainer.json

When you create the dev environment, you can select the appropriate devcontainer config for your role/team/etc.
As an example, in GitHub Codespaces, if you have multiple devcontainers defined as described above, it will prompt you to select one when creating a codespace for that repo.

The spot in the spec which describes that is https://github.com/devcontainers/spec/blob/main/docs/specs/devcontainer-reference.md#devcontainerjson.

.devcontainer/devcontainer.json
.devcontainer.json
.devcontainer/**/devcontainer.json (where ** is a sub-folder)
It is valid that these files may exist in more than one location, so consider providing a mechanism for users to select one when appropriate.

That's fantastic. Thank you for pointing me there. 🙏

I'll go ahead and close this since you've answered my question. Thank you again. 🙏


Error: The editor does not support enhanced objects (use SAP GUI instead) Won't be able to save changes

What causes this, i cant edit an include ?

Hi
It's a limitation of the ADT APIs, they don't support enhanced includes.
I believe Eclipse has the same limitation, and I can't do much about it
You can edit most other includes, but not that one.

Thank you for your quick response.

On Feb 11, 2021 at 6:10 PM,  <Marcello Urbani (mailto:notifications@github.com)>  wrote:
Hi
It's a limitation of the ADT APIs, they don't support enhanced includes.
I believe Eclipse has the same limitation, and I can't do much about it
You can edit most other includes, but not that one.
—
You are receiving this because you authored the thread.
Reply to this email directly,   view it on GitHub (https://github.com/marcellourbani/vscode_abap_remote_fs/issues/143#issuecomment-777854234), or   unsubscribe (https://github.com/notifications/unsubscribe-auth/AAEFMP6T5FRULGQ4R4LMOLTS6RPVBANCNFSM4XNBSWMA).

Just for reference:
https://blogs.sap.com/2020/04/16/how-dearly-i-would-like-to-edit-my-abap-code-in-my-code-editor-that-is-abap-development-tools-adt-in-eclipsese/
https://answers.sap.com/questions/765841/is-editing-enhancements-with-adteclipse-still-not-.html


Implement Process.ppid on Windows

The affected spec is still pending because it uses the Signal::KILL stub, which is removed as part of #13131.
Also note that since Windows does not re-parent orphaned processes, it is entirely possible for those parent-child IDs to form loops.

@HertzDevil https://github.com/crystal-lang/crystal/pull/13131 is merged, so the spec can be enabled.
I suppose the double exclusion from pending_win32 and {% unless flag?(:win32) %} is intentional? Could you please add a comment why that expectation is disabled on Windows?


Running a script inthe background (like std::process::Command::spawn)

Thanks so much for this great project!
Unless I'm missing something big, it looks like it's not currently possible to use run_script to run a script in the background.  (That is, all the run_script functions use std::process::Command::output to wait for the output instead of std::process::Command::spawn, which would run the process in a new shell in the background.)
If that's correct, would you be interested in adding that option?  I think it would be fairly straightforward to add a spawn_command function that mirrors the run_command function (and corresponding macros for ergonomics).
Alternatively, am I missing something basic?

I think this was requested before :)
I'll try to get to it start of next week.

@codesections this is now implemented in 0.4.0 version which has now been released.
you have new spawn function that takes same args as run but returns the Child process handle.
and you have spawn_script! macro which is the same as the run_script! macro and also returns child process.
Hope it resolves your issue and if not, open a new issue or reopen this one.
thanks for the suggestion

Thanks for this—very much appreciated!


KDE has not left freenode Yet

At this point (2021-05-31 08:00 UTC), the KDE community has not moved out of freenode (yet).
This may change in the next few hours or day, but this repository (whose usage is widespread around) is providing a wrong information.

Thank you. I will correct this immediately.


sequential-render API tweaks

Instead of a very ember concurrency specific API that is fetchDataTask now, let us pass a promise to the task that could be native or a perform of the task. This way we can knock off,

asyncRender (the absence of a promise implies synchronous render)
queryparams
taskOptions
fetchDataTask
All these can be replaced with a single taskPromise attr

As first step, we will expose a new API that accepts a promise, upon successful resolution, call updateRenderStates, which ensures that only after async operation is done, we will increment appState


Fix mlstacks docs typo

Describe changes
I fixed a minor typo in the Deploy stack/components using mlstacks documentation page.
Pre-requisites
Please ensure you have done the following:

[x] I have read the CONTRIBUTING.md document.
[x] If my change requires a change to docs, I have updated the documentation accordingly.
[ ] I have added tests to cover my changes.
[x] I have based my new branch on develop and the open PR is targeting develop. If your branch wasn't based on develop read Contribution guide on rebasing branch to develop.
[ ] If my changes require changes to the dashboard, these changes are communicated/requested.

Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[x] Other (add details above)

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.Begoña Echavarren Sanchez seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.

Thank you!


Add is_open flag to FileInfo class to resend open command when reopen a file

Currently ST only sends an "OpenFile" command to the server when the file is opened for the first time ever. If a file has been opened before, no "OpenFile" command would be sent.
This became a problem when TS 1.6 added a tsconfig file watcher to pick up changes in tsconfig file on the fly. The project that a file belongs to may have changed between the time it was closed last time and the time it was reopened. The trigger for updating project structure is placed in the callback function of the "OpenFile" command. Consequently, that wouldn't work here.
This PR fixes the situation by adding a "is_open" flag for the FileInfo corresponding to each view opened.

@billti could you take a look?

I'm trying to make sure I'm clear here: So does the server already contain logic to reload the project if it detects tsconfig.json has changed? Is this just to force Sublime to go reload any info for the file it already has open? I would have thoughts the server would detect and update the project based on changes anyway, and then the next time you reopen the view on the client it would re-request the errors, etc... for the file.

There are cases when the tsconfig.json would not change but the project structure changed. For example, a tsconfig file without a Files array implicitly includes every file in this folder; then a new file is added to this folder, the project should be updated accordingly, however the tsconfig file watcher wouldn't be triggered as this file is not changed. For now we update the project when the newly added file is opened by client.
Also, say the file was in a configured project, and was deleted from it after it is closed. The server would not rebuild an inferred project for a closed file. Therefore if we don't force the update, the file wouldn't have a project when reopened.

@hoanhtien can you take a look after the updates

:+1:


ERR_AVVIO_PLUGIN_TIMEOUT: plugin did not start in time: useConnections

latest dev (e03bc8d77cac6256d20b82ba0d339013f0b7021a) is unable to stay up, crashes and reconnects:
  START   12:32:39  ›  Launching Miscord v5.0.4
  START   12:32:39 login ›  Logging in...
  INFO    12:32:39 login › logLevel 'info'
  START   12:32:39 discord › login ›  Logging in to Discord...
 SUCCESS  12:32:40 discord › login ›  Logged in to Discord
  START   12:32:40 messenger › login ›  Logging in to Facebook...
 SUCCESS  12:32:42 messenger › login ›  Logged in to Facebook
 SUCCESS  12:32:42 login ›  Logged in
This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason:
Error: ERR_AVVIO_PLUGIN_TIMEOUT: plugin did not start in time: useConnections
    at Timeout._onTimeout (/home/users/glen/scm/miscord/miscord/node_modules/avvio/plugin.js:81:19)
    at listOnTimeout (internal/timers.js:549:17)
    at processTimers (internal/timers.js:492:7)
  ERROR   12:32:52 errorHandler ›  Error: ERR_AVVIO_PLUGIN_TIMEOUT: plugin did not start in time: useConnections
  ERROR   12:32:52 errorHandler ›      at Timeout._onTimeout (/home/users/glen/scm/miscord/miscord/node_modules/avvio/plugin.js:81:19)
  ERROR   12:32:52 errorHandler ›      at listOnTimeout (internal/timers.js:549:17)
  ERROR   12:32:52 errorHandler ›      at processTimers (internal/timers.js:492:7) {
  ERROR   12:32:52 errorHandler ›    code: 'ERR_AVVIO_PLUGIN_TIMEOUT',
  ERROR   12:32:52 errorHandler ›    fn: [Function: useConnections]
  ERROR   12:32:52 errorHandler ›  }
  INFO    12:32:52  ›  Worker process 3052 died (2, null).
  INFO    12:32:53  › test { dataPath: '.' }
 SUCCESS  12:32:53  ›  Worker process 3079 started.
  START   12:32:53  ›  Compressing old logs...
 SUCCESS  12:32:53  ›  All old logs compressed, starting Miscord
  INFO    12:32:53 FileConfig ›  Loading config from /home/users/glen/scm/miscord/miscord-bot/config.json
  START   12:32:53  ›  Launching Miscord v5.0.4
  START   12:32:53 login ›  Logging in...
  INFO    12:32:53 login › logLevel 'info'
  START   12:32:53 discord › login ›  Logging in to Discord...
 SUCCESS  12:32:54 discord › login ›  Logged in to Discord
  START   12:32:54 messenger › login ›  Logging in to Facebook...
^C

unfortunately https://github.com/miscord/miscord/commit/e03bc8d77cac6256d20b82ba0d339013f0b7021a is just one huge massive commit, can't bisect it deeper, git commit leading to it, 8c20af3 aka git tag 5.0.4 works fine.

Fixed in https://github.com/miscord/miscord/commit/a6abebc93632e464367127f7594da5617e7cc919, waiting for a merge to stable.


small defaults update for seq2seq

num_beams: 1->5
no_repeat_ngram_size: 0 -> 2

Pull Request Test Coverage Report for Build d8a96ef7-20cc-4776-b727-f159ac228107

0 of 0   changed or added relevant lines in 0 files are covered.
1009 unchanged lines in 26 files lost coverage.
Overall coverage decreased (-17.3%) to 65.636%

Files with Coverage Reduction
New Missed Lines
%

bittensor/_keyfile/init.py
1
100.0%

bittensor/_metagraph/init.py
1
100.0%

bittensor/_receptor/receptor_pool_impl.py
1
100.0%

bittensor/_synapse/text_seq2seq_impl.py
1
100.0%

bittensor/_wallet/wallet_mock.py
1
100.0%

bittensor/_serializer/init.py
2
100.0%

bittensor/utils/balance.py
2
100.0%

bittensor/_receptor/receptor_impl.py
3
100.0%

bittensor/_axon/init.py
4
100.0%

bittensor/_subtensor/subtensor_mock.py
4
100.0%

Totals

Change from base Build 933fc745-d0cd-4b3b-86b6-ddd003dea1c3:
-17.3%

Covered Lines:
3822

Relevant Lines:
5823

💛  - Coveralls


Add GEOMETRY DASH (Main Level Ver) by MDK (the video is unlisted, look at this note before u reject it)

Song Name
GEOMETRY DASH (Main Level Ver)
Artist Name
MDK
Source
Youtube
Youtube Link
rYt1COPaJ9g
Direct File Link
No response
Song ID
21
Start Offset [ms]
0
Extra
Created from Auto Nong.
Created for level: 100417573

accept


Remove auto commissioner from DeviceCommissioner

Problem
Once this can be passed in via the init parameters, it should be.

Doing this properly would cause lots of build issues for platform vendors. The current impl is a bit wasteful, but functional. Deferring to 1.x


Enable download of artifact to custom directory

Required Information
Question, Bug, or Feature?
Type: Feature
Enter Task Name: DownloadPipelineArtifactV2
Issue Description
Enable the download keyword from the yaml build to select a custom directory. In other words, expose the targetPath property of the DownloadPipelineArtifactV2 on the download keyword.
This is extremelly important, as right now the default location is Pipeline.Workspace, which means that by default the downloaded artifacts survive between builds if you use a self hosted agent, which is really bad, and what's worse: you can't clean it up before the download happens.

Right now there isn't a good workaround, because of bug #11267 which affects DownloadPipelineArtifactV2.

@giggio If I'm understanding correctly, for "download" keyword, you should be able to specify artifact name, patterns, and target path.

download: string - the pipeline to download from (current or a resource id) or the word none
artifact: string - the specific artifact; optional unless path specified
patterns: string - minimatch patterns of files to grab from the artifact(s); defaults to */
path: string - the destination path for where to download the artifact(s)

@jahsu-MSFT The path property is missing on Microsoft docs:
https://docs.microsoft.com/en-us/azure/devops/pipelines/yaml-schema?view=azure-devops&tabs=schema#download
Which one is correct, the .md from the azure-pipelines-yaml repo, or the docs from Microsoft?

@giggio I see. The yaml doc is actually a design doc and currently the path input field is not implemented/exposed in the download yaml schema. We will be working on fixing this as soon as possible. Thanks,

Adding @kasubram . It looks like we won't be adding the path variable to download keyword anytime soon because of the difference in behavior between download BA and download PA task.

I think this should be re-opened.  Surely the design docs of exposing the path property on the download keyword/shortcut has not yet been (will never be?) implemented.  What is that behavior difference between BA and PA tasks that's preventing exposing this property in the keyword/shortcut?
What's more is that in DownloadPipelineArtifactV1, the default value is $(System.ArtifactsDirectory)
https://github.com/microsoft/azure-pipelines-tasks/blob/e2ae64da4dae95afec53e5a0c09ae14b284f7c89/Tasks/DownloadPipelineArtifactV1/task.json#L143
then in DownloadPipelineArtifactV2, it got switched to $(Pipeline.Workspace)
https://github.com/microsoft/azure-pipelines-tasks/blob/e2ae64da4dae95afec53e5a0c09ae14b284f7c89/Tasks/DownloadPipelineArtifactV2/task.json#L180
Or is there a mechanism to select which version of the task that a keyword/shortcut points to?

Interested in this feature too. In my pipeline I have a bunch of pipelines under resources, and they need to be placed in specific directories when downloaded.
As a work around I have a bash task to "manually" move the artifacts to the target directory. It works , but it's just bad code


"Clear all data" on Android doesn't do anything.

Most likely has to do with new db implementation.

May happen on desktop as well - haven't tested.

Works on desktop. Testing Android…

Ok so I narrowed this down to an over-zealous check in InitiateDeleteEverything which disallows delete everything if the user hasn't entered their pw yet.

@shuannelson Good catch! Should be working now. :)


Add support to yourporn.sexy

Hi,
Kindly add support to https://yourporn.sexy/ as its supported by generic downloader.
Type: 18+,NSFW
Supported: partially supported by the generic extractor.

okay, giving a sample
youtube-dl https://yourporn.sexy/post/5aa8157d04947.html [generic] 5aa8157d04947: Requesting header WARNING: Falling back on generic information extractor. [generic] 5aa8157d04947: Downloading webpage [generic] 5aa8157d04947: Extracting information [download] Downloading playlist: Abella Danger Gets Physical - Monster Curves #anal on YourPorn. Sexy [generic] playlist Abella Danger Gets Physical - Monster Curves #anal on YourPorn. Sexy: Collected 1 video ids (downloading 1 of them) [download] Downloading video 1 of 1 [download] Destination: Abella Danger Gets Physical - Monster Curves #anal on YourPorn. Sexy-5aa8157d04947.mp4
So clearly its partially supported by youtube-dl


Continuous movie clip frame script execution.

MovieClip frame scripts get executed on every subsequent frame during playback until the last frame is reached. In addition to this, calling stop() on a particular frame doesn't stop the execution of frame scripts.
It seems that the interval function of the SVGAnim class is responsible for this. Calling stop() on the instance of SVGAnim does stop the interval preventing any further frame script execution however it seems to do it for the entire animation.

I have a fix for this on dev if you replace the published SnapSVGAnimator.js file in your project with the one in dev it should fix the issue.

I tried this, but it doesn't seem to work. Code is still executing on every frame ... I am using the devs SnapSVGAnimator.min.js though

@SlimMarten can you post the output files so I can take a look?

@cjgammon What I discovered was that scripts added on a particular frame would persist and be executed until another frame containing a script was encountered. Even a single space character on a subsequent frame would clear the scripts and prevent them from being executed. I solved it by adding this._scripts = {} to the step_6_exitFrame method although I'm not sure if this solution would have any adverse side effects.

@cjgammon actually you can clone my repo (https://github.com/SlimMarten/svg_animations). If you go to /src/animations/an/ you can take a look at the app-dev.fla

@cjgammon I added a console.log on the first frame on the main timeline for reference.

Thanks @SlimMarten I'll take a look into this when I get some time.
Based on what @UserNumberTwo  said it seems that frameScripts are not getting removed properly so either the event isn't getting triggered in the JSON or I need to manually remove them similar to how he is.  I'll have to investigate more, but the temporary fix he posted shouldn't break anything.

I think this problem is a little bigger. I also actually feel the problem is so important that it should either be addressed immediately or at least the docs should reflect there is an important bug. Anyone new to the project (like me) likely assumes it works better than it does from the current master branch.
I love the plugin. And for some simple FLAs it will work as-is. But it needs some polish to make it work for everything else.
There is a fundamental problem in "step_1_animTimeline()" in that the "commandList" member var is cleared, but "_scripts" is not. Effectively, the problem is that "framescript" is "prepared" (not executed, just made "ready") at every frame whether the movieclip plays through it or seeks past it (via gotoAndPlay/gotoAndStop). When the target frame is "played", it will execute the "previously prepared framescript", even though it shouldn't.
As an example, if you have framescript on frame 10 that says:
console.log('Hi, I'm frame 10!'
and at frame 5 you execute:
this.gotoAndStop(15)
when the playback stops on frame 15, it will execute the framescript from frame 10.
This is NOT fixed using the suggestion from @UserNumberTwo.
To address the issue, I have actually added:
this._scripts = {};
immediately after the line:
this.commandList = [];
in "step_1_animTimeline()".
I believe this will address several of the outstanding "playback-oriented" issues listed in the project. I haven't tested enough to feel confident this is the best solution. But so far it appears to fix the significant problems I was encountering while trying to use the version from the master branch.


Remove unused string

An earlier commit introduced an string var thats not used.

Codecov Report

Merging #2956 into master will decrease coverage by 0.04%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #2956      +/-   ##
==========================================
- Coverage   69.29%   69.24%   -0.05%
==========================================
  Files         914      914
  Lines       43432    43431       -1
  Branches     5925     5925
==========================================
- Hits        30096    30074      -22
- Misses      11326    11343      +17
- Partials     2010     2014       +4

Impacted Files
Coverage Δ

...not/controller/validation/StorageQuotaChecker.java
82.75% <ø> (+1.4%)
:arrow_up:

...lix/EmptyBrokerOnlineOfflineStateModelFactory.java
86.66% <0%> (-13.34%)
:arrow_down:

.../impl/dictionary/LongOffHeapMutableDictionary.java
81.81% <0%> (-10.91%)
:arrow_down:

...e/impl/dictionary/LongOnHeapMutableDictionary.java
88.88% <0%> (-6.67%)
:arrow_down:

.../impl/dictionary/FloatOnHeapMutableDictionary.java
86.66% <0%> (-6.67%)
:arrow_down:

...mpl/dictionary/DoubleOffHeapMutableDictionary.java
67.27% <0%> (-5.46%)
:arrow_down:

...e/operator/dociditerators/SortedDocIdIterator.java
59.45% <0%> (-5.41%)
:arrow_down:

.../controller/helix/core/SegmentDeletionManager.java
76.72% <0%> (-5.18%)
:arrow_down:

...not/core/query/pruner/DataSchemaSegmentPruner.java
57.14% <0%> (-4.77%)
:arrow_down:

...afkaHighLevelConsumerBasedRoutingTableBuilder.java
92.3% <0%> (-3.85%)
:arrow_down:

... and 12 more

Continue to review full report at Codecov.

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


Possibility of configuring characters subset

Initial checklist

[X] I read the support docs
[X] I read the contributing guide
[X] I agree to follow the code of conduct
[X] I searched issues and couldn’t find anything (or linked relevant results below)

Problem
I want to be able to add/remove characters that should be escaped. I see that you have hard coded values here, so I would like to be able to change them.
Solution
Add the subset option to the list of all options, change the order for option assigning here.
Alternatives
I don't see any alternatives, I was trying to add my own plugin for rehype that escapes some symbols in text using HTML symbols, but it doesn't work because the symbol "&" is always escaped.

Welcome @skoropadas 👋
Taking a step back

I want to be able to add/remove characters that should be escaped

Why? Characters need to be escaped to make HTML valid.
Producing invalid HTML seems like a non-goal?

I was trying to add my own plugin for rehype that escapes some symbols in text using HTML symbols, but it doesn't work because the symbol "&" is always escaped.

I'm not sure I follow this, you don't want it to be escaped, so you can escape it anyway?

Reading between the lines this sounds very similar to past questions where an external platform didn't actually handle HTML correctly or trying to make non-HTML from HTML (recent example: https://github.com/syntax-tree/hast-util-to-html/issues/35)
If it is HTML related, open an issue with the platform for them to handle HTML.
If it is a non-HTML variant, you may want a different renderer or syntax tree.


Add support for decimal numbers

Backend support is included in branch feature/decimal (889b25bed1fabf59649f3cf21334ecab36341bcd). For now the BigInteger Interface in the Study class is marked deprecated. Using BigDecimal as input values already invokes the new functionality. Unfortunately for compatibility I was forced to use a new function name for result reconstruction: getAllDecResults(). This will change back to getAllResults() when we remove the integral interface in a breaking change.
I have not changed the GUI interface yet.

Done in 791ed98


"When is it better not to write automated tests?" Blog article

CC: @curfman, @maherou, @bernhold
I have written a draft for a short blog article "When is it better not to write automated tests?".  I will have to send it through SNL R&A before I can post it here but I can send a draft to people offline in email to take a look at first.
I feel this goes with #331 "Working Effectively with Legacy Code" very nicely.
If interested, I will send out a draft of the formatted article.

I wonder if it makes sense to shorten #331 quite a bit and use the tandem blog article to capture what you do not include in #331 and, of course, with a link from the curated content article to this tandem blog article.

In my opinion, a blog article should have mostly unique material.  The material in this PR branch is really just a very short summary of existing material in the book "Working Effectively with Legacy Code".  Think of it as an extremely short Cliff Notes for "Working Effectively with Legacy Code".  Can there be some variability in curated content to allow this?

In my view, this material would be a good fit for either curated content or an article (distinct from a blog article).  The boundary between the 2 is somewhat fuzzy (lengthier content generally in articles, though to date there have been just a few); the resource would appear the same on the frontend regardless (as a 'resource') rather than blog.

FYI: I submitted a draft to the SNL R&A process and I sent a draft to @curfman, @bernhold, @maherou, @elaineraybourn, and @markcmiller86 to get some preliminary feedback.  Once this is approved by SNL for release, I will post a PR if there is interest.

Comment from @curfman below.
Once I post the PR, I can add some section headings to break this up some to make it easier to browse.

Hi Ross – Thanks for proposing this article and writing a complete draft.  I believe this would be a very nice BSSw blog article as a complement to your other resource about the Feathers book.  I am sure that others who are considering strategies for expanded testing would benefit from considering these issues.
From a stylistic point of view, I recommend inserting a few subheadings to guide the reader.  We could schedule this to appear in late June or July.
Others may have additional comments about content.
Best,
Lois

In my view, this material would be a good fit for either curated content or an article (distinct from a blog article). The boundary between the 2 is somewhat fuzzy (lengthier content generally in articles, though to date there have been just a few); the resource would appear the same on the frontend regardless (as a 'resource') rather than blog.

Is length the only criteria for distinguishing between articles and blogs, right now?

The wording in my comment above was not clear.  Please see WhatToContribute.md for a description of content types.  In particular:

Curated links: A brief article that highlights other web-based articles or content. Your article should describe why the CSE community might find value in the linked content.

Original experience: An original article to inform the CSE community about how to improve developer productivity and software sustainability.

Blog article: An original article in the form of a blog of 250 - 500 words. We will solicit contributions from thought leaders in the community and welcome proposals from anyone.

The distinction with length is really contrasting between curated content (tends to be short, mostly framing external content) and an original experience article (tends to be somewhat longer than curated content, in the same length range as blog articles).

I do not have a crisp definition for what distinguishes original articles and blogs. But it is not length.
Generally, I think of blogs as more like op-ed pieces in newspapers, and original articles as being more like regular newspaper articles – more factual or analytical.  That’s not crisp in part because I think thoughtfully constructed reviews (I don’t think we want to be endorsing one product over another, but I think it is useful to offer comparisons based on clearly articulated criteria) and extended experience reports would make good original articles too.  Also, I think that the WhatIs and HowTo documents, when we resurrect those, would fall in the original article category.  And personally, when I write blog articles, I often use a more informal style of writing than I would consider appropriate for an original article.
But that’s just my opinion. I think this should be discussed among the editorial board, eventually.
From: Rinku G<EMAIL_ADDRESS>Sent: Tuesday, May 21, 2019 2:31 PM
To: betterscientificsoftware/betterscientificsoftware.github.io<EMAIL_ADDRESS>Cc: Bernholdt, David<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: [EXTERNAL] Re: [betterscientificsoftware/betterscientificsoftware.github.io] "When is it better not to write automated tests?" Blog article (#360)
In my view, this material would be a good fit for either curated content or an article (distinct from a blog article). The boundary between the 2 is somewhat fuzzy (lengthier content generally in articles, though to date there have been just a few); the resource would appear the same on the frontend regardless (as a 'resource') rather than blog.
Is length the only criteria for distinguishing between articles and blogs, right now?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/betterscientificsoftware/betterscientificsoftware.github.io/issues/360?email_source=notifications&email_token=AADIDKMSVATUFFNQEAWARXDPWQ5XRA5CNFSM4HOC7EF2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODV4ZCZQ#issuecomment-494506342, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AADIDKNEOD4NADEXWZS6ELLPWQ5XRANCNFSM4HOC7EFQ.

@curfman said:

Blog article: An original article in the form of a blog of 250 - 500 words. We will solicit contributions from thought leaders in the community and welcome proposals from anyone.

Just doing a rough word-count on the existing articles in the directory Articles/Blog/:
$ cd Articles/Blog/

$ find . -name "*.md" -exec wc -w {} \; | sort -rn

4157 ./ReferencesInMarkdown.md
2398 ./ApolloGuidanceComputerPart1-wikized.md
1992 ./SoftwareAsCraft.md
1702 ./ApolloGuidanceComputerPart1.md
1570 ./OnDemandLearningForBetterScientificSoftware.md
1443 ./GinkgoSustainableSoftwareInAnAcademicEnvironment.md
1226 ./2018-11-messer-porting.md
1178 ./AdoptingCIforEXAALT.md
1164 ./ContinuousTechnologyRefreshment.md
1152 ./OutreachForBSSw.md
1150 ./SCSoftwareConference.md
1132 ./ScalingSmallTeamsToATeamOfTeams.md
...

But that includes meta-data and everything.
The current draft of my blog article "When is it better not to write automated tests?" is:
$ wc -w 2019-05-17-when-is-it-better-not-to-write-tests.md
1409 2019-05-17-when-is-it-better-not-to-write-tests.md

All of the meta-data is not there yet (I debugged this in my local jekyll github.io site so that I could render the markdown locally) but this looks to be within the range of several of the other published blog articles (and we can cut down my mine as well to fit any length desired).

I agree with Lois in that Curated Content should be short, and simple to write and review.
I can easily envision original articles longer than the 250-500 words we say for blog articles in some cases. (I wonder if anyone’s actually analyzed our real blog articles?)
From: Lois Curfman McInnes<EMAIL_ADDRESS>Sent: Tuesday, May 21, 2019 2:47 PM
To: betterscientificsoftware/betterscientificsoftware.github.io<EMAIL_ADDRESS>Cc: Bernholdt, David<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: [EXTERNAL] Re: [betterscientificsoftware/betterscientificsoftware.github.io] "When is it better not to write automated tests?" Blog article (#360)
The wording in my comment above was not clear. Please see WhatToContribute.mdhttps://github.com/betterscientificsoftware/betterscientificsoftware.github.io/blob/master/WhatToContribute.md for a description of content types. In particular:

Curated links: A brief article that highlights other web-based articles or content. Your article should describe why the CSE community might find value in the linked content.
Original experience: An original article to inform the CSE community about how to improve developer productivity and software sustainability.
Blog article: An original article in the form of a blog of 250 - 500 words. We will solicit contributions from thought leaders in the community and welcome proposals from anyone.

The distinction with length is really contrasting between curated content (tends to be short, mostly framing external content) and an original experience article (tends to be somewhat longer than curated content, in the same length range as blog articles).
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/betterscientificsoftware/betterscientificsoftware.github.io/issues/360?email_source=notifications&email_token=AADIDKK7QMJZGIJ6T276RYTPWQ7QXA5CNFSM4HOC7EF2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODV42MQQ#issuecomment-494511682, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AADIDKMUVFEF4CSGS2JPCKLPWQ7QXANCNFSM4HOC7EFQ.

I guess we should just wait until I can post the PR with the actual proposed content (originally targeted as a blog) and then someone can decide which is the best format.
But note that the BSSw.io site calls out new blog articles at the top of every page which it does not do for other types of new content.  That seems to raise the prestige/importance of blog articles compared to other types of content on the site (which is likely to go unnoticed).

4157 ./ReferencesInMarkdown.md

That file wasn't an actual Blog Post. It was example and instructions on how to us GitHub Flavored Markdown (GFM) to achieve Wiki-pedia style footnoting and references list. I put it here because it pertains to the blog but should really be in another place where we keep adminstrative materials.

I like the transparency of your blog. You share how you have struggled with decisions, gained insights from a thought leader, and made changes accordingly in your thinking. I believe there are other readers who will have been in your position, and will appreciate that you are courageous to share your struggles, and that your thinking changed after accessing a resource, and thinking further.
When I read your blog, I was interested and had many more questions. I think your blog would be strengthened with examples (if possible) and definitions of terms. For example, what is the validation-centric approach? What in the book was the tipping point to change your thinking? How did this perspective apply to your code? What changes did you make? Now that you know this, how has this changed the way you think and conduct testing?
As you flesh out the blog, think about telling the reader a story about your journey with details so they can “replicate it,” if needed. I think you are almost there with a few more details.

FYI: The draft passed SNL R&A so I can post a PR here with the draft article "When is it better not to write automated tests?"

This was approved to get worked, yes?  Can one more "thumbs up" on the initial comment above?

Looks like we have 4 thumbs up now so I moved this to "Development Backlog".  I spoke with @curfman briefly and will submit a PR while considering a subtile, sections headings, and a hero image.  Also, final technical formatting issues may just take place on 'master' so it can be previewed.

FYI: Just posted PR #377 with a draft of this blog article.   You share how you have struggled with decisions, gained insights from a thought leader, and made changes accordingly in your thinking. I believe there are other readers who will have been in your position, and will appreciate that you are courageous to share your struggles, and that your thinking changed after accessing a resource, and thinking further.
When I read your blog, I was interested and had many more questions. I think your blog would be strengthened with examples (if possible) and definitions of terms. For example, what is the validation-centric approach? What in the book was the tipping point to change your thinking? How did this perspective apply to your code? What changes did you make? Now that you know this, how has this changed the way you think and conduct testing?
As you flesh out the blog, think about telling the reader a story about your journey with details so they can “replicate it,” if needed. I think you are almost there with a few more details.

I liked some of Elaines comments here.

CC: @curfman
As of the updated generated display file in commit 957a639, this should be ready to publish.


`GLIBC_2.32' not found

I followed the tutorial and installed RaMA using Conda, but the following error occurred:
RaMA
-h RaMA: /usr/lib/x86_64-linux-gnu/libc.so.6: version 'GLIBC_2.32' not found (required by RaMA)
RaMA: /usr/lib/x86_64-linux-gnu/libc.so.6: version 'GLIBC_2.34' not found (required by RaMA)
Additionally, I find it quite inconvenient to enter the RaMA command.

Thank you so much for taking the time to resolve the issue I encountered and for providing a detailed explanation of the cause and solution. Your effort to recompile the executable on an older kernel version, making it compatible with a wider range of Linux distributions, is incredibly helpful for both me and other users. Your support and dedication have greatly contributed to improving the software’s usability. Thank you again for helping me resolve this issue!


Reference moved Amber CLI repository

It looks like the Amber framework moved their CLI library's framework to amberframework/amber_cli.
Until this is fixed, the installation is broken.

CLI is still part of amber stable, latest release, and master. The PR's to approve it haven't been merged.

My apologies; it looks like the issue has been resolved by #6 but that just hasn't been released yet.
I'll close this issue.


QR-code for downloading archive to mobile device

Command:
kalama qr

See https://stackoverflow.com/questions/20107303/dynamically-create-and-stream-zip-to-client for on-the-fly zip archiving

Done!


Alembic importer

For some internal tests, we need to be able to import alembic cameras in the sfmdata format.
Todo :

[ ] point cloud (structure)
[ ] visibility list
[ ] focal conversion metric/pixel
[ ] index for views, poses, intrinsics
[ ] fusion common intrinsics
[ ] handle file opening problem

added so todos in description


Inconsistencies in the return values (android)

To verify / understand the content of the frames, I created a simple demo app that stores the content returned from the resize plugin and just draws it right below the original image (via react-native-skia).
The resize call within my frame processor looks like follows:
const data = resize(frame, {
  scale: {
    width: 320,
    height: 320
  },
  pixelFormat: 'rgb',
  dataType: 'uint8'
})

// Note: As I somehow failed to use the arraybuffer-values directly within my component.
// I found that storing the values in a separate array worked for me. So I reshape the frame data like this
// before I use it to draw my skia image:

const arrayData = new Array(width * height * 4).fill(255)
for (let i = 0, j = 0; i < data.length; i += 3,  j += 4) {
  arrayData[j] = data[i] // R
  arrayData[j+1] = data[i + 1] // G
  arrayData[j+2] = data[i + 2] // B
  arrayData[j+3] = 255 // A
}

My camera settings look like this:
  const format = useCameraFormat(device, [
    { videoResolution: { width: 640, height: 480 } },
    { fps: 30 },
    { videoStabilizationMode: 'auto' }
  ])

I can could verify my approach is generally working on iOS, where my test-frame is rendered correctly:
iPhone X:

However, on my Android phone (Pixel 7A, Android 14), the frame seems to be rotated by -90°. Also, as you can see in the image below, the format is returned in bgr instead rgb..
Pixel 7A:

Furthermore, I don't actually want to use the default centre-crop, but the upper square of the image. I have therefore adapted the resize call as follows:
const data = resize(frame, {
  scale: {
    width,
    height
  },
  crop: {
    y: 0,
    x: 0,
    width: frame.width,
    height: frame.width
  },
  pixelFormat: 'rgb',
  dataType: 'uint8'
})

This setting strangely cuts the result into 3 image-areas:

To summarize the issues:

Everything runs as expected on iOS
On Android (Pixel 7A, Android 14) there are the following problems

The image is rotated
The image is bgr despite rgb was requested
The crop mechanism seems to have a glitch (possibly related to the rotation?)

I use the following configuration:

react-native: 0.73.4
react-native-vision-camera: 3.9.1
react-native-worklets-core: 0.3.0
vision-camera-resize-plugin: 2.0.1

If it helps to trace the issue I can gladly add my complete test component.

Hey - impressive work that you can draw it to a skia canvas! Is that running smooth? What FPS?
The VisionCamera Skia integration will use GPU Hardware Buffers, so it's gonna run really smooth, but I was wondering how smooth your approach is.
Regarding your issue; hm, well to be honest I don't have a lot of time to investigate this right now, but maybe it's due to the buffers just always being in device native orientation on Android?
I'd gladly accept PRs!

Hi, thanks for you answer!
Regarding performance: My current approach is only suitable for debugging purposes. The app only runs with approx. 2-3 frames and crashes after a few seconds (probably a memory leak somewhere). However, it is sufficient for checking the frame content.
https://github.com/mrousavy/vision-camera-resize-plugin/assets/7591624/10e1e758-aae9-4180-a79e-224369f96143
Regarding the issue:

maybe it's due to the buffers just always being in device native orientation on Android?
That would also be my guess, is there an easy way to check the native orientation of the device?

device.sensorOrientation - but this is not guaranteed to be correct by Android. Some vendors choose to not implement it properly, specifically on Samsungs it's 180 deg rotated.
CameraX has workarounds for all such quirks, in VisionCamera V4 that should be fixed.

We now have rotation support in vision-camera-resize-plugin - thanks @rodgomesc! ❤
So you can now use rotation: '90deg' to fix the rotation issue.

I'm not sure why it's blueish though. This might not be a problem of the resize plugin, but rather of the way you display it maybe? Because when I inspect the UIImage of the ARGB 8888 array on the native side it looks correct

I'm not sure why it's blueish though. This might not be a problem of the resize plugin, but rather of the way you display it maybe? Because when I inspect the UIImage of the ARGB 8888 array on the native side it looks correct

it's blueish for me as well if i use rgba on ios, since i don't have time to investigate now my workaround is
pixelFormat: IS_ANDROID ? 'rgba' : 'argb'

Strange for me it seems the other way around..
My request format for the resize plugin is pixelFormat: 'rgb'. I interpret it as described in my first post:
const arrayData = new Array(width * height * 4).fill(255)
for (let i = 0, j = 0; i < data.length; i += 3,  j += 4) {
  arrayData[j] = data[i] // R
  arrayData[j+1] = data[i + 1] // G
  arrayData[j+2] = data[i + 2] // B
  arrayData[j+3] = 255 // A
}

If I use the same code on iOS and Android (same display method), it looks fine on iOS (tested on iPhone X) but blueish on Android (tested on Pixel 7A). I can fix it for android by switching the blue and red channel (= interpret values as BGR):
const arrayData = new Array(width * height * 4).fill(255)
for (let i = 0, j = 0; i < data.length; i += 3,  j += 4) {
  arrayData[j] = data[i + 2] // R
  arrayData[j+1] = data[i + 1] // G
  arrayData[j+2] = data[i] // B
  arrayData[j+3] = 255 // A
}

Maybe it is a bug then in this method: https://github.com/mrousavy/vision-camera-resize-plugin/blob/8a190a320cad637b917ab90d24f964ae3ece540e/ios/ResizePlugin.mm#L183-L250
You could try playing around with those values or hitting breakpoints to see if all values are correct, it seems like some channels are swapped wrong?

Strange for me it seems the other way around.. My request format for the resize plugin is pixelFormat: 'rgb'. I interpret it as described in my first post:
const data = resize(frame, {
  scale: {
    width: 320,
    height: 320
  },
  pixelFormat: 'rgb',
  dataType: 'uint8'
})

const arrayData = new Array(width * height * 4).fill(255)
for (let i = 0, j = 0; i < data.length; i += 3,  j += 4) {
  arrayData[j] = data[i] // R
  arrayData[j+1] = data[i + 1] // G
  arrayData[j+2] = data[i + 2] // B
  arrayData[j+3] = 255 // A
}

If I use the same code on iOS and Android (same display method), it looks fine on iOS (tested on iPhone X) but blueish on Android (tested on Pixel 7A). I can fix it for android by switching the blue and red channel (= interpret values as BGR):
const arrayData = new Array(width * height * 4).fill(255)
for (let i = 0, j = 0; i < data.length; i += 3,  j += 4) {
  arrayData[j] = data[i + 2] // R
  arrayData[j+1] = data[i + 1] // G
  arrayData[j+2] = data[i] // B
  arrayData[j+3] = 255 // A
}

just noticed that the rgb buffer is incorrect, right now it's returning bgr we can validate that creating the bitmap right before the return of the SharedValue in ResizePlugin.kt
diff --git a/node_modules/vision-camera-resize-plugin/android/src/main/java/com/visioncameraresizeplugin/ResizePlugin.kt b/node_modules/vision-camera-resize-plugin/android/src/main/java/com/visioncameraresizeplugin/ResizePlugin.kt
index 8c8c0c5..b018bf4 100644
--- a/node_modules/vision-camera-resize-plugin/android/src/main/java/com/visioncameraresizeplugin/ResizePlugin.kt
+++ b/node_modules/vision-camera-resize-plugin/android/src/main/java/com/visioncameraresizeplugin/ResizePlugin.kt
@@ -1,5 +1,6 @@
 package com.visioncameraresizeplugin

+import android.graphics.Bitmap
 import android.graphics.ImageFormat
 import android.media.Image
 import android.util.Log
@@ -156,7 +157,25 @@ class ResizePlugin(private val proxy: VisionCameraProxy) : FrameProcessorPlugin(
       targetType.ordinal
     )

-    return SharedArray(proxy, resized)
+    val result = SharedArray(proxy, resized)
+
+
+    val bitmap = Bitmap.createBitmap(scaleWidth, scaleHeight, Bitmap.Config.ARGB_8888)
+    val intArray = IntArray(scaleWidth * scaleHeight)
+
+    result.byteBuffer.rewind()
+
+    for (i in 0 until intArray.size) {
+      // note: use bgr instead of rgb
+      val b = result.byteBuffer.get().toInt() and 0xFF
+      val g = result.byteBuffer.get().toInt() and 0xFF
+      val r = result.byteBuffer.get().toInt() and 0xFF
+      intArray[i] = (0xFF shl 24) or (r shl 16) or (g shl 8) or b
+    }
+
+
+    bitmap.setPixels(intArray, 0, scaleWidth, 0, 0, scaleWidth, scaleHeight)
+    // debug the line above
+     return result
   }

   private enum class PixelFormat {

device.sensorOrientation - but this is not guaranteed to be correct by Android. Some vendors choose to not implement it properly, specifically on Samsungs it's 180 deg rotated.
CameraX has workarounds for all such quirks, in VisionCamera V4 that should be fixed.

Hi, any ideas when VisionCamera V4 will be published ? :)

Hi, any ideas when VisionCamera V4 will be published ? :)

VisionCamera V4 was released 3 months ago

Hi, any ideas when VisionCamera V4 will be published ? :)

VisionCamera V4 was released 3 months ago

Hi, sorry, looked at wrong npm package.
The problem with Samsung devices frames 180 deg rotated still persists, right? Any idea if this is something that can be fixed?


Change in UI

Made Changes in UI
Updated Navbar and Footer , layout also
increased font size of Question

Can You Please Check if everything is alright or not before merging

This is a bit too much.
The blue border doesn't look too good.
If you can just replace the image for the question with just a text that would be great.

This is a bit too much.
The blue border doesn't look too good.
If you can just replace the image for the question with just a text that would be great.
This is how it looks on my end

Okay I'll fix it.

Made few changes

Updated UI and removed cyan color
Adjusted Question Size so that it is clearly visible to user with good font
Also added some hover effect in the options and selection
Changed the color of selection of option
The biggest challenge was the question but I tried my best to adjust it according to user so that it looks good. It's very difficult to convert it to text because lots of files are there which are using to convert it to image and few things I'm unable to understand. We could convert it to text by using Tesseract Js bt it's too complicated here.
I request you to review it and check whether it's looking good and accept my PR

updated all requested changes

You're most welcome., means a lot.


Add a tool to generate Shackleton Expanse planetary systems

There have been a couple of threads on the Modiphius forums about the rules from the Shackleton Expanse book for generating planetary systems and "hex-crawling" the Shackleton Expanse.
I'd like to add these capabilities to the character generator, 'cause I like planetary systems. Forum user Mister X mentioned having some Python scripts that can produce some interesting output.

Although the rules are specifically about the Shackleton Expanse area of space, obviously people may want to have planetary system data for other areas of space.

There's also the potential for other generators. For example, the biohazard options in the sciences division, or including the red/blue/gold plot component tables from the division books.
Anyways, the first post you link seems to include all the resources I found for creating planetary things, as well as a good method for doing so. It seems like it's just a series of dice rolls, so it could be as easy (for the user) as a single button push to generate a sector of space.

Here's a system map I created for one of my STA campaigns:

I'd like to be able to auto-generate something like that. When I made the map, I put the orbits on a logarithmic scale, so they look "closer together" than reality; it helps use the available space a bit more effectively.

That seems exceptionally ambitious. Are images something the tool is able to do?
I wonder if just having a list is sufficient, not only for a first start before incorporating auto-generated images, but also for people who might want to make their own art, or want era-specific art that isn't yet an option. Or even people who just like database-type things.


hot fix for weights compression

What does this PR do?
fix export large models with quantization config and prevent overriding ov_config provided into model class if used export=True (it may have some additional parameters for ov runtime e.g. inference_precision_hint)
Fixes # (issue)
Before submitting

[ ] This PR fixes a typo or improves the docs (you can dismiss the other checks if that's the case).
[ ] Did you make sure to update the documentation with your changes?
[x] Did you write any new necessary tests?

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint. The docs are available until 30 days after the last update.

@echarlaix, it seems like .from_pretrained() method does not work correctly with quantization options exposed in it. We have multiple concerns about it and should fix ASAP. Please take a look again.


availbilitymatrix gives integers such as either 0 or 1 but no float

Description

Pictures tell more than words
Expected Behavior

Actual Behavior

Error Message

Your Environment

The atlite version used:
How you installed atlite (conda, pip or github):
Operating System:
My environment:
(output of `conda list`)
    ```

    ```

Trying to debug this if others face the same issue

I am trying to understand why the cutout raster has either a 0 or a 1 availability and nothing in between... ( as the expected image behaviour would suggest). I was looking now into the function shape_availability_reprojected() in gis.py. Here in particular rasterio.warp.reproject() is used to downsample (high-resolution raster -> low-resolution raster).
Looking into the variables:

masked represents the fine-grained shape e.g. in case of croatia an array/raster of the shape (4876, 5065)
dst_shape represents the coarse-grained shape e.g. in case of croatia an array of the shape (31, 45)
resampling represents the method of how we upsample the shape. 5 is method "average". There a many more methods available (here). One can be here also more explicit like replacing "5" with "rasterio.enums.Resampling.average" (tested and works)
the other cars stuff indicated the CRS of each raster & the transformation (relation between the raster resolutions) is required for upsampling...

So here I am with a bit more knowledge but haven't found the cause of the problem. Maybe it has something to do with the "src_nodata" stuff described here. :)
https://github.com/PyPSA/atlite/blob/e3d0865afc4bcf6011f368ecfff9d67eefbfad84/atlite/gis.py#L473-L519

@pz-max thank you very much for testing this, this was extremely important. I found the error. Rasterio changed the order of the resampling methods (without a warning). I'll push a fix with a safe method selection.

I can confirm it is still not working. :)

Fixed the issue PR is coming @FabianHofmann

Reproduce the error
git clone https://github.com/PyPSA/atlite.git
cd atlite
conda env create -f environment.yaml  # will install rasterio 1.2.10
pip install atlite  # install to test the examples
pytest

Leads to errors

Which I could reproduce in the examples:

Performing then  pip install 'rasterio<1.2.10' fixes the issue (downgrades to 1.2.9)

constraining rasterio in the environment.yaml to
- rasterio>=1.0,<1.2.10  # until 1.3.0 is released

solves the issue we experienced (even though the anaconda installation quite a bit longer). The solved rasterio version is 1.2.8 (yes not 1.2.9)

I checked the pytest to confirm everything runs well

One note, the rasterio team has a pre-release in the beta (v.1.3.0) with several improvements that also impact the downsampling/upsampling. This beta version also solves our issues (I tested it). Once fully released we should change our package constraints.


Refactor the Player Pipeline

The ChannelDuplexHandler method used to intercept packets from players can sometimes break if the player logs in and out.

Complete with latest commit.


change startup parsing to eval

done for similar reason as 2e366792c15eba443cea2b7ea38abf396d9f9c31
Not sure if anything is lost with not using exec env
All Submissions:

[x] Have you ensured there aren't other open Pull Requests for the same update or change?
[x] Have you created a new branch for your changes and PR from that branch and not from your master branch?
[x] Have you added an explanation of what your changes do and why you'd like us to include them?

What's lost is the proper passing of sigterm to shut the server off, and java eggs don't tend to have full bash script startups.
What exactly are you using it for?

What's lost is the proper passing of sigterm to shut the server off, and java eggs don't tend to have full bash script startups.
What exactly are you using it for?

if this is true, the merge should be reverted and ci should be canceled :3

What exactly are you using it for?

I'm trying to make the PR in https://github.com/parkervcp/eggs/pull/396 to a working state, and for it to use a startup script like in that PR this is needed.


refactor: 3 small changes in semantic colors

There are some changes in semantic colors for 3 colors:
backgroundPrimary => from grey800 to grey900
backgroundSecondary => from grey900 to black
backgroundTertiary=>  from black to grey800
To help you, here is the PR on vitamin-web: https://github.com/Decathlon/vitamin-web/pull/1127
Thanks for your understanding.

Already done in PR ☝

thanks @baptistedajon :)


createSubscription function does not exists

I'm submitting a bug report

What is the current behavior?
When I try to create a subscription using the Safepay NodeJS SDK, I receive a TypeError indicating that safepay.checkout.createSubscription is not a function.
If the current behavior is a bug, please provide the steps to reproduce and if possible a minimal demo of the problem
Set up a Next.js 13 API route.
Install and import @sfpy/node-sdk.
Initialize Safepay with the given credentials.
Call the safepay.checkout.createSubscription method.
Observe the error in the console.
What is the expected behavior?
The safepay.checkout.createSubscription method should execute successfully, and I should be able to generate a subscription URL without encountering any errors.
What is the motivation / use case for changing the behavior?
To successfully integrate Safepay subscription payments into my application.
Please tell us about your environment:
Browser: Chrome (latest version)
Environment:  Sandbox

[ ] Production
[x] Sandbox
[ ] Development

hi @hiraaziz thanks for reporting this bug.
This is due to the subscriptions functionality in the SDK not being published to NPM. I have just published a new version of the node SDK to npm so if you reinstall it you should be able to play around with subscriptions.
Please note that we have pushed a major version upgrade so make sure you are installing<EMAIL_ADDRESS>Let me know if this works

Is this subscription feature is available only to those who have signed for production or I can use in test mode?

Sure,

Here is the sdk version Iam using:

Here is the configuration :

Public API KEY: sec_a1732c22-bc53-4ba5-8928-533d6e506e37

This is the error Iam getting:

Thanks @hiraaziz
I have published a new minor version 3.0.1. Can you try again? On our side all the tests are working fine including tests for subscriptions.
Apologies for the trouble you're facing but would you mind re-installing and trying again? making sure the version is 3.0.1

@fatimaaurangzeb0640 Please see what the issue could be so we can help @hiraaziz out

Now its working fine. @ziyadparekh

Hey @hiraaziz subscriptions have to confirmed by the customer not the merchant. When you use the SDK to create a subscription, the URL you receive in the response is what your system has to redirect the customer to.
To test it out you should console log the URL and paste it in your browser.
Once your browser opens the checkout page, you will be prompted to

create a Safepay account
save a card
subscribe to the plan

let me know if this helps

@ziyadparekh 1. I need to know if customer successfully subscribed then after redirecting him to success page I want to add his id into db but I need to confirm his subscription with some API not via merchant dashboard.

Can you please tell how can I get the subscription id of customer on the client side after subscribing - any API for this. We have only auth token and planid!

Is there any other guide for developers other than this readme file?

Hi @hiraaziz whenever a new subscription is entered into by your customer, a webhook is fired to your backend indicating the details of the subscription. In order for Safepay to send the webhook, you first have to subscribe to the webhook through your dashboard.

Navigate to the developers section of your dashboard and then go the Endpoints subsection.
From there, you may first have to enable webhooks, but after that click on Add an Endpoint.
Next, enter the URL of an endpoint that lives on your server where you wish to receive the webhooks. Make sure this is not a localhost URL. If you are developing on localhost, please use Ngrok and use that URL
After creating the Endpoint, click on the Action Button on the row (button with 3 dots) and click on "Details".
Inside the modal that opens (wait for the modal to load) you can select the events you are interested in receiving. For subscriptions you should subscribe to the following events:

subscription:created
subscription:unpaid
subscription:ended
subscription_payment:complete
subscription_payment:failed

Its your decision whether you want to handle all of these events through one URL or create multiple endpoints for each type of event.

We are working on more comprehensive documentation for Webhooks, but for now the JSON for a subscription:created event looks like this
{
  "created_at": "2023-07-28T10:22:15Z",
  "notification_id": "CJ1P8O7SO29C73B13PJ0",
  "payload": {
    "kind": "Subscription_Created",
    "subject": {
      "subscription": {
        "balance": "0",
        "billing_cycle_anchor": "2023-07-28T10:11:44.310231756Z",
        "created_at": "2023-07-28T10:11:44.310231756Z",
        "current_period_end_date": "2023-07-29T10:11:43.310231756Z",
        "current_period_start_date": "2023-07-28T10:11:44.310231756Z",
        "instrument_id": "tms_e2254483-1947-4c1b-9852-d768495e60e6",
        "never_expires": true,
        "plan": {
          "active": true,
          "amount": "4000",
          "created_at": "2023-06-20T11:12:45Z",
          "currency": "PKR",
          "interval": "DAY",
          "interval_count": 1,
          "merchant_api_key": "sec_edeade52-46aa-483b-b87d-009d3ce41554",
          "name": "Messaging",
          "product": "product_identifier",
          "token": "plan_b25d9e71-73a7-43f2-910a-fa8152405fbc",
          "type": "RECURRING",
          "updated_at": "2023-06-20T11:12:45Z"
        },
        "plan_id": "plan_b25d9e71-73a7-43f2-910a-fa8152405fbc",
        "price_amount": "4000",
        "price_currency": "PKR",
        "start_date": "2023-07-28T10:11:44.310231756Z",
        "status": "INCOMPLETE",
        "token": "sub_49ae5d29-7d0b-409b-b8a7-9db9e59c15b0",
        "updated_at": "2023-07-28T10:11:44.310231756Z",
        "user_id": "user_bb9cf861-cdc5-41c4-abff-509f4dd86609"
      }
    },
    "timestamp": "2023-07-28T10:11:44.389102006Z"
  },
  "token": "CJ1P8O7SO29C73B13PJG",
  "updated_at": "2023-07-28T10:22:15Z"
}

@ziyadparekh subscription activation takes weeks in sandbox account.. Is this same for production account?

hey @hiraaziz what does the subscription status say before it becomes active?

@fatimaaurangzeb0640 it says trailing. In sandbox account, After few weeks I got email that says my subscription is now activated. Then the status was changed to active.
How much time subscription activation takes in production account.

In both sandbox and production, the subscription becomes active after the trial period is over. When the subscription's trial period is going, its status is 'TRAILING' and when the trial period is over, the subscription finally becomes active, and the status is changed to 'ACTIVE'. This is also when you get charged for the first time.
If you want the subscription to be active right away, you should set the trial period to 0 (days) when creating the plan or you can even update the plan and set the trial period to 0. What is the trial period for the plan that you subscribed to?

@fatimaaurangzeb0640 got it.
Kindly check this here is an endpoint for webhook

Is this line "const valid = safepay.verify.webhook(request)" correct? because I am getting error in this line.
here is subscription api

@hiraaziz hey can you please share two things with me:

the request json object that you are trying to verify
the error that you receive in your catch while verifying the request

This is url : https://295plan.vercel.app/payment
I have set trial period to 0 , now when I subscribe it says incomplete status

this is error :

This is request json :
NextRequest [Request] {
[Symbol(realm)]: {
settingsObject: { baseUrl: undefined, origin: [Getter], policyContainer: [Object] }
},
[Symbol(state)]: {
method: 'POST',
localURLsOnly: false,
unsafeRequest: false,
body: { stream: undefined, source: null, length: null },
client: { baseUrl: undefined, origin: [Getter], policyContainer: [Object] },
reservedClient: null,
replacesClientId: '',
window: 'client',
keepalive: false,
serviceWorkers: 'all',
initiator: '',
destination: '',
priority: null,
origin: 'client',
policyContainer: 'client',
referrer: 'client',
referrerPolicy: '',
mode: 'cors',
useCORSPreflightFlag: true,
credentials: 'same-origin',
useCredentials: false,
cache: 'default',
redirect: 'follow',
integrity: '',
cryptoGraphicsNonceMetadata: '',
parserMetadata: '',
reloadNavigation: false,
historyNavigation: false,
userActivation: false,
taintedOrigin: false,
redirectCount: 0,
responseTainting: 'basic',
preventNoCacheCacheControlHeaderModification: false,
done: false,
timingAllowFailed: false,
headersList: HeadersList {
cookies: null,
[Symbol(headers map)]: [Map],
[Symbol(headers map sorted)]: [Array]
},
urlList: [ [URL] ],
url: URL {
href: 'https://295plan.vercel.app/api/webhooks',
origin: 'https://295plan.vercel.app',
protocol: 'https:',
username: '',
password: '',
host: '295plan.vercel.app',
hostname: '295plan.vercel.app',
port: '',
pathname: '/api/webhooks',
search: '',
searchParams: URLSearchParams {},
hash: ''
}
},
[Symbol(signal)]: AbortSignal { aborted: false },
[Symbol(abortController)]: AbortController { signal: AbortSignal { aborted: false } },
[Symbol(headers)]: HeadersList {
cookies: null,
[Symbol(headers map)]: Map(28) {
'accept' => [Object],
'accept-encoding' => [Object],
'connection' => [Object],
'content-length' => [Object],
'content-type' => [Object],
'forwarded' => [Object],
'host' => [Object],
'user-agent' => [Object],
'x-forwarded-for' => [Object],
'x-forwarded-host' => [Object],
'x-forwarded-proto' => [Object],
'x-matched-path' => [Object],
'x-real-ip' => [Object],
'x-sfpy-signature' => [Object],
'x-vercel-deployment-url' => [Object],
'x-vercel-forwarded-for' => [Object],
'x-vercel-id' => [Object],
'x-vercel-ip-country' => [Object],
'x-vercel-ip-country-region' => [Object],
'x-vercel-ip-latitude' => [Object],
'x-vercel-ip-longitude' => [Object],
'x-vercel-ip-timezone' => [Object],
'x-vercel-proxied-for' => [Object],
'x-vercel-proxy-signature' => [Object],
'x-vercel-proxy-signature-ts' => [Object],
'x-vercel-sc-basepath' => [Object],
'x-vercel-sc-headers' => [Object],
'x-vercel-sc-host' => [Object]
},
[Symbol(headers map sorted)]: [
[Array], [Array], [Array],
[Array], [Array], [Array],
[Array], [Array], [Array],
[Array], [Array], [Array],
[Array], [Array], [Array],
[Array], [Array], [Array],
[Array], [Array], [Array],
[Array], [Array], [Array],
[Array], [Array], [Array],
[Array]
]
},
[Symbol(internal request)]: {
cookies: RequestCookies { _parsed: Map(0) {}, _headers: [HeadersList] },
geo: {},
ip: undefined,
nextUrl: NextURL { [Symbol(NextURLInternal)]: [Object] },
url: 'https://295plan.vercel.app/api/webhooks'
}
}
Error:
Error processing webhook: TypeError [ERR_INVALID_ARG_TYPE]: The first argument must be of type string or an instance of Buffer, ArrayBuffer, or Array or an Array-like Object. Received undefined
at new NodeError (node:internal/errors:405:5)
at Function.from (node:buffer:333:9)
at Verify.webhook (/var/task/.next/server/chunks/2152.js:769:27)
at POST (/var/task/.next/server/app/api/webhooks/route.js:129:38)
at /var/task/.next/server/chunks/5501.js:5294:43
at /var/task/.next/server/chunks/5501.js:6161:36
at NoopContextManager.with (/var/task/.next/server/chunks/5501.js:583:30)
at ContextAPI.with (/var/task/.next/server/chunks/5501.js:253:58)
at NoopTracer.startActiveSpan (/var/task/.next/server/chunks/5501.js:1176:34)
at ProxyTracer.startActiveSpan (/var/task/.next/server/chunks/5501.js:1216:36) {
code: 'ERR_INVALID_ARG_TYPE'
}

hey @hiraaziz please bear with me while I am trying to see on my side why you are getting this error. will get back to you as soon as I can

hey @hiraaziz i looked into the issue and i think you need to parse your request object like this since you are using Next:
const body = await request.json();
can you please do this and share with me what you get? or is this how you are already doing it?
here's the source for this solution: https://github.com/vercel/next.js/discussions/46483


Field siblings

Codecov Report

Merging #35 into master will increase coverage by <.01%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master      #35      +/-   ##
==========================================
+ Coverage   99.84%   99.84%   +<.01%
==========================================
  Files          47       47
  Lines        1264     1273       +9
  Branches      162      165       +3
==========================================
+ Hits         1262     1271       +9
  Partials        2        2

Impacted Files
Coverage Δ

src/dsl/Field.ts
100% <100%> (ø)
:arrow_up:

src/doov.ts
100% <100%> (ø)
:arrow_up:

src/dsl/meta/FieldMetadata.ts
100% <100%> (ø)
:arrow_up:

Continue to review full report at Codecov.

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


Usage with API?

I just watched a YouTube video where you briefly discussed AddFeatureFolders and it piqued my interest.
Can it be used for an API written using .NET Core?
Sorry for my ignorance, I'm just starting to learn .NET Core and MVC/APIs in general.

Do you mean ASP.NET Web API? If so then yes you can.

Yes, in fact you don't even need this package. This package helps ASP.NET Core locate the views associated with a controller. API controllers typically won't use a view engine, and the API controllers can be placed into whatever folder structure you desire.


Error: EEXIST: File exists

I am unable to start the program on my Arch system:
$ scd
Error: EEXIST: File exists

Doing
scd fish-init | source

gives no output. I am also not able to abort the application with q or CTRL+C
EDIT: Similar issue: https://www.reddit.com/r/rust/comments/gasc1f/i_wrote_a_file_manager_that_syncs_its_current/fp2fuv4/

bump, this happens for me too.

rm /tmp/{scd-cmds-to-run,scd-shell-event}

It try to create this two FIFOs, but it exists. These two files are used to communicate to the shell, and should be deleted when exiting. However if program crashes, these files are kept and preventing next start.

@cshuaimin The fix is not on crates.io is it?
Tried to update using cargo install scd but the issue is still present.

Yes.
There are still some bugs, when get fixed, I will update to crates.io.

@Nuc1eoN 0.1.1 published to crates.io now!


⚠ Bofrost.at has degraded performance

In be4cc5c, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 2827 ms

Resolved: Bofrost.at performance has improved in ac129ac.


Configure metrics in the data view - Sends schema element not correct

Issue in ./help/integrations/ajo.md
In the "Configure metrics in the data view" table, the "Sends" schema element is not correct. The right one is: _experience.customerJourneyManagement.messageDeliveryfeedback.feedbackStatus
Can you please update the doc?

This is corrected. Thank you!


Is it possibe to pass a static list of items to pick from?

I was trying to follow some of your examples but instead of having a command that would generate the list, have a static list of values to send in.
One example is a download to select a color scheme to apply. I tried the following config but it did not work:
local status_ok, easypick = pcall(require, 'easypick')
if not status_ok then
  return
end

local supported_color_scheme = {
  'Darktheme',
  'SimpleThme',
  'AnotherThme',
}

easypick.setup({
  pickers = {
    {
      name = 'ColorScheme',
      values = supported_color_scheme,
      action = easypick.actions.nvim_command('FloatermNew colorscheme'),
      opts = require('telescope.themes').get_dropdown({}),
    },
  },
})

Hello! It is possible indeed, but not quite this way 😄
Easypick does not accept a "values" opt, as you are doing in your example. Instead it has to be done through the "command" opt.
The wiki has an example for exactly this scenario.
-- a list of commands that you want to pick from
local list = [[
<< EOF
Darktheme
SimpleThme
AnotherThme
EOF
]]

easypick.setup({
  pickers = {
    {
      name = "colorscheme",
      command = "cat " .. list,
      action = easypick.actions.nvim_command("colorscheme"),
      opts = require('telescope.themes').get_dropdown({})
    }
  }
})

I removed the 'FloatermNew' from the prefix, since it seems to me you just want to call the builtin coloscheme command and not call "colorscheme" in the shell in a new floating terminal window.

@axkirillov , awesome. Thank you for the example and details. This is exactly what I was looking for.


Add ThreadLocalData support

Add ThreadLocalData support

Implementation in 2ba21ca is working in ubuntu 14.04(3.13.0-32-generic).
I will test it in kernel 2.6


Deletion of VPC/Subnet/Endpoints

I think we need to plan to fill out this gap. It has been a while. @er1cthe0ne

yes, we need to implement deletion of endpoint in ACA. I will look into it.
ACA only track ports but not VPC/Subnet creation/deletion. Therefore, it doesn't need to worry about VPC/Subnet create/delete.

Correct, this issue was created previously for E2E scenarios, and it seems VPC/Subnet deletion has been covered.

Correct, this issue was created previously for E2E scenarios, and it seems VPC/Subnet deletion has been covered.

yes, the ACA port delete/update is also tracked by below, I have raised the priority on it.
https://github.com/futurewei-cloud/alcor-control-agent/issues/115

Correct, this issue was created previously for E2E scenarios, and it seems VPC/Subnet deletion has been covered.

yes, the ACA port delete/update is also tracked by below, I have raised the priority on it.
futurewei-cloud/alcor-control-agent#115

Awesome 👍

@haboy52581 - please review the DPM related confirmation with the latest discription above.


Requirements for the environment

Thanks for sharing your wonderful work. When I tried to run the code, it threw errors due to dependency conflicts of packages' versions: omegaconf, fairseq, hydra-core, and mlconfig. Could you please provide the requirements.txt for setting up the environment?  Thanks.

Hi,
Thanks for your interest in our work.
If you are interested in using the Cognitive Distillation, it can be used as a standalone tool (with PyTorch as a dependency). https://github.com/HanxunH/CognitiveDistillation/blob/main/detection/cognitive_distillation.py
If you are interested in reproducing the results from the paper, mlconfig==0.1.0 is needed along with other packages stated here: https://github.com/HanxunH/CognitiveDistillation/blob/main/requirements.txt

Thanks for sharing your wonderful work. When I tried to run the code, it threw errors due to dependency conflicts of packages' versions: omegaconf, fairseq, hydra-core, and mlconfig. Could you please provide the requirements.txt for setting up the environment? Thanks.
I'm not sure where the conflict came from. I did not use any except for the mlconfig, but if it is the mlconfig, feel free to remove it and use hard code or argparse to configure the experiments.

Thanks for sharing your wonderful work. When I tried to run the code, it threw errors due to dependency conflicts of packages' versions: omegaconf, fairseq, hydra-core, and mlconfig. Could you please provide the requirements.txt for setting up the environment? Thanks.


Remove ruby 2.7 from the CI workflow

Due to the change in template-gem in the end of 2022, the support for Ruby 2.7 was dropped - https://github.com/dry-rb/template-gem/commit/ebec158cbbd97e0cb3200acfdc299ef622b5cca0
I'm removing here the references to Ruby 2.7 in the CI config. It is responsible for some failures in CI jobs in last weeks.
I've left one reference in .github/workflows/custom/ci.yml, because I don't know what is this flow and if it's even used.

Based on the comment from @solnic - https://github.com/dry-rb/dry-validation/pull/723#issuecomment-1380085203, I'm closing this one.


docker-compose for Lychee

I have docker-compose working with Lychee and I'm wondering if anyone else would be interested in using this?
Why would someone want this?

It allows for a persistent Lychee app backed by on disk storage and served with docker.
It is fairly simple to get going (after getting Lycee and docker-compose) docker-compse up

I'm opting to use 2 separate containers (server and db) that use the official PHP and MariaDB containers from the Docker hub.
docker-compose can take care of the container linking, sets up the storage location.
If this is something someone else would be interested i can cleanup what I have on my fork of Lychee and submit patches git@github.com:isntall/Lychee.git branch docker-compose
I could even have Apache2 or NGINX options, possibly.

I also run Lychee in a two container environment instead of a dedicated db+apache container, the docker-compose.yml is trivial, nevertheless should be added to the already existing docker information, so I vote :+1:
What's even more interesting to me is how you brought your pure Lyche container up to speed. I wrote a separate Dockerfile and include a php.ini instead of modifiyng it inside the Dockerfile. My extra is, that I changed the apache-user to me (the user on the host machine) to be able to modify Lychee files seamlessly. I must say I like the idea of not using apache as it's doesn't fit as an PHP-Server any more, lighttpd/NGINX are preferable.
docker-compose.yml
web:
  build: lychee-php
  ports:
   - 81:80
  volumes:
   - ./code:/var/www/html/
  links:
    - db:mysql
db:
  image: mariadb:5.5
  environment:
    MYSQL_ROOT_PASSWORD: $WHATEVER$
  volumes:
    - ./data:/var/lib/mysql

Dockerfile
FROM php:5.4-apache

RUN groupadd -g 1000 -r $LOCAL_USER && \
    useradd -u 1000 -r --create-home -g $LOCAL_USER $LOCAL_USER &&
    sed -i \
        -e "s/^User www-data/User $LOCAL_USER/" \
        -e "s/^Group www-data/User $LOCAL_USER/" \
        /etc/apache2/apache2.conf

COPY ./php.ini /usr/local/etc/php/

RUN apt-get -y update && apt-get install -y \
  zlib1g-dev \
  libpng12-dev \
  imagemagick && \
  docker-php-ext-install mysqli && \
  docker-php-ext-install gd && \
  docker-php-ext-install exif && \
  docker-php-ext-install mbstring

php.ini
log_errors = On
error_reporting = E_ALL
display_errors = On
html_errors = On
error_log = /var/log/php.log

max_execution_time = 200
post_max_size = 100M
upload_max_size = 100M
upload_max_filesize = 20M
memory_limit = 256M

I put together the php-fpm container and added a third container for NGINX into the docker-compose.yml

git@github.com:isntall/Lychee.git branch docker-compose_fpm

I kept the NGINX container separate since it only needed some conf changes and did not require a rebuild.
And changed the branch name of the Apache2 branch

git@github.com:isntall/Lychee.git branch docker-compose_mod-php

Both of these need more testing and I'm not sure which names make more since, but the worked in my quick tests. The Docker Hub descriptions will need to be written.

@HoffmannP I have added the ability to set the UID of the dir and files.
If you run
$ USERID=$UID docker-compose up
the dir and files will be chown'ed to $USERID:www-data
I've only tested this on docker-compose version: 1.5.0rc1
If the USERID variable is not set or can not be set, the files are chown'ed to www-data by default.

The Dockerfile has been removed. I added a new section to the readme which links to some great alternatives. Feel free to fork and improve the repo provided by @kdelfour: https://github.com/kdelfour/lychee-docker


Add InReview column before Done

In our flow we usually open a PR when dev is done and wait for review before merging (take between 0 to 2 days usually).
We usually add the 'Fixes #xxx ' to the PR description, resulting in this in the targeted issue:
XXX referenced a pull request that will close this issue 1 hour ago
Maybe it could be possible to detect this and move the issue to in review?

Thanks for the feedback! Assuming we could detect in review state this way, where would you expect to see it? Are you thinking the plan view would show "(in review)" next to those issues similar to ones labelled "(in progress)" and "(done)"?