MacOSX 10.11.6 : errors when building

Hi, when I make in build, I got these errors
[  7%] Building CXX object bin/CMakeFiles/voxelizer.dir/voxelizerMain.cpp.o
In file included from /Users/YJ-work/Desktop/cpp_programs/voxelizer/src/voxelizerMain.cpp:7:
In file included from /Users/YJ-work/Desktop/cpp_programs/voxelizer/src/voxelizer.h:16:
In file included from /Users/YJ-work/Desktop/cpp_programs/voxelizer/src/commons.h:17:
In file included from /opt/local/include/fcl/collision.h:43:
In file included from /opt/local/include/fcl/collision_object.h:45:
In file included from /opt/local/include/fcl/ccd/motion_base.h:46:
In file included from /opt/local/include/fcl/BV/RSS.h:41:
/opt/local/include/fcl/math/constants.h:47:9: error: unknown type name 'constexpr'
constexpr FCL_REAL pi  = FCL_REAL(3.141592653589793238462643383279502884197169399375...
^
/opt/local/include/fcl/math/constants.h:47:27: error: expected ';' after top level declarator
constexpr FCL_REAL pi  = FCL_REAL(3.141592653589793238462643383279502884197169399375...
^
;
/opt/local/include/fcl/math/constants.h:50:9: error: unknown type name 'constexpr'
constexpr FCL_REAL phi = FCL_REAL(1.618033988749894848204586834365638117720309179805...
^
/opt/local/include/fcl/math/constants.h:50:27: error: expected ';' after top level declarator
constexpr FCL_REAL phi = FCL_REAL(1.618033988749894848204586834365638117720309179805...
^
;
In file included from /Users/YJ-work/Desktop/cpp_programs/voxelizer/src/voxelizerMain.cpp:7:
In file included from /Users/YJ-work/Desktop/cpp_programs/voxelizer/src/voxelizer.h:16:
In file included from /Users/YJ-work/Desktop/cpp_programs/voxelizer/src/commons.h:17:
In file included from /opt/local/include/fcl/collision.h:43:
In file included from /opt/local/include/fcl/collision_object.h:45:
In file included from /opt/local/include/fcl/ccd/motion_base.h:46:
/opt/local/include/fcl/BV/RSS.h:114:50: error: no member named 'pi' in namespace 'fcl::constants'
return (l[0] * l[1] * 2 * r + 4 * constants::pi * r * r * r);
~~~~~~~~~~~^
In file included from /Users/YJ-work/Desktop/cpp_programs/voxelizer/src/voxelizerMain.cpp:7:
In file included from /Users/YJ-work/Desktop/cpp_programs/voxelizer/src/voxelizer.h:16:
In file included from /Users/YJ-work/Desktop/cpp_programs/voxelizer/src/commons.h:18:
/opt/local/include/fcl/shape/geometric_shapes.h:142:29: error: no member named 'pi' in namespace
'fcl::constants'
return 4.0 * constants::pi * radius * radius * radius / 3.0;
~~~~~~~~~~~^
/opt/local/include/fcl/shape/geometric_shapes.h:180:36: error: no member named 'pi' in namespace
'fcl::constants'
const FCL_REAL pi = constants::pi;
~~~~~~~~~~~^
/opt/local/include/fcl/shape/geometric_shapes.h:207:23: error: no member named 'pi' in namespace
'fcl::constants'
return constants::pi * radius * radius *(lz + radius * 4/3.0);
~~~~~~~~~~~^
/opt/local/include/fcl/shape/geometric_shapes.h:212:56: error: no member named 'pi' in namespace
'fcl::constants'
FCL_REAL v_cyl = radius * radius * lz * constants::pi;
~~~~~~~~~~~^
/opt/local/include/fcl/shape/geometric_shapes.h:213:60: error: no member named 'pi' in namespace
'fcl::constants'
FCL_REAL v_sph = radius * radius * radius * constants::pi * 4 / 3.0;
~~~~~~~~~~~^
/opt/local/include/fcl/shape/geometric_shapes.h:247:23: error: no member named 'pi' in namespace
'fcl::constants'
return constants::pi * radius * radius * lz / 3;
~~~~~~~~~~~^
/opt/local/include/fcl/shape/geometric_shapes.h:290:23: error: no member named 'pi' in namespace
'fcl::constants'
return constants::pi * radius * radius * lz;
~~~~~~~~~~~^
12 errors generated.
make[2]: *** [bin/CMakeFiles/voxelizer.dir/voxelizerMain.cpp.o] Error 1
make[1]: *** [bin/CMakeFiles/voxelizer.dir/all] Error 2
make: *** [all] Error 2
How can I fix these?

Hi iamyoukou,
It is my fault that I forget to list the fcl version. I have tried different versions of fcl libraries, and find out the version tags/0.3.3 should work.
So there is the solution:
git clone https://github.com/flexible-collision-library/fcl.git
git checkout tags/0.3.3

Thanks, man! And I just found another way to fix my problem.

constexpr  is used in C++11, so I put set (CMAKE_CXX_STANDARD 11) in voxelizer/CMakeLists.txt.

After 1., some errors about box_p(voxelizer/src/commons.h) and model_p(voxelizer/test/collisionChecker.h) will appear. To fix these two, I changed:
(1) in commons.h
typedef boost::shared_ptr<Box> box_p -> typedef std::shared_ptr<Box> box_p
I installed fcl using Macports and its version is 1.59;
And I found that in this version (maybe just on MacOSX 10.11.6?),  the CollisionObject class uses std:: in its constructor std::shared_ptr<CollisionGeometry>, instead of boost::.

(2) in collisionChecker.h
typedef boost::shared_ptr<Model> model_p-> typedef std::shared_ptr<Model> model_p
Same reason as in (1).
Then, I built voxelizer successfully. And it works nice.

Great to hear that ;)
It seems that your version of libfcl uses the std::shared_ptr, and my library uses boost::shared_ptr.
Thanks for providing a new solution ;p


detect language is missing

this is quit good library but it would better if you add detect language feature

I think this is what you are looking for: https://github.com/k3rn31p4nic/google-translate-api#from-automatic-language-detection-to-english

As mentioned by Androz2091, it already exists. So, I'm closing the issue.


AspNetCore services.AddWindsor() doesn't load Controllers in referenced libraries

SAMPLE SOLUTION WITH REPRO STEPS
https://github.com/sh0uzama/windsor-aspnetcore-controller-issue
When running an AspNetCore web application with the WindsorContainer added
services.AddWindsor();

it seems that only the Controller from the running assembly are resolved.
The only way to make the Castle container understand that it also has to load the Controllers from another assembly is to forcibly specify it
services.AddWindsor(container, opts =>
{
	opts.RegisterControllers(typeof(LibraryController).Assembly, LifestyleType.Transient);
	opts.RegisterControllers(typeof(ApplicationController).Assembly, LifestyleType.Transient);
});

Note that the AspNetCore default container instead loads them all without further specification.
If you try and check the sample solution provided, you will find three different applications

NoWindsor - works flawlessly
WindsorNotWorking - doesn't work (uses services.AddWindsor() without the configure Action)
WindsorWorking - works (uses services.AddWindsor() with the configure Action)

In all those apps, call the following urls:
/Application/Hello (controller inside the application)
/Library/Hello (controller inside the referenced library)
Is this the desired behavior, or is it an issue inside the current implementation of Castle.Facilities.AspNetCore?

Your observed behavior looks to be consistent with the code from what I can see.
In UseEntryAssembly

If the facility starts throwing ComponentNotFoundExceptions because of problems with Assembly.GetCallingAssembly You can optionally use RegisterControllers(Assembly, LifestyleType) if you need more fine grained control for sourcing these framework components.

It doesn't seem there's anything in the facility to automatically register controllers (or anything else for that matter) from anything but the entry assembly.

@sh0uzama I have done this with success:
services.AddMvc().AddApplicationPart(Assembly.GetAssembly(typeof(MyApiController)))

this adds the assembly to the service controller which is later linked to the Windsor container.

But yes, @sh0uzama i agree with @dquist.
What do you think isn't the expected behaviour. The behaviour you explain with the RegisterControllers looks correct to me...


Ref #77: Custom widget support for all types added to ui:widget.

Custom field components
You can provide your own field components to a uiSchema for basically any json schema data type.
For example, let's create and register a dumb geo component handling a latitude and a longitude:
const schema = {
  type: "object",
  required: ["lat", "lon"],
  properties: {
    lat: {type: "number"},
    lon: {type: "number"}
  }
};

class GeoPosition extends Component {
  constructor(props) {
    super(props);
    this.state = {...props.formData};
  }

  onChange(name) {
    return (event) => {
      this.setState({
        [name]: parseFloat(event.target.value)
      }, () => this.props.onChange(this.state));
    };
  }

  render() {
    const {lat, lon} = this.state;
    return (
      <div>
        <input type="number" value={lat} onChange={this.onChange("lat")} />
        <input type="number" value={lon} onChange={this.onChange("lon")} />
      </div>
    );
  }
}

const uiSchema = {"ui:widget": "geo"};

render(<Form
  schema={schema}
  uiSchema={uiSchema}
  fields={fields}/>);

Note: Registered fields can be reused accross the entire schema.
Feedback? @chmac
r=?@magopian

Hmm this patch is wrong as we need to distinguish between fields and widgets; providing a replacement for an object field is definitely not the same as providing an input (widget) for eg. a string.
I might introduce a new ui:field to disambiguate the two distinct use cases.

This is now ready for early review. r=? @magopian

How do you do the correlation between "geo" and the component used here?

This is great! thanks for doing this, I think it will be a really useful addition to the library. Everything looks good to my non-react expert eyes.

How do you do the correlation between "geo" and the component used here?

With this line from the docs sample:
const uiSchema = {"ui:field": "geo"};

@n1k0 Wow, I missed all the excitement. The change looks very cool. Don't have sufficient react / es6 experience to talk as to the code quality, so can only comment on the API.
On first pass, the uiSchema -> fields was not immediately obvious to me. Now I've read it again, I see the logic, and I like it. I can define a field once, and use it multiple times. I could even define the fields map globally and pass it to all my forms, even if all the field components are not necessarily used in every form I guess.
It would be great to add a list of the props to the docs. For example, the this.state = {...props.formData} line doesn't make a lot of sense unless you know what formData is. Something similar to the list in the widgets component would be ideal.
Bottom line, thanks a lot @n1k0, this change is a huge benefit for us. I think this may now be the react form package I've been dreaming of... :-)


HTTP 500 Error

I’m having issues getting the Web Portal to work. Brand new install on a new installation of Debian 9.9. Get an HTTP 500 Error when attempting to open the IP/Install page. lighttpd logs show the following…
2019-04-28 16:49:40: (mod_fastcgi.c.2543) FastCGI-stderr: PHP Parse error:  syntax error, unexpected '$positionsIndexSql' (T_VARIABLE) in /var/www/html/install/index.php on line 252 2019-04-28 16:50:23: (mod_fastcgi.c.2543) FastCGI-stderr: PHP Parse error:  syntax error, unexpected '$positionsIndexSql' (T_VARIABLE) in /var/www/html/install/index.php on line 252 2019-04-28 16:54:17: (mod_fastcgi.c.2543) FastCGI-stderr: PHP Warning:  require_once(/var/www/html/classes/settings.class.php): failed to open stream: No such file or directory in /var/www/html/classes/common.class.php on line 76 2019-04-28 16:54:17: (mod_fastcgi.c.2543) FastCGI-stderr: PHP Fatal error:  require_once(): Failed opening required '/var/www/html/classes/settings.class.php' (include_path='.:/usr/share/php') in /var/www/html/classes/common.class.php on line 76 2019-04-28 16:58:03: (mod_fastcgi.c.2543) FastCGI-stderr: PHP Warning:  require_once(/var/www/html/classes/settings.class.php): failed to open stream: No such file or directory in /var/www/html/admin/index.php on line 34 2019-04-28 16:58:03: (mod_fastcgi.c.2543) FastCGI-stderr: PHP Fatal error:  require_once(): Failed opening required '/var/www/html/classes/settings.class.php' (include_path='.:/usr/share/php') in /var/www/html/admin/index.php on line 34
I’m sure it’s something obvious that I’m missing, any ideas?
Cheers
Chris

It was simple. I forgot a few semicolons and apparently did not commit the fix after fixing it while testing. Update your local master branch and you should be good to go. Unless I forgot something else that is...

Cheers dude, working now :)


Update update checking to work with PyPI

Rather than checking git revisions, which won't work now that we're not distributing this as a repo anymore, we should check the latest version on PyPI. (https://pypi.python.org/pypi/cs251tk)

Maybe using https://pypi.python.org/pypi/update_checker/0.3 ?


Gpg backup enhancements

Additional functionality
1/ completes implementation of --list
2/ adds --select
3/ adds some option checks to prevent conflicting commands
4/ add s3 region to config file
5/ README updated

I can’t picture it. What would it look like? The reason that core-backup
text is there is because list_objects returns any extra unexpected files
too.
On Fri, 28 Jun 2019 at 10:27 pm, Tom Llewellyn-Smith <
<EMAIL_ADDRESS>wrote:

@brahman81 commented on this pull request.
In lib/stellar-core-backup/s3.rb
https://github.com/stellar/stellar-core-backup/pull/9#discussion_r298572045
:

     puts e

   end
 end

fetch list of all s3 objects, sort and return latest/last

def latest()

 @s3_client.list_objects({bucket: @config.get('s3_bucket'), prefix: @config.get('s3_path')}).contents.map{|o| o.key}.sort{|a,b| a.gsub(/(\d+)/,'\1') <=> b.gsub(/(\d+)/,'\1')}.last

def latest(listlen)

 begin

   @s3_client.list_objects_v2({bucket: @s3_bucket, prefix: @s3_path+'/core-backup-'}).contents.map{|o| o.key}.sort{|a,b| a.gsub(/(\d+)/,'\1') <=> b.gsub(/(\d+)/,'\1')}.last(listlen)

Could we have a glob instead of relying on the backup tar files being
called core-backup- ?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/stellar/stellar-core-backup/pull/9?email_source=notifications&email_token=ADLCZLHSX3FKKYJGLO57BGLP4X7S3A5CNFSM4H4B3IC2YY3PNVWWK3TUL52HS4DFWFIHK3DMKJSXC5LFON2FEZLWNFSXPKTDN5WW2ZLOORPWSZGOB47EJQI#pullrequestreview-255739073,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ADLCZLAWE7PTWXV22POSNLLP4X7S3ANCNFSM4H4B3ICQ
.


PANIC: index out of bounds: the len is 1 but the index is 1

Hi Prisma Team! My Prisma Client just crashed. This is the report:
Versions

Name
Version

Node
v12.18.3

OS
debian-openssl-1.1.x

Prisma
2.4.1

Logs
2020-08-16T09:31:54.778Z prisma-client {
  engineConfig: {
    cwd: '/usr/src/app',
    enableDebugLogs: false,
    enableEngineDebugMode: undefined,
    datamodelPath: '/usr/src/app/node_modules/.prisma/client/schema.prisma',
    prismaPath: undefined,
    engineEndpoint: undefined,
    generator: {
      name: 'client',
      provider: 'prisma-client-js',
      output: '/usr/src/app/node_modules/@prisma/client',
      binaryTargets: [],
      previewFeatures: [Array],
      config: {}
    },
    showColors: false,
    logLevel: undefined,
    logQueries: undefined,
    flags: [],
    clientVersion: '2.4.1',
    enableExperimental: [ 'aggregations' ]
  }
}
2020-08-16T09:31:55.139Z plusX Execution permissions of /usr/src/app/node_modules/.prisma/client/query-engine-debian-openssl-1.1.x are fine
2020-08-16T09:31:55.162Z prisma-client Client Version 2.4.1
2020-08-16T09:31:55.162Z prisma-client Engine Version 195d4bdc2d16132977f4ba7a8ca312f7906cb086
2020-08-16T09:32:00.929Z prisma-client Error: PANIC: index out of bounds: the len is 1 but the index is 1

This is a non-recoverable error which probably happens when the Prisma Query Engine has a panic.

https://github.com/prisma/prisma-client-js/issues/new?body=Hi+Prisma+Team%21+My+Prisma+Client+just+crashed.+This+is+the+report%3A%0A%23%23+Versions%0A%0A%7C+Name+++++%7C+Version++++++++++++%7C%0A%7C----------%7C--------------------%7C%0A%7C+Node+++++%7C+v12.18.3+++++++++++%7C+%0A%7C+OS+++++++%7C+debian-openssl-1.1.x%7C%0A%7C+Prisma+++%7C+2.4.1++++++++++++++%7C%0A%0A%0A%0A%23%23+Logs%0A%60%60%60%0A2020-08-16T09%3A31%3A54.778Z+prisma-client+%7B%0A++engineConfig%3A+%7B%0A++++cwd%3A+%27%2Fusr%2Fsrc%2Fapp%27%2C%0A++++enableDebugLogs%3A+false%2C%0A++++enableEngineDebugMode%3A+undefined%2C%0A++++datamodelPath%3A+%27%2Fusr%2Fsrc%2Fapp%2Fnode_modules%2F.prisma%2Fclient%2Fschema.prisma%27%2C%0A++++prismaPath%3A+undefined%2C%0A++++engineEndpoint%3A+undefined%2C%0A++++generator%3A+%7B%0A++++++name%3A+%27client%27%2C%0A++++++provider%3A+%27prisma-client-js%27%2C%0A++++++output%3A+%27%2Fusr%2Fsrc%2Fapp%2Fnode_modules%2F%40prisma%2Fclient%27%2C%0A++++++binaryTargets%3A+%5B%5D%2C%0A++++++previewFeatures%3A+%5BArray%5D%2C%0A++++++config%3A+%7B%7D%0A++++%7D%2C%0A++++showColors%3A+false%2C%0A++++logLevel%3A+undefined%2C%0A++++logQueries%3A+undefined%2C%0A++++flags%3A+%5B%5D%2C%0A++++clientVersion%3A+%272.4.1%27%2C%0A++++enableExperimental%3A+%5B+%27aggregations%27+%5D%0A++%7D%0A%7D%0A2020-08-16T09%3A31%3A55.139Z+plusX+Execution+permissions+of+%2Fusr%2Fsrc%2Fapp%2Fnode_modules%2F.prisma%2Fclient%2Fquery-engine-debian-openssl-1.1.x+are+fine%0A2020-08-16T09%3A31%3A55.162Z+prisma-client+Client+Version+2.4.1%0A2020-08-16T09%3A31%3A55.162Z+prisma-client+Engine+Version+195d4bdc2d16132977f4ba7a8ca312f7906cb086%0A%60%60%60&title=PANIC%3A+index+out+of+bounds%3A+the+len+is+1+but+the+index+is+1&template=bug_report.md

If you want the Prisma team to look into it, please open the link above 🙏

    at NodeEngine.handleRequestError (/usr/src/app/node_modules/@prisma/client/runtime/index.js:1:115267)
    at /usr/src/app/node_modules/@prisma/client/runtime/index.js:1:129724
    at async PrismaClientFetcher.request (/usr/src/app/node_modules/@prisma/client/runtime/index.js:1:210694)
    [...]
2020-08-16T09:32:00.935Z plusX Execution permissions of /usr/src/app/node_modules/.prisma/client/query-engine-debian-openssl-1.1.x are fine
2020-08-16T09:32:05.105Z plusX Execution permissions of /usr/src/app/node_modules/.prisma/client/query-engine-debian-openssl-1.1.x are fine

Reproduction
Schema
model User {
  id  String  @default(cuid()) @id
  posts  Posts[]?  @relation("UserToPosts")
}

model Post {
  id  String  @default(cuid()) @id
  author  User  @relation("UserToPosts", fields: [authorId], references: [id])
  authorId  String
  someField SomeModel?
}

model SomeModel {  id  String  @default(cuid()) @id
  post Post  @relation(fields: [postId], references: [id])
  postId String
}

Query
Prisma.client.user.findMany({
  where: {
    posts: {
      some: {
       someField: null
      }
    }
 })

The generated client suggests that this query is valid. It nevertheless crashes with the error log from above.
Fix
To fix this issue the foreign key for SomeModel has to be stored in the Post model instead of the SomeModel model.

Running into the same problem with Prisma 2.5.1 as well as 2.6.0-dev.32

Hello @harri121
Thanks for reporting this! I was trying to reproduce this but your schema is invalid. On line number 3 you have posts  Posts[]?  @relation("UserToPosts") and we do not allow a list to be optional right now in the schema(see https://github.com/prisma/prisma/issues/847). Can you please provide a working reproduction? Thanks!

Running into the same problem with Prisma 2.5.1 as well as 2.6.0-dev.32

@Frozen666 Can you please provide a reproduction with your example? Thanks would be quite helpful.

@pantharshit00 Sorry for that, that's a typo.
The schema should look like this:
model User {
  id  String  @default(cuid()) @id
  posts  Posts[]  @relation("UserToPosts")
}

model Post {
  id  String  @default(cuid()) @id
  author  User  @relation("UserToPosts", fields: [authorId], references: [id])
  authorId  String
  someField SomeModel?
}

model SomeModel {  id  String  @default(cuid()) @id
  post Post  @relation(fields: [postId], references: [id])
  postId String
}

Hey @harri121
Thanks for the update. I can confirm this issue.
I uploaded the reproduction in this git repo so that engines team can easily access it: https://github.com/harshit-test-org/prisma-client-832


Mislabelling of CGPA and SGPA

The program mislabels CGPA and SGPA, See the attached photo for better explanation.

Here my correct CGPA is 3.51, while my SGPA is 3.49, although the program swaps them which is unexpected behavior.

Thanks and Resolved


Publish images to GHCR

Dockerhub has a rate limit of 100 pulls/6 hours and is continuing to make decisions that aren't on the best interest to FOSS. It would be great if you could push the docker image to GHCR as well. It should only be a few extra lines in your workflow file. Thanks!

I'm all for more choices, even if that does mean splitting the download statistics. 😁

Beautiful, statistics are overrated anyways 😄  You have no idea how easy it is to hit those rate limits when spinning up a Kubernetes cluster that has over 270 pods running in it. Every bit helps.

I'm flattered that you find Mailrise a useful component for so many pods!

Oh I'm only running one instance of mailrise with 3 replicas (stateless yay). I was talking about my whole kubernetes cluster as a whole.


Glide with Instant Run enabled

I am getting an unusual NoClassDefFound Exception when running my app with InstantRun enabled on Android Studio 2.3 which resulting the images not appeared on the screen, but somehow when I disable the instantRun everything works just fine.
java.util.concurrent.ExecutionException: java.lang.NoClassDefFoundError: Failed resolution of: Lcom/newrelic/agent/android/instrumentation/BitmapFactoryInstrumentation;

Seems like you should file this on http://b.android.com? I'm not sure how OkHttp is involved here or what you think could be changed in OkHttp to mitigate. It seems strictly between New Relic's tool and Instant Run.


span_tokenize rtype should be standardized

Currently, there are different Tokenizer classes having the span_tokenize() function that returns a mix of generator/list outputs:

Tokenizer
rtype

CharTokenizer
generator

LineTokenizer
generator

StringTokenizer
generator

RegexpTokenizer
generator

PunktSentenceTokenizer
list

TreebankWordTokenizer
list

span_tokenize rtype should be standardized, either all list or all generator. Related tests should be standardized too.
Question raised comes from https://stackoverflow.com/questions/49290827/span-tokenize-gives-generator-object-as-output

Can I work on this?

Please review PR #1982

Thanks @pulkitmaloo for the PR! I've reviewed it and it looks good.
We'll just let leave PR up for a while and see whether there's any strong objections on returning generators instead of list.

Also, I didn't find any unit tests for Tokenizer classes except for TreebankWordTokenizer, should I work on it?

Sure! If you would like to write some tests for the other Tokenizer classes, that'll be great!
But usually, people only use RegexpTokenizer,  PunktSentenceTokenizer and TreebankWordTokenizer.

This has been solved in #1983. I've not seen any objections for using generators. Closing now.


IF condition in second example is wrong as @isdir has never string value true

The Examples section contains as second example:
forfiles /p c:\ /s /m *.* /c "cmd /c if @isdir==true echo @file is a directory"
The case-sensitive if condition in this command line is never true because of @isdir has either string value TRUE or FALSE, but never true or false. The value true in this command line example should be corrected to TRUE. Alternatively it is possible to insert /I after if to do the string comparison case-insensitive.

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

ID: 3ebfe8b1-07af-a46f-d839-4ee4b15f55d1
Version Independent ID: f96a4e35-724e-1bb0-1f6d-7c67ca500313
Content: forfiles
Content Source: WindowsServerDocs/administration/windows-commands/forfiles.md
Service: unspecified
GitHub Login: @coreyp-at-msft
Microsoft Alias: coreyp

Thanks for the feedback - I've updated the article.


Allow certain recipes to be expliciltly marked as runnable in children directories

I'll start with an example (actual text at end). One term I'm going to use is "owning directory" which is to say the directory which contains the .just file.
Say my recipe is git status
gs:
	git status

I however need to be in the directory with my .just file. (so called "Owning directory")

Now say I change it to
~~gs:
	git status

This means that git status can be run from any child directory in the repository. But it will still consider its working directory as the owning directory.

Now say I change it again to
~~gs:
	git status {~.}

This would still have working directory as owning directory but the command would be git status <relative path of current directory from owning directory>

Now say I change it again to
~~gs:
	git status {~/}

This would still have working directory as the owning directory  but the command would be git status <absolute path of current directory>

Now say I change it again to
~~gs:
	git status {~~}

This would still have working directory as owning directory but the command would be git status <path of directory with .just file>

Now say I change it again to
~.gs:
	git status

The working directory of this recipe would be the current directory.

All these recipes would be invoked using plain j gs.

Proposal
Hello,
I want to propose a feature where you can allow a chosen subset of recipes to be callable from children. The purpose is to be able to run commands like git status (and ...?) from child directories without having to navigate to git root, or having multiple .just files scattered around.
There would be two components to this feature.

How to indicate that this recipe can be run by children?
How to indicate the working directory of a recipe?
How to pass values of "Owning directory" (by this I mean the directory containing the .just file), current directory relative to owning directory, and absolute path to current directory.

I propose the following:

Any recipe that starts with ~ is meant to be inheritable.
The working directory would be determined from the second character of a ~ beginning recipe. If the second character is ~ then working directory would be the owning directory. If the second character is . then the working directory would be the invocation directory.
3 special variables would be autopopulated for such recipes. ~~, ~., ~/. They mean owning directory, invocation directory (relative to owning), invocation directory (absolute).

Implementation questiosn:

How do you go up and find out which of the parent directories has a .just file? What if the parent is a link? If so, what to do about the relative path?

When passing owning directory, should its absolute path be passed or relative, or both should have their individual symbols? (I ran out of symbols...)

Thanks for the issue! I think these are good ideas.
I'm generally a bit hesitant to add new syntax, since it can be hard to read, and also a bit hard to plan, since different syntax elements can conflict with each other.
However, I think implementing some of these things with a generic annotation/attribute syntax, as proposed in #604, would be the way to go.
Some of what's proposed is invocation_directory() is the absolute path of the directory in which just was invoked, so it could be used instead of {~/}.
There isn't an equivalent for {~.}, but I'm wondering if it's necessary. Is there an instance where the absolute path can't be used?
justfile_directory() can be used instead of {~~}.
I'm not sure what ~~ means, since recipes can already be invoked from any subdirectory. Could you elaborate?
I think that ~.RECIPE_NAME, which sets the current working directory to the invocation directory, could be done with an annotation, something like:
#[dont_change_directory]
foo:
  # recipe body

#[no_cd] is way cleaner than ~. I agree.

I'm not sure what ~~ means, ...

If put before the recipe name, it means that that recipe indeed can be called from a subdirectory, and the current working directory would be justfile_directory. Maybe a single ~ could be used but I wanted to be uniform ...
Thanks for the amazing tool btw, no more monthly fiddling with ~/.history in vim to remove all cd and ls and then backup.

If put before the recipe name, it means that that recipe indeed can be called from a subdirectory, and the current working directory would be justfile_directory.

I'm not following, isn't that the default behavior? Currently, normal recipes can be called from any subdirectory, and the default directory is the one that contains the justfile.

Thanks for the amazing tool btw, no more monthly fiddling with ~/.history in vim to remove all cd and ls and then backup.

You bet! So glad to hear it's useful.

Wow, so yeah I just reread the manual and it looks like just does automatically look up for justfile. The problem lies somwhere in the fact that I have a custom invocation of just using an alias j and the fact that my justfile are named .just. Closing, thank you for your time :)

Glad you fixed it! I like the idea of having an annotation to prevent a recipe for changing directories, so I created #762 to track that separately.

I want to note something relevant if it's alright— say my directory structure is as following:
foo/
    .justfile (recipes a, b)
    bar
	    .justfile (recipes c, d)

Doing a just b inside bar doesn't currently work for me. I wonder if it's only me? And if not, is this something you think might be a useful addition? If you think it would be useful, and would be kind enough to point me to the files that need to be changed (should be hopefully a quick couple of minutes) I'd be very interested in submitting a PR.

It is also important to note here that like global config which I recall that you've shown aversion to in the past for adding complication, inheritance as described above can potentially have the same effect and make things unclear in a multiuser environment. A counter argument to this would be the presence of --justfile= flag.


Fixes #163. Fix GNU issue with Achem

Closes #163
This PR fixes an issue with GNU and achem where a pointer was not nullified in one code path.
Note that as this is a bug in Chem, I'm issuing it as a hotfix against main. Once merged into main, we'll make a PR from main to develop.
This is the sort of workflow @tclune and I are trying to use when possible.
Blocking until I can confirm it is zero-diff (it should be obviously so).

Unblocking. Seems zero-diff as expected!


[Rendering] Turn off Adaptive Card response is sent to app confirmation for MS Teams bot app

Target Platforms
Other
SDK Version
1.3
Application Name
teams
Problem Description
when a user submits the action from the adaptive card its shows the response is sent to the app, and how to restrict it, This looks not user-friendly for the users in teams.it
Screenshots
https://user-images.githubusercontent.com/58112273/168658197-6f263ce8-cd5c-4c99-bc00-cfce0f7e6269.png
Card JSON
{
    "type": "AdaptiveCard",
    "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
    "version": "1.3",
    "body": [
        {
            "type": "TextBlock",
            "text": "code",
            "wrap": true,
            "id": "4"
        },
        {
            "type": "Input.Text",
            "placeholder": "Placeholder text",
            "id": "1"
        },
        {
            "type": "TextBlock",
            "wrap": true,
            "id": "2",
            "text": "location"
        },
        {
            "type": "Input.Text",
            "placeholder": "Placeholder text",
            "id": "3"
        },
        {
            "type": "ActionSet",
            "actions": [
                {
                    "type": "Action.Submit",
                    "title": "Action.Submit"
                }
            ]
        }
    ]
}

Sample Code Language
c#
Sample Code
No response

This issue has been copied over to Microsoft Teams repo here: https://github.com/MicrosoftDocs/msteams-docs/issues/6112


[NEW OSS PROJECT]: Rawkode Academy

Are you a maintainer, or core-contributor, to the project?

[X] Yes

We already have a Pulumi.com account?

[X] Yes, we have created an account

Do you agree to regular check-ins, no more than once every 90 days, with a Developer Advocate from the Pulumi team?

[X] Yes

What's your Open Source project called?
Rawkode Academy
What's your GitHub organization or repository?
https://github.com/rawkode-academy
What's Pulumi.com team ID?
rawkode-academy
Do/would you like any assistance with your Pulumi adoption from the DevRel team?

[ ] Yes

Closing out because its not currently being used.


Missing dependency on variantslib

When you require the ppx_jane package via findlib, it doesn't link in variantslib, which cases [@@deriving variants] to fail. I guess this is a missing dependency.

The dependency is specified in the META of ppx_variants_conv. Can you give the full command line that fails to compile?


Add a function to format the state names entered by the user so it be…

…tter matches what the service expects.
@lsmallwood please review the changes. This is merging to v.next.

Looks good  merging


Restore [] to rest param types in bignumber.d.ts

Fixes #203
Note that in emacs + the tide plugin, all the errors were highlighted, so I assume VS Code, Webstorm, etc would all do the same.

I have already fixed this in v8.0.1. Thanks anyway.


Implement Mix and Mega

Self-explanatory, this includes the Shadow Tag ban that was recently decided on.
C H O O N S C O D E B O Y S

If we wanted that, we could have added that. @Slayer95 is re-doing it.

Ah, I wasn't aware of him re-doing it. My mistake for making the request.

Done in abed3f8. I probably should have told you I was redoing it.
Thanks for the reference implementation, @Pikachuun !

No problem, glad I could help somewhat :P


Add Webhooks module

This PR adds a Webhook module for validating web hook requests from WorkOS, i.e. https://workos.com/docs/webhooks/securing-your-webhook-endpoint/validating-events-are-from-workos
My first PR around this was a little premature, this version takes much inspiration from the stripity-stripe library.

Thanks again! Once the PR is updated/rebased we should be good to merge this in.

@jacobiajohnson  Updated the branch with latest and also rebased the parameter rename.  Let me know if you need any other changes.  Thanks!


Remove inject framework

We were barely using it.
The framework requires fully creating objects before wiring
up dependencies, which is a violation of OO concepts. An
object should be complelely valid after the constructor returns.

Before we do better Dependency Injection, lets get out interfaces right. The inject framework makes some a practice a requirement for the object composition:   the requirement that you fully create objects with unfulfilled dependencies.


Installs should set path environment vars so capabilities can be detected.

Set/Remove environment variables, eg. {key:"UNITY_2017.4.2f2", value: ""}.
This would make them discoverable in online build systems and leveraged appropriately.

Hey I am interested in contributing here, can you help me with this bug, tell me where to get started?

Install-UnitySetupInstance starts here: https://github.com/Microsoft/unitysetup.powershell/blob/07042627b82c31631af8120b4cb62fb310063683/UnitySetup/UnitySetup.psm1#L414
It could write an env var, e.g. UNITY_ with the install path as the value.
Let me know if you have any questions about that code! Thanks for reaching out to get involved. =)!!!


Master upgrades

This is the worklist item for a minimum viable master upgrade mechanism for 1.0. Other issues will improve upon the feature spec'd here.
Minimum requirements:

provider: G*E
in-place: no (can request new node / disk)
language: bash

Plan:

mechanism: out-of-band (not on master)
provider: GCE, then GKE

Outline:

Stop master VM
Blow away boot PD but preserve data PD
Create a new boot PD from latest image
Update metadata startup script
Attach boot PD to master VM
Start master VM

[May want to re-order to minimize downtime for VM?]
Extensions:

Here we'll add issues that, while not required to meet the minimum 1.0 bar, would be great to have.

@zmerlynn please edit this as the requirements / plan / outline change
Related work

#2524 Full cluster upgrade discussion
#3174 Looked at requirements for master upgrades (GCE)
#4175 Put master data on a PD and reserved the master's IP (GCE)
#4855 Full cluster upgrade discussion for 1.0; clarifies versioning
#5472 Proposal for kubedeploy
#6079 Node upgrades roll-up

+cc @dchen1107 @davidopp @lavalamp @erictune @zmerlynn @alex-mohr

Thanks Max.  Re: outline, may want to re-order actual implementation to minimize downtime?  E.g. create new boot PD first in case it fails or takes a long time.  Then stop VM, swap PD refs, update metadata, restart VM, and only then delete old PD?
And this might be too much complication, but it may also be worth having a rollback plan, e.g. if master doesn't come up or respond, stop it and switch back to the known-good old PD?

We'll call those "refinements" :)
On Fri, Mar 27, 2015 at 3:34 PM, Alex Mohr<EMAIL_ADDRESS>wrote:

Thanks Max. Re: outline, may want to re-order actual implementation to
minimize downtime? E.g. create new boot PD first in case it fails or takes
a long time. Then stop VM, swap PD refs, update metadata, restart VM, and
only then delete old PD?
And this might be too much complication, but it may also be worth having a
rollback plan, e.g. if master doesn't come up or respond, stop it and
switch back to the known-good old PD?
—
Reply to this email directly or view it on GitHub
https://github.com/GoogleCloudPlatform/kubernetes/issues/6075#issuecomment-87108835
.

wrt cluster-upgrades. It would be nice if Kubernetes supports clustering of the master nodes. We currently have three "manager" nodes running on CoreOS with their primary focus being running a HA Etcd cluster. Besides those three, we also have a scalable number of "worker" nodes.
Since Etcd (preferably) requires a cluster of three nodes anyway, and Kubernetes uses Etcd, it would be nice to be able to use the other Etcd nodes as Kubernetes master nodes as well.
This way, upgrading becomes a lot easier, with zero-downtime as well. You simply swap out each master node one-by-one, and data gets replicated across the masters as soon as a new master joins the cluster.
Currently, we have Kubernetes master running on all three manager nodes (because it simplifies our setup where all manager nodes are 100% equal, and all worker nodes as well), but the workers only connect to the first one, due to the current single-master limitation.

We are planning to do master clustering soon after 1.0. There are several steps to this -- running multiple etcd replicas, running controller manager and scheduler in warm standby configuration, and running multiple API server replicas. I agree that this will make master upgrade somewhat more complicated.
Some relevant issues and docs are  #6559, #8295, and
https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/proposals/high-availability.md
Longer-term we are planning to make the master components be self-hosting so we can use regular Kubernetes rolling upgrade mechanisms to upgrade the master components.

@davidopp awesome! /cc @josephjacks

@zmerlynn @roberthbailey is there any additional work for this for 1.0 (other than #8151, which is almost done)? If not, I'll close this.

I think https://github.com/GoogleCloudPlatform/kubernetes/blob/master/cluster/gce/upgrade.sh meets this one for GCE and thus is post-v1 or closable?
It'd be nice if someone'd do an equivalent for AWS, for example.  @justinsb might be interested, but probably busy with other things?  Someone else?

I think we're done here for GCE, yeah - except for testing.

@zmerlynn does #8081 capture the testing we want?  if so, please close, else please file a bug that captures?

Closing, since #8081 encompasses testing.


NETOBSERV-1426: detect external workloads / openshift subnets

Description
New fields in FlowCollector API to enable detection of openshift subnets (hence be able to detect cluster-external IPs), and allow custom labelling based on IPs / subnets
Dependencies

n/a
Checklist
If you are not familiar with our processes or don't know what to answer in the list below, let us know in a comment: the maintainers will take care of that.

[x] Is this PR backed with a JIRA ticket? If so, make sure it is written as a title prefix (in general, PRs affecting the NetObserv/Network Observability product should be backed with a JIRA ticket - especially if they bring user facing changes).
[x] Does this PR require product documentation?

[ ] If so, make sure the JIRA epic is labelled with "documentation" and provides a description relevant for doc writers, such as use cases or scenarios. Any required step to activate or configure the feature should be documented there, such as new CRD knobs.

[ ] Does this PR require a product release notes entry?

[ ] If so, fill in "Release Note Text" in the JIRA.

[ ] Is there anything else the QE team should know before testing? E.g: configuration changes, environment setup, etc.

[ ] If so, make sure it is described in the JIRA ticket.

QE requirements (check 1 from the list):

[x] Standard QE validation, with pre-merge tests unless stated otherwise.
[ ] Regression tests only (e.g. refactoring with no user-facing change).
[ ] No QE (e.g. trivial change with high reviewer's confidence, or per agreement with the QE team).

This is ready for review. Here's an example:

using this config:
# ...
  processor:
    subnetLabels:
      openShiftAutoDetect: true
      customLabels:
      - cidrs: ["<IP_ADDRESS>/32"]
        name: "Google"

... and then running some curl from within a pod to see Google appearing

@jpinsonneau I added the externalIP one like you suggested. According to the docs, it's generally only used in bare-metal clusters; but still doesn't hurt to add.

Do you think that would be useful in CLI ? That could be part of the scripts to configure FLP properly

I guess yes, for instance an interesting use case for the CLI and this feature could be "show me all the external traffic" ie. traffic with empty Src/DstSubnetLabel ; that implies to do also in CLI the extraction of the ocp Network cidrs & reinjection in FLP config

/ok-to-test

(rebased without change)

Codecov Report
Attention: Patch coverage is 30.88235% with 188 lines in your changes are missing coverage. Please review.

Project coverage is 65.68%. Comparing base (2bcd974) to head (5e09506).

Files
Patch %
Lines

controllers/flp/flp_controller.go
32.53%
53 Missing and 3 partials :warning:

...s/flowcollector/v1beta1/zz_generated.conversion.go
24.00%
36 Missing and 2 partials :warning:

...pis/flowcollector/v1beta1/zz_generated.deepcopy.go
0.00%
35 Missing :warning:

...pis/flowcollector/v1beta2/zz_generated.deepcopy.go
8.57%
30 Missing and 2 partials :warning:

controllers/flp/flp_pipeline_builder.go
47.82%
22 Missing and 2 partials :warning:

controllers/consoleplugin/consoleplugin_objects.go
0.00%
2 Missing and 1 partial :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #559      +/-   ##
==========================================
- Coverage   66.95%   65.68%   -1.28%
==========================================
  Files          65       65
  Lines        8116     8363     +247
==========================================
+ Hits         5434     5493      +59
- Misses       2334     2512     +178
- Partials      348      358      +10

Flag
Coverage Δ

unittests
65.68% <30.88%> (-1.28%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

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

/label qe-approved

(rebased without change)

/approve


my html program is not saving automatically

Is your feature request related to a problem? Please describe.

Describe the solution you'd like:

Describe alternatives you've considered:

Additional context:

Closing as incomplete. Please feel free to add more information if you have any and we can re-open the issue.


Exception java.lang.IllegalStateException: Surface has already been released.

Steps to reproduce
Random crash cached in Play console
Expected results
Not crashing
Actual results
App chashes
Code sample
Code sample
[Paste your code here]

Screenshots or Video

Screenshots / Video demonstration
[Upload media here]

Logs
Logs
Exception java.lang.IllegalStateException: Surface has already been released.
  at android.view.Surface.checkNotReleasedLocked (Surface.java:787)
  at android.view.Surface.lockHardwareCanvas (Surface.java:537)
  at io.flutter.plugin.platform.PlatformViewWrapper.draw (PlatformViewWrapper.java:169)
  at android.view.View.updateDisplayListIfDirty (View.java:24036)
  at android.view.View.draw (View.java:24907)
  at android.view.ViewGroup.drawChild (ViewGroup.java:4780)
  at android.view.ViewGroup.dispatchDraw (ViewGroup.java:4538)
  at android.view.View.updateDisplayListIfDirty (View.java:24022)
  at android.view.View.draw (View.java:24907)
  at android.view.ViewGroup.drawChild (ViewGroup.java:4780)
  at android.view.ViewGroup.dispatchDraw (ViewGroup.java:4538)
  at android.view.View.updateDisplayListIfDirty (View.java:24022)
  at android.view.View.draw (View.java:24907)
  at android.view.ViewGroup.drawChild (ViewGroup.java:4780)
  at android.view.ViewGroup.dispatchDraw (ViewGroup.java:4538)
  at android.view.View.updateDisplayListIfDirty (View.java:24022)
  at android.view.View.draw (View.java:24907)
  at android.view.ViewGroup.drawChild (ViewGroup.java:4780)
  at android.view.ViewGroup.dispatchDraw (ViewGroup.java:4538)
  at com.android.internal.policy.DecorView.dispatchDraw (DecorView.java:1179)
  at android.view.View.draw (View.java:25180)
  at com.android.internal.policy.DecorView.draw (DecorView.java:1161)
  at android.view.View.updateDisplayListIfDirty (View.java:24036)
  at android.view.ThreadedRenderer.updateViewTreeDisplayList (ThreadedRenderer.java:768)
  at android.view.ThreadedRenderer.updateRootDisplayList (ThreadedRenderer.java:774)
  at android.view.ThreadedRenderer.draw (ThreadedRenderer.java:872)
  at android.view.ViewRootImpl.draw (ViewRootImpl.java:6051)
  at android.view.ViewRootImpl.performDraw (ViewRootImpl.java:5706)
  at android.view.ViewRootImpl.performTraversals (ViewRootImpl.java:4795)
  at android.view.ViewRootImpl.doTraversal (ViewRootImpl.java:3288)
  at android.view.ViewRootImpl$TraversalRunnable.run (ViewRootImpl.java:11344)
  at android.view.Choreographer$CallbackRecord.run (Choreographer.java:1689)
  at android.view.Choreographer$CallbackRecord.run (Choreographer.java:1698)
  at android.view.Choreographer.doCallbacks (Choreographer.java:1153)
  at android.view.Choreographer.doFrame (Choreographer.java:1079)
  at android.view.Choreographer$FrameDisplayEventReceiver.run (Choreographer.java:1646)
  at android.os.Handler.handleCallback (Handler.java:958)
  at android.os.Handler.dispatchMessage (Handler.java:99)
  at android.os.Looper.loopOnce (Looper.java:230)
  at android.os.Looper.loop (Looper.java:319)
  at android.app.ActivityThread.main (ActivityThread.java:8919)
  at java.lang.reflect.Method.invoke
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:578)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1103)

Flutter Doctor output
Doctor output
Doctor summary (to see all details, run flutter doctor -v):
[√] Flutter (Channel stable, 3.24.4, on Microsoft Windows [Version 10.0.19045.5011], locale pl-PL)
[√] Windows Version (Installed version of Windows is version 10 or higher)
[√] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
[√] Chrome - develop for the web
[√] Visual Studio - develop Windows apps (Visual Studio Community 2022 17.11.5)
[√] Android Studio (version 2024.1)
[√] IntelliJ IDEA Community Edition (version 2023.3)
[√] VS Code (version 1.95.1)
[√] Connected device (4 available)
[√] Network resources

• No issues found!

Closing as duplicate of https://github.com/flutter/flutter/issues/155018. This should be fixed as mentioned at https://github.com/flutter/flutter/issues/155018#issuecomment-2377635744.

@huycozy do you know when it be released on stable channel?

The fix https://github.com/flutter/engine/commit/57ae2d2130275c09ec1d4a83a38fa38a50460279 is currently on Flutter beta channel 3.27.0-0.1.pre. I have no idea about the time on stable but you can read more about the build release channels here https://github.com/flutter/flutter/blob/master/docs/releases/Flutter-build-release-channels.md.


feat: Update Devicon to the latest version

Things added/changed:

Update Devicon to the latest version.

yarn.lock may be missing some tweaking.

The lockfile shouldn't be directly edited. When you update a dependency, for example via yarn add<EMAIL_ADDRESS>or even by just running  yarn after changing the package.json, the lockfile automaticaly gets updated. More about that here


Update manage-creation-of-groups.md

Added a Step to click on add a group.

Issue# https://github.com/MicrosoftDocs/OfficeDocs-O365ITPro/issues/862

@nenonix @JohanFreelancer9 - kindly do the copy editor review for this PR. Thanks.

@MikePlumleyMSFT - PR has been copy edited and is ready for final review. This is based on issue #862
Thank you.
cc: @kenwith


BM25

This issue is a WIP!
Background
This issue is not about any user-facing features of BM25. The general idea is that we want to develop user-facing features that make use of BM25 and therefore being able to perform BM25 searches becomes a requirement. This issue is about creating this functionality.
Overview
Looking at the Lucene implementation we can see that to calculate the score we need to following values:
“tf, computed as freq / (freq + k1 * (1 — b + b * dl / avgdl)) from:”
“idf, computed as log(1 + (N — n + 0.5) / (n + 0.5)) from:”

Looking at the individual parameters they are defined as follows:

param
Explanation
Source

freq
Frequency of term in each doc
✅ analysis at import time, contained in inverted index result array element

k1
Static parameter to control
:x: default value from schema

b
Static parameter to control
:x: default value from schema

dl
Document / field length
:x:

avgdl
Mean document length
:x:

N
Number of total docs in the index
:x:

n
Number of matching docs for a particular term
✅ len of inverted index result array

Anything marked with a :x: is something that's not currently present in Weaviate and needs to be added, see below.
Requirements
Static parameters k1 and b
The assumption is that they rarely change. ~During development, they could be fixed in the code and eventually made part of the schema so that users can tweak them if they desire.~ Update: See @byronvoorbach's comment below, they should be configurable from the get go.
Total doc count
Currently, there is no good way to efficiently get the total number of documents. This has been a pain point in { Aggregate { meta { count } } } for some time already. The challenge is that in an LSM-tree based index taking a simple count of the keys present does not yield the correct results. A future segment could have an id indexed only to attach a tombstone to an entry from a previous segment. This challenge needs to be overcome. In addition - due to this parameter being required in every read query, the value can be cached as long as indices haven't changed. This would be part of the LSMKV package.

Hi @etiennedi!
Really looking forward to this implementation!
I would like to comment on the k1 vs b discussion. Having developed quite some solutions for the e-commerce space, in my experience we play around with these parameters to tune for specific needs. Sometimes you don't want to take (avg) field length in to account, which is only possible by turning with these values. I understand that it might not be the highest priority while developing this feature, but Weaviate supporting a pluggable similarity model would be great down the road.
I'm open for contributing/helping/testing!! 😄

@byronvoorbach, this is amazing feedback. Thank you. I read a few articles on BM25 and one article mentioned something along the lines of "these rarely require adjusting in real life" which I trusted blindly. Knowing that there is actual value in adjusting those, we will absolutely make them configurable. It's not much effort to expose them as part of the config and if you have use cases for it, I'm all for it!

I'm open for contributing/helping/testing!! 😄

Thanks @byronvoorbach!

Just for the documentation (about configurable hyper params):

https://www.elastic.co/fr/blog/practical-bm25-part-3-considerations-for-picking-b-and-k1-in-elasticsearch
https://github.com/castorini/anserini/blob/master/docs/experiments-msmarco-doc.md#bm25-tuning

(not) Tweaking k/b params has been a hot topic few years ago when first DL algo was compared to BM25 (default param don't work well on MsMarco for instance, MsMarco being the defacto standard reranking dataset nowaday).
As you can see in the 2nd link As expected, BM25 tuning makes a big difference! :-)

@pommedeterresautee Great input and resources. Thanks for sharing.

You're welcome!
2 things which comes in mind regarding this issue:

in multi fields docs (in particular titles + content), how will it work? In search, in this case, BM25F is the standard and is known to work very well. It has recently been added to ES (https://opensourceconnections.com/blog/2021/06/30/better-term-centric-scoring-in-elasticsearch-with-bm25f-and-the-combined_fields-query/ for more info). If not BM25F, 2 options remaining: flatten all texts in a single field (may be okish), or compute 1 score per field but then you need to provide some way to merge signals (aka the API is complex like ES/SolR, which I don't think is a good idea as Weaviate is more vector oriented). The good thing about BM25F is that it's a good default for most cases and may keep the API simple.
you may want to provide a multi lingual stemmer somewhere, or plural of common words will get super high scores, etc. If not provided by Weaviate, then the user should be able to provide 2 flows of texts, a stemmed one and one to store as a meta to retrieve (may increase memory footprint, etc.). If you decide to provide a stemmer, porter is very well known and of low quality outside english. Unine is less well known and provide good results. Both are provided in Lucene (Unine is the light stemmer option of several languages).

I agree with @pommedeterresautee on the stemmer part. I've had good results with hunspell, but that requires a dictionary per language.. Might be a bit too much to include for a first round. Could argue the same for stopwords actually as well now that I think about it. Default Lucene stopword lists are sometimes a bit too broad setup for different use cases.
Having a multi-field type setup (like we would always use in ES) has a preference, but not sure what the impact would be for implementing such a feature into Weaviate. Being able to combine scores for these fields (dismax / bool) would be a requirement then as well.

Thanks, both. This discussion is such a great example of great help from the open-source community. Very happy to be able to build on your experience around these topics.
Before diving into the two specific topics, let me preface this by saying that the goal right now is to keep it simple without obstructing future extension potential. Generally, Weaviate is a vector-first search engine and the goal is to use BM25 (and potentially other ranking metrics in the future) to aid vector search. This may also mean that the BM25 implementation itself may not be as powerful as those in keyword/BM25-centric search engines, but can still provide a lot of value as its main purpose is to overcome the limitations of pure vector search.
Now to the individual topics:

Multi-Field Documents
Currently, we use the inverted index to fuel the filters in Weaviate which treat fields independently. I.e. the term frequencies, etc. are also calculated on a per-field basis. We do not (yet) capture avg document length, etc., but my intuition would say it makes the most sense to also keep doing this on a per-field basis. I have not looked into BM25F in detail yet, but from my understanding, it's a simple weighing of the individual fields. This also seems quite intuitive to me. We could pick best practice defaults and expose this through configuration. So that if a user really needs to change the ratio e.g. between title and body, they can. Flattening all into a single field is definitely also an option. The downside here would be that we would have a lot of duplication in the inverted index, as we'd have each field individually for the filters and then have another field itself containing all fields for BM25. This makes me prefer individual fields and an aggregation a la BM25F with the simplest possible API.

Stemming
I was originally thinking of stemmers being a "future improvement" to keep this is as small as possible and be able to move as quickly as possible. But you do raise a great point about giving way too much score to plurals of frequent words. Under the above considerations of BM25 in Weaviate being more of an aid to vector search, we might go the route of ignoring this for now and adding a stemmer later if we see this being a problem. If we come to the conclusion that we will add a stemmer, I'll definitely check out all three suggestions from above. tl;dr: I don't know how big of a problem this really is for our use cases and would prefer to run into this issue before trying to fix it.

Stopwords
Stopwords introduce another problem other than search result quality: Being super common they tend to blow up the inverted index. This has both an impact on disk footprint as well as memory and CPU time when a query contains stopwords. So, at least eliminating the most common ones for each language should add a lot of value. In my head, I'm thinking of a very simple API where you could select a default (e.g. en), but could also add and remove individual stopwords to customize it. If the default is none, you can just add whatever you like to create your own stopword list. Since the defaults will be very simple data structures, it should be quite easy to contribute more lists for speakers of not-yet-supported languages.

Again, thanks for all the help in designing this feature and setting the correct priorities!

Do we need BM25?
I thought using nearText with a transformer model brings all the Lucene analysers like stemming and stopwords.
After all, those analysers (or others like OpenNLP) were built to bring some semantic to Lucene before the edge of transformers and vector search..

I thought using nearText with a transformer model brings all the Lucene analysers like stemming and stopwords.

There are cases where out-of-domain searches with transformers models simply don't perform as well as BM25. Or other scenarios where a semantic search might be aided by keyword matching. For example, think of matching a webshop search query that needs to match a specific brand, but the transformer model does not understand the brand name. By taking the best of both worlds we can achieve better search results than either method on its own could do.

After all, those analysers (or others like OpenNLP) were built to bring some semantic to Lucene before the edge of transformers and vector search.

Some of them, yes. But as @pommedeterresautee pointed out, without stemming, for example, we consider some words to be rarer than they are, giving them too much weight, resulting in a worse score.
As outlined above: The main goal of BM25 in Weaviate is to overcome the limitations of semantic search, not replace it. I see BM25 basically as "keyword matching with a score" (as opposed to binary keyword-based filtering). How that score gets combined with semantic search scores is a completely different topic and may indeed not be needed in some cases, but very much so in others.

In the use case we have in our company for Weaviate (document search), a basic support of lexical search (BM25) would be enough for us to drop ElasticSearch and build only around Weaviate as our single source of candidates to rerank. I am under the impression that our use case is quite common for vector db users.
Regarding stop list, the right list is ALWAYS custom whatever the use case (even if it starts with a standard one), so just having a simple way to provide one is definitely a good solution.
Regarding the stemmer, without it, search results may be very wrong and hide the advantage of having lexical search. I have understood that on Vespa which has several internet scale users, it's common to just import some content pre tokenized / stemmed ready to be indexed (you can also build your own Java module to prepare content). Doing similar thing on Weaviate would free you from maintaining that part but it will make the feature less accessible to new users (which can have decent results from dense embeddings only indexation in any case).

I think we should decouple the topics of BM25 (ranking) from analysers (data prep).
OpenNLP provides ML analysers (used by ES, Solr, and Vespa). Could it be integrated as a module/step in Weaviate?

@pommedeterresautee

Regarding stop list, the right list is ALWAYS custom whatever the use case (even if it starts with a standard one), so just having a simple way to provide one is definitely a good solution.

Great point, the goal here should be the ease of use to set it. Could also mean file-based at runtime, etc. Want to keep the "how" open for now, but the goal should be ease-of-use and flexibility.
@pommedeterresautee

Doing similar thing on Weaviate would free you from maintaining that part but it will make the feature less accessible to new users

@eostis

Could it be integrated as a module/step in Weaviate?

I really like the idea of handling this in a module. So that by default there would be no stemming or a very minimal stemming, but any kind of pre-processing could be replaced by either a more complex or a completely custom module.
@pommedeterresautee

And regarding the mixing of scores, IMO it's definitely outside the scope of the vector DB. There are simple ways of doing it (like weighting each score) and there are tons of more complex fusion strategies (you can check papers in DL search from 2017-2019 for some inspiration).

Our goal is to both serve power users like yourself who want and appreciate full control over distinct search types. As well as provide an easy way to get started for beginners. This could mean that you could do two searches (bm25, vector) and combine the results in any way you like in your application logic. But, additionally, a simple "hybrid" mode could use simple mechanisms (like weighting each score) to optionally combine this inside the DB already - for those who don't have or don't want to have an elaborate application logic on top.

about fusing lists from 2 systems -> https://twitter.com/jobergum/status/1488778519110946817?s=20&t=xl09YQ88wTeG1X0YjoEC7Q
Paper:
https://arxiv.org/pdf/2010.00200.pdf


fix ics20 withdrawal: include withdrawals in effect hash and tx builder

Merging, will test between preview & local devnet shortly.


WIP: Add README

This talks about output which we haven't written yet, but I figured I'd first draft the README.
See #9 as well!

Has been rebased on the eslint branch at https://github.com/mzgoddard/preact-render-spy/pull/18/commits/fb25747bb12f21f5ea8b0faf5d01375e792c8084 -- noticed a conflict...

Based back in the Base

Note that this would rename this.spy in your new PR @mzgoddard you might want to land this first


User uploads document for progress report

This issue was moved to dumparkltd/hr-nmrf-client#52

@tmfrnz to consider options for uploading files directly from client to AWS S3

will mainly handle client-side but will want server-side authorisation via endpoint eg https://github.com/odysseyscience/react-s3-uploader#ruby-on-rails-assuming-fog-usage

@barancw will need to add the bucket region to fog config to make it work with any region. default setup only appears to work with standard region (US east)
https://github.com/dumparkltd/hr-nmrf-server/blob/master/config/initializers/fog.rb
::FogStorage = Fog::Storage.new(
provider: 'AWS',
aws_access_key_id: ENV['AWS_ACCESS_KEY_ID'],
aws_secret_access_key: ENV['AWS_SECRET_ACCESS_KEY'],
region: ENV['AWS_BUCKET_REGION']
)

@tmfrnz: The build is in progress.  I set the region to Asia Pacific (Sydney)	ap-southeast-2.  You can change it at: https://dashboard.heroku.com/apps/undp-sadata-staging/settings in the config vars.

thanks @barancw!

@barancw confirming that this is working now


Re-render and rebuild

Checklist

[x] Used a personal fork of the feedstock to propose changes
[x] Bumped the build number (if the version is unchanged)
[ ] Reset the build number to 0 (if the version changed)
[x] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[x] Ensured the license file is being packaged.

@conda-forge-admin, please rerender

Closing as this is just to debug https://github.com/conda-forge/casadi-feedstock/issues/91 .


Header parsing with empty content in the first line

If the email contains a header in this format,
Subject:
 =?iso-8859-2?Q?FW:_KOPIE_dokladu_Stavebniny_DEK_a.s._xxxxxxxxx_-_NEPLA?=
 =?iso-8859-2?Q?=ABTE_ji=BE_hrazeno_v_hotovosti?=

the header is ignored. I have prepared a pull request with a fix.
https://github.com/vaibhavpandeyvpz/phemail/pull/9

This PR https://github.com/vaibhavpandeyvpz/phemail/pull/9 you mean?

Merged as lgtm


Are Empire modules available as .ps1 scripts?

As an example, I would like to execute a script (.ps1/.bat) that does the same action as the userland/schtasks persistence module would do when run successfully on an agent.
How would I do this?

Running empire with the --debug flag will output the last module executed to a file (LastTask). This is essentially the powershell source for the module. You may need to modify it a bit to execute it as a standalone script.

Yes this is what I am looking for, I'm sure. Except that I don't see the LastTask.ps1 being created. I looked for it in my Empire directory but it is not there.

root@edoll:~/Empire# ls
LICENSE    changelog    data       empire        lib
README.md  clickme.lnk  downloads  empire.debug  setup

My empire.debug log:

2017-12-21 14:04:59 Empire : [*] Empire starting up...
2017-12-21 14:21:28 Empire : [*] Set module powershell/persistence/userland/schtasks to be global script autorun.
2017-12-21 14:26:26 Empire : [*] Empire shutting down...

@honeyfairy the file will only show up once the module has executed.

Okay, I see it now. Thanks a million @xorrior

No problem


python312Packages.morecantile: 5.4.2 -> 6.0.0

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for python312Packages.morecantile is: Construct and use map tile grids in different projection
meta.homepage for python312Packages.morecantile is: https://developmentseed.org/morecantile/
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes
Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found 6.0.0 with grep in /nix/store/rk25nph12a21jv34i8qjwl17jp3mavl9-python3.12-morecantile-6.0.0
found 6.0.0 in filename of file in /nix/store/rk25nph12a21jv34i8qjwl17jp3mavl9-python3.12-morecantile-6.0.0

Rebuild report (if merged into master) (click to expand)

5 total rebuild path(s)

5 package rebuild(s)

First fifty rebuilds by attrpath

python311Packages.morecantile
python311Packages.rio-tiler
python312Packages.morecantile
python312Packages.rio-tiler

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/rk25nph12a21jv34i8qjwl17jp3mavl9-python3.12-morecantile-6.0.0 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A python312Packages.morecantile https://github.com/r-ryantm/nixpkgs/archive/1a48ff70729306a4ce39f0bb69fcf2b25902dd91.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/1a48ff70729306a4ce39f0bb69fcf2b25902dd91#python312Packages.morecantile

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/rk25nph12a21jv34i8qjwl17jp3mavl9-python3.12-morecantile-6.0.0
ls -la /nix/store/rk25nph12a21jv34i8qjwl17jp3mavl9-python3.12-morecantile-6.0.0/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
nixpkgs-review result
Generated using nixpkgs-review.
Command: nixpkgs-review

x86_64-linux

:x: 4 packages failed to build:

python311Packages.rio-tiler
python311Packages.rio-tiler.dist
python312Packages.rio-tiler
python312Packages.rio-tiler.dist

:white_check_mark: 4 packages built:

python311Packages.morecantile
python311Packages.morecantile.dist
python312Packages.morecantile
python312Packages.morecantile.dist

Maintainer pings
cc @autra @imincik @l0b0 @nh2 @nialov @sikmir @willcohen for testing.

[!TIP]
As a maintainer, if your package is located under pkgs/by-name/*, you can comment @NixOS/nixpkgs-merge-bot merge to automatically merge this update using the nixpkgs-merge-bot.

Add a :+1: reaction to pull requests you find important.

nixpkgs-review result
Generated using nixpkgs-review.
Command: nixpkgs-review pr 349069

x86_64-darwin

:x: 4 packages failed to build:

python311Packages.rio-tiler
python311Packages.rio-tiler.dist
python312Packages.rio-tiler
python312Packages.rio-tiler.dist

:white_check_mark: 4 packages built:

python311Packages.morecantile
python311Packages.morecantile.dist
python312Packages.morecantile
python312Packages.morecantile.dist

https://github.com/cogeotiff/rio-tiler/pull/630#issuecomment-2424236298

nixpkgs-review result
Generated using nixpkgs-review.
Command: nixpkgs-review pr 349069

x86_64-darwin

:white_check_mark: 8 packages built:

python311Packages.morecantile
python311Packages.morecantile.dist
python311Packages.rio-tiler
python311Packages.rio-tiler.dist
python312Packages.morecantile
python312Packages.morecantile.dist
python312Packages.rio-tiler
python312Packages.rio-tiler.dist

nixpkgs-review result
Generated using nixpkgs-review.
Command: nixpkgs-review pr 349069

x86_64-darwin

:white_check_mark: 8 packages built:

python311Packages.morecantile
python311Packages.morecantile.dist
python311Packages.rio-tiler
python311Packages.rio-tiler.dist
python312Packages.morecantile
python312Packages.morecantile.dist
python312Packages.rio-tiler
python312Packages.rio-tiler.dist

nixpkgs-review result
Generated using nixpkgs-review.
Command: nixpkgs-review pr 349069

x86_64-linux

:white_check_mark: 8 packages built:

python311Packages.morecantile
python311Packages.morecantile.dist
python311Packages.rio-tiler
python311Packages.rio-tiler.dist
python312Packages.morecantile
python312Packages.morecantile.dist
python312Packages.rio-tiler
python312Packages.rio-tiler.dist


Proposal: Move /System/Settings/General/Firmware Mirror & Flavour to /System/Firmware

Hi,
I would like to propose this move since it seems to fit better and since the current arrangement confuses me with options concerning the same topic in 2 different menus.
Cheers

You must be reading my private TODO list :) This will happen soon, I've asked Ad to take care of this for me as the firmware page is MVC, but the firmware settings are in the old parts of the GUI so there is a config path mismatch.... reassigning, thanks!

Glad about your feedback, fichtner!
What I am currently doing is: I am a brand new, pure virgin user, who has never seen your interface before and who goes through it step by step.
I am recording every discrepancy/inconsistency that I might encounter/feel, since as soon as I will get used to the interface, I will not notice them anymore myself!
Hope that helps!
Cheers

@fichtner this one will have to wait, the best solution would be to move the properties into a new style model, but we can only do that if the data can either be migrated or moves with it automatically.
My current idea is to extent the model system to be able to reference a "previous location" for a property which will fetch the data from there if its not available in the new location and deletes the old location on save (kind of an inline migration).
This will need some additional thinking, and I first like to have unit tests in place before changing any thing major here.


Reverse skiplist index scan is not used in some cases.

I use latest version of ArangoDB (3.0.10).
I found issue with reverse scan index. And try to simplify my query for this issue.
I have two collections: talks and messages. Also i have skiplist index on collection messages with the fields talkId, isRemoved, date, _key.
Common case
Optimizer can understand when it can use skiplist index in reverse order. For example query with explain:
Query string:
 for msg in messages
 filter msg.talkId == @talkId
     && msg.isRemoved == false
     && msg.date <= '2016-01-01'
 sort msg.date desc, msg._key desc
 return msg

Execution plan:
 Id   NodeType        Est.   Comment
  1   SingletonNode      1   * ROOT
  9   IndexNode       4544     - FOR msg IN messages   /* reverse skiplist index scan */
  8   ReturnNode      4544       - RETURN msg

Indexes used:
 By   Type       Collection   Unique   Sparse   Selectivity   Fields                                      Ranges
  9   skiplist   messages     false    false            n/a   [ `talkId`, `isRemoved`, `date`, `_key` ]   ((msg.`talkId` == "C-269") && (msg.`isRemoved` == false) && (msg.`date` <= "2016-01-01"))

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

Subquery
Let's make the query more complex. For example I want to get talks with the latest message on each (I use additional sort by the field _key for case when messages have the same date).
Query with explain:
Query string:
 for talk in talks
     let msgs = (
         for msg in messages
     	filter msg.talkId == talk.talkId
     	    && msg.isRemoved == false
     	    && msg.date <= '2016-01-01'
         sort msg.date desc, msg._key desc
         return msg
     )

 return { talkId: talk._id, lastMsg: FIRST(msgs) }

Execution plan:
 Id   NodeType                  Est.   Comment
  1   SingletonNode                1   * ROOT
  2   EnumerateCollectionNode   4601     - FOR talk IN talks   /* full collection scan */
 11   SubqueryNode              4601       - LET msgs = ...   /* subquery */
  3   SingletonNode                1         * ROOT
 14   IndexNode                 4544           - FOR msg IN messages   /* skiplist index scan */
  7   CalculationNode           4544             - LET #7 = msg.`date`   /* attribute expression */   /* collections used: msg : messages */
  8   CalculationNode           4544             - LET #9 = msg.`_key`   /* attribute expression */   /* collections used: msg : messages */
  9   SortNode                  4544             - SORT #7 DESC, #9 DESC
 10   ReturnNode                4544             - RETURN msg
 12   CalculationNode           4601       - LET #11 = { "talkId" : talk.`_id`, "lastMsg" : FIRST(msgs) }   /* simple expression */   /* collections used: talk : talks */
 13   ReturnNode                4601       - RETURN #11

Indexes used:
 By   Type       Collection   Unique   Sparse   Selectivity   Fields                                      Ranges
 14   skiplist   messages     false    false            n/a   [ `talkId`, `isRemoved`, `date`, `_key` ]   ((msg.`talkId` == talk.`talkId`) && (msg.`isRemoved` == false) && (msg.`date` <= "2016-01-01"))

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

As we can see the optimizer don't use reverse skiplist index in this case. But we can help to optimizer with some modifications in query:
Query string:
 for talk in talks
     let msgs = (
         for msg in messages
     	filter msg.talkId == talk.talkId
     	    && msg.isRemoved == false
     	    && msg.date <= '2016-01-01'
         sort msg.talkId desc, msg.date desc, msg._key desc
         return msg
     )

 return { talkId: talk._id, lastMsg: FIRST(msgs) }

Execution plan:
 Id   NodeType                  Est.   Comment
  1   SingletonNode                1   * ROOT
  2   EnumerateCollectionNode   4601     - FOR talk IN talks   /* full collection scan */
 12   SubqueryNode              4601       - LET msgs = ...   /* subquery */
  3   SingletonNode                1         * ROOT
 15   IndexNode                 4544           - FOR msg IN messages   /* reverse skiplist index scan */
 11   ReturnNode                4544             - RETURN msg
 13   CalculationNode           4601       - LET #13 = { "talkId" : talk.`_id`, "lastMsg" : FIRST(msgs) }   /* simple expression */   /* collections used: talk : talks */
 14   ReturnNode                4601       - RETURN #13

Indexes used:
 By   Type       Collection   Unique   Sparse   Selectivity   Fields                                      Ranges
 15   skiplist   messages     false    false            n/a   [ `talkId`, `isRemoved`, `date`, `_key` ]   ((msg.`talkId` == talk.`talkId`) && (msg.`isRemoved` == false) && (msg.`date` <= "2016-01-01"))

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

As we can see now the optimizer can understand that it can use the reverse skiplist index.
But the interesting thing that I have index talkId, isRemoved, date, _key and I omitted
the sort by the field isRemoved in sort expression sort msg.talkId desc, msg.date desc, msg._key desc.
I think the optimizer can understand that equality expression by the field allow to omit this field  in the sort expression. But it's allowed now only on static expression (isRemoved == false in my query) and it's not allowed on equality with enitites (msg.talkId == talk.talkId in my case). And the sort part sort msg.talkId DESC help the optimizer to understand to use reverse skiplist index.

@jsteemann You helped me with my previous issues about optimizer. :) I think you can help me this time too :)
I simplify my queries.
Collection messages. Skiplist index talkId, isRemoved, _key.
First query is simple and use reverse index.
Query string:
 for msg in messages
 	filter msg.talkId == "C-4601"
 	    && msg.isRemoved == false
 	    && msg._key <= "999999999999999"
     sort  msg._key desc
     return msg

Execution plan:
 Id   NodeType        Est.   Comment
  1   SingletonNode      1   * ROOT
  8   IndexNode       4544     - FOR msg IN messages   /* reverse skiplist index scan */
  7   ReturnNode      4544       - RETURN msg

Indexes used:
 By   Type       Collection   Unique   Sparse   Selectivity   Fields                              Ranges
  8   skiplist   messages     false    false            n/a   [ `talkId`, `isRemoved`, `_key` ]   ((msg.`talkId` == "C-4601") && (msg.`isRemoved` == false) && (msg.`_key` <= "999999999999999"))

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

If this query with the same subquery reverse index is not used
Query string:
 for t in ["C-4601"]
     return (
         for msg in messages
         	filter msg.talkId == t
         	    && msg.isRemoved == false
         	    && msg._key <= "999999999999999"
             sort  msg._key desc
             return msg
     )

Execution plan:
 Id   NodeType            Est.   Comment
  1   SingletonNode          1   * ROOT
  2   CalculationNode        1     - LET #4 = [ "C-4601" ]   /* json expression */   /* const assignment */
  3   EnumerateListNode      1     - FOR t IN #4   /* list iteration */
 11   SubqueryNode           1       - LET #2 = ...   /* subquery */
  4   SingletonNode          1         * ROOT
 13   IndexNode           4544           - FOR msg IN messages   /* skiplist index scan */
  8   CalculationNode     4544             - LET #8 = msg.`_key`   /* attribute expression */   /* collections used: msg : messages */
  9   SortNode            4544             - SORT #8 DESC
 10   ReturnNode          4544             - RETURN msg
 12   ReturnNode             1       - RETURN #2

Indexes used:
 By   Type       Collection   Unique   Sparse   Selectivity   Fields                              Ranges
 13   skiplist   messages     false    false            n/a   [ `talkId`, `isRemoved`, `_key` ]   ((msg.`talkId` == t) && (msg.`isRemoved` == false) && (msg.`_key` <= "999999999999999"))

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

@jsteemann Thank you very-very much! :)

3.0.12 is available for download via the regular upgrade channels - closing.


Set fan speed to auto?

This is working great, but I don't see a way to set the fan speed to auto. Is there one in here?
Thanks for making this!

Hi, in the current version (1.2.8), if the fan accessory is switched off then the fan speed is set to auto. In future versions (soon to be released), the auto speed will be set when the slides is at the lowest position. Hope that helps.


introduce gradle-versions-plugin

As you suggested, I've added gradle-versions-plugin :)

Thx but let me clarify, I think I mentioned about gradle-bintray-plugin ? @yshrsmz

Woops, I mistake it, sorry

NP!


Ignore TCP requests that are tracked as HTTP

After merging the TCP request tracking code I noticed that HTTPS requests are reported as TCP events too, since I never added a check to confirm if a request was decoded as HTTP 1.1 with libssl. There's no immediate harm, since we don't process unknown TCP events, but we are creating traffic on the ringbuffer we don't need and we'd make duplicate requests if we ever wanted to report unknown protocols.

LGTM! I guess this will only save ringbuffer traffic if the HTTP handling has been triggered before this probe. Am I right?

Yes that's right! If by any chance we decide to put unknown protocols in traces and metrics, e.g. we can tell that there's a call to a database that we don't support and how long it took, this would've been a bug, since we'd report any HTTPS twice.


feat: nested routes for settings and nav bar

List issues that are affected
#239
#215
#156

Closes #215


Cut release version 0.40.0

Think I captured everything since the last release -> https://github.com/coreos/prometheus-operator/compare/release-0.39...master?expand=1
@coreos/team-monitoring @vsliouniaev PTAL, thanks!
I might not be able to finish the release today but PR is ready to be reviewed :)
We are also searching for volunteer for for next release 👀 https://github.com/coreos/prometheus-operator/blob/master/RELEASE.md#release-schedule

@paulfantom PTAL, thanks!

@brancz @simonpasquier PTAL, thanks!


Error: Song not found.

I keep getting an error with some youtube videos that says:
20:35:21 CommandHandler | Command Errored after 1.1533381s
User: RiK#1456 [112967817321533440]
Server: Flame [240263294105944067]
Channel: general [240263294105944067]
Message: !!queue https://www.youtube.com/watch?v=gglhMDQdFms
Error: Song is not found.
Some videos do work, and the bot works with other commands and joins the channel I am in, but it doesn't queue the song. I'm currently on the most recent build of nadeko, tried to update, redo ffmpeg, run as admin, etc, but none of them have changed anything. Any ideas as to why?

Google API will reject certain songs due to region, copyright, etc. There isn't anything that can be done right now with that.
Alternatives:

Use !!sq (soundcloud link or search)

Try a different video or !!q with keywords

I understand that may happen, but i've been able to queue these songs in the past, but they aren't queueing anymore. Was Youtube API changed in a way that disallowed these types of songs due to region, copyright, and others? If so, I'm probably just going to switch to Soundcloud for main music playlists, etc.

Yes, Google can do the following:

Uploader requests change (restrict region, etc.)
Monetization, etc. options from the uploader change the way the API works
Copyright claims against the video
Internal update with certain endpoints

and can go on and on, but it is very easy for certain things to change. Remember this is the official API. :-)

Ok, thank you. Switching to soundcloud.
Google and their API changes... tsk tsk ### (sarcasm).


Support feature flags

Will add more context around what to test tomorrow (7/3)
NOTE: Will not be able to test this until it is used on an actual feature
Features are interacted with via the API like any other CRDs. For example, if you want to disable a feature then you would make a put request for that feature with the value set to false. Example requests can be found in the steps section.
Behaviors to consider:

Schemas associated with a feature should not be visible on /v3/schemas or /v3/schemas/feature-name when feature is disabled.

Any functionality associated with the feature should not work when the feature is disabled. For example, if the feature was for the entirety of kontainer drivers, then making a new kontainerDriver CRD should not cause a driver installation.

API v3 API endpoints associated with the feature should be block

On HA, feature status should be synced across all management nodes.

No user should be able to create or delete features.

All users should be able to list, get, watch features.

Admin users should be able to update features.

Steps for interacting with feature flags (assuming feature is enabled by default):

show local cluster

check /v3/schemas
(you should see the features schema)

curl -k -u token -X GET -H 'Content-Type: application/json' https://rancherurl/v3/features
(should list all the features including the one in question)

feature should be enabled and work

curl -k -u  token -X PUT -H 'Content-Type: application/json' -d '{"value":false}' https:///rancherurl/v3/features/feature-name

feature should be disabled and not work

check /v3/schemas
(should not be able to see schema)

check /v3/schemas/schema-name
(should say schema is disabled)

can change feature defaults when running rancher using the feature flag like so:
--features=feature-name=false
or have the CATTLE_FEATURES environment variable set to feature-name=false
Developing with features flags (might not need this but just in case):
https://rancher.atlassian.net/wiki/spaces/EN/pages/87556097/Developing+with+Feature+Flags

rancher/rancher:v2.4.0-rc1

Tested in both HA and single-node installs
Tested feature flags for istio UI features, and steve
Features can be enabled/disabled through API, flags when starting Rancher server, and through the UI
Features can not be created/deleted
Only admins can edit feature flags


LinkedIn API changes

Will the recent API changes outlined here:
https://developer.linkedin.com/blog/posts/2015/developer-program-changes
have any adverse effect on using this gem? I am primarily use the API for getting user profile and their education, experiences, interests etc.

@mech See this document for detailed changes on API Availability: https://developer.linkedin.com/support/developer-program-transition


Set networkaddress.cache.ttl=0 at docker fuse image build time

Fix #9780

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/5269/
Test FAILed.

/ping @gpang , Any suggestions on the PR title?

How about
Set networkaddress.cache.ttl=0 at docker fuse image build time?

Thank you!

/ping @madanadit

alluxio-bot, merge this please.


Faster idwtn/dwtn

This essentially moves np.apply_along_axis into C. It beats @grlee77's implementation in #68 by 40% for a 2D dwtn, though I have not profiled the idwtn. This is based of #102, so consider it blocked until that is merged. In the meantime, I'm opening this for discussion and CI.
Two main questions:

Should we change idwtn to match the behaviour of idwt, where the take parameter is applied automagically (by using upsampling_convolution_valid_sf rather than upsampling_convolution_full)? Unless there is a good use-case for reconstructing the values of the padding, I vote for doing this. Dealing with the take parameter is annoying.
Can we nuke upcoef and downcoef? They were previously used for idwtn and dwtn, but are no longer. downcoef very similar to _dwt. upcoef is slightly different from idwt as described above, but if we change that behaviour then it will be similar.

Huh. Segmentation fault is reproducible only when tests are run with python3 runtests.py --coverage, not with python3 runtests.py. Will investigate, but any ideas?

In regards to nuking upcoef and downcoef, that might be problematic:
1.) upcoefis currently also used by the wavefun method of the Wavelet class, so it is not just in idwtn.
2.) Apparently at least some users have been using downcoef directly as evidenced by the bug reported by @jiarongfu in #72 .  If one is interested only in the detail coefficients, it avoids also computing the approximation coefficients in that case.

@kwohlfahrt
One of the Travis failures is because astype did not yet have the copy flag available in numpy 1.6.
I remember in some of my older code I used to test if the dtypes were already equal and only call astype when they were not.  Clearly using the copy flag is more concise, but I am not sure how else to get around it.

On my system a simple python runtests.py is also causing the segfault.  (python 3.4, 64-bit linux).
I can confirm that commenting out the test_idwtn_missing test removes the segfault, so that is definitely a clue.

pretty sure the segfault is due to a variable name mixup in idwt_axis.  testing now...

I submitted a PR to your kwohlfahrt/ndim branch that fixes the segfault issue.  Access to an unintialized ArrayInfo struct when either coefs_a or coefs_d was None was the culprit.

Great work! I will change the C API to pass ArrayInfo as a pointer instead, so it can also be NULL if the coefficients are not available. The info should never be accessed if the array is not available, so this will make it fail consistently.
If recent versions of Numpy are no longer being built for Python 2.6, it might be time to drop it? @rgommers?
Looks like getting rid of upcoef is a bit premature then. There is a lot of duplication between the various functions, so I'll see if I can refactor them somehow to make it a little shorter. That is work for somewhere else though.
Do you have any comments regarding changing idwtn's behaviour wrt. take?

Just Python-2.6/Numpy-1.6 failing now.

I would personally be in favor of using upsampling_convolution_valid_sf in idwtn to be consistent with idwt.  I guess it would break backwards compatibility, but unless there are other unforseen consequences, I think it would be worth it.
In particular, it would be nice if this removed the need to do tricks such as the following to get the right size in a multilevel transform:
https://github.com/grlee77/pywt/blob/5e9f162073668e9547d773310ffb67345d8677ef/pywt/_multilevel.py#L366-L375

If recent versions of Numpy are no longer being built for Python 2.6, it might be time to drop it? @rgommers?
Just Python-2.6/Numpy-1.6 failing now.

I'd rather drop Numpy 1.6.2 than Python 2.6 support. Numpy 1.6.2 is getting annoying, with all the ufunc keywords that are missing but are present in 1.7.x. I suspect Scipy will drop 1.6.2 support soonish as well. For supported Python versions I think we should simply follow Numpy. IIRC the main reason Python 2.6 is still supported is that it's the default Python version in not too old RedHat/CentOS versions.
And for this PR it's Numpy 1.6.2 that's the issue.

You're right. I was under the impression that numpy had stopped supporting python 2.6, but it does so no argument there.

I don't have a strong opinion on whether we drop numpy 1.6.2 support now or a bit further down the road.  In this particular case, the fix is not particularly onerous.

Just wanted to state that the idwtn speed improvement is equivalent to that seen for dwtn.  Now we are in the situation that users can get much faster performance on 2D transforms by using dwtn or idwtn instead of dwt2 or idwt2 (on my machine it is a factor 13 faster).  Perhaps we should refactor dwt2 and idwt2 to call the n-dimensional equivalents under the hood?

Yes, this one isn't too bad. It is the kind of thing that keeps creeping up though, so if we're going to do it I would like to do it now.
WRT dwt2/idwt2, yes, that sounds like a good plan.
I might move the dwtn function back out of cython, pending some profiling. I don't think the loop over the number of axes is going to be big enough that doing it in Cython will give significant speed increases, and it might make things a little more friendly to contributions from newcomers.

I should also mention that the performance of dwtn on 2D or 3D data is almost exactly twice as fast as the Matlab R2012a dwt2 or dwt3 on my machine.  I think this will make users happy!

@grlee77 if we do decide to make the 2-dimensional functions call the N-d ones internally, our tests need fixing up. A lot of N-dimensional transforms are tested against the 2D ones.

OK, I've gone ahead and changed the idwtn interface to match idwt. No more take parameter. We can always revert if this is a problem.
Minor cleanups, and a major bug where it would error if a particular coefficient was missing, I've just gone for the brute-force method of testing all possible combinations and it works now.

Appveyor passed.

Looks good.  Updating dwt2/idwt2 can be dealt with in a separate PR.  Let's make sure no one else objects to dropping numpy 1.6 support, then I think this is ready to merge.

I would like to merge this one prior to #52 .  Removing take from idwtn requires some (modest) changes there.  I have already done the changes on a local branch and verified that round-trip works for wavedecn and waverecn for all combinations of modes and wavelets when using the versions of dwtn and idwtn in this PR.

@kwohlfahrt, @rgommers, @aaren.  Any objections to merging this one soon?

no objections here

Good catch aaren. Fixed and I'm happy to merge.

All tests passed so I'll merge. Thanks all.


pkg(octave-6.2.0): added octave aliases/file extensions

Octave package now fits https://octave.org/doc/v6.2.0/Introduction-to-Function-and-Script-Files.html

moved to main repo


need a way to turn off dumping all variables to log on error

Is there a way to prevent Karate from dumping the values of EVERY variable into the logs when it encounters an error?
This kind of dump is useful when you have a weird problem you're trying to solve, but otherwise causes a lot of unnecessary scrolling/searching through log files.
It would be great to be able to toggle it on/off.

which version are you on. this was indeed a bad idea and has been removed in 0.6.1 onwards.


feat: add preload property to resources

Task: https://openforge.teamwork.com/#/tasks/16322266

QA Passes


expect-expect - doesn't make much sense for skipped tests

I have skipped it.skip(...) test without assertions, it's used mostly for debugging, etc.
Doesn't really make sense to enforce expect-expect rule for it IMO.

it errors out when the test is empty -- doesn't have any assertion. if there is not assertion you probably should delete that test.

Well, you do want to have assertions in the tests that you're running, otherwise it's likely a mistake. However for tests that you're - skipping it doesn't seem that important. Since the test is skipped to begin with it doesn't have to be perfect. But then I guess the same applies to all other rules... Anyway, I ended up just ignoring the rule for the skipped test, thought that it may be a common issue, but if not I guess it doesn't warrant special treatment. Cheers!

pushed a fix on main


Allow namespaced installation

Proposal
The installation of Keda should be allowed to be run with role in specific namespaces and not cluster wide ones.
Use-Case
An example of using this set of manifests is if you run your services in a in a cluster where teams have access to specific namespaces and cannot use cluster wide permissions, This would allow a keda per namespace
Anything else?
This possibly would work by just using roles instead of clusterRoles (and CRB).

You can limit KEDA to only scale a certain namespace, but we cannot reduce the cluster roles since this is a requirement for the metrics server that we have to use.


adds missing return statement

Thanks for submitting a pull request! Please provide enough information so that others can review your pull request:

Unless you are a React Native release maintainer and cherry-picking an existing commit into a current release, ensure your pull request is targeting the master React Native branch.

In the navigator.js doc, the example regarding the configureScene method was missing a return statement.

This is syntactically wrong, the function already returns.

Oops, sorry my mistake. My code was a tad different, that's why the return was needed.