Complete Refactor of ExAdmin

We've had issue #166 open for a long time. I have started working on prototyping of a complete overhaul of the ExAdmin architecture.
Justification
ExAdmin was developed for my first Phoenix Application. The approach I took, although functional, does not align very well with the Phoenix way. Furthermore, I feel that we can do better without the heavy use of DSLs. Finally, I've never been happy with the theme support implementation.
Design Goals

break the package apart into a series of composable components
make it simple to customize every part of the package
remove the dependency on Ecto Schema. .i.e json objects, etc.
easy to drop in new themes
easy to update with extensive customization
still works out of the box, without the need to configure anything
intelligent defaults
optimize the architecture to support large data (no association drop-downs with thousands of entries)
support multiple themes/layouts in a single application (front facing layout and a back office "admin" interface)

Ideas being kicked around

Use JS data tables for the index page

live search/filtering

Revamped sidebar filter

live updates
more inline with product filters on an eCommerce site

Resource modules based on behaviours instead of config
Perhaps more of a plug architecture (not sure what that looks like yet
Remove the html DSL and replace it with Slim templates

Could use eex, but I much prefer indentation based templates
Could use both if we get pushback on Slim

Customization with generators that create templates of templates

prototyping this now
avoid the sensitivity of direct generators when updating ExAdmin
might making theming much easier

componentize each concern (views/templates, controllers, schema)
buffer the dependency on Ecto to support other approaches to describe and reflect the schema of resources

This will be a break point release. No backwards compatibility.
I welcome your ideas and feedback.
Steve

First I have to tell you that ExAdmin is currently GREAT, from the user's point of view,
especially for apps with little data.
That said, I'm a little new to this whole web app stuff, but I'd like to propose some ideas.
I hope the feedback of a beginner like me might be useful too.
Design Goals
break the package apart into a series of composable components: does this mean users would be able to reuse the UI for general CRUD forms? If so, it might be useful, otherwise breaking it apart just for the sake of it might degrade the user experience (you'd know this, of course).
easy to update with extensive customization: This would be good, especially in things like customizing the name of the relation in drop-down choices.
intelligent defaults: the defaults are already pretty intelligent. Which defaults do you consider "less intelligent"?
optimize the architecture to support large data (no association drop-downs with thousands of entries): I agree that drop-down menus might be inconvenient for thousands of entries, but I'd like to keep being able to have some way to display and update such associations. For some cases a select2 widget that loads data through Ajax might be a good choice, while for others a full customizable search form (with proper paging) might be better.
Ideas being kicked around
JS data tables: please take a look into VueJS. It's a JS framework which is very simple to use with an .eex-like template engine that's really intuitive to use and can be generated server-side as if it were normal HTML. It supports 2-way data-binding in a way that's very clear and simple to understand. You have great widgets out of the box, and it's very easy to develop new ones. You can learn most of it in a day, and become quite good over a weekend, I think.
Revamped sidebar filter: real time updates: VueJS + Phoenix channels is pure love for live UI updates.
Remove the html DSL and replace it with Slim templates: This would probably be good, as you replace a ad hoc (and probably incomplete) implementation of HTML templates with a battle tested general template engine, with good documentation. I haven't looked at the your code as it is now, and it's quite possible it's better than Slim, I'm just saying that adopting Slim sounds like the right choice.
buffer the dependency on Ecto: does this mean ExAdmin will adopt Phonix's contexts in 1.3? This would probably be a good thing, but I'm a little afraid that Phoenix 1.4 might decide that contexts are anot as good after all and there is a much better abstraction (TM) we should all be using and that would render ExAdmin useless. At least with Ecto schemas you know that changes in Phoenix's project organization won't pull the rug from under your feet.
Extra
Internationalization - while this is a backend tool, internationalization might be important for use cases in which the admins don't speak English. We could use the approach we used in Coherence (and replace the bare gettext calls with dgettext "ex_admin"). I can help.

@tmbb Thanks for the feedback!! Funny, I did not look at who posted this great feedback until the end of reading it :). Then I noticed it was you...
Some of my projects use ExAdmin as the only UI, not just a backend solution. So, yes, the intent is to make it a good solution for developing a front facing solution. That is part of the reason to break it into components. Additionally, the goal is to allow users to bring only parts into their solution, without the need for the whole solution.
Yes, we will adopt all your excellent contributions to Internationalization from Coherence 👍  and your help would be greatly appreciated. But first, I need to sketch out the new architecture.
Yes, Vue.js has been brought to my attention as well as other options. I'm also very familiar with channels and the options available to use them. See the architectural notes on ucx_ucc for some of the stuff I'm doing with that project.
As for the idea of buffering the dependency of on Ecto, I'm thinking that it will be independent of the opinions of Phoenix. Phoenix contexts are mainly a concern of the generators. A designer can implement their own architecture. So, we cannot assume any particular structure. I guess we need two things, the module for the schema (to reflect) and the module for the changeset. They may be different modules,  or the same module. Personally, I like to keep the changesets with the schema, but I have some projects with the split.
I'm already pretty happy with the defaults of ExAdmin. I listed that item to indicate the we will be keeping the same strategy.
In closing, I'm a pretty heavy user of ExAdmin myself. So, I have a pretty good idea of its strengths and weaknesses. I also understand that may users of ExAdmin are pretty new to Phoenix and Elixir. So my goal is to provide a model that supports both the beginner and the advances. Of course, feedback from the community will keep me in check if I stay during the project.
Again, thanks a lot for your excellent feedback.

Here are some ideas I've been playing around with the the new architecture:
I would like to reduce the amount of config required for ExAdmin. I have a small demo app created. Here is an example of the ExAdmin configuration so far. Config Example
The following User Resource File shows how index page customization can be done.
The following Theme Index Template shows how I might handle theme generation and customization. This is a significant departure from the current DSL approach. I'm provided a generator eex template. It compile the embedded slim template for each of the controller actions.
I personally like this approach since it used standard Phoenix approaches to building your admin site. This differs from standard generators since you can make changes to this index template and all index pages will be compiled based on this file. I'll have individual index templates like this for each resource so you can customize individual resource action pages.
I have also created a schema adapter and a reference implementation for Ecto. This will allow you to create adapters for non-ecto models. You will be able to specify a global adapter in the config and override it for any individual resource. This will give you the flexibility to mix and match resources in different formats. See the Ecto Schema Adapter Example.
I'd love to hear what people think of this approach so far.

I kind of get the inclination to use Slim, as I used to be a Haml fan, but I think eex works well enough and doesn't add an extra dependency. Its also close enough to HTML that contributors can dive in and get it more easily.

@Ch4s3 Thanks for the feedback!! I have been considering supporting both slim and eex which could be specified when running the generators. Or, perhaps an addon package to support the other . I guess, the standard default is eex... Lets hear what others have to say 👍

@smpallen99 Supporting both seems like too much work for little benefit. But if the implementation is very easy, I guess it's a possibility.

Slim is much more concise than eex, and I like it. Using eex templates to generate slim templates has the advantage that it makes it easy to deal with escaping. So your idea of having eex templates generate slim templates makes sense. As @Ch4s3 said above, the use of a new template language must be weighted against the cognitive load it brings into the mix.

Regarding user.ex, what does this line do?
It seems to use a custom operator and the super() function which are defined in the ExAdmin.Resource module, right?

Ok, thanks!

@tmbb Only read half your question. super() is standard Elixir, used to access the original function when overriding it. Everything else is standard Elixir too. No custom operators. No magic 👍
That's a big benefit of this approach. All very standard Elixir, No DSLs yet. Just plain old Elixir functions, and some injection with use.

I understood that what super() was doing from your answer. Should have looked it up before asking, sorry... But I still can't find the docs for the | operator. It says that it is recognized but not implemented, and users are free to implement it.

List prepend
iex(2)> [1 | [2,3]]
[1, 2, 3]

Thanks, sorry for the noob questions... In my defense, it's not very clear in the ExDocs that | can be used as both an operator and syntax to define a cons cell (at least as I understand it). With this explanation, I thknk the design of the function is perfect. You're just building a new list from an old list, using normal elixir code.

My noob questions stem from the fact that I'm learning Elixir part time, as needed to work on my little project. I wonder if this is the right thing to do... One day I have to sit down with the official guide and read the whole thing from cover to cover. Probably next weekend, as I don't plan on adding any more features to my app for a long time.

@smpallen99 Yeah, supporting both with an option on the generator sounds very nice.

I’m thinking that this could be an add-on package. This will make a nice small project for someone to contribute :) I’ll be doing the development in slim. We can decide later if the default should be slime or eex.
Another thought, It will be easier to read and work with slim since you won’t have to deal with all the EEx escaping, IMHO.
TL;DR I’m listening to the feedback… I want to do the original dev in Slim, but we’ll find a way to meet the community’s needs…Thanks!!

On May 16, 2017, at 10:05 AM, Chase Gilliam<EMAIL_ADDRESS>wrote:
@smpallen99 https://github.com/smpallen99 Yeah, supporting both with an option on the generator sounds very nice.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/smpallen99/ex_admin/issues/367#issuecomment-301793110, or mute the thread https://github.com/notifications/unsubscribe-auth/AA2YpXYfLcTU354abiaKI7JmLKcmlSQtks5r6a1AgaJpZM4NZ9pi.

I want to acknowledge @dsnider for his excellent ideas and motivation to get me started on this redesign. Many of the ideas that I'm prototyping here are from Dan. This would still be something that want to do in the future if it was not for him!

Maybe it's a rare issue, and make things more complicated.
I don't see how to have multiple admin endpoints (UIs) in one web app. It can be helpful when you rebuild admin and want to have old one usable, or you want to have different UIs for different roles.
For now, you can create separate admin app and setup it on a different port, and configure nginx after.
But I think about something like this (like ecto does):
config :my_app, MyApp.Web.SuperAdmin,
  resources: [
    MyApp.ExAdmin.Country,
    MyApp.ExAdmin.State,
    MyApp.ExAdmin.User,
  ],
  theme: "material_bootstrap",

config :my_app, MyApp.Web.ManagerAdmin,
  resources: [
    MyApp.ExAdmin.Products,
  ],
  theme: "manager_material_bootstrap",

defmodule MyApp.Web.SuperAdmin do
  use ExAdmin, otp_app: :my_app
end

defmodule MyApp.Web.ManagerAdmin do
  use ExAdmin, otp_app: :my_app
end

defmodule MyProject.Router do
  use MyProject.Web, :router
  require MyApp.Web.SuperAdmin
  require MyApp.Web.ManagerAdmin

  scope "/admin", MyApp.Web.SuperAdmin do
    pipe_through :browser
    MyApp.Web.SuperAdmin.routes()
  end

  scope "/manager", MyApp.Web.ManagerAdmin do
    pipe_through :browser
    MyApp.Web.ManagerAdmin.routes()
  end
end

Maybe it's achievable in more simplier way, just a proposal for new design.

@astery precisely what I was working on last night. Good catch!!

@smpallen99  awesome to hear it :+1:

Im new to ExAdmin (as in looked at it yesterday), I think its a great and obviously a lot of good work went into it.
I'm also relatively new to elixir and have been looking to help out on a fun an interesting OSS project. If you are looking to do a complete rewrite I'd like to offer to help out with documentation, and some minor issues until I have a decent grasp of the project.
What I have found its that it's quite difficult without some serious code diving to figure out whats possible, and whats still WIP with the library. It's a bit daunting that there are so many live branches, PRs and issues I think it might be worth getting those stripped down a bit before starting a rewrite, I'm happy to help here too where I can.
I really like direction your going with the Ecto schema adaptor and Resource, I'm less interested which direction you choose for templating just as long as its flexible and it looks like it will be.
 But it feels like a really nice and important feature to have a way of adding/removing associations in the same form. So I'd be really interested in getting this, or similar in the rewrite.

Hey everyone.
If you are interesting in seeing/trying what we have on the new architecture, you can find it under the new ex-admin group. You can try it out with the example project.
Couple notes about the new architecture:

View customization is done in templates now instead of DSL
Controllers are based on Plugs, with default actions that can be overridden
Should be easy to add custom controllers for even finder control
Although not implemented, the global templates will also have feature to override for individual resources.
Ecto adapter is concept only at this point. I have not moved all Ecto stuff to the adapter yet.
Databases used for index pages are not database backended yet. So, performance is not great for large datasets. Will be adding database backend.
Not all field types implemented yet.

Let me know if your interested in contributing. There's lots of work to be done before this is ready for general use. At this point, it's not ready to use. However, the demo project should be functional.
Also note that we will be renaming the group and the package once a new name has been chosen. I'm open to suggestions 👍
@chrisjowen Thanks for you input. I have only looked at simple belongs_to associations at this point. Will be looking at many_to_many soon.

@smpallen99 Are you asking for suggestions for a new package name for the new version of ExAdmin?

@tmbb I'm open to suggestions. Keep in mind that we would like to change the focus of the new architecture to more of a general site builder than just an admin builder.

Quick update... I'm making good progress on the the version.  The new ExAdmin is called talon. You can find it at https://github.com/talonframework/talon. Aside from the new architecture, the index page now supports a live search feature that searches all text fields shown on the page.
Creating new themes are pretty simple. I have a new generator for creating a new theme.
The project is not ready yet for use. I have more work to do on field type rendering, associations, and the generators.
Issues in the backlog have all been tagged, and a few milestones defined.
The Talon Demo project is available if anyone wants to check out the new version.


Implement shadow example in vapor demo

Proposed Changes
Implemented some css shadow-x helper classes. @Charles-ErickBG feel free to checkout on this branch and edit packages/vapor/scss/utility/shadow.scss as needed.
Potential Breaking Changes
None
Acceptance Criteria

[ ] The proposed changes are covered by unit tests
[ ] The potential breaking changes are clearly identified
[ ] README.md is adjusted to reflect the proposed changes (if relevant)

Codecov Report

Merging #1185 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master    #1185   +/-   ##
=======================================
  Coverage   99.67%   99.67%
=======================================
  Files         350      350
  Lines        8860     8860
  Branches     2099     2099
=======================================
  Hits         8831     8831
  Misses         29       29

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 206b301...ff99270. Read the comment docs.

Codecov Report

Merging #1185 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master    #1185   +/-   ##
=======================================
  Coverage   99.67%   99.67%
=======================================
  Files         350      350
  Lines        8860     8860
  Branches     2099     2099
=======================================
  Hits         8831     8831
  Misses         29       29

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 206b301...ff99270. Read the comment docs.

Codecov Report

Merging #1185 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master    #1185   +/-   ##
=======================================
  Coverage   99.67%   99.67%
=======================================
  Files         350      350
  Lines        8860     8860
  Branches     2099     2099
=======================================
  Hits         8831     8831
  Misses         29       29

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 206b301...ff99270. Read the comment docs.

Codecov Report

Merging #1185 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master    #1185   +/-   ##
=======================================
  Coverage   99.67%   99.67%
=======================================
  Files         350      350
  Lines        8860     8860
  Branches     2099     2099
=======================================
  Hits         8831     8831
  Misses         29       29

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 206b301...ff99270. Read the comment docs.

Here's what I see as values

1 --> 0px 2px 4px rgba (0,0,0,0.2)
2 --> 0px 2px 10px rgba(0,0,0,0.2)
3 --> 0px 2px 20px 10px rgba(0,0,0,0.1)
4 --> 0px 2px 30px 15px rgba(0,0,0,0.1)
5 --> 0px 2px 50px 20px rgba(0,0,0,0.15)

@Charles-ErickBG looks good to me I'll update the PR


Angular: key table fromPre-loaded sample dataset remains when Auspice URL is loaded

Please see email for details
the key table from the pre-loaded dataset is staying on as an artifact when I load a Nextstrain dataset via Auspice URL.
Please see Powerpoint with details and a video attached to my email

This isn't an issue specifically related to the the Auspice URL; it's more of an issue related to the table showing up when it shouldn't and similar to issues #788. When new data is loaded, color nodes by gets set to 'None' . The table shouldn't appear unless both color node by doesn't equal 'None' and show node table equals true.

Both node color table and link color table appear/disappear based on the current view and if color node/link by equals None. Also table contents are emptied anytime if color by is set to None.


Optimize Compilation Time

Compilation time is way too long, and requiring the developer to install Rust is hopefully an unnecessary complication.
Ideas:

[ ] Nothing should recompile except for the Python code
[ ] Incremental builds
[ ] More codegen units
[ ] Play with compilation settings
[ ] Use prebuilt Rust binary
[ ] Use sccache
[ ] Prebuild dependency binaries
[ ] Choose a different linker
[ ] Study this: https://fasterthanli.me/articles/why-is-my-rust-build-so-slow

Removing all options in the [profile.release] section cuts compilation time in half, on my machine allowing a total build time of about 25 seconds every time...but unfortunately the Wasm binary, in Kybra, is too large at this point.
This might work for Azle.

For now this seems optimal:
[profile.release]
opt-level = 'z'

I am closing this issue. The biggest problem for subsequent builds is the Wasm binary limit. Without it being raised, we must use ic-cdk-optimizer which seems to take ~10+ seconds.
Also, if DFINITY can remove the need for us to generate the Candid file, or allow us to generate it without having to compile the canister on our own architecture, then we could shave off a few more seconds as well.
We should be able to get to ~5-10 second or fewer compilation times for Azle and Kybra after those two things are done.
The remaining issue is the very long initial compilation time...I am not sure what to do there. Prebuilt binaries could solve it, but then we'd have to pre-build for everyone's architecture and maintain that (maybe it isn't that big a deal)...and changing linkers might help, but I'm having a hard time finding another linker that would work across Linux and Mac (though I didn't look that hard).


Update rebar.config

change deps git method to https, for docker build needn't set private_key.
thanks.

Thank you for your contribution! LGTM 🚀
Nevertheless, the CI pipelines fail so we need some additional changes:

We should update both the ci.yml and docs.yml to remove the ssh-agent action.
Both the ndto and rebar3_ndto have its dependencies declared using the ssh protocol so they may be also updated to avoid transitive ssh private key dependencies.

I can work on 2., would you mind do 1.? I have no rights on your branch so I cannot update your PR.
@redgreat

Thank you for your contribution! LGTM 🚀 Nevertheless, the CI pipelines fail so we need some additional changes:
1. We should update both the [`ci.yml`](https://github.com/nomasystems/erf/blob/develop/.github/workflows/ci.yml) and [`docs.yml`](https://github.com/nomasystems/erf/blob/develop/.github/workflows/docs.yml) to remove the `ssh-agent` action.

2. Both the `ndto` and `rebar3_ndto` have its dependencies declared using the `ssh` protocol so they may be also updated to avoid transitive ssh private key dependencies.

I can work on 2., would you mind doing 1.? I have no rights on your branch so I cannot update your PR. @redgreat

Thank you very much for reminding me to use the ssh-agent action to solve the private_key issue. I will use this method to address future GitHub clone permission problems. To avoid more cumbersome authentication, I will modify these two files in the erf repository right away.

I'm sorry, the action still didn't pass. It seems to be caused by the multi-layer dependencies of libraries like ndto that prevented rebar clean from succeeding. However, my issue has been resolved, so I'll close this PR.

It is my fault, I had no time to migrate the protocol for transitive dependencies (i.e., ndto and rebar_ndto). I'll ping you when I find the time to do it so we can merge this. @redgreat

fixed in #65


My Femboy Roommate APK - Latest Version Free Android

My Femboy Roommate is a captivating visual novel game that has quickly gained popularity due to its engaging storytelling, well-developed characters, and interactive gameplay. Available across platforms like Android, iOS, and PC, this game invites players to dive into a heartwarming and choice-driven adventure that explores friendship, self-discovery, and connection.
My Femboy Roommate APK
Storyline: A Fresh Start and New Connections
In My Femboy Roommate, players step into the role of a protagonist who has just relocated to a new city to start an indie game development career. Sharing a small apartment with a new roommate named Robin, players experience an unfolding story of friendship and personal growth. Robin, a shy and endearing livestreamer, gradually opens up as the player engages with him, uncovering layers of his personality and life as a content creator. The game’s narrative revolves around forming genuine connections, making players feel invested in Robin's story and the decisions that shape their shared journey.
Gameplay Mechanics: Choice-Driven and Immersive
The gameplay of My Femboy Roommate is designed to be highly interactive, offering a semi-sandbox system that allows players to control how they interact with Robin. Through meaningful choices, players impact their relationship with Robin and explore multiple story paths. This setup not only adds depth to the game but also introduces a sense of realism, as choices have real consequences on the storyline and the protagonist’s interactions with Robin.
Key features include:

Full Voice Acting: Key scenes come to life with voice acting, enhancing immersion and giving Robin a more relatable and engaging personality.
Replay Gallery: Players can revisit scenes they've unlocked, allowing them to explore different story paths and understand the narrative from various perspectives.
Collectibles and Pixel Art: Discovering collectibles unlocks nostalgic pixel art, adding a unique and charming touch to the game.
Multiple Endings: With three distinct endings, players are encouraged to replay the game and explore all possible paths.

Unique Art Style and Visual Appeal
The visual style of My Femboy Roommate is crafted to complement its story and characters. Using a soft color palette and expressive designs, the game creates an inviting atmosphere that resonates with fans of visual novels. The addition of pixel art collectibles brings a retro feel to the game, appealing to players who enjoy nostalgic visual elements.
Player Reception and Accessibility
Since its launch, My Femboy Roommate has been praised for its touching narrative and strong character development. Available on Android, iOS, and PC, the game’s cross-platform accessibility allows fans to enjoy the experience on the go or immerse themselves on a larger screen. The replay value, enabled by the game's branching paths and interactive features, has been highlighted as a major draw for players who enjoy revisiting and exploring different story outcomes.
In summary, My Femboy Roommate offers a heartfelt experience that blends storytelling with modern character themes. Whether you’re a fan of visual novels or looking for an emotionally driven game, this title delivers a memorable journey through friendship, choices, and the power of genuine connection.

Omaga

Ko

gg


Better phrasing in guardian lesson

In this PR I've improved formatting and wording in a few places.
All translated versions (gr only, actually) are fixed also.

Thank you @brain-geek! 👍


C# fields are generated incorrectly for derived subclasses

Given the following Python code:
class BaseClass:
    def frobit(self, input):
        this.input = input

class DerivedClass(BaseClass):
    def fooit(self):
        this.input.foo()

we expect pytocs to deduce that BaseClass has a field input and DerivedClass inherits it. Instead, pytocs generates the following incorrect code for DerivedClass (simplified for clarity):
class DerivedClass : BaseClass {
    public object input;    // <-- should have inherited this field from BaseClass
    public virtual object fooit() {
         this.input.foo();
    }
}

This no longer happens in 1.2.1


Updated validations.py python script.

Updated validations.py python script.
Fixed the behavior of validate_user function in validations.py.
Fixes #<issue_number_goes_here>

It's a good idea to open an issue first for discussion.

[ ] Tests pass
[x] Appropriate changes to README are included in PR

Lekha @googlebot I signed it!


JS Cant Print

Rust Exp Plugins not able to print to console. Was working before last update. My Test is below
var PluginName = {
    Title : "Title of Plugin",
    Description : "This is what the plugin does",
    Author : "Your Name",
    Version : V(0, 1, 0),
    ResourceId : 0,

    Init: function() {
	    print("Init works!");
	}

    // This is where your plugin will do its magic
}

Receive Following error in console
[Oxide] 2:03 AM [Error] Failed to initialize plugin PluginName
File: PluginName.js Line: 9 Column: 5 TypeError Property 'print' of object is not a function:
  at Jint.Native.Function.ScriptFunctionInstance.Call (JsValue thisArg, Jint.Native.JsValue[] arguments) [0x00000] in <filename unknown>:0
  at Oxide.Ext.JavaScript.Plugins.JavaScriptPlugin.CallFunction (System.String name, System.Object[] args) [0x00000] in <filename unknown>:0
  at Oxide.Ext.JavaScript.Plugins.JavaScriptPlugin.HandleAddedToManager (Oxide.Core.Plugins.PluginManager manager) [0x00000] in <filename unknown>:0
  at Oxide.Core.Plugins.PluginManager.AddPlugin (Oxide.Core.Plugins.Plugin plugin) [0x00000] in <filename unknown>:0
  at Oxide.Core.OxideMod.PluginLoaded (Oxide.Core.Plugins.Plugin plugin) [0x00000] in <filename unknown>:0 ```

Working fine here.


An "_init..." issue

j2objc-<IP_ADDRESS>

Let have:
public class TestClass {
    public String initTest(){
        return "";
    }
    public String _initTest(){
        return "";
    }
}

The Obj-C translated code is:
...
#pragma mark Public
...
- (NSString *)_initTest;
- (NSString *)initTest OBJC_METHOD_FAMILY_NONE;
...

The first (and the first one only) method causes an compiler-error:
ARC error: init methods must return a type related to the receiver type

Is there any way to workaround that?

We weren't aware of the "drop leading underscores" part of determining method families, but it's easy to add.
Until this is fixed, you can build with the -Wno-mismatched-method-attributes flag to turn off this warning.

Fixed in latest source.


backport: 1.4 backports 18-12-19

Backported PRs:

#6082
#6375
#6404
#6432
#6436
#6443
#6446
#6459
#6461
#6464
#6466
#6472
#6474

Signed-off by: Ian Vernon<EMAIL_ADDRESS>
This change is

test-me-please

test-me-please

test-docs-please

test-missed-k8s

Hit loader unit test failure: https://jenkins.cilium.io/job/Cilium-PR-Ginkgo-Tests-Validated/8613/execution/node/56/log/

test-me-please

Normal CI job got stuck building container image:
https://jenkins.cilium.io/job/Cilium-PR-Ginkgo-Tests-Validated/8615/

test-me-please


Asset Integrations: Add BRNCH pricing

What is the purpose of the change

To add pricing for $BRNCH from Stargaze

ClickUp Task
Assetlist Task URL
Brief Changelog

adds price definition for $BRNCH in price.ts using pool 1288

Testing and Verifying
This change has been tested locally by rebuilding the website and verified content and links are expected
Pending
Validation
It's not showing the token, which has been added to assetlists. Do I need to re-pull a state of assetlists?

@JeremyParish69 is this meant to be a draft still?

@JeremyParish69 is this meant to be a draft still?

Yes, it is, until I can confirm that the price works


Installation probleme causes build failure

Thanks for this module.
When I try to integrate following the installation guide, I receive the following error in xcode when building the project:
error: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/libtool: can't locate file for: -lPods-AFNetworking
error: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/libtool: file: -lPods-AFNetworking is not an object file (not allowed in a library)
error: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/libtool: can't locate file for: -lPods
error: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/libtool: file: -lPods is not an object file (not allowed in a library)
I tried to add $(inherited) to Other Linker Flags of RNNetworkingManager but it still fails. Any help please? Thanks!

are you sure you have installed the AFNetworking package?
please do:
'cd node_modules/react-native-networking && pod install'

Yes, I did pod install and all installation processes as explained in the readme.
I am using pod 0.39.
Google search suggests adding $(inherited) to Other Linker Flags but build still fails even I do so. :(

I have reproduced this error, will try to fix it soon. I think this has something to do with either Xcode update or Pods.

Agreed, I think cocoapods is the reason too.
Glad to hear! Many thanks in advance :)

@macelii : it seems cocoapods is buggy these days: https://github.com/CocoaPods/CocoaPods/pull/3677 . I am not sure how to fix this problem though.

@macelii : temporary solution: https://github.com/CocoaPods/CocoaPods/issues/4427#issuecomment-150389523

https://github.com/eduedix/react-native-networking/blob/master/README.md has been updated accordingly.


supabase.auth.getSession() doesn't work after a successful SAML 2.0 login

Bug report

[X] I confirm this is a bug with Supabase, not with my own application.
[X] I confirm I have searched the Docs, GitHub Discussions, and Discord.

Describe the bug
TLDR: Some version between 2.24.0 and 2.45.0 of @supabase/gotrue-js has made the supabase.auth.getSession() not work after successfully authenticating with an SAML 2.0 provider (Azure in this case).  It never seems to resolve.
I recently updated all the dependencies for my project with ncu -u.  Everything looked to be going great so I pushed forward and also reset my supabase DB during this timeframe.  At some point, I logged out and I was unable to log back in.  I wasn't sure what the problem was but initially I thought it was something to do with me resetting the supabase DB.  I checked everything in my code, my Azure configuration, my Supabase configuration, and everything seemed fine.  Then I decided to go back to a previous commit before the dependency update, and I could see that it was working again. So I knew it was some dependency, and not any server configuration that was causing this.
After some troubleshooting, I was able to narrow it down to the @supabase/gotrue-js library.  When I use version 2.24.0, it all works fine, and supabase.auth.getSession() returns what I'd expect.  But when I use 2.45.0, supabase.auth.getSession() never returns a thing.  It's just broken.
To Reproduce
Steps to reproduce the behavior, please provide code snippets or a repository:

Create a Supabase project with SAML 2.0 as an Auth Provider and get it configured
Use the supabase.auth.signInWithSSO() method, providing it with a domain and redirectUrl
supabase.auth.signInWithSSO() will reply with a data.url.  Redirect the user to this URL for authentication
The user logs in via the SAML Identity Provider (Azure in this case), and upon successful authentication the user is redirected to the specified redirectUrl
When the user returns to the app at the redirectUrl, use supabase.auth.getSession() to retrieve the user's session
supabase.auth.getSession() never returns anything and is broken

Expected behavior
supabase.auth.getSession() should return something, not hang forever.  Specifically, it should return an object with a session property.  This session property should be an object that contains an access_token, a user object, among other properties.

Just so you're aware, there was a lot of churn on supabase.auth.getSession() for a while in a few versions. This is why it's super important to make sure to keep up to date with the latest version, and report issues promptly.
I'll be closing this now.

Not sure related. I've updated to the latest version And I see this problem now. It seems to do nothing? Any idea?

this is currently an issue for me... much later versions that mentioned above^

+1 I am also seeing this happening again:
{
  "dependencies": {
    "@supabase/supabase-js": "^2.39.6"
  }
}

same error, why it is closed?
2.39.8 version

I fixed the issue by reinstalling all the packages


There are a gaggle of doggos that seem to replace the burnt corpses from increasing the electricity output at the power station. They are off-screen and do not damage the player. Leaving and re-entering the room clears the enemies.
I don't have a recent save made, but I am willing to run through the seed again to make a save if needed.

Would be able to provide a save for this? It should just be a case of teleporting to the power room and triggering the electrocution cutscene.

I don't have the seed anymore, but I made a save of just before entering the first power thing if that helps any?
01_2023-05-28 10^17.26.zip


Boilerplate

Merge 'boilerplate' branch with support of incoming events.

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


Update navigation-and-routing.md

more easy to understand code

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

The logic in your example is different. Notice, that a view for "/" route is always added to the list of views.


Method 'OnAttachBinaryFile' obsolete

Hello!
BC16
There is an integration event 'OnAttachBinaryFile' in table 133 "Incoming Document Attachment".
Unfortunately it is marked as obsolete.
[IntegrationEvent(true, false)]
[Obsolete('Function scope will be changed to OnPrem','15.1')]
procedure OnAttachBinaryFile()
begin
end;

What should be used as a replacement method for the function and when it is scheduled to be available?
Thanks!

New event OnAfterImportAttachment of codeunit 134 "Import Attachment - Inc. Doc." could be used instead of obsoleted one. It will be available from update 17.1

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. We will update this issue with information about availability.


[Track 2 migration] Migrate Spring-Cloud

Migrate Spring-Cloud to track 2 SDK

Supported by https://github.com/Azure/azure-cli-extensions/pull/3609


Serial port names - ttyPS*

This is very nice library but there is another one serial port naming policy in linux. The serial port name starts with ttyPS... sometimes. This particular case has happened on Zynq Linux from Xilinx.
[19:03][root@buildroot][~] $ setserial /dev/ttyPS0
/dev/ttyPS0, UART: undefined, Port: 0x0000, IRQ: 26
[19:03][root@buildroot][~] $ setserial /dev/ttyPS1
/dev/ttyPS1, UART: undefined, Port: 0x0000, IRQ: 27
[19:04][root@buildroot][~] $

Thank you for your effort

Thanks for the feedback, I will add this one in the list then. In the mean time, you can open any serial with the full name, you don't need to go thru the function which gives the available ports. Open it directly with the full name.

Hey, thank you for your fast reply! Yes, I know that I can open port by its full name. I only shared my little part of knowledge ;)

Thanks again for the feedback, I've intergrated, Nuget on it's way as well.


Add mechanism to create both content and b64content versions

Writing binary files into vault is easier when base64-encoding the file before it goes in. We have no way of knowing if the user wants that content base64-encoded or not though - smaller, text files need not be.
So this patch creates two attributes for a key - one base64 encoded (b64content), one not (content).

(Note that if you rebase this PR to the main tip of common, you'd drop these spurious commits from the PR)
I am wondering if we should just always inject everything as base64 and tweak all external secrets to assume that everything is base64-encoded (we have the b64dec filter in external secrets). It's a bit of a bigger patch and crosses some repos, but maybe it would keep things a little simpler+clearer?

I'm leery of doing that silently at least because people might want to see what they stored in Vault; and because there are other potential uses for Vault outside of Kubernetes secrets. I think it's a "least surprise" violation how things seem to be handled on retrieval from Vault, but I think it would be a bigger least-surprise validation for us to force b64-encoding on every "file"; though maybe we're just leaving a bit of a landmine for people to trip over if they discover the same thing we did.
Still, I think providing both attributes allows both behaviors - we don't really have control of how users/patterns will consume the secrets from vault, though I could also see a point to "fromKey" being a bit of a surprise with both attributes.

I've thought about it a bit more, and my thinking is still to publish both attributes. I understand we have b64dec, but in my mind, I think users would want at least the option to see what they stored directly. What do you think?

Agreed, let's go for this approach for the time being. I cannot think of any other ways (if we added a "format: {binary,text}" attribute, we probably could not beat external secrets into grasping that. I.e. reading the attribute and using b64dec when format is binary)


Using 16-bit PNG normal maps causes incorrect lighting

Godot version:
v3.2.1.stable.official
OS/device including version:
Manjaro Linux 19.0.2
Issue description:
16-bit PNG file used as a normal map causes uneven lighting on the model. This doesn't happen with 8-bit PNG files.
In the following picture, there is a cylinder with a normal map attached. There is a lighting discontinuity along the UV seam with 16-bit PNG normal map.

Everything is the same but this time with an 8-bit PNG normal map:

Minimal reproduction project:
png_16bit_normal_map.zip

I can confirm this on 3.2.1. In the cylinder using the 16-bit normal map, I can also notice slight "cracks" in the dark area (click to view the full size):

The 16-bit normal map appears to be significantly brighter in the FileSystem dock previews:

Playing with the Compress Mode, Hdr Mode, Normal Map or Hdr As Srgb options in the Import tab doesn't solve the issue.

According to 3.2 docs (https://docs.godotengine.org/en/3.2/getting_started/workflow/assets/importing_images.html#supported-image-formats) only 8-bit png are supported:
Supported image formats
Godot can import the following image formats:
BMP (.bmp)
DirectDraw Surface (.dds) - If mipmaps are present in the texture, they will be loaded directly. This can be used to achieve effects using custom mipmaps.
OpenEXR (.exr) - Supports HDR (highly recommended for panorama skies).
Radiance HDR (.hdr) - Supports HDR (highly recommended for panorama skies).
JPEG (.jpg, .jpeg) - Doesn’t support transparency per the format’s limitations.
PNG (.png) - Precision is limited to 8 bits per channel upon importing (no HDR images).
Truevision Targa (.tga)
SVG (.svg, .svgz) - SVGs are rasterized using NanoSVG when importing them. Support is limited; complex vectors may not render correctly. For complex vectors, rendering them to PNGs using Inkscape is often a better solution. This can be automated thanks to its command-line interface.
WebP (.webp)

I dug a little bit in this since I also ran into this problem.

Precision is limited to 8 bits per channel upon importing (no HDR images).

This means that 16-bit png images will be converted to 8-bit when you import them. It doesn't mean that 16-bit png files aren't supported.
The problem seems to be related to color profiles, and possibly this flag:

PNG_IMAGE_FLAG_16BIT_sRGB == 0x04
On read if the image is a 16-bit per component image and there is no gAMA
or sRGB chunk assume that the components are sRGB encoded.  Notice that
images output by the simplified API always have gamma information; setting
this flag only affects the interpretation of 16-bit images from an
external source.  It is recommended that the application expose this flag
to the user; the user can normally easily recognize the difference between
linear and sRGB encoding.  This flag has no effect on write - the data
passed to the write APIs must have the correct encoding (as defined
above.)
If the flag is not set (the default) input 16-bit per component data is assumed to be linear.

In my case (#40214) the png files did not have any color information, so libpng assumed the 16-bit file was linear.
In this case the png file has an embedded ICC profile, but it is up to the application (i.e. Godot) to handle those.
There are currently a few workarounds:

Reimport the file with "Srgb = enable"  (defaults to "detect" which appears to have the same effect as disable)
Save your png-16 file with gamma information. This can be done in GIMP's export dialog for example.
Convert your png-16 to png-8 or other format

I think this should be fixed though, because right now 8-bit and 16-bit pngs appear to be handle in different ways. It is also inconsistent with all other image viewers/editors that I have tried. Setting PNG_IMAGE_FLAG_16BIT_sRGB solves the problem for all the files I have tested, but I haven't been able to find a png with sRGB chunk to test with. It is also possible that this behaves differently on different platforms, but I think I'll submit a PR and see what they say.

Reimport the file with "Srgb = enable" (defaults to "detect" which appears to have the same effect as disable)

When using Detect, Godot enables sRGB if the texture is detected to be used in a 3D context, and disables it otherwise. The detection may not be 100% reliable though.

When using Detect, Godot enables sRGB if the texture is detected to be used in a 3D context, and disables it otherwise. The detection may not be 100% reliable though.

So if I've understood this correctly, this flag tells Godot to perform linear to sRGB conversion, and Godot expects all textures to be in sRGB format?
The flag could also be interpreted as "this image is in sRGB format", but I don't get that to make any sense with the expected behaviour (because the too bright 16-bit png should have been loaded as linear 8-bit data).
I've always thought color profiling is extremely confusing.. I mean I get the basic theory behind it, but to actually get it working in practice is another story..

A few test images I created. These have had the embedded ICC profiles stripped, so without the gamma value (present in 2 of the files) there is no way for any program to know the correct color space - assuming I've understood the PNG format - so it's a test for default behaviour.
16-bit linear color space

16-bit linear color space with gAMA chunk (gamma information stored in PNG file)

16-bit sRGB color space

16-bit sRGB color space with gAMA chunk

In all programs I have except Godot the two sRGB images look correct, while the linear ones appears darker. GIMP handles all images except "linear without gamma" correctly, it appears too dark because it assumes it is sRGB data.


:bug: add retry loop to graphQL commit queries which timeout on large github repos

What kind of change does this PR introduce?
bug fix

[X] PR title follows the guidelines defined in our pull request documentation

What is the current behavior?
The graphql query which fetches commit data can time out on large repositories.
What is the new behavior (if this is a feature change)?**
On graphql timeout, we now retry the query up to 3 times, cutting our request in half each time.

[ ] Tests for the changes have been added (for bug fixes/features)

Which issue(s) this PR fixes
Fixes #3464
Fixes #3663

Special notes for your reviewer
Does this PR introduce a user-facing change?
For user-facing changes, please add a concise, human-readable release note to
the release-note
(In particular, describe what changes users might need to make in their
application as a result of this pull request.)

Scorecard processes commit activity from large GitHub repos in chunks to avoid timeout issues

Going to run a few more tests locally before marking ready for review

/scdiff generate

/scdiff generate


Fixes ugly optimization

When packet processing starts, in this moment the value of _lateIndex is 0. And when the first packet is queued, this value changes to 1. However, some optmization breaks this, and only after the flush of the queue the value returns to 1.
So one simple solution to fix this trouble is to set it to 1 at starting time. In any case, when the loop empties the queue, the value is set to 1 (see last line of function fillPacket() ).
This resolves the ugly output of initial packets.

Closed as not applicable. See discussion in #166.

Closed as not applicable. See discussion in #166.

Please, read https://github.com/tsduck/tsduck/issues/166#issuecomment-439599019 and reopen it.

I have read #166 and explained there why I will not reopen it. In fact, the patch does nothing.


Determine Full Upgrades List

In order to have our final game, the list of upgrades should be completed to ensure that the abilities can be programmed in, and any art assets needed for them can be completed.

Potential options include:

Wall cling
Smash through ground ability
Grapple ability
super jump
super dash

Wall cling has been confirmed to be locked in.

Full list is:

temp bonus jump
double jump
temp dash
permadash
wall cling


feat: script extensions sorter checks load order

the script extensions sorter will check load order to sort extensions of the same vanilla script
inheritance is still the first way of sorting, this only sorts conflicting extensions of the same vanilla script

While we are in this file, can you also add an empty line here? 😃
https://github.com/GodotModding/godot-mod-loader/blob/cd229035357fd48f9092cab7922dc33f7df0d58b/addons/mod_loader/internal/script_extension.gd#L9


Windows Defender endpoints incomplete and typo

The endpoint for Cloud-based Protection "wdcpalt.microsoft.com" is missing.
The endpoint for SmartScreen is "*.smartscreen.microsoft.com" and not "*smartscreen.microsoft.com" (missing dot)

Dokumentdetails
⚠ Bearbeiten Sie diesen Abschnitt nicht. Er ist für die Verknüpfung von docs.microsoft.com zum GitHub-Artikel erforderlich.

ID: a439d706-e19e-9d96-d83f-a42cf1b1d89c
Version Independent ID: 423fa9b1-b910-9b9c-7dc2-57eefdd72531
Content: Windows 10, Version 20H2: Verbindungsendpunkte für Nicht-Enterprise-Editionen - Windows Privacy
Content Source: windows/privacy/windows-endpoints-20H2-non-enterprise-editions.md
Product: w10
Technology: windows
GitHub Login: @Gental-Giant
Microsoft Alias: v-hakima

Good catch. Thank you!

#sign-off

@Gental-Giant : Have you started working on a PR to resolve this issue?

@ruffy91 : I presume your tickets don't overlap each other, so separate tickets get separate Pull Requests to resolve them. OK?

PR #8893 is now available for review, comments, and suggestions.

Closing via #8893
Thank you

Closing via #8893
Thank you


chore(main): release zathura 1.17.0

:robot: I have created a release beep boop
1.17.0 (2024-09-06)
Features

zathura: add keymap to a copy of the current file (1db1d66)

This PR was generated with Release Please. See documentation.

:robot: Created releases:

zathura-v1.17.0
:sunflower:


Replace Audio File Problem

Excuse me, I have a problem on replace audio file ( *.mp3 )
When I use Add To Render Queue in AE, it can render a video correctly.
But when I use NEXRENDER to replace audio file, the rendered video's music has something trouble.
It is not expected sound about first second !!!
That sound sounds like some music effect, but I do not set any effect in AE or my program.
And it just happened when I replace MP3.
( If I do not replace MP3, it can render a correct video. )
The document's example for assets setting :
{
    "assets": [
        {
            "src": "https://example.com/assets/image.jpg",
            "type": "image",
            "layerName": "MyNicePicture.jpg"
        },
        {
            "src": "file:///home/assets/audio.mp3",
            "type": "audio",
            "layerIndex": 15
        }
    ]
}

My program for audio setting:
{
        src: "file:///" + config.root_path + assets_data.src,
        type: "audio",
        layerName: "BGM",
        composition: "*"
}

Thanks for helping.

Hello @piedasing
There were some problems with aerender related to mp3 files.

I've heard about such bug before. I was related to the mp3/mp4 audio with bitrate value not being high enough. I'd recommend trying to use wav or encoding the mp3 with higher bitrate before sending it to the aerender.

So as in the quote above, try changing audio to wav/aiff or try converting your mp3 file bitrate to 900 for example, and audio frequency to 50 for example.

Thanks for reply. I will try it later !


refactor: simplify package setup in tests

This PR simplifies package setup in tests by removing temporary directory management and using T.TempDir.

Nice!


[WIP, RFC] Tactic parameter parsers

This proposal somewhat exploded in scope, but I'm definitely more satisfied with it than with the type-level approach.
To do:

actually implement the C++ part
definitely some names bike-shedding

The nice thing about working on the applicative instead of the monadic level is that we can analyze the parser terms and extract pseudo grammars to display to the user, e.g. reducing f <$> ident <* tk "!" to id !.

we can analyze the parser terms and extract pseudo grammars to display to the user

How would that work with sep_by?

Can the current C++ actually do backtracking?  This is required for orelse, right?

Can the current C++ actually do backtracking? This is required for orelse, right?

It shouldn't be required - I believe Parsec explicitly decided against backtracking for the sake of saner error messages. So orelse should only fall back to the second parser if the first one did not consume any input, by checking the parser position.

Can the current C++ parser actually do backtracking? This is required for orelse, right?

No, it can't. I will try to refactor it this weekend.
My initial plan is to change the parser to take a sequence of tokens.
The scanner would tokenize the next command, and we would invoke the parser with a vector of tokens.
The parser would not have access to the stream anymore.

So orelse should only fall back to the second parser if the first one did not consume any input, by checking the parser position.

This is easier to implement.

BTW, I think the refactoring would still be useful since we could expose the parser_state object like we do with tactic_state, and implement bind, or_else, ... in Lean.
In the long term, this would address many issues we have, and would allow users to implement complex parser extensions if they want.

I believe Parsec explicitly decided against backtracking for the sake of saner error messages. So orelse should only fall back to the second parser if the first one did not consume any input, by checking the parser position.

I wasn't aware of that.  If it works for parsec, then it should be fine and it is definitely easier to implement now.

How would that work with sep_by?

I'm actually not sure why I didn't define it as (list.cons <$> p <*> (tk s *> p)*) ?: []. But it would also be nice to have some way of defining custom, nicer output like [id, ...].

In the long term, this would address many issues we have, and would allow users to implement complex parser extensions if they want.

I agree.

My initial plan is to change the parser to take a sequence of tokens.

On a slightly unrelated note: I have been experimenting with changing pos_info to a range, i.e., include an end position in addition to the begin position.  One issue was that I often wanted the end position of the last token, but I didn't save that anywhere.  Having a sequence of tokens makes this easier as you can just look back.

Almost done - standard libary is passing.
Remaining issues:

Fix tests
Re-integrate info_tweak into list parsing
We don't have position information in raw_id_list. Do we actually need that?
TODOs

@kha What do we need has_uneval? Can't we just use has_to_pexpr?
https://github.com/leanprover/lean/blob/master/library/init/meta/pexpr.lean#L24
It is easier to create pexpr than expr.
Moreover, by populating this type class with instances, we will make the anti quotations more convenient to use:
do x : nat <- ...,
     to_expr `(f %%x) >>= apply,
    ....

Why do we need has_uneval? Can't we just use has_to_pexpr?

There may be ways around it, but right now it is not the identity on pexpr: https://github.com/leanprover/lean/pull/1351/files#diff-0fa698a8570b7adc27547163f4309eb3R38
Users may still use
`(f %%(quote x))

which, to me, feels more "correct".

@kha I think the has_uneval is quite fishy. See this definition
private meta def list.uneval {α : Type} [has_uneval α] : list α → expr
| []     := c ``list.nil
| (h::t) := c ``list.cons (uneval h) (list.uneval t)

This is morally wrong, the output is not a valid expression representing the input list.
It is really a pexpr since the implicit arguments are missing.
Then, you wrap everything using a quote to workaround this problem.
It is also weird to have both of them has_to_pexpr and has_uneval.

@leodemoura The reason this is fishy is because it should return a value of type pexpr.  IMHO we should just use meta def pexpr := expr, then this would work seamlessly.
The mk_quote call is only on the pexpr/expr elements.  There is no quote call on the whole lists.

It is also weird to have both of them has_to_pexpr and has_uneval.
￼
I agree with Sebastian that the crucial difference lies in how they act on pre-expressions and expressions: for has_to_pexpr you want to have a result that you can splice in as an anti-quotation, for has_quote you want to produce a pre-expression that evaluates to the pre-expression.  Maybe this snippet explains the idea more clearly:

run_command do
five ← to_expr `(5: ℕ),
to_expr `(%%five + %%five), -- works
to_expr `(expr.app %%five %%five), -- fails
to_expr `(expr.app %%(quote five) %%(quote five)), --works
skip

@leodemoura The reason this is fishy is because it should return a value of type pexpr. IMHO we should just use meta def pexpr := expr, then this would work seamlessly.

We don't want pexpr := expr. They are different on purpose. It is important to make it clear that pexpr is a pre-term produced by the parser. We didn't make this distinction in the C++ code, and it is easy to make mistakes.

Here are two instances for has_to_pexpr:
meta def nat.to_pexpr : nat → pexpr
| n :=
  if n = 0 then `(0)
  else if n = 1 then `(1)
  else let r := nat.to_pexpr (n / 2) in
    if n % 2 = 0 then `(bit0 %%r)
    else `(bit1 %%r)

meta instance : has_to_pexpr nat :=
⟨nat.to_pexpr⟩

meta def {u} list.to_pexpr {α : Type u} [has_to_pexpr α] : list α → pexpr
| []     := `([])
| (h::t) := `(%%(to_pexpr h) :: %%(list.to_pexpr t))

meta instance {α} [has_to_pexpr α] : has_to_pexpr (list α) :=
⟨list.to_pexpr⟩

open tactic

run_command do
  q ← return $ to_pexpr [1, 2, 3],
  e ← to_expr q,
  trace e

@gebner pexpr (aka preterms) may be implemented in C++ using expr, but they are a different beast. For example, they must have the exact structure expected by the elaborator. We have several encoding mechanisms for match and recursive equations, implicit arguments, @ and @@, overloading, etc.
The quote mechanism
`(t)

guarantees that this preterm is well-formed with respect to the internal invariants used in Lean.
I say list.uneval is fishy because it relies on the fact that a preterm for an application should suppress all implicit arguments. If we want to provide the explicit arguments, we need to know how @ is encoded. By using the quote mechanism we avoid this issue.

I would be happy to switch to pexpr if there was a nice way of constructing ones for constants. Maybe there should be an eager/context-less quote notation?
``(name.mk_string %%(quote s) %%(name.quote n))

@kha Here is has_to_pexpr instance  name and other auxiliary ones:
open tactic

meta def nat.to_pexpr : nat → pexpr
| n :=
  if n = 0 then `(0)
  else if n = 1 then `(1)
  else let r := nat.to_pexpr (n / 2) in
    if n % 2 = 0 then `(bit0 %%r)
    else `(bit1 %%r)

meta instance : has_to_pexpr nat :=
⟨nat.to_pexpr⟩

meta def {u} list.to_pexpr {α : Type u} [has_to_pexpr α] : list α → pexpr
| []     := `([])
| (h::t) := `(%%(to_pexpr h) :: %%(list.to_pexpr t))

meta instance {α} [has_to_pexpr α] : has_to_pexpr (list α) :=
⟨list.to_pexpr⟩

meta def unsigned.to_pexpr : unsigned → pexpr
| ⟨n, _⟩ := `(unsigned.of_nat %%n)

meta instance : has_to_pexpr unsigned :=
⟨unsigned.to_pexpr⟩

meta def char.to_pexpr : char → pexpr
| ⟨n, _⟩ := `(char.of_nat %%n)

meta instance : has_to_pexpr char :=
⟨char.to_pexpr⟩

meta def string.to_pexpr : string → pexpr
| []      := `(string.empty)
| (c::cs) := let e := to_pexpr c, es := string.to_pexpr cs in `(string.str %%e %%es)

meta instance : has_to_pexpr string :=
⟨string.to_pexpr⟩

meta def name.to_pexpr : name → pexpr
| name.anonymous        := `(name.anonymous)
| (name.mk_string s n)  := let es := to_pexpr s, en := name.to_pexpr n in  `(name.mk_string %%es %%en)
| (name.mk_numeral i n) := let is := to_pexpr i, en := name.to_pexpr n in  `(name.mk_string %%is %%en)

meta instance : has_to_pexpr name :=
⟨name.to_pexpr⟩

open tactic

run_command do
  q ← return $ to_pexpr [`boo, `foo, `bla],
  e ← to_expr q,
  trace e

Okay, I see, quoting works with to_expr because of the resolve_names hack (it looks a bit hackish to me at least). So should the qexpr parser also call that function?

Wait, that's the wrong way around. We should call resolve_names in C++ on any quote output. I still don't see how we would use to_pexpr for that, since it would do the wrong thing (ie, nothing instead of mk_quote) for pexprs.

Okay, I see, quoting works with to_expr because of the resolve_names hack (it looks a bit hackish to me at least).

I didn't get this comment. What are you referring to here?

I still don't see how we would use to_pexpr for that, since it would do the wrong thing (ie, nothing instead of mk_quote) for pexprs.

What is "that" at "I still don't see how we would use to_pexpr for that"?

Okay, I see, quoting works with to_expr because of the resolve_names hack (it looks a bit hackish to me at least).

I didn't get this comment. What are you referring to here?

In the beginning, I started out using quotations in has_quote, but the elaborator didn't like that since it thought bit0 was a local variable. So I looked at the parser and built expr.consts manually (which is why I switched to expr), that worked. I did not know that tactic.to_expr does that extra resolve_names step to fix that.

I still don't see how we would use to_pexpr for that, since it would do the wrong thing (ie, nothing instead of mk_quote) for pexprs.

What is "that" at "I still don't see how we would use to_pexpr for that"?

Splicing the parsed vm_obj back into the tactic expr in C++: https://github.com/leanprover/lean/pull/1351/files#diff-ba8d0857f0dc8d6074edd6ffa1248248R151
If we parsed an expr e, we need to build mk_quote(e) so that it will evaluate back to e at tactic execution time. That's what the has_quote pexpr instance does.

@Kha
The only occurrence of resolve_names is at elaborator.cpp.
It is needed because we have to resolve the names in the preterm with respect to the current goal.
Is this the hack you are talking about? If so, any suggestions on how to make it better?

Yes, I understand now that it is necessary for interactive tactics. But I do believe that for explicit uses of the quoting notation, the id_behavior should be ErrorIfUndef. Then your to_expr definitions should build the same terms as the ones I built manually and the elaborator shouldn't complain.

Yes, I understand now that it is necessary for interactive tactics. But I do believe that for explicit uses of the quoting notation, the id_behavior should be ErrorIfUndef. Then your to_expr definitions should build the same terms as the ones I built manually and the elaborator shouldn't complain.

So, you are suggesting two different kinds of quotations, right?
In the new one, the quoted term must be closed. That is, all identifiers are referring to constants or bound variables. Example:
`(fun x : nat, add x 1)  -- this is fine
`(add x 1)         -- this one isn't since x is not a bound variable nor a constant

Yes, I just pushed a commit implementing ``( and using it to define nicer has_quote instances on pexpr.

Splicing the parsed vm_obj back into the tactic expr in C++: https://github.com/leanprover/lean/pull/1351/files#diff-ba8d0857f0dc8d6074edd6ffa1248248R151
If we parsed an expr e, we need to build mk_quote(e) so that it will evaluate back to e at tactic execution time. That's what the has_quote pexpr instance does.

Ok, I think I see your point. We might have a list pexpr, and we want to splice a list of quotations, but
the instance for has_to_pexpr pexpr will not introduce the quotes.
All the instances I wrote above are exactly the ones you need for has_quote.
The only exception is has_to_pexpr pexpr. Are we going to have two different copies because of a single instance?

As I said, writing
`(f %%(quote n))

feels more natural to me than %%n. I know what splicing an expression into an expression should do, but splicing a nat sounds weird. So personally I'm fine with the current to_pexpr instances.

Yes, I just pushed a commit implementing ``( and using it to define nicer has_quote instances on pexpr.

I'm happy has_quote is using pexpr.
So, last issue: how do we avoid the redundancy between has_to_pexpr and has_quote?

Ignore last question, you have already answered it in your last message.

ctest --rerun-failed says I'm done, so let's hope I didn't break any other tests. I'll squash away the temporary commits and rebase onto master.

@kha I'm going to merge, ok?

Yes! The goal output on , in rw is still missing, but I believe there are some problems with it on master too. I'll have to come up with a more general solution at some later time.


Build fails when pulling dependencies from cache after pre-bundling dependencies

Whenever I run storybook after pre-bundling dependencies, I get a bunch of resolution errors like
[vite] Internal server error: Failed to resolve import "@storybook/angular" from<EMAIL_ADDRESS>Does the file exist?.

and
Internal server error: Unexpected token (1:23)
  Plugin: vite-plugin-mdx
  File<EMAIL_ADDRESS>  1  |  import { Meta, Story } from '@storybook/addon-docs';

This only happens the second time I run storybook with storybook-builder-vite when the dependencies aren't pre-bundled.

Nope, all I get is first run:
❯ yarn storybook
info @storybook/react v6.4.19
info
info => Loading presets

info => Using cached manager
Pre-bundling dependencies:
  react
  react-redux
  @storybook/addon-knobs
  @deque/cauldron-react
  starwars-names
  (...and 114 more)
(this will be run only when your dependencies or config have changed)
...

Second Run:
❯ yarn storybook
info @storybook/react v6.4.19
info
info => Loading presets

info => Using cached manager
...

Even when you load the page in the browser?  That is when the vite message would appear in the terminal.  If not, can you create a reproduction?

Yeah, that vite message doesn't appear even when the page is loaded in the browser. I can try to create a reproduction, but it might be a bit difficult since we have a complicated monorepo setup.

Ah, you might need to specify the root and/or base config in viteFinal if that's the case.  The builder makes some assumptions about folder structure which might not be correct in your case.  See https://github.com/eirslett/storybook-builder-vite#note-about-working-directory as well.


How to stop listening?

This should be a really newbie question, but how can I stop listening to an action?
I've been following a video in youtube to learn how to use react with firebase, and the teacher decided to use reflux to manage data flow.  When it comes to the part where my component needs to know when the action of loading my user ends, so I can go to the main screen, the guy in the video binded a listener to the action, using something like this: Actions.loadUser.completed.listen(this.MyMethod.bind(this)).
Everything worked perfectly, but I don't know how to stop listening to this, and now everytime the load user Action is completed my app goes to the main screen...
Can someone help me please?

Listeners return an unsubscribe. So it should work something like this:
var unsub = Actions.loadUser.completed.listen(this.MyMethod.bind(this));

// later
unsub(); // unsubscribes

I think this got left out of the new docs...so totally not your fault. I'll get it added into the docs in the next update.

Thank you very much! :D


Update load.py

Simple fix for keras model load for raggedTensor. Otherwise there is AttributeError about raggedTensorSpec not having name

@googlebot I signed it!

@googlebot I signed it!

@blackyang It would probably make sense to add a unit test that reproduces the issue you did run into.
I've been poking around trying to understand how signatures that refer to RaggedTensors are saved. As far as I understand it, function tracing and model saving take a RaggedTensor argument and do nest.flatten(arg, expand_composites=True) which results in the arguments being the underlying shape of the RaggedTensor values and row_splits elements.
It is possible that this has to be taking into consideration when evaluating a loaded model.

@blackyang It would probably make sense to add a unit test that reproduces the issue you did run into.
I've been poking around trying to understand how signatures that refer to RaggedTensors are saved. As far as I understand it, function tracing and model saving take a RaggedTensor argument and do nest.flatten(arg, expand_composites=True) which results in the arguments being the underlying shape of the RaggedTensor values and row_splits elements.
It is possible that this has to be taking into consideration when evaluating a loaded model.

@omalleyt12 Thanks you! I found 1 failed check about import/copybara, do you know how to see the detailed error message?

@omalleyt12 Thanks you! I found 1 failed check about import/copybara, do you know how to see the detailed error message?


As a user I would expect to see OCI in the provider list when I run clusterctl config repositories

What would you like to be added:
The work for this issue will be done in the cluster-api repo, but will impact this provider. We will need to modify https://github.com/kubernetes-sigs/cluster-api/blob/a52bb727d22f13042d9810a6bf6566204ea28345/cmd/clusterctl/client/config/providers_client.go to make sure OCI shows up in the list
Why is this needed:
This will make it easier for customers to find our provider.

PR is landed https://github.com/kubernetes-sigs/cluster-api/pull/6309 but waiting on the next version of clusterctl

We are now in the list. Tested in v1.2.0
clusterctl config repositories
NAME           TYPE                     URL                                                                                FILE
cluster-api    CoreProvider             https://github.com/kubernetes-sigs/cluster-api/releases/latest/                           core-components.yaml
kubeadm        BootstrapProvider        https://github.com/kubernetes-sigs/cluster-api/releases/latest/                           bootstrap-components.yaml
...
oci            InfrastructureProvider   https://github.com/oracle/cluster-api-provider-oci/releases/latest/                       infrastructure-components.yaml
openstack      InfrastructureProvider   https://github.com/kubernetes-sigs/cluster-api-provider-openstack/releases/latest/        infrastructure-components.yaml
...


Add new version of googleapis-common-protos

there is an add_pkg helper which will pull in all the upgraded deps for you as indicated in the README

these aren't deps, they are things that themselves have a dependency on protobuf (ancestors?)


Add Margins

Let's add a Margins decotator that must decorate a Pages adjusting all text margins.

Closed by b1e4b24.


⚠ SceneTime has degraded performance

In 666b7f2, SceneTime ($ST) experienced degraded performance:

HTTP code: 200
Response time: 2121 ms

Resolved: SceneTime performance has improved in 6e73632.


Update german translation for V10.1.2

This translation attempt is terrible and has clearly been made via copy & paste from an online translator tool.
Also, strings like "Lizenzen Liste", "Intervall erneuern:" or "Aktivierung Objektname:" are all literal translations which are grammatically incorrect and don't make any sense in context.

https://github.com/YerongAI/Office-Tool/commits/main/src/OfficeToolPlus/Dictionaries/Languages/de-de.xaml
The main translator has more priority and credibility. It makes sense to reject the pull request.

As @Berny23 pointed out. The translation is not perfect yet.
Our projects are intended to provide quality translations to our users. If not, or if only machine translation is used, then our project loses its meaning.
We hope you can learn more from it and providing better quality translations in the future. Thanks.


Cannot find preview versions

I tried with the latest release from the release page and got the same issue.
Visual Studio Locator version 2.2.11+gf1a9c6c78d [query version <IP_ADDRESS>19]
I only have a single Preview version

C:\Program Files (x86)\Microsoft Visual Studio\Installer>vswhere.exe
Visual Studio Locator version 2.2.11+gf1a9c6c78d [query version <IP_ADDRESS>19]
Copyright (C) Microsoft Corporation. All rights reserved.

C:\Program Files (x86)\Microsoft Visual Studio\Installer>

If you look at the usage ('?) it shows you have to use -prerelease to see prerelease versions. This was a requested breaking change from 1.x that lead to the 2.x versions.

Hmm, I'm not sure -prerelease is actually working as intended:
Visual Studio Locator version 2.5.2+gebb9f26a3d [query version 1.17.1176.60362]
$ vswhere.exe  -property installationPath -prerelease
C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional

$ vswhere.exe  -property installationPath -prerelease -all
C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional
C:\Program Files (x86)\Microsoft Visual Studio\Preview\Professional

The preview version runs just fine, so I'm not sure it's due to it being "incomplete and may not launch", as -all implies

Yes, it probably means it's incomplete. If you use the VSSetup module it can give you specifics in the State property.

Indeed you're right -- my desktop didn't actually reboot while I went to get a coffee, it just dropped back out to the login screen somehow.  Sorry for the noise!


Dynamic filter form field value persistence is surprising.

Environment

Nautobot version (Docker tag too if applicable): 1.5.x
Python version: *
Database platform, version: n/a
Middleware(s): n/a

Steps to Reproduce

This was done using the demo dataset.

Go to device list view
Click "Filter", then "Advanced" and input an advanced filter such as "name regex = ^ams01".
Click "Apply"
Observe that the filter name__re=^ams01 is displayed in list view
Click "Filter" again, then select any "Default" filter such as "has interfaces = Yes"
Click "Apply"
Observe that the previous filter was replaced and that only has_interfaces=True is displayed in list view.

Expected Behavior
The filter values between both tabs should persist.

Observed Behavior
This appears to only be the case if you mix "advanced' and "default" filters using the "default" tab. If you select the same set of filter criteria using only the "advanced" tab, they always persist.

Potential fix in django if a JS fix isn't feasible:
diff --git a/nautobot/extras/forms/base.py b/nautobot/extras/forms/base.py
index d4e8febe3..60da60697 100644
--- a/nautobot/extras/forms/base.py
+++ b/nautobot/extras/forms/base.py
@@ -1,3 +1,4 @@
+from django import forms
 from nautobot.utilities.forms import BootstrapMixin
 from .mixins import (
     CustomFieldModelBulkEditFormMixin,
@@ -38,6 +39,20 @@ class NautobotFilterForm(BootstrapMixin, CustomFieldModelFilterFormMixin, Relati
     needed.
     """

+    def __init__(self, *args, **kwargs):
+        super().__init__(*args, **kwargs)
+        for name, value in self.data.items():
+            if name == "q" or name not in self.fields:
+                if isinstance(value, (list, tuple)):
+                    widget = forms.widgets.MultipleHiddenInput
+                else:
+                    widget = forms.widgets.HiddenInput
+                self.fields[name] = forms.CharField(
+                    required=False,
+                    initial=value,
+                    widget=widget,
+                )
+

 class NautobotBulkEditForm(
     BootstrapMixin, CustomFieldModelBulkEditFormMixin, RelationshipModelBulkEditFormMixin, NoteModelBulkEditFormMixin

Yeah probably easier to test than a js based fix. Call a list view with some dynamic filter form parameters in the query that are not fields in the default filterset. Then make sure the dynamic filters show up in the default filter form as hidden inputs.

Yeah probably easier to test than a js based fix. Call a list view with some dynamic filter form parameters in the query that are not fields in the default filterset. Then make sure the dynamic filters show up in the default filter form as hidden inputs.

Could probably just even compare the rendered form output without necessarily having to call the view, but yeah, I follow.


Intellisense/suggestions/helpful features don't work

Type: Bug

CSS container queries: VSCode hasn't ever recognised them but now Intellisense is completely broken for them. Media queries do work though.

Angle brackets don't self close and all the self-closing characters can't be left with tab, you have to press the right arrow key. Maybe not a bug but it's basically just a snippet, you should be able to tab out.

Suggestions in general are so terrible it has to be a bug, especially in JS and it doesn't go away with TS. It gives you suggestions for the most random weird things I have never typed in before just because they share the first letter like "getJSDocOverrideTagNoCache", "toUSVString", "stripVTControlCharacters", "collapseTextChangeRangesAcrossMultipleVersions" and "ChannelSplitterNode". Sometimes a more specific name suggests it lower on the list and "weit" suggests "WebkitCSSMatrix", "wakeLockSentinal" and "WritableStream" and not my own function "writeJson". It even got "writable" but not the function I just defined. And helpful suggestions like "if" don't make and if statement, it's just "if". Same with fn, for, etc. In CSS a lot of the time it doesn't even show you your variables at all.

copying text never has the correct indentation. Even when you try out 5o different things that logically should work, it doesn't. The first line is always off no matter what.

Making folders and files. You have to focus on the correct thing and then create it, otherwise it's in the wrong place.

Watch tasks. The very few mentions of this you can find are all so misleading. I thought they would be a task that runs every time you save a file. Really confusing.

No command for executing shell commands. And there's no built in terminal for running your programs either, I would think something like Ctrl+R would run (optionally compile) the current file. Best you can do is an extension like Code Runner which doesn't even have an input.

That little lightbulb thing gives the dumbest suggestions, like in JS it asks if you want to turn a => a * 2 into function(a){return a * 2}. No, I do not.

VS Code version: Code 1.79.2 (695af097c7bd098fbf017ce3ac85e09bbc5dda06, 2023-06-14T08:57:04.379Z)
OS version: Windows_NT x64 10.0.19045
Modes:

System Info

Item
Value

CPUs
Intel(R) Core(TM) i7-4790 CPU @ 3.60GHz (8 x 3592)

GPU Status
2d_canvas: enabledcanvas_oop_rasterization: disabled_offdirect_rendering_display_compositor: disabled_off_okgpu_compositing: enabledmultiple_raster_threads: enabled_onopengl: enabled_onrasterization: enabledraw_draw: disabled_off_okvideo_decode: enabledvideo_encode: enabledvulkan: disabled_offwebgl: enabledwebgl2: enabledwebgpu: enabled

Load (avg)
undefined

Memory (System)
15.95GB (8.38GB free)

Process Argv
--crash-reporter-id b67b341d-41c8-4d1e-9396-3ff475cbda2c

Screen Reader
no

VM
0%

Extensions (20)

Extension
Author (truncated)
Version

laravel-extra-intellisense
ami
0.6.3

tsl-problem-matcher
amo
0.6.2

vscode-intelephense-client
bme
1.9.5

vscode-eslint
dba
2.4.0

vscode-command-runner
edo
0.0.124

prettier-vscode
esb
9.15.0

code-runner
for
0.12.0

vscode-autohotkey-plus-plus
mar
3.3.1

python
ms-
2023.10.1

vscode-pylance
ms-
2023.6.20

powershell
ms-
2023.6.0

laravel5-snippets
one
1.17.0

synthwave-vscode
Rob
0.1.15

laravel-artisan
rya
0.0.31

language-stylus
sys
1.16.0

intellicode-api-usage-examples
Vis
0.2.7

vscodeintellicode
Vis
1.2.30

volar
Vue
1.8.1

quokka-vscode
Wal
1.0.546

php-debug
xde
1.32.1

Fair points and good feedback but to allows to track and manage those I asking to file separate issues for each of them

Fair points and good feedback but to allows to track and manage those I asking to file separate issues for each of them

Should I or will you?

You. And remember to be specific and precise about your cases. A single sentence is usually not enough for a developer to understand an issue. Be on point and include the minimal information that's needed to reproduce a problem

You. And remember to be specific and precise about your cases. A single sentence is usually not enough for a developer to understand an issue. Be on point and include the minimal information that's needed to reproduce a problem

Which ones? I don't know what other information I can give.


php connection ok but no table displayed on html page

Hello,
Thanks for this great project. I am trying to use this jsgrid-php, but cannot make it to work, and I don't understand what I am missing.
I changed the db configuration to connect to my mysql database, and this works: when I go to localhost/clients for example, I am getting the correct json of my table on screen.
However, when loading localhost/index.html, I get the title of the page (JSGrid and PHP Sample), but nothing more. In the div in which the table is supposed to appear, nothing is shown.
Is there some configuration that I am missing? Thanks a lot.
Note that I have put all files in /var/www/html, and I only modified the db/config.php file.

UPDATE: I think that I solved it without knowing why... Sorry...

Glad that you figured it out.


Request a valid modules download links

So, we sent to you an email to give us the latest version for some modules that we already pay for it, the links under our profile in chatsdk.com is not working and there's no response from you, can you please reply to our email?
Topic: Request a valid modules download links
Thanks

Module links are available here:
https://chatsdk.co/your-account/
FYI, our website is chatsdk.co not .com.


How to access CustomAttributes in async inferece request input_fn

I need to access CustomAttributes in async request.
I tried to access it inside a custom input_fn
def input_fn(self, input_data, content_type):
self.context coud give access to custom properties
but I am not sure about this
        try:
            if not self.initialized:
                self.initialize(context)

(I am new to python). But this looks like it would instantiate the class once and fill the context once, so it would not get update on each request with the additional context params i guess?!
anyhow. it looks like self
will not be accessible inside
def input_fn(self, input_data, content_type):
hence no access to additional params.
@philschmid  Any idea about how to access additional CustomAttributes ?

ideally the context will be passed on a per request base
processed_data = self.preprocess(input_data, content_type, context)
https://github.com/aws/sagemaker-huggingface-inference-toolkit/blob/2237804030f15157f932adfca86f9b06e04f244c/src/sagemaker_huggingface_inference_toolkit/handler_service.py#L188


can i add a default values

i want to start with some default values of textbox

Yes you can do that, the HTML template that you want to apply czMore to just needs to have the default value in it

i want my page to be lfirst loades like that
https://imgur.com/Z76ft5N

This plugin repeats whatever HTML you give to it, so take the example you mentioned, if the  then it's value will always be 3, but if what you want is to have it increment then you can implement that in the onAdd event..  hope this clears it
happy coding

i was add a new recordset but it's not working
`

                                Product*

                                        <input type="text" name="stock_1_product" id="id_stock_1_product" class="textinput form-control" />

                                Product*

                                        <input type="text" name="stock_1_product" id="id_stock_1_product" class="textinput form-control" />

`

<input value="3" />

Does it work at all for you

I will consider this issue closed, as there is no more comment


[do not merge] caching docs

[ ] waiting on eng to confirm PR
What are you changing in this pull request and why?
This PR adds docs for semantic layer caching.
docs project
requested design help for diagrams; https://app.asana.com/0/1202263237307725/1207136584837014/f

ok to merge docs now per Eng adn PM


Create Dijkstra’s Shortest Path Algorithm.cpp

Please dont give a spam tag i didnt know if it was added or not


Add bower link autocompletion

https://github.com/miklos-martin/oh-my-zsh-plugins/blob/master/bower/bower.plugin.zsh looks great, but the only place I regularly want autocompletion is actually with the bower link command. Inspired by http://jeroenjanssens.com/2013/08/16/quickly-navigate-your-filesystem-from-the-command-line.html, I tried the following to get it, and it works ok, but it clobbers normal bower autocompletion.
function _completebowerlink {
  reply=($(ls /Users/patkujawa/.local/share/bower/links/))
}
compctl -K _completebowerlink bower link

I've never done autocompletion before, so that was just a hack. Maybe you know a better way and could incorporate it into the plugin?


Performance issues on Angular code base

I'm using Sublime Text 3, build 3083, on the Angular code base, with the TypeScript plugin installed via git at revision 2c19761, tried with node v0.10.38 and v0.12.4 with similar results.
At its worst, moving the cursor stalls the UI for multiple seconds and most TypeScript commands fail (go to symbol, rename, etc). I see "queue timeout" printed in the console. Restarting Sublime helps, but moving the cursor onto a symbol still stalls the UI for a noticeable amount of time; keeping the down arrow pressed and scrolling through the file shows it's very slow and janky.
Steps to reproduce:

install Sublime Text 3 build 3083
install TypeScript plugin at 2c19761
Check out https://github.com/angular/angular (about 60k SLOC)
open (e.g.) element_injector.ts, navigate around in the file

Apart from the general speed, all TypeScript operations appear to run synchronous on the UI thread, which might cause these issues.

Just to clarify, when you say "moving the cursor onto a symbol", do you mean just click on the symbol, or do you mean using the "navigate to symbol" command?
Some commands are kept synchronous due to comparability consideration with sublime 2, which may indeed affect the performance.  However, the expensive ones like auto_completion and get_err are done asynchronous in Sublime 3 already.

Just clicking on it or navigating by keyboard.
Zhengbo Li<EMAIL_ADDRESS>schrieb am Fr., 5. Juni 2015 19:17:

Just to clarify, when you say "moving the cursor onto a symbol", do you
mean just click on the symbol, or do you mean using the "navigate to
symbol" command?
Some commands are kept synchronous due to comparability consideration with
sublime 2, which may indeed affect the performance. However, the expensive
ones like auto_completion and get_err are done asynchronous in Sublime 3
already.
—
Reply to this email directly or view it on GitHub
https://github.com/Microsoft/TypeScript-Sublime-Plugin/issues/216#issuecomment-109503060
.

Does the following recording seem to match your experience? I tried the procedure on my laptop:

I did notice some lag, but no as bad. I wonder there might be something else going wrong. Could you help me with a log file? To get the log file:

go to the plugin folder and close sublime
open 'typescript/libs/global_vars', change LOG_FILE_LEVEL to logging.DEBUG
open sublime and reproduce the problem.
find the 'TS.log' file in the 'typescript' folder, and post the content.

Thanks!

It's hard to tell from the gif, but I think the lag is quite a bit more severe on my machine. Interestingly when using Visual Studio Code, there's no lag while navigating the file (I believe because it is async), but when triggering completions, they do take over a second to appear, sometimes three.
Here's a gist of the log: https://gist.github.com/mprobst/b88436cd0d808e45f64d

From the log I do see a lot of "quickinfo" request (which is to update the status line) taking up 200~300 ms. It would be better to change that to asynchronous, or provide an option to turn it off. I'll experiment a bit.

@mprobst can you give a shot of https://github.com/zhengbli/TypeScript-Sublime-Plugin/tree/asyncQuickInfo ?

@zhengbli indeed, that's a huge improvement - no more blocking on navigation.

Awesome!


JSON validation tooltips are always "undefined"

monaco-editor version: 0.13.1
Browser: Firefox 62
OS: macOS
Steps or JS usage snippet reproducing the issue:
I am trying to reproduce JSON editing as per the following example: https://microsoft.github.io/monaco-editor/playground.html#extending-language-services-configure-json-defaults
Everything seems to be working fine, I have auto-completion for enums on Ctrl+Space, and validation is correct. The only problem I can't figure out how to solve is tooltips that always say 'undefined'

The code online has correct tooltips:

Can anyone please give me any clue on what settings should I be looking at or how to address the validation text?

@DenisVuyka Do you have any additional steps to reproduce? Are there any errors in the console?

@alexandrudima while trying to create steps to reproduce I got it working in the sandbox: https://stackblitz.com/edit/monaco-json?file=index.html.
I guess it is somehow related to the scenario I'm using and Angular 6 (https://github.com/ngstack/core/blob/master/projects/code-editor/src/lib/services/code-editor.service.ts#L61).
Thanks anyway, I think the ticket can be closed.

@alexandrudima The issue I've been struggling with is related to this: https://github.com/Microsoft/monaco-editor/issues/790


TS papercut: import should prefer type-correct import

I often end up importing the wrong type when methods have the same name (such as isEqual). I do not understand why we cannot suggest the correct import for the type that is passed in. Even worse, when I do "Add all imports", I end up with the wrong one.

//cc @egamma (since you ask me for TS papercuts often)

//cc @egamma (since you ask me for TS papercuts often)

Can you please add a specific example in our codespace where the happens?

Can you please add a specific example in our codespace where the happens?

@mjbvz steps:

open src/vs/workbench/contrib/files/browser/files.contribution.ts
remove the existing isEqual import
go to the compile error
press Ctrl+. to bring up quick fix

Thanks. Opened https://github.com/microsoft/TypeScript/issues/42615 to track upstream


Spark 4 parquet_writer_test.py fixes

Resolves #11024
Fixes test failures caused by some renamed configurations and renamed member variables in spark classes. Also includes a few fixes to the shim loader and integration test runner that allow them to run the preview as if they were the release version.

build

build


Analytical derivatives?

Hi,
Thanks for the great work. At some point before the acquisition there were talks of analytical derivatives being added. Is this at all on your roadmap? If so is it far down the line?

Yes, definitely on our roadmap.
True analytical derivatives, probably in 2023.
Fast finite-difference derivatives (using various tricks) will be out soon (within ~2 months), with similar API to eventual analytical derivatives which will be drop-in replacement.


Hook up stateless auth

Coverage decreased (-0.09%) to 99.353% when pulling b9af3c5e15849e71263caa0a8e87cc808c45ae9a on CyberiaResurrection:HookUpStatelessAuth into a0faebbcfac072fdcf256a3da8448869e71a07d2 on Algo-Web:master.

Coverage decreased (-0.09%) to 99.354% when pulling 970fbd1383c4a110c63965ed39eabd6f17ffd8cd on CyberiaResurrection:HookUpStatelessAuth into a0faebbcfac072fdcf256a3da8448869e71a07d2 on Algo-Web:master.

Coverage decreased (-0.09%) to 99.354% when pulling 9f0ce91a8cb5c825dceec41d9cf194edc0c4bb93 on CyberiaResurrection:HookUpStatelessAuth into a0faebbcfac072fdcf256a3da8448869e71a07d2 on Algo-Web:master.


Suddenly Stopped Working

I am all but certain that this is not an issue with Solar Shed.  That being said, I had a perfectly working system running on a Raspberry Pi, everything was being stored in Prometheus, charted with Grafana.  Then today, I reconnected my Renogy Bluetooth module just to see what the Renogy DC Home app could offer, just out of curiosity.  Since I've done that, when I reconnect the Raspberry Pi Solar Shed server (and more specifically the MinimalModbus) library is reporting errors to the effect of:
Nov 03 13:22:19 raspberrypi python[445]:   File "/home/pi/.local/lib/python2.7/site-packages/minimalmodbus.py", line 930, in _communicate
Nov 03 13:22:19 raspberrypi python[445]:     raise IOError('No communication with the instrument (no answer)')
Nov 03 13:22:19 raspberrypi python[445]: IOError: No communication with the instrument (no answer)
The software version on the charge controller is reporting device version V3.0.1 (I'm seeing this through the Renogy BT app on my phone).  I'm starting to think that running the Renogy DC Home app might have updated the firmware on the device so that it somehow blocks requests over the serial port from unknown sources.  Also just curious what the software version on your charge controller indicates?

Was this ever resolved? This just happened to me, I was working on an unrelated project and it just stopped working.

Hi folks - I've not encountered this one before.    The Raspberry Pi I had installed in my "original" solar shed trailer just expired -- so I might try to do a "fresh setup" to a) document it and b) see if I encounter anything like this one.
If I find anything helpful, I'll report back


Will this support latest JDK 17

Is the gradle used in this project upgraded in accordance with new JDK 17 ? Is there us any plan? Eclipse will no longer supports PDE Will this work even after it?

Happy to take a PR for it. Goomph definitely works with JDK 17, but we are not proactively updating this demo project anymore.

Happy to take a PR for it. Goomph definitely works with JDK 17, but we are not proactively updating this demo project anymore.

@nedtwigg I have seen your code which is supporting until eclipse version 4.5.2 and any version above goomph is throwing error. Can we incorporate Eclipse 4.20 as well?

Happy to take a PR for it. Goomph definitely works with JDK 17, but we are not proactively updating this demo project anymore.

@nedtwigg I have seen your code which is supporting until eclipse version 4.5.2 and any version above goomph is throwing error. Can we incorporate Eclipse 4.20 as well?

@nedtwigg how about the gradle version, you are using 6+ which will not work with JDK 17. Do you have any plan stored in for latest release of JDK 17 for September 14 2021?

https://github.com/diffplug/goomph/issues/35#issuecomment-883550242

diffplug/goomph#35 (comment)

Sorry I did not get you could you please elaborate


Feature/dynamic versions

Closes #605
This PR changes the VersionIRIs in all files to a static dev-IRI. It also exdents the makefile from #604 to replace those paths with the current release version.

Depends on #604

Awesome. This will be so much smoother!


⚠ Bofrost.at has degraded performance

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

HTTP code: 200
Response time: 2302 ms

Resolved: Bofrost.at performance has improved in 007e762 after 6 minutes.