Mistakes in Arduino example

Hi,
The Arduino example you have (arduino_csv_example.ino) seem to have a few mistakes.
Line 76:    int numIntegrationBlocks = (intTime * 1000) / blockTime;
Here the numIntegrationBlocks will overflow as on Uno it will not fit in 15 bit signed integer and the following loop never executes
Line 49: int read_time = 35;  // Amount of time that the analogRead() procedure takes (in microseconds)
The comment at line 130 is actually more correct - on Uno analogRead() will take 111 microseconds  (according to http://meettechniek.info/embedded/arduino-analog.html). In any case what the read_time is set to seems to be quite a way off.
Could you please correct them since the project is shared publically?

I think this code was adapted from my original version for the ChipKit, which uses a PIC32 processor, and is substantially faster.  While the ChipKit platform advertises as being Arduino compatible, there are still some minor differences (like these) if you're using it on something like an Uno.

I think at some point I will need to change it from loop based timing to
use a actual timer for timing.
On Fri, Sep 25, 2015 at 10:19 AM, PeterAJansen<EMAIL_ADDRESS>wrote:

I think this code was adapted from my original version for the ChipKit,
which uses a PIC32 processor, and is substantially faster. While the
ChipKit platform advertises as being Arduino compatible, there are still
some minor differences (like these) if you're using it on something like an
Uno.
—
Reply to this email directly or view it on GitHub
https://github.com/groupgets/c12666ma/issues/1#issuecomment-143292541.

--
Sashi Ono
Principal Embedded Systems Engineer
(805) 699-6690
www.pureengineering.com

Peter, PureEngineering
I guessed as much - but this is published as working example for Uno and I have my doubts as to whether it actually is working.
I have a little project of my own with Hamamatsu spectrometer - mine is based on Particle Proton board and separate ADC with dual reference voltage. At the moment I am basing it on Arducoder and PureEngineering work so thank you both very much for paving the way (figuratively speaking ;)
I will publish the schematics, board and code on GitHub when its done and tested.

There is still a problem. With the timings you use for delay and analogRead() I cannot see how consistent integration time can be achieved. The pulse timing is 1 microsecs and the read time configured 35 microsecs (which is not happening by the way on Uno unless you manually setup a gain to lower the integration time) which means that all the leading and trailing pulses will be 1 microsecs  long and the one where reading occurs 112 microsecs long (on Uno). All the integration times will be skewed across the cells because they do not account for that (and integration according to Hamamatsu docs starts from reading one sensor channel to another reading of the same channel).
Why isn't analogRead() used to provide a period for clock (even if what it reads is fake) instead of delayMicroseconds(delay_time)? That would solve the problem of unevenly spaced clock and will provide reliable integration timings.

My original driver uses an external high-precision ADC with known read
times -- this might be a good choice for you if you'd like to have more
precise integration times.
On Tue, Sep 29, 2015 at 8:22 AM, Alexey-Danilchenko <
<EMAIL_ADDRESS>wrote:

There is still a problem. With the timings you use for delay and
analogRead() I cannot see how consistent integration time can be achieved.
The pulse timing is 1 microsecs and the read time configured 35 microsecs
(which is not happening by the way on Uno unless you manually setup a gain
to lower the integration time) which means that all the leading and
trailing pulses will be 1 microsecs long and the one where reading occurs
112 microsecs long (on Uno). All the integration times will be skewed
across the cells because they do not account for that (and integration
according to Hamamatsu docs starts from reading one sensor channel to
another reading of the same channel).
Why isn't analogRead() used to provide a period for clock (even if what it
reads is fake) instead of delayMicroseconds(delay_time)? That would solve
the problem of unevenly spaced clock and will provide reliable integration
timings.
—
Reply to this email directly or view it on GitHub
https://github.com/groupgets/c12666ma/issues/1#issuecomment-144092835.

That's not what I was referring to. Whether external or internal ADC - the point remains.
My design uses AD7942 ADC with two selectable references

The example the groupgets folks have here is derived from my original driver for the Chipkit, and that driver had reasonably accurate timings for the platform and ADC, minus some offset for the reading (if I remember correctly, when timing it on an oscilloscope).  It was intended to be an easy-to-understand and easily portable example to get folks up, running, and collecting data from this beautiful instrument quickly.
There are many things that are not included or could be improved in this simple driver -- for example, it doesn't include spectral compensation (datatsheet pg 3, upper left), nor does it compensate for the varying point-spread function (pg 3, upper right), or include the device-specific calibration standards provided with each microspectrometer.  The timing is also not microsecond or even millisecond accurate on any platform.
Being a work of open source, I have authored the original driver and placed it freely available for download in the hope that folks will find it useful, and (if they're so inclined), improve upon it.  If your application requires millisecond-accurate integration timing or any other features on the Uno (or any other architecture), you're both free and encouraged to incorporate these changes, and submit them to be included in this repository.  I only ask that if you include platform-specific code, that you wrap them in #define statements to make sure it doesn't break the code on other platforms.
best wishes,
Peter

Peter, I understood pretty well where the code was derived from. But my comment about problem has nothing to do with your code or its accuracy. It also has nothing to do with the code I am writing (that will be as accurate as I need). Your or mine code are for specific applications, this however is a generic code for generic use and as such it can at least benefit to be accurate starting point. Isn't this the point of having it open source as well - to make it better?
Now if we look at this example (not Arducoder's code) then how having 1microsec timing pulses and amonst them having regular 112 microseconds reading pulse per single channel reading is making timings even remotely accurate? I am not after microseconds accuracy but 100 fold difference in timing pulse length does not sound reasonable. Of course it is wildly dependent on what Arduino is used - I am reporting what happens on Uno since this is what this project specifies in a readme.
For any Arduino as I said it could be improved by simply using analogRead() (fake ones) instead of delayMicroseconds() to provide clock pulse timing - this is easier than calculate the times it takes for each Arduino board type and code them in constants.

Why are we using a breakout bord instead of using directly the C12666MA on the arduino bord ?

The sensor is analogue and needs good filtered analogue power supply to have stable results. According to my tests noise on controlling signals diminishes performance so good filtered power supply (including buffer chip) and clean digital signals are essential. In addition, the sensor in no-gain mode gives fully saturated output level at about 3V and in gain mode - about 4V. Using 5V 10 bits ADC directly will reduce the resolution and loose one bit just because of that.
I have resorted to create my own board with a socket for sensor and Particle Photon to control it with fast 14bit ADC and analogue filtered power supply chain. When fully debugged, both board and code will be open sourced (all works now I am merely tuning software and hardware bits).

Hello Alexey-Danilchenko,
Thank you for your answer.
I also appreciate your comments about the code (The Arduino example).
I've read the datasheet but i don't really understand the how to create the ST pulses and read the sensor outputs.
Could you, please send me, what (correct code) you think would have been the right way to drive the sensor, with some comments ?
Best regards

Not yet. My code will be opensourced when all is working properly - not far now.

If you'd like a working example with an external 14-bit ADC, you can see my
reference code from the Arducorder Mini at:
https://github.com/tricorderproject/arducordermini/tree/master/firmware/examples/spectrometer_c12666ma_example
The schematic is also in that repository.  The schematic includes only a PI
analog filter, and analog isn't my forte, so please let me know if you have
a better filtering scheme.  The Arducorder Mini is powered by a ~3.3V
LiPoly battery -- so it doesn't have the same issues as the somewhat noisy
USB-powered Arduino Unos -- but it does use a small booster to raise the
3.3V to 5V for the microspectrometer, so this does introduce a bit of noise.
In either case, you really have to use an external ADC with this to get a
useable range.  The Hamamatsu development kit uses a 16-bit ADC, but since
the clock speed on the spectrometer doesn't have to be terribly fast, you
can use a 14-bit ADC and oversample by 16x to functionally achieve near the
same resolution for much less cost and difficulty.
best wishes,
Peter
On Sun, Jan 24, 2016 at 1:13 PM, medic-IT<EMAIL_ADDRESS>wrote:

Hello Alexey-Danilchenko,
Thank you for your answer.
I also appreciate your comments about the code (The Arduino example).
I've read the datasheet but i don't really understand the how to create
the ST pulses and read the sensor outputs.
Could you, please send me, what (correct code) you think would have been
the right way to drive the sensor, with some comments ?
Best regards
—
Reply to this email directly or view it on GitHub
https://github.com/groupgets/c12666ma/issues/1#issuecomment-174336688.

Ok, I'll will be waiting for it.
just an other question about the c12666ma sensor, I don't really understand the Arduino example :
how he drive the sensor's différents clocks. could you give me more comments on the readSpectrometer() method ?
thank you

medic-IT, not really sure I understand the question

Hi Alexey-Danilchenko,
Sorry, I was disconnected for few days.
Thank you very much for the link you sended to me.
I'm trying to understand whitch part of it could be usefull for me.
I hope your project progresses and soon we will have the first versions


TileLayer in lieu of Mapbox?

Hi all, I’m finding in my app that I only appear to be using Mapbox to render base and overlay layers from our tile servers (ESRI)...
Was curious if you all might recommend ditching Mapbox and simply using the deck TileLayer in its place? Would there be any drawbacks in doing this?

@jfuehner
What is the tile format?
We have another framework loaders.gl which is going to support loading I3S mesh tiles and render with deck.gl.
here is an example, it is still under experimental, so the API may change.

Any plans to integrate a 3D globe or support projecting onto the Cesium globe?

@jfuehner Thanks for your feedback! 3D globe support is absolutely on the general deck.gl roadmap, and a bunch of important preparation work has been done. That said, a "full 3D" sub-project has not yet been formally prioritized (or "funded", if you will).
Regarding the prospects of deck.gl+Cesium:

the deck.gl team already has a great collaboration with Cesium (e.g. around 3D tiles/loaders.gl)
deck.gl's geospatial math libraries (e.g. @math.gl/geospatial) were developed in collaboration with Cesium.
therefore, once deck.gl adds full support (for WGS84 cartesian coordinates) to deck.gl it should be rather straightforward to make deck.gl render "on top of" Cesium
Expected complications would mainly be related to sharing WebGL contexts etc, not the 3D projections.

when rendering large quantities of complex individual real-time objects.

I have no insights into Cesium's abilities/limitations in this area, but rendering large amounts of data is certainly the primary use case deck.gl was designed for, so this might be a great use case for a deck.gl + Cesium setup.
Contacting Cesium and proposing deck.gl integration support would certainly be one way you could help us move this forward.
@shehzan10 @pjcozzi


pswapaxes doesn't work with "non-input" tensors

Currently, it is impossible to use jax.lax.pswapaxes on tensors that don't either come directly from the input or are the result of computation from the inputs.
Examples:
This works fine
def test(a):
  return jax.lax.pswapaxes(a, "i", 0)

jax.pmap(test, "i")(
    np.arange(16 * 16).reshape(16, 16))

However, if I were to ignore the a input value and instead try to do a swapping on a new tensor created, it fails with a confusing error.
def test(a):
  del a
  a = np.ones(16)
  return jax.lax.pswapaxes(a, "i", 0)

jax.pmap(test, "i")(
    np.arange(16 * 16).reshape(16, 16))

This is the resulting error.
jax/interpreters/pxla.py in apply_parallel_primitive(prim, *args, **params)
    289   else:
    290     shape = (logical_size(dynamic_axis_env[axis_name]),)
--> 291   return parallel_pure_rules[prim](*args, shape=shape, **params)
    292
    293 parallel_pure_rules = {}

KeyError: all_to_all

One could imagine needing to do this if the tensor you're working with is too large to give as a single input and you need to generate it on the fly.
You can mostly work around this issue by generating it in a different pmap function and then using that as an input, but from a user perspective it might be better if this "just worked" instead.

You're correct that pswapaxes doesn't work on a non-data-dependent input, and in general most parallel operators cannot, given the current model of data-dependent tracing used by pmap.
In fact, the only constant that pmap currently handles without staging out is the special case axis_size = psum(1, 'axis_name') which is where these "parallel pure" rules come into play.
So if you need to send out giant constants, we recommend you do so using a
"sharded device put" (equivalent to pmap(lambda x: x))  or a
"replicated device put" (equivalent to lambda x: pmap(lambda: x)) in the case of copying the same thing N times.
Now, we haven't actually yet committed the memory-efficient version of the latter into JAX yet, but PR #1562 has the code for the replicated device put and we hope to get it in soon.

Hi @chaserileyroberts
I executed the mentioned code with JAX version 0.3.25 on Google Colab TPU. Since the number of XLA devices available are 8 in free version of Colab TPU, I modified the code accordingly and it executed without any error. Looks like pswapaxes works for the 'non-input' tensors on later versions of JAX.
import jax
import jax.numpy as jnp
import numpy as np

def test(a):
  del a
  a = np.ones(8)
  return jax.lax.pswapaxes(a, "i", 0)

jax.pmap(test, "i")(
    np.arange(8 * 8).reshape(8, 8))

Output:
ShardedDeviceArray([[1., 1., 1., 1., 1., 1., 1., 1.],
                    [1., 1., 1., 1., 1., 1., 1., 1.],
                    [1., 1., 1., 1., 1., 1., 1., 1.],
                    [1., 1., 1., 1., 1., 1., 1., 1.],
                    [1., 1., 1., 1., 1., 1., 1., 1.],
                    [1., 1., 1., 1., 1., 1., 1., 1.],
                    [1., 1., 1., 1., 1., 1., 1., 1.],
                    [1., 1., 1., 1., 1., 1., 1., 1.]], dtype=float32)

Kindly find the gist for reference.
Thank you


Links: a relation for actions

I suggest to register with IANA a relation to identify actions, as AFAIK there is no existing relation for this yet. The motivation is that an API client should have a way to extract all actions from the list of links for a given resource, whether they are standardized or custom.
Suggestion for relation name: action.
Ref: (8) of #684

Hey @hhware! Thanks for opening this. I'm sorry I'm just responding to it now. I've been working on other projects post 1.0, so I haven't been able to give much time to these conversations, but I do want to discuss this.
First, I really like the goal that you're trying to achieve here, which I take to be making all the non-standard actions that a resource supports discoverable. However, I'm not sure links is the right place for this.
Before explaining my position, though, I want to clarify how I'm using the term "resource" below, since I know it has (at least) two meanings—the JSON API one and the HTTP one—and our understandings of each meaning may be different. I apologize in advance if my use of this terminology is already familiar to you (or others), or if I'm misunderstanding the term's meaning, but I just want to make sure we're on the same page before we start.
Ok, so, when I talk about an HTTP resource, I mean a concept (e.g. "the 1988 baseball world series winner" or "the movies Brad Pitt has starred in"). This concept is always a noun and is identified by a URI. So, the first resource might be identified by http://example.com/word-series-winners/1988 and the second by http://example.com/movies?actor=Brad%20Pitt. The second resource would, in JSON API speak, be a "collection", since it represents a set of movies. But, from the HTTP perspective, that multiple movies are in the set doesn't matter; the set of movies is is still a single resource. Then, because these URIs/resources represent nouns, the verbs (GET, POST, etc.) are used to retrieve or act on them.
Now, back to an action link relation. Basically, I think:
First, that many "non-standard" actions can actually be reformulated as standard actions on new HTTP resources, if the resources are designed properly. Then, these actions can be advertised at the protocol level (i.e. with the Allow header) and with just a standard link to the new resource (on which the action exists), rather than a custom "action" link.
Second, there will still probably be some actions that can't be reformulated in terms of a standard HTTP verb on a new resource. However, I suspect that invoking those actions will, almost by definition, require the client to construct a non-standard request body. So (generic) clients will need help to know how to do that; just an action URI and a method will be insufficient. Therefore, what these clients need is really more sophisticated hypermedia controls (a la write templates), rather than simple link relations.
Let me try to make these points more concrete, using the example actions from #684 and #773.

First, there are those actions that I think can be reformulated in terms of standard actions on new HTTP resources. One example of this is version-drop-wip. In the example in #684, the client triggers the version-drop-wip action by POSTing to http://example.com/articles/2/version-drop-wip. There are a couple problems here: first, how should the client know what to POST (an issue I'll come back to later); and, second, http://example.com/articles/2/version-drop-wip isn't a great resource in the HTTP sense, because it's not really a noun (unless you say the noun is "the action of deleting the latest version", in which case I'm not sure it's a very useful noun).
A more conventional resource would be "the work-in-progress version", which then might be identified by the URI http://example.com/articles/2/version-wip. Now, suddenly, the version-drop-wip action just becomes applying the DELETE method to the aforementioned URI. This is what I mean by remapping seemingly non-standard actions to standard verbs on new resources.
Note that minting the "the work-in-progress version" as a resource and giving it a URI doesn't mean that URI has to respond to the GET method (it can 405, for instance), so we haven't created an extra implementation burden to the server. But what we have done is define a more-conventional noun, which means we can also repurpose existing link relations (here, latest-version), which were designed to work on these conventional nouns.
So we turn:
"--version-drop-wip": {
  "rel": ["action", "http://example.com/notions/version-drop-wip"],
  "method": "post",
  "href": "http://example.com/articles/2/version-drop-wip"
}

Into:
"latest-version": {
  "methods": ["delete"],
  "href": "http://example.com/articles/2/version-wip"
}

(Here "methods" is just a list of the methods that the server is claiming will likely to be available on the linked resource.)
This second version is more understandable by generic clients, since it uses only the standard latest-version relation, rather than custom and/or new ones. It's also more convenient, since it uses a DELETE request, which is easier to form than a POST. Finally, it's more concise and extensible (e.g. one could easily add "get" to the methods list, and all would work).
So, my first point is that I think many custom actions follow this pattern: they can be reformatted as noun-ier resources; those resources can show the methods they support in the methods key and in the Allow header; existing link relations will then fit better; and an "action" relation will be unnecessary, since the action is implied by the standard verb.
Other clear examples of this are the examples given in #773. POST /shopping_cart/buy can become POST /shopping_cart/relationships/items, which doesn't need to be described at all, since JSON API defines what to POST. Likewise, /users/1/sendmessage becomes POST /users/1/relationships/messages. And /user/login can probably be reformulated in a similar manner (e.g. POST /login-attempts), with the details depending on the circumstances.

But then there are the second type of actions, which I don't think can be solved just by minting new resources and linking to those. For example, the --publish action from #684. Whether that action is formulated as a POST to a ..../publish URI or a PATCH to the article's self URI (as I would suggest), the core problem remains: what should the client POST/PATCH to invoke the action? I see two bad options:

The client could be configured in advance, using information outside of the API, to know what to send in the request body to invoke the action. The problem with this is that, if it's being configured externally for the particular API, it could've been manually told about the existence of the --publish action—it didn't need the link at all.

Assuming the /publish URI is used, the server could allow the client to POST anything (or even an empty payload) to trigger the action. The problem here, though, is that this isn't a generic solution, since it doesn't leave the client any way to pass arguments to the action it's trying to invoke (which some actions need). Also, it forecloses the "PATCH the self link" option.

This leads me to my contention that what we need to describe custom actions like this is hypermedia controls, rather than an action link relation. For example, if we had a hypermedia control for publishing, we could include that on the self link, like this:
{
   // below, note that including "patch" and "delete" in "methods"
   // covers the --update and --delete actions from #684 too
   "links": {
      "self": {
         "href": "http://example.com/articles/1",
         "methods": ["get", "patch", "delete"],
         "actions": [{
            "name": "publish",
            "method": "patch",
            "fields": [{"name": "published", "value": true}]
         }]
      }
   },
   // ... rest of article resource ...
}

Where the above hypermedia control says "trigger the publish action by sending a PATCH to the self link that contains the "published" field set to true".
A similar approach would be to put the actions outside of "links", in a separate "actions" key. This is what Siren does, and it has its pros and cons. We could even not output any actions in the response payload, and instead expose the actions for each resource as the response to an OPTIONS request to its URI.
But my big point is: for actions that are more nuanced than the CRUD ones that JSON API defines, I agree that we definitely need a way tell clients that those actions exist and how to form requests for invoking them. But I don't think an "action" relation is the answer, since that would imply having dedicated "action" URIs, which shouldn't be necessary. Such URIs violate the idea of "resources as nouns", which is baked into much of HTTP—not just existing link relations, but also things like HTTP caching. (For example, a POST to /articles/1/publish won't invalidate a cache's copy of /articles/1, but a PATCH /articles/1 will.)
When I have more time, I'll try to write up my thoughts on how to provide these hypermedia controls. In the mean time, I'm curious to hear if you agree with this general read and approach forward, and if you have any ideas for how the hypermedia controls should work.

You can hate me, but I repeat it again: I'm not against machine-readable documentation, it's cool, but I'm strongly against mixing API with its machine-readable docs. Please keep it separated. "Do one thing and do it well" — remember? There are other tools for API actions discovery and docs (like Swagger already mentioned earlier).
I'm watching how all around are trying to make a monster from a small well-done tool, and it's make me sad.

@ksimka There are some machine-readable documentations that are useful at runtime, such as JSON Schema, which are of a completely different category than Swagger, RAML, API Blueprint, etc, which are more like documentation as the engine of application state.
Still I'm not sure what is the purpose of having such an affordance as "actions" that can't be modelled with standard HTTP methods.

@ethanresnick, thanks for reviving this with a detailed analysis!
I totally agree that some non-standard actions can be reformatted in terms of more standard actions on different resources. --version-drop-wip was just an example, maybe not the best one, and definitely  application-specific (e.g., I did not suggest it for inclusion in #749). But I think that it would be wrong to force the API designer to do so.

the core problem remains: what should the client POST/PATCH to invoke the action

Let me start with this part of the question: what is actually the core problem here. Discoverable actions, at least the way I suggest to implement them, do not pretend to solve the problem of building full hypermedia APIs, which need little to no documentation. It is assumed that the documentation on formats of specific requests is needed. The purpose of actions is to inform the client what is available for the given user on a given resource at a given moment of time -- this is why actions should be returned dynamically, as part of a resource's representation, and not via schema, docs, or in some other static way. So to me, the core problem is different from what you describe.
The other related aspect of it is organizational: when this feature become available in the base spec. Having in mind that this feature does not make into 1.1 and that the (current) plan is to tackle only a couple major features per release, I have a concern that if we dive deep into hypermedia stuff, discoverable actions will not make it into 1.2 either. For me, discoverable actions is a very practical feature with a well-defined scope, whereas support for full hypermedia APIs are an interesting (mostly) theoretical area with somewhat uncertain scope, and which can be handled in different ways, i.e., dynamically via hypermedia controls, statically via schema, etc., and it is not clear at this point which of them or what combination of them should JSON API support.
If there were a way to make sure that both these things could make it into 1.2, I would love to explore both concepts together. However, there does not seem to be a way to ensure anything like that in a community-driven project, so my strong preference would be to tackle discoverable actions first, having full hypermedia in mind, and worry about the rest of full hypermedia later or in parallel, but not bundle them together.
In short, for the purposes of this effort, I suggest to assume that "what should the client POST/PATCH" is known from elsewhere.

it could've been manually told about the existence of the --publish action — it didn't need the link at all.

As noted above, I view the purpose of discoverable actions differently. IMHO, the "manual" solution addresses neither the permission aspect ("the given user") nor the temporal/workflow/lifecycle/etc aspect ("at the given moment of time"), unless I misunderstand the power of that "manual" solution...

Here "methods" is just a list of the methods that the server is claiming will likely to be available on the linked resource

Agree, it may be a good idea to turn methods into an array. E.g., a single action --modify could cover PUT, PATCH, DELETE on a resource, especially if the given API does not provide separate permissions for them. But I think it should be up to the API designer whether to combine multiple actions under the same link.

This leads me to my contention that what we need to describe custom actions like this is hypermedia controls

Please correct me if I am wrong, but I think that both your and my suggestions can be classified as hypermedia controls. Mine is action-name-centric (actions can be identified by unique link names), one-level, URI may need to be repeated. Yours is link-URI-centric, two-level, actions will can be made unique or may have to be idenfified by a combination of link name and action name -- BTW, what is your view on this? I think mine is  easier to understand and use, but both ultimately convey the same information, as long as there is an ability to assign identifiable names to each action (or group of actions), which the API client can use.

A similar approach would be to put the actions outside of "links", in a separate "actions" key.

This is what I started with in #590. It is definitely an option, although I do not see why it is better than placing them in links. It depends on semantics of links: what are they? In my view, action is a type of link. The advantage of placing all links under one key is that each given link can have several classifications at the same time, e.g., it can be an action related to versioning of the given resource. This approach seems to be in line with one taken in RFC5988.

We could even not output any actions in the response payload, and instead expose the actions for each resource as the response to an OPTIONS request to its URI.

Use of OPTIONS requires that, if we have more actions available on a given resource than we have HTTP verbs, we would have to spread them over multiple associated resource URIs and therefore will not be able to return all actions in one trip, which is a requirement of some APIs. Also, what about compound documents? I think OPTIONS is just not flexible enough for what JSON API already supports.

But I don't think an "action" relation is the answer, since that would imply having dedicated "action" URIs, which shouldn't be necessary. Such URIs violate the idea of "resources as nouns", which is baked into much of HTTP

IMHO, this is the domain of API designer, not JSON API spec. The spec is agnostic about URI structure in general, why should it enforce anything related to it when actions are addressed?

For example, a POST to /articles/1/publish won't invalidate a cache's copy of /articles/1, but a PATCH /articles/1 will.

Are concerns of cache invalidation in the scope of the spec? IMHO, it is an implementation-specific question. In complex APIs, approaches along the lines of Linked Cache Invalidation might be needed...

In the mean time, I'm curious to hear if you agree with this general read and approach forward,

As I mentioned above, I think that the structure proposed by me is easier to understand. I think that if we turn method in #684 into methods, my suggestion becomes closer to yours. Perhaps we can try to combine them in a way that it would be up to the API designer to decide whether to spread an URI over several links or combine all actions with the same URI under one link? E.g., an example of profiles in https://github.com/json-api/json-api/issues/622#issuecomment-103729996 seems to be a good use case for multiple URIs under the same action.
I do not really have time now to work on specific suggestion, but will definitely try to do it later. (FYI: I will mostly be offline for about 3 weeks, unlikely to participate in any activity here during this period.)

and if you have any ideas for how the hypermedia controls should work.

If you mean specifying request format, write templates, etc, I tried to address it above. If not, please let me know what you meant.

I'm not against machine-readable documentation

@ksimka, you can hate me, but I repeat it again: the main purpose of actions is to be able to inform the API client what the given user can do with the given resource or relationships at the given moment of time. Documentation is static, actions are dynamic. Their use cases overlap, but only partially.

I'm watching how all around are trying to make a monster from a small well-done tool, and it's make me sad.

IMHO, it depends on what kind of tool JSON API wants to be. E.g., to me, a combination wrench (especially a brand new polished chrome-vanadium one) looks strikingly beautiful compared to a clumsy adjustable wrench. Nonetheless, I bought my first adjustable wrench long before I bought my first set of combination wrenches, just because of its utility...

Still I'm not sure what is the purpose of having such an affordance as "actions" that can't be modelled with standard HTTP methods.

@daliwali, is RFC5988 a "standard HTTP" in your opinion?

@hhware Thanks for your detailed reply, Alex! I understand your use case better now, and I think it will be possible to find a way to support it in the interim before we get full hypermedia support.
I also don't have much time over the next few weeks, so I won't be able to write up a detailed response for a while. But I won't forget this issue, nor will the rest of the team.

I support @hhware in this conversation.
First, there definitely may custom actions for a resource, which can't be 'refactored' in terms of standard HTTP verbs. For example, we have a Task resource, which has a accept and reject actions.
Second, OPTIONS HTTP method is not an option, because it supports only HTTP verbs in the Allow: header. So, I can't specify in the OPTIONS /tasks/1 response, that you can accept, but can't reject this specific task.
Third, As it was said already, actions are dynamic. For example, I can't DELETE this document, because parent's task is archived already, but can DELETE another document, because its task is still open. I want to keep business logic only in one place: on the API backend.

Thanks Ethan for reaching out to us.  Our chief architect has put a ton of thought into hyper, here is one of his projects https://github.com/hypergroup/hyper-json.  The readme has a lot of examples.  We have been using this pattern for about a year and have really loved it.

@belison Thanks for jumping in! I'm taking a look at hyper now, and will definitely take it's ideas into account when we restart this discussion in full force (right now, we're trying to finish #795 and #650 first).

I would like to hear about links for actions as well, be a use I think it's great way to keep business logic in one place and avoid duplication it on client.

One small suggestions when adding allowed methods for links to handle permissions:
The HTTP header that can be sent for any resource is "Allow: GET, PATCH, DELETE" so the link attribute should be instead
"latest-version": {
  "href": "http://example.com/articles/2/version-wip"
  "allow": ["GET", "PATCH", "DELETE"],
}

to be as close as possible to the HTTP header. Only "Allow" should lower-case to be in line with all other keys in the JSON payload.

Any updates on this issue? Seems like stuck.

Indeed, is there any progress on this? We are facing (as many others) similar issues and would like to implement something, is this being seriously considered?

@sergafts This will be addressed through profiles (#1268). An implementation could already come up with some non-standard way of describing actions (e.g., by putting them in a link object's meta key), but profiles will allow those ways to be standardized and shared across implementations.


AppleInc.iCloud version <IP_ADDRESS>

[ ] Have you signed the Contributor License Agreement?
[ ] Have you checked that there aren't other open pull requests for the same manifest update/change?
[ ] Have you validated your manifest locally with winget validate --manifest <path>?
[ ] Have you tested your manifest locally with winget install --manifest <path>?
[ ] Does your manifest conform to the 1.0 schema?

Note: <path> is the name of the directory containing the manifest you're submitting.

Microsoft Reviewers: Open in CodeFlow

Use just Apple instead of AppleInc.

Use just Apple instead of AppleInc.


Fix Nvidia target name

Hmm, I see in the main training/Makefile we still call "bootc" for all platforms

Got it, I wasn't checking the Makefile that sat above the rest, it seems that you are right that makefile calls it bootc. However, all of the other Makefiles (intel-bootc, nvidia-bootc, amd-bootc Makefiles all use image instead of bootc. I would love some clarification from @rhatdan on what we want this to be.

This looks like it is fixed in main.


sendKeys is very slow in IE 11

Hi All,
FYI recently my IE got upgraded to IE 11 and when I recently run the scripts it is executing very very slow.... Do anyone have faced the same problem. Do let me know.
The login page is taking nearly 2 sec for each character to enter in the text field.
Thanks,
Santhosh Chunchu

How do you change to the 32 bit IE Driver when using Webdriver-manager?

@dpaquette I've been struggling with the same this week, here's what I found:
The Webdriver-manager asks Node to provide the system architecture through an 'os.arch()' call, and chooses the URL accordingly.  https://github.com/angular/protractor/blob/master/bin/webdriver-manager#L73
There isn't currently a way to pass in a configuration, but there's an open feature request here #1297
Node actually doesn't report the OS architecture on 'os.arch()', but whether or not the current process is 32-bit or 64-bit: https://github.com/joyent/node/issues/2862  I've confirmed it using Node v0.12.5, but this issue is three years old so it's apparently been that way for awhile.
As a workaround, if you're running the 32-bit version of node instead of the 64-bit version, then the Webdriver-manager will resolve the 32-bit version of the IE driver.  Note: On Windows you may want to make sure your path is pointing to the correct 32-bit version of node (e.g. c:\program files  (x86)\nodejs).
Hope it helps.

@codecadwallader I managed to get another workaround working for me yesterday. I manually downloaded the 32-bit copy of IEWebDriverServer and overwrote the file in C:\Users\myusername\AppData\Roaming\npm\node_modules\protractor\selenium. The catch was that I had to download the same version as the one that was previously installed (in my case 2.45).

Download the 32bit IEdriver and use it insted of the 64 bit

Even 32bit IEDriver gets slower.

Just to help anyone else that ends up here after hours of searching.
Install 32bit IE Driver
webdriver-manager update --ie32

Start Protractor with the 32bit IE Driver
(if you are running 64bit os you must add switch or it will try to load 64bit driver)
webdriver-manager start --ie32

@cnishina do you think we should default to the ie32 for webdriver-manager?

This still seems to be an issue. I tried the webdriver-manager start --32 and it is still very slow.

32Bit IE driver solves this problem.
For those who are searching for the drivers, link is here
Use in protractor conf like below:
exports.config = {
   seleniumArgs: ['-Dwebdriver.ie.driver=node_modules/protractor/selenium/IEDriverServer.exe']
}

After responding to #1999, I think we should just default to ie32 and not bother with the x64 version of IEDriver.
So the following will by default download / start the 32-bit version:
webdriver-manager update --ie
webdriver-manager update --ie32
webdriver-manager start --ie
webdriver-manager start --ie32

If someone really needs the x64 version, we'll have add a flag:
webdriver-manager update --ie64
webdriver-manager start --ie64

In the help option, I'll also add that the x64 version has been known to be flaky.

Closing this issue in favor of: https://github.com/angular/webdriver-manager/issues/180

Finally after 2 years it got closed :) Happy holiday to all :)

i used ie32 driver and my login page is in frame  ,when i tried to run the script ,it is unable to locate my frame using ie32 driver
and same script is working fine with ie64 and its easily handling frame.(but it is type slow as character wise)
Any solution?

Try to update ie32 bit, webdriver-manager update --ie32. And then start the server.
Also ask debug questions in stack overflow.
Micromax
On Oct 12, 2016 8:31 PM, AdamRzymowski<EMAIL_ADDRESS>wrote:

This still seems to be an issue. I tried the webdriver-manager start --32 and it is still very slow.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.

The same issue for me. The --ie32 runs IEDriver 32, but it doesn't resolve the issue of low performance of sendKeys(). Any thoughts?

Another option:
capabilities: {
    'browserName': 'internet explorer',
    'requireWindowFocus': true,
    'ignoreProtectedModeSettings': true
},

OR
multiCapabilities: [
     {
        'browserName': 'internet explorer',
         'requireWindowFocus': true,
         'ignoreProtectedModeSettings': true
      },
      {
        //  ...
      }
],

Source.


[Zephyr] Erase key-value store on factory reset

Problem
ConfigurationManager::InitiateFactoryReset() method clears all keys added by ConfigurationManager methods, and
OpenThread settings. However, the method was not updated when the generic KeyValueStoreManager was added, hence
not all persistent data would be erased upon the factory reset.
Change overview

Erase all data written with both ConfigurationManager and KeyValueStoreManager upon the factory reset (e.g. after pressing Button 1 for >6 seconds on nRF Connect examples).
Also, remove the usage of std::string.

Testing
Added unit tests for Zephyr platform. Also, tested manually.

@rikorsev FYI as I'm modifying Telink platform, too.


whereNot doesn't work as expected on multiple conditions

Consider a query:
await db.book.whereNot({ id: 1 }, { title: "Test" })

As a developer, I would expect the ORM to select all books other than the book with ID=1 named "Test" (because both conditions are wrapped into whereNot, where they are supposed to be AND'ed).
Instead, it selects all books excluding all books where either ID=1 or the name is "Test":
SELECT * FROM "book" WHERE NOT "book"."id" = $1 AND NOT "book"."title" = $2 [1, 'Test']

Expected:
SELECT * FROM "book" WHERE NOT ("book"."id" = $1 AND "book"."title" = $2) [1, 'Test']

The above could be arguably treated as a gotcha, but the callback form is clearly misbehaving:
await db.book.whereNot((q) => q.where({ id: 1 }).where({ title: "Test" }))

SELECT * FROM "book" WHERE NOT "book"."id" = $1 AND NOT "book"."title" = $2 [1, 'Test']

I believe whereNot should not try to be smart and should simply wrap everything with NOT( ...it's not whereNot's business what's here... ).

The fix is ready, now whereNot behaves as you're expecting.
I decided to make it not accept multiple arguments, so this no longer compiles:
await db.book.whereNot({ id: 1 }, { title: "Test" })

For NOT ( id = 1 AND title = 'Text' ):
await db.book.whereNot({ id: 1, title: "Text" })

For NOT id = 1 AND NOT title = "Text":
await db.book.whereNot({ id: 1 }).whereNot({ title: "Text" })


Add an "edit description" feature

I'm willing to be $500 that Vibhu will not see this.

Solved by the great Shitij Govil(as he always does)


instructions need work

In step 9 it says select one of, then in step 15 it says select the other.  This is a poor explanation.
Either say select the first, then later say select the second or when you say select one of, later say select the other that was not previously selected.
But the language should be improved.
Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 49d6fd82-29a9-ed74-00be-1576e5266bb8
Version Independent ID: 33578f4a-5fcc-bf56-92a8-c51e4f259328
Content: Create a new NIC Team on a host computer or VM
Content Source: WindowsServerDocs/networking/technologies/nic-teaming/Create-a-New-NIC-Team-on-a-Host-Computer-or-VM.md
Product: windows-server
Technology: networking
GitHub Login: @JasonGerend
Microsoft Alias: jgerend

Linked issue: #5472 (see https://github.com/MicrosoftDocs/windowsserverdocs/issues?utf8=✓&q="33578f4a-5fcc-bf56-92a8-c51e4f259328"&in=body for reference)

Linked to resolution in #5472.
#please-close


feat(ColumnsControls): add dropdown pane for control columns order

I am not sure what are the acceptance criteria of this PR, but it's looks good.
Small note: Without any reordering columns on the story in storybook, using "Reset to defaults" reorders the columns. This doesn't look intentional.

@youssefssc if you mean in the storybook, it's because I'm have set up preferred order in the story


Add error message to relevant Figma components

We rarely show a form component in an error state without an error message. We should include it as a part of the state.

[ ] Check if it will introduce any breaking changes?
[ ] Find all relevant components and add an instance of the error message

Done


fix validating creds on workgroup

@Dviros see #3 .This will fix #3

Hey @usama7628674, Thanks! Will be merged.


Where is the GUI widgets?

Hi
No doubt this looks like a new project in it's beginning, so well done for that.
GUI? I found a button, select and a slider. Maybe you should warn visitors that this is very alpha and the GUI part of the GUI toolkit has not yet been implemented :)

Hello! You make a good point, however your issue has been posted in the wrong repo.
The GUI library is RSGL, not RGFW. RGFW only handles window management and creation.
The RSGL repo can be found here


Active Commitment: early processing

User Story / Job to be Done / Problem
As a user with an active commitment, I want to process my commitment as soon as I reach my goal so that I can start a new commitment right away and keep myself incentivized.
Potential solution ideas
if reached goal early, allow early processing

Contract allows it, app as well since it evaluates contract state. But need to be connected (and double checked)


event celebration script using Js & animation

I'm Vishal I want to work on this project as Participate of LGMSoc21, basically, in this project, I want to develop an event wises script in which will be developed with the help of CSS and javascript
Can I work on this project as a Participate of LGMSoc21?

Yes @WebVishal. Go ahead!

Make sure that you make the pr by EOD for the project to be considered in LGMSoC.


Have you finished the the deployment script

I was wondering if you a had a version of this project with the uwsgi and nginx scripts completed

Hi,
Yes I do, actually since the version 1.0 but I haven't put it here because I didn't want to make everyone think that was just that way of doing it.
Sorry about the really late reply but I haven't been on github issues for a while.
Tiago

Since there is no longer an issue, I'm closing it.


raised unexpected: PackageNotFoundError("Package not found at path)

 raised unexpected: PackageNotFoundError("Package not found at '/Users/sskadit/Office/nlpondec2017/newonenv/src/newproject/DATA/C++ Developer/RVAravind_4.doc'",)
Traceback (most recent call last):
  File "/Users/sskadit/Office/nlpondec2017/newenv/src/lib/python3.4/site-packages/celery/app/trace.py", line 240, in trace_task
    R = retval = fun(*args, **kwargs)
  File "/Users/sskadit/Office/nlpondec2017/newenv/src/lib/python3.4/site-packages/celery/app/trace.py", line 438, in __protected_call__
    return self.run(*args, **kwargs)
  File "/Users/sskadit/Office/nlpondec2017/newonenv/src/newproject/new/tasks.py", line 78, in test
    doc = docx.Document(inp)
  File "/Users/sskadit/Office/nlpondec2017/newenv/src/lib/python3.4/site-packages/docx/api.py", line 25, in Document
    document_part = Package.open(docx).main_document_part
  File "/Users/sskadit/Office/nlpondec2017/newenv/src/lib/python3.4/site-packages/docx/opc/package.py", line 116, in open
    pkg_reader = PackageReader.from_file(pkg_file)
  File "/Users/sskadit/Office/nlpondec2017/newenv/src/lib/python3.4/site-packages/docx/opc/pkgreader.py", line 32, in from_file
    phys_reader = PhysPkgReader(pkg_file)
  File "/Users/sskadit/Office/nlpondec2017/newenv/src/lib/python3.4/site-packages/docx/opc/phys_pkg.py", line 31, in __new__
    "Package not found at '%s'" % pkg_file
docx.opc.exceptions.PackageNotFoundError: Package not found at '/Users/sskadit/Office/nlpondec2017/newonenv/src/newproject/DATA/C++ Developer/RVAravind_4.doc'

I found the absolute path and relative path to be the same using this in django celery cron to read the doc files
Mac OSX
Python 3.4

Any updates here?

There's not enough information here to indicate an error. There are a variety of reasons why this error can arise. In this case it looks like you're trying to open a pre-Office-2007 ".doc" file (rather than a .docx file). python-docx only supports the latter (which is an XML format rather than binary).

You have to write something in the docx file. Then the package can recognize it.

I have the same issue. My file is .docx and has content in it.

same issue as konradbachusz-zz


Window Events

Window create event

[ ] Bind window create event

Set glfw event callbacks

[ ] window resize callbacks glfwSetWindowSizeCallback
[ ] window close callbacks glfwSetWindowCloseCallback
[ ] key press/release/repeat callbacks glfwSetKeyCallback
[ ] mouse button press/release callbacks glfwSetMouseButtonCallback
[ ] mouse scroll callbacks glfwSetScrollCallback
[ ] mouse position callbacks glfwSetCursorPosCallback

GLFW Error callbacks

[ ] GLFW error callbacks GLFWErrorCallback

Implemented in #27


Jesse: Watch buyfollows.online

Jesse requests the watch of the watch_keyword buyfollows\.online. See the MS search here and the Stack Exchange search in text, in URLs, and in code.

buyfollows\.online has been seen in 0 true positives, 0 false positives, and 0 NAAs.

Approved by Jeff Schaller in Charcoal HQ


get rid of "github.com/mitchellh/packer" and substitute it with a right library which generate uuid

Background
The packer has already renamed it’s import path from "github.com/mitchellh/packer" to "github.com/hashicorp/packer".
But dmacvicar/terraform-provider-libvirt still used the old path:
https://github.com/dmacvicar/terraform-provider-libvirt/blob/master/go.mod#L12
github.com/mitchellh/packer v1.3.2

When you use the old path "github.com/mitchellh/packer" to import the packer, it will be very easy to reintroduce packer through the import statements "import github.com/hashicorp/packer" in the go source file of packer`.
https://github.com/hashicorp/packer/blob/v1.3.2/common/step_http_server.go#L11
package common
import (
	"github.com/hashicorp/packer/helper/common"
	"github.com/hashicorp/packer/helper/multistep"
	"github.com/hashicorp/packer/packer"
)…

The "github.com/hashicorp/packer" and "github.com/mitchellh/packer" are the same repos. This will work in isolation, bring about potential risks and problems.
So, why not get rid of the old import path "github.com/mitchellh/packer ", use "github.com/hashicorp/packer" instead.
Solution
Replace all the old import paths, change "github.com/mitchellh/packer" to "github.com/hashicorp/packer".
Where did you import it: https://github.com/dmacvicar/terraform-provider-libvirt/search?q=github.com%2Fmitchellh%2Fpacker&unscoped_q=github.com%2Fmitchellh%2Fpacker

@dmacvicar  @MalloZup  Could you help me review this issue? Thx :p

@KateGo520  hi thx for your issue.
I have researched a bit today,and here are my thoughts resumed:

We don't need packer import, instead we should use https://github.com/google/uuid which is more RFC compliant

see other providers:
https://github.com/terraform-providers/terraform-provider-azuredevops/blob/e24bb81ffa64d7f2e0d201fbd7166e7ddcaa12e0/azuredevops/internal/utils/testhelper/dataGenerator.go#L3
https://github.com/terraform-providers/terraform-provider-aws/blob/d148d85330ff4cc95700043d8e6947fa71db7f2f/go.sum#L268
The reason behind this is because we are importing packer only for generating uuid which is wrong conceptually, because  packer is intended to do something else.
So I guess the fix should be this, to pickup a right UUID library which does the job which the import was  doing and replace it.
thx for the issue. If you want to work on this I can guide you more  but it should be a easy-fix.

we are using the UUID generation for example here,

and here https://github.com/dmacvicar/terraform-provider-libvirt/blob/b7dab08a9194e388a7f043a1ab7fe60d241b50e5/libvirt/cloudinit_def.go#L120

Get rid of "github.com/mitchellh/packer" and substitute it with a right library which generate uuid, that sounds good. Thanks for your efforts and feedback. @MalloZup


Bump cardano-node to 1.35.4

[x] Somehow use CHaP to get the right revisions
[x] Keep nix-shell working
[x] Are we actually using the correct ledger revisions?

Seems right https://github.com/input-output-hk/plutus/blame/d5f6f4a5505094490f61c8d164515adf7c8f46cc/plutus-ledger-api/src/Plutus/ApiCommon.hs#L147

[x] Get cabal build working

[x] Fix warnings of the type src/Cardano/Pool/DB/Sqlite/TH.hs:56:1: warning: [-Wname-shadowing]

[x] De-duplicate source of truth for compiler version and index state
[x] Use non-broken version of io-classes to fix integration tests

Can't use <IP_ADDRESS> / f4183f274d88d0ad15817c7052df3a6a8b40e6dc

[x] Misc cleanup
[x] Update readme matrix

Comments

Issue Number
ADP-2382

bors try

bors try

Not entirely sure whether that buildkite failure is consistent or affected by caches 🤔

Now I clearly saw the "Full cabal build" buildkite step fail after clearing the cache with
Just True, remoteRepoRootKeys =
--
  | ["3e0cce471cf09815f930210f7827266fd09045445d65923e6d0238a6cd15126f","443abb7fb497a134c343faf52f0b659bd7999bc06b7f63fa76dc99d631f9bea1","a86a1f6ce86c449c46666bda44268677abf29b5b2d2eb5ec7af903ec2f117a82","bcec67e8e99cabfa7764d75ad9b158d72bfacf70ca1d0ec8bc6b4406d1bf8413","c00aae8461a256275598500ea0e187588c35a5d5d7454fb57eac18d9edb86a56","d4a35cd3121aa00d18544bb0ac01c3e1691d618f462c46129271bccf39f7e8ee"],
  | remoteRepoKeyThreshold = 0, remoteRepoShouldTryHttps = False}
  | Warning: Requested index-state 2022-10-25T20:00:00Z is newer than
  | 'cardano-haskell-packages'! Falling back to older state ().
  | Resolving dependencies...
  | cabal: Could not resolve dependencies:
  | [__0] trying: cardano-api-1.35.4 (user goal)
  | [__1] unknown package: plutus-core (dependency of cardano-api)
  | [__1] fail (backjumping, conflict set: cardano-api, plutus-core)
  | After searching the rest of the dependency tree exhaustively, these were the
  | goals I've had most trouble fulfilling: cardano-api, plutus-core

in https://buildkite.com/input-output-hk/cardano-wallet/builds/22493#0184c3b1-fa96-471f-b534-ad3f1be13335
The "check cabal configure" step succeeded this time. It often fails, but not always, so that one might be fixable with cleared caches.
This time trying locally I got:
Error:
    The following packages are broken because other packages they depend on are missing. These broken packages must be rebuilt before they can be used.
installed package cardano-numeric-2020.12.8 is broken due to missing package lattices-2.0.3-5AV89I2R3mD6GCvK068mS6, safe-0.3.19-8luuMyFSOlL6dBNapMpYT1
installed package cardano-wallet-test-utils-2022.10.6 is broken due to missing package HUnit-<IP_ADDRESS>-CBSa1IBi2Ep12U8D1MQaBG, QuickCheck-2.14.2-CiqSnv7rj43Gz4SBHtq619, aeson-<IP_ADDRESS>-J9xr4axGgOfEHkfGikTpHq, containers-<IP_ADDRESS>-EiES0HFUZ8PBGNrpVjoYRF, contra-tracer-<IP_ADDRESS>-FAh8z4CizUY1KaZTVpaNvV, directory-<IP_ADDRESS>-CbmCEFbvko1GLIMcuucehj, either-5.0.2-GVsixQanvRwFiPEAF1Nuik, file-embed-<IP_ADDRESS>-CHsrkX4SXrnKKGgU3N5rxW, filepath-<IP_ADDRESS>-XUxXmPDlHD5banCv7jBzy, fmt-<IP_ADDRESS>-DSK3chJ3LeoCNGGc1tYNx1, formatting-6.3.7-36ZAMaQdcwJ4iepI8Up3Xm, generics-sop-<IP_ADDRESS>-Gxn4pIJNHpwDmXJpqMzfEa, hspec-2.10.6-KUm0lbAaRBoJtpvsNz9anl, hspec-core-2.10.6-EliDavCXNP3ArgnXUUvNaC, hspec-expectations-0.8.2-I1AkVR9T2f81JvXOpw0KGD, hspec-golden-aeson-<IP_ADDRESS>-DAa1Eq9f0zLGCbM7Bb18id, http-api-data-0.4.3-GUuFhteJA0u3azXJIDN90M, int-cast-<IP_ADDRESS>.<IP_ADDRESS>.1-AXFQUSxAUf5DmEUq1fgvXr, iohk-monitoring-<IP_ADDRESS>-KCwDRUTj9Fx52s8QTvl5w9, lattices-2.0.3-5AV89I2R3mD6GCvK068mS6, optparse-applicative-<IP_ADDRESS>-6BaGFHRE4lUkwGsRpqyhP, pretty-simple-<IP_ADDRESS>-5na42Bv2GGr8Fx4ctdpLC1, quickcheck-classes-<IP_ADDRESS>-Lbn4fqepXWgHalAvX5xYyj, say-<IP_ADDRESS>-GlspFRk3xr39CPimLD6nsA, text-<IP_ADDRESS>-3ons0v27Yr7GZbokcYUGS, time-1.9.3-AAq60BtyTvLBxnbhpLzOg0, unliftio-<IP_ADDRESS>-1wL9ZHYIsbLIlBGferCDpi, unliftio-core-<IP_ADDRESS>-1ZKBvRnHNlvLpk6cLw86A7, wai-app-static-<IP_ADDRESS>-9KDf4k8aoFrFed0OW3UOQA, warp-3.3.22-BIIwbKjTMiyFYv8HX2LzDD
installed package dbvar-2021.8.23 is broken due to missing package QuickCheck-2.14.2-CiqSnv7rj43Gz4SBHtq619, conduit-<IP_ADDRESS>-5lA4iYk3HaI4J6c7hwugj1, containers-<IP_ADDRESS>-EiES0HFUZ8PBGNrpVjoYRF, exceptions-0.10.4-jh6bYwCS5pIgTBTtpnMGh, fmt-<IP_ADDRESS>-DSK3chJ3LeoCNGGc1tYNx1, generic-lens-<IP_ADDRESS>-A95lRscHemBIC36q4yxuhZ, io-classes-<IP_ADDRESS>-Io7mkgM70BO80kViq0zOYI, monad-logger-0.3.37-LGpYfA3E4lz2UzRWzpwSv3, persistent-<IP_ADDRESS>-2ZQ3qFAe8n9C9JjODGrcFn, persistent-sqlite-<IP_ADDRESS>-1SQxiAGJzP5DJQV4nmNHxi, safe-0.3.19-8luuMyFSOlL6dBNapMpYT1, safe-exceptions-<IP_ADDRESS>-A6WPpVzvOQQHkugy8ZaGu2, say-<IP_ADDRESS>-GlspFRk3xr39CPimLD6nsA, semigroupoids-5.3.7-4FxoSFpjC3Z8gdY10T0abi, stm-<IP_ADDRESS>-7EhGw2UuBfRGnebgRwZVIT, text-<IP_ADDRESS>-3ons0v27Yr7GZbokcYUGS, transformers-<IP_ADDRESS>-LVtm4hSGEWWGi1DcWUe7I5
installed package strict-non-empty-containers-2020.12.8 is broken due to missing package containers-<IP_ADDRESS>-EiES0HFUZ8PBGNrpVjoYRF, hashable-<IP_ADDRESS>-INftafPDgUZI4vNq48DNIL
installed package text-class-2022.10.6 is broken due to missing package OddWord-<IP_ADDRESS>-7OmM0enRVOY1ACbaT5vYum, QuickCheck-2.14.2-CiqSnv7rj43Gz4SBHtq619, casing-<IP_ADDRESS>-5yrptbXHcWQHFH8d0bFiQX, extra-1.7.12-6x1LfaamX165CHccFzSrqq, formatting-6.3.7-36ZAMaQdcwJ4iepI8Up3Xm, hspec-2.10.6-KUm0lbAaRBoJtpvsNz9anl, text-<IP_ADDRESS>-3ons0v27Yr7GZbokcYUGS, time-1.9.3-AAq60BtyTvLBxnbhpLzOg0

I think it succeeded for me locally in the past, but I'm not 100% sure.
Note: with the impending retirement of the packet.net agents, I'm wondering if we could just disable this/these checks for now.

bors r+

Thanks!
bors r+

bors r-

bors try

bors r+

bors r+


feat: Add b3nj5m1n/xdg-ninja

#5251 b3nj5m1n/xdg-ninja: A shell script which checks your $HOME for unwanted files and directories

Thank you for your contribution!

Released. https://github.com/aquaproj/aqua-registry/releases/tag/v3.21.0


ARROW-5173: [Go] handle multiple concatenated record batches

needs #4159

Codecov Report

Merging #4160 into master will decrease coverage by 26.77%.
The diff coverage is 22.68%.

@@             Coverage Diff             @@
##           master    #4160       +/-   ##
===========================================
- Coverage   87.89%   61.11%   -26.78%
===========================================
  Files         758       67      -691
  Lines       92163     4943    -87220
  Branches     1251        0     -1251
===========================================
- Hits        81006     3021    -77985
+ Misses      11040     1810     -9230
+ Partials      117      112        -5

Impacted Files
Coverage Δ

go/arrow/array/list.go
74.56% <0%> (-12.18%)
:arrow_down:

go/arrow/ipc/file_reader.go
0% <0%> (ø)
:arrow_up:

go/arrow/ipc/metadata.go
0% <0%> (ø)
:arrow_up:

go/arrow/array/struct.go
84.31% <100%> (+11.67%)
:arrow_up:

go/arrow/array/fixedsize_binary.go
73.8% <79.16%> (+5.38%)
:arrow_up:

python/pyarrow/ipc.pxi

cpp/src/arrow/csv/chunker-test.cc

cpp/src/parquet/column_page.h

cpp/src/parquet/bloom_filter-test.cc

cpp/src/arrow/array/builder_decimal.cc

... and 688 more

Continue to review full report at Codecov.

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

PTAL @stuartcarnie @alexandreyc @nickpoorman

(the Travis-CI error is unrelated (JDK-9 is acting up?))

Looks like this PR is a subset of #4161


Initial code commit.

See my comment @JohnNMwangi

Hey @patrickmukumbu  the comments aren't visible.


[flask-ask] Too many sample utterances

With so many new references to slots for the streaming support, I think we've hit the maximum model size again.  I tried adding a few more utterances which resulted in it spinning for a long time before erroring out on the save.  Removing the new utterances I'd just added allowed it to save.
I think we have no choice but to trim the sample utterances.  The obvious place to start would be WhatNew[Albums|Movies|Shows], since they make up ~60% of our total.
We should think pretty hard about how people might invoke the WhatNew* intents.  I personally prefer a continuous sentence with no pause ("Alexa, ask Kodi if there are any new shows" as opposed to something like "Alexa, ask Kodi, 'do I have any new shows?'")
Raising the Issue here for opinions on phrasings.

Reducing the number of utterances worked on my main copy of the skill, but on my second, it did not.  I had to also reduce MUSICALBUMS and MUSICSONGS to 300 items.

On my second copy, I was able to get to save with the existing utterances after reducing the slot items to 300 each.
We're just close to an invisible (to us) limit, I fear.
We should still look at trimming the WhatNew* intents, but I believe we can get by for now by reducing the max slot items to 300.

Max slot items reduced to 300, but leaving this Issue open until we get around to trimming utterances some.  I don't want to eliminate utterances just for the sake of it, but I do think especially for Intents that don't reference Slots (i.e., we don't need to match on anything in the skill), we can probably omit articles, pronouns, etc.
Specifically, the CurrentPlayItem* and WhatNew* intents have more sample utterances than they probably need to cover all of the desired input phrases.
Will just need to test to see what we can leave out.


Put cloud behind the logo

This is just some fun thing to work on during a weekend.
I should have floating clouds behind "Brain-Life" logo on the home page, and also put some cloud logo behind the small "brain-life" logo on the warehouse.

This is done, correct?

Yes. I will also add a cloud behind the brain-life heading for warehouse.


Not working?

Nothing seems to happen when I'm fletching underwater and seaweed spores spawn. It's set to trigger even at a stack of 1.

Hi @Seaxa,
Could you check your RuneLite settings and ensure you have "Send notifications when focused:" turned on? This worked for me when I tried it just now.
Here are my settings:


Don’t filter explicit thresholds.

Only filter implicit thresholds by the domain. Fixes #54.

https://github.com/d3/d3-array/issues/54#issuecomment-294270741


OutOfMemoryError with pose branch

Using the pose branch, when the image stream begins, I receive this error;
[INFO] [launch]: All log files can be found below /home/user/.ros/log/2023-06-26-11-15-48-213828-node1-orin-2340600
[INFO] [launch]: Default logging verbosity is set to INFO
[INFO] [component_container_mt-1]: process started with pid [2340628]
[component_container_mt-1] [INFO] [1687734948.719613070] [apriltag_container_detect]: Load Library: /home/user/workspaces/april_ws/install/apriltag_ros/lib/libAprilTagNode.so
[component_container_mt-1] [INFO] [1687734948.831306213] [apriltag_container_detect]: Found class: rclcpp_components::NodeFactoryTemplate<AprilTagNode>
[component_container_mt-1] [INFO] [1687734948.831585384] [apriltag_container_detect]: Instantiate class: rclcpp_components::NodeFactoryTemplate<AprilTagNode>
[INFO] [launch_ros.actions.load_composable_nodes]: Loaded node '/apriltag' in container '/apriltag_container_detect'
[component_container_mt-1] terminate called after throwing an instance of 'cv::Exception'
[component_container_mt-1]   what():  OpenCV(4.5.4) /home/ubuntu/build_opencv/opencv/modules/core/src/alloc.cpp:73: error: (-4:Insufficient memory) Failed to allocate<PHONE_NUMBER>64640 bytes in function 'OutOfMemoryError'
[component_container_mt-1]
[ERROR] [component_container_mt-1]: process has died [pid 2340628, exit code -6, cmd '/opt/ros/galactic/lib/rclcpp_components/component_container_mt --ros-args -r __node:=apriltag_container_detect -r __ns:=/'].

I am using an Nvidia Orin with OpenCV 4.5.4, ROS Galactic.
If you need any further information let me know.

Well, I guess your Jetson Orin does not have<PHONE_NUMBER>64640 bytes of memory :-)
It's unclear to me why this happens. I assume that at some point the image dimensions are wrongly calculated or there is an integer overflow.
Do you see this issue only on the pose branch? Can you provide a rosbag to reproduce this and/or a gdb backtrace?

@TomGrimwood Can you clarify if this only happens on the pose branch? Can you provide a log file to reproduce this? Alternatively, can you provide a backtrace with source code line numbers and the commit at which this happens?


Generic thermostat fixes

Description:
The main issue fixed in this pull request is a race condition between the keep-alive mechanism and the tracking of temperature.
As a refresher on the inner workings of the generic thermostat, it tracks temperature and signals the A/C motor/heater to turn on when the temperature goes above/beyond a given threshold. When the opposite happens, it signals the motor/heater to turn off. Meanwhile, a keep-alive option retransmits the turn on/off signal, based on the thermostat's state, by using async_track_time_interval.
For example, when the A/C motor is currently cooling the room, and at the same moment a keep-alive event occurs (meaning that Home Assistant attempts to re-transmit the signal that turns on the motor) and the temperature dips below the target, causing a state change that results in turning off the motor. If the execution of the keep-alive event begins first, but is interrupted by the state change - the stage change will turn off the motor, and the continued keep-alive event will turn it back on. And the motor will stay on for another minimum cycle duration.
I took the liberty of refreshing the code, marking many of the thermostat's methods async.
Related issue (if applicable): fixes #
Pull request in home-assistant.github.io with documentation (if applicable): home-assistant/home-assistant.github.io#<home-assistant.github.io PR number goes here>
Example entry for configuration.yaml (if applicable):

Checklist:

[X] The code change is tested and works locally.
[ X Local tests pass with tox. Your PR cannot be merged unless tests pass

If user exposed functionality or configuration variables are added/changed:

[ ] Documentation added/updated in home-assistant.github.io

If the code communicates with devices, web services, or third-party tools:

[ ] New dependencies have been added to the REQUIREMENTS variable (example).
[ ] New dependencies are only imported inside functions that use them (example).
[ ] New or updated dependencies have been added to requirements_all.txt by running script/gen_requirements_all.py.
[ ] New files were added to .coveragerc.

If the code does not interact with devices:

[ ] Tests have been added to verify that the new code works.

Hello @aronsky,
When attempting to inspect the commits of your pull request for CLA signature status among all authors we encountered commit(s) which were not linked to a GitHub account, thus not allowing us to determine their status(es).
The commits that are missing a linked GitHub account are the following:

be72838fa68007e8be5c5d5b07f86340a54897dd - This commit has something that looks like an email address (lev.aronsky@israel.ottawa.watchfire.com). Maybe try linking that to GitHub?.
e28e7afd83bb32ed536df4163aeaee57ce60f617 - This commit has something that looks like an email address (lev.aronsky@israel.ottawa.watchfire.com). Maybe try linking that to GitHub?.
b0bf108418697612f23753aced482abebb9ecf2e - This commit has something that looks like an email address (lev.aronsky@israel.ottawa.watchfire.com). Maybe try linking that to GitHub?.

Unfortunately, we are unable to accept this pull request until this situation is corrected.
Here are your options:

If you had an email address set for the commit that simply wasn't linked to your GitHub account you can link that email now and it will retroactively apply to your commits. The simplest way to do this is to click the link to one of the above commits and look for a blue question mark in a blue circle in the top left. Hovering over that bubble will show you what email address you used. Clicking on that button will take you to your email address settings on GitHub. Just add the email address on that page and you're all set. GitHub has more information about this option in their help center.

If you didn't use an email address at all, it was an invalid email, or it's one you can't link to your GitHub, you will need to change the authorship information of the commit and your global Git settings so this doesn't happen again going forward. GitHub provides some great instructions on how to change your authorship information in their help center.

If you only made a single commit you should be able to rungit commit --amend --author="Author Name<EMAIL_ADDRESS>
(substituting Author Name and<EMAIL_ADDRESS>for your actual information) to set the authorship information.
If you made more than one commit and the commit with the missing authorship information is not the most recent one you have two options:

You can re-create all commits missing authorship information. This is going to be the easiest solution for developers that aren't extremely confident in their Git and command line skills.
You can use this script that GitHub provides to rewrite history. Please note: this should be used only if you are very confident in your abilities and understand its impacts.

Whichever method you choose, I will come by to re-check the pull request once you push the fixes to this branch.

We apologize for this inconvenience, especially since it usually bites new contributors to Home Assistant. We hope you understand the need for us to protect ourselves and the great community we all have built legally. The best thing to come out of this is that you only need to fix this once and it benefits the entire Home Assistant and GitHub community.
Thanks, I look forward to checking this PR again soon! :heart:

Oops, I developed this on a new system, where I didn't properly configure commit signing. I'll squash them into one commit and sign it properly soon.


controller/examples: Avoid discoverd race

Run the provider_create example first so that discoverd has lots of time to propagate our address.
Closes #869

LGTM


Session Hydrator

Summary

Human Summary
Add support for:

Storing ServiceConfigs in the Application store
Storing ServiceConfigs in the Supplier store
Business logic for GetSession and the underlying SessionHydrator

Not adding support for:

Staking/unstaking Service(s) for Application / Supplier
Using the proper (prior) BlockHash for session generation
The cliContext required to retrieve a Session

AI Summary

Summary generated by Reviewpad on 23 Oct 23 17:48 UTC
This pull request includes the following changes:

The error message ErrSample has been renamed to ErrHydratingSession.
The error code for ErrHydratingSession has been changed from 1100 to 1.
The error message for ErrHydratingSession has been modified to "error during session hydration".

The diff in the file observer.go involves updating a log message. The log message log.Printf("%s", observable.ErrObserverClosed.Wrap("redundant unsubscribe")) has been modified to include the warning prefix "WARN: ", resulting in log.Printf("%s", observable.ErrObserverClosed.Wrap("WARN: redundant unsubscribe")). This change adds a warning label to the log message.
The file "module.go" has undergone the following changes:

The import paths for "github.com/grpc-ecosystem/grpc-gateway/runtime" and "github.com/spf13/cobra" have been moved below the import paths for other packages.
The line "// this line is used by starport scaffolding # 1" has been removed.
The import path "github.com/cometbft/cometbft/abci/types" has been added.
The import path "pocket/x/session/client/cli" has been added.

The diff of the file session_hydrator_test.go includes unit tests for the session_hydrator package. The tests cover various scenarios such as successful hydration, metadata validation, session ID generation, application handling, and supplier count verification.
A new file has been added that contains a test function named "TestSession_GetSession_Success". The test is currently empty and commented out.
The file diff includes the addition of a new comment and a code snippet for a new function. The comment suggests an optimization to index suppliers by serviceID for easier querying. The new function, GetAllSupplier, takes in three parameters: ctx of type sdk.Context, sdkContext, and serviceId of type string. The function returns a list of shared types Supplier.
The file x/session/keeper/keeper.go has undergone the following changes:

Added imports for types.ApplicationKeeper and types.SupplierKeeper.
Added two new fields appKeeper and supplierKeeper to the Keeper struct.
Updated the NewKeeper function signature to include the new fields.

The file application.proto has the following changes:

At line 3, a new import statement is added for "pocket/shared/service.proto".
At line 9, a comment is modified to remove duplicate words.
At line 14, a comment is modified to remove duplicate words.
At line 16, a comment is modified to remove duplicate words.
At line 18, a new field repeated shared.ServiceId service_ids is added, representing the ID of the service this session is servicing.

The diff includes changes to the go.mod file of the project. The changes include removing and adding dependencies, and updating the version of a dependency. Please review these changes and ensure they align with the project requirements and dependencies.
The diff of the file testutil/keeper/session.go includes changes related to testing and mocking. It includes the addition of new imports, type definitions, variable declarations, and mock functions for keepers. These changes seem to be related to setting up test dependencies and mocking.
The diff of the Makefile file includes the addition of a new line to the go generate command. Specifically, it adds the command to generate mocks for the x/session/types/ package.
The diff includes the addition of mockgen command for generating mock implementation of expected keepers. It also includes the addition of interfaces and their respective methods for AccountKeeper, BankKeeper, ApplicationKeeper, and SupplierKeeper.
The diff of the file app.go includes changes related to adding new dependencies and passing them as arguments to the New function.
The file query.proto has undergone some changes. It includes the addition of import statements, the modification of go_package option, and the addition of new messages.
The file supplier.proto has the following changes:

Added an import statement for pocket/shared/service.proto.
Modified the comment for the address field to remove duplication and mention the use of cosmos' ScalarDescriptor for encoding.
The comment for the stake field remains unchanged.
The services field is uncommented and the type is changed to SupplierServiceConfig instead of service.SupplierServiceConfig.

The diff of the file tx.proto includes changes to the MsgStakeApplication message. The changes involve reordering and updating some fields, as well as adding a todo comment for updating the transaction flow for adding support for services in the application.
The file diff includes changes to the query_get_session.go file in the x/session/keeper package. The changes include adding import statements, adding a new variable, and implementing the GetSession function.
This file is a new addition to the "testutil/session/mocks" package. It is used to declare the package for dynamically generated structs. However, it deviates from the standard practice followed by the Cosmos SDK by committing mocks to the main branch instead of a separate directory. Additional documentation on how Cosmos uses "mockgen" can be found at the provided link.
The diff of the file query_params_test.go includes changes related to import statements. No other changes

Issue

#15

Type of change
Select one or more:

[ ] New feature, functionality or library
[ ] Bug fix
[ ] Code health or cleanup
[ ] Documentation
[ ] Other (specify)

Testing

[ ] Run all unit tests: make go_test
[ ] Verify Localnet manually: See the instructions [here](TODO: add link to instructions)

Sanity Checklist

[ ] I have tested my changes using the available tooling
[ ] I have performed a self-review of my own code
[ ] I have commented my code, updated documentation and left TODOs throughout the codebase

@bryanchriswhite @red-0ne This is ready for review but there is still some boilerplate/scaffolding work (to be done in other PRs) required for it to work E2E. There is some techdebt in place, and there is a lot of improvement we can do on the tests, but I believe it's a good initial checkpoint. Feel free to push back or let me know if I should expand on any parts in particular.


Fixed misc mixed precision issues

The main goal of this is to add dtype support for the MHA layer. E.g. get MultHeadAttention(dtype="mixed_float16") to work correctly (it does not today).
But tried out adding a mixed precision test for all layers, which caught some other bugs.

Interesting, looks like a lot of missing support on torch for float16 that I wasn't seeing locally. Will need to take a look.

Another question here. Looks like torch + half + cpu just doesn't really work do to missing ops. Should we

Just let these error persist so mixed_precision.set_global_policy('mixed_float16') will cause misc errors on torch CPU? E.g. relu is broken.
Detect and log a warning?
Detect and use full precision instead?

Let's skip the broken tests with torch.

ready i think!


Suppress paths errors

When setting .path it now suppresses the error from the SDK and warn with it instead.

Hmm...tests are working on Chrome, just not FF - something not importing I don't think, the test-fixture isn't being included maybe...ah well, gave it a shot. Better than nothing that it's got some in chrome.

Blergh, smells like such a hack, still think this should be handled differently by the SDK. But yep, looks fine.


How to customize this theme.

I love Minimal Blog Themes like these.
I deployed this theme on Vercel and now, How can I customize this theme?
Which CMS is better for this theme?
"I do not have a computer. But I can edit codes from GitHub"
'sorry for my English'

Hi, I would not recommend this template for your use case. There's no external CMS support and it's meant for someone to edit and customize using an IDE.

Hi, I would not recommend this template for your use case. There's no external CMS support and it's meant for someone to edit and customize using an IDE.

https://blog.shakhawat.me . I've completed my blog customization. I've posted a blog. That is not responsive. You can check in my blog.


"Delete All" button storage

I'm afraid I might press "Delete All" by mistake, so is it possible to save it in "Settings"?

@sasagm8 Just to let you know, when you click on "Delete All", it will give you a confirmation:

Sorry, thank you


Multi line mouse select breaks in text editor when editor is small enough

Steps to reproduce:

Open text file with lots of lines of code.
Resize text editor vertically so only 5 lines is visible.
Try to select two lines with the mouse.
As soon as two lines are selected the text editor begins to scroll rapidly in a state that is only possible to exit by stop selection.

The practical use case for me is when you split the editor vertically it's nothing strange to have just 5 lines in one of the panes.
Suggested solution is to use a relative auto vscroll select area instead of an absolute.
OS: Mac OS X 10.10.5
Atom 1.0.7

Would be nice to have to possibility to disable the auto vedge select scroll altogether as I'll happily use the scroll wheel to scroll when selecting.

Confirmed on Atom 1.0.7, Windows 10 x64.  It's possible to stop, but you have to use very, very subtle movements with the mouse.

/cc @nathansobo

Adding this to the short list.


Fix Windows curl/nghttp2 static build

When curl is linked with a static nghttp2, NGHTTP2_STATICLIB
must be defined during the curl build phase

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

Thanks for the PR!


Rayon entity depends on itself

This issue happens on forge branch
This issue has been addressed on gradle github: https://github.com/gradle/gradle/issues/847
Basically, As rayon-entity:common depends on rayon-core:common, it will try to run tasks in the core. but gradle is confused and think entity depends on itself, instead of rayon-core.
Emptying dependencies tab in build.gradle of rayon-entity:common has made it avoid this issue, although it is not good fix. When I do that, build.gradle of rayon-entity:forge fails instead, with same issue.

Fixed at https://github.com/LazuriteMC/Rayon/commit/a84c4735310fa350803ce00b3c7aa7fc318b3c8d


Add the latest DDD events

Added the latest DDD events that are missing.

@adrianbanks once again, thank you for your continued updates to this blog post!


Support multiple object instances

The current implementation uses class variables for the fields Parameters.parameters, Calculations.calculations and Visibilities.visibilities. Due to this, the memory for storing the read data is shared by all instances of the class Luxtronik.
Possible solution1:
Do not buffer the read data, but return them by calling read(). Just define the data structure within the Calculations.py (and so on).
Possible solution2:
Move the variable declaration into the __init__() section of the class Calculation (and so on).
Benefits:
If the instances are independent from each other, the interface could be used for multiple heat pumps in a multi-threaded application (like Homeassistant).
In terms of the OOP, solution 1 would fit better, since the data read does not belong to the luxtronik-read/write-interface

Interested in submitting a PR? I have very limited time at the moment 😓

I could give it a try.

Got a first draft. Could you give me the rights to push a branch?

Opened a pull-request. See: https://github.com/Bouni/python-luxtronik/pull/86


Translate concepts/cluster-administration/addons.md in Korean

This is a Feature Request

What would you like to be added

Translate concepts/cluster-administration/addons.md in Korean.
Why is this needed
There is no documents of concepts/cluster-administration/addons/ which translated into Korean.
Comments

Page to translate: https://kubernetes.io/docs/concepts/cluster-administration/addons/
/language ko

/assign


unsuporrted

how to fix ?

Unfortunately, this is a known issue. VSCode does not support CSS customization without corruption. Please see this github comment for the reason
However, there is a workaround to removing the warning, you can follow this thread here:
https://github.com/doki-theme/doki-theme-vscode/issues/26#issuecomment-676180921


Missing functions

Save to file

For the start, just having gdk_pixbuf_save() without save parameters would be nice, and probably sufficient for many applications.

Pixbuf::fill()

one i32 or u32 parameter, or four rgba parameters?

We don't have bind it yet, weird... There's a lot of missing functions in gdk, that's really weird. I think we'll need to do a global re-check on it to see what's missing and do a list.

Should I just keep creating issues for the missing ones I finds

Just create one issue and then add what's missing in it, it'll be easier for everyone to follow. And like that, we'll even know who's working on what. It'll allow to avoid issue we had when @gkoz and me were working on the same thing (and it happened a lot of time haha).

Alright, I repurposed this issue for that. (For future reference: Originally, it was just about “Save to file”.)

Originally, it was just "that". ;-) Thanks !

one i32 or u32 parameter, or four rgba parameters?

We most likely want a tuple struct for that. Too bad that the RGBA name is already taken.

Any chance the "Save to file" feature will be added soon? Thanks.

"Save to file" ? A link to the doc is needed here. ^^

Sorry, here it is. gdk-pixbuf-save.

That's weird, the ffi declaration doesn't seem to exist. @00shiv can you open an issue ? Or maybe you wanna add it ?

@GuillaumeGomez I opened an issue. If I get a chance I will try to add it.

@00shiv: Thanks and no problem ! I already answered you ^^


Drawing Classifier: resize input images

Fixes: #3236

This fixes the bug, but there is likely a better/faster way. This change will resize the images on each batch. Ideally, we should only resize each image once.

Internal test pass


Fix random crash

I noticed that, under some condition(I cannot detect the condition), the app crash at NSLog.
I fixed the use of NSLog.

Thanks. Will merge this into the next release. I expect we'll get a new GM of Xcode tomorrow.


Legion go/rog ally audio tuning

The commit changes are the framework for the $HOME/.config/easyeffects directory and sub-directory creation for both the ROG Ally and the Legion Go.
In order to properly utilize these files, easyeffects and all its optional plugin dependencies must be installed. Running easyeffects as a background service also requires xorg-x11-server-Xvfb since it technically runs in headless server mode.
/usr/local/bin/easyeffects-xvfb:  this is the edited bin file for easyeffects-xvfb that gets rid of some background errors that can pop up. it also needs sudo chmod +x to ensure it gets run as an executable.
#!/bin/bash

if [[ "$1" = "start" ]]; then
    pkill Xvfb
    sleep 1
    Xvfb :43 -screen 0 1024x768x16 &
    Xvfb_PID=$!
    sleep 3
    if kill -0 $Xvfb_PID 2>/dev/null; then
        export DISPLAY=:43
        easyeffects --gapplication-service
    else
        echo "Xvfb failed to start"
        exit 1
    fi
fi
if [[ "$1" = "stop" ]]; then
    easyeffects --quit
    pkill Xvfb
fi

/usr/share/applications/com.github.wwmm.easyeffects.desktop: the desktop file for easyeffects needs a minor edit to stop and start the background service when using the desktop Easyeffects GUI:
Exec=bash -c 'systemctl --user disable --now easyeffects-xvfb; easyeffects; systemctl --user enable --now easyeffects-xvfb'

/etc/systemd/user/easyeffects-xvfb.service: this is the edited background service file that gets it all running properly. there is sometimes an issue where the service would become inactive after switching from Desktop to Game Mode after editing the Easyeffects GUI. The .desktop change and the Restart function of the service file counteract that.
[Unit]
Description=EasyEffects inside Xvfb

[Service]
Environment="DISPLAY=:43"
Type=simple
ExecStart=/usr/local/bin/easyeffects-xvfb start
ExecStop=/usr/local/bin/easyeffects-xvfb stop
Restart=always
RestartSec=5

[Install]
WantedBy=default.target

the service file gets enabled with systemctl --user enable --now easyeffects-xvfb

There's a pretty significant problem with using $HOME, device quirks runs as root. Is there an equivalent directory in /etc that can be used?

Hmm, that certainly is an issue. Now that I've got the config files sorted out, let me dig into the structure tomorrow morning and I'll update the request accordingly when I get it all working together nicely.

$HOME issue has been addressed. tested by cloning my updated repo with Chimera 45 unstable dd49f76 on my Legion Go. added the packages required with sudo pikaur -S easyeffects xorg-server-xvfb lsp-plugins-lv2 calf zam-plugins-lv2 and then added easyeffects-xvfb bin and .service files to their proper locations at /usr/local/bin/easyeffects-xvfb and /etc/systemd/user/easyeffects-xvfb.service and enabled with systemctl --user enable --now easyeffects-xvfb

Will this make the ally louder?   I’ve noticed it gets quite a bit louder in windows.

Will this make the ally louder? I’ve noticed it gets quite a bit louder in windows.

Yes it should. Ally audio tuning should match Windows thanks to Ripplingsnake.

Hmm, I don't think this solution will work for all scenarios. Initial installation may not have a gamer user yet when this is run, or if it will be associated with UID 1000 running in an archiso environment. Looking at the easy-effects readme it does specify using the home directory so we'll need to think about this a bit.
We can definitely store the presets here. I think we'll need a user service that can install the files if not present. I'd be a lot more comfortable with that anyway as I prefer not to have root messing around in home.

Whats the status of this PR with the changes we discussed?

Whats the status of this PR with the changes we discussed?

I put this on the backburner so I could do more in-game testing with EasyEffects and Xvfb, and I think this specific method comes with too many tradeoffs to be considered for implementation.
A few examples: changing the TDP significantly can cause the audio to temporarily glitch out, there’s occasionally a crackle that gets introduced when Suspending/Resuming that won’t go away unless you restart the Xvfb server or your device, and low TDP settings can introduce an unacceptable amount of latency.
It seemed promising at first but these outstanding issues make it harder for me to see this as being a better stock alternative to something simple like OGUI’s volume boost or an integrated Pipewire equalizer. There’s also a Pipewire convolver plugin that may function similarly to EasyEffects without the added steps of a headless server like Xvfb. I just learned about this Pipewire convolver plug-in recently and plan on testing it this weekend.

I mean. The audio crackling exists on vanilla ally at lower TDPs.   I think most people would be understanding of this.  And having TDP controls is better than not having them.  I. Think this should be merged as is while adding a warning to users.  And if not.  A fork is a worthwhile alternative. Sent from my iPadOn 18. Nov 2023, at 22:43, matte-schwartz @.***> wrote:
Whats the status of this PR with the changes we discussed?
I put this on the backburner so I could do more in-game testing with EasyEffects and Xvfb, and I think this specific method comes with too many tradeoffs to be considered for implementation.
A few examples: changing the TDP significantly can cause the audio to temporarily glitch out, there’s occasionally a crackle that gets introduced when Suspending/Resuming that won’t go away unless you restart the Xvfb server or your device, and low TDP settings can introduce an unacceptable amount of latency.
It seemed promising at first but these outstanding issues make it harder for me to see this as being a better stock alternative to something simple like OGUI’s volume boost or an integrated Pipewire equalizer. There’s also a Pipewire convolver plugin that may function similarly to EasyEffects without the added steps of a headless server like Xvfb. I just learned about this Pipewire convolver plug-in recently and plan on testing it this weekend.
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you commented.Message ID: @.***>

please review the new ally.sh and legion-go.sh. in order to activate the surround sink, all users need to do is set their default speaker device to 100% and then switch the audio sink within Steam Game Mode from the default audio controller (like Family)  to the new surround sink. Volume buttons should work for the new virtual surround sink.

The ChimeraOS wiki will need to be updated after v45 goes live with instructions on how to use this. We'll be overhauling the wiki after v45 anyway so we can add this info then, but a draft of the steps and any needed screenshots would be most helpful. If you can post it in this thread that will ensure testing can be thorough.


MAXO:0035115	diffusion weighted cerebral MRI

MAXO:0035115	diffusion weighted cerebral MRI
A type of cerebral magnetic resonsnace (MR) imaging that measures random Brownian motion of water molecules within each voxel of imaged brain tissue.
parent: MRI of brain

added via template. https://docs.google.com/spreadsheets/d/1ZKk3cFQNYAXsNWbpI-ScaIm3OHx2Jtpco3Y1aNX7gZM/edit#gid=0