Suggestion - move context to the 1st param instead of the last

When using ServerCtx() -  the context passed is appended to the end of the handler parameters.
If you move the context to being the 1st parameter instead, then you get a nice side effect of being able to easily connect struct member functions directly as http handlers. (since they expect the 1st param == *Self)
Not saying this is a good vs bad practice (many arguments for and against), but having that option there does make some tasks a bit easier to write.
Another side effect is that it is idiomatic-Go to pass context first, so ... that would also make http.zig a bit easier to swallow for porting existing Go code ?
const World = struct {
   ... lots of state

  pub fn getTwibbles(self, res, req) {
   ... return all my twibbles
  }

  pub fn getFribbles(self, res, req) {
  .. return all my fribbles
 }
};

pub fn main () void {
  my_world = load_world();
  server = httpz.ServerCtx(*World, *RequestCtx).init(...,  &my_world);
  router = server.router();
  // apis that use the World context
  router.get("/api/v1/twibbles", World.getTwibbles);   // same as calling -  my_world.getTwibbles(res, req)
  routre.get("/api/v1/fribbles", World.getFribbles);
}

If interested, the code to do this is more than a few lines
ie
https://github.com/zigster64/http.zig/pull/1

Thanks for the suggestion. I merged it from your branch and made a few cosmetic changes (updated the readme, reverted to tab spacing, moved the index.html to the example folder, ...)
I think it's a good idea with very few drawbacks since you still don't have to use the structure method approach if you don't want to, but now you can if you want.

Sweet, thank you.
yeah, seems logical. Feels good to contribute, thx

Thanks again for this, it's proven useful to me.
In fact, it allowed me to add more flexibility with respect to global data. Global data can now be set on a route-basis, like a custom dispatcher:
const special_world = load_special_world();
router.getC("/api/v1/twibbles", World.getTwibbles, .{.ctx =  &special_world});

Or, for all subsequent routes (which isn't my favorite API because of how easy it is to mess up, but does save a lot of repetitive configuration):
const special_world = load_special_world();
router.ctx(&special_world);
router.get("/api/v1/twibbles", World.getTwibbles);
routre.get("/api/v1/fribbles", World.getFribbles);

If the route has a ctx (global data), it uses that and fallsback to using the global ctx set on server init.

maybe ... (and I havent really thought this through, just off the top of my head)
Thinking of like router.Group() with a context at that level passed down to descendants
// A horribly contrived example of what Im thinking
const Animal = struct { ...};

apis = router.Group("/api");

const Tigers = some collection of Animal from somewhere;
const Sloths = some collection of Animal from somewhere;

const tiger_api = apis.Group("/tigers").ctx(&Tigers)
tiger_api.get("/show/:id", Animal.show);
tiger_api.post("/unleash/:id", Animal.attack);

const sloth_api = apis.Group("/sloths").ctx(&Sloths)
sloth_api.get("/show/:id", Animal.show);
sloth_api.get("/unleash/:id", Animal.sleep);

So endpoint /api/sloths/show/1 calls  Sloths.show(req, res) and /api/tigers/show/2 calls Tigers.show(req, res)
or something.
I like the way this is panning out anyway, its very nice already

Yes, I think something like this is the right way forward.

Router groups are now available.


Rename column popup

Fixes #4590
Changes proposed in this pull request:

Replaced browser popup for rename column with a regular dialog:

Very nice, thank you! In addition, I think it would be nice if the text field could be focused when the dialog is set up, so that the user can directly edit the column name without having to click.

I added autofocus to the text field, now it auto focuses to the right of the old column name.


Sign In Button Hover

🐛 Sign In Button Hover
Inside the login page, the sign-in button hovers color is red which looks odd concerning the green UI.
I would like to change it to a color suitable to the UI, a shade of green.
Assign me this issue.

/assign

I would like to work on this issue if no one else is working on it.


Listview Refreshindicator disappears direct on Android after upgrade

Xamarin.Android Version (eg: 6.0):
6.0
Operating System & Version (eg: Mac OSX 10.11):
Windows 10
Support Libraries Version (eg: 23.3.0):
24.2.1 and higher
Describe your Issue:
I am using a XF listview and want to disable pull to refresh while loading. I am binding the listview IsPullToRefreshEnabled to the oposite of the IsRefreshing property. When I pull to refresh I see the listview refresh icon turning until the new data is shown.  I am using binding and retreive my data async.
This all worked fine up to version <IP_ADDRESS> of the android support libs. When I upgrade to version 24.2.1 or higher and I pull to refresh I do see the refesh icon for a short moment and then it disseapers before the new data is retreived and shown.
Steps to Reproduce (with link to sample solution if possible):
See the small and simple sample application I added. It will show the bug discribed. When you donwgrade the support libs to version <IP_ADDRESS> OR remove the binding on IsPullToRefreshEnabled and set it to True it will work like expected.
RefreshIndicator.zip
Include any relevant Exception Stack traces, build logs, adb logs:

Could you please file this in Xamarin.Forms along with the repro sample?  I'm seeing it here too but unfortunately this looks related to Xamarin.Forms and not directly to Android Support Libraries.  It's also possible it's solved in newer releases of Xamarin.Forms.
https://github.com/xamarin/Xamarin.Forms/issues


Make vessel buildable on MacOS

Resolving a build error on MacOS (missing Security library)

Thank you, Gabor. I am not sure whether the macos build runs on the normal CI on pull requests, maybe on release workflow only...


Unknown "partial" tag in "string_template***" vendor\twig\twig\lib\Twig\Parser.php

Have this error on clear install.
I installed octobercms via october and rainlab user-plugin via backend and use default theme.
After login i try reset password and get error:
"Unknown "partial" tag in "__string_template__069e2a3026e2e4aa38c19a91af445a65122025782fad288c8085221227d5cd9b" at line 7." on line 181 of C:\Users\ADMIN\Desktop\Projects\Public\p_v2\october\vendor\twig\twig\lib\Twig\Parser.php
how i can fix this problem?
Installed plugins
Blog 1.2.19
User 1.4.5
I cant find octobercms version but install it today.

I have also encountered this problem.
In my case, I was parsing twig template using Twig::parse facade. After parsing I wanted to send mail using Mail::send facade using my own mail template (with default layout having partial tag). I don't know what's causing it exactly, but if you use Twig::parse before sending mail, the internal markup manager somehow doesn't register MailPartialTokenParser.
My quick workaround was to forget twig instances after using Twig::parse to let Mail facade recreate them:
\App::forgetInstance('parse.twig');
\App::forgetInstance('twig.environment');

Here are the versions of october I am using:
october/backend v1.0.432
october/cms     v1.0.432
october/rain    v1.0.434
october/system  v1.0.432

@cjayx that makes sense. The MailTokenParser only gets registered in the process of rendering a mail template: https://github.com/octobercms/october/blob/master/modules/system/classes/MailManager.php#L289-L291


Temporary fix for disc

Fix for issue where JSON values will sometimes be stringified, causing the client to not be able to read it, even if you have set your data type as JS

will this cause issues if you do things like send a json string as a message?

will this cause issues if you do things like send a json string as a post?

lemme check

will this cause issues if you do things like send a json string as a post?

actually no, the val is a json object


Email Id extractor

Description
Extract email addresses from the text given in the input and display all the email ids in the end
Technologies and Languages

Python
Javascript
C++
Regex

You can use any other language or technologies as well.
Aditional Work
You can make a GUI for this application.

I wanted to work on this issue.

Sure, Go for it. 👍

should i create new folder for this issue.?

Yes, Make a new folder with the issue name. ex- for this issue, name the folder as "email_id_extractor"
Rest guidelines you can find here

I want to contribute

This my first pull request. please tell me if i did anything wrong here.


Export path does not exist

I know this issue has been discussed before, but I couldn't find any working solution.
It seems the addon adds superfluous slashes to my addon defined paths.
The addon works as long as I don't use any renderman shaders. Then I get RenderMan: Exited
My defined path is (default):
C:/tmp/renderman_for_blender/{blend}
Addon makes out of it (error message system console):

How can I get rid of all those wrong slashes and backslashes? The dots should also be problematic on windows, but removing them didnt help. Also other HDDs and paths didnt work. (Windows 10, Blender 2.78c). Renderman is installed at default path and also the .license file...
Greetings

New attempt - still not working and adding slashes...

Double slashes isn't the issue.  For some reason the exporter does not appear to be creating the export directories.
Try rendering again and then take a look at your export directory to see what (if anything) was created.

Okay, I tried default settings again and created Win10 admin this time.
Result:

I think this is more of a RenderMan issue as it looks like the proper export directories are being created.  Can you try deleting your renderman_for_blender directory in the tmp folder and run the export again just to make sure?
Next step would be running an external render to see if that works.

Okay, maybe that is a Renderman prob.
Results of external render:
No Renderman Material:

After add Renderman Node Tree on the material:


hadrian: Disable -Wno-undef in files which include ffi.h

As pointed out in D4181, these headers refer to undefined macros.

Thanks @bgamari! Merged.


ansel: 0-unstable-2024-08-13 -> 0-unstable-2024-09-29

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for ansel is: Darktable fork minus the bloat plus some design vision
meta.homepage for ansel is: https://ansel.photos/
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes
Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found 0-unstable-2024-09-29 in filename of file in /nix/store/9s1pyvhkz4v1wbhaqv9nq29qr7a7axsw-ansel-0-unstable-2024-09-29

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

2 total rebuild path(s)

2 package rebuild(s)

First fifty rebuilds by attrpath

ansel

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/9s1pyvhkz4v1wbhaqv9nq29qr7a7axsw-ansel-0-unstable-2024-09-29 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

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

Or:
nix build github:r-ryantm/nixpkgs/2e588d4ecfe222567507bf1d59812e56b68efba6#ansel

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/9s1pyvhkz4v1wbhaqv9nq29qr7a7axsw-ansel-0-unstable-2024-09-29
ls -la /nix/store/9s1pyvhkz4v1wbhaqv9nq29qr7a7axsw-ansel-0-unstable-2024-09-29/bin

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

1 package built:

ansel

Maintainer pings

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

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

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

aarch64-linux

:white_check_mark: 1 package built:

ansel


Using as a module fails due to main pointing CLI

The main property of package.json should point to lib/core.js instead of the command line interface, which is used for bin property.
https://github.com/pocketjoso/specificity-graph/blob/master/package.json#L19
https://docs.npmjs.com/files/package.json#main
You might want to create an index.js which wraps all the different files from lib/, so that there would be a single point of entry (file) when used as require().

Thanks, I'll sort this out this weekend.
I would normally put the index.js file inside lib - is there any disadvantage in doing so?

No disadvantages that I would remember..
Might be even cleaner that way.

The open PR (#22) makes the node module functional, although I'm not quite sure that what it does makes the most sense for a node module. Right now it will just do what the CLI does - writing specificity files to file (including a html file that displays the specificity graph). If @paazmaya has feedback on this I guess we'll open new issues and new PR's to solve them. :)

Thank you very much for your effort!
I will try it out next week..


Rules for services

At work, we've got a project that consists of a Haskell backend that talks to a postgres database. Currently, we're using docker-compose to run postgres as a persistent service in the background. We're moving to using shake more thoroughly throughout the project. We have the Haskell part integrated with shake already and it's been great!
We started thinking about how/if we might use shake to run postgres as part of the build. For instance, if we have a rule to run the tests and those tests need to hit postgres, we would like to have the test rule need something about postgres running. Or, if we have a rule to run the server so you can interact with it from a webpage, we would like to have the server rule need something about postgres running.
Is this a wild idea, or does it seem like something in shake's wheelhouse? Maybe we could use an oracle or something that looks at pg_isready or something? It's not really clear how we'd control the starting and stopping of the postgres server reliably. Maybe this is too out there. If so, any other ideas?

Great that Shake is working well for you :)
I guess the first question I'd ask is what are you aiming for the lifetime postgres database? Do you want to start it when necessary, and then tear it down at the end? If it's running from one run to another, is that good or bad? Does it take a long time to start? For some executions are you hoping it won't be started at all?

Great questions! I think the only real requirement we have is that data can persist between runs; which seems not to be a concern of shake's. Other than that, we're pretty open to whichever approaches make the most sense.
To give a similar feel to the docker-compose stuff it would start once and continue running in the background. Startup is on the order of single-digit seconds, so it's fine if shake starts and stops after each run. Reliability/reproducibility is a bigger value than speed in this case.
I think it'd be really instructive to know how you'd approach each of the alternatives in your questions. Part of what I'm missing about build systems is how to use them to solve process problems. Another part is knowing when to recognize a build system as a good solution to a problem, vs. being excited about build systems.

I have a similar situation.
I am using a compiler-like tool. It can be run the usual way from the command line to compile my source code, but the problem is that it takes a long time to start up. So it can also be run as a server, in which case it listens on a socket and accepts commands through the socket (and emits the success result or errors back through the socket).
I wrote my Shake build script such that it checks an environment variable for the port of the socket. If the environment variable isn't set, then it invokes the tool the slow way through the command (which is good for CI environments). But during development I start the server up and set the environment variable so that I get faster builds.
So bringing this back to this issue, it would be cool if there was a way for shake to automatically start the server so that I wouldn't have to go to the trouble of manually remembering to start it myself and set the environment variable. And of course this should be tied into shake's dependency logic, so that shake would only start the server for the first time when something that actually needs it is about to be built (and then it would remain running and be available for subsequent builds)
On the other hand, my current system is simple and overall works well, so it might not be worth it to add lots of additional complexity to shake

Looking at the options:

If you want to start the thing before Shake, and stop it after, you don't have to do that in Shake. Shake is deliberately an EDSL, so you can run whatever code you want before Shake, even code that returns some kind of in-memory handle, and pass it on to Shake as an argument to the rules. Not everything is best solved with a build system, and fortunately Shake is flexible here.

You almost certainly don't want it part of the build graph, since whether it runs depends on whether the things that depend on it have changed. That's the wrong way round for a build graph.

My approximate suggestion for many situations would be:
rules = do
    startCompiler <- newCache $ \() -> do
        ... start the compiler here ...
        runAfter $ ... shut down the compiler here ...

    "*.lang" %> \out -> do
        startCompiler ()
        ... now use the compiler ...

It will run the startup at most once per run, only if it's needed, it will start it single-threaded (no race conditions), and it will shut it down properly afterwards. Does that cover all use cases? Seems like a good FAQ.

Oooo, that's a really helpful example!

You almost certainly don't want it part of the build graph, since whether it runs depends on whether the things that depend on it have changed. That's the wrong way round for a build graph.

Sorry, I don't really understand this point. Are you suggesting that instead of the build artifacts needing the server, the server should need the artifacts?

I'm suggesting you can't wire in the build server in the graph at all, since it doesn't make sense for the artefacts to depend on the build server (the build server doesn't know if the artefacts need rebuilding at that point) and it also doesn't make sense for the server to depend on the artefacts, since that doesn't make any sense as a dependency. The above example avoids doing that entirely.

I've now added this pattern to the test suite, and consider it the best way to do almost all the problems that were described. I think the right place for this to go as document is on StackOverflow. Either I can ask and answer, or @joneshf can ask the question and I'll flesh out the example and document it more fully - I'm fine either way.

Thanks! This is great. Please feel free to ask and answer. I think you do a great job with those SO Q/As.
For visibility, is this the commit you mean: https://github.com/ndmitchell/shake/commit/ab9e16065fc069726652b10b032a70e2de904a66?

Yep, that's the commit.
Asked and answered at https://stackoverflow.com/questions/52815763/using-persistent-services-with-shake

Finally got around to following this approach, but I'm not sure if it's going to work. runAfter only seems to run if the build finishes successfully. If there's a problem with the build, it doesn't run any of the cleanup.
Here's a simplified example of what we're doing:
import Development.Shake
import System.Process (interruptProcessGroupOf)

main =
  shakeArgs shakeOptions $ do
    startServer <- newCache $ \() -> do
      Process server <- cmd "python2 -m SimpleHTTPServer"
      runAfter $ do
        putStrLn "shutting down server"
        interruptProcessGroupOf server

    phony "fail" $ do
      startServer ()
      cmd_ "sleep 3"
      fail "Intentionally failing"

The shutting down server line doesn't run and the python server is still up and running.
It kind of feels like this needs a bracket style thing, but it doesn't look like that can be done with newCache since it has Eq and Hashable constraints. Trying to use bracket directly in the action doesn't seem to propagate errors either or cleanup successfully (though that's probably because of interruptProcessGroupOf more than any thing else). Any other ideas about what we could do?

Sorry for missing this follow up question, just happened to glance at it now. Let me know if it's still relevant - you can certainly use an MVar or similar outside of Shake and then wrap all of Shake in a bracket, but it's more work.


[Missing SNMP Polling Profile] D-Link DGS-3130-30TS System

Device Vendor: D-Link
Device Model: D-Link DGS-3130-30TS System
System Object Identifier (SysOID): OID: .<IP_ADDRESS>.<IP_ADDRESS>.154.1.2
List of critical metrics that you expect in the profile (does not need to be all-inclusive, just a general idea of your expectations):

Interfaces use, link status, statistics etc
TCP/IP Stack: Errors, Datadrops, etc
Template fixes

Gist Link: https://gist.github.com/wuetz/6b278fddd79bd1ca31fe21b05f3193f8

I apologize for the delayed response, there has been a change with the way SNMP profiles are handled.  In the interest of not being a bottleneck, SNMP profiles are now to be handled as a self-service item for users of ktranslate.  Your organization should fork this repo or copy the contents and make any desired changes directly there, you can see an example of how to pass a modified fork of the profile definitions in this documentation.  You can find documentation of the syntax and capabilities of the profile definitions in this template.
There will be no need for approvals or review except those you implement within your own fork for yourselves.


Feature Request: Web Dashboard

Will possibly not be added due to the time that it would take. Unsure
UPDATE: OAuth2 has been partly completed
UPDATE 2: A dashboard for another bot has been released that is compatible with the bot that this bot is based on

Testing the dashboard now, will release in a few days or weeks depending on available time

Going to take a bit longer. Note to self: Don't run commands if you are not sure what exactly they do

Going to take a bit longer. Note to self: Don't run commands if you are not sure what exactly they do

I think I have restored a dev version of the bot to it's previous state (of actually having code and the edits made to the code to ensure that it functions).

Some possible features to add:

Server Members Info
Stats

:eyes: This is out on the development version of the bot in the dev-branch branch. You can try that version, however, it may still be buggy but please report any bugs you find with it even before it is released so I can fix these as soon as possible

It's finally here!


[BUG] StackOverflowException when OSR browser gains Focus

Describe the bug
While running a JCEF-based application, I noticed some unexpected messages being written to the STDERR stream (System.err)
These messages simply read Exception in thread "AWT-EventQueue-0"
After a significant amount of effort, I tracked these down to an unreported StackOverflowError, being triggered by CefClient.onGotFocus
To Reproduce
Steps to reproduce the behavior:

Update the dependency in JCEF Sample App to 127.3.1
Update useOsr to true in the main method of the JCEF Sample App
Run the app as normal (ensuring the necessary --add-exports parameters are included for Java 9+)
Observe the System.err log output contains multiple instances of Exception in thread "AWT-EventQueue-0"

Expected behavior
We shouldn't see unexpected errors...
Environment (please complete the following information):

OS: Windows
Architecture: amd64
Version: 127.3.1

Additional context
Putting a breakpoint in CefClient.onGotFocus reveals that this method is triggered repeatedly, with the following stack:
onGotFocus:461, CefClient (org.cef) [39]
N_SetFocus:-1, CefBrowser_N (org.cef.browser)
setFocus:502, CefBrowser_N (org.cef.browser)
onGotFocus:461, CefClient (org.cef) [38]
...

Source code
Looking at the implementation of CefBrowser.onGotFocus, we see this:
    @Override
    public void onGotFocus(CefBrowser browser) {
        if (browser == null) return;

        focusedBrowser_ = browser;
        browser.setFocus(true);
        if (focusHandler_ != null) focusHandler_.onGotFocus(browser);
    }

My feeling is that the call to browser.setFocus(true) is both unnecessary and problematic...

My apologies... I've just realised that CefClient is not part of this project; rather, it's part of the JCEP API code... I'll raise a new Issue there.

You are right, thank you anyways for the report! It indeed seems like this cant be intended :)


GitRepositories authentication errors could be improved for invalid credentials

After updating a secret / token for a GitLab endpoint, the following errors would appear:
error GitRepository/[name] - Reconciler error unable to clone 'https://[repoaddress]', error: authentication required

This was challenging to identify, and updating the secret inline with base64 encoded content was unable to show any additional whitespace or potential newlines. If,for instance, the secret is coming from a secrets manager with frequent rotation, then this type of issue might occur frequently.
The main issue that I see, from a troubleshooting perspective, is that it was unclear that there was an issue with the username password (and it "looked" ok when base64 decoding the strings). It wasn't also very clear if the secretRef was even being used/mounted properly.
It wasn't until I recreated the secret with kubectl using --from-literal=username={username] --from-literal=password=[password] that it began to work. I attempted to increase the logging level to debug but that didn't appear to enhance the error output.
Ultimately if the full git error could be brought through it might help clarify where the issue is. For example, a failed authentication attempt from GitLab shows the following:
remote: HTTP Basic: Access denied
fatal: Authentication failed for 'https://[repo address]'

While it's only marginally better, it does help the troubleshooter focus more on the credentials and doesn't leave them wondering whether authentication was even attempted or if the secret was loaded.

Thanks @stewartshea please let us know if there is still an issue once you have upgraded 👍

This has been solved by the recent update to libgit2 1.3.x, which does no longer swallow errors.


E_UNKNOWN, Cannot connect to iTunes Store.(IPv6)

Version of react-native-iap
react-native-iap : 2.3.26

Version of expokit
expokit : 31.0.2
expo : 31.0.2
Version of react-native
react-native : 0.57.1
Network Type
IPv6
Testing App on the real device on IPv6,
Platforms you faced the error (IOS or Android or both?)
Both
Expected behavior
Purchase the Non-Consumable product successfully
Actual behavior
E_UNKNOWN, Cannot connect to iTunes Store
Tested environment (Emulator? Real Device?)
Device
Steps to reproduce the behavior
Every time I call the following methods, it shows "E_UNKNOWN, Cannot connect to iTunes Store", on the IPv6 network:-
getProducts(),
buyProductWithoutFinishTransaction(),
buyProduct(),
getAvailablePurchases()
I don't know about other methods but getting the above error on the these methods.

Closing this and will follow up this in #174. Expo currently don't support native modules.


How to get Huge data from HANA Database/ or can i directly download csv file using python

Using pyhdb For large data i am getting below error:
('Not able to retrieve data', DatabaseError(u'internal error: Remote execution error exception 1000002: Allocation failed ; $size$=33554432; $name$=itab; $type$=pool; $inuse_count$=13936; $allocated
_size$=5032699992\n for query)
is there any other way to get large bach data from hana. (e.g streaming)

Closing due to the sunset of the project. Please check active maintained alternative: https://pypi.org/project/hdbcli/


Announcement of acceptance/rejection 2025

Will winners for 2025 be announced soon? I have not heard anything about my submission being rejected or accepted. Even if rejected, it would be nice to know..

We will release the results soon. One issue with your submission is that it is under the GPL3 license. Are you able to update it to apache 2.0? I think it is part of the competition guidelines.

Yes, I will update that.

@msaligane I changed the license to apache 2.0. I believe the submission guidelines originally stated any open source license would work, but I may be wrong. Thanks for the chance to update this.


GAT input shape error while testing

I used GAT to build a model on the train and validation set. So first, I built the network based on the train and validation set (=9000 rows). The node_features added to the first Stellargraph hence contain also 9000 rows and 5 attributes.
The problem occurs when I'm predicting on the test set. Given that I want to use the inductive property of GAT, I held the test set separate from the training and validation set. To test, I built a second network where I added the test nodes to the first network (consisting of the train and validation set). This network hence contains 10000 nodes (9000 already existing and 1000 from the test set). The node_features added to this second stellargraph object have a dimension of 10000 rows and 5 attributes. However, when I want to predict on the test generator, I get following error:

ValueError: Error when checking input: expected input_1 to have shape (9000, 5) but got array with shape (10000, 5)

I used following code:
stelgr = sg.StellarGraph(H, node_features=node_features) #this is for training
generator = FullBatchNodeGenerator(stelgr, method="gat")
train_gen = generator.flow(train_data.index, train_targets)
gat = GAT(layer_sizes=[32, 32, 1],     activations=["relu", "relu", "sigmoid"],     attn_heads=8,     generator=generator,     in_dropout=0.4,     attn_dropout=0.3)
Then I trained the model. To test, I rebuilt the network:
stelt = sg.StellarGraph(Ht, node_features = node_features2)
generator = FullBatchNodeGenerator(stelt, method="gat")
test_gen = generator.flow(test_data.index, test_targets)
So Ht is the full network with the test nodes added. Node_features2 contains all features, including the features for the test set and has shape (10000,5). Node_features only contains the features for the train and validation set and has shape (9000,5).
The full error is as follows:

ValueError                                Traceback (most recent call last)
 in
1 #t_nodes = test_data.index
2 #t_mapper = generator.flow(t_nodes)
----> 3 t_predictions = model.predict_generator(test_gen)
~\Anaconda3\envs\StellarGraph2\lib\site-packages\tensorflow\python\keras\engine\training.py in predict_generator(self, generator, steps, callbacks, max_queue_size, workers, use_multiprocessing, verbose)
1553         use_multiprocessing=use_multiprocessing,
1554         verbose=verbose,
-> 1555         callbacks=callbacks)
1556
1557   def _validate_compile_param_for_distribution_strategy(
~\Anaconda3\envs\StellarGraph2\lib\site-packages\tensorflow\python\keras\engine\training_generator.py in model_iteration(model, data, steps_per_epoch, epochs, verbose, callbacks, validation_data, validation_steps, validation_freq, class_weight, max_queue_size, workers, use_multiprocessing, shuffle, initial_epoch, mode, batch_size, steps_name, **kwargs)
262
263       is_deferred = not model._is_compiled
--> 264       batch_outs = batch_function(*batch_data)
265       if not isinstance(batch_outs, list):
266         batch_outs = [batch_outs]
~\Anaconda3\envs\StellarGraph2\lib\site-packages\tensorflow\python\keras\engine\training_generator.py in predict_on_batch(x, y, sample_weights)
534     # 1, 2, or 3-tuples from generator
535     def predict_on_batch(x, y=None, sample_weights=None):  # pylint: disable=unused-argument
--> 536       return model.predict_on_batch(x)
537
538     f = predict_on_batch
~\Anaconda3\envs\StellarGraph2\lib\site-packages\tensorflow\python\keras\engine\training.py in predict_on_batch(self, x)
1279     # Validate and standardize user data.
1280     inputs, _, _ = self._standardize_user_data(
-> 1281         x, extract_tensors_from_dataset=True)
1282     # If self._distribution_strategy is True, then we are in a replica context
1283     # at this point.
~\Anaconda3\envs\StellarGraph2\lib\site-packages\tensorflow\python\keras\engine\training.py in _standardize_user_data(self, x, y, sample_weight, class_weight, batch_size, check_steps, steps_name, steps, validation_split, shuffle, extract_tensors_from_dataset)
2649           feed_input_shapes,
2650           check_batch_axis=False,  # Don't enforce the batch size.
-> 2651           exception_prefix='input')
2652
2653     if y is not None:
~\Anaconda3\envs\StellarGraph2\lib\site-packages\tensorflow\python\keras\engine\training_utils.py in standardize_input_data(data, names, shapes, check_batch_axis, exception_prefix)
383                              ': expected ' + names[i] + ' to have shape ' +
384                              str(shape) + ' but got array with shape ' +
--> 385                              str(data_shape))
386   return data
387
ValueError: Error when checking input: expected input_1 to have shape (9000, 5) but got array with shape (10000, 5)

I use Python 3.6, StellarGraph 0.8.4 and NetworkX 2.3
The goal of my code is to use the GAT model to predict on a separate test set (that was not available in the network used to train on) in order to leverage its inductive property.
Is there anything I do wrong?
Thank you in advance!

Hi @ocesp98
Thanks for using StellarGraph and filing this detailed issue!
Unfortunately, the current implementation of GAT in StellarGraph doesn't support inductive learning. The shapes of the tensors are defined when building the model, so if the test graph contains a different number of nodes than your training graph, it will result in the sort of error you've encountered where there's a dimension mismatch.
We'll update this issue once we have a fix!
For now, if you're looking for inductive algorithms for node classification in general, you could try GraphSAGE instead - you can find the demo for inductive representation learning here which could be updated to do node classification.

Hi @ocesp98 and @kjun9
I'd just like to add that our GraphSAGE implementation supports an attentional aggregator so that you can use it to build a sampled GAT model and then, of course as @kjun9 suggested, use it for inductive representation learning.
See https://stellargraph.readthedocs.io/en/stable/api.html#stellargraph.layer.graphsage.AttentionalAggregator
Regards,
P.

Thank you for your answers!
So, if I take a test data set of 9000 rows, then this problem will be solved and GAT will be semi-inductive (meaning then that it is inductive if the test set size equals the train set size)?
For the AttentionalAggregator, is it the same code as when you use the meanAggregator or de we then also have to use the FullBatchNodeGenerator?
Kind regards

Hi @ocesp98
you are correct about setting the sizes of the train and test sets to equal. This will allow you to make predictions for a new graph with a GAT model.
To use the AttentionalAggregator with GraphSAGE, you just need to specify it when creating the GraphSAGE model. See the documentation linked below and pay attention to the parameter aggregator that defaults to using the MeanAggregator. You do not need to use the FullBatNodeGenerator; other than the one small change, everything else in your code should remain the same. https://stellargraph.readthedocs.io/en/stable/api.html#module-stellargraph.layer.graphsage
Regards,
P.

Ok thank you very much. I will try both solutions.


Added support forDate position between 2 dates range (positionInRange)

Hello.
Thank you for SwiftDate.
In this pull request I added a new function called positionInRange(date:and:) to Date and DateInRegion. This function returns a value between 0.0 and 1.0 that shows the position of current date between 2 other dates. It returns nil if current date is not between 2 passed dates.

Thank you for your MR!


md-input Disabled property is not working with Databinding [disabled]

Bug, feature request, or proposal:
there is a bug we try to use disabled with databinding i.e [disabled] we are able to enter  able to enter the content
What is the expected behavior?
it should be disabled but here it looks like disabled but the issue is that we can enter the text
Sample code
html:

<textarea md-input placeholder="Description of Recovery" [disabled]="value" >

ts:
value=true;
but the issue that we are able to enter the content but input looks like disabled

@bhavankris It seems from your code that you're using the old version of mdInput. Since we've updated it to wrap with md-input-container, the disabled property should work (see plunker example of usage here: http://plnkr.co/edit/9fWU47mDjtZBlxjpVMPE?p=preview). If you're still seeing problems with disabling in the new version of mdInput, feel free to open a new issue with a plunker demo.

Indeed that [disabled] is working with mdInput but it does so only for the initial value. It doesn't detect changes in the given attribute. So, in a case that disabled="true" by default, even if I set it on false inside the code, this doesn't been detected by [disabled].
  <input mdInput [placeholder]="value"    [ngModel]="model" [disabled]="disabled" type="text">

I used this way
<input matInput placeholder="Email" [ngModel]="franchise.user_email" formControlName="email" readonly>
and work perfectly


How to set the blog as home page?

I tried to set the posts list as home page by simply changing the pathname in the config.yaml:
    list:
      isEnabled: true
      pathname: ''
      robots:
        index: true

What's weird is that if I serve it locally with npm start, it works, but when I build it, then the index is the one in pages/index.astro.
If I copy the content of pages/[...blog]/[...page].astro into pages/index.astro, it complains:

Cannot read properties of undefined (reading 'currentPage')

I guess because pagination is not enabled on the home page.
Anybody knows how to solve it? I haven't found anything online and it should be a pretty common request, no?
Thanks in advance

I solved it on my own (ok, ChatGPT-o1 helped!).
I just needed to delete pages/index.astro and now it automatically uses pages/[...blog]/[...page].astro


Error: Cannot find module fsevents

I just gave chokidar a shot (found you on SO). I got the latest version via NPM (I'm on Win8 64bit), but require() would fail with error "Cannot find module fsevents", after reverting to 0.7.1, that error is gone.
I did try to get fsevents via NPM, but that failed with
npm WARN package.json<EMAIL_ADDRESS>No repository field.
npm http GET https://registry.npmjs.org/fsevents
npm http 304 https://registry.npmjs.org/fsevents
gypnpm ERR! weird error 1
npm

For people coming here while trying to use nexe on linux to compile a project with this module, you need to comment out this line: https://github.com/paulmillr/chokidar/blob/master/lib/fsevents-handler.js#L7 . Browserify (I believe it's this) tries to gather all dependencies by scanning require's, and it tries to find this dependency which isn't used on linux.

It's the same issue if you're using webpack. And probably any other module bundler that needs to statically resolve dependencies. Here's a one liner to fix it.
sed -i '/try { fsevents = require/d' node_modules/chokidar/lib/fsevents-handler.js


Multi-language spell-checker

Is it possible to make spell-checker multilingual i.e. to select more than one language to spell-checking?
This feature would be very useful when editing documents in non-English language that include some English terms.

Really interesting idea! How do you imagine the UI working / looking?

How do you imagine the UI working / looking?
For this new feature or in editor in whole?
As for the feature - I suggest it can be a language list with a checkbox opposite of each one. All the exisitng spell-ching options can ramian unchanged.

By the way, I can help in translating this application in Russian language. Are you interested in this offer?

Yes on the Russian translation.

Ok. how do we start this process?

Open the languages folder in users/you/Appdata/local/MarkdownEdit/bin and translate the two files (use English folder to see your translation in the program). Send them to me and I'll merge them in.

Keep this issue open for the mult-language spell checker part.

It's ok, I'll reopen it.
2016-09-16 21:06 GMT+03:00 Mike Ward<EMAIL_ADDRESS>
Keep this issue open for the mult-language spell checker part.
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/mike-ward/Markdown-Edit/issues/187#issuecomment-247668306,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAYc9IwgXWxGp-Mza8CxMei5w_Qp2oS-ks5qqtqqgaJpZM4J57qk
.

Wish more apps would do this. Chrome recently introduced it: http://www.ghacks.net/2015/12/10/google-changes-multi-language-spell-checking-options-in-chrome/

After I installed ver 1.31 I noticed that About block in Settings panel has too narrow label for Russian translation. I see that this block has free space to widen label width.

That's a long word. Went from 75 to 125 dp in width.

About the UI question made by @mike-ward, I would like to add that Microsoft Office allows multi-language spell checking and does so in an interesting way in my opinion.
Every document has a default language for spell checking. You can, however, open the context menu over a single word or over a text selection and choose a different language for that specific word or selected text piece.
Here is an example of a text in Portuguese with English terms on it. The highlighted context menu entries are "Idioma [Language]" > "Inglês (Reino Unido) [English (United Kingdom)]":


mount: unknown filesystem type 'drvfs'

Your Windows build number:  (Type ver at a Windows Command Prompt)

Microsoft Windows [Version 10.0.15063] (Installed Creators update via update assistant)

Ubuntu 16.04 installed via lxrun /uninstall /full and then lxrun /install
Distributor ID: Ubuntu
Description:    Ubuntu 16.04.2 LTS
Release:        16.04
Codename:       xenial

What you're doing and what's happening:  (Copy&paste specific commands and their output, or include screen shots)

sudo mount -t drvfs X: /mnt/x
mount: unknown filesystem type 'drvfs'

What's wrong / what should be happening instead:

mount: unknown filesystem type 'drvfs'

Expected:

Mounting X: (network drive) to /mnt/x

My mistake, I thought this was supported with the creators update, but apparently it requires build 16176.
Leaving it here in case anyone else searches for this issue.

i've got Creators Update 1703 - same error.


Add missing installation step

Add missing installation step and make list formatting easier to add to.

Awesome... thanks!


Synchronize between devices

Hi,
Like others I am looking for ways to replace Pushbullet. I've been using Pushbullet as a cross-platform tool to share links, infos, etc that need my attention at a later time. One feature I would like to see nfty to get is to have topic operations synchronize between devices. So for example, if I delete a notification in the web client, the Android client should delete that notification as well. And vice versa.
Cheers,
Alex

I like the idea. It all relies on #43 i think, or were you thinking synchronized settings as well. Because that would be much harder. That would imply that you have a user account and that you log in and all that.

Yes exactly, #43 would cover that. 👍

IMHO, the delete propagation should be optional, there might be reasons to keep the message readable on other devices.

I think that could be an option in the clients. Enabled = delete messages remotely, disabled = only delete locally like today

For me this would not be a client setting but message specific. e.g. you could add this as an option to the already existing delete confirmation dialog?

While this ticket was originally about synchronizing message contents, I have been sending people here to upvote for the "synchronize user accounts and topic subscriptions" to this ticket. So I think this is what it's about now.

I think this ticket has become conflated, as I said, with the user account feature (+ subscription sync), and that is my fault. Because I've sent people here, it's not clear if those people want a user account sync and/or message deletion sync.
My guess is that people want the full package, just like in any other modern app: the web app looks the same as the Android app.
To achieve that, the "devices" need to have an identity, and the "client-only" nature (everything is stored in the client, like today) has to be changed to a "server-side account" for this feature. This is tricky, but ultimately necessary to implement a proper sync between devices. I don't think I want to get rid of the "client-only" approach, but for full account sync, it is required to invent a user account on the server.
One could do a cheap "message delete sync" without the settings or subscription sync, but I don't think that's what people want. I think it's part of it.
Sooo, long story short: I kinda think I need to split the tickets. I do think that the order of tickets should be:

Server-side user account, with registration + login (in web app + Android)
Synchronize subscriptions (+ settings, to an extent)
Synchronize notification actions (this ticket, i.e. delete notifications, etc.)

I'll leave this for comments, and will eventually create tickets for this stuff.

2 is what I was looking for, but I realise definitely 3, as well. 1 I guess is simply a prerequisite for the rest?

Here's my main and original gripe in that area: I have a notification  channel to which I subscribe from 3 devices, mobile, tablet, desktop. Since I don't carry around all 3 permanently ;-) it's pure chance which I pick up first and subsequently delete the notification there.
Now I have to delete the same notifications again on the other 2 devices - which is kind of annoying.
I'm not sure this is covered in the above 3 bullets...
Nevertheless, as always, keep up the good work, I highly appreciate it!

I believe 3 (which is the original post) should cover exactly that.

If i set ntfy.example.com as the default, could i still use ntfy.sample.com/justthistopic?
Meaning, can i have a account in ServerA, sync to ServerA, but still get notifications from ServerB? How will ServerB handle 3. ?

If i set ntfy.example.com as the default, could i still use ntfy.sample.com/justthistopic?
Meaning, can i have a account in ServerA, sync to ServerA, but still get notifications from ServerB? How will ServerB handle 3. ?

I would imagine each server I stance would have its own sync settings. I believe Bin mentioned something about each message having a unique ID; I would imagine the server GUID would be a part of that ID to differentiate it from a message from another server.

Here's where things get confusing. "my" sync scenario/issue is with multiple clients/devices (as the title of this ticket also suggests), the latest discussion here is about multiple servers ?
2 separate aspects I think...?

I believe it's one. I have 3 ntfy i use regularly.
I access the 3 of them, via multiple PCs and smartphones.
I assume the 1st/main server will have my "account", but it will also have to keep the  settings for the other 2.

I like the idea of synchronizing subscriptions and settings between devices. It could definitely be done using 1, 2, and 3 as described above. However, I think cmeis proposed an interesting "account-less" alternative:

Regarding the settings sync between devices - how about something like this:
You choose an email address plus password. A topic name is generated as sync-<whateverhashalgorithm(email + password)>. Settings on device are encrypted with the password. And the device subscribes to the same topic.
Every change in config triggers a publish of encrypted settings, which is read and applied by the subscribed clients.

Synchronization control messages will need to be sent to all devices in any case. ntfy does a great job already of sending messages from one device to any other device that is listening for the messages 😄 So instead of creating a special user account and auth saved in the server, why not subscribe to a special topic that handles all the sync control messages?

I like the idea of synchronizing subscriptions and settings between devices. It could definitely be done using 1, 2, and 3 as described above. However, I think cmeis proposed an interesting "account-less" alternative:

Regarding the settings sync between devices - how about something like this:
You choose an email address plus password. A topic name is generated as sync-<whateverhashalgorithm(email + password)>. Settings on device are encrypted with the password. And the device subscribes to the same topic.
Every change in config triggers a publish of encrypted settings, which is read and applied by the subscribed clients.

Synchronization control messages will need to be sent to all devices in any case. ntfy does a great job already of sending messages from one device to any other device that is listening for the messages 😄 So instead of creating a special user account and auth saved in the server, why not subscribe to a special topic that handles all the sync control messages?

I like this line of thought. Simple yet efective.

Thank you all for jumping in and commenting. It looks like we all want the same thing, and that generally the 1+2+3 approach (what a great name :smile:) is well-liked, though I also kinda love the approach that @cmeis suggested (via @wunter8's comment above). I like how it's reusing ntfy's core pubsub feature for the sync feature itself.
However, I must admit that I do have an ulterior motive for the "user account" feature itself, which is that (as I mentioned on Discord/Matrix) I'd like to offer a ntfy Pro version with increased rate limits and reserved topics and such. And for such a feature to work, we'll need a user account, too. (Don't get upset, ntfy with all its features will be 100% open source and self-hostable. I'll just host it for people that don't want to self-host and charge for it, I think.)
That said, even without my ulterior motive, @cmeis's idea (while clever) might get unwieldy if it transports the actual settings data. Think of scenarios such as "device offline for > 12h" or "sum of bytes for subscriptions+settings is greater than ntfy message size". I think using a secret topic for signalling ("hey, your account has been changed") is still a great idea. But I believe that not having an actual "give me all the settings + subscriptions for this user" API endpoint is not going to work.

Yep, as I wrote (on Discord I think) there will be edge cases where my idea will fail, like devices offline for too long. Probably - while I still like my own idea 😂 - it won't work here.
The signalling part could work, but there would have to be an active polling routine anyway if the client has been offline too long.

It's something I'd like to see too in future updates. A bit annoying to have to delete the same notification on all devices.

Being one of the early adopters, this missing feature remains to be my only gripe. I have an alert topic to which I subscribe from my laptop and my mobile, depending on where I am I deleted something I've taken car of on that device. Back to the other device some time later, meeh... Granted, this is just annoying, but if messages heap up, you also have to remember which ones you actually took care of (e.g. while being away) and are garbage and which are still "hot" in a multi subscriber device environment.


Different avatars of one user in the notification widget

Describe the bug
There is a capture of user data at the time of sending the notification. Please check if other personal data (other than avatar) are also unnecessarily captured.
To Reproduce
Steps to reproduce the behavior:

Log in as user A
Add an item X to the CRUD list
Log in as user B and set him an avatar
Edit the CRUD item X
Change again the avatar for user B on other
Edit again the CRUD item X
Log in as user A
Expand the notification widget - you can see 2 new notifications from user B with two different avatars.

Expected behavior
There should be displayed current user's avatar/data
Screenshots

I think it is mainly related to the backend.
In the backend/apps/demo/notifications.py
an entry.edited_by.profile.avatar.thumbnail.url variable is sent as the notification avatar, which is a link to bucket


NullPointerException when csproj has Remove attribute

Describe the bug
When you have a csproj file that has PackageReference with a Remove attribute, DependencyCheck fails with a NullPointerException.
Version of dependency-check used
6.0.4 in Azure Devops, which is the cli version, if I'm not mistaking.
Log file
Log in reproduction steps.
To Reproduce
Steps to reproduce the behavior:
Have a csproj like this where the PackageReference with Remove attribute is the important one
<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <TargetFramework>net6.0</TargetFramework>
    <AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>
    <UserSecretsId>bad443ff-023c-47a3-85b1-70734cd44900</UserSecretsId>
    <DockerDefaultTargetOS>Linux</DockerDefaultTargetOS>
    <LangVersion>10</LangVersion>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.7.9" />
    <PackageReference Remove="Microsoft.NETCore.App" />
  </ItemGroup>

  <ItemGroup>
    <Folder Include="wwwroot\reports\" />
  </ItemGroup>
</Project>

Run a scan and see this exception in the console
[WARN] An error occurred while analyzing '/azp/agent/_work/1/s/***/***.csproj' (MSBuild Project Analyzer).
...
[INFO] Writing report to: /azp/agent/_work/1/a/dependency-check-report.html
[INFO] Writing report to: /azp/agent/_work/1/a/dependency-check-junit.xml
[ERROR] java.lang.NullPointerException

Dependency Check completed with exit code 242.
Dependency Check reports:
[ '/azp/agent/_work/1/a/dependency-check-junit.xml',
  '/azp/agent/_work/1/a/dependency-check-report.html' ]
Dependency Check failed with message "Dependency Check exited with an error code (exit code: 242)."
##[error]Dependency Check exited with an error code (exit code: 242).

And this in the log on the agent:
org.owasp.dependencycheck.analyzer.exception.AnalysisException: java.lang.NullPointerException
        at org.owasp.dependencycheck.analyzer.MSBuildProjectAnalyzer.analyzeDependency(MSBuildProjectAnalyzer.java:174)
        at org.owasp.dependencycheck.analyzer.AbstractAnalyzer.analyze(AbstractAnalyzer.java:131)
        at org.owasp.dependencycheck.AnalysisTask.call(AnalysisTask.java:88)
        at org.owasp.dependencycheck.AnalysisTask.call(AnalysisTask.java:37)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
        at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: java.lang.NullPointerException: null
        at org.owasp.dependencycheck.data.nuget.XPathMSBuildProjectParser.parse(XPathMSBuildProjectParser.java:71)
        at org.owasp.dependencycheck.analyzer.MSBuildProjectAnalyzer.analyzeDependency(MSBuildProjectAnalyzer.java:120)
        ... 7 common frames omitted

Expected behavior
The scan to complete successully.

Duplicate of #4770 - you should upgrade to DependencyCheck 7.2.0 or later

Not surprisingly.... as the only documented package reference is an Include

So how is one to know that there is actually also a "Remove" version of it (let alone be aware of what effects that would have)

The NullPointerException would be easy to fix, but proper behaviour of the analyzer will likely require to also make the "Remove" option yield the expected effect (which is fully undocumented)

Hello,
Besides the "Remove" option, there is no support for "Update". For example, the following configuration causes the NullPointerException.
  <ItemGroup>
      <PackageReference Update="Microsoft.CodeAnalysis.NetAnalyzers" Version="6.0.0">
          <PrivateAssets>all</PrivateAssets>
          <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
      </PackageReference>
  </ItemGroup>

This should be fixed with 8.2.1


Updated Romanian translations (pagination, delete confirmation modal)

@cristi-contiu it took me forever to review your work. I'm sorry. It's merged now. Thanks!


Feature 150 typo markdownmd

Feel free to merge. Thanks in advance.

Unfortunately merged direct with master. Is that a problem?

Merging directly into master is a problem as other people working in the Repo will always pull the most up to date dev and branch off from there. Your feature will not be in their Lokal branch as it is implemented in master. This may lead to merge conflicts.
Moreover you might break a working version on master. Usually master is not touched until development works on dev are done, tested and in working condition. Then dev gets merged into master.

@Noggi36 i will Revert the merge into master. Should restore master.


Update readme - installer download link

Just a heads-up, the link for the installer download in your readme is pointing to the v0.7.2 release

ooh. Thanks!


RFC: Add autofit all columns feature to DataGrid control

Request for DataGrid Auto-Fit Columns Functionality with Image Support
🔦 Context
I would like to know if the DataGrid control can achieve an autofit all columns feature to automatically resize columns to fit the content across all columns. The absence of this feature affects the display, making it necessary to manually resize each column to avoid clipping of text or images. Additionally, I plan to add image support to better illustrate this functionality and enhance the visual representation of data within the grid.
Alternatives Considered
I’ve reviewed alternatives such as manually adjusting column widths or setting a fixed width, but these options are not adaptive to content changes and reduce flexibility in the UI design.
💻 Examples
Below are examples of how the autofit all columns feature could function:
Text Auto-fit: Automatically adjust each column width based on text length, preventing text from clipping or being truncated.
Image Support: Include the ability to auto-fit columns to accommodate images, where the column width adjusts to fit the entire image.

I will provide screenshots or images showing the current behavior versus the expected behavior with autofit all columns enabled for reference.

https://demos.telerik.com/blazor-ui/grid/column-resizing

We already support this for text columns: https://fluentui-blazor.net/DataGrid#autofit
We don't have plans to do this for columns containing images.

"Apologies for not thoroughly checking the examples on the webpage earlier—I missed that text columns already support auto-fit. Thank you for the clarification!"

We already support this for text columns: https://fluentui-blazor.net/DataGrid#autofit
We don't have plans to do this for columns containing images.

"Apologies for not thoroughly checking the examples on the webpage earlier—I missed that text columns already support auto-fit. Thank you for the clarification!"


Error pages

Added error handlers and 404/500 pages to buyer app

Error page content from Roz

Tested with Debug mode off - looks good.


Container cloning changes the case for blob metadata keys

Storage Explorer Version: 1.12.0
Build Number: 2020016.10
Platform/OS: Windows
Architecture: ia32
Regression From:  not sure
Bug Description
When cloning an existing blob container to a new container, the metadata on the blobs that are copied from the source container to the destination container is changed. Specifically the case on the metadata key values is changed to have the first letter capitalized followed by all lowercase.
Steps to Reproduce

Create a container in blob storage "source"
Upload a new blob "myBlob" to "source"
Add metadata to the blob from step 2, key = "mixedCase", value = "someValue"
In storage explorer right click on "source", select "Clone with New Name"
Enter "destination" as new container name and click Clone
Wait for data transfer to complete
Inspect the metadata on "myBlob" in the "destination" container. Notice that the case of the entry for "mixedCase" is now "Mixedcase"

Expected Experience
metadata keys should keep the same case in the destination blob as is in the source blob
Actual Experience
metadata keys do not have the same case
Additional Context
This presents an issue since C# clients for Azure Storage libraries make metadata available in Dictionary objects and trying to access a key/value pair with a case-sensitive key will throw an exception.

We already have an issue tracking this. See #2573 for discussion there. We are currently working on a fix for this right now.

Thanks. Didn’t see that when I ran a search for any open tickets.
From: JasonYeMSFT<EMAIL_ADDRESS>Sent: Tuesday, February 18, 2020 4:50 PM
To: microsoft/AzureStorageExplorer<EMAIL_ADDRESS>Cc: Salomon Gorin<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [microsoft/AzureStorageExplorer] Container cloning changes the case for blob metadata keys (#2633)
We already have an issue tracking this. See #2573https://nam02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmicrosoft%2FAzureStorageExplorer%2Fissues%2F2573&data=01|01|sgorin%40crystalfunds.com|2f4ba97e8f6740c99ff408d7b4bc7c74|f07e54bf48fc4f21bc081c7ffe19e9da|0&sdata=VJnE3A6fisfc2u3DVy3MX%2BiuY1c3iMaBNWpRBzVR1mg%3D&reserved=0 for discussion there. We are currently working on a fix for this right now.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://nam02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmicrosoft%2FAzureStorageExplorer%2Fissues%2F2633%3Femail_source%3Dnotifications%26email_token%3DAC632W6PTWJT7XVMMTVBGVTRDRJX7A5CNFSM4KVNSWHKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEMFNCHY%23issuecomment-587911455&data=01|01|sgorin%40crystalfunds.com|2f4ba97e8f6740c99ff408d7b4bc7c74|f07e54bf48fc4f21bc081c7ffe19e9da|0&sdata=Pf3iF%2BU2FmLhCJsKX2FcS7%2BPQME2ogVsk64o1fdvpOk%3D&reserved=0, or unsubscribehttps://nam02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAC632WZRIA5RY2KKHHQBKWLRDRJX7ANCNFSM4KVNSWHA&data=01|01|sgorin%40crystalfunds.com|2f4ba97e8f6740c99ff408d7b4bc7c74|f07e54bf48fc4f21bc081c7ffe19e9da|0&sdata=3m7SQk3mtgDZ3JKLEq7CXEsvWcVC%2Bmf5oAg6a7N09xI%3D&reserved=0.

Salomon Gorin, CISSP
CTO
Crystal Capital Partners, LLC
1111 Kane Concourse, Suite 514
Bay Harbor Islands, FL 33154
Tel.<PHONE_NUMBER>
Email<EMAIL_ADDRESS>Web. https://www.crystalfunds.com
MCSD: Azure Solutions Architect
MCSD: Web Applications
MCSE: Cloud Platform and Infrastructure

This email (including any attachments) is intended only for the use of the addressee; should not be construed as an offer to sell or a solicitation to buy any interest in any investment vehicle; may contain information that is privileged and/or confidential; and may not be disseminated or altered. If you received this email in error, please destroy it immediately.


[Feature] Publish and use SingleFile flag for a single executable output

Describe the solution you'd like
The GitHub action build process is using dotnet build to compile the code. For final products, the command should be dotnet publish, that will also perform a series of optimizations. One such possible optimization is --PublishSingleFile=true that will include all the DLLs inside the executable itself. Much cleaner.

change the .github/workflows/build.yml  to use dotnet publish
include --PublishSingleFile=truein the command

I've tried this before and it caused issues in loading assemblies at runtime, so not high on my priority list.

Closing for now

@aelij , i dont understand why closing the issue.
dotnet publish is the intended way for releasing .Net apps, not just build. It might be not in the priority list, but it's a potencial source of performance.
the --PublishSingleFile=true is optional (and should be only done for dotnet 6+), despite being a good quality enhancement forthe final build.

I'm already using it, see https://github.com/roslynpad/roslynpad/blob/main/deploy/CreatePackages.ps1#L102
The build yaml your referred to is only used to validate PRs.


Moved angular into a rubygem

@jrafanie ^^

:100: @skateman is on a roll...  This is amazing.

:heart_eyes:


When first connection report to the panel it's say not responding

Hi brother,
I have tested your last pre-released compiled version in my Windows 10 to vmware installed windows 10 version.When I clicked the server and report to the panel then my panel say( not responding) then buffer some times and it's ok after connection.
My request if you like then add these options most of them was in your Lime Rat (I love that so much <3).
Search client by name or IP
Client note
Client color
Client folder
Copy IP or  HWID
Upload and execute ( from URL/Disk)
Show message in panel that file has been executed(Like IM5 had)
Mass client updater
Kind regards
May Allah bless you <3 <3 <3

I apologize  for my ignorance.Now,I have test your latest version (AsyncRAT v0.5.4H) and it doesn't show not responding of buffer courser any more :).But file manager is little bit slower that previous versions and remote Desktop also a problem.Mouse click  doesn't work.Hope next release it will be better.
Jazāk Allāhu Khayran.
May help you

@NYAN-x-CAT-is-My-Brother execute from URL or Disk is already a feature, so is mass client updates (updated can be found In tasks or you can press CTRL + A to select all clients) as for client folders, colors ect I believe that relied on Metro Framework? Also last I checked I believe client folders where being worked on (don't quote me on that not 100% sure).


Translate Pydantic models into a regular expression that accept the corresponding YAML

I love the idea, yaml uses fewer syntactic tokens and allows language models to generate without needing to keep track of as much "nesting" / context.
Here's what I'm thinking for a strategy, would love to hear your thoughts:
We should refactor fsm/json_schema.py so it uses a class-based approach with handler methods for each type. Then we can subclass to implement the different behavior in yaml.
class JSONSchemaRegexGenerator:
    def __init__(self):
        self.handlers = {
            "string": self.handle_string,
            "object": self.handle_integer,
            ...
        }

    @classmethod
    def get_pattern(cls, schema):
        return cls().handle_node(schema)

    def get_pattern(self, node):
        handler = self.handlers.get(node["type"], self.handle_default)
        return handler(node)

    def handle_string(self, node):
        return STRING

    def handle_array(self, node):
        ...
        return rf"\[{whitespace_pattern}({'|'.join(regexes)})(,{whitespace_pattern}({'|'.join(regexes)})){num_repeats}){allow_empty}{whitespace_pattern}\]"

class YAMLSchemaRegexGenerator(JSONSchemaRegexGenerator):
    def handle_array(self, node):
        """handle format for yaml arrays:
            - string1
            - string2
        """
        ...
``

This would make the code more readable, extensible, reduce technical debt, and make it so we don't have to have conditional handling for a passed `is_yaml` for many rules within `to_regex()`

I can get on board with this. To follow ast.NodeVisitor's naming scheme we could name the handlers visit_X. I think we should first implement a first version of the converter to YAML with only a few primitives before refactoring.


IAM Service is not enabled for Forseti project fixture

When running kitchen converge in the foreseti module, the following error occurred.  The intent is to exercise the integration tests ahead of a release of the module with 0.12 compatibility.
See also:

#242
https://github.com/forseti-security/terraform-google-forseti/issues/183
https://github.com/forseti-security/terraform-google-forseti/issues/203

Error:
       Error: Error creating service account: googleapi: Error 403: Identity and Access Management (IAM) API has not been used in project<PHONE_NUMBER>26 before or it is disabled. Enable it by visiting https://console.developers.google.com/apis/api/iam.googleapis.com/overview?project=437452312726 then retry. If you enabled this API recently, wait a few minutes for the action to propagate to our systems and retry., accessNotConfigured

         on ../../../modules/client/main.tf line 205, in resource "google_service_account" "forseti_client":
        205: resource "google_service_account" "forseti_client" {

       Error: Error creating service account: googleapi: Error 403: Identity and Access Management (IAM) API has not been used in project<PHONE_NUMBER>26 before or it is disabled. Enable it by visiting https://console.developers.google.com/apis/api/iam.googleapis.com/overview?project=437452312726 then retry. If you enabled this API recently, wait a few minutes for the action to propagate to our systems and retry., accessNotConfigured

         on ../../../modules/server/main.tf line 275, in resource "google_service_account" "forseti_server":
        275: resource "google_service_account" "forseti_server" {

>>>>>> ------Exception-------
>>>>>> Class: Kitchen::ActionFailed
>>>>>> Message: 1 actions failed.
>>>>>>     Converge failed on instance <shared-vpc-local>.  Please see .kitchen/logs/shared-vpc-local.log for more details

Note, I think this is because I executed create and converge back to back with:
kitchen create shared-vpc-local && kitchen converge shared-vpc-local

Had there been some time between create and converge this error likely would not have occurred.

Sounds like this is fixed?


Any chance can 2.8.0 support for Sketch Tints ?

Sketch tints can easily change any symbol or group 's color. It's a shame that Measure cannot recognize the tints color. Any chance can 2.8.0 support for Sketch Tints ?

Hi @alexandwich
I will not be adding any more features to this fork, sorry.


Bug fix: #25691

Fixes: https://github.com/zulip/zulip/issues/25691

Screenshots and screen captures:

Self-review checklist

[ ] Self-reviewed the changes for clarity and maintainability
(variable names, code reuse, readability, etc.).

Communicate decisions, questions, and potential concerns.

[ ] Explains differences from previous plans (e.g., issue description).
[ ] Highlights technical choices and bugs encountered.
[ ] Calls out remaining decisions and concerns.
[ ] Automated tests verify logic where appropriate.

Individual commits are ready for review (see commit discipline).

[ ] Each commit is a coherent idea.
[ ] Commit message(s) explain reasoning and motivation for changes.

Completed manual review and testing of the following:

[ ] Visual appearance of the changes.
[ ] Responsiveness and internationalization.
[ ] Strings and tooltips.
[ ] End-to-end functionality of buttons, interactions and flows.
[ ] Corner cases, error conditions, and easily imagined bugs.

Since we're now passing more information into the event, a couple of tests that attempt to confirm we're receiving data that looks the way it used to look are failing.
You will need to update test_stream_messages_unread_mention and test_pm_messages_unread_mention to include mentioned_me_directly: True in their responses
Just add mentioned_me_directly=True under both of the mentioned=Trues for the failing tests (here and here)

@timabbott (original issue creator), would you mind taking a look at this PR (or tagging someone who could)?

We generally can't review PRs unless they follow our reviewable PR guidelines: https://zulip.readthedocs.io/en/latest/contributing/reviewable-prs.html

I created a different pull request for this issue (#28126).


FQDN: transition to asynchronous ipcache APIs

We're almost done with the "legacy" IPCache APIs. The biggest remaining holdout is FQDN policy. For good reason: FQDN policy has the most complex lifecycle and many-to-many mappings everywhere.
This issue proposes a new architecture for the FQDN selector system. It aims for a simpler lifecycle on updates and some code removal.
Background
The FQDN policy system has three main components:

DNSCache: A forward and revers mapping of name -> ips (along with some expiration information)
NameManager: A list of currently active FQDN selectors
SelectorCache: Generates a set of allowed identities for a given selector

Proposal
Right now, identities for FQDN-policy CIDRs are generated directly by the NameManager and passed in to the SelectorCache.
My proposal would be to move identity management to each Selector within a SelectorCache. The basic flow would be :

A FQDN selector is created. It calls NameManager.RegisterForFQDNUpdates() and preloads its cache from existing known names
A DNS response is intercepted.

The NameManager calls selector.SetIPs(name, ips)
The selector calls ipcache.UpsertMetadata(ip)
Any orphaned IPs have their metadata removed
The selector determines the set of relevant identities

The TTLs run out, and some IPs are removed. The NameManager calls selector.SetIPs(name, nil) which causes the metadata to be removed.

An aside: synchronicity
There is an impedance mismatch between the asynchronous ipcache APIs and the DNS proxy. It attempts to ensure all identities are plumbed before returning the DNS response to the client. We need to build in a way to wait for identities to be made available. Additionally, we should not wait when desired identities are already fulfilled. This will require some API changes to the ipcache.

Thanks for putting together this proposal! I'd love to see this logic move over to the new async API, but yes I also agree that this is one of the trickier cases to handle.

Right now, identities for FQDN-policy CIDRs are generated directly by the NameManager and passed in to the SelectorCache.

Hmm, this shouldn't be the case, though I think this is not critical for reasoning about the proposal. For some background, commit b10797c7d87b5b9e0c85e4a113fe302167b48933 (Nov 2021) aimed to move that over to the fqdn selectors. For some further background to that, a couple of years ago we had some identity leaks from FQDN paths that were causing issues, so we needed as minimal of a fix as we could make it while ultimately reworking the code sufficiently enough to allow us to balance the reference counting. Chris and I spent a bunch of time around this, and commit de10e82639cc50478d6d2bb1814c50bd559cd419 (Oct 2021) was one of the other key changes in that area. Even at that time I wasn't fully convinced exactly where the identity reference counts should belong.. that commentary may provide some additional context to think about this problem:
Although I can see arguments for perhaps associating these references
with the NameManager itself as it tracks the usage of each IP for FQDN
policy and hence could tie the reference to the lifetime of the usage of
the IP overall in the agent, so far the code has implicitly tied the
allocation of each identity to its usage in each selector. As such, this
commit attempts to simply acknowledge this reality and extend the
update/release of the selectors in the NameManager to also release those
same references that each selector holds

A DNS response is intercepted.

I guess the missing (implied) step immediately after this is for the DNS proxy to inform the name manager, and that code already exists + wouldn't change?

The NameManager calls selector.SetIPs(name, ips)

Is the full set of the ips? Maybe to add some complication, it's technically possible for different endpoints to use different DNS servers and get different results here.. actually come to think of it I'm not entirely sure whether we are fully consistent on this. I know we have per-endpoint name lists but I'm a little rough on the details of how those boil down into the selectors and apply to the policies across other endpoints. I have a niggling thought at the back of my head that a SetIPs API could discard good state, but on the other hand the NameManager should know everything there is to know about the names, so I can't express a specific issue with such an API.
One other aspect I didn't see mentioned is restore. We store & restore the Name<->IP mappnigs across restart, since that information cannot be reconstructed another way. That said, I think this integrates pretty easily into the proposal; part of the name manager recreation would involve associating the IPs. That said, if the name manager is longer lived and those restored prefixes need identities, then associating the ipcache metadata updates with the selectors is a little awkward.

Any orphaned IPs have their metadata removed

Note that metadata is stored by prefix, so part of the SetIPs would need to identify the delta in ip set and apply the removal. Maybe this was implied by the proposal, just calling it out.

The selector determines the set of relevant identities

Related to this, the ipcache does already have logic to inform the selectorcache when new identities are updated. It doesn't have the specific context about which particular selectors may be impacted by the identity allocation though, so I believe this means it just has to go through all the selectors and apply them to the new identity in order to update the selectorcache. On the other hand from the DNS proxy -> FQDN subsystem the selector is already known, so this proposal suggesting the selector should be responsible for this step feels like it should be efficient. Keeping this management in fqdn subsystem can make it much easier to manage the corresponding identities rather than relying on the ipcache, at the expense of splitting this logic across different parts of the codebase. On the other hand, with ipcache doing the async allocation, there needs to be a notification mechanism anyway, so we might consider just pushing this responsibility purely to the ipcache (?)

We need to build in a way to wait for identities to be made available. Additionally, we should not wait when desired identities are already fulfilled.

Roughly speaking I figured we could leverage the aux parameter to pass in either some direct synchronization mechanism such as channel/waitgroup/etc, or maybe a pointer for an "ipcache revision" number and then the caller could call something like ipcache.WaitForRevision(r) which would return after revision r has been "reached", ie the set of requested ipcache changes have been fully plumbed (presumably both to the ipcache itself and also into the policymaps of the endpoints? TBD).

Not sure how helpful it is, but during recent customer issues related to this, I've thrown together this diagram of the flow of control per DNS request: https://drive.google.com/file/d/1WSVnvWygoNltNZa-vLWM9KhVwHfyVxOm/view?usp=drive_link (it's a largeish svg, GH preview couldn't handle it).
One thing I didn't see mentioned in the proposal is the split of per-EP DNSHistory and the global NameManager. The explanation in https://github.com/cilium/cilium/blob/f911b128f3dfaa54165ba81d20136a7d6b2dfd61/pkg/fqdn/doc.go might not be fully up to date anymore, but the gist of it still holds. Specifically, the
// === Caching, Long-Lived Connections & Garbage Collection ===
....
//   - Keep a per-Endpoint cache that can be stored to disk and restored on
//     startup. These caches apply TTL expiration and limit the IP count per domain.
//   - Keep a global cache to combine all this DNS information and send it to the
//     policy system. This cache applies TTL but not per-domain limits.
//     This causes a DNS lookup in one endpoint to leak to another!
//   - Track live connections allowed by DNS policy and delay expiring that data
//     while the connection is open. If the policy itself is removed, however, the
//     connection is interrupted.

part is relevant. Expiration of DNS TTL only expires the IP name mapping from the per-EP cache, IIRC. Actual expiration happens via Conntrack GC once it's certain that no live connections exist.
I'm not sure I understand

The TTLs run out, and some IPs are removed. The NameManager calls selector.SetIPs(name, nil) which causes the metadata to be removed.

To me, this doesn't seem to work for S3. In the S3 case, you can expect all CoreDNS pods to have a different set of short-lived IPs for s3.amazonaws.com. Thus, it seems we'd need to at least keep track of which IPs for name expired, and remove those, not nil the whole selector. Also, this shouldn't happen as soon as TTLs of the DNS records run out, but only once the relevant DNSZombies are no longer alive.

Thanks all for the feedback. I realized there is potentially a better approach: to put identity management squarely on the shoulders of the NameManager. Then, a FQDN selector could just becomes a "bag" of cidr:xxxx/32 labels.
This matches well with the existing flow, where the NameManager already manages all aspects of the DNS policy lifecycle.
Let me know what you think, and I'll start prototyping this.

I just realized there is a fundamental issue with using the asynchronous ipcache apis during startup: we will potentially block DNS responses for an arbitrarily long time while k8s caches are synchronized. I'm looking for a good potential solution to this.

@bimmlerd The plan is to change very little about the GC flow. Hopefully we can just centralize all identity management in the NameManager but keep the inputs (allocation, dns request, GC) the same.


Increase/Decrease Brightness?

Hey, here's a quick question:
Is it possible to increase/decrease brightness/color temp, like in a HomeAssistant node as below:

Thank you :)

See image. This is an example from my NodeRed

Not sure I get it.
But what I meant is to increase the brightness by 10% compared to the current value.
On the image above you input directly a max value

The node doesn't support adjusting brightness by a percent. If you want to do something like that I suggest just sending JSON directly to the WLED device using the built-in HTTP and JSON nodes. The API is relatively straightforward: https://kno.wled.ge/interfaces/json-api/.


Docker compose with docker as container runtime

I am trying to run docker compose file with container runtime as docker.  Aim is to  better package application with k3s
Docker compose file is as follows
version: '3'
services:
  server:
    image: rancher/k3s:v0.6.1
    command: server --disable-agent --docker
    environment:
    - K3S_CLUSTER_SECRET=somethingtotallyrandom
    - K3S_KUBECONFIG_OUTPUT=/output/kubeconfig.yaml
    - K3S_KUBECONFIG_MODE=666
    volumes:
    - k3s-server:/var/lib/rancher/k3s
    - /:/rootfs
    - /var/run:/var/run:rw
    - /sys:/sys
    - /var/lib/docker/:/var/lib/docker
    - /run:/run
    # This is just so that we get the kubeconfig file out
    - .:/output
    ports:
    - 6443:6443

  node:
    image: rancher/k3s:v0.6.1
    command: agent  --docker
    volumes:
    - k3s-server:/var/lib/rancher/k3s
    - /:/rootfs:ro
    - /var/run:/var/run:ro
    - /sys:/sys:ro
    - /var/lib/docker/:/var/lib/docker

    privileged: true
    depends_on:
    - server
    environment:
    - K3S_URL=https://server:6443
    - K3S_CLUSTER_SECRET=somethingtotallyrandom
    # Can also use K3S_TOKEN from /var/lib/rancher/k3s/server/node-token instead of K3S_CLUSTER_SECRET
    #- K3S_TOKEN=K13849a67fc385fd3c0fa6133a8649d9e717b0258b3b09c87ffc33dae362c12d8c0::node:2e373dca319a0525745fd8b3d8120d9c

Following is error received.
node_2    | I0630 19:09:13.320886       1 docker_service.go:271] Setting cgroupDriver to cgroupfs
node_2    | F0630 19:09:13.321006       1 server.go:263] failed to run Kubelet: failed to create kubelet: failed to listen on "unix:///var/run/dockershim.sock": failed to unlink socket file "/var/run/dockershim.sock": read-only file system
server_1  | time="2019-06-30T19:09:13.335102714Z" level=info msg="error in remotedialer server [400]: websocket: close 1006 (abnormal closure): unexpected EOF"
k3s_node_1 exited with code 255
k3s_node_2 exited with code 255

Is it possible to execute k3s such with such configuration?

It should be possible with the correct configuration, it looks like failed to unlink socket file "/var/run/dockershim.sock": read-only file system is caused by using a node config with volume /var/run:ro

Is this possible? I'd like to do this as well, but I'm hitting one wall or another no matter what I try?

Closing due to age. Would recommend using k3d instead of docker compose.


HTML does not show \pnum

\pnum{}s are swallowed by HTML output. I use HTML output as CWG really wants to have strikethrough/underline, which doesn't work in PDF, see #19 . But not having paragraph numbers will make CWG at least as unhappy... Whatever is easier to fix (also taking into account #18 - maybe adding underline / strikethrough to PDF is simpler after all?)

This?
diff --git a/template/diff.py b/template/diff.py
index 0369ea6..2ec922c 100755
--- a/template/diff.py
+++ b/template/diff.py
@@ -27,8 +27,12 @@ More new paragraphs
 """

 import panflute as pf
+import re

 def action(elem, doc):
+    if isinstance(elem, pf.RawInline) and elem.format == 'tex' and '\pnum{' in elem.text:
+        repl = re.sub(r"\\pnum{([^}]+)}", "<small>(\\1)</small>", elem.text)
+        return pf.RawInline(repl, 'html')
     if not isinstance(elem, pf.Div) and not isinstance(elem, pf.Span):
         return None

This is fixed by a pnum span element introduced in 315381b.
Specify the paragraph number like this:[2]{.pnum}.
Given the following markdown:
[2]{.pnum} _Requires:_ For each valid pack `m` _e_(`m`) shall be a valid
expression. All such expressions shall be of the same type and value category;
otherwise, the program is ill-formed.

[3]{.pnum} _Returns:_ _e_(`m`), where `m` is the pack for which `m`_~i~_ is
`vars`_~i~_`.index()` for all $0 \leq i < n$. The return type is
`decltype(`_e_(`m`)`)` [for the first form]{.add}.

The generated HTML is:


Reverted "Fixed #26140 -- Suppressed MySQL warning when inserting binary content"

This reverts commit 204e00c0c57c34528157a739389b6935e4af2f36 as mysqlclient
1.3.8 is now handling the issue.

Hm, still doesn't entirely work. Will look more tomorrow.

In the short term, I would fix the mysqlclient version to 1.3.7 in the test requirements. We'll then see how the mysqlclient maintainer reacts about the regressions (there are two differents).


[Bug]:

All of the following criteria must be met

[X] All Requirements must be installed.
[ ] Full Latest.log file included. If no file exists then leave this unchecked and state so.

All of the following are optional to answer

[ ] Tried reinstalling the Game.
[ ] Tried reinstalling MelonLoader.
[X] Tried restarting PC.
[X] Was able to see the Start Screen.

Describe the issue.
When I opened Vrchat I opened Steam to login and I kept clicking Steam to login but it never worked so I restarted my pc and reopened Vrchat and Steam nothing ever worked.
Did you attach your log file?

[ ] Yes, I attached my log file to the text box above.
[X] No, I could not find a log file at {Game_Directory}\MelonLoader\Latest.log

I am closing this and marking it as invalid.
You provided very little information about the issue or what you are trying to do.
Not only that if you can see the MelonLoader Start Screen then there is a log file which you did not attach.


Registering storyboard view controller on a child container of "defaultContainer"

Hello, so I have the following view controller class, which is actually my initial view controller in storyboard:
class RootViewController: UIViewController {
    var presenter: RootPresenter?
}

On the "SwinjectStoryboard" extension, I do the following:
class func setup() {
    let childContainer = Container(parent: defaultContainer)
        childContainer.registerForStoryboard(RootViewController.self) { (resolver, controller) in
            let presenter = resolver.resolve(RootPresenter.self)
            controller.presenter = presenter
        }
        childContainer.register(RootPresenter.self) { _ in
            RootPresenter()
        }
}

Resolver closures are never called, could you please help me understand why?
Note: When I register directly on "defaultContainer" (not on a child of it), it works ok.
Thank you in advance,
Alin

Is this an issue or is the lib being misused somehow?

I think you need to pass childContainer to a initializer of SwinjectStoryboard.

@yoichitgy could you be more specific, with an example? It would help.
From the swiftInject docs, what @alynmuntean posted should work - https://github.com/Swinject/Swinject/blob/master/Documentation/ContainerHierarchy.md .

I think unit test code passing a container to SwinjectStoryboard can be an example.

Only defaultContainer is automatically tied to SwinjectStoryboard. The other containers should be passed to SwinjectStoryboard manually.

So the idea is to create a new SwinjectStoryboard, which basically means a new Storyboard object, each time we want to call 'registerForStoryboard' on a childContainer?

I think it's each time you call a set of registerForStoryboard methods on a container if you don't use defaultContainer.

I'm sorry that I couldn't take more time to see your comments and code. Currently Swinject project has too many things to do.
Would you let me know if the issue is resolved?

 This won't work as a parent doesn't resolve it's child(s) (docs: container hierarchy). By explicitly instantiating your storyboard you can pass your parent to your child. Which will then use your child instead of defaultContainer. If you want to, you can still use the SwinjectStoryboard extension for injection in your parent container.
I had a similar issue for which I created a root configuration class which does root setup (plist reader, etc) and an app configuration class which resolves services, viewmodels, ..

Without the storyboard extension

let fooConfig = FooConfig()
let fooChildConfig = FooChildConfig(fooConfig.container)
let storyboard = SwinjectStoryboard.create(name: "Main", bundle: nil, container: fooChildConfig.container)
window.rootViewController = storyboard.instantiateInitialViewController()

With storyboard extension

let fooConfig = FooConfig(Swinjectstoryboard.defaultContainer)
let storyboard = SwinjectStoryboard.create(name: "Main", bundle: nil, container: fooConfig.container)
window.rootViewController = storyboard.instantiateInitialViewController()

Thanks @MathiasRoelants for writing the details about SwinjectStoryboard with a custom container, and sharing your experience with the examples.

@alynmuntean, did your question get clear?

@yoichitgy Yes, sorry that I forgot to answer.
@MathiasRoelants Thank you for the example!


Test PR for access

@jbobotek - what are you trying to test?

I'm trying to set up a pipeline for the Azure IoT C SDK team so that we can have some continuous integration running. However, I have not been able to get it to show as an option to run a pipeline on. I'm assuming it's an access issue, which is why I was seeing if I had contributor or merge permissions for this repo. These may be required to initialize a pipeline. Keeping @ericwol-msft @danewalton posted too.

As an aside, @danieljurek, @weshaggard, interestingly this PR causes CI legs to fail.
Even though we have /build in a our .gitignore and generally this shouldn't happen, I am wondering if we should add some robustness to this check and either clean/delete any existing /build folder on the CI machine before creating a new one, or continue using the existing one rather than failing:
https://github.com/Azure/azure-sdk-for-c/blob/bc577de6d8a601f845e3b695dca26e5f88ee1f8c/.gitignore#L300-L301
https://github.com/Azure/azure-sdk-for-c/blob/c6d381ef51168434a0a45db66548580d668b85b8/eng/pipelines/templates/steps/cmake-build.yml#L5-L6
https://dev.azure.com/azure-sdk/public/_build/results?buildId=506083&view=logs&j=65a3cc1a-1ab3-5128-7575-715a1aa65eff&t=1c18bbb5-6350-5432-f724-1a6db161bc91
/bin/bash --noprofile --norc /home/vsts/work/_temp/bf2f2eb1-98a6-4528-b2f9-9387331e46c3.sh
mkdir: cannot create directory ‘build’: File exists

##[error]Bash exited with code '1'.

Or do you think that would be an undesired behavior?
Use mkdir -p instead?
https://stackoverflow.com/a/22738025

We should probably make the build pipelines more resilient if the build directory already exists.
@jbobotek what sort of pipeline are you trying to setup? If in Azure DevOps which org are you using as this is already hooked up to the azure-sdk org and you cannot setup pipelines with automatic triggers in multiple orgs.

We should probably make the build pipelines more resilient if the build directory already exists.

https://github.com/Azure/azure-sdk-for-c/issues/1122

/azp run c - client - tests

@jbobotek Can this PR be closed?

Yes.


DurationBetweenEvaluator does not handle case with mixed Date and DateTime inputs

diff --git a/cql-engine/src/main/java/org/opencds/cqf/cql/elm/execution/DurationBetweenEvaluator.java b/cql-engine/src/main/java/org/opencds/cqf/cql/elm/execution/DurationBetweenEvaluator.java
index 41660c85..9cacb1b0 100644
--- a/cql-engine/src/main/java/org/opencds/cqf/cql/elm/execution/DurationBetweenEvaluator.java
+++ b/cql-engine/src/main/java/org/opencds/cqf/cql/elm/execution/DurationBetweenEvaluator.java
@@ -63,6 +63,19 @@ public class DurationBetweenEvaluator extends org.cqframework.cql.elm.execution.
duration(left, rightUncertainInterval.getEnd(), isWeeks ? Precision.WEEK : precision), true
).setUncertain(true);
}
+

       /*

        * From comments above: When this operator is called with both Date and DateTime inputs, the Date values will be implicitly converted to

           * DateTime as defined by the ToDateTime operator.

           * This scenario was not handled

           * Here's a workaround - better approach might be to re-use ToDateTime code rather than in-lining it here

        */

       if (left instanceof DateTime && right instanceof Date)

          right = new DateTime(TemporalHelper.getDefaultOffset(), ((Date) right).getDate().getYear(), ((Date) right).getDate().getMonthValue(), ((Date) right).getDate().getDayOfMonth(), 0, 0, 0, 0);

       if (left instanceof Date && right instanceof DateTime)

          left = new DateTime(TemporalHelper.getDefaultOffset(), ((Date) left).getDate().getYear(), ((Date) left).getDate().getMonthValue(), ((Date) left).getDate().getDayOfMonth(), 0, 0, 0, 0);

       if (left instanceof DateTime && right instanceof DateTime) {
           return isWeeks

As per the spec, the translator should promote the Date to DateTime.
Is this causing an error for you? Could you provide more context?

Error message:
Execution of CQL or ELM statement named [Adult] failed due to error:
Cannot perform DifferenceBetween operation with arguments of type 'org.opencds.cqf.cql.runtime.DateTime' and 'org.opencds.cqf.cql.runtime.Date'.
CQL:
define Adult:
     AgeInYearsAt(Today()) >= 18

ELM:
     <def name="Adult" context="Patient" accessLevel="Public">
         <expression xsi:type="GreaterOrEqual">
            <operand precision="Year" xsi:type="CalculateAgeAt">
               <operand path="birthDate.value" xsi:type="Property">
                  <source name="Patient" xsi:type="ExpressionRef"/>
               </operand>
               <operand xsi:type="Today"/>
            </operand>
            <operand valueType="t:Integer" value="18" xsi:type="Literal"/>
         </expression>
      </def>

Here's the change I made to get it to work locally. I am not able to do PRs to directly send over these changes for your review.
diff --git a/cql-engine/src/main/java/org/opencds/cqf/cql/elm/execution/DurationBetweenEvaluator.java b/cql-engine/src/main/java/org/opencds/cqf/cql/elm/execution/DurationBetweenEvaluator.java
index 41660c85..9cacb1b0 100644
--- a/cql-engine/src/main/java/org/opencds/cqf/cql/elm/execution/DurationBetweenEvaluator.java
+++ b/cql-engine/src/main/java/org/opencds/cqf/cql/elm/execution/DurationBetweenEvaluator.java
@@ -63,6 +63,19 @@ public class DurationBetweenEvaluator extends org.cqframework.cql.elm.execution.
duration(left, rightUncertainInterval.getEnd(), isWeeks ? Precision.WEEK : precision), true
).setUncertain(true);
}
+

Here's the code snippet that was added locally (the diff above didn't show up correctly):

            /*
             * From comments above: When this operator is called with both Date and DateTime inputs, the Date values will be implicitly converted to
    		 * DateTime as defined by the ToDateTime operator.
    		 * This scenario was not handled
    		 * Here's a workaround - better approach might be to re-use ToDateTime code rather than in-lining it here
             */

            if (left instanceof DateTime && right instanceof Date)
            	right = new DateTime(TemporalHelper.getDefaultOffset(), ((Date) right).getDate().getYear(), ((Date) right).getDate().getMonthValue(), ((Date) right).getDate().getDayOfMonth(), 0, 0, 0, 0);

            if (left instanceof Date && right instanceof DateTime)
            	left = new DateTime(TemporalHelper.getDefaultOffset(), ((Date) left).getDate().getYear(), ((Date) left).getDate().getMonthValue(), ((Date) left).getDate().getDayOfMonth(), 0, 0, 0, 0);

@raman-sv , what version of the CQL-to-ELM translator are you using? The translator should be implicitly converting so that both arguments are the same type so that the engine doesn't have to deal with the added complexity of type testing those cases, and there are some known issues around this, but it sounds like maybe there is still a problem with the translator?

@brynrhodes, I'm using version 1.3.14 of cql-to-elm.
		<dependency> 			<groupId>info.cqframework</groupId> 			<artifactId>cql-to-elm</artifactId> 			<version>1.3.14</version> 		</dependency>

Digging further, this is actually a problem with the Base provider in that it is returning a DateTime from a FHIR.date type.