LSTM version

It is a great work.  Is there any plan to develop a LSTM version?

Not immediately, but it shouldn't be hard to implement it in TF.
If you have any version with LSTM, please let us know.

Is it possible to implement lstm in this ga3c architecture?
RNN (lstm) required serialize input, but based on this ga3c architecture which push exp to queue from multiple agent would not make the 'exp' serial input. Thus, batch input for training thread would be mixed and cannot be used as RNN training input.
Correct me if I am wrong.
Thanks

Should be straight forward, as the state for Atari games is already defined as 4 frames together (See section 4.1 of the original DQN paper - https://www.cs.toronto.edu/~vmnih/docs/dqn.pdf) and that is what GA3C uses. If you supply those frames serially, the LSTM version of A3C will work.

Implementing the LSTM version without lots of code change depends on how long the sequences of training data should be. If the sequence is as long as TMAX frames (which I think is the case) then the current architecture works since Trainers receive sequences batches of TMAX frames. But if the training data should be any longer (i.e. multiple TMAX frames merged together) it becomes a little bit more complicated.

in case of LSTM, shouldn't the batch be organized in (N, T, C, H, W) format?

@etienne87 you are correct. But please look at here. What Trainer receives is in (N, T, C, H, W) format but it merges the T dimension to have data in (N, C, H, W) format. In a recurrent model these concatenations are unnecessary.

@mbz, thanks for pointing to this. Now i am super confused with this part of the code! can you take a look at #6 ? I don't see how these concatenations are working at all!

LSTM would require reset_state func to address a specific row from the batch right?
class NetworkVP():
    [...]
    def reset_state(self, idx):
        #todo...
        self.state[idx,...] = 0

sorry for pseudocode, not expert with TF.

Another confusion I have about this, (because not really an expert in TF). It seems 2 graphs : one for prediction (taking a dynamic_rnn), and one (maybe taking a static tf.rnn?) for backprop (if feeding (N, T, C, H, W) , or is there a way to use a gradient applier like in myosuda ?

@etienne87  I'm not sure if I understand your first question about reset_state correctly. Can you please provide more details?
About having separate graphs, there are different ways of implementing the same logic in TF. We are not using separate graphs simply because it's not necessary. Can you please leverage why you think having two graphs is necessary?

@mbz ok! What I mean : In classic A3C, it seems we can just backprop at the end of an episode (T_MAX), by just re-using the already computed predictions. On the other hand, here, it seems we need to recompute the predictions with the samples and actions. In short : X should be (N, H, W, C) in predictor thread, (N, T, H, W, C) in the train function? Maybe I misunderstood something about TF internal mechanism?

@mbz I have implemented A3C-LSTM with long sequence length. You don't have to send the whole sequence into the graph. What I did is to maintain the current LSTM hidden state for every game simulator in Python side, and every time feed the new frame together with the hidden state of each simulator to the graph.
This way the sequence length could be as long as one episode.

@ppwwyyxx  I have built an LSTM and stored the hidden states.
However, I got two questions. 1. where to reset or initial the stored states before each episode?   2.  how to deal with the class Experience in LSTM training?

@markovyao
The states were maintained in python, inside each agent (simulator), so you can easily set them when needed (e.g. right after the agent reaches the end of episode).
Since each agent maintains its own hidden states, it can do the following by its own:

keep the hidden states in its own experience history buffer and give it to the network for training
send the hidden states to predictor to get the next action
request the predictor to send back the next hidden state and keep it

@markovyao
alternative implement to @ppwwyyxx solution:

create matrix vars to store LSTM hidden states
every agent assign an unique agent_index
use tf.scatter_update to reset/update LSTM hidden states accord the agent_index/last_is_over, for example:

        if tc.is_training:
            need_reset_states = tf.reshape(tf.ones_like(self._input_is_over) - self._input_is_over, (-1, 1))
            op_updates = [tf.scatter_update(initial_rnn_states[idx], self._input_agent_indexs, rnn_output_states_array[idx] * tf.cast(need_reset_states, rnn_output_states_array[idx].dtype)) \
                          for idx in range(len(rnn_output_states_array))]
        else:
            # in predict mode, the is_over is for last state
            batch_size = tf.shape(self._input_agent_indexs)[0]
            op_updates = []
            for idx in range(len(initial_rnn_states)):
                shape_states = tf.shape(initial_rnn_states[idx])
                op = tf.scatter_update(initial_rnn_states[idx], self._input_agent_indexs, tf.zeros((batch_size,shape_states[1]), dtype=initial_rnn_states[idx].dtype))
                op_resets.append(op)
                op = tf.scatter_update(initial_rnn_states[idx], self._input_agent_indexs, rnn_output_states_array[idx])
                op_updates.append(op)

in predict/train, call the op update/reset when needed

this implement is useful if you have many LSTM network or in frequent modification development, for it only export update/reset ops outside model

@ricky1203 : could you perhaps provide an example/ link in context?

@etienne87
check the def _create_rnn_from_cell() in model.py
note: for hidden states in store in model, agent should predict/train in one model(GPU device) during one episode

@etienne87
Do you have success with developing LSTM pls?

@Golly not so much to be honest. Also I think I first need to test idea referred in #16; Otherwise LSTM version will need re-computation of TMAX steps before each backward & update.

Coming back to this problem with a slightly more understanding on with variable length rnn :
I think the easiest way to code the LSTM version is to keep track of c, h states in Experiences Queues.
In ThreadTrainer::run :
 while not self.exit_flag:
            batch_size = 0
            ids = []
            lengths = []
            while batch_size <= Config.TRAINING_MIN_BATCH_SIZE:
                idx, x_, r_, a_, c_, h_ = self.server.training_q.get()
                lengths.append(x_.shape[0])
                if batch_size == 0:
                    x__ = x_; r__ = r_; a__ = a_; c__ = c_; h__ = h_;
                else:
                    x__ = np.concatenate((x__, x_))
                    r__ = np.concatenate((r__, r_))
                    a__ = np.concatenate((a__, a_))
                    c__ = np.concatenate((c__,c_))
                    h__ = np.concatenate((h__,h_))

                ids.append(idx)
                batch_size += x_.shape[0]

            if Config.TRAIN_MODELS:
                self.server.train_model(x__, r__, a__,c__,h__, lengths)

In NetworkVP::_create_graph
self.d1 = ... #result of feedforward encoder
self.lstm = rnn.BasicLSTMCell(256, state_is_tuple=True)
self.step_sizes = tf.placeholder(tf.int32, [None], name='stepsize') #given by ThreadTrainer, otherwise assume np.ones((batch_predict_size))
batch_size = tf.shape(self.step_sizes)[0]
d1 = tf.reshape(self.d1, [batch_size,-1,256]) #this will not work without a special function
self.c0 = tf.placeholder(tf.float32, [None, 256])
self.h0 = tf.placeholder(tf.float32, [None, 256])
self.initial_lstm_state = rnn.LSTMStateTuple(self.c0,self.h0)
lstm_outputs, self.lstm_state = tf.nn.dynamic_rnn(self.lstm,d1,
                                                        initial_state = self.initial_lstm_state,
                                                        sequence_length = self.step_sizes,
                                                        time_major = False))
self._state = tf.reshape(lstm_outputs, [-1,256])  #pass this vector to pi, v

In NetworkVP::predict_p_and_v:
step_sizes = np.ones((c.shape[0],),dtype=np.int32)
feed_dict = self.__get_base_feed_dict()
feed_dict.update({self.x: x, self.step_sizes:step_sizes, self.c0:c, self.h0:h})
p, v, rnn_state = self.sess.run([self.softmax_p, self.logits_v, self.lstm_state], feed_dict=feed_dict)
return p, v, rnn_state.c, rnn_state.h

In NetworkVP::train:
step_sizes = np.array(lengths)
feed_dict = self.__get_base_feed_dict()
feed_dict.update({self.x: x,  self.y_r: r, self.action_index: a, self.step_sizes:step_sizes, self.c0:c, self.h0:h})
r = np.reshape(y_r,(y_r.shape[0],))
self.sess.run(self.train_op, feed_dict=feed_dict)

I think the only thing i am missing is how to sort of "unpack" sequence of encoded states in _create_graph method :
d1 = tf.reshape(self.d1, [batch_size,-1,256]) will not work when sequence lengths are variable, does anybody know TF enough to tell me how to use `step_sizes' in order to create a list of (nstep, 256) tensors?

self.d1 = ... #result of feedforward encoder
^ that shape is? guessing (batch_size, 256)?
If so, you just need to create a fake batch dim so that the rnn
processes the local steps in the time dimension...
d1 = tf.expand_dims(self.d1, axis=0)
On Tue, Mar 28, 2017 at 1:00 PM, etienne87<EMAIL_ADDRESS>wrote:

Coming back to this problem with a slightly more understanding on with
variable length rnn :
I think the easiest way to code the LSTM version is to keep track of c, h
states in Experiences Queues.
In ThreadTrainer::run :
while not self.exit_flag:
batch_size = 0
ids = []
lengths = []
while batch_size <= Config.TRAINING_MIN_BATCH_SIZE:
idx, x_, r_, a_, c_, h_ = self.server.training_q.get()
lengths.append(x_.shape[0])
if batch_size == 0:
x__ = x_; r__ = r_; a__ = a_; c__ = c_; h__ = h_;
else:
x__ = np.concatenate((x__, x_))
r__ = np.concatenate((r__, r_))
a__ = np.concatenate((a__, a_))
c__ = np.concatenate((c__,c_))
h__ = np.concatenate((h__,h_))
            ids.append(idx)
            batch_size += x_.shape[0]

        if Config.TRAIN_MODELS:
            self.server.train_model(x__, r__, a__,c__,h__, lengths)

In NetworkVP::_create_graph
self.d1 = ... #result of feedforward encoder
self.lstm = rnn.BasicLSTMCell(256, state_is_tuple=True)
self.step_sizes = tf.placeholder(tf.int32, [None], name='stepsize') #given by ThreadTrainer, otherwise assume np.ones((batch_predict_size))
batch_size = tf.shape(self.step_sizes)[0]
d1 = tf.reshape(self.d1, [batch_size,-1,256]) #this will not work without a special function
self.c0 = tf.placeholder(tf.float32, [None, 256])
self.h0 = tf.placeholder(tf.float32, [None, 256])
self.initial_lstm_state = rnn.LSTMStateTuple(self.c0,self.h0)
lstm_outputs, self.lstm_state = tf.nn.dynamic_rnn(self.lstm,d1,
initial_state = self.initial_lstm_state,
sequence_length = self.step_sizes,
time_major = False))
self._state = tf.reshape(lstm_outputs, [-1,256])  #pass this vector to pi, v
In NetworkVP::predict_p_and_v:
step_sizes = np.ones((c.shape[0],),dtype=np.int32)
feed_dict = self.__get_base_feed_dict()
feed_dict.update({self.x: x, self.step_sizes:step_sizes, self.c0:c, self.h0:h})
p, v, rnn_state = self.sess.run([self.softmax_p, self.logits_v, self.lstm_state], feed_dict=feed_dict)
return p, v, rnn_state.c, rnn_state.h
In NetworkVP:🚋
step_sizes = np.array(lengths)
feed_dict = self.__get_base_feed_dict()
feed_dict.update({self.x: x,  self.y_r: r, self.action_index: a, self.step_sizes:step_sizes, self.c0:c, self.h0:h})
r = np.reshape(y_r,(y_r.shape[0],))
self.sess.run(self.train_op, feed_dict=feed_dict)
I think the only thing i am missing is how to sort of "unpack" sequence of
encoded states in _create_graph method :
d1 = tf.reshape(self.d1, [batch_size,-1,256]) will not work when sequence
lengths are variable, does anybody know TF enough to tell me how to use
`step_sizes' in order to create a list of (nstep, 256) tensors?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/NVlabs/GA3C/issues/3#issuecomment-289836238, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAfepeCYFVw3eFFB3naE0TT_0OnkTEW4ks5rqTywgaJpZM4LtWpM
.

Anyway, there is a first implementation that works fine if you don't have too much underachieved experiences (of length < Config.TIME_MAX) here
I "solved" the issue by padding sequences in ThreadTrainer.py.
In order to be optimal, we would need to dynamically batch the data after the feedforward encoder (before the LSTM), in order to feed a (N, TIME_MAX, 256) Tensor to tf.dynamic_rnn; However I am not convinced this really slows down the process as most of experience batches should be full (sequence length is TIME_MAX).
I will now test on Pong, fuse with GAE branch. If someone wants to help me understand how to improve this you are welcome! :-)

Hum, Actually there was still an error in my code, I forgot to mask the loss for padding inputs!
I propose a first fix here
Apparently this now works better (at least for CartPole-v0)
In Config.py :
    TIME_MAX = 5
    STACKED_FRAMES = 4
    IMAGE_WIDTH = 1
    IMAGE_HEIGHT = 4
    EPISODES = 4000
    ANNEALING_EPISODE_COUNT = 4000
    BETA_START = 0.01
    BETA_END = 0.01
    LEARNING_RATE_START = 0.0003
    LEARNING_RATE_END = 0.0003
    RMSPROP_DECAY = 0.99
    RMSPROP_MOMENTUM = 0.0
    RMSPROP_EPSILON = 0.1
    DUAL_RMSPROP = False
    USE_GRAD_CLIP = False
    GRAD_CLIP_NORM = 40.0
    LOG_EPSILON = 1e-6
    TRAINING_MIN_BATCH_SIZE = 16
    USE_RNN = True
    NCELLS = 256
    MIN_POLICY = 0.0
    USE_LOG_SOFTMAX = True

TIME_MAX

Out of interest, can I ask why you've removed this page? What were your findings wrt performance of the addition of LSTM?


Create Java language bindings from Entur's java model

Entur has been gracious enough to suggest we can use their pre-existing codebase for this: https://github.com/entur/gbfs-java-model.
We need to determine how to best copy this information and generate the bindings.

I'll be happy to contribute on this if you need - just let me know.


Update Verbiage on Project Search

Top:
The following projects closely match your search and already exist in the database. Please ensure that the project you are trying to enter is not listed before proceeding.
Before All Projects button:
Click on ‘All Projects’ to access a list of all community engagement projects in the database.
Before Create Project button:
To proceed with the creation of a new project, click on the button below.

Updated:


Unvalid ssh

The ssh links from readme doesn't work, please double check. the project can be cloned from http, but not ssh.

And all command should add "sudo" command


feat(http): expose mlflow models as http services

This PR make models accepts http request with serialized json data that can be converted into a pandas DataFrame for model inference.
Closes #6

Sorry for the delay, thank you for the contribution!


Do not fail job when vulnerability is not fixable

Sometimes vulnerability has no fix version. In this case job should not fail.

Fixed in #20


add PKCE verifier for OIDC

https://www.rfc-editor.org/rfc/rfc7636.html
To fix the error "Could not exchange code for the token" when using the PKCE method, a verifier should be generated and used during the authentication process.

[x] read the CONTRIBUTING guidelines
[ ] raised a GitHub issue or discussed it on the projects chat beforehand
[ ] added unit tests
[ ] added integration tests
[ ] updated documentation if needed
[ ] updated CHANGELOG.md

Summary by CodeRabbit

New Features

Enhanced OpenID Connect (OIDC) registration and callback process with Proof Key for Code Exchange (PKCE) for improved security.
Introduced a new data structure, RegistrationInfo, to manage OIDC-related information effectively.

Bug Fixes

Improved validation processes to ensure secure handling of authorization code exchanges.

I imagine this can go in and be rebased on top of #2020, whenever that is ready.

@Rorical if you have time to rebase this in the next few days, then it might be able to make it into the next release.

Testing and documentation will be added soon

@Rorical any opportunity to look at the integration tests that are failing? You probably also need to rebase to get a docker fix that broke all the builds.

Apologize for the delay. The failing test proves to be harder to implement for me, as I can not get the nix test working for me.

No worries, can you do:
cd cmd/gh-action-integration-generator
go generate

and commit the updated workflow? this will run the new tests, I will get to reviewing a bit later, thank you!

The test should works now. Is it possible to still make this change into v0.24.0? I really need this feature to have my instance continue working...

If the tests pass, I can try to review it tomorrow, but I am hesitant adding it this late in the release cycle and adding new features in beta, so I won't guarantee it.

I suggest to include the positive test for the code change PR, since it does not require the proxy feature

Yes let’s keep the positive one, thanks
Sent from Proton Mail for iOS
On Sun, Dec 22, 2024 at 15:39, Rorical @.> wrote:   I suggest to include the positive test for the code change PR, since it does not require the proxy feature —
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because your review was requested.Message ID: @.>

I'm trying to open a new PR for this.

Closed due to #2314


Update the source information

Type: Missing
Summary:
Update the source information
Details:
With the rise in supply chain attacks and OSS dependencies being used as a attack vector, Microsoft is working with our ecosystem partners, such as the Linux Foundation's OpenSSF, to enable OSS consumers to track packages back to their public sources.
Resolution:
This PR was created to add this value, ensuring future releases will include this provenance information.
Published NPM packages with repository information:
* sails-generate-gruntfile
Affected definitions:

sails-generate-gruntfile 0.10.11

Same author as #13302


Feature: Storing the chat password locally (to bypass the blocking of getting the password when the account is banned)

Fixed by d437db8 commit

Fixed by d437db8 commit


The bundle size.

We are a new customer to Knock have noticed that the bundle size is rather large. As listed on bundlephobia the size is listed as 740k, and 84% of that is in date-fns. This feels very heavy. Are you looking at removing that anytime soon or is bundle size not an important requirement?

Hey @Kevnz and @ztsmith, thanks for calling out this issue and your suggestions. We've updated the package to use Intl for relative timestamp formatting which greatly reduced the bundle size. Upgrade to<EMAIL_ADDRESS>for those changes


Tool says host not allowing connections with TLS_RSA

So I have this host that I've ran previous scans on, and those scans warn about the host using
TLS_RSA_WITH_3DES_EDE_CBC_SHA
which should be vulnerable to the ROBOT attack, no?
At this moment I have an active https connection to this host, and Firefox ESR also warns about the site using weak encryption, more specifically:
Broken Encryption(TLS_RSA_WITH_AES_128_CBC_SHA, 128 bit keys, TLS 1.0)
So it seems  the site really is using TLS_RSA encryption, however when I run the robot-detect tool, this is the response:
Cannot connect to server: [SSL: UNSUPPORTED_PROTOCOL] unsupported protocol (_ssl.c:1076)
Server does not seem to allow connections with TLS_RSA (this is ideal).
What is actually going on here?

Are you able to supply a packet capture from this?


Add zipkin package

Hey there,
I found that I use zipkin quite a lot, so I thought I might just add it. Zipkin is a tool for performance tracing.
I have a little problem with the logos, they are cut. What can I do if I don't find them in the right size and what is the size they should have?
This is not urgent, so please don't rush with the review.
Thank you for your time 👍

@ryadav88 Could you have a look at this?

@DanielMSchmidt Please create a PR with simple example describing the package into examples repository: https://github.com/dcos/examples


How to use modifiers with custom CSS (eg. via @layer)

Goal:
Use a custom style based on the responsive modifier like explained in the tailwind docs:.
What I tried:
$ ~/assets/tailwind.css

@import 'tailwindcss/base';
@import 'tailwindcss/components';
@import 'tailwindcss/utilities';

@layer utilities {
  .test {
    background-color: yellow;
  }
}

$ index.vue

<template>

Hello

</template>

$ nuxt.config

tailwindcss: {
  cssPath: '~/assets/tailwind.css',
},

What i expect:
The div should get a yellow background on large screens.
What happens instead:
Nothing at all.

when install as proposed here there is no issue so i did that.


Only INTRO page on mobile version

It looks nice on PC! But on my mobile phone (Android), only INTRO page is displayed. Guess a NAVIGATION should be added on the mobile version?
Another advice, can this be made a Hexo (https://hexo.io/zh-cn/docs/themes.html) or Hugo (https://themes.gohugo.io/) theme? Hexo and Hugo are popular tools to generate personal blogs. If so, this can be very popular I think.
Many thanks!

good advice！


feat: keccak256

Pull Request type

Please check the type of change your PR introduces:

[ ] Bugfix
[x] Feature
[ ] Code style update (formatting, renaming)
[ ] Refactoring (no functional changes, no API changes)
[ ] Build-related changes
[ ] Documentation content changes
[ ] Other (please describe):

What is the current behavior?

Issue Number: N/A
What is the new behavior?

Implements keccak256 from a bytes input.

Does this introduce a breaking change?

[ ] Yes
[x] No

Other information

Applied suggestions, added size <=8 assertion


Is this a noop target?

I've tried using this target in my application but it appears do be doing nothing at all.
I then tried to run the example application - no logs in logcat
I then checked the example app for any log calls - there are none.
Has this target been tested at all yet?

The example project is to show that the nuget-package-assembly and Nlog-assembly can build and publish with trimming enabled for MAUI-App.

When running on Android-device then it will output to Android-Logcat.
When running on iOS-device then it will output to iOS-OSLog
When running on all other devices then it will output to Debugger.Log when debugger-attached, else Console.WriteLine.

The Rider Debug-output window can be found here:

Show/hide: View | Tool Windows | Debug (or shorcut-key ALT + 5)
Configure: Settings/Preferences | Build, Execution, Deployment | Debugger

In the Debug-window then you can choose to see:

Console-output - From Console.WriteLine
Debug-output - From Debug.WriteLine

Again this is not a Rider-support-Forum, so you will probably find a bigger audience at StackOverFlow or the actual Rider-Support-Forum

Made the following code - From the README.md:
var logger = NLog.LogManager.Setup().RegisterMauiLog()
                 .LoadConfiguration(c => c.ForLogger(NLog.LogLevel.Debug).WriteToMauiLog())
                 .GetCurrentClassLogger();

And getting lots of output to in Visual Studio Debug-Output-Window, when debugger attached. And when running without debugger then lots of output in console.
Made the following NLog.config - From the README.md
<nlog>
<extensions>
    <add assembly="NLog.Targets.MauiLog" />
</extensions>
<targets>
    <target name="mauilog" type="MauiLog" />
</targets>
<rules>
    <logger name="*" minLevel="Info" writeTo="mauilog" />
</rules>
</nlog>

And after having ensured the NLog.config-file was copied to deployment-folder on build, then again output was written succesfully. So I cannot reproduce your experience. Maybe you can share a minimal example?

Have you tried referencing it in MAUI on .net7? It does nothing there.

I'm not super experienced with how MAUI-projects resolves its dependencies from nuget-packages (Depending using NET6 / NET7 / NET8 / etc.)
I just tested with a normal NET7 console-app (since you said the nuget-package did not work at all), and it had no issues with the NLog.Targets.MauiLog-nuget-package.
And according to NLog.Targets.MauiLog-nuget-page, then it should automatically support NET7 MAUI-Platforms:

Maybe Microsoft have made it impossible to use nuget-packages that supports NET6-MAUI with a NET7-MAUI-App. Does it work for you when targeting NET6 ?

this target is not built as a .NET MAUI class library, so i think that is the reason why it won't work

Well not using any MAUI-features in the nuget-package, but just building to different device-targets (Android, iOS, etc.)
Is there some magic pixie dust one must add besides the existing:
<TargetFrameworks Condition="'$(ContinuousIntegrationBuild)' == 'true'">netstandard2.0;Xamarin.iOS10;Xamarin.Mac20;MonoAndroid90;net6.0-ios;net6.0-macos;net6.0-android;net6.0-maccatalyst</TargetFrameworks>

So instead of providing a compiled assembly, then the nuget-package becomes xcopy of source-files?
    <ItemGroup>
        <Folder Include="Platforms\iOS\"/>
        <Folder Include="Platforms\MacCatalyst\"/>
    </ItemGroup>

No, you can ignore those folders. That's just the IDE marking empty folders as included

Well I don't see anything special in your csproj-file besides that you specify  <TargetFrameworks>net7.0-android</TargetFrameworks> instead of  <TargetFrameworks>net6.0-android</TargetFrameworks>
And the <SingleProject>true</SingleProject>

Curious that you don't get missing-method-exception or other stuff by using the nuget-package (when not working at all), since it should explode in your face when unable to correctly resolve assembly.

And
        <UseMaui>true</UseMaui>
And
        <SupportedOSPlatformVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'ios'">11.0</SupportedOSPlatformVersion>
        <SupportedOSPlatformVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'maccatalyst'">13.1</SupportedOSPlatformVersion>
        <SupportedOSPlatformVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'android'">21.0</SupportedOSPlatformVersion>
        <SupportedOSPlatformVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'windows'">10.0.17763.0</SupportedOSPlatformVersion>
        <TargetPlatformMinVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'windows'">10.0.17763.0</TargetPlatformMinVersion>
        <SupportedOSPlatformVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'tizen'">6.5</SupportedOSPlatformVersion>

And
<Project Sdk="Microsoft.NET.Sdk">
One way or another, you got to verify the target on at least android to see if it is working

you got to verify the target on at least android to see if it is working

When I have too much spare-time, then I might consider doing that. My original goal was just to verify that NLog-core-project can be used in MAUI-project without giving build-warnings. And for fun then I played a little with getting iOS-OSLog and Android-LogCat to compile and integrate with NLog.
Pull-requests are as always most wellcome :)

that PR definitely works for android + windows. i don't have an apple device so i cannot verify that. Also perhaps it's worth looking at the pipeline. i looked into the snupkg and did not see apple targets. Is there a different pipeline doing mac builds too?

@304NotModified I think this project requires your attention. As seen in this issue and https://github.com/NLog/NLog.Targets.MauiLog/issues/8 snakefoot appears to have the attitude that this targets purpose is "checking that it does not produce build errors" instead of producing logs on the corresponding platforms. Despite providing a PR to fix this, the maintainer of this project appears to lack the initiative to actually have a working target, instead of leaving it in a disfunctional state. Perhaps you can motivate him to do so. Otherwise this kind of sheds a bad light on NLog for people who want to use it on the MAUI platform.

@taori Happy that you also like the NLog-project, and want it to shine.
 In the early days I would engage (or fix it myself), but now I just give my oppion and back off further discussions about disagreements.
Like I said in my last https://github.com/NLog/NLog.Targets.MauiLog/pull/26#issuecomment-1834425821, then I would like something that was similar to CommunityToolkit.Maui.csproj.

I've got to respect the self awareness with that.
However in a case where you apparently did not experiment a lot yourself yet, it makes sense to trust others who do. Especially with new technologies there is no way around actually doing runtime testing yourself, instead of hoping for the best (or saying that the package is only meant to check if it works without build errors). New, niche, ms tech always appears to be a lot more flakey at the start than established tech, which everyone has to find out for himself first. Hence the .net 7 recommendation. It is crucial to try and be as little wild in terms of project setup as possible, e.g. using the same project kind that is meant to be used for a tech. After doing it that way for that pr there was a noticeable amount of warnings to be dealt with because there are simply a lot more analyzers that will force you into  the right direction.
That being said, someone else was also wondering if you had any working integration, yet, whom you technically shut down by closing the ticket without actually testing it. Shutting that other person down does not help anyone. The majority of the project code actually was functional as is, simply integration wise it was noop. Because you did not appear to want to move forward, I copied the code into my project accordingly and It worked. For another project I recently started I used serilog, because I do not like to copy code. This is unsatisfactory for everyone I would say.
I hope you get around to testing the code yourself. If you decide to lower support to net6 that is up to you, just be aware that it was shipped in an odd state and the amount of people who use net 6 for Maui is very likely rather small (because new tech+lower .net is always a sucky development experience)
I hope you don't take it personal, because yes, as you identified correctly I simply want nlog to shine

I havent checked this discussion in depth yet (on holiday), but

As seen in this issue and https://github.com/NLog/NLog.Targets.MauiLog/issues/8 snakefoot appears to have the attitude that this targets purpose is "checking that it does not produce build errors

Im pretty sure that Snakefoot is really doing a good job.

After many hours of fun with MAUI-build-tools and AppVeyor-Build-Images, then now there are 3 new versions:

NET8 - https://www.nuget.org/packages/NLog.Targets.MauiLog/8.0.0
NET7 - https://www.nuget.org/packages/NLog.Targets.MauiLog/7.0.0
NET6 - https://www.nuget.org/packages/NLog.Targets.MauiLog/6.0.0

Maybe it will work better with nuget-packages targeted directly to the expected NET-version.

@304NotModified Next time you might want to actually look at something and verify it before vouching for someone doing a "good job". Discarding prior issues, pointing out that it does not work, now you - also downvoting this because you dislike someone pointing out that it does not work - does not fix this whatsoever. Stalling my suggestions in the issue, to then suggest i can provide a PR, to have multiple reviews which also resemble stalling a fix definitely is not a "good job". He owned up to it in a way.
However the current state now is still a codebase that does not produce any logs, despite my pr being actually tested for it to be functional but completely ignored code wise (even though it also handles obsolete warnings)
Yes, code has been changed now, however when you debug the sample application it still does not produce any logging output. However you now have 3 different packages containing the same code instead of one package containing a compilation for each .net version (and also you lose the ability for semver updates and which package version you should consolidate towards). I am not sure what there benefit of that is supposed to be. That effectively is not how multiversion packaging is done and it has been around for years by now. Since you both are however dismissive of this issue i guess there is no fixing.
I just hope you do get around to actually testing the code you write before shipping it, because not testing code at all, when it is such a small codebase sure seems odd to me. Best of luck and thanks regardless for NLog itself being reliable, though (Not sarcasm).

You ignored my request to change to NET8 and also removed support for NET6 and also removed support for "macos". Thus I moved ahead and made the changes.
It is impossible to make a nuget package that supports NET6 + NET7 + NET8. You can see Microsoft is creating new mejor version matching each NET.
I don't have an android og macos so I can do the testing for those platforms. You are very welcome to add the magic dust that make the package work on Android, and even better an integration test that checks it works on all platforms.
I have updated the assembly title to include the target-platform-name. What name does the assembly-doll have in your output folder when compiling against android?
Sent from my Galaxy
-------- Original message --------
From: Andreas Müller @.>
Date: 10/01/2024 23:51 (GMT+01:00)
To: "NLog/NLog.Targets.MauiLog" @.>
Cc: Rolf Kristensen @.>, Comment @.>
Subject: Re: [NLog/NLog.Targets.MauiLog] Is this a noop target? (Issue #24)
@304NotModifiedhttps://github.com/304NotModified Next time you might want to actually look at something and verify it before vouching for someone doing a "good job". Discarding prior issues, pointing out that it does not work, now you - also downvoting this because you dislike someone pointing out that it does not work - does not fix this whatsoever. Stalling my suggestions in the issue, to then suggest i can provide a PR, to have multiple reviews which also resemble stalling a fix definitely is not a "good job". He owned up to it in a way.
However the current state now is still a codebase that does not produce any logs, despite my pr being actually tested for it to be functional but completely ignored code wise (even though it also handles obsolete warnings)
Yes, code has been changed now, however when you debug the sample application it still does not produce any logging output. However you now have 3 different packages containing the same code instead of one package containing a compilation for each .net version (and also you lose the ability for semver updates and which package version you should consolidate towards). I am not sure what there benefit of that is supposed to be. That effectively is not how multiversion packaging is done and it has been around for years by now. Since you both are however dismissive of this issue i guess there is no fixing.
I just hope you do get around to actually testing the code you write before shipping it, because not testing code at all, when it is such a small codebase sure seems odd to me. Best of luck and thanks regardless for NLog itself being reliable, though (Not sarcasm).
—
Reply to this email directly, view it on GitHubhttps://github.com/NLog/NLog.Targets.MauiLog/issues/24#issuecomment-1885871526, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ACXZ7HCKPD4TTQF4MFTHM5TYN4LPFAVCNFSM6AAAAAA73TOKUSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQOBVHA3TCNJSGY.
You are receiving this because you commented.Message ID: @.***>

You ignored my request to change to NET8 and also removed support for NET6 and also removed support for "macos".

Assuming you mean https://github.com/NLog/NLog.Targets.MauiLog/pull/26#issuecomment-1834425821 - You are having a distorted perception here. Asking me questions and requesting changes is two different things. I changed it to net7 because i no longer have .net6 installed and at the time did not have net8 installed anymore, because having net8 preview installed broke some builds for my own projects. I removed macos because i cannot start debugging if targets are listed in the TargetFrameworks which i cannot run (since i test on windows). You could call it "removing support" if i actually removed the code for that platform, which i did not. I removed macos from the explicit TargetFrameworks and added it to the build platform depenedant properties, since mac os cannot be built on windows, and windows cannot be built on mac presumably. So effectively non of your statement is actually true. Combine that with it also being possible to accept a PR and then change things yourself which are necessary. But i guess you are actually just having a little powertrip with this here.

Thus I moved ahead and made the changes. It is impossible to make a nuget package that supports NET6 + NET7 + NET8. You can see Microsoft is creating new mejor version matching each NET.

Again - not true. It is not impossible. They mostly just choose not to, to motivate upgrading to newer dotnet versions, because any sort of maintaining feature parity on older system consumes more time+money. See this as example. They also multi target here and there other packages which target different .net versions. And they do not bump that version number for every dotnet version itself, but because a significant number of products rely on language features which are shipped for a .net version that matches the product version. If you look at other packages that are not part of the major components you will see that. They merely do it this way, so it is very apparent which version is compatible with the remainder of the other packages. Apart from that they very much adhere to semver.

I don't have an android og macos so I can do the testing for those platforms.

I am seeing "Sent from my Galaxy" here. So unless you are running android sdk 21 or lower (where as 28 and above has a market share of 98,5%+), there is nothing really stopping you from getting an usb cable, enabling developer mode and testing it on your device. it takes 5-10 minutes. If you cannot be bothered to actually test your code ONCE, just add that to the project readme, so everyone knows this is a "i am just doing compilation here, it does not actually work"-work here. Again - This makes NLog look bad, not just you.

You are very welcome to add the magic dust that make the package work on Android, and even better an integration test that checks it works on all platforms. I have updated the assembly title to include the target-platform-name. What name does the assembly-doll have in your output folder when compiling against android?

I am done trying to fix it. Combined with PR, code changes, warning fixes, etc, (TESTING IF IT ACTUALLY WORKS), i have spent my fair share of hours here. I have contributed a bunch to quite a bunch of projects in the past, where there were a lot more sophisticated developers (who also double check if their code actually works), who did not have such a weird attitude towards issues, PR's and PR reviews. The solution for me is to use serilog now, because that code works. It's less configurable for my needs, but i can accept that.

What takes you 10 mins. Probably takes me hours.
If application depends on nuget package with NET5 as highest target platform. Then application will fail to install on system if NET5 runtime is not installed. Notice how all nuget packages from Microsoft that targets NET5 are obsolete, same will soon happen for NET7 packages.
Possible that you can share what Serilog Sink you are using with MAUI?
Sent from my Galaxy
-------- Original message --------
From: Andreas Müller @.>
Date: 11/01/2024 15:33 (GMT+01:00)
To: "NLog/NLog.Targets.MauiLog" @.>
Cc: Rolf Kristensen @.>, Comment @.>
Subject: Re: [NLog/NLog.Targets.MauiLog] Is this a noop target? (Issue #24)
You ignored my request to change to NET8 and also removed support for NET6 and also removed support for "macos".
Assuming you mean #26 (comment)https://github.com/NLog/NLog.Targets.MauiLog/pull/26#issuecomment-1834425821 - You are having a distorted perception here. Asking me questions and requesting changes is two different things. I changed it to net7 because i no longer have .net6 installed and at the time did not have net8 installed anymore, because having net8 preview installed broke some builds for my own projects. I removed macos because i cannot start debugging if targets are listed in the TargetFrameworks which i cannot run (since i test on windows). You could call it "removing support" if i actually removed the code for that platform, which i did not. I removed macos from the explicit TargetFrameworks and added it to the build platform depenedant properties, since mac os cannot be built on windows, and windows cannot be built on mac presumably. So effectively non of your statement is actually true. Combine that with it also being possible to accept a PR and then change things yourself which are necessary. But i guess you are actually just having a little powertrip with this here.
Thus I moved ahead and made the changes. It is impossible to make a nuget package that supports NET6 + NET7 + NET8. You can see Microsoft is creating new mejor version matching each NET.
Again - not true. It is not impossible. They mostly just choose not to, to motivate upgrading to newer dotnet versions, because any sort of maintaining feature parity on older system consumes more time+money. See thishttps://www.nuget.org/packages/CommunityToolkit.Mvvm as example. They also multi target here and there other packages which target different .net versions. And they do not bump that version number for every dotnet version itself, but because a significant number of products rely on language features which are shipped for a .net version that matches the product version. If you look at other packages that are not part of the major components you will see that. They merely do it this way, so it is very apparent which version is compatible with the remainder of the other packages. Apart from that they very much adhere to semver.
I don't have an android og macos so I can do the testing for those platforms.
I am seeing "Sent from my Galaxy" here. So unless you are running android sdk 21 or lower (where as 28 and above has a market share of 98,5%+), there is nothing really stopping you from getting an usb cable, enabling developer mode and testing it on your device. it takes 5-10 minutes. If you cannot be bothered to actually test your code ONCE, just add that to the project readme, so everyone knows this is a "i am just doing compilation here, it does not actually work"-work here. Again - This makes NLog look bad, not just you.
You are very welcome to add the magic dust that make the package work on Android, and even better an integration test that checks it works on all platforms. I have updated the assembly title to include the target-platform-name. What name does the assembly-doll have in your output folder when compiling against android?
I am done trying to fix it. Combined with PR, code changes, warning fixes, etc, (TESTING IF IT ACTUALLY WORKS), i have spent my fair share of hours here. I have contributed a bunch to quite a bunch of projects in the past, where there were a lot more sophisticated developers (who also double check if their code actually works), who did not have such a weird attitude towards issues, PR's and PR reviews. The solution for me is to use serilog now, because that code works. It's less configurable for my needs, but i can accept that.
—
Reply to this email directly, view it on GitHubhttps://github.com/NLog/NLog.Targets.MauiLog/issues/24#issuecomment-1887315599, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ACXZ7HB6KHBFVFDEWO2ZXJLYN7Z45AVCNFSM6AAAAAA73TOKUSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQOBXGMYTKNJZHE.
You are receiving this because you commented.Message ID: @.***>

@taori
You should give more respect. Saying "Has this target been tested at all yet?" is just rude. And yes, then you get a downvote.
Also saying what I should do next time, is also rude.
I don't have time for rude users. This isn't a job we get paid for. If you won't change your attitude, I will lock this post.

Closing this due to inactivity.


 Provide GO ID and term label

GO:0106005  RNA 5'-cap (guanine-N7)-methylation
will be obsoleted with direct replacement of parent GO:0009452   (https://www.ebi.ac.uk/QuickGO/services/ontology/go/terms/GO:0009452/complete)
7-methylguanosine RNA capping

Reason for merge

Single step
4 UniProt annotations will be  remapped to parent

I was going to do the parent but that isn't cap specific.
Will address later


add WMS basemap layer returns 500 error

Context
When adding WMS map from this URL https://services.slip.wa.gov.au/public/services/Landgate_Public_Services/Admin_Public_Services/MapServer/WMSServer.
CARTO get the different WMS layers,  but when you add one of the layers to the map,for example Local Government Authority (LGA) Boundaries (LGATE-006), CARTO returns several 500 errors.
For example this one:
https://cartodb-wms.global.ssl.fastly.net/mapproxy/services_slip_wa_gov_au_7_EPSG_3857/wmts/map/webmercator/6/30/24.png Failed to load resource: the server responded with a status of 500 (Internal Server Error)

However, the WMS layers are opened correctly in a software Desktop like QGIS

@CartoDB/support let S/B 10905663 know when closed

I think this is an issue with some kind of WMS proxy.
This is a tile from the upstream WMS server (works):
https://services.slip.wa.gov.au/public/services/Landgate_Public_Services/Admin_Public_Services/MapServer/WMSServer?FORMAT=image%2Fpng&LAYERS=2&TRANSPARENT=false&ANTIALIAS=none&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&STYLES=&SRS=EPSG%3A4326&BBOX=123.75,-33.75,135,-22.5&WIDTH=256&HEIGHT=256
When we add an WMS basemap, we register it with a map proxy. And in this case, after registering the layer, the map proxy fails even to display the metadata about that layer:
https://cartodb-wms.global.ssl.fastly.net/mapproxy/services_slip_wa_gov_au_7_EPSG_3857
pinging @CartoDB/systems to see if this is something they can help with

I tracked it with @zenitraM to an issue with using HTTPS as the WMS url. Using http works. However, as that server is already registered as https, it won't work with this workaround, until we fix the underlying issue.
Moving to platform -> https://github.com/CartoDB/cartodb-platform/issues/2954


submitButton class [buttonClass]

Hi an error exists with buttonClass
When in your code display $attributes on line 1792 exists buttonclass and not buttonClass.
i change it and add
$scope.buttonClass = $attributes.buttonclass;
$element.find('button').addClass($scope.buttonClass);

This isn't an error. The submitButton docs show that the expected attribute name is buttonClass.
JavaScript is a case-sensitive language. This means that variables (and other things) must always be typed with the correct capitalization of letters. For example:
var hash = {};
hash['buttonclass'] = 'This is lower case';
hash['buttonClass'] = 'This is mixed case';

That will create a hash with 2 keys:
Object {buttonclass: "This is lower case", buttonClass: "This is mixed case"}

Angular converts the HTML attribute format (e.g. my-attribute) to a camel case format (e.g. myAttribute) automatically . If you want to pass a custom button class you can do it like this:
<submit-button label="Disabled button" button-class="something"></submit-button>

I'm closing this because I'm fairly sure it's just a misunderstanding. Please let me know if not and I'll take another look. :)


USTVGO is no more, closing.


(1.12.2) Backport & Support Mods

 I understand that Real First Person 2 has been abandoned & is no longer supported, so I requested that you backport 1.12.2, please, and for the love of god make compatibility w/ Aqua Acrobatics & the Mo' Bends, which are godlike mods for an incredible combination, better quality, and much fun in a modpack, but also since u made modern client mods and improved deep into the legacy version, such as wavey capes & 3D skin layers too. Ty, I hope you've seen my post and this is my only request here.

Like I've listed on https://tr7zw.github.io/versions/ and stated a few times on Discord, currently, I have no real interest in porting any more mods to 1.8/1.12(only adding the missing entityculling 1.12 port). Added to that, "Real First Person 2" is already a thing.

Real First Person 2 has been abandoned & is no longer supported

And so are my 1.8/1.12 versions of 3d Skin Layers and WaveyCapes. They are equally not actively supported.
BUT, I just remembered that I do have working 1.12 Forge mod source that does include Real First-Person Render 8.1.1(https://www.curseforge.com/minecraft/mc-mods/real-first-person-render/files/2378343), and according to the sites license, I could publish it. But on the other hand, what would be the point? It's 1:1 the same mod. And last time I tested it, it also did work with Mo'Bends(sometime in 2017/18).

How about aquatic acrobatics? I tried to test them yesterday in my modpack, and then I loaded a world, though it didn't maintain a proper view & only shows the inside of a player's head while swimming in the water with RFP 2/first-person render mod. Sorry, I didn't have screenshots to show yet and forgot. (I'll be back later or tom.)

Also with crawling..

I'll be quite honest: thats the issues you have with using a legacy version. Update to 1.19 and the issues are gone^^. I really don't get why people forcefully try to stay on these old broken mc versions.

Tbh, I'm not a fan of the latest versions of mods, but I really don't hate them, and they're such good mods like Create, Alex's Mobs, and even Sodium, which has the best performance and makes the frame rate increase laggier than vanilla (only in fabric), but however, the most annoying issue is to keep updating, fixing bugs, and creating mods over and over again to the latest version, which keeps you waiting for when it will be released, depending on whether it's forge or fabric. While 1.12.2 has 500 more mods than the most recent version. For some reason, it takes too long to code differently, and the modders decided to quit modding because Mojang changed the codes in 1.13.2, so the community, developer crew, or owner wanted to help, stay, and continue working in 1.12.2 forge, which includes The Aether, Scapes, and Run: Parasites, FutureMC, and Emoticons, which are amazing mods, and anything you want to download hundreds of mods, as well as the best modpacks in the minecraft community, such as RLCraft and Pokemons.

The people didn't stop modding with 1.13. The entire root cause of this issue is Forge. Forge(especially in the 1.12 times) is fragile as hell. Each update took a lot of time for the devs(Forge and mods). And with the 1.13 changes, Forge took I think nearly a year or till 1.14 to update. And then all the mod devs needed to update, which again took ages. Meanwhile in 1.14 Fabric was born, which makes updating really easy for us devs. This is the exact reason, why Fabric devs stay basically on the newest possible mc version, while Forge users/mods are always hanging behind still on 1.18, 1.16, 1.12. The solution to this is not to beg devs to redo the entire mod for 1.12.2, but to get people off Forge and on the latest mc version again. The only reason that 1.12 has so many mods, is because of Forges 1.13 issues, and because it's old(so more time to create mods for it). Not because 1.12 is a good version, especially for developers(it's hell to try to create things for 1.8/1.12).

Eh.. it doesn't seem difficult to make client-side mods in 1.12, not for server-side. I'm just asking myself to request and want a port for your First-Person mod to legacy & then explain why you made them into the 1.12.2/1.8.9 version, and was it people who asked & wanted to backport them or was it by yourself huh? Even though it doesn't matter when you don't maintain and support your mod currently, it counts as a point here.

I can't quite follow you text. I support my mods, just not for legacy versions. The 1.8/1.12 ports that I have made were due to demand, no alternative being available and to give it a try(to see how hard it is and if people actually download it). And the answers are: there's not much demand for this mod in these versions, there already is an alternative and it's a horrible job to develop for these versions. There is just no reason to spend 10+ hours to reinvent the same mod for a handful of people, especially with it already being a thing.

I understood u did well, & I am really sorry for having complained and been negative too much about my thoughts & issues earlier because my only wish is to have created an alternative mod or revived the First-Person/RFP2 for 1.12.2 mod. Well, that's it for my last message.

According to the RFP2 description, it's licensed under MIT. So if you find any dev that cares about 1.12, you can ask them to update/change that mod with whatever you need.

I'll be quite honest: thats the issues you have with using a legacy version. Update to 1.19 and the issues are gone^^. I really don't get why people forcefully try to stay on these old broken mc versions.

The cool thing about 1.12.2 is that it's so "old" that mods have been released that let you completely change the game, so modded Minecraft becomes a framework to make into whatever you want. Mods are only good with other mods, with the exception of Create.

Update to 1.19 and the issues are gone^^

FR!??!!? I know, these issues are fixed because, wow, you fixed them.
Forgive me for being mean, but it bugs me when perfectly viable (for mods at least) versions with big user bases are refused support because "too old, me no like, switch to fabric"

The cool thing about 1.12.2 is that it's so "old" that mods have been released that let you completely change the game, so modded Minecraft becomes a framework to make into whatever you want. Mods are only good with other mods, with the exception of Create.

The only issue with that logic is, that the entire 1.12.2 Forge tooling just doesn't work anymore in 2023. It doesn't work with modern Java versions, the repositories behind it are long gone, it doesn't work with modern Gradle versions(and the old versions, again not working with modern Java), these Gradle versions and Gradle plugins are entirely unsupported, getting Mixins(which is the modern way to modify the game) running on 1.12/1.8 is just janky and barely works. I did have a somewhat working setup a year ago, which I used to port 3d Skin layers, EntityCulling and WaveyCapes. But I had to redo the entire mod from the ground up, which takes days, for 3d skin layers/waveycapes I had to port large parts of the 1.18 rendering engine to 1.8 because 1.8 is just unable to support it otherwise. In the end, this was a giant amount of work, not many people download them, and they have issues with many unmaintained 5+ year-old mods. Also since then, the entire code setup broke again, so I can't even make new builds/fix bugs.
And since FirstPerson does have a perfectly working 1.12 version by someone else, why drain many many hours of my limited time into that, instead of making and maintaining my other mods?

According to the RFP2 description, it's licensed under MIT. So if you find any dev that cares about 1.12, you can ask them to update/change that mod with whatever you need.

This point still stands. People that still play 1.8/1.12 will have to find devs that still use 1.8/1.12. I just prefer using the very latest MC version and supporting the most recent-ish popular versions like 1.18.2 and 1.16.5(as long as it's viable).

 I do this for fun, not because "that version has a big user base, so I have to support it". Working with extremely broken tools and bad mappings is just not fun. Mojang didn't release mappings for 1.12/1.8, and Forge stopped years ago supporting the 1.8/1.12 tools. From a developer's point of view, that version is 100% dead.

If someone can provide me with a setup that runs with Java 17, has Mixin support, working dev mode starting from the command line, best case yarn of even better Mojmap(backported) Mappings, and runs on a modern Gradle version, THEN I could look into it. Afaik only Fabric Legacy currently provides that, but if I release anything for 1.12.2 Fabric, I think some people would be even more unhappy.

Sorry, i do forget that people have lives sometimes, I didn't mean to disrespect you.
There's this for 1.12.2 MCP mappings but I don't believe it works anymore and I'm sure you're aware of it.

That's for MCP, which is interesting in it's own right, but not helpful for creating 1.12 Forge compatible Mixin mods. I vaguely remember someone having success loading 3d skin layers via lightloader. So maybe it's possible to somehow use Fabric legacy to create the mod, and then boot it on Forge. Something for later, but I'm working in my free time on Exordium for now(and fixing ItemSwapper issues when they come up).

Closing this issue. Due to work and uni I have less time, not more. And still not seeing the point of investing my time into re-inventing the mod for 1.12.2.


Missing fields in JSON output

After a lot of searching for a tool to edit EDID data and save the result to a new binary file, I came across this repo.
However, it seems that not all data is included if I run edid2json on my monitor's EDID file.
Notable, the actual higher resolution modelines are missing, there is no mention of 3840x2160 in the output of edid2json.
Do you have any idea why this is? Is it simply not implemented? It would be great if we could extend this tool to cover all this data too. I might be able to help out in doing that.
E.g., edid-decode gives me this:
edid-decode (hex):

00 ff ff ff ff ff ff 00 10 ac 05 d1 56 50 43 30
33 20 01 03 80 46 28 78 ea 3c 55 ad 4f 46 a8 27
11 50 54 a5 4b 00 a9 c0 b3 00 d1 00 71 4f a9 40
81 80 d1 c0 01 01 34 3c 80 a0 70 b0 23 40 30 20
36 00 ff ff 00 00 00 1e 00 00 00 ff 00 44 30 38
54 36 4e 33 0a 20 20 20 20 20 00 00 00 fc 00 44
45 4c 4c 20 53 33 32 32 31 51 53 41 00 00 00 fd
00 28 3c 1d 8c 21 00 0a 20 20 20 20 20 20 01 fb

02 03 40 f1 54 00 00 04 03 02 00 00 01 00 11 12
00 13 00 1f 10 5d 5e 5f 00 23 09 07 07 83 01 00
00 6d 03 0c 00 10 00 30 3c 20 00 60 01 02 03 67
00 00 00 00 00 00 00 68 1a 00 00 01 01 28 3c e6
56 5e 00 a0 a0 a0 29 50 30 20 35 00 b9 88 21 00
00 1a 02 3a 80 18 71 38 2d 40 58 2c 45 00 b9 88
21 00 00 1e 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 3b

----------------

Block 0, Base EDID:
  EDID Structure Version & Revision: 1.3
  Vendor & Product Identification:
    Manufacturer: DEL
    Model: 53509
    Serial Number: 809717846
    Made in: week 51 of 2022
  Basic Display Parameters & Features:
    Digital display
    Maximum image size: 70 cm x 40 cm
    Gamma: 2.20
    DPMS levels: Standby Suspend Off
    RGB color display
    First detailed timing is the preferred timing
  Color Characteristics:
    Red  : 0.6757, 0.3115
    Green: 0.2763, 0.6562
    Blue : 0.1533, 0.0673
    White: 0.3134, 0.3291
  Established Timings I & II:
    IBM     :   720x400    70.081663 Hz   9:5     31.467 kHz     28.320000 MHz
    DMT 0x04:   640x480    59.940476 Hz   4:3     31.469 kHz     25.175000 MHz
    DMT 0x06:   640x480    75.000000 Hz   4:3     37.500 kHz     31.500000 MHz
    DMT 0x09:   800x600    60.316541 Hz   4:3     37.879 kHz     40.000000 MHz
    DMT 0x0b:   800x600    75.000000 Hz   4:3     46.875 kHz     49.500000 MHz
    DMT 0x10:  1024x768    60.003840 Hz   4:3     48.363 kHz     65.000000 MHz
    DMT 0x12:  1024x768    75.028582 Hz   4:3     60.023 kHz     78.750000 MHz
    DMT 0x24:  1280x1024   75.024675 Hz   5:4     79.976 kHz    135.000000 MHz
  Standard Timings:
    DMT 0x53:  1600x900    60.000000 Hz  16:9     60.000 kHz    108.000000 MHz (RB)
    DMT 0x3a:  1680x1050   59.954250 Hz  16:10    65.290 kHz    146.250000 MHz
    DMT 0x45:  1920x1200   59.884600 Hz  16:10    74.556 kHz    193.250000 MHz
    DMT 0x15:  1152x864    75.000000 Hz   4:3     67.500 kHz    108.000000 MHz
    DMT 0x33:  1600x1200   60.000000 Hz   4:3     75.000 kHz    162.000000 MHz
    DMT 0x23:  1280x1024   60.019740 Hz   5:4     63.981 kHz    108.000000 MHz
    DMT 0x52:  1920x1080   60.000000 Hz  16:9     67.500 kHz    148.500000 MHz
  Detailed Timing Descriptors:
    DTD 1:  1920x1200   59.996886 Hz  16:10    74.096 kHz    154.120000 MHz (255 mm x 255 mm)
                 Hfront   48 Hsync  32 Hback   80 Hpol P
                 Vfront    3 Vsync   6 Vback   26 Vpol P
    Display Product Serial Number: 'D08T6N3'
    Display Product Name: 'DELL S3221QSA'
    Display Range Limits:
      Monitor ranges (GTF): 40-60 Hz V, 29-140 kHz H, max dotclock 330 MHz
  Extension blocks: 1
Checksum: 0xfb

----------------

Block 1, CTA-861 Extension Block:
  Revision: 3
  Underscans IT Video Formats by default
  Basic audio support
  Supports YCbCr 4:4:4
  Supports YCbCr 4:2:2
  Native detailed modes: 1
  Video Data Block:
    VIC   4:  1280x720    60.000000 Hz  16:9     45.000 kHz     74.250000 MHz
    VIC   3:   720x480    59.940060 Hz  16:9     31.469 kHz     27.000000 MHz
    VIC   2:   720x480    59.940060 Hz   4:3     31.469 kHz     27.000000 MHz
    VIC   1:   640x480    59.940476 Hz   4:3     31.469 kHz     25.175000 MHz
    VIC  17:   720x576    50.000000 Hz   4:3     31.250 kHz     27.000000 MHz
    VIC  18:   720x576    50.000000 Hz  16:9     31.250 kHz     27.000000 MHz
    VIC  19:  1280x720    50.000000 Hz  16:9     37.500 kHz     74.250000 MHz
    VIC  31:  1920x1080   50.000000 Hz  16:9     56.250 kHz    148.500000 MHz
    VIC  16:  1920x1080   60.000000 Hz  16:9     67.500 kHz    148.500000 MHz
    VIC  93:  3840x2160   24.000000 Hz  16:9     54.000 kHz    297.000000 MHz
    VIC  94:  3840x2160   25.000000 Hz  16:9     56.250 kHz    297.000000 MHz
    VIC  95:  3840x2160   30.000000 Hz  16:9     67.500 kHz    297.000000 MHz
  Audio Data Block:
    Linear PCM:
      Max channels: 2
      Supported sample rates (kHz): 48 44.1 32
      Supported sample sizes (bits): 24 20 16
  Speaker Allocation Data Block:
    FL/FR - Front Left/Right
  Vendor-Specific Data Block (HDMI), OUI 00-0C-03:
    Source physical address: <IP_ADDRESS>
    DC_36bit
    DC_30bit
    Maximum TMDS clock: 300 MHz
    Extended HDMI video details:
      HDMI VICs:
        HDMI VIC 1:  3840x2160   30.000000 Hz  16:9     67.500 kHz    297.000000 MHz
        HDMI VIC 2:  3840x2160   25.000000 Hz  16:9     56.250 kHz    297.000000 MHz
        HDMI VIC 3:  3840x2160   24.000000 Hz  16:9     54.000 kHz    297.000000 MHz
  Vendor-Specific Data Block, OUI 00-00-00:
    00 00 00 00                                     '....'
  Vendor-Specific Data Block (AMD), OUI 00-00-1A:
    Version: 1.1
    Minimum Refresh Rate: 40 Hz
    Maximum Refresh Rate: 60 Hz
    Flags 1.x: 0xe6 (MCCS)
  Detailed Timing Descriptors:
    DTD 2:  2560x1440   59.950550 Hz  16:9     88.787 kHz    241.500000 MHz (697 mm x 392 mm)
                 Hfront   48 Hsync  32 Hback   80 Hpol P
                 Vfront    3 Vsync   5 Vback   33 Vpol N
    DTD 3:  1920x1080   60.000000 Hz  16:9     67.500 kHz    148.500000 MHz (697 mm x 392 mm)
                 Hfront   88 Hsync  44 Hback  148 Hpol P
                 Vfront    4 Vsync   5 Vback   36 Vpol P
Checksum: 0x3b  Unused space in Extension Block: 27 bytes

Whereas edid2json on the same EDID file gives me this:
{
    "Base": {
        "Basic Display": {
            "Aspect ratio (landscape)": null,
            "Aspect ratio (portrait)": null,
            "Color Bit Depth": null,
            "Continuous frequency supported": false,
            "DPM active-off supported": true,
            "DPM standby supported": true,
            "DPM suspend supported": true,
            "Digital Video Interface Standard Support": null,
            "Display color type": "RGB 4:4:4 + YCrCb 4:4:4",
            "Display gamma": 2.2,
            "Maximum dimensions (cm)": {
                "x": 70,
                "y": 40
            },
            "Preferred timing includes native timing pixel format and refresh rate": true,
            "Video input type": "Digital",
            "sRGB Standard is default colour space": false
        },
        "Chromaticity": {
            "Blue": {
                "x": 157,
                "y": 69
            },
            "Green": {
                "x": 283,
                "y": 672
            },
            "Red": {
                "x": 692,
                "y": 319
            },
            "White": {
                "x": 321,
                "y": 337
            }
        },
        "Descriptors": [
            {
                "Addressable": {
                    "x": 1920,
                    "y": 1200
                },
                "Blanking": {
                    "x": 160,
                    "y": 35
                },
                "Border": {
                    "x": 0,
                    "y": 0
                },
                "Front porch": {
                    "x": 48,
                    "y": 3
                },
                "Image size (mm)": {
                    "x": 255,
                    "y": 255
                },
                "Interlace": false,
                "Pixel clock (MHz)": 154.12,
                "Stereo viewing": "No stereo",
                "Sync pulse": {
                    "x": 32,
                    "y": 6
                },
                "Sync type": {
                    "Horizontal sync (outside of V-sync)": "Positive",
                    "Type": "Digital Separate Sync",
                    "Vertical sync": "Positive"
                },
                "Type": "Detailed Timing Descriptor"
            },
            {
                "Data string": "D08T6N3",
                "Type": "Display Product Serial Number"
            },
            {
                "Data string": "DELL S3221QSA",
                "Type": "Display Product Name"
            },
            {
                "Horizontal rate (kHz)": {
                    "Maximum": 140,
                    "Minimum": 29
                },
                "Pixel clock (MHz)": 330,
                "Subtype": "Default GTF supported",
                "Type": "Display Range Limits Descriptor",
                "Vertical rate (Hz)": {
                    "Maximum": 60,
                    "Minimum": 40
                }
            }
        ],
        "Established Timing": {
            "1024x768 @ 60 Hz": true,
            "1024x768 @ 72 Hz": false,
            "1024x768 @ 75 Hz": true,
            "1024x768 @ 87 Hz, interlaced (1024x768i)": false,
            "1152x870 @ 75 Hz (Apple Macintosh II)": false,
            "1280x1024 @ 75 Hz": true,
            "640x480 @ 60 Hz": true,
            "640x480 @ 67 Hz": false,
            "640x480 @ 72 Hz": false,
            "640x480 @ 75 Hz": true,
            "720x400 @ 70 Hz": true,
            "720x400 @ 88 Hz": false,
            "800x600 @ 56 Hz": false,
            "800x600 @ 60 Hz": true,
            "800x600 @ 72 Hz": false,
            "800x600 @ 75 Hz": true,
            "832x624 @ 75 Hz": false,
            "Manufacturer specific display mode 1": false,
            "Manufacturer specific display mode 2": false,
            "Manufacturer specific display mode 3": false,
            "Manufacturer specific display mode 4": false,
            "Manufacturer specific display mode 5": false,
            "Manufacturer specific display mode 6": false,
            "Manufacturer specific display mode 7": false
        },
        "Manufacturer Info": {
            "ID Product Code": 53509,
            "Manufacturer ID": "DEL",
            "Model year": null,
            "Serial number": 809717846,
            "Week of manufacture": 51,
            "Year of manufacture": 2022
        },
        "Standard Timing": [
            {
                "Frequency": 60,
                "Ratio": "16:9",
                "X resolution": 1600
            },
            {
                "Frequency": 60,
                "Ratio": "16:10",
                "X resolution": 1680
            },
            {
                "Frequency": 60,
                "Ratio": "16:10",
                "X resolution": 1920
            },
            {
                "Frequency": 75,
                "Ratio": "4:3",
                "X resolution": 1152
            },
            {
                "Frequency": 60,
                "Ratio": "4:3",
                "X resolution": 1600
            },
            {
                "Frequency": 60,
                "Ratio": "5:4",
                "X resolution": 1280
            },
            {
                "Frequency": 60,
                "Ratio": "16:9",
                "X resolution": 1920
            }
        ]
    },
    "Extensions": [
        {
            "Basic audio": true,
            "Data blocks": [
                {
                    "Short video descriptors": [
                        {
                            "Nativity": "Unspecified",
                            "VIC": 0
                        },
                        {
                            "Nativity": "Unspecified",
                            "VIC": 0
                        },
                        {
                            "Nativity": "Non-native",
                            "VIC": 4
                        },
                        {
                            "Nativity": "Non-native",
                            "VIC": 3
                        },
                        {
                            "Nativity": "Non-native",
                            "VIC": 2
                        },
                        {
                            "Nativity": "Unspecified",
                            "VIC": 0
                        },
                        {
                            "Nativity": "Unspecified",
                            "VIC": 0
                        },
                        {
                            "Nativity": "Non-native",
                            "VIC": 1
                        },
                        {
                            "Nativity": "Unspecified",
                            "VIC": 0
                        },
                        {
                            "Nativity": "Non-native",
                            "VIC": 17
                        },
                        {
                            "Nativity": "Non-native",
                            "VIC": 18
                        },
                        {
                            "Nativity": "Unspecified",
                            "VIC": 0
                        },
                        {
                            "Nativity": "Non-native",
                            "VIC": 19
                        },
                        {
                            "Nativity": "Unspecified",
                            "VIC": 0
                        },
                        {
                            "Nativity": "Non-native",
                            "VIC": 31
                        },
                        {
                            "Nativity": "Non-native",
                            "VIC": 16
                        },
                        {
                            "Nativity": "Unspecified",
                            "VIC": 93
                        },
                        {
                            "Nativity": "Unspecified",
                            "VIC": 94
                        },
                        {
                            "Nativity": "Unspecified",
                            "VIC": 95
                        },
                        {
                            "Nativity": "Unspecified",
                            "VIC": 0
                        }
                    ],
                    "Type": "Video Data Block"
                },
                {
                    "Short audio descriptors": [
                        {
                            "Bit depth": {
                                "16 bit": true,
                                "20 bit": true,
                                "24 bit": true
                            },
                            "Max channel count": 2,
                            "Supported sampling": {
                                "176.4kHz": false,
                                "192kHz": false,
                                "32kHz": true,
                                "44.1kHz": true,
                                "48kHz": true,
                                "88.2kHz": false,
                                "96kHz": false
                            },
                            "Type": "Linear Pulse Code Modulation (LPCM)"
                        }
                    ],
                    "Type": "Audio Data Block"
                },
                {
                    "Speaker allocation": {
                        "Front Center": false,
                        "Front Center High": false,
                        "Front Left / Front Right": true,
                        "Front Left Center / Front Right Center": false,
                        "Front Left High / Front Right High": false,
                        "Front Left Wide / Front Right Wide": false,
                        "LFE": false,
                        "Rear Center": false,
                        "Rear Left / Rear Right": false,
                        "Rear Left Center / Rear Right Center": false,
                        "Top Center": false
                    },
                    "Type": "Speaker Allocation Block"
                },
                {
                    "Data payload": [
                        16,
                        0,
                        48,
                        60,
                        32,
                        0,
                        96,
                        1,
                        2,
                        3
                    ],
                    "IEEE OUI": "00-0c-03",
                    "Type": "Vendor-Specific Data Block"
                },
                {
                    "Data payload": [
                        0,
                        0,
                        0,
                        0
                    ],
                    "IEEE OUI": "00-00-00",
                    "Type": "Vendor-Specific Data Block"
                },
                {
                    "Data payload": [
                        1,
                        1,
                        40,
                        60,
                        230
                    ],
                    "IEEE OUI": "00-00-1a",
                    "Type": "Vendor-Specific Data Block"
                }
            ],
            "Descriptors": [
                {
                    "Addressable": {
                        "x": 2560,
                        "y": 1440
                    },
                    "Blanking": {
                        "x": 160,
                        "y": 41
                    },
                    "Border": {
                        "x": 0,
                        "y": 0
                    },
                    "Front porch": {
                        "x": 48,
                        "y": 3
                    },
                    "Image size (mm)": {
                        "x": 697,
                        "y": 392
                    },
                    "Interlace": false,
                    "Pixel clock (MHz)": 241.5,
                    "Stereo viewing": "No stereo",
                    "Sync pulse": {
                        "x": 32,
                        "y": 5
                    },
                    "Sync type": {
                        "Horizontal sync (outside of V-sync)": "Positive",
                        "Type": "Digital Separate Sync",
                        "Vertical sync": "Negative"
                    },
                    "Type": "Detailed Timing Descriptor"
                },
                {
                    "Addressable": {
                        "x": 1920,
                        "y": 1080
                    },
                    "Blanking": {
                        "x": 280,
                        "y": 45
                    },
                    "Border": {
                        "x": 0,
                        "y": 0
                    },
                    "Front porch": {
                        "x": 88,
                        "y": 4
                    },
                    "Image size (mm)": {
                        "x": 697,
                        "y": 392
                    },
                    "Interlace": false,
                    "Pixel clock (MHz)": 148.5,
                    "Stereo viewing": "No stereo",
                    "Sync pulse": {
                        "x": 44,
                        "y": 5
                    },
                    "Sync type": {
                        "Horizontal sync (outside of V-sync)": "Positive",
                        "Type": "Digital Separate Sync",
                        "Vertical sync": "Positive"
                    },
                    "Type": "Detailed Timing Descriptor"
                }
            ],
            "Native DTD count": 1,
            "Type": "CEA-861 Series Timing Extension",
            "Underscan": true,
            "Version": 3,
            "YCbCr 4:2:2": true,
            "YCbCr 4:4:4": true
        }
    ],
    "Version": "1.3"
}

Yeah, it's not intentionally excluded. Happy to accept contributions if you can add that.
Trying to figure out where that extra timing is: looks like just a detailed timing descriptor block inside the CTA extension block? That should be supported, there must be a bug or something, because I'm pretty sure I remember seeing something in an equivalent place when I was making the JSON schema for this.

Oh nvm the 3840 resolutions are in:

short video descriptors - yeah those aren't probably being parsed right
HDMI extension - which also looks like it's not being parsed/output right.

So yeah, missing features. Contributions welcome.

The short video descriptors look like they're parsed correctly for the most part. According to this wikipedia page, those are one byte each, pointing into a lookup table of resolutions.
The three before the last one, the 93, 94, and 95, are the 3840x2160 modes for 24, 25, and 30 fps, it just needs a way to map VICs to resolutions; the last one might be a bug though.
It looks like the vendor specific blocks are parsed correctly, just not interpreted.


add fat free framework to micro frameworks

It is arguably micro, but fat free for sure.
I love this framework, it really helps without too much constraints.
Definatly awesome.

Already suggested.

Whats the verdict then

See https://github.com/ziadoz/awesome-php/pull/150#issuecomment-48866440

I insist

@ziadoz what else do you need to finally add it to the list? It's the 2nd (3rd?) time you just add the suggestion-tag.

Well, I always understood this list to be a collection of PHP things deemed awesome by @ziadoz.  It's his list, and no one else's opinion really counts.  That being said, F3 is GPLv3, where most PHP frameworks and libraries are MIT, BSD, or Apache licensed.  Those licenses give the user carte blanche to do just about anything, where the GPL (especially v. 3) places certain obligations on the user with regard to their own code which depends on the library.  If you're writing code for a client or employer, that can be a serious issue.  That's always kept me from getting into F3, although it does have some nice features.

I used f3 in commercial projects. a bsd license is available in exchange of a small contribution to the project. It's reasonable and fair.
I don't think license should make it less awesome.

Thanks for the suggestion, but I've no plans to add F3 at the moment.

+1 Fat Free


WIP: Eureka HealthCheck integration

First pass at a eureka 1.x client that is,

Configurable solely via Archaius2
Integrates with Karyon3 health check.  HealthCheck binding is optional and defaults to up.  An instance will be automatically marked as up once the injector has been created and health check is up.

To enable simply add the EurekaModule when setting up Karyon.

NetflixOSS » karyon » karyon-pull-requests #98 SUCCESS
This pull request looks good

NetflixOSS » karyon » karyon-pull-requests #101 FAILURE
Looks like there's a problem with this pull request

NetflixOSS » karyon » karyon-pull-requests #108 FAILURE
Looks like there's a problem with this pull request

NetflixOSS » karyon » karyon-pull-requests #109 FAILURE
Looks like there's a problem with this pull request

NetflixOSS » karyon » karyon-pull-requests #110 FAILURE
Looks like there's a problem with this pull request

NetflixOSS » karyon » karyon-pull-requests #111 FAILURE
Looks like there's a problem with this pull request

NetflixOSS » karyon » karyon-pull-requests #112 SUCCESS
This pull request looks good

NetflixOSS » karyon » karyon-pull-requests #113 ABORTED


chore(OperatorNorm/Completeness): drop a duplicate instance

!bench

How can I debug these increases in compilation time?

!bench

@urkud is it the case that the remaining instance is not wrapped in a noncomputable section?

!bench

I'm at a loss then.

!bench


RAM Out of memory when using Streaming Dataloader

I found a problem with Data Loader when using it to load Streaming Dataset from S3 bucket. I only loop through batches in dataloader and try not to refer any variable. Even so the memory in RAM keep increasing until overflow.
Environment

OS: [Ubuntu 20.04]
Hardware (GPU, or instance type): c5.2xlarge

Here is my Custom streamingDataset class:
class CustomRemoteDataset(StreamingDataset):
    def __init__(
                self,
                streams: Optional[Sequence[Stream]] = None,
                remote: Optional[str] = None,
                local: Optional[str] = None,
                split: Optional[str] = None,
                shuffle: bool = False,
                predownload: int = 8,
                download_retry: int = 2,
                download_timeout: float = 120,
                batch_size: Optional[int] = None,
                num_canonical_nodes: Optional[int] = None,
                ) -> None:

        super().__init__(
            streams=streams,
            remote=remote,
            local=local,
            split=split,
            shuffle=shuffle,
            predownload=predownload,
            download_retry=download_retry,
            download_timeout=download_timeout,
            cache_limit="30gb",
            batch_size=batch_size,
            num_canonical_nodes=num_canonical_nodes
        )

    def __getitem__(self, index):
        sample = super().__getitem__(index)

        return index, sample["captions"]

Here is my Dataloader implementation
if isinstance(remote, str) and isinstance(local, str):
        remote, local = [remote], [local]

streams = []
for r, l in zip(remote, local):
    streams.append(Stream(remote=r, local=l, download_retry=download_retry, download_timeout=download_timeout))

dataset = CustomRemoteDataset(
                                streams=streams,
                                split=None,
                                predownload=8,
                                download_retry=download_retry,
                                download_timeout=download_timeout,
                                batch_size=batch_size,
                                shuffle=False,
                                num_canonical_nodes=None,
                                )

dataloader = DataLoader(
        dataset=dataset,
        batch_size=16,
        num_workers=4
    )

for id, batch in enumerate(dataloader):
    continue

I have no idea what am I doing wrong here. Please help me to fix it. Thanks

@kietbg0079 This is interesting. We haven't seen such a case before. At which batch number do you see OOM? Can you try a few experiments?

You do not need to touch predownload, num_canonical_nodes. Could you keep it as default? Also, no need to touch download_retry and download_timeout unless your network bandwidth is not good.
All things are in point 1, plus remove the cache_limit parameter.

I am running into the same issue, but in my case it is not feasible to set num_worker = 0. I found that our system also out-of-memories around 10,000-15,0000 samples into the dataset on our device with around 250GB of RAM. We have around 1.4 million shards, and each sample is around 8-10 MB in size.
Below is my code. It is extremely similar to the above snippet.
class ImageTokenDataset(StreamingDataset):
    def __init__(
        self,
        remote: str,
        batch_size: int,
        shuffle: bool = False,
        local: str | None = None,
        split: str | None = None,
        transforms: T.Compose = T.Compose([T.ToImage(), T.ToDtype(torch.float32)]),
        input_key: str = "jpg",
        cond_key: str = "cond",
        cond_dropout_rate: float = 0.5,
        predownload: int | None = None,
        **kwargs,
    ) -> None:
        super().__init__(
            local=local,
            remote=remote,
            shuffle=shuffle,
            batch_size=batch_size,
            split=split,
            predownload=predownload,
            **kwargs,
        )

        self.batch_size = batch_size
        self.transforms = transforms
        self.input_key = input_key
        self.cond_key = cond_key
        self.cond_dropout_rate = cond_dropout_rate

    def __getitem__(self, at: int) -> Sample:
        obj = super().__getitem__(at)

        _input = self.transforms(obj[self.input_key])
        cond = torch.tensor(obj[self.cond_key])

        if torch.rand(1) < self.cond_dropout_rate:
            cond = torch.zeros_like(cond)

        return inputs, cond

    def to_dataloader(
        num_workers: int = 8,
        prefetch_factor: int | None = None,
        persistent_workers: bool = True,
        pin_memory: bool = True,
        drop_last: bool = True,
        batch_size: int | None = None,
    ):
        return StreamingDataLoader(
            self,
            batch_size=batch_size or self.batch_size,
            drop_last=drop_last,
            prefetch_factor=prefetch_factor,
            num_workers=num_workers,
            persistent_workers=persistent_workers,
            pin_memory=pin_memory,
        )

if __name__ == "__main__":
    dataset = ImageTokenDataset(
        remote=remote_path,
        local="/tmp/dataset/train",
        split="train",
        input_key="jpg",
        cond_key="t5",
        cond_dropout_rate=0.5,
    )
    dataloader = dataset.to_dataloader(
        num_workers=16, persistent_workers=True, pin_memory=False, prefetch_factor=16
    )

    for _ in tqdm(dataloader):
        pass


[AutoRelease] t2-maintenance-2022-11-11-43402(can only be merged by SDK owner)

https://github.com/Azure/sdk-release-request/issues/3400
Live test success
https://dev.azure.com/azure-sdk/internal/_build?definitionId=1274

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


Add contains for JSON.

Add the contains function for JSON and make pg::gin index valid for JSON (it's this operation that is optimized by GIN index).
Fixes #5703

This PR is on top of #5826 mostly because it also uses "explain" tests and changes the schema and setup for that.


samgeo.hq_sam not working in docker

Same issue as reported in: https://github.com/opengeos/segment-geospatial/issues/173
However, since the solution provided (install with pip install git+https://github.com/SysCV/sam-hq.git) there does not work, I tried running the docker installation instead. But throws same error:
RuntimeError: Attempting to deserialize object on a CUDA device but torch.cuda.is_available() is False. If you are running on a CPU-only machine, please use torch.load with map_location=torch.device('cpu') to map your storages to the CPU.
suggesting the docker image was not built with the alternative pip install (or, indeed, the alternative install does not work).
Environment Information

samgeo version: docker: giswqs/segment-geospatial:latest
Python version: 3.11.6
Operating System: linux

Is this related to [https://github.com/opengeos/segment-geospatial/issues/201] ?

No. Not related to #201. I want to run samgeo.hq_sam on the CPU in the same way you can run "normal" samgeo on the CPU.
The solution proposed in #173 does not work, whether you install locally or in a docker container.
The speed difference between running inference with samgeo on a GPU or a CPU is not too dramatic, esp. when testing (GPU order of 6 faster). The models require a pretty large GPU forcing you to move to cloud resources. I prefer running on CPU.

Try adding device='cpu' when initializing SamGeo:
from samgeo.hq_sam import SamGeo

sam = SamGeo(model_type="vit_h", sam_kwargs=None, device='cpu')

See if it helps!

Thanks for the tip, but I tried that, and it doesn't work. The problem is in the sam_hq implementation, which does not check for the device key. To get this solved, you need to go into /opt/conda/lib/python3.11/site-packages/segment_anything_hq/build_sam.py
and edit line 160:
state_dict = torch.load(f, map_location=torch.device('cpu'))

which is for the vit_h model, you need to edit the equivalent statements for the other models. This is the quick and dirty solution, it would be better to do this on the basis of the device keyword.
(I assume use of the giswqs/segment-geospatial docker image. I commit the revised container to giswqs/segment-geospatial-cpu)
The CPU inference is some factor 6 slower (on 1024x1024 tiles) than on a high-end hosted GPU, but that's good enough for testing.


More smokeables

Description

We need more smokeables. I'm already working on this, so just making this issue to camp it.

This is done, dunno why I forgot to close this.


YARN-10833. Set the X-FRAME-OPTIONS header for the default contexts.

NOTICE
Please create an issue in ASF JIRA before opening a pull request,
and you need to set the title of the pull request which starts with
the corresponding JIRA issue number. (e.g. HADOOP-XXXXX. Fix a typo in YYY.)
For more details, please see https://cwiki.apache.org/confluence/display/HADOOP/How+To+Contribute

:confetti_ball: +1 overall

Vote
Subsystem
Runtime
Logfile
Comment

+0 :ok:
reexec
0m 38s

Docker mode activated.

_ Prechecks _

+1 :green_heart:
dupname
0m  0s

No case conflicting files found.

+0 :ok:
codespell
0m  1s

codespell was not available.

+1 :green_heart:
@author
0m  0s

The patch does not contain any @author tags.

+1 :green_heart:
test4tests
0m  0s

The patch appears to include 1 new or modified test files.

_ trunk Compile Tests _

+0 :ok:
mvndep
13m 27s

Maven dependency ordering for branch

+1 :green_heart:
mvninstall
20m 40s

trunk passed

+1 :green_heart:
compile
9m 58s

trunk passed with JDK Ubuntu-11.0.11+9-Ubuntu-0ubuntu2.20.04

+1 :green_heart:
compile
8m 30s

trunk passed with JDK Private Build-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10

+1 :green_heart:
checkstyle
1m 38s

trunk passed

+1 :green_heart:
mvnsite
2m 24s

trunk passed

+1 :green_heart:
javadoc
2m  8s

trunk passed with JDK Ubuntu-11.0.11+9-Ubuntu-0ubuntu2.20.04

+1 :green_heart:
javadoc
2m  0s

trunk passed with JDK Private Build-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10

+1 :green_heart:
spotbugs
4m 59s

trunk passed

+1 :green_heart:
shadedclient
19m 23s

branch has no errors when building and testing our client artifacts.

_ Patch Compile Tests _

+0 :ok:
mvndep
0m 28s

Maven dependency ordering for patch

+1 :green_heart:
mvninstall
1m 42s

the patch passed

+1 :green_heart:
compile
11m 48s

the patch passed with JDK Ubuntu-11.0.11+9-Ubuntu-0ubuntu2.20.04

+1 :green_heart:
javac
11m 48s

the patch passed

+1 :green_heart:
compile
10m 29s

the patch passed with JDK Private Build-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10

+1 :green_heart:
javac
10m 29s

the patch passed

+1 :green_heart:
blanks
0m  0s

The patch has no blanks issues.

+1 :green_heart:
checkstyle
2m  6s

the patch passed

+1 :green_heart:
mvnsite
2m 18s

the patch passed

+1 :green_heart:
javadoc
1m 51s

the patch passed with JDK Ubuntu-11.0.11+9-Ubuntu-0ubuntu2.20.04

+1 :green_heart:
javadoc
1m 50s

the patch passed with JDK Private Build-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10

+1 :green_heart:
spotbugs
5m  3s

the patch passed

+1 :green_heart:
shadedclient
20m 58s

patch has no errors when building and testing our client artifacts.

_ Other Tests _

+1 :green_heart:
unit
5m 21s

hadoop-yarn-common in the patch passed.

+1 :green_heart:
unit
97m 44s

hadoop-yarn-server-resourcemanager in the patch passed.

+1 :green_heart:
asflicense
0m 50s

The patch does not generate ASF License warnings.

248m 45s

Subsystem
Report/Notes

Docker
ClientAPI=1.41 ServerAPI=1.41 base: https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-3203/2/artifact/out/Dockerfile

GITHUB PR
https://github.com/apache/hadoop/pull/3203

Optional Tests
dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient spotbugs checkstyle codespell

uname
Linux 50f882a1f8f5 4.15.0-60-generic #67-Ubuntu SMP Thu Aug 22 16:55:30 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev-support/bin/hadoop.sh

git revision
trunk / 08e8469f0e86b28c12426cdfbde7c3fba1b64baa

Default Java
Private Build-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10

Multi-JDK versions
/usr/lib/jvm/java-11-openjdk-amd64:Ubuntu-11.0.11+9-Ubuntu-0ubuntu2.20.04 /usr/lib/jvm/java-8-openjdk-amd64:Private Build-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10

Test Results
https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-3203/2/testReport/

Max. process+thread count
930 (vs. ulimit of 5500)

modules
C: hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager U: hadoop-yarn-project/hadoop-yarn

Console output
https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-3203/2/console

versions
git=2.25.1 maven=3.6.3 spotbugs=4.2.2

Powered by
Apache Yetus 0.14.0-SNAPSHOT https://yetus.apache.org

This message was automatically generated.

:confetti_ball: +1 overall

Vote
Subsystem
Runtime
Logfile
Comment

+0 :ok:
reexec
0m 51s

Docker mode activated.

_ Prechecks _

+1 :green_heart:
dupname
0m  0s

No case conflicting files found.

+0 :ok:
codespell
0m  1s

codespell was not available.

+1 :green_heart:
@author
0m  0s

The patch does not contain any @author tags.

+1 :green_heart:
test4tests
0m  0s

The patch appears to include 1 new or modified test files.

_ trunk Compile Tests _

+0 :ok:
mvndep
12m 31s

Maven dependency ordering for branch

+1 :green_heart:
mvninstall
23m  6s

trunk passed

+1 :green_heart:
compile
10m 13s

trunk passed with JDK Ubuntu-11.0.11+9-Ubuntu-0ubuntu2.20.04

+1 :green_heart:
compile
8m 35s

trunk passed with JDK Private Build-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10

+1 :green_heart:
checkstyle
1m 36s

trunk passed

+1 :green_heart:
mvnsite
1m 54s

trunk passed

+1 :green_heart:
javadoc
1m 43s

trunk passed with JDK Ubuntu-11.0.11+9-Ubuntu-0ubuntu2.20.04

+1 :green_heart:
javadoc
1m 38s

trunk passed with JDK Private Build-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10

+1 :green_heart:
spotbugs
3m 46s

trunk passed

+1 :green_heart:
shadedclient
17m 45s

branch has no errors when building and testing our client artifacts.

_ Patch Compile Tests _

+0 :ok:
mvndep
0m 23s

Maven dependency ordering for patch

+1 :green_heart:
mvninstall
1m 27s

the patch passed

+1 :green_heart:
compile
9m 29s

the patch passed with JDK Ubuntu-11.0.11+9-Ubuntu-0ubuntu2.20.04

+1 :green_heart:
javac
9m 29s

the patch passed

+1 :green_heart:
compile
8m 29s

the patch passed with JDK Private Build-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10

+1 :green_heart:
javac
8m 29s

the patch passed

+1 :green_heart:
blanks
0m  0s

The patch has no blanks issues.

+1 :green_heart:
checkstyle
1m 33s

the patch passed

+1 :green_heart:
mvnsite
1m 49s

the patch passed

+1 :green_heart:
javadoc
1m 34s

the patch passed with JDK Ubuntu-11.0.11+9-Ubuntu-0ubuntu2.20.04

+1 :green_heart:
javadoc
1m 31s

the patch passed with JDK Private Build-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10

+1 :green_heart:
spotbugs
4m  1s

the patch passed

+1 :green_heart:
shadedclient
17m 53s

patch has no errors when building and testing our client artifacts.

_ Other Tests _

+1 :green_heart:
unit
4m 39s

hadoop-yarn-common in the patch passed.

+1 :green_heart:
unit
99m  0s

hadoop-yarn-server-resourcemanager in the patch passed.

+1 :green_heart:
asflicense
0m 45s

The patch does not generate ASF License warnings.

236m 50s

Subsystem
Report/Notes

Docker
ClientAPI=1.41 ServerAPI=1.41 base: https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-3203/3/artifact/out/Dockerfile

GITHUB PR
https://github.com/apache/hadoop/pull/3203

Optional Tests
dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient spotbugs checkstyle codespell

uname
Linux 55974ccdcadd 4.15.0-147-generic #151-Ubuntu SMP Fri Jun 18 19:21:19 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev-support/bin/hadoop.sh

git revision
trunk / 08e8469f0e86b28c12426cdfbde7c3fba1b64baa

Default Java
Private Build-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10

Multi-JDK versions
/usr/lib/jvm/java-11-openjdk-amd64:Ubuntu-11.0.11+9-Ubuntu-0ubuntu2.20.04 /usr/lib/jvm/java-8-openjdk-amd64:Private Build-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10

Test Results
https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-3203/3/testReport/

Max. process+thread count
930 (vs. ulimit of 5500)

modules
C: hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager U: hadoop-yarn-project/hadoop-yarn

Console output
https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-3203/3/console

versions
git=2.25.1 maven=3.6.3 spotbugs=4.2.2

Powered by
Apache Yetus 0.14.0-SNAPSHOT https://yetus.apache.org

This message was automatically generated.


Cancel button does not work as expected - UnpBootFormEditor

The Cancel button on the full screen mode uses history.go(-1).
This should be a custom property for this control. Currently if I have a link to a second XPage within my UnpBootFormEditor and navigate to this XPage, going back to the UnpBootFormEditor and tapping 'Cancel' takes me back to the second XPage, not the XPage that called the UnpBootFormEditor.

Added a new custom property called "fullpagemodecancellink" which will be used for the cancel link when fullpagemode is true. It will be ignored otherwise. If this new property is not supplied then the current history.go(-1) is used.