Examples for Template 1 and 5

The examples from Template 1 and 5 produce no data.
Template 1:
PREFIX dbpedia: <http://dbpedia.org/resource/ >
PREFIX dbpedia-owl: <http://dbpedia.org/ontology/ >
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns# >
PREFIX geo: <http://www.w3.org/2003/01/geo/wgs84_pos# >
CONSTRUCT {
  ?museum <http://xmlns.com/foaf/0.1/based_near > <@@@entity_uri@@@ > .
} WHERE {
  <@@@entity_uri@@@ > geo:geometry ?citygeo .
  ?museum rdf:type <http://schema.org/Museum > .
  ?museum geo:geometry ?museumgeo .
  FILTER (<bif:st_intersects >(?museumgeo, ?citygeo, 10))
} LIMIT 10

Template 5:
PREFIX edm: <http://www.europeana.eu/schemas/edm/ >
PREFIX ore: <http://www.openarchives.org/ore/terms/ >
CONSTRUCT {
  ?CHO edm:HasMet <@@@entity_uri@@@ >
} WHERE {
  ?EuropeanaObject  edm:year  ?year ;
  edm:hasMet <@@@entity_uri@@@ > .
  ?EuropeanaObject ore:proxyFor ?CHO .
  FILTER (?year < "1800")
  FILTER (?year > "1700")
} LIMIT 5

Regarding template 1) - The problem is that in the latest DBpedia release the official DBpedia endpoint does not contain anymore the geometry information. However DBpedia live contains. I recommend switching template 1) to
PREFIX dbpedia: <http://dbpedia.org/resource/>
PREFIX dbo: <http://dbpedia.org/ontology/>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX geo: <http://www.w3.org/2003/01/geo/wgs84_pos#>
CONSTRUCT {
  ?museum <http://xmlns.com/foaf/0.1/based_near> <@@@entity_uri@@@> .
} WHERE {
  <@@@entity_uri@@@> geo:geometry ?citygeo .
  OPTIONAL { ?museum rdf:type dbo:Museum . }
  ?museum geo:geometry ?museumgeo .
  FILTER (bif:st_intersects(?museumgeo, ?citygeo, 50))
} LIMIT 10

and SPARQL endpoint http://live.dbpedia.org/sparql/ where @@@entity_uri@@@ is location.
Regarding template 5) - it seems the data model has been recently changed and the template does not match anymore. I recommend switching this template with two another:
Template 7-1:
PREFIX edm: <http://www.europeana.eu/schemas/edm/>
PREFIX ore: <http://www.openarchives.org/ore/terms/>
CONSTRUCT {
  ?person  <http://rdvocab.info/ElementsGr2/placeOfBirth> <@@@entity_uri@@@> ;
} WHERE {
  ?person  <http://rdvocab.info/ElementsGr2/placeOfBirth> <@@@entity_uri@@@> ;
} LIMIT 10

and SPARQL endpoint http://europeana.ontotext.com/sparql where @@@entity_uri@@@ is a location. E.g. entity_uri can be http://dbpedia.org/resource/Italy.
Template 7-2:
PREFIX edm: <http://www.europeana.eu/schemas/edm/>
PREFIX ore: <http://www.openarchives.org/ore/terms/>
CONSTRUCT {
  ?object <http://purl.org/dc/elements/1.1/creator> <@@@entity_uri@@@> ; .
} WHERE {
  ?object <http://purl.org/dc/elements/1.1/creator> <@@@entity_uri@@@> ; .
} LIMIT 10

and SPARQL endpoint http://europeana.ontotext.com/sparql where @@@entity_uri@@@ is a person creator. E.g. entity_uri can be http://dbpedia.org/resource/Alessandro_Allori

Sounds good to me. Please do that.

how should we proceed with this? what about manually adding them to the DB, assuring that we have the IDs we want? Actually, I can add them via the API but the IDs will be not as we want.

I will assign these templates to the admin user and then give you the username and password of the admin user. Then you can update the templates via the API. Does this sound good to you?

OK, but I think editing them directly in the DB will be much easier. But I'm fine with both ways of updating them.

Either way will work. Do you have access to the database? I can provide you with the credentials if you dont have them.

No I don't have, but you have experience with that tech, so maybe you can do that faster.
I'm more for updating the templates via the API.

I updated the database as written above and send the admin auth token to milan so he can update the templates.

instead of template 5 we decided to introduce two similar templates. One can re-use the ID 5, what about the other template?

template 1 has been updated. See http://api-dev.freme-project.eu/current/e-link/templates/1?outformat=json
Waiting for feedback on https://github.com/freme-project/e-Link/issues/40#issuecomment-149163253 to update template 5

instead of template 5 we decided to introduce two similar templates. One can re-use the ID 5, what about the other template?

I suggest to create a new template for 5-2. Or do you have another idea?

5-2 is not valid ID. I checked and ID 8 is free. I'll push this template under ID 8.

The template has been created under ID 304. We need manually to change the ID from 304 to 8.

I think id 304 is ok. Or do you see a problem with id 304?

Or do you see a problem with id 304?

Not at all :) ok, then this issue should be solved.


Document fact that ProgressWindow needs to set DialogResult

ProgressWindow (thing that is returned by IDownloadProgress CreateProgressWindow(AppCastItem item, Icon applicationIcon in IUIFactory) needs to set DialogResult in order for the update to execute and not be deleted!
Pertinent NetSparkle code:
        private void showProgressWindow()
        {
            if (!isDownloadingSilently() && ProgressWindow != null)
            {
                DialogResult result = ProgressWindow.ShowDialog();
                if (result == DialogResult.Abort || result == DialogResult.Cancel)
                {
                    CancelFileDownload();
                }
            }
        }

The IDownloadProgress no longer needs the DialogResult as it has been abstracted away. The interface just returns a bool now, so this issue is no longer a problem.


Use jfs too much disk usage in k8s and obs

What happened:
Deploying three copies of Kafka runs for 8 hours, creating 89G jfsCache and 120G obs files, and the k8s cluster fluctuates several times.
Enter the container kafka-0 /kafka directory space is 1.1G
Server node3 /var/jfsCache space is 89G
Server node4 /var/jfsCache space is 32G
obs used space is 120.91 GB
3pv volume pod consumes 5-8G of memory, see jfs-memory for memory usage
09:00-16:00 prometheus oom twice, the monitoring graph data is lost for two segments.
There is a continuous increase in the cpu of the business container. In the cpu diagram, the green line continues to increase, and then a new copy of the yellow line is manually added. After the load balancer removes the green line, it returns to zero, and the sending container restarts around 14:30.
logs and images: jfs-disk 20220916.zip
Environment:

JuiceFS version (use juicefs --version) or Hadoop Java SDK version:
jfs is deleted
image: juicedata/juicefs-csi-driver:v0.17.0
image: quay.io/k8scsi/csi-provisioner:v1.6.0
image: quay.io/k8scsi/livenessprobe:v1.1.0
image: juicedata/juicefs-csi-driver:v0.17.0
image: quay.io/k8scsi/csi-node-driver-registrar:v2.1.0
image: quay.io/k8scsi/livenessprobe:v1.1.0

Cloud provider or hardware configuration running JuiceFS:
16vCPUs | 64GiB |  huawei cloud c6.4xlarge.4

OS (e.g cat /etc/os-release):
centos7

Kernel (e.g. uname -a):
Linux n3.prod.kailinesb.com 3.10.0-1160.49.1.el7.x86_64 1 SMP Tue Nov 30 15:51:32 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

Object storage (cloud provider and region, or self maintained):
huawei cloud obs

Metadata engine info (version, cloud provider managed or self maintained):
mysql5.7

K8s version
Server Version: version.Info{Major:"1", Minor:"23", GitVersion:"v1.23.1", GitCommit:"86ec240af8cbd1b60bcc4c03c20da9b98005b92e", GitTreeState:"clean", BuildDate:"2021-12-16T11:34:54Z", GoVersion:"go1.17.5", Compiler:"gc", Platform:"linux/amd64"}

You'd better disable trash if your application does a lot of deletion or overwriting.
See: https://juicefs.com/docs/community/security/trash/#cautions

updated format options is trash-days=0, retry running kafka.

@eudore Hello, is there any update?

Cleaned up obs recycling files yesterday; re-deployed pvc today for three hours.
Everything is normal at present, and jfsCache is also recycled normally, thank you.


Failed Semver parsing in

Description:
Cannot parse version ` "^4.0.0 || ^4.0.0-beta.* || ^3.8.1 || ^3.0.0 || ^3.0.0-rc.0 || ^2.1.0 || ^1.13.1"` in package.json.

Steps To Reproduce
 node_modules/hard-source-webpack-plugin/package.json:82:38 parse/semver

  ✖ Invalid version qualifier part

    80 │     "standard-version": "^4.4.0",
    81 │     "style-loader": "^0.14.0",
  > 82 │     "webpack": "^4.0.0 || ^4.0.0-beta.* || ^3.8.1 || ^3.0.0 || ^3.0.0-rc.0 || ^2.1.0 || ^1.13.1",
       │                                       ^
    83 │     "webpack-cli": "^3.0.0",
    84 │     "webpack-isomorphic-tools": "^3.0.0",

It fails to parse this part: ^4.0.0-beta.*
It isn't clear to me if this is this is valid or invalid.

I don't think that is technically valid but if npm/yarn handles it silently then we should too. We have a "loose" mode that we enable for package.json files found in node_modules that has some fallbacks for these cases. For regular package.json files in your project then we validate them more strictly.

Fixed in #705, thank for reporting @pnegahdar!


Lattice decoding is throwing out of memory exception

I have trained a language model and used it for lattice decoding as part of spelling correction project in my university.
The problem is that when I have 5 candidates for like 7 or 8 words in a single lattice, the model is throwing out of memory error, or dumping the core. I'm trying to fix this issue by reducing the number of possible candidates for each spelling error, but this reduces the model performance. It also takes long time to decode a lattice.
Is TheanoLM loading all the possible paths in the lattice in memory and then execute the computations?
Dose it use the sequence size in lattice decoding?
what is the offset of the sliding window over the words, is it one ? can I change it to be 25 for example?
What can I do to be able to decode a lattice without facing this error every time?

In contrast to n-gram models, the RNN probabilities depend on all the words in the partial path from the beginning of the lattice to the target word. So in principle the probabilities are unique for all the words in all the paths through the lattice. To decode a lattice exactly would require evaluating all the paths through the lattice, but that wouldn't be practical. Instead TheanoLM proceeds from the beginning of the lattice to the end, keeping a number of alternative paths, called tokens, in memory at any time.
If the number of tokens get too high, you run out of memory. It also computes a probability for all the tokens that end in the same node in parallel, so you can easily run out of GPU memory unless you set a maximum number for tokens in any node. You can use an approximation that limits how many words of context is considered significant - if the earlier histories of two tokens are identical, the tokens can be recombined by keeping only the best one. You can also specify beam pruning. A more complete description of the pruning options can be found from the documentation: http://theanolm.readthedocs.io/en/latest/applying.html#decoding-word-lattices


Duplicated statistics names

What would you like help with?
Hello world!
While reading adbc.h I found that some statistics have the same name while having different keys.
For instance, both ADBC_STATISTIC_AVERAGE_BYTE_WIDTH_NAME and ADBC_STATISTIC_MAX_BYTE_WIDTH_NAME have the name adbc.statistic.byte_width.
Is this normal or it's a mistake?

A mistake. We can fix it.


[Design] Tokens

Time to work on porting the Tokens modules. Please share you current struggles, what you like, and how you would like this module to look like.
Some ideas:

Make it optional. The modules don't have to reference it or "depend" on it, they just call it and if the module is not enabled then the UI hint is not displayed and the text is not tokenized.
Use a popup to make it work better (no glitches) and support advanced UI like search, or embedded doc.
Change the tag to remove the old {foo} syntax, just support ${foo} or change it to {{foo}}
We could also adopt another language like handlebars which supports lists
Rationalize how lists are used
Should we use a function-like syntax to have parameters on tokens?
Should we have a token filter to apply them on the rendered html, for instance to alter the user-edited content, like images, or custom scripts (snippets)

I know @LombiqTechnologies is a big fan of Liquid what ideas should we take from it?

We would need to find the + and - from each of them.
Liquid has a large base of themes. Yeah, I know, those templates are useless outside of the scope of Shopify unless you build almost the same data structure than what they have. So, that does'nt make it a strong point. I think we would need to evaluate what both can and cannot do to.
https://engineering.linkedin.com/frontend/client-side-templating-throwdown-mustache-handlebars-dustjs-and-more
I have'nt read this all but that's a nice find.

Use a popup to make it work better (no glitches) and support advanced UI like search, or embedded doc.

I had in mind with the new admin theme to use a bootstrap modal instead of the dropdown to be able to see more detailed information about the tokens.

Change the tag to remove the old {foo} syntax, just support ${foo} or change it to {{foo}}

Change it to {{foo}} seems like the best bet.

Should we have a token filter to apply them on the rendered html, for instance to alter the user-edited content, like images, or custom scripts (snippets)

YES !
I need to read more about Handlebar but it looks nice. I've just started working with Liquid on a project that is not Orchard related so I'll be able to compare over time.

And other idea would be to step right now into the WebComponents world ?

Re Liquid: since it's a templating syntax, and what we need here is a much smaller subset of features, at most I'd use it as inspiration for the syntax (otherwise full Liquid support exists for Templates and views).
The only thing that I think could be borrowed is the variable print syntax Sebastien mentioned (i.e. {{foo}}).  The syntax used for Liquid filters (like {{ "title" | capitalize }}) could inspire our function syntax but I think the current one is actually better.
For more Liquid syntax info see. https://shopify.github.io/liquid/

Looking at Dust right now

The thing with Liquid is that it restricts also the access to types. For making a class available to liquid you need to create a Class that inherits from "Drop". That's a nice feature.

Dust has filters too, using |, and doesn't have logic, so simpler, but its tags (helpers) can be extended and support if/else or equality alike.

I'm just asking myself if we won't have to rethink this later on if we will want to use WebComponents. It would be as simple as using . But I think we would be bound to use Polymer for having all the functionalities that Tokens require.
http://webcomponents.org/articles/introduction-to-template-element/
http://x-tag.github.io/ not sure what it is yet.

Github uses Liquid + Handlebar. I think the advantage though with Liquid is about SAS.

Common concepts between Dust, Handlebars and Liquid, they have:

expressions (known as objects in liquid)
helpers (known as tags in liquid)
filters

@Skrypt webconponents is too chatty, and it's tags.

I agree, but sad it's not mature enough. I'd be happy with Handlebar and/or Liquid 😉

What it looks like right now:

And the result in the editor on publication

I am currently using handlebars as the liquid syntax is more cumbersome on collections.


turn on go-etcd logging

the code lgtm
AFAIK, the log of go-etcd prints out details of each request. Will it be too many logs in stderr then?

@yichengq it's definitely not ideal but i figure it's better than being completely silent when trying to connect.

k. lgtm then.


Added Controls class with Control enum, to wrap controls natives

I think we should have this Control enum, but I'm not sure if it is necessary to create a Controls class just to wrap CONTROLS natives.
Maybe I should have included these functions in Game class?

350 lines should go in their own file, looks good :+1:

I don't think we need a separate file here. But I would remove the rendundant "Control" in the function names: "Control::IsEnabled", "Control::IsPressed", ...

IS_DISABLED_CONTROL_JUST_PRESSED is used the most often, but others can be useful in some cases.
Maybe add a Game::IsControlPressed to "Game" that calls "Controls::IsDisabledControlJustPressed"?

Right, even better. Move all those functions into "Game" rather than "Control".

I think this is what you want.
In case someone needs to use control functions that are not in "Game", they can call the natives with Control enum casting to int.

What is the different between IS_CONTROL_JUST_PRESSED and IS_DISABLED_CONTROL_JUST_PRESSED?
The design is what I meant now, but it's a little confusing: "Game::IsKeyPressed" returns the current key state, which is functionally equal to "Game::IsControlDown", not "Game::IsControlPressed" ...
So maybe rename "Game::IsControlDown" to "Game::IsControlPressed" and "Game::IsControlPressed" to "Game::IsControlJustPressed", "Game::IsControlReleased" to "Game::IsControlJustReleased"?

AFAIK, the controls for IS_CONTROL_JUST_PRESSED are physical buttons (A, B, X, Y, etc), but controls for IS_DISABLED_CONTROL_JUST_PRESSED are game keybinds (Get-In-Car key, Stealth key, Shoot key, etc)
Maybe we can have both?

I think its because you can disable controls using disable_control_action, Is_disabled_control_just_pressed will return true if the control is disabled and pressed, where as is_control_just_pressed would return false

IS_CONTROL_PRESSED return true only if the control is enabled and pressed, so IS_CONTROL_JUST_PRESSED should return false if the control is disabled.

So which ones do we need here in "Game"?
Or should we stick to my original proposal, that we make a Controls class to wrap the controls natives?

@kagikn Just guessing from the name and how input systems in engines usually work IS_CONTROL_PRESSED returns the current state and IS_CONTROL_JUST_PRESSED returns true if the control was pressed this frame and false the follow up frames.
I still don't get the idea of "disabled controls". But we can just add both to "Game", to be on the safe side.

@crosire For example, when the player is in the place that don't allow to sprint, IS_CONTROL_PRESSED will return false regardness of whether the sprint button is pressed, but IS_DISABLED_CONTROL_PRESSED will return true if the sprint button is pressed.

Ah. Now that makes sense. In that case we indeed should use the DISABLED overloads. So we can keep it the way it is now.

So we should be good now. Is there anything else we want for controls?


Implement a Minimum Supported Version of Rust (MSRV) policy

While this still isn't high on my priorities, the various library crates in the project should eventually have an MSRV policy to prevent surprises caused by the use of old versions of the compiler.
How and when this policy is yet to be decided. Until then, discussion is welcome here.

This is now implemented by #587. The minimum supported version of Rust currently defined for library crates with default features is 0.72.0. Binary crates are still expected to be built with the latest stable toolchain, and future releases (e.g. v0.9) may progressively make adjustments to the MSRV.


[Feature request] ignore_pattern accept function

I want to ignore files that have set nobuflisted. How can I achieve this? Can we make ignore_pattern accept a function and give user more control.

Nice idea. We can ignore any file not to register into DB as we like. I will implement it.

I added ignore_register option to achieve this. For example, you can ignore to register files that is 'nobuflisted'.
telescope.setup {
  extensions = {
    frecency = {
      ignore_register = function(bufnr)
        return not vim.bo[bufnr].buflisted
      end,
    }
  },
}


[AutoRelease] t2-redisenterprise-2024-05-06-33255(can only be merged by SDK owner)

https://github.com/Azure/sdk-release-request/issues/5177
Live test fail, detailed info is in pipeline log(search keyword FAILED)!!!
https://dev.azure.com/azure-sdk/internal/_build?definitionId=2368

issue link:https://github.com/Azure/sdk-release-request/issues/5177


Added missing ClientTimeout column to migrations

This fixes initial StartUp error regarding missing ClientTimeout column in ChatServerDefinition table

Thank you!


ix-dropdown trigger in combination with ix-menu-avatar-item does not work

Prerequisites

[X] I have not leaked any internal company information.
[X] I have not posted internal links or code snippets.

What happened?
Hi with this issue I want to reopen the issue from #895
We tested the functionality with the release 2.1.0 and we still have the same issue
Following the orginal issue text
Hi,
we want to add a language switch to our menu based on an ix-dropdown.
When I added the id of the ix-menu-item as the trigger value for the dropdown nothing happend.
To double check if I did something wrong I tried it with an ix-dropdown-item and with this element everything works fine
I also noticed that the menu-avatar is no longer part of the documentation.
Is this still supported and an issue or is it an old component that is no longer supported and we need another solution?
BR
Philipp
What type of frontend frameware are you seeing the problem on?
Angular
Which version of iX do you use?
v2.1.0
Code to produce this issue.
<ix-menu>
  <ix-menu-avatar top="Name" initials="PS">
    <ix-dropdown-item id="dd-item" icon="globe" label="DropDownItem"></ix-dropdown-item>
    <ix-menu-avatar-item id="ma-item" icon="globe" label="MenuAvatarItem"></ix-menu-avatar-item>
  </ix-menu-avatar>
</ix-menu>

<ix-dropdown trigger="dd-item">
  <ix-dropdown-item label="1"></ix-dropdown-item>
  <ix-dropdown-item label="2"></ix-dropdown-item>
</ix-dropdown>

<ix-dropdown trigger="ma-item">
  <ix-dropdown-item label="1"></ix-dropdown-item>
  <ix-dropdown-item label="2"></ix-dropdown-item>
</ix-dropdown>

ix-menu-avatar is still visible under Application Frame -> Menu -> MenuAvatar. In parallel we try to improve the visibility and search function of the documentation.

Thanks for the quick respone this solved the issue for us

A fix for this issue is now available in v2.1.1-beta.0.
We kindly ask you to install this version in your dev environment to check if it resolves the problem for you and give us some feedback about this.


[CELEBORN-1374] Refactor SortBuffer and PartitionSortedBuffer

What changes were proposed in this pull request?
Refactor SortBuffer and PartitionSortedBuffer with introduction of DataBuffer and SortBasedDataBuffer.
Why are the changes needed?
SortBuffer and PartitionSortedBuffer is refactored in https://github.com/apache/flink/pull/18505. Celeborn Flink should also refactor SortBuffer and PartitionSortedBuffer to sync the interface changes in Flink. Meanwhile, SortBuffer and PartitionSortedBuffer should distinguish channel and subpartition for https://github.com/apache/flink/pull/23927.
Does this PR introduce any user-facing change?

SortBuffer renames to DataBuffer.
PartitionSortedBuffer renames to SortBasedDataBuffer.
SortBuffer.BufferWithChannel renames to BufferWithSubpartition

How was this patch tested?
UT and IT.

@FMX, @RexXiong, @TanYuxin-tyx.

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 39.23%.  Consider uploading reports for the commit 130b230 to get more accurate results

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #2448      +/-   ##
==========================================
+ Coverage   39.22%   39.23%   +0.01%
==========================================
  Files         217      217
  Lines       13445    13445
  Branches     1177     1177
==========================================
+ Hits         5273     5274       +1
  Misses       7871     7871
+ Partials      301      300       -1

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


Issue with recommendation (or the very existence of this product)

I quote: "Carefully consider before using this approach in production. Experience has shown that the simplicity of this deployment strategy is outweighed by the issues it creates. Consider using SQL scripts instead."
So what is the raison d'etre of this product? What is the point in spending any time at all developing migration scripts if ultimately we also have to spend time developing SQL scripts to migrate production servers?
I understand the caution and the recommendation not to include the scripts in the primary application but surely the migration mechanism can form part of a separate application/process to upgrade production servers under controlled conditions?

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

ID: 06b35eff-79e4-2068-6d1c-f9079d43f903
Version Independent ID: 6c575b10-048c-349c-397e-0d9c11d47235
Content: Applying Migrations - EF Core
Content Source: entity-framework/core/managing-schemas/migrations/applying.md
Product: entity-framework
Technology: entity-framework-core
GitHub Login: @bricelam
Microsoft Alias: bricelam

@xavier-90 the tooling creates the SQL script for you.


Remove pagination with publishedAfter and publishedBefore

Currently it loops infinitely when its parent channel has more than
500 videos. (it fetches for 10 pages, and then run the next query
with publishedAfter without page token and - because it doesn't work -
start over from the beginning because publishedAfter is ignored)
YouTube says it's only a temporary issue, but we'll see.
https://issuetracker.google.com/issues/128594402

the filters came back https://issuetracker.google.com/issues/128774409 so I'm closing it


Make it work with commit signing verification

Is it possible to make it work with commit signing verification? In the previous link it's explained that of course bots can comply with this requirement. For security reasons this verification might be required in some protected branches in a repository, so without it this bot might not be usable in those repositories.
It seems that using something like this might work: https://httgp.com/signing-commits-in-github-actions/

I believe this has been resolved as a part of your PR, https://github.com/DeterminateSystems/update-flake-lock/pull/38; thanks again for the contribution!


Some cookies are misusing the recommended “sameSite“ attribute in Firefox

Browser: Firefox
The Error:

The Cookies:

Same error occurs on prod/live.
So, both of my cookies are set using this library, and both include SameSite and Strict. Why do I get this error? Seems to be pointing to something internal in the library, but no other cookies are being set.
I only get this when I'm running Firefox, Chrome/Safari does not display these errors.

I have the same issue and behaviour, the warning is triggered by Facebook cookies but no cookies are stored for any site.
For me, this only happens in a Production build.

I got this warning as well. Is there any explanation for this? I am using a dev build in Chrome.

Just cleaning up old bugs, let me know if it's still an issue.


Lib rewrite

Mostly an internal update. MTSC can now be used as a library for other projects (e.g. https://github.com/SteveBeeblebrox/SJS/issues/2).
Additionally, minifying now works with HTML. Preprocessing within HTML is possible but is not yet stable any may have unexpected issues.


Feature: getNoBidsForAdUnitCode

Hi, is this just a doc change or are there related code changes as well?


Not binding ngModel when using a new element instead of options element

Guys,
I am having a hard time trying to use ui-select under my business rule.
The thing is: I will show options to the select, however, if the user wants to use another input, I have to be able to catch this new input on my element scope.
This is how I am using ui-select:
<ui-select ng-model="configEvent.patient" name="name" theme="bootstrap" id="namePatient"          required="">
    <ui-select-match placeholder="Select or search a patient">
        {{$select.selected.name}}
    </ui-select-match>
    <ui-select-choices repeat="item in patientArray | filter: $select.search">

    </ui-select-choices>
</ui-select>

When the user selects an element that is in the patientArray, it binds to my model "configEvent.patient" properly. When the user types a new element, it doesn't bind to the model and I am not able to get this new input through ng-click in a button.
Do you guys have a workaround or any idea to point me to the right direction?
Thank you!

+1

the same problem. you can fix it with $watch function.

Closing as a usage issue.
This is possible by making use of the refresh functionality and unshifting an item into the array.


llama.cpp usage

Hey,
First of all, thanks for working on this!
I was trying to get the local llamacpp provider working, without much success.
I tried to debug what was going wrong, but my lack of lua knowledge makes this slow and difficult.
What I did to try and get it working was the following:

Clone llama.cpp
Download 7B huggingface llama model
Convert model
point LLAMACPP_DIR to the root llama.cpp folder
Install llm.nvim
Use the following config based on the starter

local llamacpp = require("llm.providers.llamacpp")
require("llm").setup({
	prompts = {
		llamacpp = {
			provider = llamacpp,
			params = {
				model = "<converted_model_path>",
				["n-gpu-layers"] = 32,
				threads = 6,
				["repeat-penalty"] = 1.2,
				temp = 0.2,
				["ctx-size"] = 4096,
				["n-predict"] = -1,
			},
			builder = function(input)
				return {
					prompt = llamacpp.llama_2_format({
						messages = {
							input,
						},
					}),
				}
			end,
			options = {
				path = "<llama.cpp root folder>",
				main_dir = "build/bin/Release/",
			},
		},
	},
})

Current environment is nvim v0.9.0, on a MacOS M1. Are there any steps I'm missing?

Hi, thanks for checking it out! Did you skip the llama.cpp build step? The starter assumes a working llama.cpp ./main, so you should already be able to run ./build/bin/Release/main [--opts] (or wherever you've set the main_dir to be) in the llama cpp directory. I can make this more explicit in the readme or starter comments if that's the missing step. That said, I'd recommend using a rest api server on top of llamacpp since the start-up time for each request can take a good while, unless  you're specifically intending to experiment with different flags to ./main via llm.nvim prompts.

Llama cpp has build in server support now (since like 2 months?)
./server -m ./models/codellama-13b-instruct.Q5_K_S.gguf -ngl 80
ngl - is for running model partially on gpu (its very fast - 10 lines of code in 1-2 secs! ) . And above model supposed to be gpt3.5 quality ;)
I tried to make llm.nvim work with:
  {
    "gsuuon/llm.nvim",
    config = function()
      local llm = require('llm')
      local curl = require('llm.curl')
      local util = require('llm.util')
      local provider_util = require('llm.providers.util')

      local M = {}

      ---@param handlers StreamHandlers
      ---@param params? any Additional params for request
      ---@param options? { model?: string }
      function M.request_completion(handlers, params, options)
        local model = (options or {}).model or 'bigscience/bloom'

        -- TODO handle non-streaming calls
        return curl.stream(
          {
            -- url = 'https://api-inference.huggingface.co/models/', --.. model,
            url = 'http://<IP_ADDRESS>:8080/completion',
            method = 'POST',
            body = vim.tbl_extend('force', { stream = true }, params),
            headers = {
              -- Authorization = 'Bearer ' .. util.env_memo('HUGGINGFACE_API_KEY'),
              ['Content-Type'] = 'application/json',
              -- ['data'] = '{"prompt": "Building a website can be done in 10 simple steps:","n_predict": 128}',

            }
          },
          function(raw)
            provider_util.iter_sse_items(raw, function(item)
              local data = util.json.decode(item)

              if data == nil then
                handlers.on_error(item, 'json parse error')
                return
              end

              if data.token == nil then
                if data[1] ~= nil and data[1].generated_text ~= nil then
                  -- non-streaming
                  handlers.on_finish(data[1].generated_text, 'stop')
                  return
                end

                handlers.on_error(data, 'missing token')
                return
              end

              local partial = data.token.text

              handlers.on_partial(partial)

              -- We get the completed text including input unless parameters.return_full_text is set to false
              if data.generated_text ~= nil and #data.generated_text > 0 then
                handlers.on_finish(data.generated_text, 'stop')
              end
            end)
          end,
          function(error)
            handlers.on_error(error)
          end
        )
      end

      require('llm').setup({
        hl_group = 'Substitute',
        prompts = util.module.autoload('prompt_library'),
        default_prompt = {
          provider = M,
          options = {
            -- model = 'bigscience/bloom'
          },
          params = {
            return_full_text = false
          },
          builder = function(input)
            return { inputs = input }
          end
        },
      })
    end,
  },

based on 'Adding your own prowider' - https://github.com/gsuuon/llm.nvim/blob/main/lua/llm/providers/huggingface.lua
But now when try to run: LLm - it will throw error:

Configuring  llm.nvim is bit hard, not sure what I did wrong.  Do I have to write my own prompts for it?
I know there is OpenAI compability server script for llama (thus u have to run 2 servers:
[llamacpp server] -> [OAI compatibility server] -> [nvim gpt plugin] ,
so that we can use openAI plugins, but with llama doing the work. But I would rather make it work directly with llama server.

Hi Jose! You know, I think it'd probably be better to simply remove the llamacpp cli provider and switch it to targeting the llamacpp server directly. Outside of playing around with llamacpp flags, the cli provider won't be very useful. I assumed most people would just use an openai compat server, but that does add another dependency and setup step.

I think I'm targeting llama server directly - with  curl.stream ()  , is that what you meant?
In any case I manged to make some progress:
https://github.com/gsuuon/llm.nvim/assets/13521338/ef8abbee-bc54-4f51-b9c0-01d36dc4229e
As you can see code llama is very fast, (thx to compiling llampaccp, with cublast  - cuda support)
But formatting is non existent, since what I do is I just print  culrs output into buffer with:
vim.api.nvim_put({ data.content }, "c", true, true) -- write data.content into active buffer
I'm not sure what is the correct llm.nvim api, to process output of server response...
There is :
handlers.on_finish(data.content, "stop")
Should I override this  'on_finish' somewhere - and make it so that it writes the data.content into buffer?
{
    "gsuuon/llm.nvim",
    config = function()
      local curl = require "llm.curl"
      local util = require "llm.util"
      local llamacpp = require "llm.providers.llamacpp"

      local M = {}

      ---@param handlers StreamHandlers
      ---@param params? any Additional params for request
      ---@param options? { model?: string }
      function M.request_completion(handlers, params, options)
        local model = (options or {}).model or "bigscience/bloom"
        -- vim.print(params)

        -- TODO handle non-streaming calls
        return curl.stream({
          -- url = 'https://api-inference.huggingface.co/models/', --.. model,
          url = "http://<IP_ADDRESS>:8080/completion",
          method = "POST",
          body = vim.tbl_extend("force", { stream = true }, params),
          headers = {
            -- Authorization = 'Bearer ' .. util.env_memo('HUGGINGFACE_API_KEY'),
            ["Content-Type"] = "application/json",
            -- ['data'] = '{"prompt": "Building a website can be done in 10 simple steps:","n_predict": 128}',
          },
        }, function(raw)

          local function parse_in_data(item)
            local data = util.json.decode(item)

            if data == nil then
              handlers.on_error(item, "json parse error")
              return
            end

            if data.token == nil then
              if data ~= nil and data.content ~= nil then
                -- non-streaming
                vim.api.nvim_put({ data.content }, "c", true, true) -- write data.content into active buffer
                handlers.on_finish(data.content, "stop")
                return
              end

              handlers.on_error(data, "missing token")
              return
            end

            local partial = data.token.text

            handlers.on_partial(partial)

            -- We get the completed text including input unless parameters.return_full_text is set to false
            if data.generated_text ~= nil and #data.generated_text > 0 then
              handlers.on_finish(data.generated_text, "stop")
            end
          end

          local items = util.string.split_pattern(raw, 'data:')
          for _, item in ipairs(items) do
            if #item > 0 then
              parse_in_data(item)
            end
          end

        end, function(error)
          handlers.on_error(error)
        end)
      end

      local segment = require "llm.segment"
      require("llm").setup {
        hl_group = "Substitute",
        -- prompts = util.module.autoload "prompt_library",
        default_prompt = {
          provider = M,
          options = {
            -- model = 'bigscience/bloom'
          },
          params = {
            return_full_text = false,
          },
          builder = function(input)
            return {
              prompt = llamacpp.llama_2_format {
                messages = {
                  input,
                },
              },
            }
          end,
        },
        prompts = {
          ask = {
            provider = M,
            hl_group = "SpecialComment",
            params = {
              return_full_text = false,
            },
            builder = function(input)
              return {
                prompt = llamacpp.llama_2_format {
                  messages = {
                    input,
                  },
                },
              }
            end,
          },
        },
      }
    end,
  }

I meant that I should remove the current llamacpp provider which uses the CLI and just have it talk to the server instead.
You're very close! Just call handlers.on_partial with data.content instead of on_finish. Calling on_finish is just necessary for post-completion transformers that are on the prompt (like extracting markdown). Do you want to open a PR to change the llamacpp provider to the server? Otherwise, I'll likely do that sometime today.

Re: your edit -- mode is not necessary for implementing a new provider, it's just there if none of the default modes work for your use-case. You can hook into each part of the provider and do your own thing (e.g., I don't have chat in a sidebar implemented but you could add that as a new mode by overriding these). This is something you would use on the prompt side, not the provider side. This is helpful feedback, I'll clarify the design in the readme - it's not a great explainer at the moment.

@gsuuon I'm slowly getting there, but now with or without mode the response in automatically removed after last server response:
https://github.com/gsuuon/llm.nvim/assets/13521338/37e1ba26-7081-4fd3-85a7-49093eaf5cbc
I mean - I can just undo - to bring it back but is it not optimal.  Also I noticed undo will remove one word by word, rather than whole, accumulated server response.  I guess it would be cool if u could make it so that undo removes whole  server reply, rather than by chunks.

That's the purpose of the :LlmDelete command - I couldn't figure out a nice way to do that with the nvim api (wouldn't mind a PR here as well, since undo is more intuitive). :LlmDelete will put back any text that was replaced.
The input argument given to the prompt builder gets the entire buffer if you haven't selected anything, it'll only be the selected text if there's a selection. This part should be left to the prompt to handle. I'm not sure what you mean by input box -- do you mean the command arguments? Like :Llm myprompt additional instructions here? That's exposed as context.args.
Optional selected lines would be a nice feature but should be a separate PR from updating the llamacpp provider if you do tackle it.

@JoseConseco Oh btw, you can apply this patch to prevent the completion from disappearing - it's because on_finish is being called with an empty string but we can just move that higher up and let the provider abstraction handle it with a sane default.
diff --git a/lua/llm/provider.lua b/lua/llm/provider.lua
index 8e5af0f..a0ebc10 100644
--- a/lua/llm/provider.lua
+++ b/lua/llm/provider.lua
@@ -30,7 +30,7 @@ M.mode = {

 ---@class StreamHandlers
 ---@field on_partial (fun(partial_text: string): nil) Partial response of just the diff
----@field on_finish (fun(complete_text: string, finish_reason?: string): nil) Complete response with finish reason
+---@field on_finish (fun(complete_text?: string, finish_reason?: string): nil) Complete response with finish reason. Leave complete_text nil to just use concatenated partials.
 ---@field on_error (fun(data: any, label?: string): nil) Error data and optional label

 local function get_segment(input, segment_mode, hl_group)
@@ -232,12 +232,19 @@ end
 local function request_completion_input_segment(handle_params, prompt)
   local seg = handle_params.context.segment

+  local completion = ""
+
   local cancel = start_prompt(handle_params.input, prompt, {
     on_partial = function(partial)
+      completion = completion .. partial
       seg.add(partial)
     end,

     on_finish = function(complete_text, reason)
+      if complete_text == nil or string.len(complete_text) == 0 then
+        complete_text = completion
+      end
+
       if prompt.transform == nil then
         seg.set_text(complete_text)
       else

@gsuuon on_finish() - being called with empty string arg,  that was my guess but I did not  have time to make it work (by concatenating strings like u showed above, and feeding into on_finish) .
About input string, yes I saw you could add question as argument. But IMO it would be great, if you could create prompt :Llm "process_sel"  with would :

take selection as argument 1,
then show popup with input box - where u tell what to do (eg. translate above arg1  text in English)
I guess it is just matter of UI --  :Llm myprompt additional instructions here  - seems more 'retro' style.
Thx for diff.

That can be added in the prompt, there's a starter called 'instruct' that shows how to use vim.ui.input to get some input.

I think above 'instruct' would have to be  remade into llama format:
<s>[INST] <<SYS>>
{{ system_prompt }}
<</SYS>>

{{ user_message }} [/INST]

In any case I made PR.  Tomorrow I can make some fixes if needed.

@gsuuon is there way to output AI message to popup window?
https://github.com/gsuuon/llm.nvim/assets/13521338/f923bb23-6374-4cfd-88e7-809613e9b440
The issue I have now - llama will output code with comments, and I cant seem to force it to output the pure code only.
It  would help, if  output was written to new popup windwo, where user could copy the code, close popup, and paste into place...
I was also wondering maybe: LlmDelete - shoudl be renamed LlmUndo - since this is what it is for

@JoseConseco moved to https://github.com/gsuuon/llm.nvim/discussions/15


Streaming API fails when using POST as an OAuth User

I'm trying to use the Streaming APIs, but can only get the GET methods to work when using an OAuth'd user.
Even when using the demo iOS app and switching the REST request attached to the "Get Timeline" button for the following two examples, the first one works, but the second never hits the "tweetBlock":
WORKING:
[_twitter getStatusesSampleTweetBlock:^(NSDictionary *tweet) {
        NSLog(@"Tweet: %@", tweet);
    } errorBlock:^(NSError *error) {
        NSLog(@"Error: %@", error);
    }];

NOT WORKING:
[_twitter postStatusesFilterKeyword:@"trump" tweetBlock:^(NSDictionary *tweet) {
        NSLog(@"Tweet: %@", tweet);
    } errorBlock:^(NSError *error) {
        NSLog(@"Error: %@", error);
    }];

This second example works perfectly when I use the "Login with iOS" button to authenticate, but doesn't work at all when using the "login on the web with" button. I've tried with your consumer key/secret, my usual pair, and also a brand new key/secret pair, and none of them work.
When I hit the button, it seems to connect ok - no errors are returned etc - but the "tweetBlock" is never run.

I've created new versions of the two "postStatusesFilter" methods based on your "getStatusesSampleTweet" methods, so that I can test the "statuses/filter.json" endpoint, using a GET request instead of POST.
This works perfectly even using an OAuth'd user, therefore, the problem seems to be just with the POST methods.
Unfortunately, the GET method is problematic when trying to use multiple boundingBox locations because the URL gets too long.
Anyway, thanks for an amazing library - it really has been a pleasure to use it so far, and I hope that we can get this issue resolved. I'm here to help in any way I can.

At first investigation, the issue seems to be in STHTTPRequest.
The request is correctly sent, but NSURLSession callbacks are never called.

Sometimes, the data arrive after a few minutes, like 5 or 10.

fixed in master with https://github.com/nst/STTwitter/commit/3ca353282951b853feb6d3bb911bbac9a820f2db


[gRPC] WalletUnlocker and RPCServer unification

This PR unifies the gRPC server used for the WalletUnlockerService and LightningService, making both services available at all times. This addresses a long-standing issue of the gRPC server being torn down and restarted after unlocking the wallet.
Overview
The reason for the original design of tearing down the gRPC server after unlocking the wallet, was that the RPC server (LightningService) was dependent on the wallet being unlocked in order to being created. We mitigate this by now creating the RPC server before the wallet is unlocked, in a "non-functioning" state just in order to register its interface with the gRPC server. After the wallet is finally unlocked, we can populate the dependencies of the root RPC server and its subservers, enabling the full LightningService to be operational.
RPC state interception
Since the RPC server shouldn't be used before it has been fully initialized, we gate the calls to the services through a new gRPC interceptor found in the rpcperms package. This RPCInterceptor keeps track of the current state of the wallet and RPC server, and allows or rejects calls to the various services based on this. We also move macaroon authentication here.
The RPC state tracked by the RPCInterceptor also paves the way for a coming new RPC endpoint for exposing the unlocking state of the wallet.
Fixes #3982
Fixes https://github.com/lightningnetwork/lnd/issues/4340
Fixes https://github.com/lightningnetwork/lnd/issues/3631

@guggero Can you check if this has some implications for the GRUB setup?

Agreeing on the awesomeness. I'll have a full review and testing as well.

Fails because of a bunch of errors that need to be white listed:
<time> [ERR] RPCS: [/lnrpc.Lightning/BakeMacaroon]: permission denied
<time> [ERR] RPCS: [/lnrpc.Lightning/GetInfo]: cannot retrieve macaroon: cannot get macaroon: root key with id  doesn't exist
<time> [ERR] RPCS: [/lnrpc.Lightning/GetInfo]: caveat "ipaddr <IP_ADDRESS>" not satisfied: macaroon locked to different IP address
<time> [ERR] RPCS: [/lnrpc.Lightning/GetInfo]: caveat "time-before 2021-02-25T<chan>.601693549Z" not satisfied: macaroon has expired
<time> [ERR] RPCS: [/lnrpc.Lightning/GetInfo]: expected 1 macaroon, got 0
<time> [ERR] RPCS: [/lnrpc.Lightning/GetInfo]: permission denied
<time> [ERR] RPCS: [/lnrpc.Lightning/GetInfo]: RPC starting up
<time> [ERR] RPCS: [/lnrpc.Lightning/ListMacaroonIDs]: cannot retrieve macaroon: cannot get macaroon: root key with id 1 doesn't exist
<time> [ERR] RPCS: [/lnrpc.Lightning/NewAddress]: permission denied

Thanks for the review!
It's almost a bit sentimental for me to hit the merge button on this one, it's been long time in the making, and required many attempts before we settled on a non-breaking change that also wasn't a pain to review 😭
❤

Thanks a lot! Sorry for not testing it, unfortunately, my life took weird turns lately.


[SPARK-25880][CORE] user set's hadoop conf should not overwrite by sparkcontext's conf

What changes were proposed in this pull request?
Hadoop conf which is set by user which is use sparksql's set command should not overwrite by sparkContext's conf which is read from spark-default.conf.
How was this patch tested?
manually verified with 2.2.0

Can one of the admins verify this patch?

Can one of the admins verify this patch?

Can one of the admins verify this patch?

test this please

Hi @gjhkael ,
can you explain more about why you make the change?
Did you try spark.SessionState.newHadoopConf()?

can you explain more about why you make the change?
Some hadoop configuration set it in spark-default.conf, we want it to be global, but in some cases, user need to override the configuration but cannot works, for the sparkContext's conf fill the hadoopConf again finally before broadcast this hadoop conf.
Did you try spark.SessionState.newHadoopConf()?
We have this problem is in Spark-sql, not use the datafame api

user set hadoop conf can't overwrite spark-defaults.conf
SparkHadoopUtil.get.appendS3AndSparkHadoopConfigurations overwrite the user-set spark.hadoop with the default configuration (sparkSession.sparkContext.conf)
@gengliangwang @cloud-fan @gatorsmile
Could you please give some comments when you have time?
Thanks so much.
https://github.com/apache/spark/blob/80813e198033cd63cc6100ee6ffe7d1eb1dff27b/sql/hive/src/main/scala/org/apache/spark/sql/hive/TableReader.scala#L85-L89
test:
spark-defaults.conf
spark.hadoop.mapreduce.input.fileinputformat.split.maxsize  2

spark-shell

val hadoopConfKey="mapreduce.input.fileinputformat.split.maxsize"
spark.conf.get("spark.hadoop."+hadoopConfKey) // 2
var hadoopConf=spark.sessionState.newHadoopConf
hadoopConf.get(hadoopConfKey) // 2

spark.conf.set(hadoopConfKey,1) // set 1
hadoopConf=spark.sessionState.newHadoopConf
hadoopConf.get(hadoopConfKey) // 1

//org.apache.spark.sql.hive.HadoopTableReader append Conf
org.apache.spark.deploy.SparkHadoopUtil.get.appendS3AndSparkHadoopConfigurations(spark.sparkContext.getConf, hadoopConf)

//org.apache.spark.sql.hive.HadoopTableReader _broadcastedHadoopConf
hadoopConf.get("mapreduce.input.fileinputformat.split.maxsize") // 2

looks reasonable, cc @gatorsmile

Sorry, this is a breaking change. It changes the behavior from "I can currently override any Hadoop configs, even final ones, using spark.hadoop.*" to "I can never do that".
If there's an issue with the SQL "set" command that needs to be addressed, this is the wrong place to do it.
Basically, if my "core-size.xml" says "mapreduce.input.fileinputformat.split.maxsize" is 2, and my Spark conf says "spark.hadoop.mapreduce.input.fileinputformat.split.maxsize" is 3, then the value from the config generated by the method you're changing must be 3.

@vanzin Thanks for you review, I add a new commit to let the user's "set" command take effect. Let me know if you have an easier way. Thanks.

Basically, if my "core-size.xml" says "mapreduce.input.fileinputformat.split.maxsize" is 2, and my Spark conf says "spark.hadoop.mapreduce.input.fileinputformat.split.maxsize" is 3, then the value from the config generated by the method you're changing must be 3.

I think this is what this PR tries to fix? the hadoopConf parameter of appendS3AndSparkHadoopConfigurations is either an empty one, or a one from spark.SessionState.newHadoopConf() which contains user-provided hadoop conf.

@vanzin @cloud-fan
The simplest description: user set 'spark.hadoop.xxx' through setCommand will not cover the same configutation that set in spark-defaults.conf file.
I don't know if that description makes sense?

ok, that makes sense as in I understand what you're saying, but not sure it's what you actually want?
Why shouldn't "set spark.hadoop.*" override spark-defaults.conf?
But, in any case, it seems like the patch for SPARK-26060 (#23031) should take care of this (by raising an error).

Spark SQL SET command can't update any static config or Spark core configs, but I think hadoop configs are different. It's not static as users can update it via SparkContext.hadoopConfiguration.  SparkSession.SessionState.newHadoopConf() is a mechanism to allow users to set hadoop config per-session in Spark SQL.
So it's reasonble for users to expect that, if they set hadoop config via the SQL SET command, it should override the one in spark-defaults.conf.
Looking back at appendS3AndSparkHadoopConfigurations, it has 2 parameters: spark conf and hadoop conf. The spark conf comes from spark-defaults.conf and any user provided configs when building the SparkContext. The user provided configs override spark-defaults.conf. The hadoop conf is either an empty config(if appendS3AndSparkHadoopConfigurations is called from SparkHadoopUtil.newHadoopConfiguration), or from SparkSession.SessionState.newHadoopConf()(if appendS3AndSparkHadoopConfigurations is called from HadoopTableReader).
For the first case, nothing we need to worry about. For the second case, I think the hadoop config should take priority, as it contains the configs specified by users at rutime.

So it's reasonble for users to expect that, if they set hadoop config via the SQL SET command, it should override the one in spark-defaults.conf.

I agree with that. But the previous explanation seemed to be saying that's the undesired behavior. Maybe I'm just having trouble with understanding what @gjhkael wrote.

Can one of the admins verify this patch?

@gjhkael  can you please clarify this or close it if it is no longer relavent?


Update @jupyterlab/services to the latest version

For #

[ ] Pull request represents a single change (i.e. not fixing disparate/unrelated things in a single PR)
[ ] Title summarizes what is changing
[ ] Has a news entry file (remember to thank yourself!)
[ ] Appropriate comments and documentation strings in the code
[ ] Has sufficient logging.
[ ] Has telemetry for enhancements.
[ ] Unit tests & system/integration tests are added/updated
[ ] Test plan is updated as appropriate
[ ] package-lock.json has been regenerated by running npm install (if dependencies have changed)
[ ] The wiki is updated with any design decisions/details.

Codecov Report

Merging #8303 into master will decrease coverage by 0.68%.
The diff coverage is 0%.

@@            Coverage Diff             @@
##           master    #8303      +/-   ##
==========================================
- Coverage   59.32%   58.64%   -0.69%
==========================================
  Files         504      504
  Lines       23087    22721     -366
  Branches     3736     3732       -4
==========================================
- Hits        13697    13325     -372
- Misses       8498     8504       +6
  Partials      892      892

Impacted Files
Coverage Δ

src/client/datascience/types.ts
100% <ø> (ø)
:arrow_up:

src/client/datascience/jupyter/jupyterNotebook.ts
6.01% <0%> (-0.04%)
:arrow_down:

...nt/datascience/jupyter/invalidNotebookFileError.ts
0% <0%> (-75%)
:arrow_down:

.../client/datascience/jupyter/jupyterConnectError.ts
0% <0%> (-66.67%)
:arrow_down:

...science/jupyter/jupyterKernelPromiseFailedError.ts
0% <0%> (-50%)
:arrow_down:

...ent/datascience/jupyter/jupyterWaitForIdleError.ts
0% <0%> (-50%)
:arrow_down:

...cience/jupyter/jupyterDebuggerNotInstalledError.ts
50% <0%> (-30%)
:arrow_down:

src/client/language/characters.ts
12% <0%> (-21.34%)
:arrow_down:

src/client/testing/codeLenses/main.ts
60% <0%> (-17.78%)
:arrow_down:

src/client/datascience/cellFactory.ts
72.34% <0%> (-17.32%)
:arrow_down:

... and 31 more

Continue to review full report at Codecov.

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


spelling fix

Codecov Report
Base: 87.19% // Head: 87.19% // No change to project coverage :thumbsup:

Coverage data is based on head (affa5bf) compared to base (6147449).
Patch coverage: 100.00% of modified lines in pull request are covered.

Additional details and impacted files
@@           Coverage Diff           @@
##             main      #89   +/-   ##
=======================================
  Coverage   87.19%   87.19%
=======================================
  Files          48       48
  Lines        5468     5468
=======================================
  Hits         4768     4768
  Misses        590      590
  Partials      110      110

Flag
Coverage Δ

go_tests
87.19% <100.00%> (ø)

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

Impacted Files
Coverage Δ

xopup/collect.go
98.94% <100.00%> (ø)

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


[Service Connector] az aks connection: AKS support for Service Connector

Related command
az aks connection create/update/list/list-configuration/validate/delete
Description
Support AKS as source resource for Service Connector
Testing Guide
Create using workload identity as authentication type
az aks connection create {target-type} --connection {connection-name} --source-id {source-aks-id} --target-id {target-id} --workload-identity client-id={client-id} subs-id={subscription-id} --client-type python
az aks connection list --source-id {source-aks-id}
az aks connection list-configuration --id {connection-id}
az aks connection validate --id {connection-id}
az aks connection delete --id {connection-id}
Create using secret:
az aks connection create {target-type} --connection {connection-name} --source-id {source-aks-id} --target-id {target-id} --secret --client-type python
History Notes

[Service Connector] az aks connection: AKS support for Service Connector

This checklist is used to make sure that common guidelines for a pull request are followed.

[x] The PR title and description has followed the guideline in Submitting Pull Requests.

[x] I adhere to the Command Guidelines.

[x] I adhere to the Error Handling Guidelines.

Service Connector

Please fix CI issues

@jsntcy Could you please help review this PR?

@kairu-ms please help review

Need to disable secret store.


Fix for backwards logic

The logic here was backwards.
__result should only be overwritten when maxLevelExp is higher than the monster level, not the other way around.

@ChasL Why? Now if monsterLvl > maxLvlExp = item list is empty

But that's not what you want is it? For example Eikthyr is level 15 in the db file, so if you are level 4 and the config option is left at 10 level difference max then 14 (maxLvlExp) >15 (monsterLvl) will be false and Eikthyr will drop nothing even though you are only level 4. From what I understand it should be that unless you are level 25, Eikthyr should drop items.

The config option makes that seem like it's not the case though?

Monsters after death do not give items if their level is less than the character by player level + MaxLevelRange

The current logic of checking maxLevelExp < mosterLevel makes it so that the monster will only drop items if the character level is more than or equal to monsterLevel


Force unsigned integer aritmetic for all year 2000 calculations

Also fix printf formatting characters from %d to %u.
Without this fix, compiling would give the following warnings:
Compiling library "RTClib"
/opt/arduino-1.8.13/hardware/tools/avr/bin/avr-g++ -c -g -Os -Wall -Wextra -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -MMD -flto -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10813 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR -I/opt/arduino-1.8.13/hardware/arduino/avr/cores/arduino -I/opt/arduino-1.8.13/hardware/arduino/avr/variants/mega -I.../libraries/Chronos/src -I.../libraries/Time -I.../libraries/RTClib -I.../libraries/ArduinoThread -I.../libraries/SmartLCD -I/opt/arduino-1.8.13/hardware/arduino/avr/libraries/Wire/src .../libraries/RTClib/RTClib.cpp -o /tmp/arduino_build_578150/libraries/RTClib/RTClib.cpp.o
.../libraries/RTClib/RTClib.cpp: In member function 'bool DateTime::operator<(const DateTime&) const':
.../libraries/RTClib/RTClib.cpp:672:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
return (yOff + 2000 < right.year() ||
^~
.../libraries/RTClib/RTClib.cpp:673:24: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
(yOff + 2000 == right.year() &&
^~~
.../libraries/RTClib/RTClib.cpp: In member function 'bool DateTime::operator==(const DateTime&) const':
.../libraries/RTClib/RTClib.cpp:696:24: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
return (right.year() == yOff + 2000 && right.month() == m &&
~^~

Note that only lines 672, 673 and 696 needed to be fixed in order to avoid the warning. Everywhere else the U suffix is redundant due to the implicit conversions performed by the compiler.
Note also that %d is correct in the printf() format: the default conversions applied to variadic arguments turn them all into signed ints.

Regarding implicit conversions, they are constant source of confusion for beginners (and possibly old timers as well), and improper integer handling is a very common source of security vulnerabilities. Now I cannot see any security related problems by just using 2000 here, but being explicit is a very good habit that helps avoiding them.
Also the code will be more consistent by always using 2000U in calculations instead of some times 2000 and sometimes 2000U.

Regarding conversion, no - there is no type conversion from unsigned int to signed int.
The C++ standard says under "8.2.2 Function call":

"When there is no parameter for a given argument, the argument is passed in such a way that the receiving function can obtain the value of the argument by invoking va_arg. ... If the argument has integral or enumeration type that is subject to the integral promotions ... the value of the argument is converted to the promoted type before the call. These promotions are referred to as the default argument promotions."

If being the keyword here. Sure smaller types will be widened to int, but unsigned int is already the same size as signed int,
and has no promotion defined. The standard explicitly states that unsigned int and signed int have the same rank under "7.15 Integer conversion rank":

"The rank of any unsigned integer type shall equal the rank of the corresponding signed integer type."

This applies both to C++
$ cat main2.cpp && g++ -o main2 main2.cpp -Wall -Wextra && ./main2
#include <iostream>

int main(int argc, char *argv[])
{
        char buf[32];

        (void)argc;
        (void)argv;

        unsigned int n = 0xFF00FF00;
        sprintf(buf, "d: %d", n);
        std::cout << buf << std::endl;
        sprintf(buf, "u: %u", n);
        std::cout << buf << std::endl;
}

d: -16711936
u:<PHONE_NUMBER>
$

as well as C (with slightly different rules, but same result)
$ cat main1.c && gcc -o main1 main1.c -Wall -Wextra && ./main1
#include <stdlib.h>
#include <stdio.h>

int main(int argc, char *argv[])
{
        char buf[32];

        (void)argc;
        (void)argv;

        unsigned int n = 0xFF00FF00;
        sprintf(buf, "d: %d", n);
        puts(buf);
        sprintf(buf, "u: %u", n);
        puts(buf);
}

d: -16711936
u:<PHONE_NUMBER>
$

there is no type conversion from unsigned int to signed int [...] smaller types will be widened to int

That's right. However, the variadic arguments passed to sprintf() are not unsigned int: they are uint8_t, a.k.a. unsigned char. They are smaller than int and subject to integral promotion. The exception being 2000 + yOff, which is an int.
Anyway, the values being positive, it should make no difference. And indeed, avr-libc defines PRIu8 as "u" (probably to forbid the conversion flags only valid for signed numbers), so that should also be valid.

implicit conversions [...] are constant source of confusion [...] Also the code will be more consistent by always using 2000U.

Very fair point.
I don't think there is anything wrong with your changes, save for the way they relate to the commit message. My understanding of that message is that the rationale for the commit is:

Avoid a compiler warning
Fix an error in the choice of the printf() conversion specifiers.

And I commented that:

From this perspective, many of the changes are not needed
The printf() conversion specifiers are not wrong.

If the rationale is instead about consistency, and not relying on implicit conversions, then all the changes are perfectly justified. Only the commit message could be better.

You are correct about "%d" not being wrong for the non-year arguments, I have updated the commit.

Maintainers, anything missing before this can be completed?


Execute robot framework test suite multiple times ?

Is there any way config to run the robot testsuite many time ?  Thanks

Yes, you can, for example, create a batch file or a shell script with contents like:
robot tests.robot
robot tests.robot

There are many other approaches as well, but you need to tell a bit more about your use case for others to be able to help. Notice also that this issue tracker is for bug reports and enhancement requests. Mailing lists, Slack channel, or other forums listed at http://robotframework.org/#support should be used for general questions.

I tried your solutions but it just run the first testsuite and generate the report so the other TS didnot execute.
my batch file :
cd C:\RFworkspace\FirstDemo\TestCases
pybot --timestampoutputs LoginFeature.txt
pybot --timestampoutputs LoginFeature.txt
pybot --timestampoutputs LoginFeature.txt
pybot --timestampoutputs LoginFeature.txt
pause

There are many other approaches as well, but you need to tell a bit more about your use case for others to be able to help. Notice also that this issue tracker is for bug reports and enhancement requests. Mailing lists, Slack channel, or other forums listed at http://robotframework.org/#support should be used for general questions.
👍  many thanks..I have joined


[Request] List Users/Examples

Hello!
I'm having a hard time wrapping my head around how I would implement probot-config for my user, so I would love to be able to see how others have done it. I suggest appending a list of a few known users of probot-config to the README, if said users volunteer. Would that be possible?

That’s a great idea :) I use probot-config in the WIP app: https://github.com/wip/app/blob/b427eee3be7f71d3729b57f413edf0462ce9ec5b/lib/pro/get-config.js
I also documented configuration for users:
https://github.com/wip/app#configuration
Hope that helps?


single blurred image inference

Is there code for inference for individually blurred images? Or does the inference need to be for both the blurred image and Groundtruth？

don't need groundtruth


allow flash plugin to run in chrome 62+

see https://sqa.stackexchange.com/questions/30312/enable-flash-player-on-chrome-62-while-running-selenium-test
without this, the flash plugin will not be allowed to run in versions of chrome 62 or higher. this can cause problems for sites that make heavy use of flash.
@DramaFever/qa

LGTM!


Switching icons for PWA docs

Here we are attempting to use SVGs for clear red, green, and yellow icons a user can comprehend quickly. These SVGs are from the Glyphicons Halflings family, which are used elsewhere on docs (such as the Edit button). The plan is to use these SVGs first, and later we will see if Hugo can support custom icon font libraries.
Icon font libraries would make using such icons a bit easier and cut down on the amount of Markdown used.


Cannot read property 'timeout' of undefined

const {
Aborter,
BlobURL,
BlockBlobURL,
ContainerURL,
ServiceURL,
StorageURL,
SharedKeyCredential,
uploadStreamToBlockBlob
} = require('@azure/storage-blob');
const ONE_MINUTE = 60 * 1000;
Aborter.timeout(30 * ONE_MINUTE)
error message:
Cannot read property 'timeout' of undefined TypeError: Cannot read property 'timeout' of undefined
why?

@cx5168 What blob package version are you using? v10 or v12? Make sure you are using v10 in package.json. So it will throw the timeout error message if the version is v12.


Feature request - button to jump to PDF in local filesystem

Hi there,
This is a feature request for Onyx Boox users rather than a bug report.
I just got an onyx boox device running on android 12. These are great in some aspects, but extremely frustrating in others. In particular, the only usable ap for notetaking is their native 'NeoReader' app, which is optimized for their hardware (third party apps are super laggy). It is great though, so no problem using NeoReader. The only issue is that when opening a PDF with NeoReader from any third party app (such as Obsidian in this case), NeoReader will generate a copy of the file to edit and save it to your device 'downloads' folder (and it also saves it to the cache if anybody is reading this and wonders how a pdf can still pop up after deletion from the download folder).
The workaround is to access your PDF directly from the boox native filesystem. If you navigate through your obsidian vault directory structure and open it with NeoReader, it edits the file in place without generating a copy. And your notes therefore appear in obsidian when you reopen the app!
I was wondering if there was a way to implement a button which 'jumps to file on local filesystem' in your package? It would make it super easy to go edit the note from the local directory. This can also be useful if users want to easily move their PDF around in the local directory structure.
Thank you for your awesome package!

I confirm that the same problem occurs on iPhone iOS with PDFreader for instance - if you edit the file after navigating the local iOS filesystem with PDFreader, it edits the file in place, but if you open it from your plugin in obsidian it creates a copy of the file in PDFreader's own directory. A togglable button jumping to the file in filesystem would make this process super smooth for users!
For some fortunate reason, this isn't a problem on iPad iOS - PDF reader edits the file in place when called from your plugin's button (or from the share button).

For iPad Users:
You can use any of the apps listed in the README.
Regarding Boox Devices:
I'm not entirely sure, as I believe they utilize some proprietary pen technology. However, I encourage you to try using the suggested Android apps and share your experience, please.

Regarding the Button for Accessing the File System:
I researched this feature a while ago with the goal of making it easier to import templates. Unfortunately, it's not possible to implement this due to limitations in the Capacitor API that Obsidian utilizes. This functionality is only available on desktop versions.


user section in viz.json v3 is missing

DI.js is expecting something like:
{
user: {
fullname: 'whatever',
avatar_url: 'http://....'
}
}

looking at the wrong url


[amdgpu] compiling for gfx9 spills a LOT into 64 vgpr

[reposted from llvm-project for more visibility]
Hey guys, I am trying to compile some llvmir for gfx908, it seems like it have a lot of spiils but is only trying to fit in 64 vgpr, which is weird since IIRC it should have 256 vgpr.
Here is the llvmir I use to compile: ll file
Compiling with llc-13 will generate an assembly file where we can see that it has 654 vgpr spill with 64 vgpr count.
/usr/bin/llc-13 -mtriple=amdgcn--amdhsa-amdgiz --march=amdgcn -mcpu=gfx908 /home/stanley/output__inference_learn_29220_dispatch_227.ll -filetype=asm

# output assembly file seen [here](https://gist.github.com/raikonenfnu/763bf67d0f9f8d3833fd3f3978bb2d8e#file-output__inference_learn_29220_dispatch_227-s-L5325-L5336)

I have also tried compiling with llc generated from llvm-project linked in aomp, which would present a detailed error of:
./llc -mtriple=amdgcn--amdhsa-amdgiz --march=amdgcn -mcpu=gfx908 /home/stanley/output__inference_learn_29220_dispatch_227.ll -filetype=asm

LLVM ERROR: Error while trying to spill VGPR0 from class VGPR_32: Cannot scavenge register without an emergency spill slot!
PLEASE submit a bug report to https://bugs.llvm.org/ and include the crash backtrace.
Stack dump:
0.	Program arguments: ./llc -mtriple=amdgcn--amdhsa-amdgiz --march=amdgcn -mcpu=gfx908 /home/stanley/output__inference_learn_29220_dispatch_227.ll -filetype=asm
1.	Running pass 'CallGraph Pass Manager' on module '/home/stanley/output__inference_learn_29220_dispatch_227.ll'.
2.	Running pass 'Prologue/Epilogue Insertion & Frame Finalization' on function '@__inference_learn_29220_dispatch_227'

Could there be some bug in the spill/register allocation code for AMDGPU backend?
Any advice/comments/guidance would be very helpful!

@raikonenfnu Apologies for the lack of response. Can you please test with the latest ROCm 6.2? If issue is resolved, please close the ticket. Thanks!


DG-1746 Support custom relationshipDef for any Assets linking

Change description
Hagerty (Customer) wants a way to define custom objects that are built on top of Atlan’s Assets interface, create custom definitions for relationships between 2 arbitrary assets and want some properties on the relationship as well.
Overall we try to keep it very generic to make it GA.

Testing Doc - https://www.notion.so/atlanhq/Custom-relationshipDef-tests-36f5fcc8690744f994c8cd6299dd486c
Models PR [beta] - https://github.com/atlanhq/models/pull/1152
A few important considerations - https://atlanhq.atlassian.net/browse/DG-1746?focusedCommentId=184179

Type of change

[ ] Bug fix (fixes an issue)
[x] New feature (adds functionality)

Related issues
DG-1746 Support custom relationshipDef for any Assets linking
Checklists
Development

[ ] Lint rules pass locally
[ ] Application changes have been tested thoroughly
[ ] Automated tests covering modified code pass

Security

[ ] Security impact of change has been considered
[ ] Code follows company security practices and guidelines

Code review

[ ] Pull request has a descriptive title and context useful to a reviewer. Screenshots or screencasts are attached as necessary
[ ] "Ready for review" label attached and reviewers assigned
[ ] Changes have been reviewed by at least one other contributor
[ ] Pull request linked to task tracker where applicable

Scrapping this PR
See this for continuation - https://github.com/atlanhq/atlas-metastore/pull/3551


Visual bug, if there are only 2 elements, the selector does not point correctly

Describe the bug
If there are only 2 elements to choose from, then the selected arrows for the FortuneBar will be exactly between the two.
Plugin version: 0.4.2 & 1.0.0-dev.0 (tested both)
Expected behavior
Only one Item to be selected.
Screenshots

Smartphone (please complete the following information):

Device: Android Emulator (Nexus 5X api lvl 29)
OS: Android 10

Additional context
selectedRandomOption = Random().nextInt(_options.length);

[...]
FortuneBar(
        selected: selectedRandomOption, //selected: Stream.value(selectedRandomOption), <- for 1.0.0-dev.0 version of the plugin
         items: _options .map((e) => FortuneItem(child: Text(e),)).toList(),
),

Thanks for pointing that out, @rusudinu!
v1.0.0 is currently being published, which should fix this issue


Replace deprecated unittest aliases

https://docs.python.org/3/library/unittest.html#deprecated-aliases

Codecov Report

Merging #203 (24cb054) into develop (8f02523) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff            @@
##           develop     #203   +/-   ##
========================================
  Coverage    85.76%   85.76%
========================================
  Files           16       16
  Lines         2767     2767
========================================
  Hits          2373     2373
  Misses         394      394

Continue to review full report at Codecov.

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


Improved page about HTTP/2 support

In this commit I did the following:

updated link and changed link title
changed "HTTP2" to "HTTP/2"
removed doubled note.

+1 for being more precise across the board.
One note tho, probably addressed @Fyrd: "http2" should still find this entry. Maybe this is given by the feature name or by how the search works. Otherwise "http2" could be added as keyword?

To be honest, I also don't know how exactly the search works. If it is necessary, I can add "http2" to the keywords.

Search works on: feature ID, title, description & keywords. Since "http2" is the feature id that should  already take care of it in this case. :)
Thanks!


Question:  How do mutators work with Anvil-Tabulator

Trying to use Mutator as follows:
In Anvil Client Code
Tabulator.modules.add("MutatorModule")

def date_mutator(value, data, type, params, component):
  logger.debug("ENTERING: date_mutator")
  print(value)
  print(data)
  print(type)
  print(params)
  print(component)
  dt_val = datetime.strptime(value, "%Y-%m-%d").date()
  print("HERE")
  print(value)
  print(dt_val)
  value = dt_val
  logger.debug(f"RETURN: {dt_val!r}")
  print("goodby")
  return dt_val

    self.tabulator_clients.columns = [
      {"title": "Name", "field": "name", "formatter": "text"},
      {"title": "Max Budget", "field": "max_budget", "formatter": "money",
      "formatterParams": {"symbol": "$", "precision": 0}},
      {"title": "Start Date", "field": "start_date", "formatter": "datetime",
      "mutator": date_mutator, "accessor":date_accessor , "formatter_params": {"format": "%Y-%m-%d"}},
...

sample data ...
[{'name': 'Webb', 'max_budget': 420, 'active': True, 'start_date': '2022-11-23', 'end_date': None, 'id': 'ac7d4d5a-7b94-402f-b1b2-e808da66d050', 'created': '2022-11-28T19:29:43.558745', 'modified': '2022-11-28T19:29:43.558745'}, {'name': 'Avida Apartments', 'max_budget': 361.67, 'active': True, 'start_date': '2022-12-01', 'end_date': None, 'id': '3e9ebdec-bed8-45c2-a9a9-1abb96761a97', 'created': '2022-11-28T19:29:43.558745', 'modified': '2022-11-28T19:29:43.558745'}, ...]

Output is
rapg|clients|DEBUG: 2022-11-29 13:39:58: ENTERING: date_mutator
2022-12-01
proxyobject({'name': 'Avida Apartments', 'max_budget': 361.67, 'active': True, 'start_date': '2022-12-01', 'end_date': None, 'id': '3e9ebdec-bed8-45c2-a9a9-1abb96761a97', 'created': '2022-11-28T19:29:43.558745', 'modified': '2022-11-28T19:29:43.558745'})
data
proxyobject({})
<ColumnComponent proxyobject>
HERE
2022-08-01
2022-08-01
rapg|clients|DEBUG: 2022-11-29 13:39:58: RETURN: datetime.date(2022, 8, 1)
goodby

So it seems like the mutator is executing, however I am getting the following error ...
TypeError: A datetime formatter expects a datetime object
at app/tabulator/Tabulator/_datetime_overrides.py:22

which seems like the return value of mutator is not making it to cellValue. i.e. the data object returned from mutator is not being accessed by datetime_overrides.py.
Any thoughts on what I might be doing wrong appreciated.

Did you see I posted about your original question on the forum. Might want to check out that post first which might solve what you're trying to do.

If you want to go down the mutator route here:
It looks like your mutator is trying to set a datetime column to a date object
(I've adjusted the error message to be more informative)
in the Anvil Tabulator there is "date" and "datetime" options, which are different
You're column definition should probably be
formatter: "date"
But I would also suggest looking at the "luxon_datetime" option - see the forum post for details

Thanks.
Yeah, I was trying to get mutator to work, since I was thinking about inline editing, and thought the mutator approach would get me there (as you highlighted Tabulator JS does not come with an editor.)
When I try the date formatter, it displays as blank on the page.
      "mutator": date_mutator, "formatter_params": {"format": "%Y-%m-%d"}},

I keep hitting different combinations of stumbling blocks ....
From my understanding / quick recap:
-> Challenge with date/datetime overrides is they don't play nice with dates as strings
-> Challenge with mutators is they don't seem to play nice with date/datetime overrides
-> Challenge with JS (tabulatorjs & luxonjs)  is there is no date editor
Can we take a step back?  I think it might be a quicker resolution.
Do you have an opinion on my original question: How do you recommend handling fields which contain dates as strings?
I have a list of dicts sourced from an API, the date fields are strings.
I want to have inline editing of date fields in Tabulator, similar to your demo app.
I want to avoid pre-processing, that is iterating the entire list converting the strings to a date object before setting tabulator data to the list.
I'd like to stay as close to out-of-the-box functionality as I can.

I'd probably do the luxon thing and then use a custom editor
the source code for the other one is in the repository but it is basically
from anvil.js import get_dom_node

def date_editor(cell , **editor_params):

    dt = date.fromisoformat(cell.get_value()) # adjust for your format
    dp = DatePicker(date=dt, spacing_above="none", spacing_below="none")

    # some styling
    dom_node = get_dom_node(dp)
    inputNode = dom_node.firstElementChild
    inputNode.style.fontSize = "inherit"
    inputNode.style.padding = "0"
    dom_node.style.display = "inline-flex"
    dom_node.style.justifyContent = "space-between"
    dom_node.style.height = "100%"
    dom_node.style.width = "100%"
    inputNode.nextSibling.style.bottom = "6px"

    def change(**event_args):
        dp.raise_event("x-close-editor", value=dp.date.isoformat())
        # adjust for your format

    dp.add_event_handler("change", change)

    def hide(**e):
        dp.date = dp.date  # force the calendar picker to close

    dp.add_event_handler("hide", hide)

    return dp

Note also that if your dates are in YYYY-MM-DD format (and that's the format you want to display)
then you can just sort them as strings and don't need luxon at all

@s-cork
Thanks so much!!
I'll try the vanilla/string approach with a custom editor until it doesn't work then I'll fold luxon into the solution.
I apologize for all the back & forth.  I appreciate you and your willingness to help me!
Hopefully I won't have any additional questions :)

no worries - closing for now - feel free to open the issue if something doesn't work for you


Replace the Search image

All is in the title :) ; how can iI replace the search like image that serve a the container for the image we set ?

Stupid question it came within the image


Dont Work

I don't know why, but it doesn't work.
I make the changes, I apply, but it doesn't work.

Can you provide a zip of the save game folder so I can see what is going on? You can find the savegame folder in this location: %appdata%..\locallow\IronOak Games\FTK\save


Fix rounding error in cumulative_std_normal_probability lookup.

And add a numerical approximation to error_function() instead of only having a table lookup.

Coverage decreased (-1.18%) to 98.33% when pulling 4bdde5ca061f3fd0309196e213acb6f15ef2b674 on ericfischer:erf into fe2910f3bfda2349fb53a6d86c68092bb06372f5 on tmcw:master.

Awesome! Can you add a test for the error function too so that code coverage is still 100%?

Sure, here's the new test (and a correction for my documentation error).

Coverage decreased (-0.23%) to 99.28% when pulling 25d8a8e1d602cf76bbd287e5c7a3c62acca28bd5 on ericfischer:erf into fe2910f3bfda2349fb53a6d86c68092bb06372f5 on tmcw:master.

Coverage increased (+0.01%) to 99.52% when pulling bc30af874d4dbdd5e3c1a3e9e8d40af96aa96cee on ericfischer:erf into fe2910f3bfda2349fb53a6d86c68092bb06372f5 on tmcw:master.

Coverage increased (+0.01%) to 99.52% when pulling 246e585234a63a8aff037e17d1bbdbfc40d4aa1b on ericfischer:erf into fe2910f3bfda2349fb53a6d86c68092bb06372f5 on tmcw:master.

Coverage increased (+0.01%) to 99.52% when pulling 2bc2f78a8954e8b289645efe5811c5be9f539377 on ericfischer:erf into fe2910f3bfda2349fb53a6d86c68092bb06372f5 on tmcw:master.

Thanks!


build_benchmark_ios second_build_debug_millis benchmark creeping up; likely regression...

I'd been watching this benchmark for a couple days; it's now at the point where it's more red than green.
I don't see a good culprit here --- the immediate red benchmarks are all in unrelated things.

Maybe it's time for rebaselining?

Rebaselined. Looks like it might have just been baselined too low, as the performance seems to be different across machines


Wrong Coordinates

1. SDK version（SDK 版本）
{
csdtk42
}

2. In what kind of operation problems appear, and how to reproduce the problem ?（什么样的操作步骤问题会出现，是否是稳定复现，如何复现问题？）
{
Hello there, ,I am working with A9G with my custom circuit  and I've serious problem here, everything seems working, i can get phone call, i can send and receive sms but when i want to use i am getting wrong coordinate, if plug out sim card gnd for try, it says : "wait for gprs register complete" at my coolwatcher Trace section, when i plug in it again everything seems working but i am getting wrong coordinate as :
GPS fix mode:1, BDS fix mode:1, fix quality:0, satellites tracked:0, gps sates total:1, is fixed:no fix, coordinate:WGS84, Latitude:90.000000, Longitude:0.000000, unit:degree,altitude:0.000000
I couldn't figure out this problem for weeks, any solution or any way to close to problem i'd be really appricated
Thanks
Hardware Version of chip :
Chip version: 1.7
Chip synthesis date: 2000-22-00
Chip style: FPGA_USB
Chip fab infos: metal ID 2, bond ID 0, production ID 2057/0x809
Chip ROM version: 4.5 (20c0-16-d2)
Software Version of chip :

Name
Revision
Number
Date
String

hal_version
ffffffff
0xD
2019/12/27
HAL for 8955_chip in debug Branch: none

pal_version
ffffffff
0x0
2019/12/27
Hello, I'm PAL! Branch: none

spal_version
86f3
0x5
2016/08/22
SPAL Branch: Sources/chip/branches/gallite441/bcpu/spal

spp_version
86f7
0x5
2016/08/22
SPP Branch: Sources/chip/branches/gallite441/bcpu/spp

spc_version
8700
0x5
2016/08/22
SPC in rom Branch: Sources/chip/branches/gallite441/bcpu/spc

rfd_version
ffffffff
0x100000F
2019/12/27
RFD for transceiver xcv_8955, for PA pasw_rda6625 and for switch Branch: none

free1_version
--
--
--
--

at_version
--
--
--
--

memd_version
ffffffff
0x2
2019/12/27
MEMD for flsh_spi32m Branch: none

pmd_version
ffffffff
0x0
2019/12/27
PMD for pmu_8955 Branch: none

stack_version
9db8c008
0x0
2018/07/03
stack ps1.01.20 Branch: 1

vpp_version
ffffffff
0x0
2019/12/27
Hello, I'm VPP! Branch: none

sx_version
ffffffff
0x0
2019/12/27
Hello, I'm SX! Branch: none

std_version
ffffffff
0x0
2019/12/27
Hello, I'm STD! Branch: none

lcdd_version
--
--
--
--

ars_version
ffffffff
0x0
2019/12/27
Hello, I'm ARS! Branch: none

aps_version
--
--
--
--

vois_version
ffffffff
0x0
2019/12/27
Hello, I'm VOIS! Branch: none

calib_version
ffffffff
0xCA1B0208
2019/12/27
Calibration Daemon v(2).(8) Branch: none

gtes_version
--
--
--
--

flash_prog_version
--
--
--
--

csw_version
ffffffff
0x0
2019/12/27
SERVICE version string not defined Branch: none

mmi_version
--
--
--
--

aud_version
ffffffff
0x0
2019/12/27
AUD version string not defined Branch: none

mdi_version
--
--
--
--

btd_version
--
--
--
--

}

GPS fix mode:1, BDS fix mode:1, fix quality:0, satellites tracked:0, gps sates total:1, is fixed:no fix

It's telling you that it has no fix because it can only see 1 satellite and tracking 0. It needs to track 3 or 4 satellites to get a fix, which can take a few minutes depending on signal quality. Make sure the GPS antenna has clear view of the sky.

Hi @zkemble ,
Thanks for your quick response, even if wait hours there is no success, i have pudding dev board and if i connect same antenna to pudding with same wire and same place, it takes a few minutes to give correct coordinates, on my curcuit ( on breadboard ) i don't have voltage regulator ( SY8089 ) and 2.2UH inductor yet, i am using adj Power Supply for
set Voltage : 4.20 volt
current : 00.05 A ( sometimes up to 00.12 )
i am really  stuck on this and i can't go to next step

GPS antennas are usually active antennas with a built-in amplifier. They need power which is usually supplied through an inductor - L2 82nH on the pudding dev board schematic. Have you included that in your setup? Best post a schematic or something.

Hi again,
@zkemble  Many thanks for your valuable time and attentions
I've included L2 82nh inductor and tried two different
one is :
https://lcsc.com/product-detail/HF-Inductors_EMTEK-HQC0805-82NJ-T_C251939.html
second :
https://lcsc.com/product-detail/Inductors-SMD_Chilisin-Elec-CS1008-82NG-S_C285940.html
and also i tried with pudding original antenna and this :
https://lcsc.com/product-detail/Antennas_Rainsun-microwave-Tech-GPS1003_C239243.html
result is the same, i will attach my schematic also

Hi @zkemble
And this is my schematic

The GPS antenna you linked to is a passive antenna, you might need a GPS LNA between the antenna and A9G GPS input (remove the inductor if you're not using an external antenna).
You don't have any decoupling capacitors on your power supply, very important, weird things happen with dodgy power - https://github.com/Ai-Thinker-Open/GPRS_C_SDK/issues/421

Thanks for quick reply and your attentions
I will try to edit as your mentions and let you know  to result
I hope it will solve

Hi again @zkemble,
After your valuable information and advise  i spend over two nights and working with this, finally i could succeed to get coordinates,
I added 3 capacitor to VBAT, i am attaching latest schematic,

When i done this first time with external active antenna ( pudding original antenna ) it was really amazing output as :
GPS fix mode:3, BDS fix mode:3, fix quality:1, satellites tracked:4, gps sates total:15, is fixed:3D fix, coordinate:WGS84, Latitude:55.5XXXXX, Longitude:13.0XXXXX, unit:degree,altitude:0.000000
and it was the most correct coordinates with only a few meters difference than real,
Then after a problem was arised with same circuit  connections and same antenna's  place
I couldn't get the same result, the output as
GPS fix mode:1, BDS fix mode:1, fix quality:0, satellites tracked:0, gps sates total:1, is fixed:no fix, coordinate:WGS84, Latitude:55.5XXXXX, Longitude:13.0XXXXX, unit:degree,altitude:0.000000
Coordinates are close to first one but this time difference is around 120 meters  and when gps states total increase about 2-3 it seems to reset itself with:
[00:57:18.272]   MMI 02 : GPS fix mode:1, BDS fix mode:1, fix quality:0, satellites tracked:0, gps sates total:2, is fixed:no fix, coordinate:WGS84, Latitude:55.5XXXXX, Longitude:13.0XXXXX, unit:degree,altitude:0.000000
[00:57:18.346]          : Fn 0796065 T1 0600 T2 23 T3 06 Time 00 20 25 074
[00:57:18.346]   MM 09  : Dump : at 0x8209953D (5/5) : 42 f0 42 ff fe
[00:57:18.346]   MM 09  : Dump : at 0x8209954E (6/6) : 42 f0 42 27 75 00
[00:57:18.347]   MM 09  : Dump : at 0x820994B7 (6/6) : 42 f0 42 27 75 ff
[00:57:18.347]   MM 09  : Dump : at 0x820994C9 (6/6) : 42 f0 42 27 75 00
[00:57:18.347]   MM 09  : Att 1, Service 0x01, NMO 256
[00:57:18.347]   MM 09  : return for PrioAccThr\n
[00:57:18.347]   CSW 02 : CFW_ShellProc [nEvId]0x138d,[nParam1]0x3 [nSimID]0,[nType]02\n
[00:57:18.358]   CSW 02 : Limited Server\n
[00:57:18.358]          : Fn 0796068 T1 0600 T2 00 T3 09 Time 00 20 25 086
[00:57:18.458]   PAL 12 : SynchChange[0,130]
[00:57:19.051]          : Fn 0796218 T1 0600 T2 20 T3 06 Time 00 20 25 779
[00:57:19.151]   RRI 05 : rri_P 0 WARNG: Evt 0x38015 unknown in rri_PLTD\n\n
[00:57:23.188]          : Fn 0797114 T1 0601 T2 06 T3 35 Time 00 20 29 916

i tried to add one more 470 uf Capacitor but the result is same..
May check it please is there anything that i missed ?
Thanks for your all patience and efforts


[WFLY-16631] Fix NoClassDefFoundError: org/jboss/as/process/protocol/StreamUtils stoping mixed domain test hosts

Jira issues:
https://issues.redhat.com/browse/WFLY-16631

Thanks, @yersan


Dynamic Time Period Selector and Run Count Visualization

Feature Request:
We would like to add a a dashboard to the stats page which would show the number of days skied per a given interval. This dashboard will be able to be filtered to select season/week/month. For example there may be a dropdown to select the period, and on a bar graph below we could see the Y axis represent period and the X axis will represent number of runs.
Expected Outcome:
In the applications current state the aggregated stats page is quite empty with only one section. However we expect that in the future there may be many more aggregated stats. As such we do not want to put to much information as to take over the whole aggregated stats page. If our change goes through, we expect to see a new section called “Session History” or something of the like, underneath it we will see a bar graph for a given period, with each bar being the # of runs for the sub-unit of the period. We will also add a filtration dropdown either near the title or below the graph, to allow changes to the visualization.
Alternative Solutions:
One alternative solution we considered was to implement a regular graph with the (X, Y) points connecting to each other, This would provide the benefit to see the increase/decrease in activity between sub-units of the period. This idea was discarded though as many common apps that track activity using bar graphs, most notably Apple Health, which tracks steps using bar graphs in lieu of (X, Y) points that connect to each other.
Completeness Requirement:
We will verify its completeness/correctness by making sure the following steps work, and no bugs are seen.


Support ARM64 architecture

User story
As a wis2box user, I want wis2box images to offer at least amd64 and arm64 architectures (or more)so that I can run wis2box on an ARM computer, like a raspberry pi. This is true for pygeoapi, wis2box-ui, and data-consumer/sarracenia. @petersilva has added images tags with different architectures for sr3. I think that different architectures can be offered under the same tag using QEMU and docker buildx with Github Actions.

Acceptance criteria

[ ] all image wis2box uses offer multiple architecture support under one tag
[ ] multiple architecture support included in ghcr build action

Definition of done

[ ] unit/functional tests added/updated
[ ] documentation updated
[ ] live demonstration provided

dup of #72 ... we should close one... I can close the other one... whatever people want.

Suggest closing this one in lieu of #72, given there is already a trail there.


Configure the temp directory name via environment variable

Simple situation: I'm using broccoli in a place where ./tmp is already being used somewhere else. This way I can say TMP_DIR=potato broccoli serve
(my first PR ever, whee!)

The need for this will basically go away once Broccoli lets us centrally set the tmp dir for all plugins, which should be soon hopefully. In the meantime I'd like to avoid adding complexity to this module.


Fixed #33080 -- Preserved nullability of textual fields on Oracle.

ticket-33080

buildbot, test on oracle.


Re-work split reader implementation to read activations in parallel

Re-work split reader implementation to read activations in parallel into the same CB. This will prevent this hard constraint - (act_block_h / out_subblock_h) % 2 == 0. Currently, activations are split at the subblock granularity and activations are split into 2 CBs. The compute waits and pops from 2 cbs which is not necessary.

@yugaoTT with the uneven reading, this constraint is no longer there (act_block_h / out_subblock_h) % 2 == 0, right?

yes that's right

cool. Closing this then.


errors in log

I keep getting the following red lines in my hb logs:
[04/02/2022, 21:16:53] [CameraUI] Car Cams: FFmpeg prebuffer process exited with error! (null) - [mpegts @ 0x36c4c90] first pts value must be set - [tee @ 0x373f1e0] Slave muxer #1 failed, aborting. - av_interleaved_write_frame(): Invalid data found when processing input -
To Reproduce
look at the logs for 15 seconds or so/
Expected behavior
A clear and concise description of what you expected to happen.
Logs
[04/02/2022, 21:35:30] [CameraUI] Car Cams: Restart prebuffer session..
[04/02/2022, 21:35:30] [CameraUI] Car Cams: FFMPEG socket closed during read for 8 bytes!
[04/02/2022, 21:35:40] [CameraUI] Car Cams: Incoming ping request for: rtsp://:@<IP_ADDRESS>:554/axis-media/media.amp?videocodec=h264 - Timeout: 1s
[04/02/2022, 21:35:40] [CameraUI] Car Cams: Pinging <IP_ADDRESS>:554
[04/02/2022, 21:35:40] [CameraUI] Car Cams: Pinging <IP_ADDRESS>:554 - successful
[04/02/2022, 21:35:40] [CameraUI] Car Cams: Start prebuffering...
[04/02/2022, 21:35:40] [CameraUI] Car Cams: Prebuffering command: /usr/local/lib/node_modules/homebridge-camera-ui/node_modules/ffmpeg-for-homebridge/ffmpeg -hide_banner -loglevel error -fflags +genpts -rtsp_transport tcp -stimeout 100000000 -i rtsp://:@<IP_ADDRESS>:554/axis-media/media.amp?videocodec=h264 -vcodec copy -an -f tee -map 0:v? -map 0:a? [movflags=frag_keyframe+empty_moov+default_base_moof:f=mp4]tcp://<IP_ADDRESS>:24870|[f=mpegts]tcp://<IP_ADDRESS>:11983
[04/02/2022, 21:35:42] [CameraUI] Car Cams: Prebuffering scheduled for restart at 2AM: 264 minutes
[04/02/2022, 21:35:43] [CameraUI] Car Cams: FFmpeg prebuffer process exited with error! (null) - [mpegts @ 0x2a856e0] first pts value must be set - [tee @ 0x2aff600] Slave muxer #1 failed, aborting. - av_interleaved_write_frame(): Invalid data found when processing input -
[04/02/2022, 21:35:43] [CameraUI] Car Cams: Prebufferring process closed
Environment

Node.js Version: v16.13.2
Homebridge Version: v1.4
Camera UI Version: v5.0.16
Operating System: raspi
Browser: chrome
any pointers that would get this to stop would be greatly appreciated.  thanks!

@jwp2033
can you post your config.json pls and what kind of camera is it? can you also post a screenshot from the cameras own settings pls