Partials are not properly taken into account when finding cycles

Consider the following code:
let l = []
let Pt = function('string', [l])
call add(l, Pt)
unlet l
unlet Pt
call garbagecollect(1)

In this case partial Pt is referenced inside l, so unlet Pt will not free it. unlet l will not free l because it is referenced in Pt. But when searching for cycles it will find “unreferenced” list l which contains reference to Pt which contains reference to l, so as the result you will see double free. Valgrind report for
valgrind --leak-check=full --read-var-info=yes --track-origins=yes --num-callers=50 --trace-children=no --log-file=valgrind.log --tool=memcheck ../vim -u NONE -i NONE -N -c 'let l=[]' -c 'let Pt=function("string", [l])' -c 'call add(l, Pt)' -c 'unlet l' -c 'unlet Pt' -c 'call garbagecollect(1)'
:qa<CR>

below
==15174== Memcheck, a memory error detector
==15174== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
==15174== Using Valgrind-3.11.0 and LibVEX; rerun with -h for copyright info
==15174== Command: ../vim -u NONE -i NONE -N -c let\ l=[] -c let\ Pt=function("string",\ [l]) -c call\ add(l,\ Pt) -c unlet\ l -c unlet\ Pt -c call\ garbagecollect(1)
==15174== Parent PID: 21419
==15174==

parse DIE(readdwarf3.c:3651): confused by:
 <2><268b>: Abbrev Number: 26 (DW_TAG_subrange_type)
     DW_AT_type        : <2692>
     DW_AT_count       : 64
parse_type_DIE:
--15174-- WARNING: Serious error when reading debug info
--15174-- When reading debug info from /home/zyx/a.a/Proj/c/vim/src/vim:
--15174-- confused by the above DIE
==15174== Invalid read of size 8
==15174==    at 0x483CE8: list_free (eval.c:6044)
==15174==    by 0x484CC8: free_unref_items (eval.c:7022)
==15174==    by 0x47AC03: garbage_collect (eval.c:6950)
==15174==    by 0x515431: vgetc (getchar.c:1574)
==15174==    by 0x517F4C: safe_vgetc (getchar.c:1801)
==15174==    by 0x57AA09: normal_cmd (normal.c:627)
==15174==    by 0x6EF55B: main_loop (main.c:1353)
==15174==    by 0x6EB85C: main (main.c:1045)
==15174==  Address 0x1059f330 is 0 bytes inside a block of size 88 free'd
==15174==    at 0x4C2B470: free (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==15174==    by 0x564AD3: vim_free (misc2.c:1695)
==15174==    by 0x483CFF: list_free (eval.c:6053)
==15174==    by 0x47A633: list_unref (eval.c:6022)
==15174==    by 0x47D7DA: clear_tv (eval.c:21955)
==15174==    by 0x484FAD: partial_free (eval.c:7199)
==15174==    by 0x484F61: partial_unref (eval.c:7216)
==15174==    by 0x47D7BC: clear_tv (eval.c:21951)
==15174==    by 0x483CD7: list_free (eval.c:6050)
==15174==    by 0x484CC8: free_unref_items (eval.c:7022)
==15174==    by 0x47AC03: garbage_collect (eval.c:6950)
==15174==    by 0x515431: vgetc (getchar.c:1574)
==15174==    by 0x517F4C: safe_vgetc (getchar.c:1801)
==15174==    by 0x57AA09: normal_cmd (normal.c:627)
==15174==    by 0x6EF55B: main_loop (main.c:1353)
==15174==    by 0x6EB85C: main (main.c:1045)
==15174==  Block was alloc'd at
==15174==    at 0x4C2A0B0: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==15174==    by 0x564320: lalloc (misc2.c:920)
==15174==    by 0x5644C7: alloc_clear (misc2.c:842)
==15174==    by 0x47A311: list_alloc (eval.c:5983)
==15174==    by 0x4AE86C: get_list_tv (eval.c:5921)
==15174==    by 0x4AD8B2: eval7 (eval.c:5162)
==15174==    by 0x4AD0CE: eval6 (eval.c:4889)
==15174==    by 0x4ACC44: eval5 (eval.c:4705)
==15174==    by 0x4ABEEA: eval4 (eval.c:4412)
==15174==    by 0x4ABCC9: eval3 (eval.c:4327)
==15174==    by 0x4ABAB9: eval2 (eval.c:4259)
==15174==    by 0x47D9E2: eval1 (eval.c:4187)
==15174==    by 0x47D4B3: eval0 (eval.c:4147)
==15174==    by 0x47F640: ex_let (eval.c:1956)
==15174==    by 0x4D12F6: do_one_cmd (ex_docmd.c:2921)
==15174==    by 0x4CCB0D: do_cmdline (ex_docmd.c:1107)
==15174==    by 0x4CD9B5: do_cmdline_cmd (ex_docmd.c:712)
==15174==    by 0x6EEBC7: exe_commands (main.c:2927)
==15174==    by 0x6EB65D: main (main.c:955)
==15174==
==15174== Invalid free() / delete / delete[] / realloc()
==15174==    at 0x4C2B470: free (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==15174==    by 0x564AD3: vim_free (misc2.c:1695)
==15174==    by 0x483CFF: list_free (eval.c:6053)
==15174==    by 0x484CC8: free_unref_items (eval.c:7022)
==15174==    by 0x47AC03: garbage_collect (eval.c:6950)
==15174==    by 0x515431: vgetc (getchar.c:1574)
==15174==    by 0x517F4C: safe_vgetc (getchar.c:1801)
==15174==    by 0x57AA09: normal_cmd (normal.c:627)
==15174==    by 0x6EF55B: main_loop (main.c:1353)
==15174==    by 0x6EB85C: main (main.c:1045)
==15174==  Address 0x1059f330 is 0 bytes inside a block of size 88 free'd
==15174==    at 0x4C2B470: free (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==15174==    by 0x564AD3: vim_free (misc2.c:1695)
==15174==    by 0x483CFF: list_free (eval.c:6053)
==15174==    by 0x47A633: list_unref (eval.c:6022)
==15174==    by 0x47D7DA: clear_tv (eval.c:21955)
==15174==    by 0x484FAD: partial_free (eval.c:7199)
==15174==    by 0x484F61: partial_unref (eval.c:7216)
==15174==    by 0x47D7BC: clear_tv (eval.c:21951)
==15174==    by 0x483CD7: list_free (eval.c:6050)
==15174==    by 0x484CC8: free_unref_items (eval.c:7022)
==15174==    by 0x47AC03: garbage_collect (eval.c:6950)
==15174==    by 0x515431: vgetc (getchar.c:1574)
==15174==    by 0x517F4C: safe_vgetc (getchar.c:1801)
==15174==    by 0x57AA09: normal_cmd (normal.c:627)
==15174==    by 0x6EF55B: main_loop (main.c:1353)
==15174==    by 0x6EB85C: main (main.c:1045)
==15174==  Block was alloc'd at
==15174==    at 0x4C2A0B0: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==15174==    by 0x564320: lalloc (misc2.c:920)
==15174==    by 0x5644C7: alloc_clear (misc2.c:842)
==15174==    by 0x47A311: list_alloc (eval.c:5983)
==15174==    by 0x4AE86C: get_list_tv (eval.c:5921)
==15174==    by 0x4AD8B2: eval7 (eval.c:5162)
==15174==    by 0x4AD0CE: eval6 (eval.c:4889)
==15174==    by 0x4ACC44: eval5 (eval.c:4705)
==15174==    by 0x4ABEEA: eval4 (eval.c:4412)
==15174==    by 0x4ABCC9: eval3 (eval.c:4327)
==15174==    by 0x4ABAB9: eval2 (eval.c:4259)
==15174==    by 0x47D9E2: eval1 (eval.c:4187)
==15174==    by 0x47D4B3: eval0 (eval.c:4147)
==15174==    by 0x47F640: ex_let (eval.c:1956)
==15174==    by 0x4D12F6: do_one_cmd (ex_docmd.c:2921)
==15174==    by 0x4CCB0D: do_cmdline (ex_docmd.c:1107)
==15174==    by 0x4CD9B5: do_cmdline_cmd (ex_docmd.c:712)
==15174==    by 0x6EEBC7: exe_commands (main.c:2927)
==15174==    by 0x6EB65D: main (main.c:955)
==15174==
==15174==
<leak report skipped>
==15174==
==15174== For counts of detected and suppressed errors, rerun with: -v
==15174== ERROR SUMMARY: 23 errors from 23 contexts (suppressed: 0 from 0)

This is vim-7.4.1646 (with my patch to make vim.Function create a partial, but it did not touch the relevant code), but AFAIK there were no fixes. One needs to treat partial like any other container. I accidentally hit the similar bug when creating my vim.Function tests: partials must be stored in a linked list like any other container and when freeing lists, dictionaries or partials with second argument FALSE lists dictionaries and partials must not be freed, not only lists and dictionaries; same in partial_free where second argument needs to be recurse as well. Currently only dict_free has some special code for partials, but it is not a correct code because it only handles pt_dict specially:
let d = {}
let Pt = function('string', [d])
let d.Pt = Pt
unlet d
unlet Pt
call garbagecollect(1)

yields absolutely the same bug.

Nikolai Pavlov wrote:

Consider the following code:
let l = []
let Pt = function('string', [l])
call add(l, Pt)
unlet l
unlet Pt
call garbagecollect(1)

In this case partial Pt is referenced inside l, so unlet Pt will not free it. unlet l will not free l because it is referenced in Pt. But when searching for cycles it will find “unreferenced” list l which contains reference to Pt which contains reference to l, so as the result you will see double free. Valgrind report for
valgrind --leak-check=full --read-var-info=yes --track-origins=yes --num-callers=50 --trace-children=no --log-file=valgrind.log --tool=memcheck ../vim -u NONE -i NONE -N -c 'let l=[]' -c 'let Pt=function("string", [l])' -c 'call add(l, Pt)' -c 'unlet l' -c 'unlet Pt' -c 'call garbagecollect(1)'
:qa<CR>

below

Thanks for reporting.

This is vim-7.4.1646 (with my patch to make vim.Function create a
partial, but it did not touch the relevant code), but AFAIK there were
no fixes. One needs to treat partial like any other container. I
accidentally hit the similar bug when creating my vim.Function tests:
partials must be stored in a linked list like any other container and
when freeing lists, dictionaries or partials with second argument
FALSE lists dictionaries and partials must not be freed, not only
lists and dictionaries; same in partial_free where second argument
needs to be recurse as well. Currently only dict_free has some
special code for partials, but it is not a correct code because it
only handles pt_dict specially:
let d = {}
let Pt = function('string', [d])
let d.Pt = Pt
unlet d
unlet Pt
call garbagecollect(1)

yields absolutely the same bug.

I thought I fixed this, but apparently there is still something wrong.
--
hundred-and-one symptoms of being an internet addict:
235. You start naming your kids Pascal, COBOL, Algol and Fortran.
/// Bram Moolenaar --<EMAIL_ADDRESS>-- http://www.Moolenaar.net   \
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \
\\  an exciting new programming language -- http://www.Zimbu.org        ///
\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

closed by 7.4.1715


fix: update to eye v10.2.21

fix: update to eye v10.2.21

:tada: This PR is included in version 16.0.9 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release
v16.0.9

Your semantic-release bot :package::rocket:


add fusion for forward Narrow

This removes the copy associated with an nn.Narrow in the forward direction.
This reduces char-rnn iteration time on an NVIDIA 940M and 5200U proc:

cutorch: 0.13s => 0.12s
cltorch: 0.27s => 0.26s
cpu: 3.5s => 3.0s

Notes:

It is true that in the specific this particular optimization could be done by modifying the nn.Narrow to have an inplace option.  However, I'd like to add a backwards fusion in the future somehow, which almost certainly could not be done inside the nn.Narrow module, could only be done using knowledge of upstream modules at nngraph level.
putting this inside gModule.lua is almost certainly the wrong place to put this.  But in the generic, these optimizations cannot be done inside the nn modules, since they dont have knowledge of their up/downstream module
arguably I could make this specific change for now by adding an inplace option to nn.Narrow, and then discuss backwards fusion at such a time as it exists?

I would prefer going with the 3rd option right now. Doing optimizations over the graph is something that we know has to be done at some point, but I think putting module specific code into gModule is not the best way to do it. We could also start writing an optimization lib inside(or outside) nngraph that could implement many reductions. But right now, can you put inplace option into narrow? Also, the speed-ups would be generic and anyone using nn.Narrow even outside nngraph would see the benefits.

Ok, let's discuss once backwards shortcircuiting/fusion is working, because backwards cannot be implemented inside nn.


scopes in list view not work with RA 0.6.6

undefined method `each' for nil:NilClass
Showing /Users/xxxx/MyHomeCloud/Dev/MyApp/app/views/rails_admin/main/index.html.haml where line 128 raised:

Any news on this one? Mine doesn't work either with v0.6.5. The scopes array is simply ignored and the tabs just don't show up. I'm using Ruby 2.1.5 and Rails 4.1.8.


Uncaught Error: Encountered an invalid scope end id. Popped -3, expected to pop -95.

[Enter steps to reproduce below:]

...
...

Atom Version: 0.204.0
System: Mac OS X 10.10.3
Thrown From: Atom Core
Stack Trace
Uncaught Error: Encountered an invalid scope end id. Popped -3, expected to pop -95.
At /Applications/Atom.app/Contents/Resources/app.asar/node_modules/text-buffer/lib/text-buffer.js:755

Error: Encountered an invalid scope end id. Popped -3, expected to pop -95.
    at TokenizedBuffer.module.exports.TokenizedBuffer.scopesFromTags (/Applications/Atom.app/Contents/Resources/app.asar/src/tokenized-buffer.js:573:21)
    at TokenizedBuffer.module.exports.TokenizedBuffer.openScopesForRow (/Applications/Atom.app/Contents/Resources/app.asar/src/tokenized-buffer.js:555:21)
    at TokenizedBuffer.module.exports.TokenizedBuffer.handleBufferChange (/Applications/Atom.app/Contents/Resources/app.asar/src/tokenized-buffer.js:369:113)
    at /Applications/Atom.app/Contents/Resources/app.asar/src/tokenized-buffer.js:62:24
    at Emitter.module.exports.Emitter.emit (/Applications/Atom.app/Contents/Resources/app.asar/node_modules/event-kit/lib/emitter.js:82:11)
    at TextBuffer.module.exports.TextBuffer.applyChange (/Applications/Atom.app/Contents/Resources/app.asar/node_modules/text-buffer/lib/text-buffer.js:624:20)
    at TextBuffer.module.exports.TextBuffer.revertToCheckpoint (/Applications/Atom.app/Contents/Resources/app.asar/node_modules/text-buffer/lib/text-buffer.js:789:16)
    at TextBuffer.module.exports.TextBuffer.transact (/Applications/Atom.app/Contents/Resources/app.asar/node_modules/text-buffer/lib/text-buffer.js:753:14)
    at TextEditor.module.exports.TextEditor.transact (/Applications/Atom.app/Contents/Resources/app.asar/src/text-editor.js:1136:26)
    at TextEditor.module.exports.TextEditor.moveLineUp (/Applications/Atom.app/Contents/Resources/app.asar/src/text-editor.js:793:19)

Commands
     -1:26.3.0 core:move-right (atom-text-editor.editor.is-focused)
  2x -1:24.4.0 core:move-down (atom-text-editor.editor.is-focused)
  2x -1:22.4.0 core:select-up (atom-text-editor.editor.is-focused)
     -1:20.7.0 core:move-up (atom-text-editor.editor.is-focused)
     -1:20 core:move-right (atom-text-editor.editor.is-focused)
     -1:19.5.0 core:move-down (atom-text-editor.editor.is-focused)
     -1:19.1.0 core:move-right (atom-text-editor.editor.is-focused)
     -1:18.3.0 editor:newline (atom-text-editor.editor.is-focused)
     -1:11.5.0 core:backspace (atom-text-editor.editor.is-focused.autocomplete-active)
     -1:07.3.0 editor:newline (atom-text-editor.editor.is-focused.autocomplete-active)
  3x -0:53.3.0 core:backspace (atom-text-editor.editor.is-focused.autocomplete-active)
     -0:46.6.0 core:save (atom-text-editor.editor.is-focused)
     -0:14.1.0 editor:newline (atom-text-editor.editor.is-focused)
     -0:12.1.0 core:paste (atom-text-editor.editor.is-focused.autocomplete-active)
     -0:10.4.0 editor:newline (atom-text-editor.editor.is-focused)
  3x -0:02.7.0 editor:move-line-up (atom-text-editor.editor.is-focused)

Config
{
  "core": {
    "themes": [
      "one-dark-ui",
      "one-dark-syntax"
    ],
    "disabledPackages": [
      "atom-color-highlight"
    ]
  },
  "editor": {
    "invisibles": {},
    "fontSize": 11,
    "showIndentGuide": true,
    "showInvisibles": true
  }
}

Installed Packages
# User
Sublime-Style-Column-Selection, v1.3.0
atom-yamljson, v0.2.3
autocomplete-paths, v1.0.2
color-picker, v1.6.0
local-server-express, v0.3.1
show-ideographic-space, v0.1.7

# Dev
No dev packages

Thanks for the report, @ue5963 -- I think this is a duplicate of https://github.com/atom/atom/issues/7012. /cc @nathansobo to double-check

@izuzak This is an assertion that can fail in a variety of cases. I hope I got the last one in #7012 but I might not have. Even so, might make sense to keep this closed and see if any more crop up after the release.
@ue5963 What language were you editing at the time?


docs: Add upgrade operation.

This commit adds a chapter about the ceph upgrade process.
Closes: #5393
Signed-off-by: Dimitri Savineau<EMAIL_ADDRESS>

jenkins test docs


Update ITI TF-1:  Figure 10.7.1-1

Suggestion to update Figure 10.7.1-1: Example Security Domain Relationships in ITI TF-1. The current drawing looks outdated and has several spelling errors.
An updated version has been created (by Chris Carr) and is attached here as a png. The original version is available at  https://docs.google.com/drawings/d/1Kfx289E4PL0k_Fh9IngPyplwThFoBUb9jsrsbNfcO4A/edit

Figure_10.7.1-1 (updated).pptx


Default value for "host" is unreasonable

Describe the bug
The default value for mmSetCliOption("host", "tcp://*:33333") is the loopback adapter. It is unreasonable that the remote console is bound to the loopback adapter by default.
To Reproduce
Steps to reproduce the behavior:

Start MegaMol
Run netstat -ano
See that the console is bound to <IP_ADDRESS>:3333

Expected behavior
The remote console should be bound to the any address in order to allow for remote access.
Environment

Windows 10
NVIDIA GeForce RTX 3090 Ti

With #1157 now at least the host config is within the default config file and could be easily edited. Changing the default to accept any remote connection is probably very bad from security perspectives. At least until somebody implements authentication on the remote console.


Stats are very basic

Currently, the stats recorded are super duper basic, and the API for tracking events is also very basic.
Some improvements could be made, but not sure what exactly.

Fixed in 9b99a3db63f7153f1fb0c38e2f89c930b495077c


⚠ SceneTime has degraded performance

In 74b6e49, SceneTime ($ST) experienced degraded performance:

HTTP code: 200
Response time: 4837 ms

Resolved: SceneTime performance has improved in 5ac78a0 after 6 minutes.


Add a BinaryExceptionClassifier (spring-retry) to SeekToCurrentErrorHandler

Skip retrying for specified exceptions (e.g. DeserializationException).

I just realized there is a problem - we still need to do the seeks after recovering the fatal record.
Will work on it tomorrow...


Method calls using :: instead of . are not recognized

Ruby version: ruby 2.5.3p105 (2018-10-18 revision 65156) [x86_64-darwin18]
Rubyfmt git sha: 05f7b5b0eb1a9192a034468acc99e9cbf1a00906

Input file
Nokogiri::XML "<p>"

Rubyfmt's output
Traceback (most recent call last):
  9: from ./src/rubyfmt.rb:2444:in `<main>'
  8: from ./src/rubyfmt.rb:2441:in `main'
  7: from ./src/rubyfmt.rb:2286:in `format_program'
  6: from ./src/rubyfmt.rb:2286:in `each'
  5: from ./src/rubyfmt.rb:2287:in `block in format_program'
  4: from ./src/rubyfmt.rb:2280:in `format_expression'
  3: from ./src/rubyfmt.rb:2218:in `block in format_expression'
  2: from ./src/rubyfmt.rb:1053:in `format_command_call'
  1: from ./src/rubyfmt.rb:172:in `with_start_of_line'
./src/rubyfmt.rb:1055:in `block in format_command_call': got something other than a dot (RuntimeError)

This breaks because
Method calls using :: instead of . are not recognized by rubyfmt.

huh, I thought I fixed this one.

oh wait, all caps function, NM


udf docker

What type of PR is this：

[ ] BugFix
[ ] Feature
[ ] Enhancement
[ ] Refactor
[ ] UT
[ ] Doc
[ ] Tool

Which issues of this PR fixes ：

Fixes #
Problem Summary(Required) ：

Checklist:

[ ] I have added test cases for my bug fix or my new feature
[ ] This pr will affect users' behaviors
[ ] This pr needs user documentation (for new or modified features or behaviors)

[ ] I have added documentation for my new feature or new function

Bugfix cherry-pick branch check:

[ ] I have checked the version labels which the pr will be auto backported to target branch

[ ] 2.5
[ ] 2.4
[ ] 2.3
[ ] 2.2

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.1 out of 2 committers have signed the CLA.:white_check_mark: dengliu:x: fenganliYou have signed the CLA already but the status is still pending? Let us recheck it.


ion-button should have type="button" attribute to avoid clicking it when intro key is pressed

Short description of the problem:
ion-button should have type="button" attribute to avoid clicking it when intro key is pressed.
Look at this example:
<form>
  <ion-list>
    <ion-item>
      <ion-label>Name</ion-label>
      <ion-input [(ngModel)]="data.name" formControlName="name" type="text"></ion-input>
    </ion-item>
    <ion-item>
      <ion-label>Upload a photo</ion-label>
      <button ion-button color="dark" (click)="takePhoto()" block>Take photo</button>
    </ion-item>
  </ion-list>
</form>

After clicking in the name input, a keyboard appears. If click in the "intro" key, automatically takePhoto() method is called.
What behavior are you expecting?
After pressing the "intro" key, no clicking in any button, except if the next form field button have a "submit" type.
Other information:
The reason is that for the browser, a <button>Click me</button> is implicitly a <button type="submit">Click me</button>, and this will trigger the button when the previous input field is finished (intro implies finish it).
So, by default, the ion-button attribute should put a type="button" attribute.
Which Ionic Version? 2.0-RC0
Run ionic info from terminal/cmd prompt: (paste output below)
Cordova CLI: 6.2.0
Gulp version:  CLI version 1.2.1
Gulp local:   Local version 3.9.1
Ionic Framework Version: 2.0.0-rc.0
Ionic CLI Version: 2.1.0
Ionic App Lib Version: 2.1.0-beta.1
OS: Distributor ID: Ubuntu Description: Ubuntu 15.10
Node Version: v4.4.7

After a second read, I think this is not an issue, because we have the total control of the <input>, so the developer himself should put the type="button" attribute. Sorry for the noise.

Is there a way to control this behavior in case the button is on a dialog like the ones generated by ?


Fix typo in the initially created OAuth 2 client's client ID

The client ID actually has a hyphen between the words example and client.

Good Catch! Thank you for fixing it!

You're welcome. :)


[5.9] Fix macOS build issues

macOS build failures currently block PRs against release/5.9 branch. These were fixed in main, but still need to be cherry-picked for the release branch.

@swift-ci test


Unified CLI binary and "transcrypt" functionality

Because it's easier to have all the things in one file and we will need
to decrypt and re-encrypt lots of values from time to time.

:+1:  looks good.  i think i'll remove the groovy cli tools entirely - thoughts?  i kept them around figuring java might be available in places where the go binaries weren't compatible yet, but that potential list seems miniscule.  Then we don't have to maintain two identical CLIs.


Adding overlayProps to the Dialog component in order to allow some cu…

It's a similar change I've on the merged PR (https://github.com/segmentio/evergreen/pull/640) but on the Dialog component at this time.
Currently the Overlay component - inside the Dialog - only have the following containerProps:
containerProps={{
   display: 'flex',
   alignItems: 'flex-start',
   justifyContent: 'center',
}}

So I added a new props called overlayProps in order to allow us to make more customisations with it.
So, in this way, we're going to keep the default values to containerProps and override or add more  when it's passed.

@mshwery Matt, if it's possible, please take a look on it :)

@mshwery Can you deploy it for me? We're needing it :)

Has this been deployed? I need to modify the zIndex on a Dialog and this would be very useful.

Has this been deployed? I need to modify the zIndex on a Dialog and this would be very useful.

Looks like this should be available as of v4.19.3 and above.

Looks like this should be available as of v4.19.3 and above.


Stall iterations in BiteOpt

I've checked your fix to stall iterations handling. If stall_iterations is a value 0,1,2,3 (in documentation), you have to multiply it by 64. Please fix this. This applies to Java version as well, not only Python.
Orig:
            if (stall_iterations > 0 && stallCount > stall_iterations*dim) {
                stop = 2;
                break;
            }

Fixed:
            if (stall_iterations > 0 && stallCount > stall_iterations*64*dim) {
                stop = 2;
                break;
            }

It would even be better this way:
if (stall_iterations > 0 && stallCount > stall_iterations128dim) {
stop = 2;
break;
}

Your proposed change should be consistent with the documentation:
stall_iterations : int, optional
    Terminate if stall_iterations stalled, Not used if <= 0

I agree that the parameter should be consistent between your C++ version and the Python wrapper.

If stall_iterations is a value 0,1,2,3 (in documentation),

To which documentation do you refer exactly?
stallcount is incremented for each function evaluation. So
one possibility to clarify things would be to rename the parameter
and remove any factor:
if (stall_evaluations > 0 && stallCount > stall_evaluations) {
Or, if the term "iteration" is defined for BiteOpt somewhere. and
it includes 64dim evaluations, then your proposal would fit.
Or is it 128dim evaluations?
Anyway, the default is that it is not used at all  (stall_iterations = 0) and we have to make sure,
that the user understands, what a configured value means.

It will be better to rename "stall_evaluations" to "stall_criterion" and use stallCount > stall_criterion*128*dim expression. The reason for defining it as a value from 0, 1, 2, 3 is that a direct stalling multiplier (128 or 64) depends on the method version. Previously, 64dims was adequate. Now 128dims is adequate. It will be easier for the user to just define e.g. stall_criterion=1 or stall_criterion=2. In biteopt_minimize function it's defined the same way (see stopc variable).

Thanks for the clarification. Will update both the java and the python version as suggested (version 1.3.32 will contain the fix).

Thanks!


Rename ModelObject methods containing the words 'serialize' and 'deserialize'

Replace 'serialize' with 'encode', and 'deserialize' with 'decode'.

Also:

Cleaned up unit tests and added several new ones
Removed public modifier throughout example app codebase.
Other minor cleanups

Closed in PR #16


Unknown provider: componentFactoryNamingConventions

Hello,
I use v0.1.0; and angular 1.5;
I have problems. When I try to run my app I got this error:
Error: [$injector:unpr] Unknown provider: componentFactoryNamingConventions
for v0.0.1 everything is ok.

Any chance of a quick jsfiddle to isolate the issue? Can use this setup as a base: https://jsfiddle.net/toddmotto/3yuax91m/

I found the cause.
I use Bower and I write "angular-component": "*";
but there is the same name of the module:
https://github.com/kennethlynne/angular-component


No mention of screencast event

Screencopy is mentioned but not screencast

lol it's called screencast, there is no screencoyp event

fixd

Thx


Gradle TAPI passes all client JVM system properties to build process

When a Gradle Tooling API client launches a task or builds a model, all system properties of the client's JVM are passed to the build evaluation process, including forked JVM executions (tests or any JavaExec).

Expected Behavior
TAPI client can control what system properties are set in the Gradle build.

Current Behavior
TAPI client has no control over set of system properties being passed to the Gradle build.

Context
IntelliJ IDEA has quite large number of system properties set. Some of them affect Gradle tasks, e.g. java.system.class.loader
more details in JetBrains tracker https://youtrack.jetbrains.com/issue/IDEA-271340

Steps to Reproduce

Your Environment

Build scan URL:

I've created a local prototype for defining a filter for system properties and the concept seems plausible. We can do the filtering on the provider side (i.e. in the target Gradle version): https://github.com/gradle/gradle/blob/84aa2a6b3042df33a34f9e076f8b884f095ca447/subprojects/launcher/src/main/java/org/gradle/tooling/internal/provider/DaemonBuildActionExecuter.java#L43

I'd expect TAPI to have something high-level, like BuildLauncher.setSystemProperties(Map<String, String> effectiveProperties) and these effectiveProperties to be used in https://github.com/gradle/gradle/blob/6ccf8a2cc74c8060992bd36189dec929143caed7/subprojects/launcher/src/main/java/org/gradle/launcher/daemon/configuration/DaemonParameters.java#L151 instead of System.getProperties()


Django 1.10 compability.

See issue 29…

See PR #33

I do not care which PR you use, but this needs fixing as per issue 29. I edited the code on master as of yesterday to create this PR.

It sure does need fixing, so we're all waiting @tabo for the merge of #33. Opening another PR isn't going to get the issue fixed sooner, especially when a previous PR is a more complete fix.

@tabo, so when can we expect support for 1.10?

@kierun ... broken recording here:
@BeOleg #33 Is pretty solid - we are running production with it and have only run into 1 issue with MoveNodeForm which has been merged into #33.
Unless this is adding new fixes - I think closing and supporting #33
Depending on your requirements and deployment setup, the safest way is to download a zip of #33 from https://github.com/fladi/django-treebeard/tree/django-1.10, bump the version number in setup.py (so something like heroku will realize the change) and reference in your requirements file like:
./deploy/requirements/django-treebeard-4.0.3unofficial.zip
@JoshAddington is correct - the more people running against and supporting #33, the more bugs will be found, the less PRs with overlap (suggest closing this one) the faster this can get merged when @tabo has availability.

Thanks for the PR, but #33 has already been merged.


Fix #218: Add ability to set page size

Q
A

Is bugfix?
❌

New feature?
✔

Breaks BC?
❌

TODO:

[ ] Is it correct place to implement it?
[ ] Implement URL generation and UI.
[ ] Add tests.


Options topic+sample update for 3.0

Fixes #13330
Fixes #13901
Internal Review Topic

Sample update to 3.0 confirmed working.
Is there anything new for Options 3.0 that we need to add?
Because there are so many sample links here, a versioned Options validation section for >=2.2, and no way to nest versions, I think we should go with three versions here:

3.0 with the Options validation section - reference the 3.0 sample
2.2 with the Options validation section - reference the 2.2 sample
2.1 without the Options validation section - reference the 2.2 sample

Nothing new for options in 3.0 I don't think, really other than some bug fixes which don't need documentation updates.
This PR is mostly about making the samples work right?  I couldn't really see any obvious things that require review, so I can sign off if if that's the case?

@HaoK ... that's correct. The new 3.0 sample runs fine. If you don't have any adds, I can call Rick for review.


Using the DNSCrypt proxy releases 2.0.45

Is it as simple as replacing the older SimpleDnsCrypt dnscrypt-proxy, with the newer 2.0.45?
https://github.com/DNSCrypt/dnscrypt-proxy/releases

I was wondering the same, but I think it is unlikely...
If I have spare time and energy, I will test it on VM

I was wondering the same, but I think it is unlikely...
If I have spare time and energy, I will test it on VM

Yeah the Dev seems to have disappeared nothing happening here for quite sometime

Yeah the Dev seems to have disappeared nothing happening here for quite sometime

As long as there are no breaking changes introduced by dnscrypt-proxy you can simply replace the included version with the latest release from Github. I have done this myself before when the update cycle was far behind and it worked without issues.

As long as there are no breaking changes introduced by dnscrypt-proxy you can simply replace the included version with the latest release from Github. I have done this myself before when the update cycle was far behind and it worked without issues.

Well there seems to be breaking changes ? As the blacklists have been changed

Well there seems to be breaking changes ? As the blacklists have been changed

After investigating the source it seems like the blacklist format is still supported in 2.0.45. It will however be replaced in the future when version 2.1.x releases, which would require an update of SimpleDNScrypt. For now there is a fallback mechanic for old configs in place so it should be safe to upgrade.

After investigating the source it seems like the blacklist format is still supported in 2.0.45. It will however be replaced in the future when version 2.1.x releases, which would require an update of SimpleDNScrypt. For now there is a fallback mechanic for old configs in place so it should be safe to upgrade.

April it will be 12 months since the last update. And the Dev seems to have disappeared very quite, seen no comments. Which brings its own drama as GUI devotee, soon if no updates, will have to migrate to the command line.

April it will be 12 months since the last update. And the Dev seems to have disappeared very quite, seen no comments. Which brings its own drama as GUI devotee, soon if no updates, will have to migrate to the command line.

April it will be 12 months since the last update. And the Dev seems to have disappeared very quite, seen no comments. Which brings its own drama as GUI devotee, soon if no updates, will have to migrate to the command line, versions?

I guess it is time to roll up your sleeves and install latest dnscrypt from command line. It doesn't seem too much of a headache...
https://github.com/DNSCrypt/dnscrypt-proxy/wiki/Installation-Windows

April it will be 12 months since the last update. And the Dev seems to have disappeared very quite, seen no comments. Which brings its own drama as GUI devotee, soon if no updates, will have to migrate to the command line, versions?

I guess it is time to roll up your sleeves and install latest dnscrypt from command line. It doesn't seem too much of a headache...
https://github.com/DNSCrypt/dnscrypt-proxy/wiki/Installation-Windows

I have more time again and am working on an update. Sorry for the delay!

I have more time again and am working on an update. Sorry for the delay!

I have more time again and am working on an update. Sorry for the delay!

Welcome back! Looking forward to your update.

I have more time again and am working on an update. Sorry for the delay!

Welcome back! Looking forward to your update.

How to Update dnscrypt-proxy to version 2.0.45:
https://github.com/bitbeans/SimpleDnsCrypt/issues/537#issuecomment-817123129

@bitbeans Any update on the coming update?

It seems you can no longer update SimpleDnsCrypt  dnscrypt-proxy? with https://github.com/DNSCrypt/dnscrypt-proxy/releases
https://github.com/bitbeans/SimpleDnsCrypt/issues/559
Abandoned project - A List of Alternatives? #559

I have created an unofficial 0.7.2 version for now in case anyone doesn't want to compile the code I created in #558 themselves. Please read the release notes carefully to prevent avoidable troubleshooting.


[BUG] Some aspects of demo import code from "libs" as opposed to the built dependencies.

:bug: Bug report
Current Behavior
There are a few examples where "demo" depends on code from the source libraries, as opposed to the built dependencies.
https://github.com/graycoreio/daffodil/blob/develop/apps/demo/src/app/modals/add-to-cart-notification/components/add-to-cart-notification/add-to-cart-notification.component.spec.ts
Expected Behavior
We should only ever depend on the compiled dependencies.
What is the motivation / use case for changing the behavior?
Other developers won't be able to repeat the same processes that we use, as they don't have source code in the same repo.

This was fixed at some point


Rewrite some sections of Connecting Databases for readability

Was reading your documentation and I noticed some style inconsistencies.
Opened this PR in the hopes that I can help y'all make your documentation a bit better.
I'm not really sure how you do external contributions to the manual, but let me know if there's anything I can do to get this merged.

 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.You have signed the CLA already but the status is still pending? Let us recheck it.

Hey @nathan-contino thanks for the PR, please sign the CLA so we can land this PR

@bartlomieju Strange, I think it lost my CLA signing when I changed primary email addresses on my GitHub account. Just re-signed, I'll check back in a little bit to make sure it's showing up. Sorry I didn't see this before!

Despite signing the CLA repeatedly, the CLA bot can't detect it because I signed this PR with an email address that no longer exists on my GitHub account.
Opened https://github.com/denoland/manual/pull/494 with a commit signed by an email address that still works.


small ML to guide the tool

you can add small ML to guide the tool like
tool will discover the target
then tool will detect interesting parameters like ?id=
then tool send to the parameter some requests by curl for get status code 500
then use automation like ghuari for exploit it

I was thinking about this as well but you really need an LLM spesifically rained for security testing as well as somewhere to host it and run it (which would require trmendous ammounts of GPU power). It will also make the process significantly slower as well.
Unless some cheap hosted security trained models arise , this seems extreme innefficient at the moment.


Refactor the code. Evaluate the need for classes

Will take my time and go through the code. Looking for unreadability, repetition, spaghetti, and chances to use classes.


React components not re-rendering

On /dash route, I have my component Dashboard.jsx running. The issue now comes in to play when a user creates or edit's a new post; the Component doesn't re-render. This seems to work fine on delete action, but that's about it. Let me know if we can meet up and you can see this on my computer and just work through it with me a lot faster than on your local machine.

This form is performing a GET request since you're never preventing the default action. That's why your state isn't persisting.
 <form onSubmit={(e) => this.props.addPost(e,this.state)} >
  <input type="text" name="title" placeholder="Title" value={this.state.title} onChange={this.handleChange} />
  <input type="text" name="description" placeholder="Description" value={this.state.description} onChange={this.handleChange} />
  <input type="text" name="url" placeholder="Image Url" value={this.state.url} onChange={this.handleChange} />
  <input type="submit" value="Create Post" />
</form>

You also need to bind your methods. An error is thrown after you make your POSt request since the methods are undefined.
this.getUserPosts = this.getUserPosts.bind(this);
this.addPost = this.addPost.bind(this);

Thanks Dom, It worked!


Show a graphical view of which path is expired

In the coin page, when user click on the coin for get details, it would be nice to show (by a graphical coloured tree by example) which path are available (green color) and a color scheme related to what time remain for path not yet available (also display remaining time?)

for clarifying the difference in my thought with #516:

(what i mean by 'graphical')

please forgive me my non artistic talent ^^

Hello @pythcoiner would love to jump on this.
Is this still open?

look like nobody not yet get into that, @darosior is someone assigned?

Hello @pythcoiner is there a defined block range that can be used to differentiate the color?

nothing defined, in my thought it was green for available path, red for not available , and a third color for soon available.
but i'm not the best person to ask about color, i'm color blind!

Removing the "Good first issue" as i actually don't think it's that trivial and needs some conceptual discussion first. Sorry for the confusion!


how to disable long press to start reorder gesture?

Is it possible to remove the 0.5s wait time for the long press gesture in order to have a "reorder mode always on" ?
The use case is when the implemented UI has a "reorder mode on/off" switch, when the reorder is off, the list has another long press action, then when it's on the user doesn't need the long press to start moving tiles for reordering, he simply drags.

Hi @ohdonpiano
We've addressed your request regarding the long press gesture. In the latest update, we've added a longPressDraggable flag. This allows you to disable the 0.5s wait time for the long press gesture, enabling an "always-on reorder mode" when needed.
Thank you for your valuable feedback. Please update to the latest version and let us know if you encounter any further issues or have additional suggestions.

awesome, thanks!


chore: ci to publish installer package to winget

Describe Your Changes

Fixes Issues

Closes #
Closes #

Self Checklist

[ ] Added relevant comments, esp in complex areas
[ ] Updated docs (for bug fixes / features)
[ ] Created issues for follow-up changes or refactoring needed

Closing - this is deprecated due to our decision to pursue a native installer
https://github.com/janhq/cortex.cpp/discussions/1114


doc improvements at package fixtures

Add documentation to package.
IMHO, either if it is just a fixtures package, public methods should be documented to ease the path of anybody trying to submit a tested feature.

Fixtures is moved to his own repository. Closing this issue and creating it again in fixtures repo.


run black on ./python

Looping both of you in case either oppose.
This PR adds black to our work flow as detailed in #85.

Yes, I am in favor of this.

Thanks for having a look over this.
I think adding some formatting to our workflow would unify the code-base, but I agree now that running this blindly is probably not the best approach. Thanks for all the examples (and again sorry for making you do that).
preserving logical structure / parallelism
Preserving logical structure and parallelism is the most compelling to me. These seem to be most abundant with the argsparse options in our code base. I propose that we use# fmt: off and # fmt: on blocks to preserve these multi-line sections, and thus make the "judicious use of whitespace" explicit:
        # fmt: off
        for (valid, cell_id, tsne1, tsne2,
             cluster_id, cluster_name, x, y) in data_zip:
        # fmt: on

I don't think that this will clutter the codebase much since the blocks are often multi-line and not highly abundant. Plus the # fmt: off/on blocks will be indicative to the reader that the use of whitespace is important, or that there is logical structure within the block. From experience, when adding additional arguments with parser.add_argument in the past, I did not know to adhere to this structure. I'd suggest adding --diff flag to ./test.sh:
# ./test.sh
start black
black --line-length 79 -diff --check ./python
end black

So that any changes black would make are communicated to the user.
line wrapping
I think differences with some single-line cases mentioned above come from black trying to make a decision of what to do with a strict line-length of 79. From the docs "how black wraps lines":

"The rules for horizontal whitespace can be summarized as: do whatever makes pycodestyle happy. The coding style used by Black can be viewed as a strict subset of PEP 8."

In my experience using black, the default line length of 88 is the most readable.

"You probably noticed the peculiar default line length. Black defaults to 88 characters per line, which happens to be 10% over 80. This number was found to produce significantly shorter files than sticking with 80 (the most popular), or even 79 (used by the standard library). In general, 90-ish seems like the wise choice."

However, to get this to work with the linter we would need to add:
# ./test.sh
start flake8
flake8 --max-line-length 88 --exclude ./vips-8.7.1/
end flake8

which I don't mind.
final thoughts
I'm also not putting my foot down here, but am trying to see if we can come to some compromise. I agree that preserving thoughtful use of whitespace is import and I don't want to remove that, but I'd rather be explicit in these situations and otherwise adhere to some opinionated "standard" that I don't need to think about.  However, it doesn't allow you to enforce a quoting style other than double. I too also prefer single quotes generally, but I like the strictness of an opinionated formatter more. I'm happy to use this flag, but I'd like to agree "we are using single quotes", and then it's fair to make the suggestion in code reviews.

Those are my thoughts as of this morning. I have other things to work on and will think about it more deeply for a few days. Thanks again for your thoughts.

Cool: Thank you for taking the time to write up those thoughts. I'm not sure whether we'd really remember to use # fmt: off when it would be useful. (When I used black, briefly, I didn't realize what it was doing until I looked at the diff.)
So let's put this on hold till Friday, talk it over, and if you guys what to try it, I won't block.


NXGallery crashes on trying to connect to the IP via web browser.

I'm on Atmosphère 0.18.1 and FW 11.0.1, in a file-based EmuMMC. Upon launching NXGallery via title override, it crashes as soon as I enter my Switch's IP in a web browser. Additional information that might be helpful:
Screenshots are stored in: SD:/emuMMC/SD00/Nintendo/Album
Other sysmodules I'm running are sys-clk and nx-ovlloader.
Hopefully this helps, I don't really know what went wrong.

Doing a little more testing, it seems to be in the same situation as Issue #4, as deleting all screenshots/videos allows me to connect via web browser. After taking one screenshot, it starts crashing NXGallery again.

Interesting, can you take a photo when your switch crashes? Thanks!

Yea that did actually help very much, because it means that not the whole console crashed (in opposite to #4), but only the title you were running it from. If you try another title, does it still crash? Also, does it crash when NOT running it from a title, but the album hbmenu?

Yea that did actually help very much, because it means that not the whole console crashed (in opposite to #4), but only the title you were running it from. If you try another title, does it still crash? Also, does it crash when NOT running it from a title, but the album hbmenu?

The title used for overriding doesn't appear to make a difference, but when running from the album hbmenu it results in a full-on Atmosphere crash.

Thanks for your effort, I think that photo is already good enough! Going to use a few spare hours to see how I can replicate this, my Switch is still at FW 10, so I'll need to update that first. I'll keep you posted!

Hey, any luck recreating this bug? I think the issue might be with the type of emuMMC used, as I believe the popular option is partition-based while I'm using a file-based emuMMC!

Hey! Didn't have the time to reproduce it, I also never used a file-based emuMMC, but my guess would be that the files for the album are stored elsewhere? What's the path yours are in?

Nevermind, just saw you attached the path in the original post. That might be it, since it does not check for that path. I'll add it and send you back a .nro you can test on your end. If it works, I'll make a new release with the fix :)

Awesome! I'll keep my fingers crossed :)

Hey, sorry for the long time no answer. I've prepared this, try unzipping this on the root of your sd card, and try if it works. This also has debug mode enabled, so it will show debug messages on your switch. Let me know how it goes!
NXGallery_1.1b.zip

Hello there. I just across this and tested both this build and the master build compiled with the latest commits and the issue still exists unfortunately, exactly as described earlier in these issues.

@pixeltester Hm, your screenshots are stored at the same path as for @velencourte?

@pixeltester Hm, your screenshots are stored at the same path as for @velencourte?

Just normal sysnand, so the path is SD:/Nintendo/Album

@pixeltester Ah okay, you mentioned you compiled it yourself, what is the console output when running the app on the switch? It should be compiled with DEBUG.


Compiler gets stuck on nested refs

Compiler may get stuck (consuming cpu/memory) on potentially invalid code. Actually not sure what the correct Zig term would be. See PROBLEM in n5 below.
pub fn n1(inline T: type) -> type {
    struct {
        left: &T,
        right: &T,

        const Self = n1(&T);
    }
}

// pub struct n2 {
//     links: n1(n2), // error: 'n2' depends on itself (even if it's a refs?)
// }

pub fn n3(inline T: type) -> type {
    struct {
        left: T,
        right: T,

        const Self = n3(T);
    }
}

pub const n4 = struct {
    links: n3(&n4), // compiles just fine
};

pub fn n5(inline T: type) -> type {
    struct {
        left: T,
        right: T,

        const Self = n5(&T);  // PROBLEM: compiler never comes back (ref to ref?)
    }
}

pub const n6 = struct {
    links: n5(&n6),
};

I'll look into this, but note that if you're trying to get a reference to your own type, you'll want something like const Self = Foo(T) rather than const Self = Foo(&T).

Yes, I know. Stumbled into it by mistake as I was changing from &T to T and forgot one.

What's the difference between:
struct A(T: type) {
}

and
struct B(inline T: type) {
}

Can T be given at runtime or is T implicitly inline if the keyword is missing?

Arguments of type type must be inline. I don't remember if I made it an error to omit inline or if the inline is implicit.

I guess it isn't:
https://github.com/andrewrk/zig/blob/master/std/list.zig#L6

That might change with #160

I think this is solved now.


feat: validate input of send message and filter invalid phone numbers

NS-163.
Validate the input of the request to the send message view. The data needs to be structured properly so the view could fail early if any errors are raised.
Filter the list of recipient's phone numbers, so that we don't call the SMS service (Quriiri) with any totally errenous phone numbers that can never reach anybody, but are stil lbilled by the service.
Handle the errenous phone numbers softly, so that the notification service acts to the client app the same way as earlier.
Use Finnish region when parsing the phone numbers and convert the numbers into an international format. Use a list of unique numbers when finally calling the SMS service (Quriiri).
Installed phonenumberslite library
(https://pypi.org/project/phonenumberslite/) to help with the phone numbers validation.

Notification service branch is deployed to platta: https://kuva-notification-service-pr67.api.dev.hel.ninja :rocket::rocket::rocket:

Notification service branch is deployed to platta: https://kuva-notification-service-pr67.api.dev.hel.ninja :rocket::rocket::rocket:

Notification service branch is deployed to platta: https://kuva-notification-service-pr67.api.dev.hel.ninja :rocket::rocket::rocket:

collect_destinations

No! Good catch -- There is a bug introduced after I renamed the variable. It should be
if not number_type:
        return [r["destination"] for r in recipients]
# ...

However, I would like to keep that number_type filtering and collect_destinations feature.

There is now a valid number in a list of invalid numbers
FAILED api/tests/test_utils.py::test_filter_valid_destinations_invalid_number[+004567044733] - AssertionError: assert ['+004567044733'] == []
FAILED api/tests/test_utils.py::test_filter_valid_destinations_invalid_numbers - AssertionError: assert 1 == 0

The issue is in this: "+004567044733",  # Invalid country code 00.
From https://www.quora.com/Which-country-code-is-00-1:

The code +00 is often used as a prefix for international dialing, indicating that the following digits will be a country code.

There is no country code +00. It is the international call prefix, which is used to dial a phone number in a country or world region other than the caller's. In most countries, this prefix is 00, an ITU recommendation; it is 011 in the countries of the North American Numbering Plan while a minority of countries use other prefixes. Sources: https://en.wikipedia.org/wiki/List_of_country_calling_codes.

Country codes constitute the international telephone numbering plan. They are used only when dialing a telephone number in a country or world region other than the caller's. Country codes are dialed before the national telephone number, but require at least one additional prefix, the international call prefix which is an exit code from the national numbering plan to the international one. In most countries, this prefix is 00, an ITU recommendation; it is 011 in the countries of the North American Numbering Plan while a minority of countries use other prefixes.

There is now a valid number in a list of invalid numbers
FAILED api/tests/test_utils.py::test_filter_valid_destinations_invalid_number[+004567044733] - AssertionError: assert ['+004567044733'] == []
FAILED api/tests/test_utils.py::test_filter_valid_destinations_invalid_numbers - AssertionError: assert 1 == 0

The issue is in this: "+004567044733", # Invalid country code 00.

Weird, as I ran the tests locally in docker and they passed. I'll try again...

There is now a valid number in a list of invalid numbers
FAILED api/tests/test_utils.py::test_filter_valid_destinations_invalid_number[+004567044733] - AssertionError: assert ['+004567044733'] == []
FAILED api/tests/test_utils.py::test_filter_valid_destinations_invalid_numbers - AssertionError: assert 1 == 0

The issue is in this: "+004567044733", # Invalid country code 00.

Weird, as I ran the tests locally in docker and they passed. I'll try again...

An they still pass. Something weird going on.

Hmm... it seems hot reload doesn't work currently with Docker / docker compose. I'll make a bug ticket about this.

Notification service branch is deployed to platta: https://kuva-notification-service-pr67.api.dev.hel.ninja :rocket::rocket::rocket:

Notification service branch is deployed to platta: https://kuva-notification-service-pr67.api.dev.hel.ninja :rocket::rocket::rocket:


Handle FreeBSD version in updater component

Description:
If you're running home assistant on a FreeBSD system right now the
updater component doesn't know how to return the FreeBSD release being
used. This commit adds the os_version to the payload when running on
FreeBSD so that version info will be tracked as well.
Related issue (if applicable): fixes #
Pull request in home-assistant.github.io with documentation (if applicable): home-assistant/home-assistant.github.io#<home-assistant.github.io PR number goes here>
Example entry for configuration.yaml (if applicable):

Checklist:
If the code does not interact with devices:

[X] Local tests with tox run successfully. Your PR cannot be merged unless tests pass
[ ] Tests have been added to verify that the new code works.

Obviously we didn't even consider FreeBSD as a target platform :smile:
Thank you for the feedback & PR! :dolphin:

Heh, fwiw I don't actually use FreeBSD at home. But, I set HA up for a friend last week who wanted to run it in a jail on his FreeNAS server. Although, there definitely are other people using it because I found some things out there for rc scripts and other discussions.


Use a conditional variable and remove the sleep in the Write loop

This will be abandoned for #134.

This will be abandoned for #134.


Update hosting_nextjs.yml

Next.js needs Node 18.18 or later
https://nextjs.org/docs/getting-started/installation
next export has been removed in favor of 'output: export' in next.config.js.
Learn more: https://nextjs.org/docs/app/building-your-application/deploying/static-exports

Issue number:
https://github.com/awslabs/cloudfront-hosting-toolkit/issues/7
Summary
Currently the latest Next.js starter application from npx create-next-app@latest fails build process with CodeBuild because of version incompatibilities, which these build configuration changes resolve at present time.
Changes

Please provide a summary of what's being changed

Node version is set to 18.18 which is required per https://nextjs.org/docs/getting-started/installation
npx next export has been removed in favor of 'output: export' in next.config.js per https://nextjs.org/docs/app/building-your-application/deploying/static-exports
User experience

Please share what the user experience looks like before and after this change

Currently deploying using Wizard for Next.js repository fails at cloudfront-hosting-toolkit deploy
With these changes the Wizard can successfully build and deploy at Next.js repository
Users should understand the limitations of fully static Next.js hosting per  https://nextjs.org/docs/app/building-your-application/deploying/static-exports and further updates to documentation should be considered to make this clear.
Checklist
If your change doesn't seem to apply, please leave them unchecked.

[x ] I have performed a self-review of this change
[x ] Changes have been tested
[ ] Changes are documented

Is this a breaking change?
No
RFC issue number:
Checklist:

[ ] Migration process documented
[ ] Implement warnings (if it can live side by side)

Acknowledgment
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.
Disclaimer: We value your time and bandwidth. As such, any pull requests created on non-triaged issues might not be successful.

Can +1 I had to make the same 2 changes.

Thank you for the PR.


Show suggestions from every nested level

From @usernamehw on October 1, 2018 11:57
class Something {
    static calcThing() { return }
}

// type `calc` => get suggestion `Something.calcThing`

Not just TypeScript, but any language.
Copied from original issue: Microsoft/vscode#59737

This would result in a huge number of (usually not terribly helpful) suggestions. We provide completions for statics inside of classes but I think doing this outside of classes would really clutter up the suggestion list


NSFW Imgur Album Rips Result in "Error: 1"

Ripme version: 1.7.91
Java version: java version "1.8.0_191"
Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)
Operating system: Microsoft Windows [Version 6.1.7601]
Exact URL you were trying to rip when the problem occurred: https://imgur.com/r/iateacrayon/VS2Rd
Please include any additional information about how to reproduce the problem:

Expected Behavior
Enter the URL into the field of the GUI, click Rip. Expected album to be ripped like normal.
Actual Behavior
Status starts normally, stating "Downloading [URL]", but then immediately finishes, falsely claiming the rip was completed. The next line is a red 1, and the status message changes to Error: 1. No folder for the rip is created, and nothing is saved.

how do i +1 something, this issue still persists today


Proper MJPEG support for the preview image

Updated the preview video to use proper multipart jpeg encoding.

Also realized that I fixed up the dropdowns in the settings area to actually push their changes on change (so you don't have to click to make the change and then click again to send to the server - onchange instead of onclick for the select's)

fwiw, I was talking to somebody else it seems that setting a css background-image property will work to continuosly update the picture, making the whole timeout and img.src setting business unnecessary (this seems to also work well cross platform and on mobile). You can see an example here (look at the JpegStreamHandler class):
https://github.com/CoderBotOrg/coderbot/blob/develop/viz/streamer.py
the unavailable img stuff would then have to be rewritten as changing a css property.
And thanks for fixing the on-change, I was about to submit a patch for the same thing, it really confused me in the beginning, thought my settings weren't working.

Thanks for this, both the MJPEG and settings change. I am testing those.

OK to proceed with this pull, Silvan?

Wasn't able to look at it, but if you had, then I would say pull ;)
On 14 Apr 2015 12:24, "roberttidey"<EMAIL_ADDRESS>wrote:

OK to proceed with this pull, Silvan?
—
Reply to this email directly or view it on GitHub
https://github.com/silvanmelchior/RPi_Cam_Web_Interface/pull/49#issuecomment-92754237
.

Just one thing: why do we need cam_pic and cam_pic_new? If you say it works, we could replace the old cam_pic with this one.

cam_pic_new feeds mjpeg to browser. cam_pic still feeds motion. I'm not sure if motion could use the new one. Probably safer to leave as is for the moment.
Could change name of cam_pic_new at some point to make it clearer

Forum user reports live preview not working on iOS Chrome / Safari when using MJPEG stream. Any thoughts?

confirmed, it's a known problem (been there quite a while):
https://discussions.apple.com/thread/4347848
I have an older running version of the code on a camera and it displays just fine in safari. Master however on another testing camera does not work. In that same thread luckily there seems to be a working solution.
Here's a patch I just tried out that works for me:
39c39
< 	echo "Content-type: image/jpeg\n\n";
---
> 	echo "Content-type: image/jpeg\r\n\r\n";
44a45
> 	echo "\r\n\r\n";
47c48
< }
\ No newline at end of file
---
> }

I've tried with just \n's and only one or various combos and that's the only one that worked for me.

Having a \r\n\r\n after the content type header would in fact be then
correct fix. It signify she end of the http headers and the start of the
body of the response.
Also I just noticed the code I added has

echo "Content-type: image/jpeg\n\n";
Should be at a minimum \n\r and not a double \r\n

I can make a new pull request with the fix if you'd like, or you can just
change the \n\n to \r\n\r\n
Chris.
On Tuesday, April 14, 2015, spikedrba<EMAIL_ADDRESS>wrote:

confirmed, it's a known problem (been there quite a while):
https://discussions.apple.com/thread/4347848
I have an older running version of the code on a camera and it displays
just fine in safari. Master however on another testing camera does not
work. In that same thread luckily there seems to be a working solution.
Here's a patch I just tried out that works for me:
39c39
<   echo "Content-type: image/jpeg\n\n";

echo "Content-type: image/jpeg\r\n\r\n";
44a45
echo "\r\n\r\n";
47c48
< }
\ No newline at end of file

}

I've tried with just \n's and only one or various combos and that's the
only one that worked for me.
—
Reply to this email directly or view it on GitHub
https://github.com/silvanmelchior/RPi_Cam_Web_Interface/pull/49#issuecomment-93077515
.

I apologize for the horrid content of the previous comment.
Chris.

Thanks. I've pushed that

Couple of forum users still having no success even with this change.

The following browsers are working
OS X
Chrome: Version 42.0.2311.82 beta (64-bit) (latest)
Safari: Version 8.0.5 (10600.5.17) (latest)
Firefox: 36.0.4
Windows 7
Chrome: Version 42.0.2311.82 beta-m (latest)
Firefox: 12.0, 36.0.4
IOS
Safari: IOS 8.3
Browsers that aren't working
OS X
Firefox: 37.0.1 (latest) - shows a single frame but doesn't update after that
Windows 7
IE: 10.0.9200.16635 - hangs the browser
Firefox: 37.0.1 (latest) - shows a single frame but doesn't update after that
IOS
Chrome: 41.0.2272.58 - never shows anything but the "loading" image
I'll do some more digging and see what I can come up with with respect to Firefox and IE.  My guess is they are related problems.
chris.

Great info. OK. For me to post that on forum or do you want to do it?

Not sure of my current forum registration state.  So if you don't mind could you cross post it?
I have noticed that a working mjpeg stream (as in working in firefox at least) is sending a content-length header in each of the multipart chunks.  Going to see if that makes a difference.  I'll report back my findings.
chris.

I suggest to use cam_pic.php as long as the issue isn't solved, otherwise all users except the ones regulary checking the forum could be confused.

Code that works in everything but IE and Chrome on IOS (well haven't tested in android as I don't have any devices with it) is in pull request #53
As a side note though, I don't think its going to work in IE ever.  No examples I can find online (for mjpeg) work in IE.
While I really like the mjpeg support for things like off-board motion integration, we might want to look at a better rate limited (based on preview frame rate) javascript version (like the original solution).  This would give the most browser support, and we could still offer the mjpeg out (as a separate URL) for those who want to use it in things like openCV of motion on another system.
The bandwidth savings from syncing with the framerate could be achieved in javacsript in a similar fashion (just sleeping for the right amount of time between fetches).
chris.

OK. Here's my proposal for the moment.

Merge in updated MJPEG to increase compatibility. Leave index.php + additional jpgs in place
revert default operation to cam_pic.php. I tried this by reverting just the script.js where init effectively defines the operational mode. That seems to be OK. It was actually broken in my 37.01 Firefox before (I thought it was working but it wasn't). Reverting just script showed standard cam_pic.php operation
Adjust script so that it can work either way, i.e. mjpeg can be activated.
Main question for me is what controls item 3). Possibilites are local config file or a cookie.


Allow to programatically re-enable atmo on mobile devices

This way, sites have the option to force this value after the Pageflow
javascript-code is done initialising.
See #554 for previous discussion.

@tf what do you think of this change?
It would allow us to enable the value in the application.js, thereby ignoring the default.

Coverage remained the same at 99.053% when pulling e2f36f4433a1df8ced235b2bf0db1381fac312f9 on scrollytelling:atmo-disabled-config into bfe5e700d4d561942689f9b32aa5016a0a2da858 on codevise:master.

I guess that's fine. It should then be safe to call pageflow.atmo.enable() when the pageflow.ready promise resolves.

The help texts will still claim that atmo is disabled on mobile, though. But the medium term goal has to be making atmo work on mobile anyway since technically it should be possible by reusing audio elements.

Just to be sure, that would be this code, right?
pageflow.ready.then(function(result) {
  pageflow.atmo.enable();
});

I think so, yes.


Unable to access local farm when testing resource (running SharePoint commands as a specific user)

I am attempting to test out the xSite configuration but when I run the sample configuration I get an error about not being able to access the local farm.  I assume this is related to running as "nt authority\system" rather than an account that is a farm administrator.  How you found a workaround for this or do I have something misconfigured?

I tested it on a development machines and in production environments and it works everywhere. Did you run the configuration in push or pull mode?  My winmgmt Service also runs as "Local System" on all machines. Can you check, that you System account is in the wss_wpg group?
If you want to use the xList resource, then you have to create a policy for your web application that allows the System account access.
I just noted one more this: my SharePoint administration service runs on all the machines as local system. Can you check if this is also the case in you environment?

I ran my configuration in push mode on a dev machine.  I did not add Local System to the wss_wpg.  I will try that and let you know how it turns out.
P.S. Wahid from Microsoft is one of my coworkers and I am on a project with him to look into PowerShell DSC for SharePoint.  He told me he reached out to you regarding this project.  Hopefully we can help each other expand the coverage of this.  I like what you have created so far.

Have you tried it yet?

Sorry I have not yet gotten a chance.  My customer decided not to go down the route of DSC for SharePoint due to project timelines.  I hadn't gotten back to testing on this.  Based on the feedback from the internal project it sounds like the xPDT resource may be a way to accomplish the passing of credentials in a more structured way.
Date: Thu, 5 Feb 2015 07:42:24 -0800
From<EMAIL_ADDRESS>To<EMAIL_ADDRESS>CC<EMAIL_ADDRESS>Subject: Re: [xSharePointAdministration] Unable to access local farm when testing resource (running SharePoint commands as a specific user) (#1)
Have you tried it yet?
—
Reply to this email directly or view it on GitHub.


AQL variable - Critical Bug - not working query since upgrade to 3.4 release

My Environment

ArangoDB Version:       3.4.1
Storage Engine:            RocksDB
Deployment Mode:       Single Server
Deployment Strategy:   Manual Start in Docker
Configuration:               --log.output - --foxx.queues false --rocksdb.block-cache-size<PHONE_NUMBER> --cache.size<PHONE_NUMBER>
Infrastructure:               own
Disks in use:        HDD
Used Package:              Docker - official Docker library

Component, Query & Data
Affected feature:
AQL query using REST API/AQL query using web interface
AQL query (if applicable):
for i in xx filter i.address in ['xxx']
for v,e in 1
	outbound i seg_xx, group_xx
	filter v.active != false and e.active != false
	let segOrGroupWithXx = {segOrGroup: v, xx: i}
	collect id=segOrGroupWithXx.segOrGroup._id into uniqueSegOrGroup
	 return {segOrGroup: uniqueSegOrGroup[0].segOrGroupWithXx.segOrGroup,
	         xxs: uniqueSegOrGroup[*].segOrGroupWithXx.xx.address}

AQL explain (if applicable):
Execution plan:
 Id   NodeType          Est.   Comment
  1   SingletonNode        1   * ROOT
 14   IndexNode            1     - FOR i IN xx   /* hash index scan */
  5   TraversalNode        2       - FOR v  /* vertex */, e  /* edge */ IN 1..1  /* min..maxPathDepth */ OUTBOUND i /* startnode */  seg_xx, OUTBOUND group_xx
  6   CalculationNode      2         - LET #12 = ((v.`active` != false) && (e.`active` != false))   /* simple expression */
  7   FilterNode           2         - FILTER #12
  9   CalculationNode      2         - LET #14 = v.`_id`   /* attribute expression */
 13   SortNode             2         - SORT #14 ASC
  8   CalculationNode      2         - LET segOrGroupWithXx = { "segOrGroup" : v, "xx" : i }   /* simple expression */   /* collections used: i : xx */
 10   CollectNode          2         - COLLECT id = #14 INTO uniqueSegOrGroup KEEP segOrGroupWithXx   /* sorted */
 11   CalculationNode      2         - LET #16 = { "segOrGroup" : uniqueSegOrGroup[0].`segOrGroupWithXx`.`segOrGroup`, "xxs" : uniqueSegOrGroup[*].`segOrGroupWithXx`.`xx`.`address` }   /* simple expression */
 12   ReturnNode           2         - RETURN #16

Indexes used:
 By   Type   Collection   Unique   Sparse   Selectivity   Fields          Ranges
 14   hash   xx           true     true        100.00 %   [ `address` ]   (i.`address` == "xxx")
  5   edge   group_xx   false    false            n/a   [ `_from` ]     base OUTBOUND
  5   edge   seg_xx   false    false            n/a   [ `_from` ]     base OUTBOUND

Traversals on graphs:
 Id   Depth   Vertex collections   Edge collections         Options                                   Filter conditions
  5   1..1                         seg_xx, group_xx   uniqueVertices: none, uniqueEdges: path

Optimization rules applied:
 Id   RuleName
  1   move-calculations-up
  2   move-filters-up
  3   move-calculations-up-2
  4   move-filters-up-2
  5   remove-collect-variables
  6   use-indexes
  7   remove-filter-covered-by-index
  8   remove-unnecessary-calculations-2
  9   move-calculations-down

Steps to reproduce

Execute Query

Problem:
Query: AQL: variable not found 'segOrGroupWithXx' in executeSimpleExpression() (exception location: /work/ArangoDB/arangod/Aql/BaseExpressionContext.cpp:62). Please report this error to arangodb.com (while executing) (exception location: /work/ArangoDB/arangod/RestHandler/RestCursorHandler.cpp:238). Please report this error to arangodb.com
Expected result:
In previous versions (2x-3.3) works fine.

This query fail:
for i in xx filter i.address in ['xxx']
for v,e in 1
outbound i seg_xx, group_xx
let segOrGroupWithXx = {segOrGroup: v, xx: i}
collect id=segOrGroupWithXx.segOrGroup._id into uniqueSegOrGroup
return {}
But this works:
for i in xx filter i.address in ['xxx']
for v,e in 1
outbound i seg_xx, group_xx
let segOrGroupWithXx = {segOrGroup: v, xx: i}
collect id=segOrGroupWithXx.segOrGroup into uniqueSegOrGroup
return {}

This works as intended:

The COLLECT statement will eliminate all local variables in the current scope. After COLLECT only the variables introduced by COLLECT itself are available.

https://docs.arangodb.com/3.4/AQL/Operations/Collect.html
segOrGroupWithXx does no longer exist after COLLECT. If you still need access to the value, then using INTO is one option.

@Simran-B i dont't think so. See my last comment: i can't access local variable inside collect, not after. But it even works - i can acces variable, but i can't access nested variable in that object. And yes we use into - if you look to original query we access only variable introduced in into after collect.

I looked at this query part you posted:
let segOrGroupWithXx = {segOrGroup: v, xx: i}
collect id=segOrGroupWithXx.segOrGroup._id into uniqueSegOrGroup

The variable segOrGroupWithXx is no longer set after COLLECT, but you didn't reference it in the RETURN operation anyway - so pardon me! segOrGroupWithXx.segOrGroup._id should be accessible via the variable id, and the entire grouped documents via uniqueSegOrGroup.
There is indeed a bug, which causes the error you reported. This is now fixed in code, and will be shipped in version 3.4.3. Thank you for the report!

You're welcome. Exists some due date for 3.4.3 version?

We normally release bug fix versions at least once every 2 weeks.

Hi, version 3.4.3 has been released
I am going ahead and closing this ticket now. Will you please comment if further help is needed on this topic? (so we can reopen it)
Many thanks,


SSR and pending sagas

Hi!
I have a problem with pending sagas on server side
function* watchNavigate() {
    while (true) {
        const { payload: { url } } = yield take(START_NAVIGATE_TO);

        yield history.pushState(null, '', url);

        yield put({
            type: NAVIGATE_TO,
            payload: getLocationInfo(url),
        });
    }
}

export default function* rootSagas() {
    yield all([
        fork(watchNavigate),
    ]);
}

in server script I run this saga like this:
const rootTask = store.runSaga(rootSagas);
...
rootTask.done
    .then(... 2nd render app...)
    .then(() => store.dispatch(END));

but render never occurs - Promise never resolves. rootTask.done - still pending
But if rewrite watchNavigate function like this ( remove while loop ):
function* watchNavigate() {
    // while (true) {
        const { payload: { url } } = yield take(START_NAVIGATE_TO);

        yield history.pushState(null, '', url);

        yield put({
            type: NAVIGATE_TO,
            payload: getLocationInfo(url),
        });
    // }
}

Promise resolves but it doesn't meet business logic rules - it runs only once instead for every START_NAVIGATE_TO action
Help me please

any idea?

Here maybe the core of the problem:
const task = store.runSaga(dynamicSagas);
sagas.done.then(....).catch(...).finally(...);

I've change code from Promise.all to sagas.done.then.... and got the Error:
Error TypeError: sagas.done.then(...).catch(...).finally is not a function

You shouldnt wait with dispatching END, however u need to dispatch it in the suitable moment for u which I cannot really predict - in general u should do it as soon as possible once you are sure ur sagas are created and fetching what u need.
So the flow should be more like this:
store.dispatch(END)
saga.done.then(() => {
  // rerender ur app and send it to the client
})

but in real-world example https://github.com/redux-saga/redux-saga/blob/master/examples/real-world/server.js  store.runSaga(rootSaga).done.then resolves before dispatching END
store.runSaga(rootSaga).done.then(() => {
        console.log('sagas complete')
        res.status(200).send(
          layout(
            renderToString(rootComp),
            JSON.stringify(store.getState())
          )
        )
      }).catch((e) => {
        console.log(e.message)
        res.status(500).send(e.message)
      })

      renderToString(rootComp)
      store.close()

but in real-world example https://github.com/redux-saga/redux-saga/blob/master/examples/real-world/server.js store.runSaga(rootSaga).done.then resolves before dispatching END

Not rly, notice that END is dispatched here. And it causes done promise to resolve.
The idea is that END will cause all ur sagas which are hanging on takes to finish. You need to structure ur app in a way that all ur initial data gets fetched during setup and no delayed takes are needed during SSR.
Code-splitting doesnt change much in this matter. You just need to structure ur logic so it can be handled reasonably on the server side, it doesnt matter what code-splitted code will be ran if all of ur modules follow the same structure making saga SSR possible.

you are right!
I've missed it. Thanks a lot!

Gonna close this then, if you have any further question - just ask :)


Increase KnnByteVectorField limit on dimensions to 2048

This increases the vector size limit only for ByteVectors only.
Byte vectors use much less memory than float (less than half required to store float vectors). Additionally, dot-products between two byte vectors are faster than between two float vectors (about 1.5x faster).
Here are some micro-benchmark (the dot-product methods used were the same from the VectorSimilarity class):
VectorMultiplicationBenchmark.byteDotProducts                          64  avgt    7   119207.749 ±    87.092  ns/op
VectorMultiplicationBenchmark.byteDotProducts                        1024  avgt    7  1615737.126 ±   955.261  ns/op
VectorMultiplicationBenchmark.byteDotProducts                        2048  avgt    7  3283335.169 ±  1624.888  ns/op
VectorMultiplicationBenchmark.floatDotProductsUnwrapped                64  avgt    7   197209.288 ±   191.285  ns/op
VectorMultiplicationBenchmark.floatDotProductsUnwrapped              1024  avgt    7  2844926.617 ± 10232.337  ns/op
VectorMultiplicationBenchmark.floatDotProductsUnwrapped              2048  avgt    7  5544835.569 ±  2476.568  ns/op

Consequently, it makes sense to me to allow larger vectors for byte vectors, but still enforce the current limitation for float. Thus ensuring that callers with larger vectors will:

Have to quantize their input
Do dimensionality reduction
Some combination of both

At least until we can get hardware accelerated vector multiplication (on its 5th!!!!!! incubator at the time of this PR): https://openjdk.org/jeps/438
This PR is a continuation of various other previous work and discussion:

https://github.com/apache/lucene/pull/874
https://github.com/apache/lucene/issues/11507

Persons of interest on this change: @rmuir, @uschindler

At least until we can get hardware accelerated vector multiplication (on its 5th!!!!!! incubator at the time of this PR): https://openjdk.org/jeps/438

Haha. When it gets into preview phase I have the solution ready: #12188 😊

@uschindler I cannot express how excited I am over this thing finally getting out of incubator. Its getting kind of ridiculous!!!

@uschindler I cannot express how excited I am over this thing finally getting out of incubator. Its getting kind of ridiculous!!!

I don't know if it goes out if incubator, but we have a solution once it goes.

So I'm still challenging the use-case for this. "because users ask for it" is not enough for me, given the maturity level of these technologies.

@rmuir Ah, I thought your main concern was performance.
The only use case I can see is image based search (things better than ResNet-esque models). There are "off the shelf" models that work quite well in the e-commerce space (searching image embedded space along with typical search queries). I will see about getting some numbers.

As for performance issues, this is why I am only suggesting the increase for byte encoded vectors as their size & performance improvements are just as reasonable at 2048 as float is at 1024.

reasonable? I'm not sure this word can be applied here. How long does it take for me to index 50 million documents?

@rmuir Ah, I thought your main concern was performance.

I have multiple concerns:

HNSW doesn't scale at all (time, memory space) and there seems to be no plan to look into alternative
HNSW especially horribly slow with higher dimensions
i fear we are slowly locking lucene permanently into this horrible HNSW and it may already be too late, can a codec implementing another algorithm even be added at this point?

I'm -1 to increasing this dimension count. i don't care how many PRs get opened to do it. I will be the bad guy.

I think that's fair @rmuir . I am also sharing some of these concerns. Although I don't think it's true to say that "HNSW doesn't scale at all (time, memory space) and there seems to be no plan to look into alternative".
The memory constraints for HNSW alone are not gigantic. For each vector we need: M * 4 * 2 bytes where M is the number of links per vector (we default to 16). That's 128 bytes per vector that can be reduced easily at the cost of relevancy by reducing M.
Regarding the number of dimensions, the fact that we need to compute the similarity is not inherent to hnsw. A coarse quantizer would also require to compute the similarity on the entire vector space to reach a good recall. The nice property about hnsw is that it reduces the number of comparisons at indexing and query time to a minimum at any scale.
So regarding the alternative, I think one direction could be to look at product quantization that would allow to reduce the number of dimensions and provide a similarity function on the reduced space. Something like https://hal.inria.fr/inria-00514462v2/document could be "easily" implemented on top of the hnsw indexing and querying to reduce the memory needed for high dimensions use cases. Any quantization that reduces the number of dimension in fact. We should have options here and the hard limit of 1024 could stay as a hard limit at when quantization should be preferred.
Another direction would be to look at ivf, a coarse quantizer that fits well in the inverted list design. The main advantage here would be to get ride of the graph and its associated memory. But again the number of dimensions would still be a constrained since it requires to compute the final score on the entire vector space. Product quantization would still be needed to reduce the constraints at the cost of relevancy.
There's also the problem of merges. A merge is single threaded so we're limited when it comes to build bigger graphs.
There's way to mitigate this issue, we can increase the index buffer size to create bigger graphs, we can also limit the size of segments to ensure that we don't rebuild passed a certain size. The fact that we build a graph per segment can have benefits though. With concurrent segment search, it should be possible to run a single request in parallel on each graph/segment. We could also investigate using multiple threads when merging a single segment. The other solutions that implement hnsw uses multiple threads to index in a single graph.
Today we store these vectors on file and access them through MMAP. That's a differentiator compared to other solutions that requires them to be fully in memory. Considering the access pattern of hnsw (random) I am not sure that it's a real advantage but on the other hand the number of comparisons for indexing and querying is reduced to a minimum. 1024 dimensions is already quite a lot, there are benchmarks with 768 dimensions and more in the ann-benchmarks so it should be interesting to run those on a machine with restricted RAM. With the right setup, I'd assume that Lucene would not crash but the indexing would be really slow.

How long does it take for me to index 50 million documents?

That's a good question, I am also interested to understand what's the memory requirements associated with it.
With 1024 dimensions and M set to 16, the entire graph would take 6GB and the vectors 190GB!
Assuming that we have enough RAM, it would take almost 14 hours if we can achieve 1000 docs/s. The current solution can index faster than that but I don't think it was ever tested with constrained memory.
I think we need a test benchmarks to check our assumptions. There's nothing in the Lucene's doc (or ES/Solr) that warns against these constraints and we don't know how the solution degrades.
Today we store these vectors on file and access them through MMAP. That's a differentiator compared to other solutions that requires them to be fully in memory. Considering the access pattern of hnsw (random) I am not sure that it's a real advantage but on the other hand the number of comparisons for indexing and querying is reduced to a minimum so a good SSD could mitigate this? We need tests.

Thanks for raising these interesting possible directions. I spent some time tinkering with ivf/pq-like solution - implement simple k-means, indexed using normal postings and doc-values and ran a bunch of tests. I found that I was able to get high recall without pq., at much lower indexing cost than hnsw, but with a substantially higher query cost. Then I tried working on pq to improve the speed, but was never able to get decent recall with any configuration that I tried. It seems that others have had good results though. Maybe we should start some kind of sandbox branch for trying these out. I'd be happy to share what I have, although the results are not great

I don't feel this is a research problem to fix, like i said, go look at https://big-ann-benchmarks.com/ and you can see DiskANN as baseline, if you read the papers it seems to be a perfect fit for lucene.
the problem is that here, ppl spend too much time looking at toys (http://ann-benchmarks.com/).
If you are upset about my veto against raising this limit, i'd ask you to first actually try indexing datasets of 756 or 1024 dimensions and get the experience for yourself before complaining to me that the limit should be raised. Please: experience the horror for yourself. Otherwise complaining at me that you can't use some ChatGPT garbage dataset isn't going to accomplish anything or change my mind in any way, please realize that.

Closing this PR as further conversation has proved this is currently at a stand still.


Students not able to find/select correct images in tutorials

A result of an hour of code classroom observation with 3rd graders we conducted -
The biggest issue we saw was when students get to a tutorial instruction that tells them to select a specific image from My Assets.

They didn't know what "empty square" to click on
They didn't know to click over to My Assets to find the image
They didn't click to expand the hint to see the gif

It would be great to be able to pre-populate blocks with specific images in the Toolbox for tutorials to avoid these issues.

I can think of a handful of other solutions, as well, depending on cost/benefit ratio.
1) Prepopulate image in default blocks (great mostly for beginner-level tutorials)
2) Choose to use Tile-picker UI for items in My Assets (also helpful in Intermediate tutorials)

3) Pre-filter gallery (by step) based on keywords
^ This is probably the most impactful, since we can use it in all tutorials AND game creators could use filters to more easily pare down to the spritepacks that they've imported.  We very likely wouldn't need "My Assets" in this case, because it would just be a filter.


Packager ignoring main class input

Bug Report
Expected Behaviour
Packager should work fine, however it doesn't because it ignores the attached main file/package
Actual Behaviour
Ignores the main file/package input in the Packager GUI section
How to reproduce the behaviour
Enabled Packager and put in a valid file/package name
Possible fix
I think you only forgot to pick it up from the JTextField

Fixed in 8dcfcb7

Added in release v1.9.2: https://github.com/superblaubeere27/obfuscator/releases/tag/v1.9.2


Elastix sometimes hangs when SampleRegionSize smaller than 20

I am trying to registering 2 images of size 256x256x35 and am currently optimizing the hyperparameters for non-rigid registration. For registration I am using a mask to focus the registration on the area of interest.
During hyperoptimization I noticed that for some images Elastix will hang when SampleRegionSize is smaller than 20.
I have attached the log file (elastix_hangs.log) for a case where it hangs using (SampleRegionSize 15),
a log file (elastix_doesnt_hang1.log) for the same case where it doesn't hang using (SampleRegionSize 20),
a log file (elastix_doesnt_hang2.log) for a different image pair where it doesn't hang using (SampleRegionSize 15).
elastix_hangs.log
elastix_doesnt_hang1.log
elastix_doesnt_hang2.log
I was wondering, is this expected behaviour? Also, the log's don't report any errors I'm curious what the underlying reason for this hang could be?

I guess that elastix was not able to get a sufficient number of samples from such a small region.
elastix should never hang though, so this is a bug.
But note that this sample region should not be too small anyway, since it is meant to battle inhomogeneities on a bit larger scale.

Interestingly my registrations get better at somewhat smaller sample region sizes, so this would be interesting to investigate further. Lowering the number of samples to be drawn doesn't seem to fix the problem of hanging though. Do you have any other suggestions on how to circumvent this bug?

That would be debugging the source code


Cannot run ecogvis from Jupyter notebook

I got the latest version of ecogVIS from github, but am still running into this problem:

@kristinksellers that's strange, I can't reproduce the error, your code runs correctly on my machine.
Can you please uninstall ecogvis and install it again in your environment?
It reminded me that I forgot to publish on pypi, I'll do that today to make things easier

@kristinksellers can you confirm this problem is still happening with the most current version on your environment?

@luiztauffer Problem resolved - thanks!


add catch for AuthenticationException

Affects: <api-version-number>.

 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.You have signed the CLA already but the status is still pending? Let us recheck it.


We should expose a token cache in Core that lets one fetch a token based off tokenrequestContext

The current exposed SimpleTokenCache let's one cache a token but not a token that can change based on tokenrequestcontext which I think will be useful if exposed in a way that can be extended.

Most token credentials would need to fetch tokens based on a context as the token is likely to vary per request.
Having a cache that lets you work on a generic token credential/tokenrequestcontext makes it possible for it to be reused.
Even though caching tokens should be done carefully- there are valid scenarios where we would need to do this.

We already have a variant of it in experimental package for ARMChallengePolicy and will now have another variant for it in ACR policy, converging the two will be useful.
Proposal: One approach would be something similar to what is in the draft PR - https://github.com/Azure/azure-sdk-for-java/pull/19969 (The intent is just to show the intention and not the actual naming\implementation).

/cc: @schaabs, @g2vinay

I am probably missing some context on ACR side,
Currently, I feel the cache can be used internally via the policy itself and possibly doesn't need to be exposed.
We can do quick sync up around this.


Error in SERVER PRERENDERING - ReactOnRails is not defined

Hi @justin808,
My configuration is heavily based on: https://github.com/shakacode/react-webpack-rails-tutorial/
I'm currently having this issue
MESSAGE	ERROR in SERVER PRERENDERING Encountered error: "ReferenceError: ReactOnRails is not defined"

when I try to run a react component with prerender enable.
To provide a bit of context the app works fine without prerender in dev and production, works fine with prerender in dev but not in production.
This is part of the error message that I'm getting:
MESSAGE	ERROR in SERVER PRERENDERING Encountered error: "ReferenceError: ReactOnRails is not defined" when prerendering App with props: {"model":""} js_code was: (function() { var railsContext = {"inMailer":false,"i18nLocale":"en","i18nDefaultLocale":"en","href":"---","location":"---","scheme":"http","host":"---","port":null,"pathname":"---","search":"category=most-popular","httpAcceptLanguage":"en-GB,en-US;q=0.8,en;q=0.6","serverSide":true}; var props = {"model":""}; return ReactOnRails.serverRenderReactComponent({ name: 'App', domNodeId: 'App-react-component-81b00e0f-d0b0-4b44-9255-5d318aaabc60', props: props, trace: false, railsContext: railsContext }); })()

my initializer/react_on_rails.rb:
ReactOnRails.configure do |config|
   config.server_bundle_js_file = "server-bundle.js"
end

my initializer/assets.rb:
Rails.application.config.assets.paths << Rails.root.join("app", "assets", "webpack")
Rails.application.config.assets.precompile += [  "server-bundle.js"  ]

my webpack.server.config:
// Common webpack configuration for server bundle

const webpack = require('webpack');
const path = require('path');

const devBuild = process.env.NODE_ENV !== 'production';
const nodeEnv = devBuild ? 'development' : 'production';

module.exports = {
  context: __dirname,
  entry: [
    'babel-polyfill',
    './app/bundles/App/startup/App'
  ],
  output: {
    filename: 'server-bundle.js',
    path: '../app/assets/webpack'
  },
  resolve: {
    extensions: ['', '.js', '.jsx'],
    alias: {
      react: path.resolve('./node_modules/react'),
      'react-dom': path.resolve('./node_modules/react-dom')
    }
  },
  plugins: [
    new webpack.DefinePlugin({
      'process.env': {
        NODE_ENV: JSON.stringify(nodeEnv)
      }
    })
  ],
  module: {
    loaders: [
      { test: /\.jsx?$/, loader: 'babel-loader', exclude: /node_modules/ }
    ]
  }
};

my ./app/bundles/App/startup/App:
import React from 'react';
import ReactOnRails from 'react-on-rails';
import Container from '../containers/Container';

// _railsContext is the Rails context, providing contextual information for rendering
const App = (props, _railsContext) => (
  <Container {...props} />
);

ReactOnRails.register({ App });

I'm currently using:
<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>
When I run RAILS_ENV=production rake assets:precompile the public/assets folder contains the server-bundle-[digest].js and I'm rsync'ing the folder to the server, so the sprockets manifest and server-bundle exist in the server.
Do you have any idea why this is failing only in production? And/or can you point me to the right direction? Thanks

Found the issue. server_bundle_js_file is looking for the file inside app/assets/webpack by default. Didn't know that would happen.


Use terminal_size instead of term_size

term_size is unmaintained.
Refs: https://github.com/clap-rs/term_size-rs/tree/5889fdc589d267182cc946faa24e0e3166a70000#maintenance-status

bors r+


AdoNetCore.AseClient.AseException: 'Server environment changed to unsupported charset '

I get AdoNetCore.AseClient.AseException: 'Server environment changed to unsupported charset ' when trying to open the connection

Hi @anawar82,
Our driver throws this exception when the server tells it to use a charset it doesn't support. Usually this charset's name would appear at the end of the exception message (throw new AseException($"Server environment changed to unsupported charset {change.NewValue}");), so that's weird.
Can you tell me what the charset of your database/server is?
Cheers

Code Page 850 (Multilingual)

On Oct 25, 2018, at 1:35 AM, Nicholas Sizer<EMAIL_ADDRESS>wrote:
Hi @anawar82 https://github.com/anawar82,
Our driver throws this exception when the server tells it to use a charset it doesn't support. Usually this charset's name would appear at the end of the exception message (throw new AseException($"Server environment changed to unsupported charset {change.NewValue}");), so that's weird.
Can you tell me what the charset of your database/server is?
Cheers
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/DataAction/AdoNetCore.AseClient/issues/89#issuecomment-432851668, or mute the thread https://github.com/notifications/unsubscribe-auth/AqLsqX5FQ3GMAQsit_Yg944G6L-duH11ks5uoOsmgaJpZM4X3c05.

Thanks @anawar82
So .net core does not natively support ibm850 (refer these msdn remarks). Therefore, the driver in its current state also doesn't support ibm850.
There are a couple of options as to how support could be added to the driver:

Implement an EncodingProvider within the driver's code.
Leverage the System.Text.Encoding.CodePages nuget package - see https://stackoverflow.com/a/37870346/242311

I'm not entirely happy with either option, in particular:

Implementing an EncodingProvider seems like a waste when probably someone has already implemented it, and it feels like implementing any text encoding is outside the domain of this driver's purpose. In short, it feels a bit "bloaty" to add it.
I'm reluctant to add another dependency to the driver. Ideally I would like it to remain relatively lean.

However, the above does not help you use the driver, so here's a third option which might help us both:

Add to the driver implicit support for as many of the charsets as possible, and leave it to the consumer to register their own EncodingProvider (either by implementing one, or adding an appropriate project reference).
Add some documentation to this GitHub project explaining how to add non-standard charset support.

Would you be happy with that solution?


Checkpoint management

The large word language model scripts produces > 100GB checkpoints. We want to add some logic to automatically keep the past K checkpoints and remove the previous ones so that it doesn't exceed disk capacity.

We can use the checkpoint handler in https://github.com/apache/incubator-mxnet/pull/14629 for new scripts