Add NodeReader interface

[x] jbenet/go-multicodec#9: cbor & json: add HeaderPath variable
[x] whyrusleeping/cbor#3: Allow streaming interface to CBOR
[x] implement NodeReader for protocol buffers

See issue ipfs/go-ipld#17
Do not merge yet, tests are still needed, and I would like to use this interface in some places instead of the Node type. This will allow implementations that do not require buffering the whole node in memory.

Depends on:

jbenet/go-multicodec#9: cbor & json: add HeaderPath variable
whyrusleeping/cbor#3: Allow streaming interface to CBOR

It can't compile unless those pull requests are merged (especially the CBOR PR).

this is looking like a great start. Im not sure that the interface here should look like. i wont know well until i use it for something... maybe we can make some examples if we want to accelerate that.

I am not sure the interface should look like this either, but I thought I would take the closest interface I could have to the parsers, with as little overhead as possible. With the idea we could develop other interfaces more convenient for use if necessary.

I am satisfied with the state of this PR. I think it is ready for review.
Here is how the code is organized:

what was in go-ipld/ is not in go-ipld/memory/ as this is a memory implementation of a Node
go-ipld/ is now a package that contain Node interfaces and primitives on these interfaces
go-ipld/coding/ manages encoding and decoding of a node using CBOR / JSON and Protocol Buffers (decoding only)

How you would want to use it:

Decoding a node takes a io.Reader as argument (io.ReadSeeker if you want to read it multiple times, but that is managed using interface upgrades) and returns a ipld.NodeReader.
A NodeReader can be read using the ipld.NodeIterator that transform the callback interface of ipld.NodeReader into an iterator
A ipld.NodeReader can be copied into a ipld.NodeWriter using ipld.Copy(). Currently, the only implementation for a NodeWriter is in the memory package
The coding package takes a memory.Node and can write it to CBOR & JSON. There is no support for writing directly from a NodeReader.

The walk functions are in the memory package. I think we need to define what use case we want to have and then implement them for NodeReader in general.

@jbenet could you look at that, or invite other people who might be interested in looking at this code?

For example of use, see https://github.com/mildred/go-ipfs/commits/ipld-wip

Requires whyrusleeping/cbor#4

Tests are failing for two reasons: the dependency on new features in the CBOR lib, and the dependency to JSON features that are in Go 1.5 but not 1.4 (json token reader)

For Go 1.4, I vendored the encoding/json library that I took from the Go 1.5 release

@mildred lmk when you want review here

There were some issues about the protocol buffer generated file. I regenerated it.
@jbenet I think you can start looking at the code. I will continue to fix the CI in case it is broken. It should not be difficult as the tests are passing on my machine.

There are many things that were modified. The reader interface has been created and the old ipld.Node has been transformed into a memory.Node. The codecs were modified so they could decode to a NodeReader and encode from a memory.Node. There is a simple way to convert from a NodeReader to a memory.Node.
Don't hesitate to look at the commits one after another. I rebased them so they follow a natural order. The tests should pass on all commits (or this is a mistake) and a subset of these commits only can be merged if the others are not acceptable.
In particular, I modified how the multicodec format is handled. I found the Multicodec type too impractical to use, mostly because they work on a byte slice and not a stream. Also, the numerous objects, all having an interface type, makes it difficult to know their implementation. The code here still uses the multicodec package to detect the header and encode or decode it, but the Multicodec type is not used.
I followed the IPLD spec about which multicodec headers to use. I am not very sure of these headers. This might need double checking.
IPLD paths are still unimplemented. The old walk algorithm is still there, but only works on a memory.Node.
IPLD link detection is performed on top of the NodeReader interface and is generic to the Link type. it uses struct fields annotations to generate the Link objects. Here links/link_test.go might be worth reading.

The last commit "Regenerate the protocol buffer code" contains a patch to fix the generated code because the field ordering when serializing is wrong. Leading to a hash mismatch in the tests. Upstream issue to remove the patch: gogo/protobuf#151

Would it be possible to update _examples to confront new code?

What might be nice to add is Marshaller / Unmarshaller functions that does approximately the same as the links package but for whole IPLD objects.
Basically:
// Marshall source into dest
Marshall(source interface{}, dest memory.Node)

// Unmarshall the NodeReader to the dest
Unmarshall(reader NodeReader, dest interface{})

interface{} objects could contain ipld annotations like for links.

It would be awesome, also check if interface{} implements special (Un)Marshalling interface, same way JSON marshaller does it. Thus allowing for custom (Un)Marshalling strategies.

Here is a first implementation of Unmarshal(). It is by no means complete and it will not unmarshal all types. The Marshal() function is not there either. This gives out an idea of what is possible.

@mildred thanks for the hard work on all this implementation.
However, i think this is way beyond the parameters of this package. This package should be:

type definition for ipld objects + links (main goal!)
some convenience functions to manipulate ipld objects
serialization convenience functions that use multicodec for the heavy lifting

All the coding stuff should be a very thin wrapper around multicodec -- the serialization stuff has become enormous here. If you want to create a StreamingCodec as part of the multicodec package, maybe there's a case for it there. But here, it really is not the domain of ipld to do all this streaming heavy lifting, let alone json parsing.
Also, the main goal has been superceded. The main goal is a nice definition (inteface + functions) for the ipld objects and links. Those have now been relegated to sub packages. If we're going to have different implementations, that's fine, but we should still have an interface in the root, such that end users typically only need to import the root package.
import "ipld"

func MyFunc(obj ipld.Node) { ... }

Thanks for the review. I expected this PR to need more design work anyway. I haven't yet answered your other requests  but I think we should define the direction we are going.

This package should be:

type definition for ipld objects + links (main goal!)
some convenience functions to manipulate ipld objects
serialization convenience functions that use multicodec for the heavy lifting

What do you propose that an IPLD object should be ? I came to the conclusion that it is not possible to come up with one data type that would fit all needs, and that we need an interface type. The interface type should allow a streaming interface in case applications want to use large objects that may not be convenient to fit entirely in memory.
My answer to that question is the NodeReader type in the stream package. I'm not entirely satisfied with that because the interface (which is just a function with a callback) doesn't seem to be the best for me. But that's the best I could come up with given the above restrictions (interface and streaming).
You may have noticed that there is no longer a single ipld.Node type. However there is :

A stream.NodeReader that provides a raw streaming interface, as close to the actual binary encoding as possible.
A memory.Node which is an implementation of the NodeReader in memory using native Go data structures (maps, ...).

I believe every application will want to use its own data structure. That's why there is the Unmarshal() function in the stream package that works like encoding/json.Unmarshal(). It takes a NodeReader as argument and fill in the application data structure using Go reflection.

Not appearing here, but application specific types that can be converted from the stream.NodeReader using the Unmarshal function.

All the coding stuff should be a very thin wrapper around multicodec -- the serialization stuff has become enormous here. If you want to create a StreamingCodec as part of the multicodec package, maybe there's a case for it there. But here, it really is not the domain of ipld to do all this streaming heavy lifting, let alone json parsing.

I had to change this part quite a bit. The reason I didn't used the multicodec package to its fullest is mostly because I wanted to be stream oriented. As for JSON, this is just a stream reader, not a parser. See my above comment.
Perhaps we should discuss separately about the multicodec package:

currently the multicodec doesn't know about stream oriented codecs. We can either just go back to []byte oriented codecs, or teach the multicodec package to do streaming
we may also want to talk about the best interface for this package. I found the multicodec objects very hard to understand because of the many level of indirection required.

Also, the main goal has been superceded. The main goal is a nice definition (inteface + functions) for the ipld objects and links. Those have now been relegated to sub packages. If we're going to have different implementations, that's fine, but we should still have an interface in the root, such that end users typically only need to import the root package.

I agree that this is a lot of code. Some of it is entirely optional and not required. Perhaps I should split this in multiple PR, but I think this is not yet the time. We should first define what we want. Another reason for this is that I felt quite alone coding this, and had little feedback doing so. Do you have advices on where I could throw new ideas and get feedback on them?
The pending issues I see and I expect input from you are:

[ ] Should this interface be stream oriented ? my answer: yes
[ ] What should be the generic IPLD interface ? stream.NodeReader
[ ] How applications can interface with the generic IPLD object ? by having their own types and unmarshaling the NodeReader to their specific types
[ ] make sure the implementation can be fast. No unnecessary overhead.
[ ] what about the multicodec package (make it stream compatible, see if we can simplify it)

Yeah, this all seems quite a bit more complicated than I would have expected, given that the data model is basically just JSON with links. There appears to be some premature generalisation happening here. Sorry to be blunt.

However, i think this is way beyond the parameters of this package. This package should be:

type definition for ipld objects + links (main goal!)
some convenience functions to manipulate ipld objects
serialization convenience functions that use multicodec for the heavy lifting

I couldn't sleep and thought of an alternative implementation that seems better to me (perhaps a little less efficient, but much more usable). I'll implement it in the following days (unless you tell me it is not wise to do so) and will split this PR with the new interface into smaller ones.
@jbenet and everyone else, I wouldn't mine a quick and short note
to tell me if I'm going in the right direction.
The idea was to replace the NodeReader that is not very practical to use by an interface that is more object oriented and much more easy to use. Allowing us to simplify IPLD by removing some useless abstractions.
package ipld

import (
	"errors"
)

var ErrEnd = errors.New("IpldIterateEnd")

type Node interface{}

type NodeObject interface {
	Reset() error
	Next() (key string, value Node, err error)
}

type partialNodeObjectMemory interface {
	Length() uint64
	Get(key string) (value Node, err error)
}

type NodeObjectMemory interface {
	NodeObject
	partialNodeObjectMemory
}

type NodeObjectLink interface {
	NodeObject
	LinkPath() string // should be multiaddr ???
}

type NodeObjectLinkMemory interface {
	NodeObjectLink
	partialNodeObjectMemory
}

type NodeArray interface {
	Reset() error
	Next() (value Node, err error)
}

type NodeArrayMemory interface {
	NodeArray
	Length() uint64
	Get(idx uint64) (value Node, err error)
}

func ToObject (n Node) NodeObject { ... } // return nil if it is not an object
func ToObjectMemory (n Node) NodeObjectMemory { ... } // iota
func ToArray (n Node) NodeArray { ... }
func ToArrayMemory (n Node) NodeArrayMemory { ... }
func ToUint (n Node) *uint64 { ... }
func ToInt (n Node) *int64 { ... }
func ToFloat (n Node) *float64 { ... }

ipld/codecs would take or return a Node object. Most of the other packages that are present in this PR would be additional tools not required for normal use (contrary to the present where most are necessary for round tripping).
Also, this interface will allow making use of the special CBOR encoding of links that the NodeReader interface is not able to use fully.
One thing I would probably not change is that I will not use the multicodec package fully (by implementing the Multicodec type) because the Multicodec type is buffer oriented, not stream oriented, and because I find it too complex. Unless we can work this out somehow.

The interface above was almost impossible to implement. I found a better interface that works (I got a first implementation):
// Represents a node object that is iterable.
// It iterates over key value pairs. When created, the NodeIterator does not
// have a current item and iteration must be started using Next()
type NodeIterator interface {
	// Go to next item. Sub items iteration is aborted.
	// Returns true if there is an item
	// Returns false at the end of the iteration
	Next() bool

	// Iterate the current item value
	// Return nil if the iteration hasn't started, is finished or if the current
	// item is not iterable
	Iterate() NodeIterator

	// Abort iteration. Does nothing if the iteration is finished. Also aborts
	// child iterators that were returned by the Iterate() method.
	Abort()

	// Return the current item key, or nil if the iteration hasn't started or is
	// finished
	Key() interface{}

	// Return the current item value or nil if the iteration hasn't started, is
	// finished, or if the current item is iterable. In that case the Iterate()
	// method should be called instead.
	Value() interface{}
}

@jbenet @davidar, please review these commits. Don't hesitate to look at the code commit by commit. The commits are mostly independent and I rebased the whole thing so each commit stands on its own.
Some features from last time are not included (they are still in the reader-extra branch on my repo). There is only the code features needed.
The basic interface in in go-ipld/node.go, it is NodeIterator and is easy to work with. bytes can be decoded into it with zero copy and zero buffering. Encoding it back requires to store the whole thing into the memory for a few reasons. Overall, this is not a problem because we will be reading nodes much more often than writing them.
I'm still not using the Multicodec type because it is not stream oriented, and also because I think it add too much overhead for something really simple (take a reader, spit out an empty interface). No need for 3 kind of objects per multicodec layer. @jbenet, if you want to make use of the Multicodec, we'll have to figure out how to do streaming with it.
Also, implementing multicodecs without the Multicodec type (the multicodec package is still used to read / write headers) is dead simple. Encoding is just a Write(Header) and decoding is just a ReadHeader() followed by a switch statement (or equivalent)

(some tests are failing, this is a data race, I'll fix it, but that should not impact the review very much)

@mildred I can't comment on golang specifics other than "oh god so much if err != nil --- where are my monads?!" :p but it seems a lot more focused than before, so LGTM :)

I still havent reviewed the code sorry.
Up front, i think the iterator route is great! much, much nicer to do that.
I would go for:
type NodeIterator interface {
  Next() bool // in streaming implementations, automatically Skips all children iterators
  Children() NodeIterator  // instead of Iterate
  Skip() // instead of abort.

  Key() interface{}
  Value() interface{}
}

why is the Key() an interface{}? and not a string?

With code like:
iter := iterateOverReader(reader)
printLinks(iter)

def printLinks(iter NodeIterator) {
  for iter.Next() {
    if c.Key() == "/" {
      fmt.Println("found link to", c.Value())
    }

    printLinks(iter.Children())
  }
}

On Sat, 21 May 2016 22:26:51 -0700
Juan Benet<EMAIL_ADDRESS>wrote:

why is the Key() an interface{}? and not a string?

The key can be an integer (for arrays) or a string (for maps/objects).
Perhaps that  could be separated in two functions (Key() and Index()). That should be easy, but what should Key() return on objects?
--
Mildred Ki'Lya<EMAIL_ADDRESS>

Until now I didn't see you wanted renames in the NodeInterface. I performed these.
@jbenet, could you look into this PR, or tell me what I can do to help the review (splitting, ...). Every commit is understandable by itself if that can help. I take care to rebase my changes every time.
Also, this PR is not up to date to the latest spec. In particular the link key is not yet "/" and the code still supports having attributes along with the link itself. I'd like to have it merged before updating these. These modifications are also pending on ipfs/specs#111. I'd like to implement it using proper EJSON.

Hi @mildred, I've been playing with this branch a bit to try to see how I can help with go-ipld, since we're planning to use it in the mediachain project.  I'm still learning my way around go, so I'll probably miss some obvious things :)
I noticed that links aren't getting encoded to cbor tags, which seems to be because there's two LinkTags defined.  The memory nodes use "mlink" as the LinkKey (defined in memory/node.go), but the cbor encoder's encodeFilter is checking for ipld.LinkKey, which is defined as @link.  I'm guessing those are both eventually going to be changed to / to fit the new spec?   At the moment the result is links get encoded to cbor as maps with "mlink" keys instead of CBORTags.  That matches what's in cbor.testfile, so the tests all pass.
Also the Makefile in the coding dir references a now-missing file bin/coding.go, so I can't easily regenerate the test cases.  Not a big deal; as I was mucking about I generated some manual test cases without too much fuss by just spitting out some cbor and prepending the multicodec header from the existing case.
Overall this seems great, although I don't really know enough go for that opinion to have much weight 😄 I really like the NodeIterator interface though; it seems like it provides a lot of flexibility at the application level.
Anyway, if there's anything I can help you with, please let me know.


Add New Jersey statewide parcel-based layer

I'm going to merge this, but we still need to up the timeout so these long-running state-wide data sources will complete.

Agreed, it’s on the list: https://github.com/openaddresses/machine/issues/298


Use WSL PS Error Fix

The fix @JCMais contributed at microsoft/vscode-python/pull/20741 has unblocked me there but I quickly realized that it's not implemented here.
Given the code is already implemented I'd be fully capable to make a PR for this but I wanted to open an issue first in case.

Thanks for your initiative @DavidArchibald . Yes, feel free to create a PR in the Python Debugger extension.


Google changes Redirect URI to lowercase

While the plugin advises to use the redirect url:
http://opiness.dev/content/plugins/wordpress-social-login/hybridauth/?hauth.done=Google
Google itself, changes the Querystring value to a lowercase when it redirects to the "redirect uri":
http://opiness.dev/content/plugins/wordpress-social-login/hybridauth/?hauth.done=google
This results in a error triggering a "invalid redirect uri" and the plugin doesn't login us in.
Even if I enter it in the Google API console with an uppercase value Google
Maybe fix this in the ouput in the help docs of the plugin.

Wow, this is different per environment. I just release it to our test site and here it redirects to capital Google. So have to dive in a bit more.


Translate to Korean

Hello @zedr!, I learned a lot from this repo, so I translated this repo to korean.
Can you please add my translated repo link to your repo?
Thank you for making a great document😊

Thanks. It's a honor to link to it. Done in a971906c651a35e7149411744c7200cdc51ee790


macOS daemon throws exception on re-launch

Restarted daemon manually to watch output.
Noticed unhandled exception:
Then daemon resumed.
Server PAL starting...
2021-08-30T17:07:29.067896Z INFO [Main]: Logging service is ready
2021-08-30T17:07:29.068968Z INFO [Main]: Server ready
2021-08-30T17:07:29.068999Z INFO [Daemon]: Starting linux daemon
2021-08-30T17:07:29.071797Z INFO [AppLogger]: Starting AppLogger
2021-08-30T17:07:29.071987Z INFO [CmdLineLogger]: Starting CmdLineLogger
2021-08-30T17:07:29.072084Z INFO [IntelliJLogger]: Starting IntelliJLogger
2021-08-30T17:07:29.076467Z INFO [SyncService]: Start syncing data...
2021-08-30T17:07:29.077244Z INFO [SyncService]: Found 0 public events and 1 private events to upload.
2021-08-30T17:07:29.077659Z INFO [DaemonAlarmManager]: _scheduleNextNotification from: 2021-08-30 10:07:29.077644
2021-08-30T17:07:29.077819Z INFO [ActionScheduleGenerator]: Next alarm is null
2021-08-30T17:07:30.092233Z INFO [SyncService]: Uploaded 1 private events.
2021-08-30T17:07:30.093425Z INFO [SyncService]: Syncing private events complete.
2021-08-30T17:07:30.093503Z INFO [SyncService]: Start syncing data...
2021-08-30T17:07:30.094402Z INFO [SyncService]: Found 0 public events and 2 private events to upload.
Unhandled exception:
Invalid argument(s)
#0      _StringBase.+ (dart:core-patch/string_patch.dart:267)
#1      macOSAppLoggerIsolate.. (package:pal_event_server/src/loggers/app_usage/macos/macos_helper.dart:33)
#2      _RootZone.runUnary (dart:async/zone.dart:1450)
#3      _FutureListener.handleValue (dart:async/future_impl.dart:143)
#4      Future._propagateToListeners.handleValueCallback (dart:async/future_impl.dart:696)
#5      Future._propagateToListeners (dart:async/future_impl.dart:725)
#6      Future._completeWithValue (dart:async/future_impl.dart:529)
#7      Future.wait. (dart:async/future.dart:414)
#8      _RootZone.runUnary (dart:async/zone.dart:1450)
#9      _FutureListener.handleValue (dart:async/future_impl.dart:143)
#10     Future._propagateToListeners.handleValueCallback (dart:async/future_impl.dart:696)
#11     Future._propagateToListeners (dart:async/future_impl.dart:725)
#12     Future._completeWithValue (dart:async/future_impl.dart:529)
#13     Future._asyncCompleteWithValue. (dart:async/future_impl.dart:567)
#14     _microtaskLoop (dart:async/schedule_microtask.dart:41)
#15     _startMicrotaskLoop (dart:async/schedule_microtask.dart:50)
#16     _runPendingImmediateCallback (dart:isolate-patch/isolate_patch.dart:118)
#17     _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:169)
2021-08-30T17:07:31.343336Z INFO [SyncService]: Uploaded 2 private events.
2021-08-30T17:07:31.345079Z INFO [SyncService]: Syncing private events complete.
2021-08-30T17:07:39.316481Z INFO [SyncService]: Start syncing data...
2021-08-30T17:07:39.317529Z INFO [SyncService]: Found 0 public events and 3 private events to upload.
2021-08-30T17:07:41.269406Z INFO [SyncService]: Uploaded 3 private events.
2021-08-30T17:07:41.270536Z INFO [SyncService]: Syncing private events complete.

Should have been fixed by #89


How to adjust milliseconds on parsing the GPS?

I get data every 0.5 milliseconds in the CSV

Hi @sarmientoj24 . I don't really understand the question, but development on this repo is not active at the moment. I moved all the efforts to the JavaScript version: https://github.com/JuanIrache/gopro-telemetry


Small fix for ESP-IDF platform support

This was missed in #452 because I wasn't testing with feature="all" enabled for my small socket2 test.  For the full tokio integration I was using v0.4.x which didn't need this fix.
Properly closes #379.

Thanks @jasta


refactor: improve the sample tests

This changes a few things:

Use the chai assert.include assertion instead of ok
Use execa instead of nodejs-repo-tools
Split the giant test methods into single purpose tests
Adds unique identifiers to a few places

Those giant tests exist because things need to happen in a specific order and then wait for them to finish before moving on to the next task.
For knowledge bases / documents.

Create Knowledge Base (list, get, verify)
Create a Document in above Knowledge Base (list, get ,verify)
Detect Intent Knowledge Base (only works if a document is in the knowledge base)
Delete Document (list, get, verify)
Delete Knowledge Base now that there are no Documents in it (list get verify)

Is this ordering still guaranteed by the break up of tests?

Yes, the ordering is guaranteed after the break up.

Ah coolio!
Investigating what's up


Feature request: Option to randomize location of Gold Ring, Silver Ring, Spike Breaker, Holy Glasses

The Holy Glasses are always needed to reach the inverted castle, but getting them always requires the same routine of fetching the Spike Breaker and rings first from the same places. Because they are essentially key items that gate access to certain areas, I argue there should be an option to include these items in the relic locations pool and add item + relic dependency information for accessing their respective areas. This would add some more route variety to runs, e.g. if a player found the Holy Glasses early and immediately traveled to the inverted castle, as well as things like finding Soul of Bat there.

Having their locations randomized could often lead to very agonizing seeds, and would require another layer of item logic in order to implement safely. That is to say, every room would require it's own ability locks are satisfied before a progression item is placed there. An easier path might be to shuffle progression items among their own locations, however, there aren't many options that are safe while providing a unique experience.

To clarify, I didn't mean that these four items should be randomized into any item spot in any room of the castle (that would indeed be truly agonizing). Rather, they are essentially treated the same as the other relics (e.g. find Spike Breaker on the Cube of Zoe's pedestal), and can appear instead of one at each relic location. Relics could also now be placed in these four item's rooms instead (e.g. defeat the Succubus to receive the Heart of Vlad).

Unfortunately, I don't think it's possible to swap items with relics and vice-versa :(

Damn, that's a shame.

To piggyback off this - would it be possible to shuffle just the gold ring into a pool of non-essential boss rewards? Thinking this would provide some incentive to fight bosses that are always skipped in the randomizer (e.g. Scylla) due to them not having relic rewards.

I take back what I said previously about a logic table being a requirement for this feature. It could be implemented without such a table. Unfortunately, the reality is just as bleak in an uninteresting way. If progression items were randomized, you would often gets seeds that become an all out scavenger hunt requiring the player to search every corner of first castle for holy glasses (the only item you actually need to get to second castle). Rarely though, you might get holy glasses early, making the seed impressively boring. I don't think adding this feature would be that difficult, however, I'm not just interested in implementing it as I think it lacks any value add.

This is added in version 2.0.0


Fix/req typing extensions

Hello,
when I installed the extensions, it crashed immediately with this error message :

I've just add it in requirements.txt and fix README.
Best regards ;)

Hi there, @marcqw. Thank you for reporting the bug.
I've looked into the issue and found out that the typing_extensions package is unnecessary since the typing package could replace it. It must have come from a wrong auto-completion in my IDE that I overlooked.
Anyway I've fixed it here  b03e9147022eefb832af6e285b0759fe2bf9c40e, so it should work now.
If there are any more bugs/improvements, feel free to create an issue, and I will look into it.


Make sure the output directories always exist by mounting volumes there if needed

Summary
This is just a small usability improvement.
Currently, the the code running in Argo-initiated containers needs to create parent directories before writing outputs.
For some executors Argo already mounts volumes under the output paths to capture the outputs. We could make this standard and ensure all outputs have volumes mounted under them.
Use Cases
This is mainly useful when using command-line programs that only support outputting files to existing directories (most command-line programs are like that). Sure, the user can always write a wrapper script, but that is boilerplate.
Compare:
command:
    - tensorflowjs_converter
    - --input_format=tf_saved_model
    - --output_format=tfjs_graph_model
    - /tmp/inputs/Model/data
    - /tmp/outputs/Model/data

vs.
command:
    - sh
    - -exc
    - |
      model_path="$0"
      output_model_path="$1"
      mkdir -p "$(dirname "$output_model_path")"

      tflite_convert --saved_model_dir "$model_path" --output_file "$output_model_path"
    - /tmp/inputs/Model/data
    - /tmp/outputs/Model/data

Message from the maintainers:
Impacted by this bug? Give it a 👍. We prioritize the issues with the most 👍.

@Ark-kun would you like to submit a PR for this? It would need to be configurable somehow as it changes the default. behavior. I did attempt a PR myself, so I'm in a good place to review your changes.


Added FormData support to body

Stringify FormData makes sending FormData post imposible. Applied an easy fix by checking body types

Failed couple of test, witdrawing PR


Generate getting started template Java as zip

We need a getting started Java template. We can use the examples/jvm/java-blocking-http template for this.
To get started a user would need to clone only the examples/jvm/java-blocking-http directory. With git sparse checkout this is possible but it quite verbose (4 commands) and is still evolving so it will depend on the git version a user has....
Instead, we could generate a zip file of this template on each release, that can be downloaded with wget and extracted locally.

Done


ci:kernel.timernxp-rt1xxx: jitter_drift test failure

Describe the bug
kernel.timer.timer.jitter_drift test failure. on MIMXRT1170_EVK_CM7/MIMXRT1160_EVK_CM7/MIMXRT1060_EVK/MIMXRT1064_EVK/MIMXRT1050_EVK/
Please also mention any information which could help others to understand
the problem you're facing:
CI testing on NXP RT11xx platform found below issue with kernel.timer.timer.jitter_drift
To Reproduce
Steps to reproduce the behavior:

cd tests/kernel/timer/timer_behavior
west build -b mimxrt1060_evk
west flash --runner=pyocd

Expected behavior
Test PASS
Impact
timer behavior
Logs and console output
If applicable, add console logs or other types of debug information
e.g Wireshark capture or Logic analyzer capture (upload in zip archive).
copy-and-paste text and put a code fence (```) before and after, to help
explain the issue. (if unable to obtain text log, add a screenshot)
START - test_jitter_drift
periodic timer behavior test (approx 10 seconds)
periodic timer samples gathered, calculating statistics
FAIL - periodic_diff@53. Caught a timer wrap around which isn't handled!
FAIL - periodic_diff@53.
Commit SHA or Version used: zephyr-v3.3.0-2005-g2a5de5fc3001

@dleach02 @danieldegrasse @mmahadevan108

appears to also impact rt1015 (#58729)

@hakehuang it seems that a1d21ca69bf471b06ebaad6ce2ec74a9b32724ef may have fixed this issue, as the SYSTICK wrapping around is not necessarily a reason for test failure. When testing on the RT1060 using the following commands:
$ west build -p always -b mimxrt1060_evk tests/kernel/timer/timer_behavior
$ west flash

I am unable to see a test failure. I do not see any specific test configurations in the testcase.yaml, is there a setting I am missing?

I am unable to see a test failure. I do not see any specific test configurations in the testcase.yaml, is there a setting I am missing?

@danieldegrasse , the same steps. it has probilities to reproduce this issue. and its related low on latest main branch code. so I can close it


Try to add AlmaLinux 9

Fix #388

We have to fix serverspec test cases for AlmaLinux 9.

We have to fix serverspec preparing script for AlmaLinux 9.

Fixed. CI is passed with some more fixes.
I'm now checking the built package.

Works fine on RHEL 9.

We are going to release the td-agent package for RHEL9 as td-agent 4.3.2 at the end of this month.


Model Length Error message

I am fully updated on the plugin but on Homebridge I am getting this error message 3 or 4 times...
[homebridge-wiz-lan] This plugin generated a warning from the characteristic 'Model': [Model] characteristic must have a length of more than 1 character otherwise HomeKit will reject this accessory, ignoring new value. See https://git.io/JtMGR for more info.
Thoughts on what could be causing this?

More testing and found out that it was a stale accessory in my home and the light didn't exist.


Getting "Not implemented" error when running Client.forTestnet() in Angular

Description
I am trying to use the js-sdk in an Angular application, but keep getting the error
ERROR Error: not implemented
   _createMirrorNetworkChannel Client.js:480
   Client Client.js:56
   WebClient WebClient.js:52
   forTestnet WebClient.js:134
   AppComponent app.component.ts:16
   AppComponent_Factory main.js:116
   Angular 18
core.js:6241:19

when running Client.forTestnet().
Steps to reproduce

Create fresh Angular project: ng new hedera-test
Edit app.component.ts to create the Hedera client:

import { Component } from '@angular/core';
import { Client } from '@hashgraph/sdk';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.sass']
})
export class AppComponent {
  constructor() {
    Client.forTestnet();
  }
}

Start the application npm start. The application builds fine, but when loading the page on localhost:4200 the error mentioned above show in the console and the application does not load.

Additional context
I am using version 2.4.1 of the SDK.  The issue is that _createMirrorNetworkChannel() is missing in WebClient.

This is definitely a bug with the SDK. Although the WebClient will still not support a MirrorNetwork it should not explode on client creation. We'll get on this asap.


Bug fix stats support keyboardentry

Currently typing in a year in the Change Stats dialog (instead of selecting year from the combobox dropdown menu) for a Stats box returns N/A. This PR includes the foll:

simplifies getting index of a value in the item list
shows an invalid state if the start & end year are missing for custom period
adds support for entering a year using the keyboard
filters list as user types in a year
adds comments

superseded by #194


install_gpu_driver.py doesn't work for K80

I was able to use the script for P100 and V100 GCE instances but not K80.
Repro:

Create a k80 instance with gcloud compute instances create n8-k80 --project=YOUR_PROJECT_NAME --zone=us-west1-b --machine-type=n1-highcpu-8 --network-interface=network=core-network,network-tier=PREMIUM --no-restart-on-failure --maintenance-policy=TERMINATE --preemptible --accelerator=count=1,type=nvidia-tesla-k80 --create-disk=auto-delete=yes,boot=yes,device-name=n8-v100,image=projects/ubuntu-os-cloud/global/images/ubuntu-2004-focal-v20210927,mode=rw,size=20
SSH in
Run script with wget https://raw.githubusercontent.com/GoogleCloudPlatform/compute-gpu-installation/main/linux/install_gpu_driver.py and sudo python3 install_gpu_driver.py

Error:
Running nvidia-smi gives NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running. even though the install script finished properly.

This is likely because the K80 is an older GPU and only compatible with drivers up to version 470 (based on what's available here https://www.nvidia.com/Download/Find.aspx).
The install_gpu_driver script uses package managers that are likely pulling the latest driver which is probably too new.

@sigmaxipi Hi, thank you for the detailed reproduction steps!
The script will now support K80 GPUs and will install an older, but compatible version of the drivers for you :)


Error running Razor Scaffolding due to language version

Razor Pages Scaffolding gives an error when generating EntityFramework CRUD Views due to C# Language Version
Functional impact
Cannot use the generator to create a set of Views because it fails.
Minimal repro steps

Create a asp.net core 2.0 app )Web Application with Authentication set to Individual User Accounts.
create a function which uses a newer language feature e.g. default parameter `public void Test(CancellationToken token = default) { }
Create a new folder in Pages called Test
Right click on the folder and go Add > Razor Page...
Select Razor Pages using Entity Framework (CRUD)
Select a Model class - ApplicationUser (WebApplication1.Data)
Select a Data context class - ApplicationDbContext (WebApplication1.Data)
Deselect all options
Press Add
Error log should appear in a modal.

Expected result
Expected the Razor Views to be generated.
Actual result
Error modal appeared with the error log while it tried to generate the code.
Further technical details
My best assumption is the generator runs ignoring the project language settings (both in release and debug) defaulting to the latest major version.

This issue was moved to aspnet/Scaffolding#693


added workflow for image push to dockerhub

Motivation and Context
Currently the images can be lost if a destroy and recreate on terraform is performed causing a loss in being able to re-deploy infrastructure.
What has changed
Added new github workflow action
Updated cloudbuild.yaml code to use latest image from dockerhub and deploy to cloudrun.
How to test?
Pipeline passes on pull request.
Verify image in dockerhub
Links
SDSS-195

I am new to dockerhub and workflow, but here are something that I am curious of:

Do we have to change the branch name on workflow yml whenever we work on a new branch so that it can trigger the build to GitHub during push?
Does the workflow also have to run during a merge?
Are the github workflow and cloudbuild.yaml two parallel processes? If so, will there be a chance that cloudbuild.yaml is pulling an older version of image because the new build in github workflow is not done yet?

The branch working branch name is only used for testing, I will revert it to main.
The workflow will run on push to main.
Workflow will first push the image to dockerhub, cloudbuild will run after that to pull the latest image and deploy.

I am new to dockerhub and workflow, but here are something that I am curious of:

Do we have to change the branch name on workflow yml whenever we work on a new branch so that it can trigger the build to GitHub during push?
Does the workflow also have to run during a merge?
Are the github workflow and cloudbuild.yaml two parallel processes? If so, will there be a chance that cloudbuild.yaml is pulling an older version of image because the new build in github workflow is not done yet?

The working branch name is only used for testing, I will revert it to main. The workflow will run on push to main. Workflow will first push the image to dockerhub, cloudbuild will run after that to pull the latest image and deploy.

I see. Thanks for explaining.


Add workgate

This PR adds a workgate pkg to limit concurrency.

Looks good. Feel free to disable the linter for that test file with a package comment. You can also tag a new minor release after this lands and CI is green.


Allow to move lessons to different day

For example if lesson takes place on 11 November, a user should be able to change its start time to another date, while it will still be attached to 11 November

It means that Lesson should not only have start time in minutes, but also a date


dbt metrics

Describe the feature
I just tried to use dbt metrics, but it fails with trino, I think because of the following:
There's a dateadd in the metric_date_spine macro  in the that trino doesn't recognize (it's date_add for trino).
Would it be an option to use this package to reimplement the macros necessary to run dbt metrics?
Describe alternatives you've considered
Overwrite the macros myself
Who will benefit?
People who want to use dbt metrics with trino.
Are you willing to submit PR?

[ ] Yes I am willing to submit a PR!

What do you think about https://github.com/RobbertDM/dbt-trino-metrics ?
There's also a choice here:

make a repo for every package we want to provide trino shims for, or
use this one as a collection of trino shims for all packages

I'm a bigger fan of 1, because those repositories can be used to merge things upstream more easily.
2 is more convenient for users, as they only need to install a single trino shims package and be covered, + you can re-use some CI and integration test overhead probably.
What do you think?

Same goes for https://github.com/RobbertDM/dbt-trino-date

I would stick to this repo similar as in dbt lab's spark-utils as it is most convenient from end user perspective.
The work on these is highly appreciated and welcome! I would also suggest evangelizing this on dbt slack to get more people involved.

Ah yes, makes sense, with the "compatibility" notice in the README.
I made 4 repos recently, each with a single shim to make a package work.

https://github.com/RobbertDM/dbt-trino-date
https://github.com/RobbertDM/dbt-trino-metrics
https://github.com/RobbertDM/dbt-trino-expectations
https://github.com/RobbertDM/dbt-trino-iceberg

I'll make a PR for some of them, but others are too "opinionated" for this package since they do the timestamp(6) trickery needed for iceberg.

See https://github.com/starburstdata/dbt-trino-utils/pull/19
and https://github.com/starburstdata/dbt-trino-utils/pull/20


Rational, Background, &c. pp.:

There's a whole bunch of annoying yet subtle pseudo-incompatibilities between PowerToys & @m417z's https://tweaker.ramensoftware.com/ (I'm intentionally NOT linking the source code repository, also hosted on Github, here, due to it being GPLv3 licensed, and I want to avoid torpedoing this entire suggestion by having the entire development team+community contributors 'tainted', despite being a libre software advocate myself, albeit a perhaps unusually Software Development Realpolitik aware one) likely due to subtle Heisenbugs in both. I'd list them here/raise separate individual issues about them, but as already hinted, they seem DAMN hard to narrow down to reproducible test cases

The Taskbar code in Windows 11 is being completely replaced & redone by Microsoft for a variety of reasons. As a consequence, without some serious hacks, most of the features of 7+ Taskbar Tweaker won't work in W11 and @m417z has already deemed reimplementing them as infeasible. I'd expect that sooner or later those aforementioned hacks will also become infeasible. This makes the useful remaining lifespan of it sadly limited from my point of view.

many of the UX changes to the taskbar in W11 are intended to improve usability for the typical user. As presumably most here know, such changes often rightfully upset power users (…just look at the history of Firefox…), however, it's also completely understandable not wanting to have the code for the power user features inside the OS mainline, because they make large scale code refactoring significantly more difficult. This is a common conflict in software development, and it's also in some sense, to my knowledge, one of the reasons for the existence of PowerToys, both the original and it's current reincarnation. Having the code for such taskbar & window management features inside a tool like PowerToys would make sense from that perspective.

Microsoft developers working on PowerToys presumably have access to much more direct insights about both future Windows development roadmaps as well as the source code & internal documentation for the components of the new W11 taskbar. This would make implementing feature parity tremendously easier.

many of the features of 7+ Taskbar Tweaker seem like they'd be a perfect fit for PowerToys because having them there would allow much tighter coupling with FancyZones. I'd like to especially highlight the Taskbar Inspector (BULK WINDOW MANAGEMENT IS KING) and the fine-grained task grouping controls (collapsing all groups except for the group of the currently active window is a screen estate game changer!). Just imagine being able to bulk-send Windows to a specific FancyZone and/or virtual desktop, binding specific, arbitrarily defined taskbar groups to specific fancy zones, &c. pp.

I could go on, with this list, but I think this already makes the points I wanted to make for this major suggestion clear enough, but I'll—	almost—close with a tl;dr which one should take with a freightload of salt:
tl;dr dear Microsoft, please go Mark Russinovich[verb! 😉] @m417z who clearly understands the UX needs of your power users better than a lot of the mainline Windows 11 UX design decision makers 🤡
(final note: it feels temping to ask whether @m417z would consider relicensing to allow direct inclusion into PowerToys, however, as I don't know their rational for chosing the current license, I have no association with them, this ticket almost certainly comes as a—potentially?, but hopefully not, irritating/annoying—surprise to them, and I have a few idea for why they might have chosen to do so which I'd also myself totally stand behind & support, I won't.)

This is too vague of an ask.  if you like their app, please use their stuff.

also /dup #4501


Please provide quick take on several feature requests

Hi,
I'd like to ask about how receptive this project might be to these new features:

Support for ldap_sasl_bind(). I don't think there's a workaround -- getResource() will ldap_bind().
Add an option to request that the library transparently reconnect, rebind and retry in case of failure. I currently have an issue with my in-house ldap connection handling where if a script binds and then hangs out for awhile, openldap times out the connection. A library like this seems to be the appropriate layer to intercept and deal with server timeouts.
Define an interface with the core CRUD operations currently implemented in Zend\Ldap\Ldap, and have Zend\Ldap\Ldap implement the interface. This would broaden the possibilities for unit test development, from the point of view of applications that use of this library.

Our in-house codebase is starting to be limited by primitive ldap encapsulation and connection handling. If all these enhancements could be merged in, using your library looks like it could be a good solution for us.
Thanks for your consideration
Mike Baynton

Hi Mike. Thanks for the considerations and also sorry for getting back to you about this so late.
I'll have to check the codebase but I think some of your ideas are very interesting!
Though I'm not sure how an interface for the core CRUD-Operations would broaden the possibilities for unit-testing. Perhaps you could elaborate that a bit further?
Thanks

Hi Andreas,
For the CRUD operations interface, I was thinking in terms of registering zend-ldap as a service within your dependency injection framework of choice. With such an interface defined, one could eg. write a lightweight in-memory implementation of the same interface, and plug that "fake ldap" implementation in when running unit tests as a way to achieve a reproducible testing environment.
A problem we currently have is that we've got a large quantity of code that, among other things, changes our ldap. That makes it very hard to test the code as a whole without providing it an actual ldap directory server that starts at a known state at the start of every test. Since zend-ldap already offers a level of abstraction above the ldap_* functions, a natural extension would be to make it easy for zend-ldap users to write mock/fake implementations of the same abstraction.

Hi Mike. You already are able to mock the zend-ldap in your tests without the need for an interface. Using phpunit you could do that like this:
$mock = $this->getMockBuilder(\Zend\Ldap\Ldap::class)->disableOriginalConstructor()->getMock();
$mock->method([methodname you want to call])->…

That already allows you to use zend-ldap in testing without actually invoking anything…
An interface would only make sense when there would be more implementations that implement it. But as Zend-Ldap is the only implementation of - well zend-ldap - there is not really a need for an interface. That would be different should there be different LDAP-Abstraction Layers that agree on one interface they all implement to make the AL interchangeable. But there's currently no such attempt I'm aware of.

Andreas,
Sure, but using extensions of classes created on the fly, such as phpunit's getMockBuilder, can become very ugly when the mock has much state or substance. In any case the only impact to zend-ldap would be the addition of an interface file.

Still I'm not understanding where the interface makes it easier to test. You'll need to mock the interface as well. Or, if you want to implement the interface in your own class, you can as well extend Zend\Ldap\Ldap and overwrite the methods you would otherwise implement in your "mock-class".
Though in my experience using the mock-variation for unittests makes it more clear what the tested method is doing and so helps designing the methods more maintainable. Not that that is only valid for unittests. In integration tests that's a completely different story!
In Integration tests I'm usually setting up an LDAP using the setUp and tearDown methods. The LDAP is either running in a virtual machine or is created on the CI-Server. Have a look at the .travis.yml-file or at the .ci-folder how we solved that for zend-ldap

On the other points, Support for ldap_sasl_bind() and option to automatically reconnect, are you open to having those in principle?
I think whether you insist on only using mocks generated on the fly vs. using mocks that are regular classes implementing a shared interface is a matter of preference and style, but I'm not the only one that prefers that way. An example that's basically the same idea in a major framework, Symfony has a SessionStorageInterface. When running unit tests against the Symfony framework that depend on sessions, one is encouraged to use MockArraySessionStorage, a conventionally defined class that implements SessionStorageInterface and just stores the session state in memory.

I've written PRs for all these at this point, so this issue asking if they would be welcome can probably be closed.


Stop spamming public GitHub emails, please.

 I got three emails from you. Even if I were interested in using your product in the first place (no), now I am completely not interested. I reported you to Gmail and GitHub support.

@Blockchainbrett Have you unsubscribed me from all emails?

Yes, you're unsubscribed. Thanks.


Package Overview does not show classes and class members

Description:
$title

Moved to https://github.com/wso2/ballerina-plugin-vscode/issues/48


services/horizon: Fix empty route param bug

PR Checklist
PR Structure

[ ] This PR has reasonably narrow scope (if not, break it down into smaller PRs).
[ ] This PR avoids mixing refactoring changes with feature changes (split into two PRs
otherwise).
[ ] This PR's title starts with name of package that is most changed in the PR, ex.
services/friendbot, or all or doc if the changes are broad or impact many
packages.

Thoroughness

[ ] This PR adds tests for the most critical parts of the new functionality or fixes.
[ ] I've updated any docs (developer docs, .md
files, etc... affected by this change). Take a look in the docs folder for a given service,
like this one.

Release planning

[ ] I've updated the relevant CHANGELOG (here for Horizon) if
needed with deprecations, added features, breaking changes, and DB schema changes.
[ ] I've decided if this PR requires a new major/minor version according to
semver, or if it's mainly a patch change. The PR is targeted at the next
release branch if it's not a patch change.

Fixes a bug introduced in #2152. Paths like: /accounts//payments return all payments instead of 404. This can lead to dangerous bugs when account ID is omited in request by accident.

this is a not a bug of chi, you should always be validating your inputs.

@pkieltyka 👍 That's what we discovered. The bug was in our code because we made the wrong assumption about how empty path parameters work and are using the regular expression to indicate the path parameter is required to have a value.


LINK : fatal error LNK1181: cannot open input file 'libsqlite3.lib'

Hey guys Im getting this error, Im not concerned about the warnings, just for the 'libsqlite3.lib'. There's something I can do?
1>------ Build started: Project: IAR (IAR\IAR), Configuration: Debug Win32 ------
1>C:\Users\alejandro.veloz\Documents\GitHub\iar-mobile\src\ios\errs/CellForRespondNow.h(14,53): warning : property type 'UIImageView *' is incompatible with type 'UIImage *' inherited from 'UITableViewCell' [-Wincompatible-property-type]
1>C:\Users\alejandro.veloz\Documents\GitHub\iar-mobile\src\ios\errs\BSGoogleV3KmlParser.m(40,13): warning : 'setShouldProcessNamespaces:' is deprecated: property not yet implemented [-Wdeprecated-declarations]
1>LINK : fatal error LNK1181: cannot open input file 'libsqlite3.lib'
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
========== Deploy: 0 succeeded, 0 failed, 0 skipped ==========

@alejandrovelozb Unfortunately, our SDK currently does not provide libsqlite3. For now, the workaround is as follows:

Go to https://www.sqlite.org/download.html and download a VSIX for Universal Windows Platform.
Install the VSIX on your machine.
In Visual Studio Solution Explorer, right-click on your project and select Add -> Referece...
Under Universal Windows -> Extensions select SQLite for Universal App Platform

Thank you! But now I have another issue there's another lib
1>LINK : fatal error LNK1181: cannot open input file 'libstdc++.lib'
They gave me this project and its kind of big and have a lot of libs, what would you recommend, try to find what libs that would work as the old ones, or starting from scratch?

@alejandrovelozb In regards to libstdc++.lib, try removing it from the Linker arguments (Linker -> Input -> Additional Dependencies) and see what happens.
For libraries in general, you'll need to find pre-compiled UWP ones (e.g. libsqlite3 above) or try to compile them from scratch.

I'm closing the issue for now.
I have create a separate issue #486 to track adding libsqlite3 to our SDK.


Show only one repository

Currently I have 250 unread issues on github in several repos.
On my mobile phone I am only interested in one specific.
As the fetch limit seems to be 50 I only get a few issues of this repo.
Is there a way to have this permanent being filtered on one repo?

Hi Tobias. I checked that github API contains method to read notifications for one repository only, so it should be possible to implement this feature.
From app GUI point of view, I can introduce top level config option Default repository visibility with values Visible and Invisible. Then user will be able to overwrite this for each repository from Watched Repositories view. This is probably most simple and flexible config option. When only one repo will be enabled then I'll use optimized API call to get notifications for this one repo only. Hope this works for you.

@velias is there something I can help you with?

Send me some free time? ;-) Just kidding, ping me occasionally until finished to claim my attention and motivate me a bit. Today I wa able to write configuration part of code, so next step is use of the config in business logic :-D

Cool 👍
Looking forward to it :-)

Feature is implemented, I'll try to do release soon. BTW looks like github REST API started to use Link header for data paging, I created #85 to add support for this to show all data in the app


Performance on np.matmul

The shape of x is [200, 1000], of w is [1000, 500], and of b is [500]
b is filled with zeros, x and w are random float64/double.
Example code of NumSharp:
var out = np.matmul(x, w) + b;

... takes 3-4 seconds.
Example code of numpy:
out = x @ w + b

... finishes immediately.

@Banyc Can you test it in TensorFlow.NET eager mode?

I use only this package to implement neural network layers from the stretch, without using other packages like Tensorflow.NET.

It will have performance issue. Should use other more mature package.


Website update

First I would like to apologize for the bad commit history but, 'cause of githubs git lfs restrictions on public forks I got some problems.
Anyway the site, inspired by Klise, has most of its groundwork done and is mostly functional but there are still things that need to be done and I got some questions.
Questions:

I couldn't add the favicons, 'cause of the restrictions mentioned before. So could you add them yourself?
The original theme has a extra navbar for mobile devices but we only have to items. So is a mobile navbar really needed?
It would be nice to have a so called anchor on headings so you can share a link to a specific part of a blog post. For that feature to work however we need to parse markdown headings to a html heading with an <a> tag and a class on it. I'm not so confident in my Rust and especially in the rendering libary. Could you look into it?
Currently images are just gotten from the /assets/img/image.png directory but I assume you would like them to be grouped per post like /assets/img/<post-name>/image.png. I'm not trusting myself enough to implement that, 'cause I'm not really sure of the security risks, maybe I'm just overreacting and rocket is handling it the right way. But I would like to keep that task to you, if thats okay.

TODO:

[x] fix the theme switch icon so it's centered and visible even if dark mode is active
[x] add code highlighting
[x] add anchor headings
[x] mobile navbar?
[ ] favicon
[x] add more meta:og tags for social platforms

I would like to hear your feedback! And if you still got any feature requests or ideas for improvement, let me know!

Thank you so much for helping out! I'm really happy with the current progress on this.
As for your questions:

No problem.
I intend to add more items myself so if it's not too much of a hassle, it would be greatly appreciated.
This is a trivial change. If you uncomment this line you can have raw HTML inside the markdown files.
No problem, I will do this myself.

Thanks for your feedback, I appreciate it!

Hey, me again. Just wanted to bring to your attention that anchor heads are working but as you mentioned before, the html needed must be directly put into the markdown file as done here

As it turns out https://github.com/kivikakk/comrak is shipping with syntax highlighting with the help of https://github.com/trishume/syntect

I think that should be everything.
I hope you are statisfied with my work. And if you really are I would appreciate if you add the hacktoberfest-accepted label

Thanks again for doing this, heavily appreciated.


fix: upper limits are incorrect in requires-python

Topic
Fixes #449
Checklist

[x] pre-commit run --all-files
[x] tox

@TheKevJames How to resolve the ci failure? Error detail:
upload: commands[0]> coveralls --verbose
Missing .coveralls.yml file. Using only env variables.
Error running coveralls: Not on TravisCI. You have to provide either repo_token in .coveralls.yml or set the COVERALLS_REPO_TOKEN env var.
Traceback (most recent call last):
  File "/root/project/coveralls/cli.py", line 65, in main
    coverallz = Coveralls(
  File "/root/project/coveralls/api.py", line 47, in __init__
    self.ensure_token()
  File "/root/project/coveralls/api.py", line 60, in ensure_token
    raise CoverallsException(
coveralls.exception.CoverallsException: Not on TravisCI. You have to provide either repo_token in .coveralls.yml or set the COVERALLS_REPO_TOKEN env var.
upload: exit 1 (0.23 seconds) /root/project> coveralls --verbose pid=2148


support no fallback on browsers which do not support history API, fix #1456

Could you add a test for it in the api.spec.js file please?

@posva Sorry but it should only work on IE9, and it seems there is no spec for fallback to hash mode before, so actually I have trouble about how to write the test spec.

I meant that you can test that the mode is actually forced to 'history' even when there's no browser support for pushState (https://github.com/vuejs/vue-router/blob/dev/src/util/push-state.js#L6)

But it will always fallback to abstract on server/Node.js and it should not be broken.
https://github.com/vuejs/vue-router/blob/dev/src/index.js#L49
Then I pretend it as browser inside, I don't know does it meet your requirement.

Sorry if I was too pushy there, I meant to have an open discussion about it 😅
Yes, it should default to abstract in Node. What you wrote looks pretty much like what I was thinking (without the dist files ofc, if you can remove that from the commit, that would be great 😄 )

But the spec indeed requires the dist files, because as I mentioned in comment: "we do not use Router top above directly because inBrowser has been initialized inside".

The dist file will be overwritten between builds... this won't work. Let's just remove the spec.

@yyx990803 I've reset the last commit.


Add ViewBinding::inflate support with viewInflateBinding

We can switch the factory to work with fragment to add support for ViewBinding::inflate as an alternative (which should resolve #8). I also switched to inline functions to avoid multiple lambdas/callbacks
Technically this would be a breaking change, since the constructor is public and the signature changes, even though nobody should be affected 🤔

@bleeding182 I've used your code like:
private val binding by viewInflateBinding(FragProductsBinding::inflate)

but, without writing:
class FragProduct : Fragment()
...
override fun onCreateView(
    inflater: LayoutInflator,
    container: ViewGroup?,
    savedInstanceState: Bundle?
): View = binding.root

It doesn't show the view on the screen; It's white.

Also, I found this: https://github.com/Zhuinden/fragmentviewbindingdelegate-kt/pull/7#issuecomment-796466177


[WFCORE-3811] Upgrade to WildFly Galleon Plugins 1.0.0.Alpha20

This change eliminates the need for the commit in WFCORE-3808.
Also removes properties from the configs that are matching the defaults, so not effective.

I confirmed that this fixes the WFCORE-3808 problem.


fix(ci): remove retry 0 to benefit from auto retry in case of technical issue

What does this PR do?

Motivation

Additional Notes

Possible Drawbacks / Trade-offs

Describe how to test/QA your changes

Reviewer's Checklist

[ ] If known, an appropriate milestone has been selected; otherwise the Triage milestone is set.
[ ] Use the major_change label if your change either has a major impact on the code base, is impacting multiple teams or is changing important well-established internals of the Agent. This label will be use during QA to make sure each team pay extra attention to the changed behavior. For any customer facing change use a releasenote.
[ ] A release note has been added or the changelog/no-changelog label has been applied.
[ ] Changed code has automated tests for its functionality.
[ ] Adequate QA/testing plan information is provided. Except if the qa/skip-qa label, with required either qa/done or qa/no-code-change labels, are applied.
[ ] At least one team/.. label has been applied, indicating the team(s) that should QA this change.
[ ] If applicable, docs team has been notified or an issue has been opened on the documentation repo.
[ ] If applicable, the need-change/operator and need-change/helm labels have been applied.
[ ] If applicable, the k8s/<min-version> label, indicating the lowest Kubernetes version compatible with this feature.
[ ] If applicable, the config template has been updated.

/merge

This seems to contradict gitlab's doc: Use retry to configure how many times a job is retried if it fails. If not defined, defaults to 0 and jobs do not retry
Do we have a different default for our instance?


Remove what I think was an old debug statement

I've been enjoying this package for a while, but kept wondering why I was seeing a random path printed out. I decided to fix it for a specific repo. Now I am experiencing it again. So I thought I'd contribute this back.
This PR removes the printing of the path while prompting during an unlock.

Hey, thanks for the contribution and sorry for not responding earlier!


add pip check, use more traditional version selector

Checklist

[x] Used a personal fork of the feedstock to propose changes
[x] Bumped the build number (if the version is unchanged)
[ ] Reset the build number to 0 (if the version changed)
[x] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[x] Ensured the license file is being packaged.

In trying to set up a [development environment](https://github.com/conda-forge/staged-recipes/pull/12516#issuecomment-774761464 for jupyter-book), I've run into issues with the dependency that uses the tilde operator. this uses the more explicit >=x,<x+1 form.
Also adds pip check, given the number of deps we're dealing with here.
Since I'm not super in need of this package until jupyter-book is available, i haven't added myself as a maintainer, but would be happy to do so at that time!

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

@conda-forge-admin please rerender

@bollwyvl I'm not really sure whether this is ready to be merged or not...I don't think that we have the reviewer bandwidth to keep up with these conda-forge versions as well. Also I don't have write access to this repository so I'm not sure I can do anything myself

Also I don't have write access to this repository so I'm not sure I can do anything myself

I'll take a look at re-syncing the deps on #10, and will add the @conda-forge/jupyter-book team...

bandwidth to keep up with these conda-forge versions

Right, that's the goal of having teams (rather than individuals) to spread the tasks more broadly, and trying to adopt reasonable practices so that it's just "click the button," or "report bug we find by actually testing things as people might want to install them,"

Hi! This is the friendly automated conda-forge-linting service.
I was trying to look for recipes to lint for you, but it appears we have a merge conflict.
Please try to merge or rebase with the base branch to resolve this conflict.
Please ping the 'conda-forge/core' team (using the @ notation in a comment) if you believe this is a bug.

Hi! This is the friendly automated conda-forge-linting service.
I wanted to let you know that I linted all conda-recipes in your PR (recipe) and found some lint.
Here's what I've got...
For recipe:

Failed to even lint the recipe, probably because of a conda-smithy bug :cry:. This likely indicates a problem in your meta.yaml, though. To get a traceback to help figure out what's going on, install conda-smithy and run conda smithy recipe-lint . from the recipe directory.

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

@bollwyvl I certainly agree with that goal! I think the challenge that I have is that, because I don't understand how the conda forge infrastructure works, it is unclear to me whether things are actually as simple as just clicking the button or not haha.

Hey all - I appreciate this discussion around conventions for how to handle dependency specifications for conda-forge recipes, and I appreciate the interest that folks have in ensuring compatibility across the broader conda forge ecosystem.
It sounds like there are reasonable cases to be made on both sides here, and I don't think that there is a single obviously right answer. That being said, I also don't think that this PR is the right place to decide when to change team conventions within executablebooks/ stuff. If there's a strong reason for one convention or another, this should be decided at the project level within the practices that we follow, rather than on an ad-hoc basis in one PR. Otherwise I fear that the standards we follow will start to organically diverge, and it will make the ecosystem harder to keep track of and follow.

I don't think anyone is asking to change anything about EBP or any of it's projects. This is a conda-forge project we are communicating on. Seems to me that conda-forge principles and patterns are what govern these repositories. I'm bowing out at this point, as there doesn't seem to be much room for consensus making. Have a great weekend!
P.S. @bollwyvl I was seemingly added to the conda forge jupyter-book team. How do I go about getting off that? As I'd like to stop getting notifications about these recipes.

I think this is a challenging aspect of Conda Forge. On the one hand, yes it is in a different organization. On the other hand, as maintainers of the upstream EBP projects we feel an obligation to participate in this space in order to keep the packages up to date.
Realistically it is people following EPB community practices that will be coming here to maintain things. If conda forge recipes go out of date or don't work properly, people are going to come to the EBP repositories to ask for changes, updates, etc. It's not as easy as saying that different practices should be followed just because the repository is in a different GitHub org.
My assumption was that conda forge recipes respect the community practices of the projects that are hosted here. Is that wrong?

thanks for all these points everyone. I have opened a discussion thread for consideration of these points: https://github.com/executablebooks/meta/discussions/481


Check for root and new option

If you are interested, I added a couple of things:

a check for root capabilities: if not running as root it may miss hits, without warning
a 'deep' mode to scan for the jndi class in all .jar files.

If this is not of interest, just close the pull request ;-) . Thanks!

Hi,
Thanks for sharing :)
I agree regarding the EUID check, there should be a warning.
Regarding the "deep" mode, could you please elaborate on the case when the jndi class is present in a jar that is not log4j-core?
The current scan is looking for the jndi class when log4j-core jar is loaded explicitly or when log4j-core is embedded in the app's jar.

Hello!
Thanks for asking!
I'll describe you the case:
if for example an application is compiled with Maven (with default values), the library is included into the final jar without the name log4j-core, but the jar is directly expanded into the package.
In this way the tool is missing the entry. You can test it also with the sample docker at https://github.com/christophetd/log4shell-vulnerable-app.git (using gradle).
If you need any further info, just let me know.
Thanks for the tool, great idea!

Sorry, I gave you the wrong example. The one reported before is ok. This is one where the usual scan is not working:
https://github.com/leonjza/log4jpwn.git

Thank you so much for the feedback!
Since I want to support this case by default, I will include it in a new version I'm working on.
I will also add the EUID check.
BTW, the sample container you provided was very helpful :)

Hi,
I have released a new version:
https://github.com/intezer/log4jscan/releases/tag/v1.2.0
The new version is able to detect log4j-core when it is embedded in a jar built with Maven (like the sample you have provided).
FYI, I was able to extract the version from the pom.properties file using unzip.
In addition, the new version will display a warning if it was executed without root privileges.
Thank you for reporting these issues.
I will close this pull request, but feel free to reach out if you encounter any issue or if you have additional feedback :)


[Feature] Move BlockId type to alloy-eips

Component
consensus, eips, genesis, rpc
Describe the feature you would like
BlockId type was introduced in https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1898.md
it'd be beneficial to have this lightweight type in the smaller eips crate than the rpc crate because this type is not only used in rpc.
for example in reth this is part of database provider API.
TODO
move
https://github.com/alloy-rs/alloy/blob/8cb0307b9bdb6cef9058d2d1a2219c8d212a7421/crates/rpc-types/src/eth/block.rs#L437-L439
https://github.com/alloy-rs/alloy/blob/8cb0307b9bdb6cef9058d2d1a2219c8d212a7421/crates/rpc-types/src/eth/block.rs#L471-L473
https://github.com/alloy-rs/alloy/blob/8cb0307b9bdb6cef9058d2d1a2219c8d212a7421/crates/rpc-types/src/eth/block.rs#L623-L626
to alloy-eips/src/eip1898.rs
and reexport from rpc crate
Additional context
No response

can take this on :)


Maintain cursor position when toggle Open Markdown Preview

Open a markdown file. Have the cursor somewhere. Move it somewhere else with the arrow keys, then press cmd+shift+v to 'open markdown preview'. Press cmd+shift+v again. Now the cursor is in a different place. Similar to the bugs like #11727 I guess.

Part of the problem is that imho the markdown extension executes the "Go back in history" command when toggling from the preview back to its source file which in some cases can go wrong badly if another file was opened meanwhile ( @kieferrm to confirm if that is still true).

We no longer enable the open markdown preview command when in the preview, so I don't think this scenario can be hit anymore


se eliminan todas las llamadas a mi propio repo

se pisa todo

Given all the changes, I don't think this was intended as a pull-request?


Leadership election is arbitrary between revisions unless tags are used.

Is this the right place to submit this?

[X] This is not a security vulnerability or a crashing bug
[X] This is not a question about how to use Istio

Bug Description
Tags are documented as an opt-in feature to simplify managing revisions.  The documentation for tags states that the default tag

Steals the leader lock from non-default revisions and performs singleton mesh responsibilities (such as updating resource statuses)

It appears that if one uses revisions, but not tags, then leadership election is completely arbitrary, i.e. any revision can win and retain leader status.
Since the creating a default tag merely results in the creation of a webhook, I tested with
helm template istiod istio/istiod -s templates/revision-tags.yaml --set revisionTags="{default}" --set revision=v1 -n istio-system | kubectl apply -f

Once the webhook from the above was created, revision v1 appeared to consistently stole the leadership election.  When I removed the webhook, it appeared that other revisions could win and retain election.
Are there any consequences to this (e.g. if revisions are from different versions of Istio, or different config/features)?
At the very least, perhaps the docs should mention that usage of tags is required for deterministic leadership behavior.
Version
Tested with 1.19.5

Additional Information
Who won leadership election was determined by looking at the Istio-leader configmap.  When the default revision ag webhook was present, I observed that if a v2 pod won election, then it would momentarily be replaced with a v1 pod.  Without the webhook, a v2 pod could win election, and stay there.
apiVersion: v1
kind: ConfigMap
metadata:
  annotations:
    control-plane.alpha.kubernetes.io/leader: '{"holderIdentity":"istiod-v2-8b8b4db9d-j478m","holderKey":"v2","leaseDurationSeconds":30,"acquireTime":"2024-03-07T22:32:05Z","renewTime":"2024-03-07T22:32:05Z","leaderTransitions":1}'
  creationTimestamp: "2024-03-07T22:11:55Z"
  name: istio-leader
  namespace: istio-system
  resourceVersion: "5591"
  uid: 52a71dda-b7ae-4dd6-9401-b0a9f8064a17

apiVersion: v1
kind: ConfigMap
metadata:
  annotations:
    control-plane.alpha.kubernetes.io/leader: '{"holderIdentity":"istiod-v1-6c7cb8868f-c4x5v","holderKey":"v1","leaseDurationSeconds":30,"acquireTime":"2024-03-07T22:11:55Z","renewTime":"2024-03-07T22:31:41Z","leaderTransitions":0}'
  creationTimestamp: "2024-03-07T22:11:55Z"
  name: istio-leader
  namespace: istio-system
  resourceVersion: "5425"
  uid: 52a71dda-b7ae-4dd6-9401-b0a9f8064a17

My understanding is that leadership election could be disabled if there is only 1 node.  Leader does a few tasks such as update status of resources, namespace controller (create configmaps for ns).  Assuming there are no resource status API changes among revisions and assuming all revisions are using the same root cert, the impact of this may be none?
cc @hzxuzhonghu and @howardjohn for their input.

This is as expected; when installing a new revision (via istioctl or helm) you can optionally set it as the "default" revision. That prevents the flip-flopping

Thanks @keithmattix - yep just wanted to make sure there is no negative impact with this behavior when multiple revisions co-exist.  Or should we always recommend users to set the "default" revision, which to my understanding is optional atm?

.. and if there is no  negative impact from flip-flopping leadership between revisions, then there is no value to pinning leader to the default revision?

My understanding is that users should ALWAYS set a default revision. Because without one, config without a revisioned label could be ignored or have its behavior change during a canary upgrade (e.g a VirtualService with no revision label could either be ignored or have its semantics change during a canary upgrade). This has come up in slack several times

The canary upgrade doc is definitely not clear on that case, then.  It shows the steps for a canary upgrade without tags involved.  Then mentions tags in the context of "rather than go through all that, you can just use tags", then later as an aside "the default tag has special semantics".  Nowhere does it actually recommend or encourage using It, or warn against not using a default tag.
Regardless, I'm sill interested in knowing if there are consequences to flip-flopping leaders across revisions.  i.e if someone is OK with revision labels, diligently uses and updates them everywhere and otherwise has no reason to use tags (and is happy), is there a downside to flip-flopping that would be remedied by a default tag anyway?

I am fairly sure validation does not work without a default revision set.
Flip flopping across revisions can give negative impacts if they have different behavior across versions; not common but possible.

Validation webhook does seem to handle per revision?  https://github.com/istio/istio/blob/89c548304627c7a2bed1216ce2b180560a8d5a67/manifests/charts/istio-control/istio-discovery/templates/validatingwebhookconfiguration.yaml#L12
I recall we introduced multiple revisions first then default revision to simplify the UX so i didn't realize default revision is required, till the discussion here.  I do agree that we should recommend users to have default revision to avoid rare scenarios of different behavior across revisions.

But each validating webhook only handles its own revision. So a 1-20 revisioned VHC won't validate a resource without a istio.io/rev label set to 1-20.


Policy support to restrict creating new Azure DevOps organizations not visible.

I've created a new Azure DevOps organization, and during creation I selected that this is a business-type DevOps organization, automatically connecting this to my AD. The policies that are visible in this github document are not visible in my admin-panel, even although it has automatically hooked up Azure DevOps to my Azure AD, and AD-logins are enabled.
Where can I find these settings?

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

ID: 53e0bc69-0f15-0f14-b1cb-414848105cbf
Version Independent ID: 7d0fba46-e37e-e7d0-3d7d-6ba606a58962
Content: Restrict new organization creation, Azure Active Directory tenant policy - Azure DevOps Services
Content Source: docs/organizations/accounts/azure-ad-tenant-policy-restrict-org-creation.md
Product: devops
Technology: devops-accounts
GitHub Login: @chcomley
Microsoft Alias: chcomley

@las3r Thank you for the feedback.
To confirm, you're referring to step 1 under Create allow list?
Assigning this to the author for further review.

Everything in that screenshot is not visible for us, (so policies, including Create allow list).
We only see the AD info (with the disconnect button) and the "Download connected organisations" button.

 Please refer to the Prerequisites section on how to check if you have that role assigned to you.

@las3r, Please let us know if you have any further questions. You can @mention me. Thanks!


bug / sdk-agnostic buildability

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 remained the same at 73.951%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
304

Relevant Lines:
436

💛  - Coveralls


Rethink order of operations (multiplication/division)

Consider the three operators:

multiplication *
division /
function application/implicit multiplication/implicit addition (used in sin pi, 3 kg, (2)(4) or 1 1/2).

Current these are all parsed mostly left-to-right, with mostly the same precedence (and a bunch of special cases).
These calculations are correct and should continue working as they do now:

1 3/8 inches
1/2 kg
3pi/2 radians to degrees
-sin (pi/2)
5 feet 2 inches

These examples don't do what the user might expect:

1 meter / 5 seconds (parsed as (1 meter / 5) * seconds)
sin pi/2 (parsed as (sin pi)/2)

This calculation can't be parsed at all:

3sin 5 (should be equivalent to 3 * (sin 5))

It would be nice to come up with a consistent solution for all these expressions, preferably not involving whitespace.

Also note #62

Allowing sin pi/2 and sin pi / 2 feels too ambiguous imo

Number followed by the unit name should have the highest precedence, followed by *, /, and then +, - operations.

@yurivict That would not work with 3/8 inches; it would cause it to be parsed as 3/(8 inches). I think, though, that if we see 3 mm / 4 seconds, this should cause the behavior you described, i.e., check for a unit immediately before the binary operator, and if it's present, then group units more tightly than the binary operator for whatever comes after the binary operator.

The previous approach mostly works well, except it breaks for 3i/2 m, giving m^-1 instead of m because it is grouped as 3i/(2 m) by the rule checking for an Apply before the binop.
I don't think there's any way to resolve this elegantly within the parser, because if we replace i with an actual unit like inches (i.e., 3inches/2 m), then the parser grouping as (3 inches) / (2 m) is actually correct.
I don't know if this means we need to special case certain identifiers like i. Regardless we will need to modify the result formatter to parenthesize the amount in these cases.
I'm glad that the unit tests check the output of the evaluation again, otherwise I wouldn't have caught this!

Looking into this, I think there are (at least) two reasonable approaches to address this:

Make parsing/lexing whitespace sensitive. With this approach, the user can express intent using the query itself:

3i/2 m would be interpreted as (3 i / 2) m.
3inches/2 m would be interpreted as (3 inches / 2) m (length^2)
3/2 m would be interpreted as (3 / 2) m.
3 / 2m would be interpreted as 3 / (2 m).
3 / 2 m, 3 inches / 2 m and 3 i / 2 m are still ambiguous. Most people would assume that they parse to (3 / 2) m, (3 inches) / (2 m) and (3 i / 2) m respectively, but there's no way of differentiating this during parsing.

Make parsing ident sensitive. That is, differentiate whether idents are functions, unitless constants, units, etc. before parsing tokens into an AST. This is similar to @yurivict's proposal.

3 i / 2 m would be interpreted as (3 i / 2) m.
3 inches / 2 m would be interpreted as (3 inches) / (2 m) (unitless).
3 / 2 m would be interpreted as (3 / 2) m.
1 m 3 sin 5 cm could be parsed as (1 m) + (3 sin 5) cm.

I think the latter would make the most sense as it addresses the ambiguous cases, but it would slightly complicate parsing with an extra step.

Yeah I think that's a good idea and shouldn't be that hard since the environment should be available at that stage.

I think the most common/expected way to go about this is to prioritize implicit multiplication. Then you have some specific special cases when necessary

1/2 kg = 1/(2 kg)
3pi/2 radians to degrees = (3pi)/2
-sin (pi/2) = -(sin (pi/2))
1 meter / 5 seconds = (1 meter) / (5 seconds)
sin pi/2 = (sin pi)/2. You mentioned users might not expect this, but it would be consistent and it's what Google Search does. The alternative would be whitespace sensitivity, but that can be dealt with later
1 3/8 inches = special case (1 3/8) inches.
5 feet 2 inches = special case 5 feet + 2 inches
3sin 5 = special case 3 (sin(5))

To me those three special cases intuitevely feel like special cases too. 1 3/8 is a special way of writing a number, so I would not expect 1*2 3/8*2. Restricting these special cases to only allowing the basic simple syntax prevents complex/ambiguous situations where a user gets an answer that doesn't line up with their expectations


Symbol heading is off for ADS-B tracks

From a user:

It looks like all headings are off by some fixed offset between the Magnetic heading and the on-icon caret

Per https://www.dev.adsbexchange.com/version-2-api-wip/:

track: true track over ground in degrees (0-359)

Per CoT Spec:

The track element specifies direction and speed of travel. It has two required attributes: course and speed. It also has optional attributes for specifying the vertical component of the motion vector (slope) and errors associated with course, speed, and slope.
Course denotes the direction of motion and is specified as the number of degrees measured clockwise from true North. Speed is specified in meters per second as speed over ground.
There is no constraint on the precision used for these values.

https://github.com/snstac/adsbxcot/assets/91230/4f518d7e-7de5-47fa-9444-40efbe05180a
Made a video cal fire AA heading 304 degrees and arrow pointing basically 180 degrees off of 304

From AJ:

I thought i saw post about the arrow icon in atak not matching up well with the actual direction of travel. I noticed it off really had in adsb exchange.data today.

If you're also seeing this on AirTAK, it's running adsbcot, and the bug was reported with adsbxcot. It could be we're not converting from ADS-B values to CoT values correctly across the board.
Here's how adsbcot is converting ADS-B trk/track to CoT track: track.set("course", str(craft.get("trk", craft.get("track", "9999999.0"))))
Here's how adsbxcot is converting ADS-B track to CoT: track.set("course", str(craft.get("track", "9999999.0")))
From the dump1090-fa documentation: track: true track over ground in degrees (0-359)
Both say they reference 'true'

Heading is referring to the direction the aircraft is pointed at, whereas track is referring to the actual direction of the aircraft travelling across the ground.

True (Desired) Course +/- Wind Correction Angle = True Heading
True Heading +/- Magnetic Variation = Magnetic Heading
Magnetic Heading +/- Deviation = Compass Heading

Here's how dump1090-fa spits out heading
    if (mm->heading_valid && mm->heading_source == HEADING_TRUE && accept_data(&a->heading_valid, mm->source, now)) {
        a->heading = mm->heading;
    }

    if (mm->heading_valid && mm->heading_source == HEADING_MAGNETIC && accept_data(&a->heading_magnetic_valid, mm->source, now)) {
        a->heading_magnetic = mm->heading;
    }

From the CoT Spec:
			<xs:attribute name="course" use="required">
				<xs:annotation>
					<xs:documentation>Direction of motion with respect to true north. Measured in degrees.</xs:documentation>
				</xs:annotation>
				<xs:simpleType>
					<xs:restriction base="xs:decimal">
						<xs:minInclusive value="0"/>
						<xs:maxExclusive value="360"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:attribute>


"on:change" hook not fired when using keyboard shortcuts or inserting links

Hello there,
when using keyboard shortcuts like Ctrl+B or Ctrl+I, or inserting a link via the button, although the textarea content changes, the hook on:change is not being fired! How can I listen to all changes to the textarea?

This works for the button click:
editor._.hooks.set('on:change', function(){
    alert('changed');
});

Other than that is a bug.

Thank you, I'll give that a try!

Yea, I’m in the way to refactor everything. Hopefully, these user inputs can be solved in the future.

I had to rewrite the link modal handler anyway in order to add some extra functionality, so I ended up explicitly calling the on:change hook from within that callback, when a link is inserted. So this is solved for me, but of course the issue still persists for anyone using the build-in link modal.


dist branch / docker build fails

It seems the dist folder / branch is missing and thus docker cannot build. Is there any special reason i.e. licensing for that?

Yeap, I did not choose to re-use the existing build system based on a dist branch.
The current image is built locally using grunt build and then uploaded to the DockerHub.
Note that the absence of the dist folder does not prevent from building it locally either by using grunt build or grunt run-dev.
Does that answer your question?

Thank you very much!
BTW - cloudinovasi-ui looks and feels just awesome and is exactly what I was looking for :smiley:


failed to send some messages: SocketException

I could not sort out how to search issues on mobile.
Expected behavior
check and send email
Actual behavior
works once then always a socket exception error
Steps to reproduce

k9
2 circle button
wait

Environment
K-9 Mail version: 5.205
Android version: 4.4.4
Account type (IMAP, POP3, WebDAV/Exchange): tls/ssl, imap
Both imaps accounts live on DreamHost.com
I do not use android sync, nor do i autopoll folders.  I am starting to wonder if i should find a [new] vps dedicated to email. I am so done with "free" webmail

Please use the mailing list for support requests.


Create a spark application to write data to Kudu via Impala

From @cherrera2001 on January 11, 2018 15:25
In order to store data in Kudu, we will be persisting the near-term data in Cassandra (with a configurable TTL). The data will simultaneously be stored in Kudu via impala for storage in an analytics friendly database.
Copied from original issue: hashmapinc/Timeseries#116

From @vilasdeshmukh on January 18, 2018 16:15
First version of scala code is able to write time log to kudu. Needs to be enhanced for other objects such as depth log, message, well, wellbore, rig etc. Please create a project in git so that I can start checking in.


"portal quit unexpectedly" message on macOS when quitting portal via close button

Note to self:
I tried a variety of things and it seems to be related to the run_and_return (https://github.com/emilk/egui/pull/1889) feature. Interestingly it only happens when I enable persistence. I think it has something to do with persist_native_window because if I disable it, I don't get the crash anymore.
For now I can fix this by disabling run_and_return in eframe::NativeOptions.
I should probably report a bug in egui sometime.

Bug reported as https://github.com/emilk/egui/issues/2768, so this is done for me.


Use of eventemitter3 instead of events module

Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/452

Coverage remained the same at 97.991% when pulling c00fd38e89287e988c99309e52597f95fae5b896 on issue-452 into dfbb41bf35e482f72815fcc8e179063f6c81a06c on master.


beta MSI installer update for "Install ... on Windows" only

Docs Build status updates of commit 29f951c:
:clock10: Full build: the average full build time is 7 min(s) 36 sec(s), this is based on the last 657 build(s) for this repository.

Docs Build status updates of commit 29f951c:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs-ref-conceptual/install-azure-cli-windows.md
:white_check_mark:Succeeded
View (azure-cli-latest) View (azure-cli-2017-03-09-profile) View (azure-cli-2018-03-01-hybrid)

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel

Docs Build status updates of commit 413cef0:
:clock10: Full build: the average full build time is 7 min(s) 36 sec(s), this is based on the last 658 build(s) for this repository.

Docs Build status updates of commit 413cef0:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs-ref-conceptual/install-azure-cli-windows.md
:white_check_mark:Succeeded
View (azure-cli-latest) View (azure-cli-2017-03-09-profile) View (azure-cli-2018-03-01-hybrid)

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel

Docs Build status updates of commit 4fd9e7d:
:clock10: Full build: the average full build time is 7 min(s) 36 sec(s), this is based on the last 660 build(s) for this repository.

Docs Build status updates of commit 4fd9e7d:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs-ref-conceptual/install-azure-cli-windows.md
:white_check_mark:Succeeded
View (azure-cli-latest) View (azure-cli-2017-03-09-profile) View (azure-cli-2018-03-01-hybrid)

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel


forgetting or deleting a setting from database is not working

current setup
environment
"laravel/framework": "^9.0",
"anlutro/l4-settings": "^1.3"
configs
"store" => "database"
when I try to delete or forget
$s = Setting::forget($setting);
$s = setting()->forget($setting);
none of these lines are removing the settings

same issue with update when I did some change for some keys
i saw the old values
this happen when I update more then one row with array params
environment
"laravel/framework": "^8.0",
"anlutro/l4-settings": "^1.0"
configs
"store" => "database"


fix an issue of tlsconfig initialization in diag.go

the crash was something like that in release 7.2:
/pillar/zedbox/zedbox.go:241 +0x62
/pillar/pubsub/subscribe.go:132 +0x586
/pillar/cmd/diag/diag.go:437 +0x725
/pillar/zedcloud/tls.go:274 +0x2d7
github.com/lf-edge/eve/pkg/pillar/zedcloud.UpdateTLSProxyCerts(0xc0005a5800, 0x1ad653d)
/usr/lib/go/src/crypto/x509/cert_pool.go:226 +0x2d3
this crash was due to a change in PR https://github.com/lf-edge/eve/pull/2333
that added at the diag start of init tlsConfig to the session resume, but not the caroot.
this is to remove that init, and during the tryPing time to get the tlsConfig normally and add the session-resume option

@petr-zededa please review this. A different approach from your previous one. thanks.


how to do with video?

if i want to generate video, how to do with your code?

The nearestEmbed function accepts arbitrary sized tensors, so you can pass it videos rather than images.


Add some log

For example, we could log a message comment added in CommentNotificationListener, to show how work monolog in Symfony. WDYT?

Closing because the related PR was closed ... but we'll add this soon.


How can I use this on Gnome

Can I use thus on Gnome? If not presently, is there a tweak I can add to my ~/.profile or some other configuration file to make it work?

I guess I solved my own problem by forking & doing some minor edits
https://github.com/ElectricPrism/gnome-hud-menu


🎶

🎶
Originally posted by @Golffy1468 in https://github.com/MicrosoftDocs/azure-docs/issues/57728#issuecomment-648529997

Closing this thread, as it was spam thread. Please feel free to revert back if you have any specific questions on Azure Docs.


How do I switch the domain so I can use Binance.us?

I cannot seem to find a config file, can someone point out how I would go about changing this?

Pass a tld parameter to the client when you create it like this
from binance.client import Client
client = Client(tld='us')

or async client

async def main():

    # initialise the client
    client = await AsyncClient.create(tld='us')

This tld will also be passed to websocket streams that are given the client.

worked perfectly, do you think this kind of thing should go in the FAQ section? It does say that different domains are a feature, but it doesn't elaborate?

Yes, have updated the docs with examples, let me know if they are sufficient.

Looks good!