Errors &  not connecting

The script doesn't autorun on reboot. In my root's crontab, I see:

@reboot /usr/bin/python3 /home/pi/BusyLight/app.py

But for some reason, it doesn't connect to Azure IoT.
python3 --version

Python 3.7.3

sudo python3 app.py

Traceback (most recent call last):
File "app.py", line 112, in
asyncio.run(main())
AttributeError: module 'asyncio' has no attribute 'run'

sudo python3.7 app.py
Allows the Pi to connect to Azure IoT
Not sure what the issue is.

Looks like something has gone haywire with your python versions. It's strange that the version that comes out is high enough to have asyncio, but when run it looks like its an earlier version.
As a short workaround, you could change your crontab entry to use Python3.7.

@timeighty5 - I had a similar issue after it had been working for a bit (I had done some tinkering in the meantime, so not sure what caused the issue). I used @jimbobbennett 's workaround to update the crontab entry and it works now even after restart.


Best Practice: requestor pays

As suggested on gitter by @matthewhanson - it'd be good to have a best practice on URL's that are 'requestor pays'. We should capture these thoughts and put them in best practices.
'For requester pays URLs I’ve been using the s3 URL, e.g., s3://syncarto-data-rp/stac/naip/catalog.json
Since the http URL is useless on it’s own unless you sign it, so just working with the s3 URLs directly (with AWS CLI or boto3) I think is easier. Plus you can use PySTAC to support s3 reads/writes.
If public, then I use the actual http URL.
This might be a good thing to add to best practice'
'Even better might be to keep the STAC metadata in a different, and completely public, bucket that isn’t requester pays. Normally I like the data alongside the STAC Items, but I think it’s better if it’s public. That way you can use tools like STAC browser, PySTAC, without authentication for just the metadata.'

Ist this just for S3? Would a person buying data at Planet also be "requester pays"? Or how exactly is that defined outside of S3?

This is a field I have on the stac version of assets:
https://geo-grpc.github.io/api/#epl.protobuf.v1.Asset
It's also used in google cloud:
https://cloud.google.com/storage/docs/requester-pays
And I image it also exists in Azure

I think it'd definitely be good to have requester pays called out in the metadata as it presents a technical and financial difference in how you access the data. I have tried to create the signatures myself for use with straight HTTP requests, but always fall back on the available SDKs. Also, at least for AWS, there are two costs incurred with requester pays, the egress and a per-request fee. The per-request fee is generally very small compared to egress cost, but this is not always the case (specifically in cases of listing the bucket contents) and likely should be mentioned for completeness.

S3 and Google have RP, Azure apparently does not.
I like some of the fields in @davidraleigh 's  link -- a few comments on them:

cloud_platform (Google cloud, Azure, etc) -- I think this is good to have.  I use the "s3://" scheme in most of my asset hrefs, but I could just as well have used the virtual-host-style https uris. I assume this can be done with Google storage instead of "gs://", and Azure blob storage only uses https uris (e.g., https://myaccount.blob.core.windows.net/mycontainer/myblob)
bucket_region - I only know about S3, and there's no way to find out what region an object is in with just the "s3://" uri, without making a request to the us-east-1 and seeing where you get redirected.
bucket and object_path - duplicate what's in the href, but may be useful so you don't have to parse it?
requester_pays - would definitely be useful to have this.  In most of our code, we just set it on by default, as it has no effect if the bucket isn't RP, but if you make a request to an RP bucket and don't set the RP flag in the request, you get a generic AccessDenied message, and it's not apparent that you needed to set the RP flag.  I could imagine an end-user client like QGIS wanting to pop up a warning stating "You're going to incur cost to download this, continue?" rather than just pulling a lot of data without the user really knowing that's happening (e.g., not as apparent as when using the awscli)

A couple years ago we talked about "storage profiles" for STAC to describe some of these things, but nothing ever came of it.
I think a "cloud_storage" extension is warranted (or maybe just "cloud").  It can be set in Item properties, but could also be set per asset using the general Asset specific metadata rule:
Fields:

platform: aws, azure, google, etc
region: It would be useful to be able to have region, since as @philvarner points out you have to make a request to find out region (there's a get_region function in boto3).
requester_pays: true/false?

I'd avoid putting in bucket and object path, converting between s3 and http URLs is easy enough, and would be good to avoid dupliication.

We use STAC a lot internally, so object_path and bucket are useful to those internal users who have access permissions to use them, but for customers there is an href that isn't constructed from bucket + object_path.

@davidraleigh Ah, so this is really a case where you might have multiple URLs to the same assets.
We've run into this where we use s3 URLs, but for external users we have cloudfront URLs.  We've been handling that just be translating the URLs in a service built on top of the normal STAC API.
I could see an "alternate_hrefs" array in assets for something like this, if we wanted it to be more general. This would also be able to represent actual data mirrors.

I'm stumped for which is the clearest method. I love the object_path and bucket, because I think of everything as having a bucket. But I could see something like alternate_hrefs as not being too attached to the whole bucket cloud storage paradigm.

Two things here:

Use non-http url's
Alternate URL's

We want to provide real recommendations for next release.

Two things here:

Use non-http url's
Alternate URL's

We want to provide real recommendations for next release.

@matthewhanson - I can take on the work of writing this up, but need a clearer idea of what exactly to say. Others please sound in as well - I'm happy to try to write this up, but I don't have deep experience with stac & cloud locations.
I noted a bit from our call. My questions:

For use of non-http urls - do we want to call this out explicitly in the main spec? That you are allowed to use them? And then do we want to make it a recommendation that if you are using requestor pays you should use those? And not use http?
Alternate urls - do we want to add a specific field for this? An extension?
Do we still want a requestor pays best practice?  That says if you are doing requestor pays then a s3:// style url - http should be used.
Do we want a cloud_storage extension? With platform / region and requestor pays?

@matthewhanson - I can take on the work of writing this up, but need a clearer idea of what exactly to say. Others please sound in as well - I'm happy to try to write this up, but I don't have deep experience with stac & cloud locations.
I noted a bit from our call. My questions:

For use of non-http urls - do we want to call this out explicitly in the main spec? That you are allowed to use them? And then do we want to make it a recommendation that if you are using requestor pays you should use those? And not use http?
Alternate urls - do we want to add a specific field for this? An extension?
Do we still want a requestor pays best practice?  That says if you are doing requestor pays then a s3:// style url - http should be used.
Do we want a cloud_storage extension? With platform / region and requestor pays?

In addition to the fields mentioned above, I think having something like storage_class would also be useful. I think we'll see datasets in the future that have a mix of warm and cold storage. You'd still want the metadata for the data in cold storage but it'd be beneficial to know that the data will not be immediately available.
Talking myself out of the above, data generally gets brought out of cold storage for some period of time and then returned. So its storage_class is not constant. If the STAC entry isn't updated when it's brought out of cold storage, this field likely becomes less useful. The likely pattern without this entry (or if it's not updated) is that you'd 1) request the object, 2) get a message that says it's not available and then 3) follow some other step to bring it out of cold storage. An update field here likely just lets you skip step 1.
Also, think it would definitely be good to include region. I presume we'd want to use the platform-specific region designations? That'll be less meaningful to someone using a different platform but a) it's likely not of interest to them anyways and b) doesn't seem like STAC's role to somehow unify those designations.

In addition to the fields mentioned above, I think having something like storage_class would also be useful. I think we'll see datasets in the future that have a mix of warm and cold storage. You'd still want the metadata for the data in cold storage but it'd be beneficial to know that the data will not be immediately available.
Talking myself out of the above, data generally gets brought out of cold storage for some period of time and then returned. So its storage_class is not constant. If the STAC entry isn't updated when it's brought out of cold storage, this field likely becomes less useful. The likely pattern without this entry (or if it's not updated) is that you'd 1) request the object, 2) get a message that says it's not available and then 3) follow some other step to bring it out of cold storage. An update field here likely just lets you skip step 1.
Also, think it would definitely be good to include region. I presume we'd want to use the platform-specific region designations? That'll be less meaningful to someone using a different platform but a) it's likely not of interest to them anyways and b) doesn't seem like STAC's role to somehow unify those designations.

Storage class does seem like a good option to have. Is there a generic / cross cloud way to refer to them? I'm not deep on the options and how they map across clouds. Perhaps we'd have a little table that maps the generic name to the names on each of the major services.
Region I agree we'd need platform specific designations.
If anyone has time to write up a PR, even a draft one, on the extension that'd be much appreciated, as I've got a backlog for 1.0-RC1 stuff. I guess as an extension this doesn't need to be done by RC1, but it'd be nice to have.

Storage class does seem like a good option to have. Is there a generic / cross cloud way to refer to them? I'm not deep on the options and how they map across clouds. Perhaps we'd have a little table that maps the generic name to the names on each of the major services.
Region I agree we'd need platform specific designations.
If anyone has time to write up a PR, even a draft one, on the extension that'd be much appreciated, as I've got a backlog for 1.0-RC1 stuff. I guess as an extension this doesn't need to be done by RC1, but it'd be nice to have.

Thinking of this a little more, maybe it's important to get to the point of tracking storage class? So maybe something like immediately_available:T/F or retrieval_needed:T/F. While storage_class seems useful, I feel like it may be putting some effort on the user to figure out what a given storage class means.

Thinking of this a little more, maybe it's important to get to the point of tracking storage class? So maybe something like immediately_available:T/F or retrieval_needed:T/F. While storage_class seems useful, I feel like it may be putting some effort on the user to figure out what a given storage class means.

@cholmes what's the timeline for writing up a PR? I'm a little bogged down the next week and a half, but I could put more thought into it after that.
I would like a bitmask enum that I can use on the Asset and StacItem level, that has provider storage level information. I could search for all data that's currently on nearline and prepare to move it to coldline (using GCP terms for a minute). We have STAC items in multiple cloud providers, so a bitmask would allow me to look at what's nearline in AWS and coldline in GCP. And then on the asset level itself I could use the enum to define the status of the item.

@cholmes what's the timeline for writing up a PR? I'm a little bogged down the next week and a half, but I could put more thought into it after that.
I would like a bitmask enum that I can use on the Asset and StacItem level, that has provider storage level information. I could search for all data that's currently on nearline and prepare to move it to coldline (using GCP terms for a minute). We have STAC items in multiple cloud providers, so a bitmask would allow me to look at what's nearline in AWS and coldline in GCP. And then on the asset level itself I could use the enum to define the status of the item.

FYI: In STAC Index I've three classes of availability: public (accessible without any authentication), protected (authentication required for data access, but metadata accessible to all) and private (authentication required for all and/or only accessible to some groups, e.g. you must sign a contract first, you must be living in the US, or be working for a federal government).

I presume we'd want to use the platform-specific region designations?

Yes, I think so, too. You usually can't search for that anyway because it's hidden in assets.

FYI: In STAC Index I've three classes of availability: public (accessible without any authentication), protected (authentication required for data access, but metadata accessible to all) and private (authentication required for all and/or only accessible to some groups, e.g. you must sign a contract first, you must be living in the US, or be working for a federal government).

I presume we'd want to use the platform-specific region designations?

Yes, I think so, too. You usually can't search for that anyway because it's hidden in assets.

So maybe something like immediately_available:T/F or retrieval_needed

I like the direction to more generic. But once we get to here I start thinking about the general use case of 'ordering' data - providers (like Planet) generate the geotiff's on demand. It'd be great to cover that too, and retrieval_needed vs immediately_available seem like they'd work. It probably wouldn't be a 'cloud storage' extension, but perhaps a pair of extensions - one on 'asset availability' or something like that, and one on cloud storage - with regions and requestor pays. The asset availability would also hopefully cover @m-mohr's public/protected/private as well.

@cholmes what's the timeline for writing up a PR?

@davidraleigh - I doubt I'll get to it in the next two weeks, so if you could do it within that time frame that'd be great.

So maybe something like immediately_available:T/F or retrieval_needed

I like the direction to more generic. But once we get to here I start thinking about the general use case of 'ordering' data - providers (like Planet) generate the geotiff's on demand. It'd be great to cover that too, and retrieval_needed vs immediately_available seem like they'd work. It probably wouldn't be a 'cloud storage' extension, but perhaps a pair of extensions - one on 'asset availability' or something like that, and one on cloud storage - with regions and requestor pays. The asset availability would also hopefully cover @m-mohr's public/protected/private as well.

@cholmes what's the timeline for writing up a PR?

@davidraleigh - I doubt I'll get to it in the next two weeks, so if you could do it within that time frame that'd be great.

By the way, there are related issues for accessing and ordering data: #836 and #891

By the way, there are related issues for accessing and ordering data: #836 and #891

@cholmes I can make an attempt at a pull request for this week

@davidraleigh - awesome! Be warned, we are going to move most of the extensions out of the core repo soon, see #946 But feel free to make a PR here, it'll just probably be applied to another repo.

Circling back on this - we've got a lot of great energy on the cloud storage extension. But I don't think we need that for 1.0.0, as STAC works fine without it, and it'll be a nice addition to have in an extension (I'm not set on that, but would want to hear a good argument).
But what do we want to actually say in the spec itself? Should we call out the use of s3:// style url's in a best practice? And say that those are recommended to be used when data is requestor pays? And to also recommend that people don't put their STAC metadata in requestor pays buckets?

For main best practices:

put your metadata in non-requestor pays
there's an extension
If there is not publicly available http url then use a url that is the right protocol for the file (s3:// gs://)
use storage extension

Closing this, though note if we do get a storage extension soon then we should link to it from this best practice.


Fixing demo scene

Everything is placed where it is supposed to be
Baked lightning
Height to things

Blocked by #63


Question about readme

Base64-encoded IDs (Youtube-like):

they are just regular autoincrement IDs displayed in a different format that is trivial to reverse

YouTube IDs are Base64 encoded using the URL variant. That's verificable because it ignores the higher bits when decoding. Example: jNQXAC9IVRw, jNQXAC9IVRx, jNQXAC9IVRy, jNQXAC9IVRz returns the same video.
The issue is "that is trivial to reverse": can you source that? If would trivial to reverse then unlisted videos wouldn't work. My guess is that YouTube is taking the "autoincrement ID", encrypting it with some 64-bit block cipher then encoding using Base64.

I'm calling it Youtube-like to describe how the obfuscated IDs look like. I don't know what Youtube does internally to the value (or how the value is generated) before base64 encode.

So it's not trivial to reverse, unlike the readme says?

Base64 encoded IDs are trivial to reverse if that's the only thing you're doing. I'm going to clarify that, because this ticket shows it's possible to assume based on the README that I claim this the only thing Youtube is doing.

I think that comparison with YouTube is not fair because Base64 is just the
encoding, it don't handles integer obfucation.
Of course, someone could take the result from your library (or similar) and
reinterpret in other base: decoding or encoding from some base it's just a
matter of presentation, what's important for the obfuscation is hiding the
data behind it.
So I could use store my integers in a 8 byte buffer, encrypt those with
Triple DES and encode with Base64. Of course, it's trivial to reverse the
Base64 step, what is not trivial is reversing the encryption step. Then if
you're going to compare your library with YouTube don't consider only the
final step, but all steps.
If YouTube could be using cryptography then their implementation is good:
it's not trivial to reverse (maybe impossible without the key), easy to
implement (on Node there's the crypto module), fast (on my computer OpenSSL
can process over one million 64 byte blocks per second using AES) and
versatile (they used Base64, but they could use Base32 or any other
encoding).
The issue - that your library don't have - IIRC - is that if you use crypto
you will get a large obfuscated value… unless you use less secure ciphers
that allows smaller block sizes. There's also homomorphic encryption, but
all NPM libraries for that I checked are insecure: one of those implements
a simple and weak substitution cipher.
The readme issue aside, IMHO thinking about this maybe can lead a good
improvements in your library.
2018/12/04 18:34 "Maciej Lisiewski"<EMAIL_ADDRESS>Base64 encoded IDs are trivial to reverse if that's the only thing you're
doing. I'm going to clarify that, because this ticket shows it's possible
to assume based on the README that I claim this the only thing Youtube is
doing.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/c2h5oh/hide/issues/5#issuecomment-444247870, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AA-S_owpJ80i_MU-lO8s3XfO6kLTUuHRks5u1tw6gaJpZM4YTRev
.


Efficient use of CSG while animating ?

I tried changing the example code to do the CSG during rendering, obviously this is quite slow, any ideas on how to do CSG in an animation efficiently ?
Ideally I'd like to be able to have some 3d object have slices moving through it (in response to audio)

Maybe better to create N meshes in some pre-process and animate these.
ie: load the meshes into several GL buffers and then simply switch buffers on each frame.
Don't think CSG can be sped up alas.

That makes sense.
It's interesting how this code seems to run faster in python than pypy
Here's the example code, but with output to a .profile added
https://gist.github.com/stuaxo/091e1db7b1495061a2cd
I tried using "blist" instead of list (though this doesn't work in pypy), and adding 'slots' to the classes in pycsg ... this gave a tiny speedup - but nothing notable -
real	0m3.608s
user	0m3.508s
sys	0m0.056s

real	0m3.626s
user	0m3.552s
sys	0m0.032s

I guess anything further might move things away from the nice architecture you have and make the code less understandable.
Better locality of could probably speed things up on the low level.   Batching operations, storing all the vertices in numpy arrays and batching operations might help.
This algorithm on realtime csg looks interesting, though it is only for convex shapes (not sure if it is possible to split concave ones into convex) -
http://sandervanrossen.blogspot.tw/2009/12/realtime-csg-part-1.html
Later on he changes from a btree to a sparse tree - this probably gets a speed up because of locality again.

Using pyrr might be interesting ... though whether it would be faster or slower than just swapping it in I don't know.
https://github.com/adamlwgriffiths/Pyrr
Looking at profiling data in runsnakerun - a lot of time is spent in constructors in geom -  17% compared to low level operations like lerp (5.8%) and dot (7%)


feat: add a new Widget Segment Radial Gauge, adjust Scale Radial Gauge for negative minValue usage

- What I did

Added a Segment Radial Gauge which can show different segment color & size
Edited getScale function of Scale Radial Gauge for negative minValue usage
Added Example Widget in example/lib/main.dart

- How I did it

The Segment Radial Gauge is developed from Scale Radial Gauge, using Arc to represent the Segment
Using both minValue and maxValue in getScale for allowing negative minValue

- How to verify it

Please try example

@project2021-code, Code looks good, thanks for the PR, We're in the process of merging two of our visualisation packages into one. When that task is completed I'll share the new repo so you can add the changes there.

@project2021-code, Our code have been migrated to https://github.com/atsign-foundation/at_viz/tree/trunk. Please make your PR there, I'm very grateful for your contribution.


Time to process incoming vectors and return results is too slow

According to @janbiedermann for a sample request of 70 vectors it can take say 50 MS to process, but for a similar request of 140 vectors (same application) it then goes up to 335 MS, this for a request that only uses a few MS of Active Record processing time.
While it is understandable that the time increases based on the amount of data returned (probably O(n*log(n) of total amount of data returned) 335 MS seems like a long time.
This issue is to discuss and understand the algorithm, and suggest improvements.

This comment was actually from @janbiedermann on the chat but I am copying it here to get the conversation rolling:

@catmando i dont think its a good idea to have the client do the compilation here. I step back a little and look at the process:
The client collects items in a hash
A hash is not that far away from a graphql like hashy structure.
The client could as well collect items into a graphql like structure.
Then the client could push this as is to the server
The server would then understand this and collect items from the db.
So the server would then be a, limited to AR attribute and scope accesses, graphql interpreter/compiler. Emphasis on limited. With datatypes implied, comvention over configuration.
Maybe.
And we would then have another cool badge for marketing "GraphQL"
We could then even delegate part of the process to existing, possibly js, libraries, what @barriehadfield would like.

I don't think switching to graphQL would help.  That would just change the syntax for communicating the request to a more general purpose syntax, from one that is already specialized to the purpose.
Lets start by understanding how the vectors work:
Each request during rendering turns into a "vector"  (a json structure) that looks like this:
[model, method, method, method, method, method....]
methods come in several flavors:  just the name (a string) of a method to apply to the chain.
methods can also be an array like [method, param, param] allowing for parameters to passed to the method.
Finally there are some special methods like 'all' and "" and "*1" "*2" etc.  which will be explained below.
So you might have 2 vectors like this:
['User', ['managed_by', 'fred'], '*all', 'first_name']
['User', ['managed_by', 'fred'], '*all', 'last_name']
this might be the result of somebody rendering this:
   # param.manager currently = 'fred'
  UL do
    User.managed_by_(param.manager).each do |user|
      LI { "#{user.first_name} #{user.last_name}" }
    end
  end

(more later)

Also while I don't think GraphQL would help the performance issue in of itself, In looking at it, it does seem that it makes a lot of sense to make GraphQL the underlying protocol.
I.e. hyper-model on the client would package up the requests as a graph, send it off the server to fetch.  We might be able to throw away a huge pile of code :-) and at the same time make attaching to other persistence stores much easier.
Put it this way if I were writing hyper-model today (instead of 3 years ago) I would probably start with GraphQL as the base.
Pretty exciting possibility.

Currently vectors are created and collected once a data item is referenced.
If a data items is referenced several times, this leads to creation of several, identical vectors, which are collected. Then before the request is made, so that not to many vectors are requested, .uniq is called on the resulting array. That significantly hurts performance (adds 35ms for 140 vectors before the request is even made, comparison on O(vector_count * vector_depth) again).

Thanks for the detailed write-up @catmando, now I see a little more how this magic works!

Thinking more about the above... here is what we do:
Currently the cache consists of many many "resolved" vectors.   Keep in mind that a simple vector like [User, 'some_scope', ...] can add 1000's of resolved vectors (one for each record returned by some_scope) to the cache, and before each new vector is added the cache has to be searched.
Because the cache is "flat" following vector lookups in the cache must search the entire cache.
Step 1:  Modify this method (in server_data_cache.rb)
        def self.[](models, associations, vectors, acting_user)
          ActiveRecord::Base.public_columns_hash
          result = nil
          ActiveRecord::Base.transaction do
            cache = new(acting_user, ReactiveRecord::Base.save_records(models, associations, acting_user, false, false))
            vectors.each { |vector| cache[*vector] }
            result = cache.as_json
            raise ActiveRecord::Rollback
          end
          result
        end

So it looks like this:
        def self.[](models, associations, vectors, acting_user)
          # convert the vectors list back to a tree.
          # the tree is in the format of the final output (i.e. cache.as_json) but with pieces that
          # are not yet populated.

          # eventually we will just build this tree on the client and pass it up instead of re-building it here
          # in other words this line can be removed eventually
          tree = build_tree_from_vectors(vectors)
          ActiveRecord::Base.public_columns_hash
          ActiveRecord::Base.transaction do
            # save all the models that have been updated on the client, but not yet saved
            # these will get rolled back below
            temp_record_buffer = ReactiveRecord::Base.save_records(models, associations, acting_user, false, false)
            # now walk the tree evaluating each branch using active record, and filling in the leaf
            # nodes
            tree.populate_tree(acting_user, temp_record_buffer)
            raise ActiveRecord::Rollback
          end
          tree.as_json # this is just a simple "as_json" not the complex custom thing.
        end

this should be much faster as we are only transforming the vectors into the tree once (at the beginning) and even this transform can eventually be removed by having the client keep the "vectors" in actual tree format and just shipping them up to the client in that form.
The only problem with this approach is that to support pre-rendering we need to modify the def [] method (i.e. the add vector to instance of a cache)
The reason is that during pre-rerendering we have direct access to the database so as each piece is rendered we pull the data out of the db.  Easy.  But we also want to save it in the same output tree structure that the above fetch returns.  This is so that at the end of prerendering we not only have the generated HTML, but also the data to pre-reload into the client DB cache as if we had just fetched it all.
So really what we are doing is replacing the "cache" which with a "cache-tree

it should at the end just be:
result_tree = ReactiveRecord::Base.save_records(request_tree, acting_user, false, false)

nope
save_records saves records.
The fetch process works like this:

vectors (or should be tree) is gathered during rendering

client gathers up all changed (but not saved) records that have a relationship with the data being fetched by the vectors.

vectors/tree + changed record list is sent to the server

server saves the changed records inside of transaction (so it can be rolled back)

evaluates vector/tree

rolls back transaction

returns the evaluated tree (must be a tree by now)

The reason for sending the changed stuff to the server is like this:
Say you were executing on the server (normal rails - no hyperloop) and you have a user model, and user's manager relationship.  You now change user "mitch" from being managed by manager "fred" to manager "barry", but don't yet save.  You then ask AR for "barry's" list of workers.  Even though nothing is saved, AR will return the correct list of info.
So when we evaluate expressions from the "vector/tree" on the server we have to have any other related records hanging around.  I can't remember why the actual save/rollback was necessary but it was the easiest way to solve some problem

Some thoughts on the basic plan here:
vectors are conceptually always in the form:
Model.exp1.exp2...expn.terminal-operator
where exp is
method(param1, param2 ...)
and terminal-operator is either an exp (like above) or one of the special terminals *all or *count
combining vectors will result in a tree structure, with each Model being a root of a tree:
Simple representation:
{Model1 => {
  [method-a, param1, param2] => {
    [method-b, param1, param2] => {},
    '*all' => {}
    [method-c] => {},
  [method-d] => {},
  '*count' => {},
  }
}

A real world example might be:
{User => {
  [:find, 12] => {
    [:first_name] => {}
    [:todos] => {
      [:title] => {}
      '*count' => {}
      }
    }
  }
}

MORE ? why not just go ahead and use graphql ?
above structure does not show which are relations (arrays of items) and which are single values

The last of the above snippet is where i am in my thoughts too.
Question 1:
Client knows what things are from the public_columns_hash,
Server knows what things are, it has all the models and the db.
Why send this information?
Question 2:
Why is there a method "find"?
We have attributes, relations, scopes.
Instead in GraphQl we just submit what we have, and ask for what we want.
{ user: {
    id: 12,
    first_name,
    todos(count: 2) }}

(If i got that query right, of which i am currently not sure, because i am still learning)

@janbiedermann - what do you mean by "why send this information"??
not sure what information you mean.
I have updated the above comment to hopefully clarify.

Your clarification answered my question. I updated my comment above.
Still, the 'find' looks odd, but it depends on what you want.
If you want to support other ORMs custom convenience methods on the client too, then its very nice. everything there out of the box.
If its just about getting the data, then just working with the attributes, relations, scopes is good.

This is now in progress, becasue of necessity, see:
https://github.com/ruby-hyperloop/hyper-mesh/issues/45


[Improvement] "Locals" content could be sorted alphabetically

I think that makes sense. Thanks for your input.

Fixed


Active database change not supported in SAP Hana

I recently set up a connection SAP Hana and am trying to connect to one of the databases therein. I continue to get the following message:

I've checked the connection and driver settings multiple times and can't find anything entered improperly. The only weirdness I can find is that the driver class is always missing even though I select and save it every time. Otherwise, it's just defaulted to one of the databases and won't let me change to another. What am I missing?

AFAIK every database in SAP HANA runs on a different port and thus the JDBC connection string is different (even on multi tenant installations).
DBeavervis only able to switch databases if it cam be done by an SQL statement within one JDBC connection (like on mysql).
so you will have to create multiple Connections in DBeaver for multiple Sap HANA databases.

No feedback. Closing


Browser

marking dependencies to be ignored by browser bundlers, references: https://github.com/Microsoft/TypeScript/blob/60986adee5a96579a258a2dd896f4bd3d2da6c98/package.json#L109

Coverage remained the same at 94.35% when pulling ef63bb6e16248977e1d98fc71ab2836393c31ee5 on cancerberoSgx:browser into b1d63bf304c397ac9b2b5ba25936e29571e9127b on dsherret:master.

Oh, this means it will work in StackBlitz and similar? Nice! :tada:

I'm not sure - I think we need to distribute main.js file (for browsers) and declare that one in "browser" property - I don't think stackbliz will run bundlers theirself - I think they just use cdns like https://unpkg.com/ . The nice thing is if we generate that in npm pubish those cdns will expose the fie automatically.

Thanks! 😄


add more tests for typenames and clean up implementation

Courtesy of @lukejacksonn

Coverage decreased (-0.1%) to 91.94% when pulling a25cbacf6acf39e2abe8511431c2495fe7aec721 on cleanup-typenames into 7c42c54e46285ce260c8e16447e332d13601c6c9 on v1.


forgot address

fix https://github.com/DarkFlorist/TheInterceptor/issues/784

@coderabbitai review


SMSMessage does not resolve

C# example does not build since SMSMessage doesn't resolve with v2.0 of azure functions

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

ID: 32f10048-0374-3561-c66d-6279708b1272
Version Independent ID: 64cbe0eb-0e05-2432-128f-9e738735f0ef
Content: Human interaction and timeouts in Durable Functions - Azure
Content Source: articles/azure-functions/durable/durable-functions-phone-verification.md
Service: azure-functions
GitHub Login: @kashimiz
Microsoft Alias: azfuncdf

Hi @ambivalentdev Thank you for your feedback! We will review and update as appropriate.

Closing as part of https://github.com/MicrosoftDocs/azure-docs/issues/25898#issuecomment-469145652


'=' - type mismatch GlobalVariable.mqh 292 12

Hello,
I was using mql-zmq for quite some time, I made a change in the dwx-zeromq code and I have an error in GlobalVariable, exactly on line 292:
m_hm = new HM;
I have downloaded the whole folder again from this repository and replaced all the files and still have the same problem
My mt4 version is: 4.0 Build 1280 July 24, 2020

Hi,
It seems that the error is in your code. I don't see a line "m_hm = new HM;" in the DWX_ZeroMQ_Server_v2.0.1_RC8.mq4 file. So it probably is not connected to the dwx-zeromq-connector.

First of all thank you very much for your reply.
I just checked my error, forgot to replace the * .dll files
Now compiles perfectly

Ok, great to hear that it works now. :)


WIP: DNM: arm: Add ramfunc section to link scripts

There may has some code that can only run in sram such as the
operations about flash, so introduce a method that placing
code into sram, load from flash to sram when booting.
Signed-off-by: qianfan Zhao<EMAIL_ADDRESS>

Actually this link scripts doesn't  work. I write a simple code to test:
diff --git a/samples/hello_world/src/main.c b/samples/hello_world/src/main.c
index 2d4a7f0..f4ad993 100644
--- a/samples/hello_world/src/main.c
+++ b/samples/hello_world/src/main.c
@@ -6,8 +6,18 @@

 #include <zephyr.h>
 #include <misc/printk.h>
+#include <linker/linker-defs.h>
+
+static void __attribute__((noinline)) _GENERIC_SECTION(ramfunc) ramfunc_test(void)
+{
+       printk("__ramfunc_ram_start: %p\n", __ramfunc_ram_start);
+       printk("__ramfunc_ram_end: %p\n", __ramfunc_ram_end);
+       printk("__ramfunc_rom_start: %p\n", __ramfunc_rom_start);
+       printk("The address of %s is %p\n", __func__, ramfunc_test);
+}

 void main(void)
 {
        printk("Hello World! %s\n", CONFIG_BOARD);
+       ramfunc_test();
 }

Compile and download this demo to nucleo_f070rb, next is the address printed from console:
***** Booting Zephyr OS v1.13.0-rc1-623-g19ff1d2 *****
Hello World! nucleo_f070rb
__ramfunc_ram_start: 0x2000113c
__ramfunc_ram_end: 0x2000113c
__ramfunc_rom_start: 0x08002240
The address of ramfunc_test is 0x08001d7d

The function 'ramfunc_test' linked into 'ramfunc section' but the address is in FLASH region.
➜  build git:(ramfunc) ✗ arm-none-eabi-objdump -jramfunc -S  zephyr/zephyr.elf

zephyr/zephyr.elf:     file format elf32-littlearm

Disassembly of section ramfunc:

08001d7c <ramfunc_test>:
#include <zephyr.h>
#include <misc/printk.h>
#include <linker/linker-defs.h>

static void __attribute__((noinline)) _GENERIC_SECTION(ramfunc) ramfunc_test(void)
{
 8001d7c:       b510            push    {r4, lr}
        printk("__ramfunc_ram_start: %p\n", __ramfunc_ram_start);
 8001d7e:       4909            ldr     r1, [pc, #36]   ; (8001da4 <_image_text_end+0x28>)
 8001d80:       4809            ldr     r0, [pc, #36]   ; (8001da8 <_image_text_end+0x2c>)
 8001d82:       f7fe fc8f       bl      80006a4 <printk>
        printk("__ramfunc_ram_end: %p\n", __ramfunc_ram_end);
 8001d86:       4909            ldr     r1, [pc, #36]   ; (8001dac <_image_text_end+0x30>)
 8001d88:       4809            ldr     r0, [pc, #36]   ; (8001db0 <_image_text_end+0x34>)
 8001d8a:       f7fe fc8b       bl      80006a4 <printk>
        printk("__ramfunc_rom_start: %p\n", __ramfunc_rom_start);
 8001d8e:       4909            ldr     r1, [pc, #36]   ; (8001db4 <_image_text_end+0x38>)
 8001d90:       4809            ldr     r0, [pc, #36]   ; (8001db8 <_image_text_end+0x3c>)
 8001d92:       f7fe fc87       bl      80006a4 <printk>
        printk("The address of %s is %p\n", __func__, ramfunc_test);
 8001d96:       4a09            ldr     r2, [pc, #36]   ; (8001dbc <_image_text_end+0x40>)
 8001d98:       4909            ldr     r1, [pc, #36]   ; (8001dc0 <_image_text_end+0x44>)
 8001d9a:       480a            ldr     r0, [pc, #40]   ; (8001dc4 <_image_text_end+0x48>)
 8001d9c:       f7fe fc82       bl      80006a4 <printk>
}
 8001da0:       bd10            pop     {r4, pc}
 8001da2:       46c0            nop                     ; (mov r8, r8)
 8001da4:       2000113c        .word   0x2000113c
 8001da8:       08001e84        .word   0x08001e84
 8001dac:       2000113c        .word   0x2000113c
 8001db0:       08001e9d        .word   0x08001e9d
 8001db4:       08002240        .word   0x08002240
 8001db8:       08001eb4        .word   0x08001eb4
 8001dbc:       08001d7d        .word   0x08001d7d
 8001dc0:       08001e58        .word   0x08001e58
 8001dc4:       08001ecd        .word   0x08001ecd

Codecov Report

Merging #10255 into master will decrease coverage by <.01%.
The diff coverage is 0%.

@@            Coverage Diff             @@
##           master   #10255      +/-   ##
==========================================
- Coverage   53.06%   53.05%   -0.01%
==========================================
  Files         214      214
  Lines       26198    26200       +2
  Branches     5645     5645
==========================================
  Hits        13901    13901
- Misses      10025    10027       +2
  Partials     2272     2272

Impacted Files
Coverage Δ

kernel/init.c
70.31% <0%> (-2.27%)
:arrow_down:

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 ab8d0c4...19ff1d2. Read the comment docs.

I had searched 'how to place code into sram' on google, and find a way: ramfunc-gcc
longcall：This is an attribute for function. It declares that the function with this attribute is to be called from different place. The compiler always uses a pointer to call the function.

section ：This attribute places variables and/or functions in section you specify.

With these attributes specified, you can place your functions or variables in RAM. If you want a variable to be placed in RAM, you may not use longcall attribute. That attribute requires for function, but not for variables.

And changed the ramfunc_test in this way:
static void __attribute__((noinline)) __attribute__((long_call,section(".ramfunc"))) ramfunc_test(void)

Now everything is OK.
***** Booting Zephyr OS v1.13.0-rc1-623-g19ff1d2 *****
Hello World! nucleo_f070rb
__ramfunc_ram_start: 0x20001140
__ramfunc_ram_end: 0x200011a0
__ramfunc_rom_start: 0x080021fc
The address of ramfunc_test is 0x20001141

@SebastianBoe could you please also check it?

Another thing.
What this approach does is introduce an output section, an input section, and kernel code for init'ing the new output section.
We can make do with a lot less code if we introduce a new input section and re-use an existing output section, like for instance the DATA output section.
diff --git a/include/arch/arm/cortex_m/scripts/linker.ld b/include/arch/arm/cortex_m/scripts/linker.ld
index c9baa7d9fc..afcd85cf5b 100644
--- a/include/arch/arm/cortex_m/scripts/linker.ld
+++ b/include/arch/arm/cortex_m/scripts/linker.ld
@@ -336,6 +336,7 @@ SECTIONS
 	__data_ram_start = .;
 	KERNEL_INPUT_SECTION(.data)
 	KERNEL_INPUT_SECTION(".data.*")
+	KERNEL_INPUT_SECTION(".ramfunc")
 	*(".kernel.*")

 #ifdef CONFIG_CUSTOM_RWDATA_LD

@SebastianBoe I had test this pr on different platform one has MPU and the other doesn't. this pr can't run on MPU platform, I think maybe can't run code on ram due to mpu protected. I will check and fix it.
Placed ramfunc section to data is a good solution that can make things easier, will not copy ramfunc from flash to ram, the original code do that. the biggest problem is how to deal with mpu, I don't have any idea now .

@SebastianBoe
ARM soc has 3 MPU region default in Zephyr, the whole SRAM(including SRAM_0 and SRAM_1) are configured as XN(eXecuted Nerver) default. So make code run in SRAM will cause MPU fault.
static struct arm_mpu_region mpu_regions[] = {
	/* Region 0 */
	MPU_REGION_ENTRY("FLASH_0",
			 CONFIG_FLASH_BASE_ADDRESS,
			 REGION_FLASH_ATTR(REGION_FLASH_SIZE)),

	MPU_REGION_ENTRY("SRAM_0",
			 CONFIG_SRAM_BASE_ADDRESS,
			 REGION_RAM_ATTR(REGION_SRAM_0_SIZE)),

#ifdef REGION_SRAM_1_SIZE
	MPU_REGION_ENTRY("SRAM_1",
			 CONFIG_SRAM_BASE_ADDRESS + REGION_SRAM_1_START,
			 REGION_RAM_ATTR(REGION_SRAM_1_SIZE)),
#endif
};

struct arm_mpu_config mpu_config = {
	.num_regions = ARRAY_SIZE(mpu_regions),
	.mpu_regions = mpu_regions,
};

/* Some helper defines for common regions */
#define REGION_RAM_ATTR(size) \
{ \
	(NORMAL_OUTER_INNER_WRITE_BACK_WRITE_READ_ALLOCATE_NON_SHAREABLE | \
	 MPU_RASR_XN_Msk | size | P_RW_U_NA_Msk) \
}

If I remove MPU_RASR_XN_Msk in REGION_RAM_ATTR, the ramfunc are runable.
But I don't think mark the whole SRAM region as executed is a good idea, is there has another better way to do that?

I guess we could partition the ram into an executable region and a non-executable region and have the MPU just protect the non-executable region.

@SebastianBoe
agree. I will read the mpu part and find a better way to implement.
That's will take many days i think.

@qianfan-Zhao I'm facing the same problem, do you have a better way to solve this issue?

@easonxiang I have no idea about MPU current, so I just closed this PR.
Seems the only way to solve this is create a standalone link section in SRAM and set it as executed in MPU.

Closed this pr and open a new one: #11228


[Feature Request] Adding Elestio as deployment option

Is your feature request related to a problem? Please describe
Hey team,
I am Kaiwalya, Developer Advocate at Elestio. Elestio has been providing options of fully deploying and managing OpenSearch application as shown here. I think it would be a great idea if we can add it to official readme/documentation here.
🔔 In addition to this, if you are interested we provide partnership opportunities with tools we support by revenue share upon addition of this method in docs. If you would like to collaborate, just shoot me an email at<EMAIL_ADDRESS>:)
Describe the solution you'd like

Related component
Other
Describe alternatives you've considered
No response
Additional context
No response

Thanks @kaiwalyakoparkar! I think this belongs in the partners section on the website or something like that. This repo is just one of 116 public repos in the org and OpenSearch is the sum of about 35 or so. I'll move this issue there.


Name for the alternate POB fields

If we are to start using and displaying the alternate POB fields it is desirable that we have a consistent name for them.
Various terms have been used or suggested.
Alternate POB
Alternative POB
Validator's Choice POB
Validator’s Suggested POB
Suggested POB
Preferred POB
Can we agree on a term to use in the future.

Kirk
My thoughts are as follows:
Alternate POB - This is a North American word meaning the same as
Alternative. It is not used in that context World wide. I do not think that
it should be chosen as it is not universally understood.
Alternative POB - This is the phrase we use in FC2 in the spreadsheets. The
spreadsheet audience is our volunteers who are being asked to enter an
alternative to the verbatim POB. It is acceptable in a search report but the
use of the word Alternative can be mis-interpreted by a lay researcher.
Validator's Choice POB - This is the term used in FC1. I am not sure that
the lay researcher would understand the context. Validator is a FreeCEN
role.
Validator's Suggested POB - as per validators choice
Suggested POB - This is my preferred option. A lay researcher would see this
and understand the context that the POB is suggested. It may or may not be
accompanied by a note. It is clear that this is just a suggestion.
Preferred POB - I think that preferred is too specific. We may use it in
that context when we establish a lat / long but that is a system specific
use. The entry is our interpretation.
So I would opt for Suggested POB. It is universally understandable and is
not too specific a phrase.
Geoff
From: Kirk Dawson @.>
Sent: Saturday, October 30, 2021 7:50 AM
To: FreeUKGen/FreeCENMigration @.>
Cc: geoffj-FUG @.>; Assign
@.>
Subject: Re: [FreeUKGen/FreeCENMigration] Name for the alternate POB fields
(Issue #1315)
If we are to start using and displaying the alternate POB fields it is
desirable that we have a consistent name for them.
Various terms have been used or suggested.
Alternate POB
Alternative POB
Validator's Choice POB
Validator's Suggested POB
Suggested POB
Preferred POB
Can we agree on a term to use in the future.

You are receiving this because you were assigned.
Reply to this email directly, view it on GitHub
<https://github.com/FreeUKGen/FreeCENMigration/issues/1315#issuecomment-9550
67558> , or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AKCPIFKGR7T36XD2S5ZZDLTUJ
MJI7ANCNFSM5HAGWMUA> .
Triage notifications on the go with GitHub Mobile for iOS
<https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&m
t=8&pt=524675>  or Android
<https://play.google.com/store/apps/details?id=com.github.android&referrer=u
tm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub>
.
<https://github.com/notifications/beacon/AKCPIFJD2FED4GOMYO5TR33UJMJI7A5CNFS
M5HAGWMUKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOHDWSZJQ
.gif>

<https://home.mcafee.com/utm_medium=email&utm_source=link&utm_campaign=sig-e
mail&utm_content=emailclient?utm_medium=email&utm_source=link&utm_campaign=s
ig-email&utm_content=emailclient>
Scanned by McAfee
<https://home.mcafee.com/utm_medium=email&utm_source=link&utm_campaign=sig-e
mail&utm_content=emailclient?utm_medium=email&utm_source=link&utm_campaign=s
ig-email&utm_content=emailclient>  and confirmed virus-free.

I would also go for Suggested POB

I agree that "Suggested" is the best adjective put forward so far. However, something is unsettling me — could be just a touch of indigestion!

Closing as both alternates are to be displayed in the one field (as per Alison's suggestion of 1st Nov).


Fixing extra whitespace in language names

Three language names had an extra space character in their names.

@JonMLyons : Thanks for your contribution! The author, @v-jerkin, has been notified to review your proposed change.

Looks good to me. Good catch. #sign-off


ci(buildkite): try log managing sections

Currently, logs look like this 🙈
See https://buildkite.com/prisma/test-prisma-typescript/builds/21081#0187bd6c-2c45-4f99-b842-975bf97bf5c2

Trying out:
https://buildkite.com/docs/pipelines/managing-log-output
It looks like this after for the testing pipeline:

We can see the time each step takes too, which is much better than trying to guesstimate with the timestamps 🙌🏼

I'll merge, so we can try it out and not have the "1MB truncation warning" forcing us to download or look at the raw version


Mobile Responsive Design of Grid

Hi Muchiachio,
Thank you for your help on the Footer feature, been able to implement it and it looks pretty.
Just curious if there is something in place for mobile design or any suggestions how I would go about it?

I'm not an expert on css, but it should be achievable with css, probably.
For example in our projects we just rewrote _Grid.cshtml partial to use bootstrap's grid model and it was fine for our use case, maybe something similar could work for you too if css approach isn't feasible.

Hi @mkchmiel I resolve the responsive desing adding a custom class "mobile-hide" on columns that I will like to hide on mobile views.
On stylesheet add media for mobile devices and mobile-hide should set display:none;
You can add also diferent classes for diferent devices... mobile-hide, tablet-hide, etc

Those are both great suggestions, thanks you both for your help. I should be able to sneak in some BootStrap stuff while I am at it.

@Muchiachio could you provide an example of how you are using the boot strap grid?
Assuming its something along the lines of this example:
https://v4-alpha.getbootstrap.com/content/tables/

No, it's https://v4-alpha.getbootstrap.com/layout/grid/, we are resizing grid content based on the size of the view port.

Thanks for the help @Muchiachio, as always thanks for the quick response.


Update release_initializer.js

We re-assign 'dumper' on line 11, it is causing me some errors on build time.

Oh that's right. Thank you!

Cheers, thanks @yhara


Introduce read index to improve read only performances

Casbin-mesh is a typical service which serve much more read req than write. Wecan introduce read index refinement ib raft to improve its read performances
Sent from PPHub

finshed #57


[Windows] Out of Memory when opening the application

Describe the bug
I tried to run the application
To Reproduce
Steps to reproduce the behavior:

Download and install latest version of Surrealist (1.11.6)
Open it
Wait in a white screen and application crashed:

Expected behavior
It should open it without issues(it was a fresh install)
Environment (you can view the current version under Settings):

Operating System: Windows 11
Surrealist Version: 1.11.6
SurrealDB Version: I have surreal in docker -> 1.3.1

I don't know what happened, but I manage to find a file in
Get-Item $env:APPDATA/surrealist.json

So removing that json file in the Roaming folder, fixed the issue.
rm $env:APPDATA/surrealist.json


Make international fees mandatory if provider can sponsor Student visas

 Making international fees mandatory for providers sponsoring Student visas


Setup Local Build instructions fail for both micromamba & conda [apple silicon]

Working through the Setup Local Build docs, I am encountering issues creating the environment.
micromamba create
Using micromamba to create the environment
micromamba create -n emforge -f ci_env.yml
results in
(base) tylere@tylers-mbp recipes % micromamba create -n emforge -f ci_env.yml

                                           __
          __  ______ ___  ____ _____ ___  / /_  ____ _
         / / / / __ `__ \/ __ `/ __ `__ \/ __ \/ __ `/
        / /_/ / / / / / / /_/ / / / / / / /_/ / /_/ /
       / .___/_/ /_/ /_/\__,_/_/ /_/ /_/_.___/\__,_/
      /_/

conda-forge/osx-arm64                                       Using cache
conda-forge/noarch                                          Using cache
microsoft/osx-arm64                                           No change
microsoft/noarch                                              No change
error    libmamba Could not solve for environment specs
    Encountered problems while solving:
      - nothing provides requested patchelf
      - nothing provides requested playwright

    The environment can't be solved, aborting the operation

critical libmamba Could not solve for environment specs

conda create
Similarly, using conda to create the environment
conda env create -n emforge --file ci_env.yml
results in
(base) tylere@tylers-mbp recipes % conda env create -n emforge --file ci_env.yml
Collecting package metadata (repodata.json): done
Solving environment: failed

ResolvePackageNotFound:
  - playwright

Thanks for the feedback. Confirming that I am encountering this using Apple Silicon (M1) device.

I got most things working on my M2 with the changes here:
https://github.com/emscripten-forge/recipes/pull/292
I installed playwright via pip and ignored other missing things.
One then needs to build  compilers / cross-python packages by hand, as we only have linux variants of them on emscripten-forge atm:
python builder.py build explicit recipes/recipes/emscripten_emscripten-32/
python builder.py build explicit recipes/recipes/cross-python_emscripten-32

and then I can build and test emscripten-32 pkgs locally with:
python builder.py build explicit recipes/recipes_emscripten/regex  --emscripten-32

it should then compile and at the very end you should see:
============================= test session starts ==============================
platform emscripten -- Python 3.10.2, pytest-7.1.1, pluggy-1.0.0
rootdir: /home/web_user/recipe_dir
collecting ...
collected 3 items

test_regex.py
.
.
.
                                                        [100%]

============================== 3 passed in 0.04s ===============================

https://github.com/emscripten-forge/recipes/issues/277#issuecomment-1466135476:
One then needs to build compilers / cross-python packages by hand, as we only have linux variants of them on emscripten-forge atm:
python builder.py build explicit recipes/recipes/emscripten_emscripten-32/
python builder.py build explicit recipes/recipes/cross-python_emscripten-32#292

@DerThorsten, thank you for the fantastic work around M1/M2 compatibility. Unfortunately, having installed the emforge conda environment (with playwright through pip), running:
python builder.py build explicit recipes/recipes/emscripten_emscripten-32/

on my M1 MacBook returns the error:
Traceback (most recent call last):
  File "/Users/michaelweinold/github/emforge-recipes/builder.py", line 3, in <module>
    from boa.pyapi import py_build
ModuleNotFoundError: No module named 'boa.pyapi'

the best thing to do is usualy just check what we are doing in the ci =)

🫡 apologies, I missed the @python_api part of the
python -m pip install git+https://github.com/DerThorsten/boa.git@python_api --no-deps --ignore-installed

command!

no worries..this all very complicated atm =)

…am besten Mama vorsichtig bügeln lassen – danke!
Liebe Grüsse,
Michael
From: Thorsten Beier @.>
Sent: Wednesday, 15 March 2023 14:03
To: emscripten-forge/recipes @.>
Cc: Michael Weinold @.>; Comment @.>
Subject: Re: [emscripten-forge/recipes] Setup Local Build instructions fail for both micromamba & conda [apple silicon] (Issue #277)
no worries..this all very complicated atm =)
—
Reply to this email directly, view it on GitHubhttps://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Femscripten-forge%2Frecipes%2Fissues%2F277%23issuecomment-1469969489&data=05|01||8bd85f5925f24b1f893308db25558f08|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|638144821616779215|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=9aP%2Br0wV%2Bu9%2F5G373Cta%2BMNJ7H6wX1MComPVcTIgulk%3D&reserved=0, or unsubscribehttps://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAFQIFBY5ER6RCJ75FI37ZRDW4G4W7ANCNFSM6AAAAAAVPD7D3Y&data=05|01||8bd85f5925f24b1f893308db25558f08|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|638144821616779215|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=aw18TzlgjdUZWTddYNg0RNSKiDtWz22imYGwo3tOtuo%3D&reserved=0.
You are receiving this because you commented.Message ID<EMAIL_ADDRESS>


Create a "PSNotification" module to send messages not only via Email

Possible integrations I can think of:

Email (via MailKit)
Telegram (REST API via Bot)
Slack (have a look, but RumblingCookieMonster made something in this space)
Teams (needs a look)

This could be coupled with the WriteLog module, when an error occurs or the oAuth Token Refreshment or when something happens in the AptecoPSFramework.

[ ] Implementation into WriteLog, e.g. for error, info... with different actions
[ ] Implementation into AptecoPSFramework on manual set events, but needs a wrapper for events in settings.json and notification groups

Tested and published now as standalone module. The implementation in other modules will be in several issues


Allow user to swap dataset

This feature involves swapping of datasets to reuse the same build for different datasets.

Dataset Structure: A dataset consists of common/, data/, and datafiles.json. Other components in build/ are consistent across datasets and can be kept/copied from public/.

Implementation Requirements:

Encapsulate the dataset in a single directory for easy swapping.
Front-end should provide a method to select the dataset, such as a dropdown menu.
Include a config file mapping dataset names to their directories.

Compatibility Considerations: Front-end must handle missing data gracefully to ensure compatibility between datasets.

Build Process Changes: Modify the build process to exclude packaging the dataset within the build.

@shihabdider , so essentially the frontent will not have a fixed dirrectory for common, data, and datafiles.json but it should ask the user on application launch where to find the datasets? how does the frontend know upon start where exactly to look into?

@xanthopoulakis see:

Include a config file mapping dataset names to their directories.

I can provide this, but it'll basically be an object of the form:
{ [dataset-name]: [dataset-path] }

Here's a more detailed schema of the dataset object. I think we can actually store this inside of settings.json (since it's already being fetched).
{
    "datasets": [
        "dataset1": {
            "datafiles_json": "path/to/datafiles.json",
            "data_dir": "path/to/data"
            "common_dir": "path/to/common"
        },
        "dataset2": {
            "datafiles_json": "path/to/datafiles.json",
            "data_dir": "path/to/data"
            "common_dir": "path/to/common"
        },
    ]
}

Note: The paths will be inside the build/ directory (e.g., build/TCGA/datafiles.json, build/TCGA/data/). Absolute paths may be used in practice.

UI Behavior and Flow:

Check for datasets in settings.json:

If the datasets object is defined, proceed to step 2.
If datasets is missing or null, display a blank placeholder on the dashboard page.
If settings.json is corrupted or fails to fetch, display an error message on the dashboard page.

Default Dataset Display:

Display the first dataset in the datasets list by default when the application loads.

Dataset Selection Dropdown:

Add a dropdown menu on the dashboard page to allow users to switch between available datasets.

Suggested location for the dropdown:

Dataset Switching:

Upon selecting a different dataset from the dropdown, update the dashboard to reflect data from the selected dataset.
Ensure all components relying on dataset data are refreshed accordingly.

@xanthopoulakis Updating the datasets.json doesn't seem to update the instance:
[
  {
    "id": "diders01",
    "title": "Shihab's Dataset",
    "datafilesPath": "/external/imielinskilab/mskiweb/diders01/case-reports-clinical/build/datafiles.json",
    "commonPath": "/external/imielinskilab/mskiweb/diders01/case-reports-clinical/build/common/",
    "dataPath": "/external/imielinskilab/mskiweb/diders01/case-reports-clinical/build/data/"
  },
  {
    "id": "pact",
    "title": "PACT",
    "datafilesPath": "/external/imielinskilab/mskiweb/diders01/case-reports-clinical-backup/build_pact/datafiles.json",
    "commonPath": "/external/imielinskilab/mskiweb/diders01/case-reports-clinical-backup/build_pact/common/",
    "dataPath": "/external/imielinskilab/mskiweb/diders01/case-reports-clinical-backup/build_pact/data/"
  },
  {
    "id": "rafaij01",
    "title": "Jonathan's Dataset",
    "datafilesPath": "/external/imielinskilab/mskiweb/rafaij01/case-reports-build/build/datafiles.json",
    "commonPath": "/external/imielinskilab/mskiweb/rafaij01/case-reports-build/build/common/",
    "dataPath": "/external/imielinskilab/mskiweb/rafaij01/case-reports-build/build/data/"
  },
  {
    "id": "rafaij01-backup",
    "title": "Jonathan's Old Dataset",
    "datafilesPath": "/external/imielinskilab/mskiweb/rafaij01/case-reports-build/build_old/datafiles.json",
    "commonPath": "/external/imielinskilab/mskiweb/rafaij01/case-reports-build/build_old/common/",
    "dataPath": "/external/imielinskilab/mskiweb/rafaij01/case-reports-build/build_old/data/"
  }
]

The below should have replaced the backup dataset with PACT:

You need to go into /gpfs/home/xanthc01/lab/external/mskiweb/xanthc01/content/case_report_content/ and declare your dataset on datasets.json and then call the ./promote.sh in the same folder to simply have your datasets published on production. That’s it! Your data is then fully exposed on the mskiweb on the NYU server! Your sets are then available at: https://genome.med.nyu.edu/external/imielinskilab/mskiweb/xanthc01/case-report/

Closing as this has been implemented. Nice work @xanthopoulakis !


feat(Divider): new component

Implementation of UDivider component based on radix-vue's Separator one.
Currently done:

[x] Base component
[x] Orientation
[x] Decoration
[x] Label
[x] Icon
[x] Avatar
[x] Slot
[x] Type
[ ] Size

So far I did a couple of changes compared to the current stable release:

the avatar size is picked from the avatar prop, this is mainly because of a type error that destroyed the avatar's size with v-bind="{ size: ui.avatarSize(), ...avatar }"
made the default icon size w-6 h-6 instead of w-5 h-5 to match the default avatar size

Once I understand compoundVariants I'll add sizes too and mark this as ready for review.

I've also added a color prop. Since it came handy a number of times to me and shouldn't create any problems (didn't set a default tho)

Thanks @Sandros94!!! 😊


Wrong GPU ID

I just had updated GPU Cards in my Servers as below, I have 3 servers with different GPU cards now

When I am trying to create a new pod, the pod has been assigned to Server 2 with GPU ID = 1 although GPU 1 (0/0 Allocated) is not existing in Server 2 so my deployment is failed, i got this error
 Error response from daemon: OCI runtime create failed: container_linux.go:380: starting container process caused: process_linux.go:545: container init caused: Running hook #0:: error running hook: exit status 1, stdout: , stderr: Auto-detected mode as 'legacy' nvidia-container-cli: device error: no-gpu-has-9MiB-to-run: unknown device: unknown

Why didn't pod assigned to Server 2 with GPU ID = 0 ?
How can I resolve this issue ?
Thanks so much

Hello, @tintranvan  can you take a look at the version you are using?

I guess it is about some logical issues, here we needed change the logical to distribute it correctly but till under development

@antikilahdjs Have you resolved this issue ?
I'm facing the same issue...

Hello,
I resolved this problem by restarting GPU Sharing DaemonSet to update new GPU Card Information.
Anything update, we should restart DaemonSet to update new information
Best Regards


vSync in fullscreen on OSX will run very slow

Setting vSyncEnabled=true or calling graphics.setVSync(true) doesn't work correctly when running in Fullscreen mode on OSX.  Framerate seems to drop to 50%.
Works correctly in windowed mode, even works perfect when manually resizing the window to fullscreen.  But framerate drops by 50% when setting Fullscreen=true on graphics.
Seems to work fine on Windows and Linux, just not on OSX.
(tested on OSX Yosemite)

What backend?
On Mar 27, 2015 5:17 PM, "orangepascal"<EMAIL_ADDRESS>wrote:

Setting vSyncEnabled=true or calling graphics.setVSync(true) doesn't work
correctly when running in Fullscreen mode on OSX. Framerate seems to drop
to 50%.
Works correctly in windowed mode, even works perfect when manually
resizing the window to fullscreen. But framerate drops by 50% when setting
Fullscreen=true on graphics.
Seems to work fine on Windows and Linux, just not on OSX.
(tested on OSX Yosemite)
—
Reply to this email directly or view it on GitHub
https://github.com/libgdx/libgdx/issues/2982.

what do you mean with backend ?

lwjgl / jglfw / headless (hehe)

ah, lwjgl  :) didn't know there were other options

That call is directly being forwarded to the lwjgl Display class. If this is an issue (the lwjgl javadoc says that it isn't guaranteed to succeed) then it's probably a lwjgl issue.

I'm not seeing any issues with vsync and fullscreen (MacBook Pro 15", Yosemite).

You know that FPS can only be 30 or 60 FPS if you have sync enabled? FPS will drop to 30 if the system can't deliver 60 FPS. Maybe related to this?

With vsync framerate can be anything <= display framerate (60). While vsync can drop the framerate a bit, it should not be that extreme, and should be reproducible in windowed. (Windowed should be slower than fullscreen, if anything.)

It could be LWJGL or the graphics drivers. I don't think it's a libgdx issue, nothing we can do I'm afraid.


Add cluster creation items for basic toolset

Child task of https://github.com/opensearch-project/opensearch-migrations/issues/6
Blocked by: https://github.com/opensearch-project/opensearch-migrations/issues/16
Acceptance Criteria:

Add additional library functions necessary for starting a standard cluster
Add unit tests

Handled with PR: https://github.com/opensearch-project/opensearch-migrations/pull/40


Use uname(2) on get_os_version [v3]

Changes since #761:

contiki version string now returned
minor errors fixed

Also moving common linux code on that to a sol_platform_linux function,
that is now more suitable.
Signed-off-by: Gustavo Lima Chaves<EMAIL_ADDRESS>

+1

+1

Thanks, merging.


feat: add metrics to proxy

closes #1004

@bobbinth comments were addressed. Let me know what do you think (I think the most important update was in the README, I try to add some info on the architecture without extending too much the section).
This is the current state of the dashboard (includes the graphs that you mentioned):


[BUG]:  assert len(grad_args) > 0 in training the animate anyone

🐛 Describe the bug
i'm using the colossalai to train the animate anyone. but there is an error in unet forward.
Traceback (most recent call last):
  File "core/train_stage2_colo.py", line 294, in <module>
    main(conf)
  File "core/train_stage2_colo.py", line 236, in main
    pred = unet(noisy_latents, timestep, encoder_hidden_states).sample
  File "/media/74nvme/software/miniconda3/envs/animate/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1501, in _call_impl
    return forward_call(*args, **kwargs)
  File "/media/74nvme/software/miniconda3/envs/animate/lib/python3.8/site-packages/colossalai/zero/gemini/gemini_ddp.py", line 258, in forward
    outputs = self.module(*args, **kwargs)
  File "/media/74nvme/software/miniconda3/envs/animate/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1501, in _call_impl
    return forward_call(*args, **kwargs)
  File "/media/74nvme/animate_zl/source/core/model/unet.py", line 378, in forward
    emb = self.time_embedding(t_emb)
  File "/media/74nvme/software/miniconda3/envs/animate/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1501, in _call_impl
    return forward_call(*args, **kwargs)
  File "/media/74nvme/software/miniconda3/envs/animate/lib/python3.8/site-packages/diffusers/models/embeddings.py", line 192, in forward
    sample = self.linear_1(sample)
  File "/media/74nvme/software/miniconda3/envs/animate/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1501, in _call_impl
    return forward_call(*args, **kwargs)
  File "/media/74nvme/software/miniconda3/envs/animate/lib/python3.8/site-packages/torch/nn/modules/linear.py", line 114, in forward
    return F.linear(input, self.weight, self.bias)
  File "/media/74nvme/software/miniconda3/envs/animate/lib/python3.8/site-packages/colossalai/tensor/colo_parameter.py", line 61, in __torch_function__
    new_args = ColoParamOpHookManager.pre_op(params, *args, *kwargs.values())
  File "/media/74nvme/software/miniconda3/envs/animate/lib/python3.8/site-packages/colossalai/tensor/param_op_hook.py", line 88, in pre_op
    grad_args, other_args, grad_flags, spec = _flatten_grad_args(args)
  File "/media/74nvme/software/miniconda3/envs/animate/lib/python3.8/site-packages/colossalai/tensor/param_op_hook.py", line 145, in _flatten_grad_args
    assert len(grad_args) > 0
AssertionError

the part of unet parameters requires_grad_(False), i don't know if it has something to do with this error
Environment
No response

I got the same error: https://github.com/hpcaitech/ColossalAI/issues/5290

I got the same error: #5290. Have you solved it? @zhangvia

no。i think the plugin can not support part of layers freezed training.


bugfix

bugfix in golang 1.12
panic: non-positive interval for NewTicker

 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.cocktail seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.

oh, man. You are five days ahead of me to report this bug!


[Unity][Utility] Implement operator<< for tvm::runtime::ShapeTuple

For debugging purposes, it is useful to be able to print a ShapeTuple directly.  Because this is in the tvm::runtime namespace, this is implemented without use of the print/formatting utilities elsewhere in TVM.

Oh I think I made the same PR a few days ago :) https://github.com/apache/tvm/pull/15652

Whoops!  Thank you, and I'm glad we have the functionality!


Update v6 virtual machine docs Intel Xeon SKUs from from 8473C to 8573C

Update Intel Xeon SKUs from from 8473C to 8573C on new v6 instance types.

8473C (Sapphire Rapids) is the previous version running on v5 instances, the new v6 instances have 8573C (Emerald Rapids) Xeon SKUs.

@microsoft-github-policy-service agree company="Intel"

@misha-bansal
Can you review the proposed changes?
Important: When the changes are ready for publication, adding a #sign-off comment is the best way to signal that the PR is ready for the review team to merge.
#label:"aq-pr-triaged"
@MicrosoftDocs/public-repo-pr-review-team

Thank you for your interest in contributing to our documentation. Unfortunately, the changes in this pull-request cannot be accepted because our Content group is migrating content for the "virtual-machines", "virtual-machines-scale-set", "container-instances", and "service-fabric" folders to a new repository: azure-compute-docs.
Short-term, if there are changes in this PR for other folders, you can move forward with those by removing the change(s) to all the above mentioned folders' content.
In the meantime, we are closing this PR and tagging it so that when the content is available in the new repo, we can follow up with the new location information.
#please-close
#label:"migrate-followup"

@lucasmelogithub   We’re happy to share that contributions to virtual-machines are once again possible at azure-compute-docs. Please open a PR in the new repo to submit your changes. We appreciated your patience during this migration.

@lucasmelogithub We’re happy to share that contributions to virtual-machines are once again possible at azure-compute-docs. Please open a PR in the new repo to submit your changes. We appreciated your patience during this migration.

Thanks will do.

@lucasmelogithub We’re happy to share that contributions to virtual-machines are once again possible at azure-compute-docs. Please open a PR in the new repo to submit your changes. We appreciated your patience during this migration.

New PR created: https://github.com/MicrosoftDocs/azure-compute-docs/pull/11


Webpack taking up majority of build time in development

Describe the Bug
I'm new to Rust and WASM, and have been using this template to learn both. As my project grew, so did my build times, but Rust has a reputation for slower compiles, so I didn't think very much of it.
Today I took some time to investigate improving build times and I was able to get a 7x improvement by running wasm-pack --target web and writing normal standard JS.
I understand that there are a lot of parts of the web ecosystem that need a bundler to work today (e.g. JSX), so this might be the right option for today. Might be worth investigating esbuild with a wasm supporting plugin though? Or add something to the README about how for projects that don't need much JS --target web can be a better option?
Or maybe there's a way to run webpack without requiring it to process the wasm? As far as I can tell the wasm runs fine without webpack doing anything to it...
Steps to Reproduce

Check out https://github.com/rictic/airlock.chat at revision f22af3254c8a94a64e2249f75f28c428ab98ef27
Run ./start.sh to start webpack dev server and cargo watch to re-run wasm-pack on save.
Observe the speed of the edit-refresh loop (~12s on my machine).
Compare that with an incremental rebuild of wasm-pack --dev --target web (~1s on my machine)

Expected Behavior
The edit-refresh for a mostly-rust project is largely dependent on the speed of wasm-pack.
Actual Behavior
Most of the time is spent in webpack, and as the size of the emitted wasm file increases, time spent in webpack increases as well.
Additional Context
See https://github.com/rictic/airlock.chat/pull/65 for more details of what went into moving one project off of using a bundler entirely (though it helps that it's almost entirely Rust, and as a little prototype it doesn't need to support older browsers).

I also want to say that wasm-pack-template, wasm-pack, rust, and this entire cluster of tools and libraries have been super impressive, and besides this issue they've been a really great experience to work with.


[BUGFIX] Check that virtual device is unchanged in WithFields

Right now, WithFields doesn't check that the virtual device is unchanged, which is incorrect-- this was either a bug or due to a bad merge. I also set the default value of virtual_device_ to FullyUnconstrainedThis change fixes the problem.
NOTE: To make sure that virtual_device_ is propagated across the python boundary, I had to visit the field in VisitAttrs. This changes the serialization of the relay expressions.
@mbs-octoml @mikepapadim

I also visit the virtual device in the TVMAttrVisitor to ensure that the virtual device is properly copied across the FFI boundary.

Rebased with #9874

Thanks @masahi!


added custom render function. #197 fix

Ability to render emojis with custom function.
Function should return template to paste.
Please check if making customEmoji as function doesn't provide any collisions. I've done global search for customEmoji but didn't found a thing.
Maybe we should move regexp search for external function also. To be more versatile

Looks good.

released as v4.1.13


Release notes for 1.69.0

[phrase library..[@/libs/dynamic_bitset/ Dynamic Bitset]:]

Performance improvements (over 2x for some cases). ([github_pr dynamic_bitset 26])

https://github.com/boostorg/website/pull/373

Need another update for #27 once it merges to master.


feat: add metric for disruption budgets

Fixes #N/A
Description
Adds metric to track how many disruptions are allowed for each disruption loop.
How was this change tested?
make presubmit
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.01%) to 80.061%

Totals

Change from base Build<PHONE_NUMBER>:
0.01%

Covered Lines:
7633

Relevant Lines:
9534

💛  - Coveralls


bug(Gene Expression - Cell type persists even after removing from search filter):

When I search for a cell type in GE and then remove the cell type tag, the list of tissues and cell types is still filtered down even though the tag is now removed.
To Reproduce
Steps to reproduce the behavior:

Go to Gene Expression
Click on Search Cell Type
Scroll down to any cell type of your choice, select a cell type
After the cell type has been loaded, click x on the cell type below the search bar
Cell type icon is removed but the cell types still remain in the heatmap

Expected behavior
If only 1 cell type is present, it should be removed across the heatmap, and original state should be restored.
If multiple cell types are present, the cell type you have chosen to remove, should be removed and the heatmap recalibrated with the other remaining cell types being present.
Environment - Production.
@karenliang0

this is now fixed.


Onion routing wireguard

One of the things that are made especially easy by using namespaces is to layer multiple wireguard connections inside of one another. Normally stacking VPN connections like this is done through things like having multiple separate VPN gateways that are each using each other, but namespaces make this far simpler and eliminate the need for having multiple VMs or the like.
Stacking VPN connections like this allows for potentially enhanced security, as there are now additional points of failure.
This PR adds this functionality to the services. It can be used by simply adding further wireguard connection information to the first 5 keys in the config file, each being separated by a space.
Submitting this as WIP as I have yet to fix up the documentation, but as my bash is... lacking to say the least I'd appreciate some comments wrt any potential issues that might arise from this implementation.
My branch also includes the deactivation of the tunnel from your other branch, as that would be handy for my usecase. If there is any reason you do not want to merge that alongside this functionality already I can rebase everything.
Performance is not horrible with good VPN providers actually. 250Mb/s+ are possible(My home connection is 1Gb/s). It could be better and I do think some tuning to the MTUs could further improve what I'm seeing but it's certainly far better than the likes of TOR even when also using 3 layers.

Finally getting a chance to look this over. Thanks for the contribution and for being patient. :+1:

I think an architecture relying more heavily on systemd is definitely possible... I suppose you could have the part that creates subsequent namespaces be executed inside of the previously created namespaces. Main issue I can think of is that the MTUs couldn't be set automatically as they are currently, but that would be a rather minor drawback. Perhaps this is an idea for the future, but I think I'll fix up this version here first of all.

Would you be willing to make a merge request with just the MTU changes for a one-layer VPN? I'd be very willing to merge that. I'll also merge my open pull request to disable the tunnel. I'd like to think a little more before committing to a path with onion-layering.

Thanks for splitting that off. I'll try to wrap my head around onion routing.


Remove assumePageview

We no longer depend on page already having been called, and in fact, we actually want to get the first page call.
One question to the reviewer: is .readyOnLoad() necessary? From what I could tell, it doesn't actually do anything.

Current coverage is 95.00% (diff: 100%)

Merging #11 into master will not change coverage

@@             master        #11   diff @@
==========================================
  Files             1          1
  Lines            20         20
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
  Hits             19         19
  Misses            1          1
  Partials          0          0

Powered by Codecov. Last update 5caa9e1...2571207

Just adding a comment that we are a current Segment customer and are depending on this change to go out. Thank you.

@f2prateek any feedback for us?

@hijonathan lgtm  -- hmm where are you referring to regarding .readyOnLoad btw?
We'll be shipping bunch of updates to integrations so I'll be sure to include this PR as well in the new CDN release :)

@hankim813 looking forward to the new updates, but will that affect the timing of this PR?
With regard to .readyOnLoad, it's not something we're using right now but seems mutually exclusive from .assumesPageview, which we've just removed. Any guidance on what that method actually does?

@hijonathan We should be able to get this PR shipped this week :)
All .assumesPageview() does is flag an integration to ignore the first .page() call that is invoked. Since most Segment customers leave our default .page() call inside our snippet, this initial pageview data is ignored for appcues currently. This PR would remove that behavior.
We have this flag so that client side integrations that call their own internal pageview event upon initialization are not getting doublecounted pageviews :)

Got it, thanks for the explanation. I think this should be GTG from our end. Thanks for the quick turnaround!

@hijonathan deployed!

Thank you @hankim813 🙇


[#138323307]framework declaration overview

Story https://www.pivotaltracker.com/story/show/138323307
Will probably add more information here soon.

And here's more information. Should comply to all requirements in story.

:+1: from me once Travis is happy


ORDS 3.0.12 support. Vagrantfile changes to use latest centos7 releas…

…e and disable host DNS resolver.

@fuzziebrain Can you update the README?

@tschf README updated


Put FSM Redirect Retries and Siblings [JIRA: RIAK-2191]

Symptom and Cause
Single put from client may create many, for example O(10), siblings
when a node in cluster is too slow or almost frozen. No specific
options in put is required.
Another flavor is non-zero PW option is used and some nodes are
stopped. In this case, siblings are not created, but many Put FSMs are
spawned.
These are caused by Put FSM coordinator redirection and ack logic.
Redirections may occur for redirected requests and/or ack is not
sent in error responses to clients.
Workaround or only Mitigation

Avoid redirection retries by riak_kv.retry_put_coordinator_failure=false.
[Any good idea? Please add them to here :)]

Diagram for slow node case
Assuming:

Put is attmpted without specific options.
Primary vnodes are on node P, Q and R, first fallback is on node S.
node-R is too slow or almost frozen.
Choosing redirect target node is randomized in actual code, the last
node is always chosen in the diagram below as one of possible sequences.
(maybe it's worst case)

client        node-A              node-R         node-S
   ---(Put)-->
             Compute PL
               = P, Q and R
             Redirect to R --->  [frozen]
             |
             | 3 sec timeout
             V
             Compute new PL excluding R
               = P, Q and S
             Redirect to S --------------------> Compute PL without
             |                                     any knowlege about R (at this point)
             |                                     = P, Q and R
             |                                   Redirect to R  ---+
             |                                   |                 |
             |                 [what happnes?] <-|-----------------+
             |                                   | 3 sec timeout
             |                                   V
             |                                   Compute new PL excluding R
             |                                     = P, Q and S
             |                                   I'm coordinator this time
             |                                   Execute put
             V 3 sec timeout
             Compute new PL again
               [continues]

Steps to reproduce: https://gist.github.com/shino/b65ff551aa5e5a6750a2
Diagram for Non-zero PW with some stopped nodes
Assuming:

Put is attmpted with option PW=all
Primary vnodes are on node P, Q and R, first fallback is on node S.
node-R is stopped, every ohter node know about it is stopped
Choosing redirect target node is randomized in actual code, the last
node is always chosen in the diagram below as one of possible sequences.

client        node-A              node-R                  node-S
   ---(Put)-->                    [stooped]
             Compute PL
               = P, Q and S
             Redirect to S -----------------------------> Compute PL
             |                                              = P, Q and S
             |                                            I'm coordinator
             |                                            Go to validate phase
   error <----------------------------------------------- PW is not satisfied
             |                                            Finish without ack to node-A
             | 3 sec timeout
             V
             Compute new PL
               excluding S
               = P, Q and T
             [continues]

Steps to reproduce: https://gist.github.com/shino/36925d2428cff9b274cc

@shino I think you could solve this if you added the list of bad coordinators here https://github.com/basho/riak_kv/blob/2.0/src/riak_kv_put_fsm.erl#L343 and then parse as an argument into the FSM.  Then you should be in the preference list on on the forwarded node.
As well as this, we could modify the coordinator selection algorithm to prefer the primary nodes over secondary nodes, but that does put all of the coordination load on the primary during failures.

@jonmeredith thanks for recommendation. Russel also gave some ideas in hipchat.
There are three points to be fixed:

Indefinite redirect retry loop
Redirection of redirection may leads to exponential growth of put fsm processes
Difference between views of healthy node between redirecting node and redireted node

and idea to fix each of them:

Set max count for coordinator redirect, default is 1
No redirect if self is already redirected one
Pass a set of bad coordinators for better view consistency

Ping @JeetKunDoug and @jonmeredith ... I know that the KV team has quite a few items in the backlog, but mitigating this problem would be really useful for reducing certain ops pains (and commensurate Support load).


The dot-format emitter no longer prints failure details

It used to be the case that the dot emitter:
(change-defaults :emitter 'midje.emission.plugins.progress)

… would print the dots and then print normal failure messages. It no longer does the latter (in 1.6-final):
503 $ lein midje
.F
FAILURE: 1 check failed.  (But 1 succeeded.)
Subprocess failed

It has the same problem using lein repl and autotest.

Adopting a policy of "if it hasn't happened by now, it will either happen in 2.0 or never", I'm closing this


[REQ] More badges for codeberg

Hi there, 1st of all thanks for this cool project !
It would be extremely useful to have more badges (such as license for codeberg) and language (for both codeberg and github).
Last but not least, sourceforge and gitlab support would be very nice too.
Thanks in advance !

Hi, I've started work on GitLab endpoints quite some time ago: https://github.com/SplittyDev/spacebadgers/pull/14
If I remember correctly, I ran into some issues with how the GitLab endpoints work and didn't put more work into it for the time being, and I don't have so much free time on my hands to continue work on that at the moment.
If you or anyone else wants to continue work on implementing those endpoints that would be great!


Fix namespace resources dependencies

This change fixes issues when creating new tenant namespaces as it would not wait for the namespace to be created before creating resources in it.

@phillebaba should the limit range fix be a separate PR? If it has been disabled for a while, it may be a breaking change and should be reflected as such in its own PR.

I have no idea why it was disabled in EKS as it has always been enabled in AKS. If there is a good reason for disabling it then sure lets do another PR, but if this is just a mistake I think its fine to do it in this PR.


Chore/setting ci config

bump 18.18 to 18.20.0

because in used internal library

add eslintrc.js

this CI / test failed will be solved if merged my another PR that related to test

@Tchaikovsky1114 Thank you for this! Any ideas on the babel failure test?

@Tchaikovsky1114 Thank you for this! Any ideas on the babel failure test?

thanks! did you see my another PR ?
https://github.com/candlefinance/faster-image/pull/50
that is solved babel issue


convert images to .webp

I will handle this issue for all assets used as png or other image type other than .webp


TF246021: An error occurred while processing your request. Technical information (for administrator): SQL Server Error: 2627

We are using: Microsoft Visual Studio Team Foundation Server Version 12.0.40629.0 - it is not possible to upgrade TFS
We receive the following TFS error when trying to migrate:
TF246021: An error occurred while processing your request. Technical information (for administrator): SQL Server Error: 2627
SQL Error in Windows event log error: Filing a WER application report for exception: System.Data.SqlClient.SqlException (0x80131904): Violation of PRIMARY KEY constraint []. Cannot insert duplicate key in object
It fails on this call: https://github.com/git-tfs/git-tfs/blob/master/src/GitTfs.VsCommon/TfsHelper.Common.cs#L600
And it fails only on the first branching commit in the feature branch. It works for the next commits in the same branch
Removed company name and drive letters in debug:
Reading authors file : Drive:\Temp\git\AUTHORS
git-tfs version <IP_ADDRESS> (TFS client library <IP_ADDRESS> (MS)) (64-bit)
Commits visited count:1
Working with tfs remote: default => $/[TFS]/Main
Fetching from TFS remote 'default'...
Commits visited count:1
Commits visited count:1
info: refs/remotes/tfs/default: Getting changesets from 4799 to -1 ...
Looking for changeset 4835 in git repository...
=> Commit 4835 not found!
Fetching from dependent TFS remote 'Dev'...
Commits visited count:1
info: refs/remotes/tfs/Dev: Getting changesets from 4322 to 4835 ...
Looking for changeset 3252 in git repository...
Looking for changeset 3252 in git repository: CacheIsFull, stopped looking.
Looking for root changeset tree on $/[TFS][Path]
Looking for root changeset for branch:$/[TFS][Path]
Looking to find branch '$/[TFS][Path]' in all TFS branches...
Looking for all branches...
Found parent branch : $/[TFS]/Dev
Cleaning...
Cleaning...
GitTfs.Core.GitTfsException: An unexpected error occurred when trying to find the root changeset.
Failed to query history for $/[TFS][Path]
at GitTfs.Util.GitTfsCommandRunner.Run(GitTfsCommand command, IList1 args)    at GitTfs.GitTfs.Main(GitTfsCommand command, IList1 unparsedArgs)
at GitTfs.GitTfs.Run(IList`1 args)
at GitTfs.Program.Main(String[] args)
An unexpected error occurred when trying to find the root changeset.
Failed to query history for $/[TFS][Path]
All the logs could be found in the log file: \AppData\Local\git-tfs\git-tfs_log.txt

We are trying to clean up old/stale issues. As this issue hasn't seen any updates (or progress with pull requests) in quite a while, the issue will be closed. In case further information is provided, we can revisit that and reopen the issue again.

We are trying to clean up old/stale issues. As this issue hasn't seen any updates (or progress with pull requests) in quite a while, the issue will be closed. In case further information is provided, we can revisit that and reopen the issue again.


KeyBase not completing the Loading process

HI Team,
Kindly help me in looking into the issue that I am facing since 4 days. Keybase app does not complete the loading process and does not open.
Request you to look into this on high priority. Thank you.
regards,
Sheela Kumari

Did you send feedback like it instructed?

Seems the latest update is broken.
keybase log send
This command will send recent keybase log entries to keybase.io
for debugging purposes only.
These logs don’t include your private keys or encrypted data,
but they will include filenames and other metadata keybase normally
can’t read, for debugging purposes.
Continue sending logs to keybase.io? (type 'YES' to confirm): YES
Enter feedback (or  to send): Hanging on login like github issues 13974
More feedback (or press  when done):
▶ ERROR API network error: Post https://api-0.core.keybaseapi.com/_/api/1.0/logdump/send.json: net/http: request canceled (Client.Timeout exceeded while awaiting headers)


Refactor

We need to set E[0][0] = 0; in order to initiate the dynamic programming process.

I checked the clang-reformatting, and everything works. The only minor miss was was E[0][0] = 0;


Strangely enough, this only happens when I am in my local gpkit repository. If I run unit tests from another directory, they all pass.

Hmm. I'll take a look on Thursday,

Unit tests are all passing for me -- @pgkirsch could you please paste all or some of the output?

Issue was fixed by re-running the build script