figure out what to do about errors from rounding midway through

so it's good pedagogically to round partway through, but then we can get the wrong answer in the end!
e.g. this gives us 6.399 when it should actually be 6.4 :(
x - 3.4 = ( x - 2.5)/( 1.3)
steps (approximately, to give an idea of why this happens):

x - 3.4 = x/1.3 - 2.5/1.3
x - 3.4 = x/1.3 - 1.9231 (maybe we wouldn't divide here, but how would we make that call easily?)
...
(1 - 1/1.3) x = 3.4 - 1.9231
...
0.2308x = 1.4769
...
x = 6.399

I'm not really sure what the best pedagogical solution is! having really long numbers in the middle wouldn't really be great. What would we want to show the user?

@evykassirer great project!
In this case you could multiply both sides by 1.3, but that's not a very general solution.  You probably want to use a bignum library, there are a couple written in JS.  I forgot which one I used, but it stored decimals as fractions which should get around this problem.  There's still the question of what to display to students.  Maybe you could use ellipsis when presenting decimals that continue, or, even better, a bar over the repeating part.  In this case 1.9230769230769 the 230769 repeats.

thanks Kevin! :)
oo the bar or ellipses sounds like a nice solution.
Although I think the reason we started rounding in the first place was floating point errors - that's what the bignum library is for right?
Storing decimals as fractions miiiight not work for all cases - e.g. square roots giving irrational numbers (but I think right now it keeps it as a square root and doesn't calculate it)

Although I think the reason we started rounding in the first place was floating point errors - that's what the bignum library is for right?

Right.

right now it keeps it as a square root and doesn't calculate it

Excellent!

Hello! Throwing some thoughts in: ellipsis are an elegant solution if the goal is to obtain an exact result, but sometimes when doing simple arithmetic we only care about an approximate result. As @evykassirer  mentioned in those cases it makes sense to round midway.
Maybe at that point the system could mark all subsequent nodes as "approximate", so that instead of displaying equality signs to the user we may display "≈" signs.
An extra-awesome feature (which would be particularly useful when doing physics-related arithmetic) would be to keep track of the error-margin for each step. Probably outside the scope of this project for now though.

@hmaurer I agree that sometimes it makes more sense to round and use "≈".  It would be nice both approaches were available and configurable.

@evykassirer would you be interested in a PR for integrating a bignum library?  I can make it optional.  What would be a good way to specify options?

Hello! Great discussion 🔢 I like these ideas

re "≈":
Since there's no "=" between steps (for expressions), just a list of steps, I think the way it would work is that we'd label the nodes (like @hmaurer said) as approximate, and the user of mathsteps could then choose to use "≈" in showing the steps to the user. Still not sure what the best way to design that "label" is, so that it's easy to use and understand.
Also, I guess equations would be different because  there is an equals sign. So would we want to use  ≈ as the comparator instead once we know the two sides aren't equal anymore? What if the comparator was originally <? (e.g. 2x/3 < 4 --> 0.666x approx< 4)

re bignum:
@kevinbarabash I think that would be a great idea. Interested in @aelnaiem's thoughts (he was my mentor at Socratic and has worked on this project, so he might want to have input on this).
So just to confirm, it would work like this?

if selected as an option (tbd how we'll do this),
numbers will no longer be rounded, but will be accurate because of bignum
when displayed to students, developers using mathsteps will want to add elipses after a certain precision for these bignums, if they don't want the number to be really long when it's printed (right now, there's no custom printing in mathsteps to asciimath or latex for expressions, just the built in toString and toTex from mathjs, so maybe we'd create printing functions that adds the elipses for them too?)

There aren't really any global options for mathsteps right now, but this would be nice to be one if we don't want to send a parameter through all the function calls (though perhaps it could be argued that this is the better way to do it? feels annoying to me). Are there standards for global options that can be configured in npm modules?
From a quick Google search it seems like one option is creating a file called Options.js and expose a function mathsteps.setOptions() which writes to a file, and then before rounding we could call Options.shouldRound() which would read from the file. Open to more elegant solutions though :)

@evykassirer math.js has bignum functions built into.  I'm going to use those so that we don't introduce another dependency.  As for options, I think it's probably useful to have both mathsteps.setOptions and the ability to pass options directly to simplifyExpression and solveEquation.

Oh perfect, thanks math.js!
Sounds good to me. Ahmed ( my mentor from last term @aelnaiem, who was overseeing general math stuff at Socratic ) was on vacation last week, so we haven't figured out how much say he'll have in decisions around stuff like this - so I'd like to check in with him before we merge, but I'm pretty sure it'll be fine so feel free to start working on it if you like :)
thanks so much 😸

After doing some digging it turns out math.js' bignum is arbitrary precision math and doesn't use fractions.  Thankfully, math.js also as a fraction library.  I'm going to give that a try instead.

Something else to consider, with this particular equation x - 3.4 = ( x - 2.5)/( 1.3), the rounding issue could be avoided by multiplying both sides by 1.3.  This is the approach I'd take if I was solving this by hand.  @evykassirer was this a pedagogical choice or a limitation of the current algorithm?

Yes, good point. I'd do the same as you. Definitely a limitation of algorithm.
Pretty much, we implemented equation support pretty naively and simplify both sides completely (the same way we simplify expressions) and then move things around one step at a time. I think the pedagogy for equations has a lot that can be worked on, and will probably complicate the codebase a bit. Will be fun to think about and work on in the near future :) We could maybe open and issue with this example ("improve equation pedagogy" or something) to brainstorm this stuff more

@evykassirer somewhat related to https://github.com/socraticorg/mathsteps/issues/49

#49 is related, but I see it more as a special case of equation support
I'd still like to have some general discussion where we can think about equation pedagogy and figure out what changes should be made to existing supported equations (like what Kevin was talking about) and new ones we don't support yet (e.g. #49 and #48 )

@evykassirer ah, yes. A discussion on the pedagogy of solving equations / simplifying will also touch to https://github.com/socraticorg/mathsteps/issues/45. I'll wait until an issue is created to talk about it, but as a quick question: should we be concerned about handling non-linear (e.g. quadratic) equations?

@kevinbarabash do you know if this issue is fixable before the new tree? or should we have it blocked on that

@evykassirer I think this will be easier to tackle afterwards if we want to use fraction.js.  If we're okay with marking values as approximate then we could probably add that to the current system without to much effort.  It wouldn't be an extra prop we'd have to copy whenever evaluating values.  If any operand is marked as an approximate value than the result of the operation involving that operand would also be marked as an approximate value.

I'll leave this as blocked for now then, and if the tree is taking a while or there's less work to be done elsewhere, I'll open an issue for that solution in the meantime :)
Thanks!

This is an alternative way to solve this problem:
          x + -3.4 = (x + -2.5)/1.3                                              the problem
Step  1:  x + -3.4 + -((x + -2.5)/1.3) = (x + -2.5)/1.3 + -((x + -2.5)/1.3)      subtract
Step  2:  x + -3.4 + (2.5 + -x)/1.3 = (x + -2.5)/1.3 + (2.5 + -x)/1.3            -(a-b)/c = (b-a)/c
Step  3:  (1.3*x + -(1.3*3.4) + 2.5 + -x)/1.3 = (x + -2.5)/1.3 + (2.5 + -x)/1.3  common denominator
Step  4:  (1.3*x + -1.92 + -x)/1.3 = (x + -2.5)/1.3 + (2.5 + -x)/1.3             arithmetic
Step  5:  (0.3*x + -1.92)/1.3 = (x + -2.5)/1.3 + (2.5 + -x)/1.3                  collect like terms
Step  6:  (0.3*x + -1.92)/1.3 = (x + -2.5 + 2.5 + -x)/1.3                        a/c + b/c = (a+b)/c
Step  7:  1.3*(0.3*x + -1.92) = 1.3*(x + -2.5 + 2.5 + -x)                        cross multiply
Step  8:  0.39*x + -2.496 = 1.3*(x + -2.5 + 2.5 + -x)                            a(b+c)=ab+ac
Step  9:  0.39*x + -2.496 = 1.3*(x + -2.5 + 2.5 + -x)                            regroup terms
Step 10:  0.39*x + -2.496 = 1.3*(x + 0 + -x)                                     arithmetic
Step 11:  0.39*x + -2.496 = 1.3*(x + -x)                                         x+0 = x
Step 12:  0.39*x + -2.496 = 1.3*0                                                cancel x
Step 13:  0.39*x + -2.496 + 2.496 = 1.3*0 + 2.496                                add 2.496
Step 14:  0.39*x = 1.3*0 + 2.496 + -2.496 + 2.496                                add -2.496+2.496
Step 15:  0.39*x = 1.3*0 + 2.496                                                 cancel 2.496
Step 16:  0.39*x = 2.496                                                         arithmetic
Step 17:  x = 6.4                                                                divide by 0.39

This solution performs division in step 2:
          x + -3.4 = (x + -2.5)/1.3                                     the problem
Step  1:  x + -3.4 = x/1.3 + -(2.5/1.3)                                 (a±b)/c = a/c ± b/c
Step  2:  x + -3.4 = x/1.3 + -1.923077                                  arithmetic
Step  3:  x + -3.4 + -(x/1.3) = x/1.3 + -1.923077 + -(x/1.3)            subtract x/1.3
Step  4:  (1.3*x + -(1.3*3.4) + -x)/1.3 = x/1.3 + -1.923077 + -(x/1.3)  common denominator
Step  5:  (1.3*x + -4.42 + -x)/1.3 = x/1.3 + -1.923077 + -(x/1.3)       arithmetic
Step  6:  (0.3*x + -4.42)/1.3 = x/1.3 + -1.923077 + -(x/1.3)            collect like terms
Step  7:  (0.3*x + -4.42)/1.3 = -1.923077                               cancel x/1.3
Step  8:  0.3*x + -4.42 = -2.5                                          multiply by 1.3
Step  9:  0.3*x + -4.42 + 4.42 = -2.5 + 4.42                            add 4.42
Step 10:  0.3*x + 0 = 1.92                                              arithmetic
Step 11:  0.3*x = 1.92                                                  x+0 = x
Step 12:  x = 6.4                                                       divide by 0.3


Add Seafowl to list of projects using DataFusion

Which issue does this PR close?
None
Rationale for this change
Adding a database we're building (https://seafowl.io) to the list of projects powered by DataFusion
What changes are included in this PR?
Are there any user-facing changes?
None

@mildbyte really awesome project 😎


Change Date format

Hi, just came across this and loving the project! Is there a way I can change the way the date is displayed from MM : DD to  DD :MM as us heathens in the UK use?
Thanks :)

EDit, i was being dumb, closing :)

:-)


SCRIPT438: Object doesn't support property or method 'replace': jquery.csv-0.64.js, line 220 character 7

From<EMAIL_ADDRESS>on October 10, 2012 13:14:35
What steps will reproduce the problem? Loading CSV file via the following
var csvData = $.ajax({
type: "GET",
url: "my.csv",
dataType: "text",
error: function ( xhr, errorType, exception ) {
var errorMessage = exception || xhr.statusText;
alert( "There was an error loading your data file: " + errorMessage );
},
success: function (result) {
alert(result); <= shows that CSV data loadad
//alert($.type(csvData)); <= returns 'object'
//alert("done!"+ csvData.getAllResponseHeaders())
myCSVArray = $.csv.toArray(csvData); <= breaks.
//alert( $.toJSON(myCSVArray) );
}
}); What is the expected output? What do you see instead? IE Debugger captures the following error
SCRIPT438: Object doesn't support property or method 'replace'
jquery.csv-0.64.js, line 220 character 7
Original issue: http://code.google.com/p/jquery-csv/issues/detail?id=12

From<EMAIL_ADDRESS>on October 10, 2012 14:27:46
It's failing because you're calling it on the wrong variable.
csvData, as defined in your code contains an object representing the jQuery AJAX request not the data containing the contents of the response. $.csv.toArray() works on strings, hence the requirement for the replace() method (which is a method of the string prototype).
What you really want is the 'result' variable, which contains the csv data string. You have demonstrated as much with the following statement.
alert(result); \<= shows that CSV data loadad.

Here's what your code should look like:
var csvData = $.ajax({
  type: "GET",
  url: "my.csv",
  dataType: "text",
  error: function ( xhr, errorType, exception ) {
    var errorMessage = exception || xhr.statusText;
    alert( "There was an error loading your data file: " + errorMessage );
  },
  success: function (result) {
    alert(result); \<= shows that CSV data loadad
    //alert($.type(result)); \<= returns 'string'
    //alert("done!"+ csvData.getAllResponseHeaders())
    var myCSVArray = $.csv.toArrays(csvData); \<= breaks.
    //alert( $.toJSON(myCSVArray) );
  }

});
Note: You also want to call toArrays() for multi-line CSV data since toArray() is only designed to handle a single entry.
The parser isn't broken, you were just calling the wrong variable. I don't have any good examples demonstrating jquery/AJAX usage but I plan on adding them in the near future.
I'm going to mark this as fixed but leave it open for a bit so you can report any other issues if the fix doesn't work.
Status: Fixed

From<EMAIL_ADDRESS>on October 10, 2012 14:28:19
Status: Invalid

From<EMAIL_ADDRESS>on October 10, 2012 21:08:18
Owner<EMAIL_ADDRESS>


Consider systems-ucum for JSR 363

Hi, as mentioned in https://github.com/mfornos/humanize/tree/master/humanize-ucum, would you consider using the UCUM module of https://github.com/unitsofmeasurement/uom-systems?
At the moment it is based on Java SE 8. If the minimum JVM requirements for Humanize are below that, please let us know. We created the UCUM library on the Java SE side (and it's a bit larger than some of the other modules) but it is not impossible to provide it for Java Embedded (SE7 or 6), too.

Yes, of course. Thank you for the advice.


Added Comments to switch_control_motor_parallel

Added Comments to the code.

@chaitravi-ce Remove the inline comments, it should be as follows, also remove the submodule that has been added.
Also, README is missing.

Added Readme and removed inline comments


Suspension points within synchronized

The problem is that synchronized is a common inline function and suspension points are allowed in corresponding inline lambda according to #47.
At the same time I can see no way to implement suspension having monitor being locked
class A {
    fun test(future: CompletableFuture<String>) {
        async {
            synchronized(this@A) {
                // suspension point with monitor being locked
                await(string)
            }
        }
    }
}

Possible solutions:

The obvious solution, namely, rejecting suspension points exactly for synchronized, doesn't work because it can be inlined into another inline functions.
Another solution is to determine such problems while generating coroutine bytecode and report them after (AFAIK the same idea is used for cycles detection between inline functions)

Note: if we do nothing and simply allow this, the code will break at runtime with a VerifyError or something similar.

I'd go for the second option: checking the byte code after-the-fact

The problem with bytecode checking solution is that it is very ad-hock. It addresses only the problem of synchronised stdlib function, but it does not solve the problem for all the similar utility functions that are/will be defined in user code. For example, consider the following helpful utility for working with java.util.concurrent.Lock objects:
inline fun <T> withLock(lock: Lock, block: () -> T): T {
    lock.lock()
    try {
        return block()
    } finally {
        lock.unlock()
    }
}

We want it to be inline, but it suffers from the same problem as synchronised, because it is not prepared to be suspended and then resumed in some other thread.
The functions like this are rare, though. So, a more general solution is to introduce some kind of nosuspend modifier or annotation for functional parameters of inline functions.

The functions like this are rare

In Java I'm using such functions to encapsulate StampedLock usage madness into few concise methods like that:
private <T> T readConcurrently(final Supplier<T> readSupplier) {
        T result;
        long stamp;
        for (int i = 0; i < RETRIES; i++) {
            stamp = stampedLock.tryOptimisticRead();
            result = readSupplier.get();
            if (stampedLock.validate(stamp)) {
                return result;
            }
        }
        stamp = stampedLock.readLock();
        try {
            result = readSupplier.get();
        } finally {
            stampedLock.unlockRead(stamp);
        }
        return result;
    }

private <T> T writeConcurrently(final Supplier<T> writeSupplier) {
        T result;
        long stamp = stampedLock.writeLock();
        try {
            result = writeSupplier.get();
        } finally {
            stampedLock.unlockWrite(stamp);
        }
        return result;
    }

And I'm pretty sure that such usage scenarios aren't rare.
Dr. Heinz M. Kabutz have mentioned similar usage of lambdas here http://www.javaspecialists.eu/archive/Issue215.html

@elizarov The problem with nosuspend is that it will affect a lot of code that doesn't care about coroutines at all. OTOH, detecting try-finally in the byte code is a reliable check, but nothing helps library authors to know whether adding a try-finally to an existing function breaks some clients or not.

nosuspend should not replace bytecode checks. We should check bytecode. It is not hard for us, but it will help catch bugs in the other people's code.
However, by only implementing bytecode checks we don't give our library/DSL writers any way to say "hey, I want this block to be inline, but I know that if somebody suspends there, he's going to run into a problem". The downside of nosuspend is that it becomes a "viral" modifier for inline lambda blocks, just like suspend itself and there's no easy way to work around that (this is a common problem to all effect-like language type-system mechanisms).

I've also created https://youtrack.jetbrains.com/issue/KT-17260 to track this issue and it is becoming stumbled upon by the users of Kotlin coroutines.

Closed, fixed. Suspension inside synchronized is not allowed.


spellcheck: Fixes and spell checking for specific token types

Suggested changes: https://github.com/pragtical/plugins/pull/1


forum

Hi
I'm new to pygame but I think this is for bugs here.
Unfortunately I can't find a forum for pygame.
Where can beginners ask questions about pygame or get help when they are stuck with some code?
Thank you

Great! Now people can find it.
My question is fully answered!


TypeError: Object [object Object] has no method 'Maybe'

Anyone has this error ?
full error looks like this. I am using another cloudianry package successfully though. So kinda lost here,

Hey! The issue is your version of Match, I need to patch Maybe with Optional to make it compatible with previous versions of Meteor

Yup - running into the same issue here. Thanks for the great work so far @Lepozepo.

This should be fixed in the latest version ^_^

Thanks a lot mate

Thank you, sorry I wanted to do a PR, but I was swamped :(


build/ci: fix CI blocking unused warning issues (nuttx repo part)

Summary
This patch attempts to fix CI blocking issues encountered with build 6374 of apps/pull/2300. They happened at various places, including the getprime app, which needs another patch 2301 in apps repo.
Impact
CI checks
Testing
CI checks

No need, close.


[Task]: Remove unnecessary packages from staging-central

Connector Name
other (None Listed Above)
Task Description
For testing purposes and some other reasons, we pushed SNAPSHOT versions of our connectors to staging-central.
Need to delete them

Closing since this is done


Differentiaite between flying capability and flying state

The server is able to control two facets of flying on the client:

The ability to toggle flying on and off
Whether or not the client is currently flying

From what I can tell, FlyingData only includes the latter, though it's not very clear at the moment. It should be modified to allow both to be controlled.

More than likely we'll have to add either a singular PlayerCapabilityData or multiple  manipulators for the various "capabilities". This would likely resolve #575.

Clarified and fixed in 286f1ddbb2da9b2c6085a2984e07702c9ab


Support for generated columns

Would like to use generated columns in our dbt models.
The use case is to have partitioning based on generated column from a timestamp field so end users wouldn't need to worry about the partitioning scheme (as the partition filters would propagate through when end users filter on the base timestamp field).

@ValdarT do you have a proposal for how users would opt-in to this behavior?

Ideally under column definition, e.g., through the meta field
models:

  - name: foo
    config:
      partition_by: dt
    columns:
      - name: createdAt
      - name: dt
        data_type: date
        meta:
          generation_expression: "CAST(createdAt AS DATE)"

But if better implemented as new a databricks-specific config then perhaps something like this
models:

  - name: foo
    config:
      generated_columns:
        - name: dt
          data_type: date
          expression: "CAST(createdAt AS DATE)"
      partition_by: dt

Thanks for taking to the time to flesh out the proposal.  If you need this feature soon, submitting a PR with an implementation will speed things up; otherwise know this feature is being considered for a future release.


AzureAD access to Account Storage from SPA is unclear

This article is not applicable to SPAs, which don't have Node.js runtime and, therefore, get an error when authenticating with new DefaultAzureCredential();
It's still very unclear how can an application (or a user with InteractiveBrowserCredential) authenticate and change data in blob storage, without specifically assigning the Storage Blob Data Contributor role to that particular user. It would make sense assigning the role to the Azure AD and, since the user is authenticating with that service principal, the token would allow the user to change blob data.

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

ID: 06af6c3d-fde0-d5b8-4481-270a6237fdea
Version Independent ID: a6907ecb-9963-fb83-b56b-f5883fc49ce3
Content: Tutorial - JavaScript Web app accesses storage by using managed identities - Azure App Service
Content Source: articles/app-service/tutorial-connect-app-access-storage-javascript.md
Service: app-service
Sub-service: web-apps
GitHub Login: @rwike77
Microsoft Alias: ryanwi

Thanks for the feedback! We are currently investigating and will update you shortly.

@rubenberna refer to Credential Types in @azure/identity. I will note that this doc isn't for SPA but publishing a Node app to an app service. Furthermore, InteractiveBrowserCredential goes beyond the scope. This doc is to demonstrate how a published NodeJS app can access a storage account through a managed identity.
Having said that, you would use InteractiveBrowserCredential with a SPA application; you can refer to Choosing a Credential Type. The idea would be though the user signs into your application via the configured app registration and the app itself would utilize it's associated managed identity to access the storage account. The SDK through DefaultAzureCredential should leverage the token store of the app service. If you're getting an error, please feel free to share.
I've also assigned the content author to investigate further and provide any additional updates.

Hi Ryan,
Thank you for looking into it.
When trying the DefaultAzureCredential auth type in the browser, I get the following error:

But the same goes for other types of credentials DeviceCodeCredential or AuthorizationCodeCredential:

Therefore, I was wondering if there was a way to have a sort of B2C auth between an SPA or a user in the browser, where we wouldn't have to specifically add each user in the IAM role assignments in the Azure Storage. Instead, we would just need to add the Azure AD in the roles and, by authenticating through that Azure AD, the user could drop a file in the storage.
Thanks for your help.

We are in the process of transferring to a new unified user feedback system. This issue is being triaged and added to the backlog where it will be addressed in an upcoming sprint.
#please-close


fixed logger types

Signed-off-by: Jared Byers<EMAIL_ADDRESS>Description
Fixed issue where logger.ControllerLogger() returned the wrong type expected by sigs.k8s.io/controller-runtime/pkg/log.SetLogger()
This PR fixes issue encountered in https://github.com/meshery/meshery-operator/pull/299.
Notes for Reviewers
Ensured golangci-lint and unit tests passed locally.
Signed commits

[X] Yes, I signed my commits.

YES!


Cornelius corners themself

Description
Cornelius doesn't see certain death coming and often traps themself inside their own coils.

Recommended suggestions from Discord:
Flood fill algorithm
Adversarial flood fill


cmd/compile: inefficient code generation on amd64

Probably, inefficient code generation on amd64.
Probably a slight regression in the performance of the resulting code beetween g.14.6 and master (8696ae82c9).
Preface
Examining the assembly code listing, I found out that the compiler generates sub-optimal code for some part of the code.
I will not describe the whole journey. I found a code (code from benchmark game) illustrating the problem and will use it for an example.
All source code: https://benchmarksgame-team.pages.debian.net/benchmarksgame/program/nbody-go-3.html
Let's pay attention to these lines (60, 61, 62), it's "advance" func:
dx := sys.s[i].x - sys.s[j].x
dy := sys.s[i].y - sys.s[j].y
dz := sys.s[i].z - sys.s[j].z

Let's take a look at the result of the code generation:
  main.go:60    LEAQ 0(CX)(CX*2), DI         // DI = i, BX = j
  main.go:60    LEAQ main.sys+160(SB), R8

  main.go:60    MOVSD_XMM 0(R8)(DI*8), X4    // load x +0x0
  main.go:60    LEAQ 0(BX)(BX*2), R9         // calculate offset for .x
  main.go:60    LEAQ 0(R8)(R9*8), R10        // sys.s[j] + offset
  main.go:60    SUBSD 0(R10), X4

  main.go:61    MOVSD_XMM 0x8(R8)(DI*8), X5  // load y +0x8
  main.go:61    LEAQ 0(R8)(R9*8), R10
  main.go:61    LEAQ 0x8(R10), R10
  main.go:61    SUBSD 0(R10), X5

  main.go:62    MOVSD_XMM 0x10(R8)(DI*8), X6 // load z +0x10
  main.go:62    LEAQ 0(R8)(R9*8), DI
  main.go:62    LEAQ 0x10(DI), DI
  main.go:62    SUBSD 0(DI), X6

We need one instruction to load the value of the left operand and two to calculate the address of the right one.
I rolled back to version go1.14 and found that the codegen there is different. For the same lines, the following code will be generated:
  main.go:60    0x49f77d    LEAQ 0(CX)(CX*2), DI              // DI = 0
  main.go:60    0x49f781    LEAQ main.sys+160(SB), R8         // R8 = Positions addr

  main.go:60    0x49f788    MOVSD_XMM 0(R8)(DI*8), X4         // load sys.s[i].x
  main.go:60    0x49f78e    LEAQ 0(BX)(BX*2), R9
  main.go:60    0x49f792    MOVSD_XMM 0(R8)(R9*8), X5         // load sys.s[j].x
  main.go:60    0x49f798    SUBSD X5, X4

  main.go:61    0x49f79c    MOVSD_XMM 0x8(R8)(DI*8), X5
  main.go:61    0x49f7a3    MOVSD_XMM 0x8(R8)(R9*8), X6       // dy := sys.s[i].y - sys.s[j].y
  main.go:61    0x49f7aa    SUBSD X6, X5

  main.go:62    0x49f7ae    MOVSD_XMM 0x10(R8)(DI*8), X6
  main.go:62    0x49f7b5    MOVSD_XMM 0x10(R8)(R9*8), X7      // dz := sys.s[i].z - sys.s[j].z
  main.go:62    0x49f7bc    SUBSD X7, X6

It uses one instruction to load both the left and right side of the expression.
How does it affect code performance?
It depends on how often such a code generation pattern is used in the code and in how hot the pieces of code are.
But we can write benchmark:
package main

import (
    "testing"
)

func BenchmarkT(b *testing.B) {
    offsetMomentum()
    c := 500000

    b.ResetTimer()
    for n := 0; n < b.N; n++ {
        for i := 0; i < c; i++ {
            advance(0.01)
        }
    }

    _ = energy()
}

Results:
$ bin for i in {1..20}; do go.1.14 test -bench=. >> old.txt; done
$ bin for i in {1..20}; do go.master test -bench=. >> new.txt; done
$ bin benchstat old.txt new.txt
name  old time/op  new time/op  delta
T-4   48.9ms ± 5%  54.5ms ±10%  +11.46%  (p=0.000 n=19+19)

When did the issue start?
git bisect report beetween master(8696ae82c9) and go1.14:
... skip all steps

98cb76799c3053e779c4e1b61bb50705d25dd77f is the first bad commit
commit 98cb76799c3053e779c4e1b61bb50705d25dd77f
Author: Keith Randall<EMAIL_ADDRESS>Date:   Thu Jan 30 10:17:01 2020 -0800

    cmd/compile: insert complicated x86 addressing modes as a separate pass

    Use a separate compiler pass to introduce complicated x86 addressing
    modes.  Loads in the normal architecture rules (for x86 and all other
    platforms) can have constant offsets (AuxInt values) and symbols (Aux
    values), but no more.

    The complex addressing modes (x+y, x+2*y, etc.) are introduced in a
    separate pass that combines loads with LEAQx ops.

    Organizing rewrites this way simplifies the number of rewrites
    required, as there are lots of different rule orderings that have to
    be specified to ensure these complex addressing modes are always found
    if they are possible.

    Update #36468

    Change-Id: I5b4bf7b03a1e731d6dfeb9ef19b376175f3b4b44
    Reviewed-on: https://go-review.googlesource.com/c/go/+/217097
    Run-TryBot: Keith Randall<EMAIL_ADDRESS>    TryBot-Result: Gobot Gobot<EMAIL_ADDRESS>    Reviewed-by: Josh Bleecher Snyder<EMAIL_ADDRESS>
 src/cmd/compile/internal/ssa/addressingmodes.go |   154 +
 src/cmd/compile/internal/ssa/compile.go         |     1 +
 src/cmd/compile/internal/ssa/gen/AMD64.rules    |   699 +-
 src/cmd/compile/internal/ssa/rewrite.go         |    40 +
 src/cmd/compile/internal/ssa/rewriteAMD64.go    | 10427 ++++++----------------
 test/codegen/memops.go                          |    88 +
 6 files changed, 3233 insertions(+), 8176 deletions(-)
 create mode 100644 src/cmd/compile/internal/ssa/addressingmodes.go

Issue linked with changes - https://github.com/golang/go/issues/36468
/cc @randall77

/cc @randall77

Yes, looks like we need corresponding float support. I have a CL.

With that CL you should get better code than even 1.14:
        0x000d 00013 (/Users/khr/gowork/issue40426.go:69)       LEAQ    (CX)(CX*2), DI
        0x0011 00017 (/Users/khr/gowork/issue40426.go:69)       LEAQ    "".sys+160(SB), R8
        0x0018 00024 (/Users/khr/gowork/issue40426.go:69)       MOVSD   (R8)(DI*8), X4
        0x001e 00030 (/Users/khr/gowork/issue40426.go:69)       LEAQ    (BX)(BX*2), R9
        0x0022 00034 (/Users/khr/gowork/issue40426.go:69)       SUBSD   (R8)(R9*8), X4
        0x0028 00040 (/Users/khr/gowork/issue40426.go:70)       MOVSD   8(R8)(DI*8), X5
        0x002f 00047 (/Users/khr/gowork/issue40426.go:70)       SUBSD   8(R8)(R9*8), X5
        0x0036 00054 (/Users/khr/gowork/issue40426.go:71)       MOVSD   16(R8)(DI*8), X6
        0x003d 00061 (/Users/khr/gowork/issue40426.go:71)       SUBSD   16(R8)(R9*8), X6

Not sure if it would be faster. Please try it and let me know.

Yes, that CL improve stats:
$ benchstat regression.txt fix.txt
name  old time/op  new time/op  delta
T-4   54.5ms ±10%  47.7ms ± 0%  -12.44%  (p=0.000 n=19+20)`

And compare with go1.14:
$ benchstat go.14.txt fix.txt
name  old time/op  new time/op  delta
T-4   48.9ms ± 5%  47.7ms ± 0%  -2.41%  (p=0.000 n=19+20)


Adding pages for Add Device and Add Device Type

Closes #121
Closes #122
Here are the pages for adding a new device and a device type. You can see the JSON and files uploaded printed out to the console when the add device/type is clicked.
https://user-images.githubusercontent.com/58532471/155863863-72285d3a-e9bd-4f12-a3b3-bd00eb1767ec.mp4
https://user-images.githubusercontent.com/58532471/155863866-1c68a5f2-16bb-40f5-8b48-8aa10564d236.mp4

This looks really clean btw. Nice work!

Thank you! It was fun being able to dive into React. I definitely learned quite a bit about it here


Update smallweb.txt: Add blog.bmh.io, matthewaerose.github.io, reasonstobecheerful.world

I'd like to add my personal blog at https://blog.bmh.io as well as matthewaerose.github.io and reasonstobecheerful.world to satisfy the +2 rule from the guidelines.
Thanks for reviewing!

+2 more as per guidlines

+2 more as per guidelines

@vprelovac I've added a couple others that I didn't already see on the list. Thanks for taking a look!


https://www.buddybuild.com/pricing/#starter

Where is it on https://github.com/ligurio/Continuous-Integration-services/blob/master/continuous-integration-services-list.md ?

Feel free to add other CI services o self-hosted tools to the table and send a pull request. But don't submit GitHub issues looks like a spam.


Dev merge11ty

Merge 11ty

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.kevinslin seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.


Open problems page in problem plugin with Chrome extension when in demo mode

This is an Enhancement
Description
When in demo mode and connected to the Chrome extension, open Dynatrace problems page in problem plugin.

Won't merge branch into dev until we have added demo mode support.


Add a model-name dependence for some cloud fields

This update uses the model name to correctly assign handles for the ceiling (exp-2) and cloud-base height fields.

Hi @cshartsough — The main rationale for this PR is the ceiling-exp2 field.  A previous PR changed the handle for this field to work with RRFS output, but the same PR inadvertently caused HRRR graphics to stop for this field.  With this update, hopefully we will see the ceiling-exp2 plots from both the RRFS and HRRR (each using different handles for the same field).

That's good, I think it should do the trick nicely.

I am going to let this run in a RRFS retro overnight, just as a quick test.  I will follow-up once I have some successful plots.

@cshartsough @Brian-Jamison — My tests have worked, so I think this PR is ready for merging.


Fix the license of y-chan.SHAREVOX 0.2.1

[x] Have you signed the Contributor License Agreement?
[x] Have you checked that there aren't other open pull requests for the same manifest update/change?
[x] This PR only modifies one (1) manifest
[x] Have you validated your manifest locally with winget validate --manifest <path>?
[ ] Have you tested your manifest locally with winget install --manifest <path>?
[x] Does your manifest conform to the 1.5 schema?

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

Almost same change as #133664.
SHAREVOX is a proprietary software as VOICEVOX is.
CC: @y-chan (the publisher of SHAREVOX)
CC: @Exorcism0666 (#133054)
Microsoft Reviewers: Open in CodeFlow

@wingetbot waivers Add Validation-Executable-Error

Changed LicenseUrl to https://www.sharevox.app/terms for the same reason as https://github.com/microsoft/winget-pkgs/pull/133789#discussion_r1451368368.
aa318a2 (#133790)
@y-chan OK?

/AzurePipelines run


[lang] Add Ruby

Current Behavior

This project doesn't have Ruby language, not even in the pull request I find something relates fs!
Desired Behavior

Ruby language must be considered inside the lang folder.
Implementation

The way of implementation listed on README.md, section consisting contribution guidelines.

Contributor Guides and Resources

🛠 Reference for building
📚 Instructions for contributing to documentation
:exclamation: Code of Conduct
🙋🏾🙋🏼 Questions: Discord discussion server

Can I work on this issue

@chandan0000: Yes, sure! :heavy_check_mark:


[AutoPR cognitiveservices/resource-manager] Refactory CognitiveServicesAccount model specification.

Created to sync https://github.com/Azure/azure-rest-api-specs/pull/7415

This PR has been merged into https://github.com/Azure/azure-sdk-for-go/pull/6101


Enhancement: Keyboard shortcut to open and close habit tracker UI

I find myself tracking a lot of habits as I go through my day using this awesome plugin!  That said, it's annoying to have to click it open and closed constantly to check what has been done and what needs to be completed.  It would be super handy to have a keyboard shortcut to open and close the UI, so one doesn't have to constantly reach for the mouse.

With the newer versions of LogSeq, it looks like a keyboard shortcut to open and close the Tracker UI should be achievable.

Hey, thanks for letting me know. I'm getting some errors with the latest version of plugin API, it seems it is not the only change.
I hope, in a few days time, this feature will be implemented.


Feature request: use idiomatic gRPC endpoint URLs

Currently, when defining:
package com.example.ns {
  @outputPackage("com.example.grpcns")
  object protocol {
    // ...
    @service(Protobuf) {
    trait MyService[F[_]] {
      def myMethod(request: MyRequest): F[MyResponse]
    }
  }
}

the idlGen command produces idiomatic gRPC code:
// ...
package com.example.grpcns;
// ...
service MyService {
  rpc MyMethod (MyRequest) returns (MyResponse);
}

When using protoc to generate client code for this, the client calls com.example.grpcns.MyService/MyMethod as expected:

with namespace
with UpperCamelCase method name

But the Mu server will only accept MyService/myMethod calls:

without a namespace
with lowerCamelCase method name

This seems to be non-idiomatic gRPC usage and breaks compatibility with IDL-generated clients.
Suggestions for the served gRPC endpoint URLs:

Use the @outputPackage annotation to define the namespace.
Capitalize the first letter of the method name.

Example project:

https://github.com/sander/rpctest/tree/f45616a720091d88c06d0a5be00f5a2f4306f7aa doesn’t work, since the Go client tried to reach a prefixed and UpperCamelCase method
https://github.com/sander/rpctest/tree/e018d5e5d1812b107d976aa7bbfb6617c223c761 does work, but now there is no namespace support and I needed to write UpperCamelCase in Scala which seems un-idiomatic

I faced the same problem during implementing grpc health checks (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md) for our service deployed in Kubernetes. According to the doc above we need to specify concrete namespace grpc.health.v1 of our implementation of the health check service. But, I don’t know how to do it. I tried to do something like this:
package grpc.health.v1

import higherkindness.mu.rpc.protocol._

@service(Protobuf)
trait Health[F[_]] {
  def Check(request: ReqHealthCheck): F[RespHealthCheck]
}

But it didn’t help me. I get the same error: grpc-message: Method not found: grpc.health.v1.Health/Check
@sander  Did you solve the problem of specifying namespace somehow?

@Chicker not yet. @fedefernandez said in Gitter chat that he’d try to prioritize this issue.
Haven’t tried, but maybe this works as a workaround?
trait `grpc.health.v1.Health`[F[_]] {

Haven’t tried, but maybe this works as a workaround?
trait `grpc.health.v1.Health`[F[_]] {

@sander Thanks for the good suggestion! But it doesn't work, since  the dot . is replaced to the interpolation of the u+002e Unicode character. As a result, we get something like this grpc$u002Ehealth$u002Ev1$u002EHealth as our serviceName.

Thanks for the submission @sander. I'm currently working in this, I'll test it with your sample project.

@sander we have added a couple of parameters to the @service annotation for controlling the service prefix and method name case. I've created a PR in your demo project to show how to configure.
We're planning to add a new setting key to the idl plugin for controlling that when converting from avdl or proto to scala and update the docs. Once these two tasks are done, we'll release a new version.

Thanks @fedefernandez! What will the new setting key be for exactly?

I'm planning to add a flag that when active, it'll take the namespace defined in the avdl file and put it in the annotation namespace. It'll also set the method name style to capitalize. Still need a name though, ideas are welcomed 😉

@fedefernandez Is this still blocked on https://github.com/higherkindness/skeuomorph/issues/85 ? Is there a snapshot version that can be used already?

@sander sadly is still blocked. Couldn't find any spare time for addressing that.

@sander thanks again for your feedback. This issue has been accomplished in #622 and released with the 0.18.4 version (it'll reach maven central soon)
Now you can set the idlGenIdiomaticEndpoints setting key to true for generating scala service definitions that will append the namespace to the operations and their names will be capitalized.


Update link to IoT Edge docs in readme

Task name: AzureIoTEdgeV2
Description: Fixed broken link in the task readme
Documentation changes required: N
Added unit tests: N
Attached related issue: N
Checklist:

[ ] Task version was bumped - please check instruction how to do it
[ ] Checked that applied changes work as expected

@marianan @tameraw Do either of you have write access to this repository to merge this pull request?

@Jyotsna @.***> - can you or someone on your team help merge this change? Tamer and I have no write access.
Sent from Outlookhttp://aka.ms/weboutlook

From: Kelly Gremban @.>
Sent: Thursday, August 19, 2021 10:51 AM
To: microsoft/azure-pipelines-tasks @.>
Cc: Mariana Mihova @.>; Mention @.>
Subject: Re: [microsoft/azure-pipelines-tasks] Update link to IoT Edge docs in readme (#15166)
@mariananhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmarianan&data=04|01|Mariana.Mihova%40microsoft.com|a215b3360634421ba0fb08d9633a013a|72f988bf86f141af91ab2d7cd011db47|1|0|637649923071043636|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|1000&sdata=YbZamID4B%2B8mFTxHcJWv2LVKHDfVUZv%2B9rRl1thWOhE%3D&reserved=0 @tamerawhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ftameraw&data=04|01|Mariana.Mihova%40microsoft.com|a215b3360634421ba0fb08d9633a013a|72f988bf86f141af91ab2d7cd011db47|1|0|637649923071053590|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|1000&sdata=JmkQz2ukLZlAhMuNH1NTWuNNQ8sgNas3GYIwSA2zygo%3D&reserved=0 Do either of you have write access to this repository to merge this pull request?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmicrosoft%2Fazure-pipelines-tasks%2Fpull%2F15166%23issuecomment-902119418&data=04|01|Mariana.Mihova%40microsoft.com|a215b3360634421ba0fb08d9633a013a|72f988bf86f141af91ab2d7cd011db47|1|0|637649923071053590|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|1000&sdata=%2FapNYuIDlpp%2FZaaIfRL6IvewVigvd3cFyBQhDIUvJns%3D&reserved=0, or unsubscribehttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FACNKOIOOGS2QIQFC5LDW6ADT5VAC5ANCNFSM5CKIFB7Q&data=04|01|Mariana.Mihova%40microsoft.com|a215b3360634421ba0fb08d9633a013a|72f988bf86f141af91ab2d7cd011db47|1|0|637649923071063551|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|1000&sdata=UcrD87ljT%2FYNmhPhhPHktUpCQeJPkv6MnzxBVvHj6hw%3D&reserved=0.
Triage notifications on the go with GitHub Mobile for iOShttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fapps.apple.com%2Fapp%2Fapple-store%2Fid1477376905%3Fct%3Dnotification-email%26mt%3D8%26pt%3D524675&data=04|01|Mariana.Mihova%40microsoft.com|a215b3360634421ba0fb08d9633a013a|72f988bf86f141af91ab2d7cd011db47|1|0|637649923071063551|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|1000&sdata=b7DAv3C%2FB%2BzY1PZWY%2B%2BTz9gCgL5CW3vfE0pyYdbgX8Q%3D&reserved=0 or Androidhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fplay.google.com%2Fstore%2Fapps%2Fdetails%3Fid%3Dcom.github.android%26utm_campaign%3Dnotification-email&data=04|01|Mariana.Mihova%40microsoft.com|a215b3360634421ba0fb08d9633a013a|72f988bf86f141af91ab2d7cd011db47|1|0|637649923071073504|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|1000&sdata=pp1Tm1Q0XC9OyULUE3wFiisamMkm64xMZNIZlyA3UWs%3D&reserved=0.

@Josh-01 This is my first PR in this repo. Is there some step I'm missing to get the build pipelines to run? Or since this is just a readme file change, can it be merged without all the checks? Thank you.

@kgremban All required checks need to pass before we can complete the merge.

@kgremban All required checks need to pass before we can complete the merge.

@rajnish-byte thanks for following up. The pipelines seem stuck, could you please retrigger them? This is a readme change so generally low risk. We would like to get it in sooner rather than later as users are getting confused because of the wrong links. Thanks for helping us with this.

@kgremban I guess there is a conflict, can you please check once. To be specific I see the changes added here at line 9 is already there in master.

@rajnish-byte I'm not seeing a merge conflict. I did just update the branch against master.
I did not make a change to line 9. I see this happen often on the last line of files; I believe it's if one editor handles end-of-file characters differently than another. The only change is to the URL in line 5, which is currently broken the way it is.
As Mariana mentioned, the pipelines aren't running. This pull request has been open for over a month and they've never completed, either successfully or unsuccessfully. I'm not sure if there's a step I've missed, or if it's because there are no code changes. If you would rather open your own pull request and just update the documentation URL, that would be fine with me.

Created new PR with these changes https://github.com/microsoft/azure-pipelines-tasks/pull/15354
@marianan Please approve this new PR.


nixos/emacs: change emacsclient behaviour, add alternativeEditor option

Description of changes

Originally, this weird emacseditor script created a GUI client, when no arguments were provided, or a TUI one, when there was at least one arg (like $EDITOR /tmp/crontab-2183912). Not so convenient, when you're expecting the consistent behaviour. My proposition: replace this script and EDITOR's value with emacsclient -ca '${alternativeEditor}', so that, if cfg.package is set to a GUI-capable edition of Emacs, the command always started a graphical window.
cfg.alternativeEditor is described in the patch itself.

Extra question: is the patch worth a mention in the changelog?

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
24.11 Release Notes (or backporting 23.11 and 24.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

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

this weird emacseditor script created a GUI client, when no arguments were provided, or a TUI one, when there was at least one arg (like $EDITOR /tmp/crontab-2183912)

It seems it is necessary to not have any existing GUI frame to reproduce your second case.  If so, one workaround for you is to keep at least one GUI frame always open.

one workaround for you is to keep at least one GUI frame always open.

Weird workaround imho. I don't want Emacs to be TUI, otherwise i'd choose emacs-nox as emacs.package.
Forgot to clarify, another reason why I wanna remove that script is to change the logic behind the package behaviour:

the behaviour will be consistent: if emacs.package a GUI edition (and it is one by default), a graphical window will always appear
if a user desires to use emacs strictly in the terminal, they better set emacs.package = pkgs.emacs-nox
otherwise they can always set EDITOR and VISUAL to the desired values explicitly

Weird workaround imho.

Not so weird actually.  The first thing of many Emacs users after their system boots is to open an Emacs frame.  I am one of them.  That's the reason why I cannot reproduce your TUI issue initially.  Only after some thoughs, I find it requires no existence of GUI frames.

if a user desires to use emacs strictly in the terminal, they better set emacs.package = pkgs.emacs-nox

One disadvantage is that cache is not provided for emacs-nox.pkgs by cache.nixos.org.  So even if a user only use TUI Emacs, he may still choose pkgs.emacs.

My proposal is to add an option to set flags passed to emacsclient.

Does this proposal satisfy you?
You never how an Emacs users uses Emacs.

The first thing of many Emacs users after their system boots is to open an Emacs frame.

Okay, I get it now. If i'm using vterm in Emacs instead of a separate terminal, i'd also expect the editor window to be reused (like, a new tab or buffer). That's understandable.

options to set flags

Yup, that also sounds fair.

Okay, while i was typing, i decided i'll reduce the PR to only having ALTERNATIVE_EDITOR toggleable

Ight, I give up. Apologies for bothering yall


[v5] Problem with programmatically ran collapse with data-bs-parent

I have a collapse with 2 buttons showing 2 different divs. I made it accordion-like with data-bs-parent. The problem occured when I needed to expand one collapse from a JavaScript. It seems to "half-ignore" (I'm not sure how to call it) the data-bs-parent parameter and now it's possible to expand both divs at the same time. It's hard to explain, but it will be clear when you reproduce it.
How to reproduce:

Use my code

    <button class="btn btn-primary" type="button" data-bs-toggle="collapse" data-bs-target="#collapseExample1" aria-expanded="false" aria-controls="collapseExample1">
      Button 1
    </button>
    <button class="btn btn-primary" type="button" data-bs-toggle="collapse" data-bs-target="#collapseExample2" aria-expanded="false" aria-controls="collapseExample2">
      Button 2
    </button>

      Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident.

      Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident.

run function

Click "run function" -> "Button 2" -> Button 1"

The second problem is that show method works like a toggle. It should just expand when div is collapsed, but it also collapsing when div is expanded.

Bug reports must include a live demo of the issue. Per our contributing guidelines, please create a reduced test case via CodePen or JS Bin and report back with your link, Bootstrap version, and specific browser and Operating System details.
This is an automated reply

Closing without a live demo.

Closing without a live demo.


⚠ Samsung has degraded performance

In fdb8b88, Samsung (https://samsung.com) experienced degraded performance:

HTTP code: 200
Response time: 1850 ms

Resolved: Samsung performance has improved in 8253dc4.


How can I use Mirror to communicate between two separate Unity projects

I have two separate Unity projects,
one running on Android phones and one running on Android-based AR glasses；
How can I use Mirror to communicate between two separate Unity projects？

It is possible, however you are prone to some gotchas. You will have to ensure your network code matches in both versions, otherwise Mirror will not operate correctly.

It is possible, however you are prone to some gotchas. You will have to ensure your network code matches in both versions, otherwise Mirror will not operate correctly.

I imported mirrors into two different programs, one as a server and one as a client, but they didn't even connect to each other

As @SoftwareGuy said generally this shouldn't be an issue, the only thing you need to make sure all the network related code is the same in both projects as mirror sends "internal" ids over the network which the other side may have no idea about if the code is different
You might be better off stopping by the Mirror discord for help questions, the issue tracker is only really for keeping track of, well, issues (and bugs and feature requests)

As @SoftwareGuy said generally this shouldn't be an issue, the only thing you need to make sure all the network related code is the same in both projects as mirror sends "internal" ids over the network which the other side may have no idea about if the code is different
You might be better off stopping by the Mirror discord for help questions, the issue tracker is only really for keeping track of, well, issues (and bugs and feature requests)

OK, Thank You; 😄


add: argument interpolation default

As discussed, it might be useful to figure out:

how to handle requests for an argument that doesn't exist
providing default values for an argument if it doesn't exist

Wow, bash sure has a lot of parameter expansion options:
https://www.gnu.org/software/bash/manual/html_node/Shell-Parameter-Expansion.html
I kind like the approach pdm took with just a colon:
https://pdm-project.org/latest/usage/scripts/#arguments-placeholder
I guess I'll copy the bash syntax ${1:-default} for consistency since I already copied their $1 and $@ syntax (although I changed the semantics of $@ a bit).


import package can not get the right result

Version
v2.4.0
Reproduction link
https://github.com/Xzillion/nuxt-import-bug
Steps to reproduce
1.download the GitHub repo;
2.open the file "pages/index.vue";
3.in the created function, i import a function "isDate" from date-fns , i want to verifya date Object;
4.run dev, and open browser;
5.you can see, the browser console print :
true "custom function"
true "import date-fns util function"
but the server console print:
true "custom function"
false "import date-fns util function"
so crazy!!
What is expected ?
import package can not get the right result
What is actually happening?
when i use a function from import package, i want to get the right result
Additional comments?
thank you!

This bug report is available on Nuxt community (#c9104)

Just a guess but it might be related to https://github.com/nuxt/nuxt.js/pull/4508


Add convenience methods LedgerRpcProvide trait

For example:

get_X (by identifier), get_X_by_hash, get_X_by_number
get_X_range (by identifier), get_X_by_hash, get_X_by_number

Full list to be specified.

Resolved by #213


Alexanderc360/issue747

🔗 Issue
https://github.com/rubyforgood/pet-rescue/issues/747
✍ Description
Added filters for pet age and breed
📷 Screenshots/Demos

@all-contributors
please add @alexanderc360 for code

@alexanderc360 I have some time and I am happy to assist with the code review comments from @mononoken if you want me to.

@sevilla I appreciate the offer, however it's actually on my list of things to do this weekend. Thanks!

@alexanderc360 FYI some tests failed :)

@mononoken I made the changes you requested. Sorry for closing the ticket earlier, that was a mistake.


fix: strip /@fs prefix correctly on Windows

Windows absolute paths look like /@fs/C:/.. - when stripping the fs prefix, we need to remove the additional slash after the fs

Please don't delete this checklist! Before submitting the PR, please make sure you do the following:

[ ] It's really useful if your PR references an issue where it is discussed ahead of time. In many cases, features are absent for a reason. For large changes, please create an RFC: https://github.com/sveltejs/rfcs
[x] This message body should clearly illustrate what problems it solves.
[x] Ideally, include a test that fails without this PR but passes with it.

Tests

[x] Run the tests with pnpm test and lint the project with pnpm lint and pnpm check

Changesets

[x] If your PR makes a change that should be noted in one or more packages' changelogs, generate a changeset by running pnpm changeset and following the prompts. Changesets that add features should be minor and those that fix bugs should be patch. Please prefix changeset messages with feat:, fix:, or chore:.

Edits

[x] Please ensure that 'Allow edits from maintainers' is checked. PRs without this option may be closed.

Can we mention in the title and in the changes etc that this is for read()? (I'm assuming it doesn't also affect anything else.) And is this only for dev mode?


Expressions: Optimization for string expressions on the __time column.

WIP: Still need to run benchmarks

@gianm can you color this with a couple of use cases that highlight the need for optimization?

@drcrallen,

@gianm can you color this with a couple of use cases that highlight the need for optimization?

It's an expression oriented equivalent of the optimization that SingleScanTimeDimSelector does for extractionFns on the __time column. It helps because it takes advantage of the fact that the time column tends to have a lot of runs, and with the optimization, we only compute the function once per distinct value rather than computing it repeatedly.

I think it should be precomputed for column and stored along with the column, if such optimization makes sense for a column. Along with min, max, average for columns, and other types of O(1) information that could be useful during querying. It should be accounted here: https://github.com/druid-io/druid/projects/1

@gianm we should finish this off

It turns out this patch is not necessary, since #5048 accomplished the same goal. String expressions on the __time column work by first building a base primitive selector, and #5048 optimizes those. That optimization ends up being inherited by the dimension selector.
#6599 extends the optimization to apply to Long columns that are not __time.


ruby discovery: cache name map

During tests, we previously open and parse YAML file for name mapping
every time.
This commit caches the name map.
Ruby discovery testing time reduces from ~13 seconds on my machine
to ~2 seconds.

Codecov Report

Merging #1505 into master will decrease coverage by <.01%.
The diff coverage is 64%.

@@             Coverage Diff              @@
##             master    #1505      +/-   ##
============================================
- Coverage     86.91%   86.91%   -0.01%
  Complexity     4098     4098
============================================
  Files           404      404
  Lines         16479    16488       +9
  Branches       1749     1753       +4
============================================
+ Hits          14323    14330       +7
  Misses         1676     1676
- Partials        480      482       +2

Impacted Files
Coverage Δ
Complexity Δ

...odegen/discovery/MainDiscoveryProviderFactory.java
88.88% <ø> (ø)
6 <0> (ø)
:arrow_down:

...gle/api/codegen/DiscoveryFragmentGeneratorApi.java
0% <0%> (ø)
0 <0> (ø)
:arrow_down:

...n/discovery/config/ruby/RubyTypeNameGenerator.java
73.68% <66.66%> (+1.27%)
9 <2> (ø)
:arrow_down:

Continue to review full report at Codecov.

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

Thanks for doing this!


[CSGO] Bomb effect request

Hello
Can you make a profile just exactly like https://youtu.be/qkxvznjeX2U
it will be so helpful for me in CS:GO because Im deaf in real life so can see bomb counting down. Really hope you make it for me and my deaf friends pls
Thank you

Sorry Im new to this website, a bit confusing for me lol. Forgot to add keyboard name, mine is k70 LUX if that helps

I can probably add that, do you want the full implementation? The F-key timer, and defuse kit ranges? There's a small issue with the ranges, though, they will be slightly inaccurate because the game reports inaccurate time on purpose.

Yes please. So i will still know when to run away from bomb explosive.
Little inaccurate is still good for me though! :)
On Monday, 26 September 2016, Anton Pupkov<EMAIL_ADDRESS>wrote:

I can probably add that, do you want the full implementation? The F-key
timer, and defuse kit ranges? There's a small issue with the ranges,
though, they will be slightly inaccurate because the game reports
inaccurate time on purpose.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/antonpup/Aurora/issues/157#issuecomment-249432566,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AVYyWtNhx58jZhAu1POuumBTxWsjg8jVks5qtqb4gaJpZM4KF26G
.

bump

You don't need to bump. It will be in the next major version.

Oh sorry. Awesome thanks heaps! :)
On Thursday, 29 September 2016, Anton Pupkov<EMAIL_ADDRESS>wrote:

You don't need to bump. It will be in the next major version.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/antonpup/Aurora/issues/157#issuecomment-250324526,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AVYyWjHC6eu13qsb7034E5S9GNdEAWNDks5quu9YgaJpZM4KF26G
.

I wanted to include this in 0.6.0 but I have forgotten. I'll look into it later. My apologies.

I would like to touch up on this, the bomb% on the top will infact prevent you from playing on a VAC secured server, there is an app on android and ios, that allows you to see in detail stats on your LIVE csgo match you are playing right now, stuff like your map your kills/deaths health bullets armor etc, users got a VAC triggered and where kick'd from the match because of the live 40 seconds countdown that the app had, they removed the countdown and it was fixed

Yeah there's no indicator of how close the bomb is to exploding beyond the beeping and for good reason, while it is possible to make such timers, Valve and VAC consider it a cheat, and it will likely get you banned.


build: push gitpod and codespaces images/packages during release

The Issue
We've had the gitpod image and codespaces package pushes as separate tasks for some time, and they weren't always done.
How This PR Solves The Issue

Push gitpod image after release build
Build gitpod image for both arm64 and amd64 so it can be used in other contexts (like macOS with vscode and devcontainers)
Push codespaces/vscode package after release build
If building on ddev-test, push images to ddevhq Docker org so things are safer
Rename containers_shared.mak to containers_shared.mk so that it's recognized as a Makefile and tabs get used
Adds a latest tag for Docker images for stable releases. We don't need to use these, and probably shouldn't, but this will remove maintenance of ddev-gitpod-launcher, and may help with how things work for drupalpod eventually. There is a place for latest

Manual Testing Instructions

Build a release with normal release process on ddev-test

[ ] TODO: Unfortunately the FROM we're using, gitpod/workspace-base is built only for amd64, so we're kind of fooling ourselves building a multi-arch image for it. I guess we have to build our own copy of the gitpod/workspace-base in multi-arch.

OK, ready for your review. That turned out to be a lot more than a Sunday afternoon excursion :)

Hard to believe I could get so lost and destabilize so many things in an afternoon journey, but I think it's going now, https://github.com/ddev-test/ddev/releases/tag/v1.23.5-aaa-testgitpod.22 and https://github.com/ddev-test/ddev/actions/runs/11357139682
Please take another look and we'll see where we get.


Add kratos-endpoint-info relation

This PR:

adds kratos-endpoint-info relation interface that provides kratos admin and public endpoints to a related charm
adds a workflow to automatically publish the library when changed
removes charm publishing on pull request - this is only needed on push
adds typing where missing
updates copyright year
updates readme

TODO:

[x] add unit tests
[ ] open a PR for the spec in charm relation interfaces

Please keep PR's focused. This one changes many independent aspects of the project.

Please keep PR's focused. This one changes many independent aspects of the project.

Ok, sorry - I thought the changes are small enough to bundle them in one PR.
I reverted the unrelated changes, though I'd like to keep hydra lib update (due to linting issues) and remove charm publishing on pull request (to prevent from having too many revisions on charmhub). I hope that's fine.


Support generic cr in mesh

(If this PR fixes a github issue, please add Fixes #<xyz>.)
Fixes #
(or if this PR is one task of a github issue, please add Master Issue: #<xyz> to link to the master issue.)
Master Issue: #
Motivation
Explain here the context, and why you're making that change. What is the problem you're trying to solve.
Modifications
Describe the modifications you've done.
Verifying this change

[x] Make sure that the change passes the CI checks.

(Please pick either of the following options)
This change is a trivial rework / code cleanup without any test coverage.
(or)
This change is already covered by existing tests, such as (please describe tests).
(or)
This change added tests and can be verified as follows:
(example:)

Added integration tests for end-to-end deployment with large payloads (10MB)
Extended integration test for recovery after broker failure

Documentation
Check the box below.
Need to update docs?

[x] doc-required
(If you need help on updating docs, create a doc issue)

[ ] no-need-doc
(Please explain why)

[ ] doc
(If this PR contains doc changes)

Just one question on this. Also, is there a ticket number associated with this change?

not yet, I will create one to track


OK dispatched from different host than alert was

Hi,
I have the simple cpu_alert (with added html email setting) set and when I stress one server, I get critical alert correctly but at the same time I also receive OK message from another host. If I keep stressing one server enough, I get loop of  CRITICAL and OK messages originating from same 2 different hosts.
Here's the tick:
stream
  .from().measurement('cpu')
    .where(lambda: "cpu" == 'cpu-total')
  .alert()
    .id('{{ index .Tags "host" }}')
    .message('{{ .TaskName }} on {{ .ID }} is {{ .Level }}')
    .details('''

{{ .ID }}

CPU idle is {{ index .Fields "usage_idle" }}%
''')
    .warn(lambda: "usage_idle" < 30)
    .crit(lambda: "usage_idle" < 10)
    .email()

Alerts are computed by each group in the data. Since you are not grouping the data Kapacitor has defaulted to assuming all data is in the same group.
Since you have a tag host then use this as the groupBy dimension and then alerts will be computed by host.
stream
  .from().measurement('cpu')
    .where(lambda: "cpu" == 'cpu-total')
    // Group the data by host tag.
    .groupBy('host')
  .alert()
    .id('{{ index .Tags "host" }}')
    .message('{{ .TaskName }} on {{ .ID }} is {{ .Level }}')
    .details('''

{{ .ID }}

CPU idle is {{ index .Fields "usage_idle" }}%
''')
    .warn(lambda: "usage_idle" < 30)
    .crit(lambda: "usage_idle" < 10)
    .email()

I thought something like that was missing, but I relied that kapacitor would keep state of alerts itself.
Thank you!


Feedback requested confirmation is inaccessible to screen readers

After the user clicks the 'Request Feedback' button on the share plan page, the button is disabled and a message displays next to it stating that 'feedback has been requested'. A user using a screen reader does not get notified of this message.
Consider adding a screen reader only alert to the notifications section that informs them that feedback has been requested.
This feedback was provided from the UCOP electronic accessibility review. It was defined as having 'Medium' priority.

closing this one as I believe @johnpinto1 changes in #1743 will correct the problem since it will display the message at the top in the standard notification section


Is possible to include chatter in my template ?

Hello.
I want chat on the top of my main page. Is it possible ?

Hello! To clarify, you want your main page to be able to do its thing and then have a chat module somewhere in the corner like Facebook does?

Yes, but I want it in the middle.

It would definitely be possible! Django Chatter has a context processor that you can use to load the chatrooms the logged in user belongs to on every page load. You can use this to display all chatrooms that a user belongs to inside a <div> on your main page. I would suggest taking a look at the templates/ and the static/ folders in this repo to figure out how the whole chat functionality works. In essence, you have to connect to a WebSocket in your main page using the relevant chatroom's ID. I do it using (chat-window.js)[https://github.com/dibs-devs/chatter/blob/master/django_chatter/static/js/chat-window.js]. If you can do this on your template, I don't see why you can't use the chat functionalities.
Of course, to be able to do all that you'd need to have intermediate Django experience. But the tools are there. You just have to incorporate the right elements needed by the JS source I mentioned above for your chat functionality to work.

Thank you very much for answer. This project will be big success !

Thanks! Let me know if you end up implementing this and want help.


Storyshots Jest example configuration throws error on Import

Went through the details on https://github.com/storybooks/storybook/tree/master/packages/storyshots and followed it through.
No love with the configuration it details.
`Configure your app for Jest
Usually, you might already have completed this step. If not, here are some resources for you.
If you are using Create React App, it's already configured for Jest. You just need to create a filename with the extension .test.js.
Otherwise check this Egghead lesson.
Configure Storyshots
Create a new test file with the name Storyshots.test.js. (Or whatever the name you prefer). Then add following content to it:
import initStoryshots from 'storyshots';
initStoryshots();
That's all.
Now run your Jest test command. (Usually, npm test.) Then you can see all of your stories are converted as Jest snapshot tests.`
FAIL  .\Storyshots.test.js
● Test suite failed to run
evalmachine.<anonymous>:1
(function (exports, require, module, __filename, __dirname) { import { configure } from '@kadira/storybook';
                                                              ^^^^^^
SyntaxError: Unexpected token import

  at createScript (vm.js:56:10)
  at Object.runInThisContext (vm.js:97:10)
  at runWithRequireContext (node_modules\storyshots\dist\require_context.js:103:37)
  at testStorySnapshots (node_modules\storyshots\dist\index.js:72:35)
  at Object.<anonymous> (Storyshots.test.js:2:52)

Test Suites: 1 failed, 1 passed, 2 total
Tests:       1 passed, 1 total
Snapshots:   0 total
Time:        3.412s
Ran all test suites.

You can fix this by creating a .babelrc file in .storybook folder with the same presets create-react-app uses:
{
  "presets": ["es2015", "react"]
}

Should this kind of babel config become the kind of default? If not, we should definitely document it.

I'm running into exactly this issue.  For the record, I'm not using CRA.  I created a .babelrc file in .storybook with exactly what was suggested.  It made no difference.  Is there some other thing I need to do to get babel to pay attention to that file?


channel info

Use get_channel_groups, get_channel_property_names, and get_channel_properties to write electrodes table on write and to read from electrodes table on read.

I believe we're doing this already, here and here
are you thinking on extending for add_electrode_column() for attributes other than location?

Yes we should write all channel properties exposed by the extractor

Done in nwb branch


Unable To find typings for code-push

Trying to use your sample as guide for implementing code-push in my app.
I followed your steps for installation but
I am not able find CodePush module like this
import { CodePush} from 'ionic-native';
Do I need to install typings for code-push separately?
Where can i find the typings for code-push?
Any help will be greatly appreciated?
Regards,
Savan

Hi Savan,
My pull request in ionic-native has still been accepted and even after acceptance it will take time to get it included with the next release of ionic-native.
Here is what you need to do :
git clone https://github.com/ksachdeva/ionic-native
cd into ionic-native
npm install
npm run build
npm link
the go to the ionic2-code-push-example
and do this
npm link ionic-native
You are all set after that

Hi Kapil,
Thank you for those steps it worked perfectly fine and I was able to do a proof of concept for the code-push plugin in my test project.
I have never used npm link before. Still don't understand the mechanics of that.
But one thing I noticed after doing the npm link, it seems my all native modules get loaded from the link (ionic-native package provided by you) instead of the package provided by ionic. This makes me think that your ionic-native package could potentially be out of date from the ionic's one.
Any estimate time line when would your plugin could be made part of ionic-native module?
Is there a way to "unlink" the package, I couldn't find any CLI command like "unlink" in npm for un-linking?
Regards,
Savan

Here is the idea behind "npm link".
Let's say that you are developing a node module and want to test it. The module has not been deployed yet at the npm registry (or it may be a private module that you do not intend to push in the registry). One approach is to install it from local directory (since npm 2.0 it is supported). However since the module is still in development any change you would make it in the module will require you to uninstall and re-install the module in your application.
"npm link" solves this problem by creating a symbolic link to your module. Nothing more than this. This way if you make a change to your module it is reflected in your application as well.
Command to unlink is - npm unlink ionic-native.

it seems my all native modules get loaded from the link (ionic-native package provided by
you) instead of the package provided by ionic

Another approach to prevent this what you can take is to simply copy the "dist" folder from ionic-native (my version) and then copy it in your node_moduls/ionic-native.

Any estimate time line when would your plugin could be made part of ionic-native module?

No.
Here is the pull request : https://github.com/driftyco/ionic-native/pull/420
Regards
Kapil

It is now part of ionic-native 1.3.18


Getting Spammed with warnings "No token selected" every pan

A a GM I generally don't have a token selected 90% of the time, I get spammed with the warnings every
time I pan, screenshot:

Even checking the option to hold shift, this warning keeps comming.

Same issue, it is very distracting. Great module overall, but an option to toggle off the notification or simply build it to not trigger for GM's would be much appreciated.

Hello,
Exactly the same for me.

Foundry VTT 11 (build 315) + DND 5e 3.0.3

Unchecking the "Enable module" box changes nothing. The message “No token selected!” always appears with a right click
Checking the "Shift right click to move" box does not change anything
Disabling the module in the Foundry VTT Module Manager no longer displays the message. For now, this is the best solution; especially since as a DM, I use Right Click all the time to move the map. And if I leave the module active, I get the message every time I right click.

Yes same thing. ANY right click makes this pop up, even when hold shift is enabled.
Me and my players love this module, but it is distracting enough that I am tempted to disable it until it is fixed.

For this particular issue, i just comment the warning "no token..." inside the module.js, and it solve it for me,

For this particular issue, i just comment the warning "no token..." inside the module.js, and it solve it for me,

Sorry, but can we pretend for a moment I have no idea how to do this?

For this particular issue, i just comment the warning "no token..." inside the module.js, and it solve it for me,

Sorry, but can we pretend for a moment I have no idea how to do this?

Okay, first find where the mod is save, and find rtscontrol mod

inside rtscontrol folder, go to scripts folder, and open module.js

then just find the line that have "no token selected", then just put // to command it

disclaimer: this is just temporary solution, and maybe the creator of the mod have his own reason on why he put that code, hope there will be a better way.

Thanks a load @Babysharkdad! Did the trick for now. (for anyone else looking who is using Forge VTT hosting, you will need to download RTS and edit it, and then upload it with the bazaar turned off).


Adding WebGL metrics in builder

cc @dv343

This branch is deployed on ded13 and it works with logged users, but it doesn't work with embeds.
With embeds the client POST requests gets a 404.
The POST payload is:
{"name":"WebGL stats","properties":{"webgl1":true,"OES_texture_float":true,"EXT_blend_minmax":true,"MAX_RENDERBUFFER_SIZE":16384,"renderToFloat":"FRAMEBUFFER_COMPLETE","visualization_id":"917cf31a-f99d-43e8-a631-d1ed184c8249","user_id":"-"}}

(for embeds)
and
{"name":"WebGL stats","properties":{"webgl1":true,"OES_texture_float":true,"EXT_blend_minmax":true,"MAX_RENDERBUFFER_SIZE":16384,"renderToFloat":"FRAMEBUFFER_COMPLETE","visualization_id":"917cf31a-f99d-43e8-a631-d1ed184c8249","user_id":"6780d368-6d85-42ee-b4cd-17e9fb99225e"}}

(for non embeds)
The response (on 404) is: {"errors":"Carto::User not found","errors_cause":null}
It is not critical to track embeds, although it would be nice. Do you know if we support tracking of non-logged users?
cc: @juanignaciosl @gfiorav @msaenzde11

I've been talking with @gfiorav and he introduced the idea of having two events, one for logged in users and one for not logged in users.
What do you think @juanignaciosl ?

I think that having support for anonymous events is not related at all with having a new event. I haven't tested it yet but it looks like if @reporter is nil, enqueuing the event will fail.
On it.

cc @gfiorav

According to Segment docs user_id is mandatory, so I'll use 00000000-0000-0000-0000-000000000000 as an anonymous user id. How does it sound, @msaenzde11 ?

I'll use 00000000-0000-0000-0000-000000000000 as an anonymous user id

You mean that, for embeds, as it can be seen by anyone and therefore deson't have to be a Carto user, it will be this user 0000... right? @juanignaciosl

@msaenzde11 yes, for embeds in this case, but in general for any anonymous event that we want to send.

@juanignaciosl all right! However so far this is the only anonymous event we're sending, isn't it?

Yes.

I think that I got this.
Normal user (at Builder):

Anonymous user (embed):

@msaenzde11 @dv343 ...:

Wait for tests to pass.
Give this a try, please.
 Frontend is sending that, but it shouldn't. If there isn't user, just don't send anything. A '-' is pointless. Could you please remove it from frontend? When you do it, just change that line to a simple @properties = properties.
This requires backend CR.

Unassigned for CR. Moved to Charlie's kanban for backend CR. @dv343 maybe you can ask frontend CR for the one that you think that should do it.

Ey, @amartinj , sorry. There's one detail that @dv343 will tackle (removing the TODO and filtering about the - as user_id). Wait for CR until is done. I overlooked it, sorry.

I've already made the changes @amartinj
Thanks!

@dv343 @msaenzde11 issue is ready for acceptance ;)

@juanignaciosl
I've deployed it to ded13, and right now everything seems broken.
Embeds are failing with 404 with response: {"errors":"Carto::User not found. Id: 00000000-0000-0000-0000-000000000000","errors_cause":null}
Not embeds are failing too, but silently, everything seems to work in frontend (metrics are sent and server response code is 201), but I cannot see them on keen.io

@dv343 yep. As the TODO said, the frontend request must not send the 0000-... id but nothing. Just don't send any user id if there's no user, and backend will take care of that.
That way, both Builder (with user) and embeds (without) should work. Let me know if it doesn't.

Everything seems ok now, but I made changes to the frontend part, @rubenmoya  can you code review it again?
If tests pass and Ruben gives a thumbs up I will deploy to production :smiley:


@now/build-utils and @now/static-build do not work on Windows with yarn

When yarn is used on Windows with now dev the binstub node_modules/.bin directory will not get added to the PATH variable.
This PR fixed it but broke @now/next, therefore it was reverted: zeit/now-builders#864

Please re-create this issue in Jira.


How to write unit tests for actions that also leverage redux-thunk

How do I write tests using redux-promise-middleware & redux-thunk?
I've pasted an example of one of the action creators I'm trying to write a test for. Any guidance would be much appreciated (I'm kind of new to writing tests 😢)
export function getModels() {
    return (dispatch, getState) => {
        const request = fetch('http://example.com/v1/models');

        return dispatch({
            type: GET_MODELS,
            payload: {
                promise: new Promise((resolve, reject) => {
                    request.then(response => response.json())
                        .then(json => {
                            resolve(json);
                        })
                        .catch(err => {
                            dispatch({type: SET_PAGE_ERROR, payload: err.message});
                            reject(err);
                        })
                })
            }
        });
    };
}

You can check the tests for this middleware as an example.
I also use this fixture for tests on some projects:
/**
 * @function equals
 * @param {object} actual
 * @param {object} expected
 * @returns {boolean}
 */
const equals = (actual, expected) => expect(actual).to.deep.equal(expected);

/**
 * @function asyncActionTest
 * @description Dispatches an action and evaulates the actions dispatched by
 * the promise middleware to ensure everything works as expected.
 */
export default function asyncActionTest(options, callback) {
  return new Promise((resolve, reject) => {
    const { type, expected, actual, initialState } = options;

    // create a Redux store like you normally would
    const store = configureStore(initialState);
    const action = store.dispatch(actual());

    // Ensure the pending action is dispatched first
    if (equals(store.getActions()[0], expected.pending ? expected.pending : {
      type: `${type}_PENDING`
    })) {

      // Evaulate the action dispatched once the promise settles and ensure
      // either the fulfilled or rejected action is dispatched
      return action
        .then(({ action }) => {
          if (expected.fulfilled) {
            if (equals(action, typeof expected.fulfilled === 'object' ? expected.fulfilled : {
              type: `${type}_FULFILLED`
            })) resolve();
          } else if (expected.rejected)  {
            reject(new Error('rejected action did not dispatch'));
          }
        })
        .catch(({ action }) => {
          if (expected.rejected) {
            if (equals(action, typeof expected.rejected === 'object'  ? expected.rejected : {
              type: `${type}_REJECTED`,
              payload: new Error(),
              error: true
            })) resolve();
          } else if (expected.fulfilled) {
            reject(new Error('fulfilled action did not dispatch'));
          }
        });
    } else {
      throw new Error('pending action did not dispatch')
    }
  });
}

Here is how it is used:
import * as actions from 'app-actions/account';
import * as types from 'app-constants/account';
import { asyncActionTest } from 'app-fixtures';

describe('account actions', function () {
  afterEach(() => resetMiddleware());

  context('register new worker', function () {
    const userData = {
      firstname: 'test',
      lastname: 'test',
      email<EMAIL_ADDRESS>',
      password: 'testtest'
    };

    it('is fulfilled', () => asyncActionTest({
      type: types.REGISTER,
      actual: () => actions.register(userTypes),
      expected: {
        fulfilled: true
      }
    }));
  });
});

If your payload is a promise, you could simply return the promise. something along the lines of:
export function getModels() {
    return (dispatch, getState) => {
        const request = fetch('http://example.com/v1/models');
        const promise = new Promise((resolve, reject) => {
                    request.then(response => response.json())
                        .then(json => {
                            resolve(json);
                        })
                        .catch(err => {
                            dispatch({type: SET_PAGE_ERROR, payload: err.message});
                            reject(err);
                        })
                })

      dispatch({
            type: GET_MODELS,
            payload: promise
        });
        return promise;
    };
}

Then you can easily test the payload in your tests.
Use Rewire to mock your module dependencies such as services: https://github.com/speedskater/babel-plugin-rewire


Normalization - Do we care about UCA versions

I just wanted to get this conversation out of slack and have documented for historical purposes.
The unicode standards are always updated

LBRYcrd is use the ICU library for unicode support v57.1. This uses UCA 8.0

Among our different services, there are 3 that standout in requiring unicode support also.
LBRYNet - The base lbry uses UCA 11.0
Chainquery(MySQL) -  MySQL 8.0 users UCA 9.0
Lighthouse(ElasticSearch) - as of yet unknown
@lyoshenka Has already made the call that for Chainquery we will wait and see if there will be any issues between UCA 8.0 and UCA 9.0.
The list of migration issues are below
https://www.unicode.org/versions/Unicode9.0.0/#Migration
https://www.unicode.org/versions/Unicode10.0.0/#Migration
https://www.unicode.org/versions/Unicode11.0.0/#Migration
So the question is do we care? If not lets close this issue.

After upstream merge, update Boost and ICU versions to match Unicode 11. In fact, can we ditch the lbrycrd_dependencies repo and use the "depends" folder instead?

Upstream merge now includes ICU 62.

doing some cleaning. reopen if this is still active.

To clarify one thing: I'm planning to ship the next release with ICU 63.2 (which is still Unicode 11).


Add support for THREE.ColorManagement

@georgealways does this look OK as an approach? Unfortunately it is fairly three.js-specific, and I'm not sure how to avoid that. Normally color space argument to getHex / setHex would be THREE.SRGBColorSpace or THREE.LinearSRGBColorSpace, but the actual values of those enums are intentionally matched to constants from CSS Color Module Level 4, so we can safely hard-code them here.
I'm happy to include unit tests or any other changes, if the general approach is acceptable.

Fixes https://github.com/georgealways/lil-gui/issues/117

Hey Don, thanks so much for this! It does feel a bit too three-specific in its current state though. Like CLASS would be better titled THREE_COLOR. Some thinking aloud here...
It seems like the THREE.Color.get/setHex methods do the linear/srgb conversion automatically. Maybe we can use those instead? Then in match, we could do a duck-type check for the two get/set methods instead of v.isColor.
It becomes a bit more agnostic, and the pattern feels more replicable for other libs: if your color object provides get/setHex methods that accept sRGB integers, then things just work out of the box.
const CLASS = {
	isPrimitive: false,
	match: v => v.getHex && v.setHex,
	fromHexString( string, target ) {
		target.setHex( INT.fromHexString( string ) );
	},
	toHexString( target ) {
		return INT.toHexString( target.getHex() );
	}
};

Devil's advocate: in that universe, people working with linear color in other libs would probably just continue to use the onChange pattern. While in three, it would just work automatically somehow.
Alternate idea, but kind of brutish: what about an "extras" file you can import to make addColor behave correctly with three?
import GUI from 'lil-gui';

const addColorOld = GUI.prototype.addColor;

GUI.prototype.addColor = function( obj, prop ) {
	const value = obj[ prop ];
	if ( !value.isColor ) return addColorOld.call( this, obj, prop );
	const temp = { [ prop ]: value.getHex() };
	return addColorOld.call( this, temp, prop ).onChange( v => value.setHex( v ) );
};

Then saying something like import 'lil-gui/extras/three-color' would essentially follow the onChange pattern for you automatically. Couple of gross things though: 1. it's a silent side-effect, and 2. where does that file live?
Anyway, apologies for the essay. Curious for your thoughts on either approach. And thanks for your help! Would be great to get this in the next release.

I'm happy with the getHex/setHex approach. I'll update the PR to see what that looks like.
For me, a new import has a similarly high barrier to discovery as something like this...
gui.addColor(material, 'color', { sourceColorSpace: 'srgb-linear' });

... with the added disadvantages of being library-specific, and prone to challenges with packaging so that the side effects and imports will work in every bundler. So I'm nervous about that.

I'd been thinking I needed to use rgbScale somehow for the getHex/setHex methods, but probably not -- that simplifies a bit. Updated the PR, let me know how this seems!

Devil's advocate: in that universe, people working with linear color in other libs would probably just continue to use the onChange pattern...

For better or worse... I don't know of other relevant JS libraries that make the distinction at all, but it's pretty important for what we're doing, and will become more important with Display P3 support in WebGL, WebGPU, and CSS Color Module Level 4.
Hopefully by the time other libraries are dealing with this, HTML's color picker will just support more color spaces. 🤞

Hey @donmccurdy thanks for being patient on this—I sat down to start integrating this and realized I couldn't reproduce the original issue you were describing anymore.
The color picker seems to stay in sync with a MeshBasicMaterial if I do this:
new GUI().addColor( material, 'color' );

Will you take a look at that test page I just pushed and tell me if I'm missing something? I could have sworn I reproduced this when you first posted...

Thanks @georgealways! The test page is correct, and fails if you remove the changes in this PR. The mesh and the background stay in sync but the color picker doesn't for me. Testing #4285f4.
before:

after:

That would do it! I must be short on oxygen to the brain today, I somehow failed to realize I was still on the PR branch 😅. That test case was also a little flawed since it was using the material's color.getHexString() to color the div, so they would always match...
Otherwise, no real changes in this latest batch of commits. I'll put some comments inline. Mostly I'd like to get your eyes on the documentation.


What does 🄿🄵🅅🄳 mean?

in dist/taginfo.json

🄿: preset
🄵: field
🄵🅅: field value
🄳: deprecated tag

I wonder, is this documented somewhere on the taginfo side? I only found https://wiki.openstreetmap.org/wiki/Taginfo/Projects and https://taginfo.openstreetmap.org/taginfo/projects which does not explain the file structure.

Also https://wiki.openstreetmap.org/wiki/Map_features
BTW, I've searched for 🄿/🄵/🅅/🄳 in project id-tagging-schema and at wiki.openstreetmap.org, no explanation for that, so I ask here.

These mnemonics come from schema-builder.
I similarly put emoji into the Mapbox Navigation SDK for iOS project file but added a decoder ring to the description. Consider requesting that change in schema-builder.

I think its worth documenting this somewhere since it in deed very cryptic when looking at taginfo only … so here we go, maybe this will help someone next time https://github.com/ideditor/schema-builder/pull/102


fix empty polygons in shapes layer

Description
This PR fixes some errors that were happening in the shapes layer when polygons with no inside, or paths all at the same point were added. Double-clicking to create a new polygon could lead to one of these errors, and is thought to be the problem identified in #223.
There is still one error that occurs in the vispy triangulate method when all the points are colinear
from vispy.geometry import PolygonData
import numpy as np

data = np.array([[0, 0], [0, 1], [0, 2]])
vertices, triangles = PolygonData(vertices=data).triangulate()
---------------------------------------------------------------------------
IndexError                                Traceback (most recent call last)
<ipython-input-26-1b6df5c6de06> in <module>()
      3
      4 data = np.array([[0, 0], [0, 1], [0, 2]])
----> 5 vertices, triangles = PolygonData(vertices=data).triangulate()

~/anaconda3/lib/python3.6/site-packages/vispy/geometry/polygon.py in triangulate(self)
    128
    129         tri = Triangulation(self._vertices, edges)
--> 130         tri.triangulate()
    131         return tri.pts, tri.tris
    132

~/anaconda3/lib/python3.6/site-packages/vispy/geometry/triangulation.py in triangulate(self)
    139             # get index along front that intersects pts[i]
    140             idx = 0
--> 141             while pts[front[idx+1], 0] <= pi[0]:
    142                 idx += 1
    143             pl = pts[front[idx]]

IndexError: list index out of range

I have not investigated this further, but we could either fix within vispy or add some test for it before passing the points to this function
Type of change

[x] Bug-fix (non-breaking change which fixes an issue)

How has this been tested?

[x] examples/add_shapes.py

Final checklist:

[x] My PR is the minimum possible work for the desired functionality
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] I have added tests that prove my fix is effective or that my feature works

I have now added a simple colinearity test. This should fix all the known bugs around polygon drawing


How to convert from ArcCoordinates back to x, y?

Say I have a centerline of a lanelet and the position of an object on this lanelet. Now I want to predict the movement of the object by following the lanelet. I can assume a linear motion model along the centerline of the lanelet with a specific offset/distance to centerline.
//Point3d posObj;
//Lanelet lanelet;

ConstHybridLineString3d centerline = utils::toHybrid(lanelet.centerline());
ArcCoordinates arcCoordinates = geometry::toArcCoordinates(utils::to2D(centerline), utils::to2D(posObj));

The arcCoordinates length and distance are the centerline coordinates which is something like Frenet-coordinates, correct? The distance is the perpendicular component and the length is the distance along the centerline, correct?
I can get the current distance and length of the object on the centerline with:
double s_start = arcCoordinates.length;
double t_start = arcCoordinates.distance;

I want to predict the movement by doing something like s = s_start + v*dt.
So how can I transform back from centerline-coordinates(length s, distance t) to x,y-coordinates?
Do I use interpolatedPointAtDistance?

Yes, they are frenet-coordinates, but for the special case of a piecewise-linear linestring, not of a curve. Because of that, there is no unambiguous way of getting back from arc coordinates to metric ones. This happens whenever s_start falls on the endpoint of a segment.
interpolatedPointAtDistance only gives you the x,y-coordinates of a point on the line string at the given distance. You could use that or closestPointAtDistance to find the respective segment and then compute the point you want using t_start as offset to the point on the segment. But as I said: That will give you strange jumps whenever the vehicle passes a segment endpoint.
We are currently working on publishing a function that offsets the whole centerline by a fixed distance (ETA next week). That might be a more appropriate way of predicting the movement with a fixed offset to the centerline.


Recomend the Java related runtime in list

Signed-off-by: Sheng Chen<EMAIL_ADDRESS>

Hi @EricJizbaMSFT,
Would you mind to take a look at this PR?
For the issue that P1v2 may fail to provision, I've sent emails to the service team and waiting for the response.


Obsidian mobile support

The plugin is unsupported on mobile which is a bit annoying. Don't see why it isn't supported

It would be great to use this plugin on a smartphone too!


Support 'inner' Concept in Element

Designate a specific element as the inner or content area so that add()'s get added there instead of to the top-level Element.

Could be temporarily reset by start() to make it easier to code elements in a non fluent style, which would make things like loops easier to code.

Works. Set 'content' property to an inner element to use.
Leaving ticket open until it is temporarily reset by start().

Done.


License

Under which license is this package available?

I updated/added a LICENSE file. Thanks for the reminder!


fixed schema issues

added a bunch of checks to make sure schema handling doesn't explode for null values
+1 from dane

Coverage increased (+0.02%) to 87.524% when pulling b602aa5b8114ba44cddc21cf6eff373f2116d394 on schema-issues into 8758f283f7870d3333cd4c98ec8d3102e1ab0f45 on master.