[Feature] Make Vertical allignment default for new UI elements

Is your feature request related to a problem? Please describe.**
When creating a new UI element, the default is Horizontal alignment. However, the horizontal alignment does not scale nicely with screen sizes and ratios. Especially if you add multiple overlapping elements for a homebrewed puzzle for example.
Describe the solution you'd like
In my experience, the vertical alignment works perfectly with the various screen sizes/rations. To make life less confusing for new scenario writers (and my life easier so I don't have to change it every time) it would be nice if the default setting for new UI elements would be set to vertical alignment

vunits=True
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.

This is always going to be tricky for authors to understand the scaling and work for everyone. Locking the aspect to 16x9 and using black bars might be a better approach.

This is always going to be tricky for authors to understand the scaling and work for everyone. Locking the aspect to 16x9 and using black bars might be a better approach.

True, UI will never be easy. but fixing it to 16x9 will not make it much easier.
In a UI like this: (WARNING SPOILER)

Positioning requires a lot of patience, trial, and error. The background + ritual circle is 1 image. Each candle, the flames on the candles, the book (...and all components that follow after this event), are separate UI components.
To position these:

I place a transparent sheet over my screen,
Mark the rough location of the elements
Place the smaller UI elements (guessed)
Run the scenario (test function) to see the result
move the smaller items in steps of 0,01 or 0.005 to move them to the correct position
repeat steps 4 & 5 a lot of times until it is done.

This is even more difficult when the images are positioned on the left side of the screen since the UI editor window is placed in that position.
What would help is a separate editor to move and position UI elements, where you

that can toggle a transparent grid to support positioning.
can select which items to visualize
position the UI elements with a mouse click,
move them up, down, left, and right with [+}, [-] buttons for each direction
set the size of the elements.

But that would be really a lot of work to create. Until then, I am happy enough with the default alignment to vertical, and in hope people read the section on UI placement in the Manual.

True, UI will never be easy. but fixing it to 16x9 will not make it much easier.
In a UI like this: (WARNING SPOILER)

Positioning requires a lot of patience, trial, and error. The background + ritual circle is 1 image. Each candle, the flames on the candles, the book (...and all components that follow after this event), are separate UI components.
To position these:

I place a transparent sheet over my screen,
Mark the rough location of the elements
Place the smaller UI elements (guessed)
Run the scenario (test function) to see the result
move the smaller items in steps of 0,01 or 0.005 to move them to the correct position
repeat steps 4 & 5 a lot of times until it is done.

This is even more difficult when the images are positioned on the left side of the screen since the UI editor window is placed in that position.
What would help is a separate editor to move and position UI elements, where you

that can toggle a transparent grid to support positioning.
can select which items to visualize
position the UI elements with a mouse click,
move them up, down, left, and right with [+}, [-] buttons for each direction
set the size of the elements.

But that would be really a lot of work to create. Until then, I am happy enough with the default alignment to vertical, and in hope people read the section on UI placement in the Manual.


Project Is dead?

No?  The last commit was 8 days ago, zchee is an active maintainer

@vyscond @r2d4 Yes, still maintain this project.
But yeah, this project has many issues. Related shared directory, network or etc.
Many parts of Docker for Mac are still closed(pinata etc), so this project can be used as an open source's xhyve interface, but there are many bugs.
However, those issues almost from the C(xhyve or lib9p) side. They relate to the mach kernel(and IOKit framework) and are not easy to debug.
I'll continue to do my best, but there is too few information about mach kernel and Hypervisor.framework, so fixing those bugs will take a lot of time.

@zchee Didn't notice the last commit date :/


ft(front-end-test): Front end test with jest and enzyme

Pull Request Test Coverage Report for Build 107

7 of 7 (100.0%)  changed or added relevant lines in 4 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.3%) to 86.908%

Totals

Change from base Build 94:
-0.3%

Covered Lines:
236

Relevant Lines:
257

💛  - Coveralls


ImportError: cannot import name 'soft_unicode' from 'markupsafe'

Hello,
After a fresh install of NBDev 1.2.2, the command nbdev_build_lib fail with error:
ImportError: cannot import name 'soft_unicode' from 'markupsafe'
It seems that NBDev use an old version of Jinja. Please see https://github.com/pallets/markupsafe/issues/284
Forcing markupsafe = "2.0.1" solve the problem.

Well, sorry, it is not related to NBDev, it is NBConvert that call Jinja.


⚠ Slack has degraded performance

In 87a7ccb, Slack (https://status.slack.com/api/v2.0.0/current) experienced degraded performance:

HTTP code: 200
Response time: 161 ms

Resolved: Slack performance has improved in 69fa43a.


Checkbox implicitly converts Array of Enum Objects (Integer) to String

Hi,
Please use the following scheme and check the JSON output...
{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "type": "object",
    "definitions": {
        "RoleIds": {
            "type": "array",
            "items": {
                "type": "integer",
                "oneOf": [
                    {
                        "enum": [
                            0
                        ],
                        "description": "A"
                    },
                    {
                        "enum": [
                            1
                        ],
                        "description": "B"
                    },
                    {
                        "enum": [
                            2
                        ],
                        "description": "C"
                    }
                ]
            },
            "widget": "checkbox",
            "title": "Roles"
        }
    },
    "required": [
        "role_ids"
    ],
    "properties": {
        "role_ids": {
            "$ref": "#/definitions/RoleIds"
        }
    },
    "fieldsets": [
        {
            "id": "myFieldset",
            "fields": [
                "role_ids"
            ]
        }
    ]
}

It is not as expected ...
{
    "role_ids": [
        1
    ]
}

But ...
{
    "role_ids": [
        "1"
    ]
}

The list of integers is implicitly converted to a list of strings.
Thus, the schema check fails...
Thank you very much for this great project!

Okay, that was easy. I have my own widget registry, in which each component is derived from your components.
There I replaced
value="{{option.enum[0]}}"

with
[value]="option.enum[0]"

in the template(s).


Include trunk and primary roads at zoom 7+

At line
https://github.com/mapzen/vector-datasource/blob/master/data/functions.sql#L249
We should start including trunk and primary along with motorway right off the bat.
    CASE WHEN highway_val IN ('motorway','trunk', 'primary') THEN 7
         WHEN highway_val IN ('secondary') THEN 10

https://github.com/mapzen/vector-datasource/commit/4e30909d25aa19674d5ada50755fc847c5166505


pipe must be replaced without any config change

Terraform CLI and Provider Versions
Terraform v1.5.0
on linux_amd64

provider registry.terraform.io/snowflake-labs/snowflake v0.86.0

Terraform Configuration
locals {

pipe_map = {
 "MY_DB.MY_SCHEMA.MY_PIPE_1" = {
    "auto_ingest" = true
    "copy_statement" = <<-EOT
    copy into MY_DB.MY_SCHEMA.MY_TABLE_1
    from @MY_DB.PUBLIC.EXTERNAL_STAGE
    PATTERN = 'some_directory/some_file.csv'
    file_format = (format_name = 'MY_SCHEMA.PUBLIC.CRM_CSV')

    EOT
    "db" = "MY_DB"
    "integration" = "MY_AZURE_NOTIF_INT"
    "pipe" = "MY_PIPE"
    "schema" = "MY_SCHEMA"
    "schema_id" = "MY_DB.MY_SCHEMA"
  }
}
}

resource "snowflake_pipe" "pipe" {
  for_each = local.pipe_map

  depends_on = [snowflake_table.table]

  provider = snowflake.SYSADMIN

  database       = snowflake_database.db[each.value.db].name
  schema         = each.value.schema == "PUBLIC" ? "PUBLIC" : snowflake_schema.schema[each.value.schema_id].name
  name           = each.value.pipe
  copy_statement = each.value.copy_statement
  auto_ingest    = each.value.auto_ingest
  integration    = each.value.integration

}

Expected Behavior
One created if no changes in the config files, pipes never should be recreated.
Actual Behavior
after created when I exec again (without any config change) "terraform apply"   this message is shown.
  # module.xxxx.snowflake_pipe.pipe["MY_DB.MY_SCHEMA.MY_PIPE_1"] must be replaced
-/+ resource "snowflake_pipe" "pipe" {
      ~ copy_statement       = <<-EOT # forces replacement
     copy into MY_DB.MY_SCHEMA.MY_TABLE_1
    from @MY_DB.PUBLIC.EXTERNAL_STAGE
    PATTERN = 'some_directory/some_file.csv'
    file_format = (format_name = 'MY_SCHEMA.PUBLIC.CRM_CSV')
        EOT
      ~ id                   = "MY_DB|MY_SCHEMA|MY_PIPE_1" -> (known after apply)
        name                 = "MY_PIPE_1"
      ~ notification_channel = "https://xxxxxxxxxxxxxxx.queue.core.windows.net/yyyyyyyyyyyy" -> (known after apply)
      ~ owner                = "SYSADMIN" -> (known after apply)
        # (4 unchanged attributes hidden)
    }

Plan: 2 to add, 0 to change, 2 to destroy.

It happens only in  2 of my 11 previouly created pipes , and always the same pipes. But no changes in any file sinse the last terraform apply
Steps to Reproduce

terraform apply

How much impact is this issue causing?
High
Logs
No response
Additional Information
No response

Hey @toni-moreno. Thanks for reaching out to us.
Currently, the leading space is not removed while diffing. Can you confirm that removing the whitespace in the first line (before copy into) solves the problem?

Hello @sfc-gh-asawicki thank you again for your support .
In my case the problem was one trailing whitespace in both pipes, once removed the problem disappeared.
thank you very much!

Hey @toni-moreno . We have released the fix as part of v0.87.0 release. Please follow the migration guide during the update. Please confirm that the issue is resolved in the newest version. Thanks!


cycle through open windows on consecutive presses

Hello, first of all, thank you very much for sharing your keyboard setup, this repo inspired me to customize my keyboard shortcuts in a way that I feel like I'm a lot more in control now and have the tooling to improve my workflow further on.
One thing that I adopted was the hyper key, using it to open applications.
But one thing that I noticed is that sometimes I would have Chrome open with more than 1 window, and in that case I wouldn't be able to focus the second window.
So I made some changes to the hyper function to focus the other app windows, when there are more on consecutive key presses.
For example, I have set "b" to open Google Chrome, so here is what happens:

When I press hyper+b for the first time, Google Chrome opens, if it's not open, and focus on the last focused window if it was already opened
pressing hyper+b when Google Chrome is already focused will focus on the next Google Chrome window
and so on

If having this behavior is something that you and other folks think makes sense, I can try to create a pull request with those changes.
My hyper module is this one if anyone wants to just copy/paste that: https://github.com/fabiomcosta/keyboard/blob/73b22906b31dfc12cc834c382515e30c4450d0f5/hammerspoon/hyper.lua

👋 @fabiomcosta: Thanks for taking the time to share this customization.
It's awesome to see people building on top of this! :zap:

If having this behavior is something that you and other folks think makes sense, I can try to create a pull request with those changes.

I probably can't prioritize reviewing a contribution like this in the near-term, but I'm going to pay closer attention to how often I have to hit command+~ to cycle through an app's windows. If it's something that I notice myself doing regularly, I might try out this customization.
Thanks again for bringing this to my attention and for sharing it for others to see. :bow:


Argo 2, large objects, and ambiguous references.

An old problem seems to have resurfaced with a new head. We are breaking up large (more than 11 elements) objects into intermediate parts in order to appease the compiler. However, with the migration to Argo 2.0 and Swift 2, the compiler has a new complaint. Take this case (names made neutral):
public static func decode(j: JSON) -> Decoded<DataObject> {
    let firstPart =  DataObject.create
        <^> j <| "data1"
        <*> j <| "data2"
        <*> j <| "data3"
        <*> j <|? "data4"
        <*> j <|? "data5"

    let secondPart = firstPart
        <*> j <|? "data6"
        <*> j <|? "data7"
        <*> j <|? "data8"
        <*> j <|? "data9"
        <*> j <|? "data10"

    let thirdPart = secondPart
        <*> j <|? "data11"
        <*> j <|? "data12"
        <*> j <|? "data13"
        <*> j <|? "data14"
        <*> j <|? "data15"

    let fourthPart = thirdPart
        <*> j <|? "data16"
        <*> j <|? "data17"
        <*> j <|? "data18"
        <*> j <|? "data19"
        <*> j <|? "data20"

    return fourthPart
        <*> j <|? "data21"
        <*> j <|? "data22"
        <*> j <|? "data23"
        <*> j <|| "data24"
        <*> j <|| "data25"
        <*> j <|| "data26"
        <*> j <|? "data27"
}

The compiler complains in two spots (the second line of the secondPart assignment and the second line of the thirdPart assignment) about an "Ambiguous reference to member <|?". Does anyone know a way to get around this that doesn't involve breaking up the DataObject itself into multiple smaller objects that then get merged?

@nomothetis it's nothing to do with let thirdPart = firstPart is it? Should be let thirdPart = secondPart.

On second thought, it could be that you need to explicitly add Runes to your dependencies.
Runes was removed as a dependency of Argo in v2 so you'd need to add it to your Podfile, Cartfile, or as a submodule depending on what you use.

if @paulyoung's suggestion ends up being just a typo in the example then I'm worried that the Swift 2 type inference has become a lot dumber. You shouldn't need Runes here. However, we added the capability for Argo's operators to return Decoded or Optional. I would hope the type inference could figure out which to use but maybe it's struggling.

it would be a bit annoying but you could try to type all those intermediate part variables to see if you can force Swift's type inference to the correct type.

you could also try curry(init) instead of the create function

You shouldn't need Runes here.

My mistake. The operators for Optional sound like a more likely candidate.

Thanks for the quick response. To answer all questions:

No, it wasn't because of the typo (now fixed). I tried fixing the by reducing the number of groupings, and that's where the typo came from.

I'm not clear on what curry(init) means, but I'll look it up and give it a try. I'd rather not have to write the full partial type; it seems excessive and defeats the purpose. I too am worried about the type inferencer, though.

By using thoughtbot/Curry you don't need to write a create function and can replace let firstPart =  DataObject.create with let firstPart =  curry(self.init)

However, we added the capability for Argo's operators to return Decoded or Optional. I would hope the type inference could figure out which to use but maybe it's struggling.

This could also still be a problem. The compiler is still quite bad at return type inference (if that's the only thing which varies). In a few places in RAC we added explicit dummy type params to help it out to avoid varying strictly on return type.

The optional returns on the Argo operators is new. I thought it might help but if it's the cause of this then I can remove it. If you are using carthage for dependencies, try using submodule mode and editing the local Argo source to remove that file. If you're using cocoapods you can edit the local Argo source that it downloads. If that fixes things let me know.

I'll give that a go as well. Thanks.

I ran into this, not because of a type inference issue, but because underlying errors were getting eaten up by the ambiguous reference error. In my case it was due to some enums that had explicit decode functions. Once I removed those, replacing them with just a conformance declaration, I was able to get some better error messages. I had some other, miscellaneous issues at the same time (Argo's new error handling), but eventually everything worked out and I didn't have to break any models into smaller parts.

@jshier  —  thanks. The other suggestions didn't work, so maybe I'm running into a problem similar to yours. At this point the only two compilation errors I get are the ambiguous reference errors. I'll see if removing those methods brings to light any new issues.

@tonyd256 I just tried explicitly adding the types of the intermediate values after removing the optional operators. Still didn't work. I also tried adding only one new <*> j <|? "dataX" expression, to see if it helped, and it didn't. I'm wondering at this point if I'm not making a mistake somewhere, but this compiled perfectly before the Swift 2.0 migration. :-(

WORKAROUND
I got it to compile by doing two things. First, I added an error property to Decodable:
extension Decoded {
    var error:DecodeError? {
        get {
            switch self {
            case .Success(_): return nil
            case .Failure(let err): return err
            }
        }
    }
}

Second, I used it like so to modify the code:
public static func decode(j: JSON) -> Decoded<DataObject> {
    let firstPart =  DataObject.create
        <^> j <| "data1"
        <*> j <| "data2"
        <*> j <| "data3"
        <*> j <|? "data4"
        <*> j <|? "data5"

    guard let existingFirstPart = firstPart.value else {
        return Decoded.Failure(firstPart.error!)
    }

    let secondPart = existingFirstPart
        <^> j <|? "data6"
        <*> j <|? "data7"
        <*> j <|? "data8"
        <*> j <|? "data9"
        <*> j <|? "data10"

    guard let existingSecondPart = secondPart.value else {
        return Decoded.Failure(secondPart.error!)
    }

    let thirdPart = existingSecondPart
        <^> j <|? "data11"
        <*> j <|? "data12"
        <*> j <|? "data13"
        <*> j <|? "data14"
        <*> j <|? "data15"

    guard let existingThirdPart = thirdPart.value else {
        return Decoded.Failure(thirdPart.error!)
    }

    let fourthPart = existingThirdPart
        <^> j <|? "data16"
        <*> j <|? "data17"
        <*> j <|? "data18"
        <*> j <|? "data19"
        <*> j <|? "data20"

    guard let existingFourthPart = fourthPart.value else {
        return Decoded.Failure(fourthPart.error!)
    }

    return existingFourthPart
        <^> j <|? "data21"
        <*> j <|? "data22"
        <*> j <|? "data23"
        <*> j <|| "data24"
        <*> j <|| "data25"
        <*> j <|| "data26"
        <*> j <|? "data27"
}

I don't like it, but it compiles. I really dislike the !, but until we figure out what the issue is, it's relatively safe (since there should either be a value or an error). Thanks again for the help, everyone.

hmm yes that is unfortunate. If you can give me a bit more so I can see this error on my computer I could try to work out a solution.

This is what we ended up doing for now.
Side Note:  <^> failed to compile for the first field and we had to use <*>. Not sure if there is any side-effect because of this, but everything seems to be working.
Not sure if there is a better way to get around this issue. I was getting back the Product in the static func decode(j: JSON) -> Decoded<Product> function instead of Decoded<Product>, which worked fine in the previous version.
Hence, i had to covert to Decoded and return it.
Please advise if there is a better way to get around this.
struct Product: ProductData {
  let id: Int
  let name: String
  let rating: Float
  let numberOfRatings: Int?
  let author: Author
  let file: File?
  let isFree: Bool
  private let price: Float
  private let originalPrice: Float?
  let description: String?
  let thumbnails: [String]?
  let images: [String]?
  let grades: [Grade]?
  let subjects: [Subject]?
  let resourceTypes: [ResourceType]?
  private let isPurchased: Bool?
  private let isInWishlist: Bool?
  private let isInCart: Bool?
  private let isHardGood: Bool?

.............
..................

  init(id: Int, name: String, rating: Float, numberOfRatings: Int?, author: Author, file: File?, isFree: Bool, price: Float, originalPrice: Float?, description: String?, thumbnails: [String]?, images: [String]?, grades: [Grade]?, subjects: [Subject]?, resourceTypes: [ResourceType]?, isPurchased: Bool?, isInWishlist: Bool?, isInCart: Bool?, isHardGood: Bool?) {
    self.id = id
    self.name = name
    self.rating = rating
    self.numberOfRatings = numberOfRatings
    self.author = author
    self.file = file
    self.isFree = isFree
    self.price = price
    self.originalPrice = originalPrice
    self.description = description
    self.thumbnails = thumbnails
    self.images = images
    self.grades = grades
    self.subjects = subjects
    self.resourceTypes = resourceTypes
    self.isPurchased = isPurchased
    self.isInWishlist = isInWishlist
    self.isInCart = isInCart
    self.isHardGood = isHardGood
  }
}

............
...............

extension Product: Decodable {
  static func create(id: Int)(name: String)(rating: Float)(numberOfRatings: Int?)(author: Author)(file: File?)(isFree: Bool)(price: Float)(originalPrice: Float?)(description: String?)( thumbnails: [String]?)(images: [String]?)(grades: [Grade]?)(subjects: [Subject]?)(resourceTypes: [ResourceType]?)(isPurchased: Bool?)(isInWishlist: Bool?)(isInCart: Bool?)(isHardGood: Bool?) -> Product {
    return Product(id: id,
      name: name,
      rating: rating,
      numberOfRatings: numberOfRatings,
      author: author,
      file: file,
      isFree: isFree,
      price: price,
      originalPrice: originalPrice,
      description: description,
      thumbnails: thumbnails,
      images: images,
      grades: grades,
      subjects: subjects,
      resourceTypes: resourceTypes,
      isPurchased: isPurchased,
      isInWishlist: isInWishlist,
      isInCart: isInCart,
      isHardGood: isHardGood)
  }

  static func decode(j: JSON) -> Decoded<Product> {
    let firstPart = Product.create
      <*> j <| "id"
      <*> j <| "name"
      <*> j <| "rating"
      <*> j <|? "votes"
      <*> j <| "author"

    let secondPart = firstPart
      <*> j <|? "file"
      <*> j <| "isFree"
      <*> j <| "price"
      <*> j <|? "originalPrice"
      <*> j <|? "description"

    let thirdPart = secondPart
      <*> j <||? "thumbnails"
      <*> j <||? "images"
      <*> j <||? "grades"
      <*> j <||? "subjectAreas"
      <*> j <||? "resourceTypes"

    let fourthPart = thirdPart
      <*> j <|? "isPurchased"
      <*> j <|? "isInWishlist"
      <*> j <|? "isInCart"
      <*> j <|? "isHardGood"

    var decodedProduct: Decoded<Product> = Decoded<Product>.Failure(.MissingKey("This is temporary fix and currently we have no way to identify, what went wrong until we find a fix for long list of functions"))
    if let fourthPart = fourthPart {
      decodedProduct = Decoded<Product>.Success(fourthPart)
    }

    return decodedProduct
  }
}

I was able to use method partially as suggested by @nomothetis, as i was getting back the Product instead of Decoded<Product>

Would you be able to post the code for the other models mentioned here ... Author, File, Grade, Subject, ResourceType etc. I think there might be an easier solution but it's hard to mess around with this without all the code.

My assumption is that you are also importing Runes into this file. If you are, then the Optional implementations for the Runes operators, <*>, and the Argo operators, <| etc, are available here.That means that unless you cast something to either Decoded or Optional it will be ambiguous which to use.
You say that <^> failed to compile when used for the first property. I'm willing to bet it's because it didn't know which version of that operator to use, Decoded or Optional. The reason <*> worked instead is because Swift will cast a non-optional to an optional automatically where as it won't do that for Decoded. So because it can only do that for Optional, that forced Swift to use all the Optional versions of those operators.
If you are importing Runes above, what happens when you remove it, change the first property back to <^> and replace let forthPath = with return. Also comment out the whole var decodedProduct stuff at the end.

Sorry all; I tried to create a standalone project, but for reasons that are
unclear to me, Carthage stopped working. Once I resolve that, I'll post it
here.
On Tue, Sep 22, 2015 at 18:47 Tony DiPasquale<EMAIL_ADDRESS>wrote:

My assumption is that you are also importing Runes into this file. If you
are, then the Optional implementations for the Runes operators, <*>, and
the Argo operators, <| etc, are available here.That means that unless you
cast something to either Decoded or Optional it will be ambiguous which
to use.
You say that <^> failed to compile when used for the first property. I'm
willing to bet it's because it didn't know which version of that operator
to use, Decoded or Optional. The reason <*> worked instead is because
Swift will cast a non-optional to an optional automatically where as it
won't do that for Decoded. So because it can only do that for Optional,
that forced Swift to use all the Optional versions of those operators.
If you are importing Runes above, what happens when you remove it, change
the first property back to <^> and replace let forthPath = with return.
Also comment out the whole var decodedProduct stuff at the end.
—
Reply to this email directly or view it on GitHub
https://github.com/thoughtbot/Argo/issues/235#issuecomment-142442756.

@tonyd256
Sorry, if i wasn't clear before. If i use <^>, i end up getting the error as seen in the screenshot below. But, if i use <*> along with the return using var decodedProduct  stuff, it seems to work fine and i don't see the error Expression was too complex ...

Here is the gist for all the Models referred by and including Product.swift
https://gist.github.com/amol-c/89a3dffe9051ef8b8e93

Here's my own project. The only relevant file is ServerContactFull.swift, but I wanted to have a full project with carthage included to illustrate the problem.
https://github.com/nomothetis/ArgoIssue
Note: the workaround I posted above didn't work for this project. Not sure why.

@nomothetis Whats the Xcode Version are you using ?

Xcode 7.0.

Thanks guys, I'll pull down this code and play around with it on my end and get back to you.

ah ok ... I think I figured it out. There is this super lame bug with Swift that we discovered. I can never find the issue again but I will now refer to it as the Super Lame Underscore Issue with Partial Application or SLUIPA (pronounced slew-pa)
Anyways, you need to add an underscore before the parameter for each parameter after the split occurs. So in your instance, every parameter after and including callCount (also file and data6 from the examples above. I also needed to exchange NSDate for String in your code because NSDate had not been made Decodable yet. But you can do that in your project and it would work. Here is what I needed to change:
static func create(contactId:Int64)
        (firstName:String)
        (lastName:String)
        (isBuyerLead:Bool?)
        (isSellerLead:Bool?)
        (_ callCount:Int?)
        (_ lastCallDate:String?)
        (_ emailCount:Int?)
        (_ lastEmail:String?)
        (_ textCount:Int?)
        (_ lastDateText:String?)
        (_ registerDate:String?)
        (_ bestPhone:String?)
        (_ autoEAlertEnabled:Bool?)
        (_ searchTotal:Int64?)
        (_ city:String?)
        (_ state:String?)
        (_ zipCode:String?)
        (_ showStreet:Bool?)
        (_ description:String?)
        (_ roleId:Int64?)
        (_ tenantId:Int?)
        (_ photoLink:String?)
        -> ServerContactFull {
          return ServerContactFull(contactId: contactId, firstName: firstName, lastName: lastName, isBuyerLead: isBuyerLead, isSellerLead: isSellerLead, callCount: callCount, lastCallDate: lastCallDate, emailCount: emailCount, lastEmail: lastEmail, textCount: textCount, lastDateText: lastDateText, registerDate: registerDate, bestPhone: bestPhone, autoEAlertEnabled: autoEAlertEnabled, searchTotal: searchTotal, city: city, state: state, zipCode: zipCode, showStreet: showStreet, description: description, roleId: roleId, tenantId: tenantId, photoLink: photoLink)
    }

Note the underscores.

@tonyd256 Thanks for the above snippet. I had included Argo and Runes, which caused the conflict as you mentioned.
Also, the above solution worked after breaking down into smaller chunks, my guess is its because of the complex type. I am attaching the code for future reference.
  static func decode(j: JSON) -> Decoded<Product> {
    let firstPart = Product.create
      <^> j <| "id"
      <*> j <| "name"
      <*> j <| "rating"
    let secondPart = firstPart

      <*> j <|? "votes"
      <*> j <| "author"
      <*> j <|? "file"
    let thirdPart = secondPart

      <*> j <| "isFree"
      <*> j <| "price"
      <*> j <|? "originalPrice"
      <*> j <|? "description"
    let fourthPart = thirdPart
      <*> j <||? "thumbnails"
      <*> j <||? "images"
      <*> j <||? "grades"
    let fifthPart = fourthPart
      <*> j <||? "subjectAreas"
      <*> j <||? "resourceTypes"
      <*> j <|? "isPurchased"
    return fifthPart
      <*> j <|? "isInWishlist"
      <*> j <|? "isInCart"
      <*> j <|? "isHardGood"
  }

Super Lame Underscore Issue with Partial Application :point_right: https://github.com/thoughtbot/Argo/issues/106#issuecomment-97085787

ah yes, thanks @paulyoung for finding that!

@amol-c glad it worked for you! With Swift 2 you don't need to write your own create functions anymore. You can use the Curry library to wrap the init like this: curry(self.init) instead of Product.create. Then you can delete the whole create function. Once https://github.com/thoughtbot/Curry/pull/10 happens :fingers_crossed: there will be a curry function that will work with this huge class.
Closing this for now. Feel free to comment on here if you have more questions or create a new issue for something else.

My observation is that if the struct has more than 15 properties all of a sudden the 16th property triggers the Ambiguous reference error. It's not the issue of the expression being too complex. You can split it all out into individual assignments. I verified in two separate unrelated structs that going from 15 to 16 triggered the error.
In Scala there is a limitation to the number of arguments a case class constructor can have (23). I don't know if there is some such limit at play here. Googling for swift and 15/16 didn't reveal anything. Figured I'd mention it.

@marcel The code I tested above has more than 16 parameters and I didn't see this issue. Would you be able to post your code? I'm curious why you're see this issue.

I've run into this issue with far less than 15 parameters too, where the decoding was more customized.

@tonyd256 sure,  I cut a branch and committed a couple examples: https://github.com/marcel/Twitter/commit/44d96fb8e9410b84b9b003fc54c2fd16685cb568
I'm running Xcode 7.0 beta 6 (7A192o) and Swift 2.0 (swiftlang-700.0.59 clang-700.0.72) on OS 10.11 Beta (15A278b).
In both cases you should see the "Ambiguous reference" error appearing on the first instance of "<|" in each decode method.
You can do at least two things to make the error go away:

Delete the lines tagged "Delete me" (one for the property declaration and one for the json attribute extractor). With those lines gone the error then goes away.

Leave that one in/put it back and comment out any other property declaration/json attribute extractor pair and see the error go away also.

You can move the last or any other parameter into a different position or break up the grouping of the incremental lets into any size and it will always show the error if there are 16 total attributes and it won't if there are 15.
I have not created a bespoke 16 property create factory as you did above with explicit underscores. That may afford a work around to whatever I'm observing. I wanted to avoid having to specify the mapping three times.
@paulyoung right, this error pops up regardless of the number of total properties simply if there is a type mismatch error in the declarations. If the declared property has different optionality or cardinality from what the extractor specified all such errors manifest at compile time as this ambiguous reference error even with just a single property let alone 16. Any number of underlying errors are swallowed and manifest as this ambiguous reference error.
What was notable though to me about what I'm observing here is that I'm pretty confident I don't have one of those basic type mismatch errors. Something else seems at play here.

Encountered this as well.
Went from from 14 to 15 properties in Swift 2.0 (in 1.2 it was for above 11 properties for me) and then used the splitting up solution. But this gave me "ambiguous use of operator '<|?'".
If it's optional or not doesn't seem to matter.
Removing Runes import solved it as explained by @tonyd256 above.

@tonyd256  I'm seeing the same issue described by @marcel above. My setup is the same.

Aha! Ok so this is happening because the Curry library can only handle 15 parameters. Once https://github.com/thoughtbot/Curry/pull/10 gets merged then it will work.

@tonyd256 Thanks for the update!

Curry 1.3.0 is now available, and should help with this issue.

@gfontenot 'pod outdated' is not seeing Curry version 1.3.0.
The pod spec on cocoapods.org is still pointing to version 1.2 as the latest. Can you submit the new pod spec to trunk? thanks!

@charliebartel Yeah, sorry about that. CocoaPods was giving me trouble. I've pushed it now.

After upgrading my pod to Curry version 1.3.0 the model decodes as expected with 15+ parameters.  I think we can consider this issue resolved.
Thanks @gfontenot @tonyd256 @marcel


Electricity bill calculator.

Describe the project you want to add with tech stack
Electricity bill calculator using c programming language.
Expected behavior
Will calculate the electricity bill after we enter the number of units consumed.
Screenshots (optional)

Additional context (optional )

@pranjay-poddar please tell me under which folder will I put my c language file?

make a new folder named:
c_projects/your_project_folder
followed by your project folder name.

okay


please add LINE app to the list

please add LINE to your service is highly needed in so many countries include mostly asia countries.  thank you

Hello guys,
Cannot say more than Marvispeterson, Line is a really huge instant messenger for most asian countries and we do use it a lot. It's a real bummer we cannot find it on your awesome app so far.
We're looking forward to see it coming !
Keep up the awesome work guys !
Cheers,
Thomas

Hi There,
I would like to also request the Line app! This app is commonly used by players of mobile games, since it has support for a large number of countries.
Thank you for making such an awesome app and keep up the great work!


Day handling

Redid the handling of days so that the keys are represented in local time zone, and more than 1 week can be represented.

Overwrote the changes from 882953a.
Essentially, we were originally creating bad data, then trying to correct for it. This branch instead just makes good data from the beginning.


v2.2.2 Can't chose what account to use in the browser when user has multiple

Steps to reproduce
This issue impacts 2 web extensions I've made to improve YT, the easiest way to reproduce is to install the Subscribe to Youtube Playlists.

Install extension
Create second YT account (I'm not sure if they have to both use the same email, behaviour seems weird) and link them
Swap accounts
The extension only returns data from the first account, not the one currently logged in

Failure Logs
This is a silent error.

Expected behavior
I would expect the InnerTube instance to fetch data from the account currently logged in (or at least the one currently selected).
Current behavior
The data returned is from the same account, no matter what account the user switches to.
Version
Default
Anything else?
The InnerTube instance is created like this on page load:
const youtube = await Innertube.create({
	cookie: document.cookie,
	fetch: (...args) => fetch(...args),
})

In this file.
Checklist

[ ] I am running the latest version.
[X] I checked the documentation and found no answer.
[X] I have searched the existing issues and made sure this is not a duplicate.
[X] I have provided sufficient information.

Ok, so I figured this out and it's simpler than I thought.
To choose an account we have to pass the header x-goog-authuser with the index of the account.
For example, say you have 3 accounts on a cookie — to choose the second one x-goog-authuser would have to be set to 2.
I'll probably make this into a parameter in the Innertube#create method.


Hl 972 ahjostatus

Description :sparkles:
Includes  Ahjo Auth from HL-934.
Adds a table to track the Ahjo handling status of an application.
Creates an initial status for the application when it's submitted.
Issues :bug:
Testing :alembic:
pytest applications/tests/test_applications_api.py::test_application_has_ahjo_status_after_submit
Screenshots :camera_flash:
Additional notes :spiral_notepad:

HANDLER branch is deployed to platta: https://helsinkilisa-ui-handler-pr2352.dev.hel.ninja :rocket::rocket::rocket:

API branch is deployed to platta: https://helsinkilisa-pr2352.api.dev.hel.ninja/healthz :rocket::rocket::rocket:

APPLICANT branch is deployed to platta: https://helsinkilisa-ui-pr2352.dev.hel.ninja :rocket::rocket::rocket:

TestCafe result is success for https://helsinkilisa-ui-pr2352.dev.hel.ninja :laughing::tada::tada::tada:

TestCafe handler result is failed for https://helsinkilisa-ui-handler-pr2352.dev.hel.ninja :crying_cat_face::anger::boom::boom:


Error when training on new languages and reproducing results.

Hi Thank you for the great work.
I followed you guide on preparing my own dataset and training on new languages.
But during training I got this error:
Unexpected error: <class 'RuntimeError'>
It was right after print the training info and progress bars.
So, then I tried to train on the dataset you provided to see if I've somehow prepared the dataset wrong. And I still got an error in the same place, through it is a different error:
***** Running training *****
Num examples = 107145
Num Epochs = 2
Instantaneous batch size per device = 8
Total train batch size (w. parallel, distributed & accumulation) = 32
Gradient Accumulation steps = 1
Total optimization steps = 6698
0%|                                                                      | 0/6698 [00:00<?, ?it/s]/home/yidansun/anaconda3/envs/new_env/lib/python3.10/site-packages/torch/nn/parallel/_functions.py:68: UserWarning: Was asked to gather along dimension 0, but all input tensors were scalars; will instead unsqueeze and return a vector.
warnings.warn('Was asked to gather along dimension 0, but all '
Unexpected error: <class 'AttributeError'>
0%|                                                                      | 0/6698 [00:10<?, ?it/s]
As the training is conducted with the transformers Trainer, is why hard to debug the training process. Did you ever encounter similar problems during training?
Thanks in advance.

Hi @insundaycathy,
unfortunately this error message could mean anything, so it is hard to say what what went wrong.
Which GPU do you use? Can you rund and post the output of nvidia-smi command?

I'm using Nvidia gpu, this is the output:
Mon Apr 11 14:40:09 2022
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 510.47.03    Driver Version: 510.47.03    CUDA Version: 11.6     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  NVIDIA GeForce ...  On   | 00000000:19:00.0 Off |                  N/A |
| 41%   80C    P2   162W / 350W |   9468MiB / 24576MiB |     49%   E. Process |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
|   1  NVIDIA GeForce ...  On   | 00000000:1A:00.0 Off |                  N/A |
| 61%   87C    P2   184W / 350W |   9468MiB / 24576MiB |      9%   E. Process |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
|   2  NVIDIA GeForce ...  On   | 00000000:67:00.0 Off |                  N/A |
| 49%   87C    P2   190W / 350W |   9468MiB / 24576MiB |     51%   E. Process |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
|   3  NVIDIA GeForce ...  On   | 00000000:68:00.0 Off |                  N/A |
| 30%   50C    P8    23W / 350W |      3MiB / 24576MiB |      0%   E. Process |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|    0   N/A  N/A   4154651      C   python                           9465MiB |
|    1   N/A  N/A   4160221      C   python                           9465MiB |
|    2   N/A  N/A   4170967      C   python                           9465MiB |
+-----------------------------------------------------------------------------+
Thanks

Okay, this looks good. In this case its maybe due to a changed python dependency. Did install all the dependecies in a new virtual environment? And I did not use anaconda, so you can maybe just use plain python venv and pip.

May I ask what version of python were you using?

Thank you so much for all your help. I got the error because I was running with python 3.10. it seem to be a compatibility problem with the package nccl and python 3.10.
When I downgraded to python 3.8 the training both on the orignal dataset and my additonal language went smoothly.

hi, @insundaycathy  could you please help me out with training for a new language? I have read the guide but can't understand it much as I am still a beginner sorry. Thanks!


Support definition of class-level meta-annotations

Migrated from Google Code (issue 751)

We can do this, but, it sounds like what you really want is a custom annotation for this behaviour. If this is the right approach for jackson, let's not have every jackson user re-invent this particular wheel.
I have no particular qualms about some sort of lombok.extern.jackson.JacksonValue or something along those lines.
Note that the resolution to issue #816 might reduce the amount of typing you have to do to just the first 3 (no more need for the @XArgsConstructor annotations).
Is there a single ubiquitous set of lombok annotations that all jackson classes probably want, and please add some proof that this is ubiquitous to any usage of jackson no matter who does it.
Issue will be closed due to lack of interest if no feedback before June 1st, 2017.

I don't care about Jackson, but this feature is sort of duplicate of #557, which is highly voted. I can imagine that there could be many annotations like lombok.extern.jackson.JacksonValue and lombok.extern.inject.InjectConstructor and others, but being able to specify a meta annotation would bind them all.
I'd personally be happy with specifying the magic of a meta annotation in a configuration as this is probably much simpler to implement. There's quite a lot of demand:
https://github.com/rzwitserloot/lombok/issues?q=is%3Aissue is%3Aopen (meta OR jackson OR guice)
PS: I guess, my most popular annotation would be @Getter(NONE) @Setter(NONE) and I don't think I could convince you to add it anytime soon. I guess, such rare requests are pretty common when counted together. That's why I'd strongly prefer the meta annotation to a bunch of partial solutions.


web interface dont work

Portainer  1.15.0
Docker version 17.09.0-ce
OS: centos 7
Command : /opt/portainer/portainer -p <IP_ADDRESS>:9000 -d /opt/portainer/portainer-data
Browser: firefox

web interface dont work

Hey @gabrielfsousa
This is a known bug, we're working on it. Have a look at https://github.com/portainer/portainer/issues/1286 for a temporary workaround.


problem with mounted windows drive

I have mounted a windows folder on a centos server and defined it in .env like this:
LEGACY_DOCUMENTS_LOCATION = /mnt/uploads
When loading the string in settings.py
LEGACY_DOCUMENTS_LOCATION = config('LEGACY_DOCUMENTS_LOCATION')
the slashes are being replaced by double backslashes.

Never mind. Solved it.


API Response Speed

Need to find a free provider to deploy the discord bot to, in order to run 24/7.
API requests won't work when hosted on the cloud, times out too often.

https://github.com/swar/nba_api/issues/176

no longer an issue for play-by-play, but problems with stats and shotcharts (form entries)


Input editing improvements

This addresses some of the points brought up in https://github.com/Maaack/Godot-Game-Template/issues/96, but it doesn't close that issue.


HTTP file server should allow downloading directories and entire repos

Currently the HTTP file server returns an empty response if a directory is requested. As discussed with @sjezewski we would like to also be able to download directoiries and entire repos as as a single .zip or .tar.gz file

We have to make sure we do this streaming, but looks like the underlying libraries support this:
https://bitbucket.org/kardianos/staticserv/src/5a536ebb8016d795187138ad99881533e14a59ef/main.go?at=default#main.go-232

@sjezewski is this still an issue, or did this get implemented along with raw/non-download file output?

This has not been implemented. I'm marking it as stale

I still have an open issue on the dash that is blocked on this

This service is on life support; the long-term goal is to remove it (see #3791.)


I think a summary of the various proposals would be helpful here. I'd write one myself, but I'm not confident that I understand the compiler/specification side of things well enough to give an accurate and complete summary.

I do want to see asm itself stabilized (because it's useful for lots of things), so sooner or later we still have to figure out how to specify language features (at least nonportable ones) in terms of generated assembly.

Absolutely asm needs to be specified eventually. However, to my knowledge, never before has anyone precisely specified a notion of "correct compilation" for inline assembly embedded in an optimized language. Like, I do literally not know of any industry or academic work that would do this. I appreciate any references anyone has here.
As a consequence, I find it likely that we will have stable asm before we have a proper spec for it. I doubt people want to block this on solving what I think is an open problem in programming languages research.

black_box is not about execution, it's about what transformations of the program IRs are allowed by a vaild Rust compiler.

You are basically suggesting to define a language through its compiler. I have argued against this before (try to "open in new tab" if the link does not work, this is just GitHub being a really, really bad medium for discussion as usual).
On top of what I said there, let me add one more data point: both LLVM and GCC do not have anything resembling a precise definition of their IRs. "The spec is what the compiler does." This leads easily to bugs when two seemingly sensible optimizations are actually incorrect in combination (LLVM bug, GCC bug). The abstract machine is needed as an ultimate arbiter that determines which optimizations can be safely combined with each other.

As a user let me contribute my 2 cents
In C++, there is the same need for some kind of compiler barrier that prevents the compiler from hoisting benchmark code out of loops. There is a really great talk by Chandler Carruth about how to do this using inline assembly, where he goes into detail about how gtest implements this, and what it means from compiler's point of view: https://www.youtube.com/watch?v=nXaxk27zwlk
test::black_box(x) should mean for the compiler, this statement compiles to a no-op, but the surrounding code must be optimized in such a way that it would still be correct if test::black_box changed x in some arbitrary and unpredictable way.

Please don't block this PR based on arguments about the semantics of this.
The need for a barrier like this is obvious in any language that allows the optimizer to do things like hoisting expressions out of loops. It is an important practical need to be able to do benchmarks in rust, and this is not a "novel" solution to the problem, it is the same one that has been actively deployed in google's gtest C++ library for many years, which is used by millions of users with gcc and clang. Many experts have thought extensively about the best way to create this kind of barrier, with special attention to llvm. Real users of rust have the same need to use this benchmarking tool, without using a nightly compiler. Stabilizing test::black_box is the only way to do that AFAIU.
It's really sad that useful stuff like this is blocked for months by what appear to be pedantic concerns about having a completely formal definition of the semantics. It should be adequate to say "test::black_box is an appropriate barrier to use for microbenchmarks, to prevent the compiler from making optimizations about a particular variable over multiple iterations of a loop", and if in the future it is determined that the implementation is inadequate for this in some way, then it is treated as a bug and fixed.

@cbeck88 That's why I attempted to bypass the whole thing and have bench_{input,output}, which can be more weakly specified (I hope?), and it should be clearer from the names that these are for benchmarks.
Whereas we've seen people (want to) misuse black_box to write incorrect code.
Pretty much the only way we can specify something like this is to make it a correct implementation to define those functions as noops that don't prevent optimization.
It's a fool's errand to try to specify almost anything about an optimizer, especially if you mention LLVM, I just wish it were more obvious. The only winning move is not to play.

There is a really great talk by Chandler Carruth about how to do this using inline assembly, where he goes into detail about how gtest implements this, and what it means from compiler's point of view: https://www.youtube.com/watch?v=nXaxk27zwlk

Here's a transcript from imo the most relevant part of that talk:
"First of all, I'm about to pause for a minute. I'm about to tell you all how to defeat the optimizer. As a compiler an optimizer writer, please use these powers for good. Like...  That's not gonna actually work for you. It goes very badly.
Okay, but how do we actually defeat it when we need to for a good reason, we need to for some performance analysis? We need two functions. Alright, these are kind of magical functions. I would never expect anyone to know how to write these functions. You might reasonably argue that they shouldn't... like I shouldn't be writing them and they should be in my library but I wanted to should you guys how these things actually work. Okay, we're already in trouble, I'm using void* pointers, I know, I know, type safety and all that. But but... there's actually a reason I'm using void* and it's gonna get a lot worse.
I'm going to next type the two scariest tokens for my compiler implementer world. Okay, literally, the two scariest tokens. Okay. [types asm volatile("" : : "g"(p") : "memory");] So let's see, what on earth have I done? Okay so what is this...? This is a magical escape function. It is truly magical, okay.. It has these unique and mysterious properties. The first property here is that it accepts an arbitrary pointer and it discards all type information because this escape function isn't about playing nice with your type system. It's about turning off the optimizer, right? We don't need a type system to do that. Okay so then we get really crazy and we do an asm volatile. [...]"

It's really sad that useful stuff like this is blocked for months by what appear to be pedantic concerns about having a completely formal definition of the semantics.

We have a definition that is adequate for benchmarking purposes and completely formal already. (Well as much as fn black_box<T>(x: T) -> T { x } is formally defined at least.)
It seems to me that the only things this RFC is actually blocked on right now is a bikeshed and to consider whether a change towards bench_{input,output} would be better for benchmarking purposes. Anything else, e.g. guarantees regarding freezing or constant time operations, is really out of scope for this RFC.
From my perspective it would be fine to offer all three of hint::bench_{black_box,input,output} and we can start with these in any order. I think that's fine because these are all best effort tools that are trivial to formally specify when they truly are hints.
Sometimes the functions will also be wrapped in a benchmarking framework which means that those users won't need to care about which ones to use. I think which ones to use will be largely driven by tutorials and convention as they are all rather opaque (at least from my perspective). If it turns out we need to deprecate some of them in the future that's also fine because again, these functions are trivial to specify.
@eddyb

@cbeck88 That's why I attempted to bypass the whole thing and have bench_{input,output}, which can be more weakly specified (I hope?), and it should be clearer from the names that these are for benchmarks.

I'm not sure I follow this part. fn bench_black_box<T>(x: T) -> T { x } being a valid definition of bench_black_box for any Rust compiler/interpreter seems like as weak a specification as it gets?

Whereas we've seen people (want to) misuse black_box to write incorrect/unsound code.

Sure. That's unfortunate... but isn't good documentation the solution here?

It's really sad that useful stuff like this is blocked for months by what appear to be pedantic concerns about having a completely formal definition of the semantics.

This is not what this is blocked on. Please re-read the discussion. Nobody, not even from the formal camp, is opposed to having something that says "this encourages the compiler to not optimize some things, but code cannot rely on this for functional correctness".
But some people don't like calling a thing that does this black_box, and I think that name is the only open concern.
@Centril thanks a lot for that transcript! I am relieved and happy that I can now even quote Chandler any time someone asks about using black_box for "defeating UB" purposes. It's not just us academic eggheads that argue this way. ;)
For those wanting to watch the video, the timecode-link is https://youtu.be/nXaxk27zwlk?t=2445.
Seems like the two functions Chandler defines are escape and clobber. black_box corresponds to escape and IIRC we discarded clobber because Rust's strong aliasing guarantees make it much less useful.

I've renamed the intrinsic to bench_black_box but still maintained the unresolved question that we might want to tune naming before stabilization, since it is unclear whether we might want to add bench_input/bench_output at some point, and if that might be the case we might want to put these in a core::hint::bench::.. submodule where we can explain how these intrinsics are supposed to be holistically used. Otherwise we need to explain that in the docs of each of the intrinsics.
I don't think that resolving this should block the RFC from making progress, and we probably should just implement bench_input/bench_output on nightly behind a feature gate and let users gain experience with them and let us gain experience with them as well about how to explain how to use them together, and see how well that works out in practice.
This should resolve @cramertj concern about naming, let me know if this isn't the case.

I've also tried to document @eddyb proposal of adding bench_input/output in the alternative section. We tried to work that alternative out in dozens of comments so I might have missed some, please review the diff of the last commit.
The pros of that proposal is that they are easier to specify with stronger guarantees than bench_black_box, and the cons is that they are currently not properly implementable in LLVM, and without a proper implementation we can't really show users what their effect on optimizations is, which makes teaching how to use them together hard.

@gnzlbg Would you be happier with bench_{input,output} if we added optimizations at the MIR level to demonstrate their distinct semantics?

Also, keep in mind none of the LLVM limitations would prevent miri from demonstrating UB.

Would you be happier with bench_{input,output} if we added optimizations at the MIR level to demonstrate their distinct semantics?

I'm happy with bench_input and bench_output as proposed.
bench_black_box has a steep-ish learning curve and might disable too many optimizations, and I do think we should add bench_intput/output as well so that we can try to experiment how to implement them more strictly, and for those users with more time and wanting more finer grained control can learn how to use them and try them out. I just don't think it is worth blocking bench_black_box on figuring this out.

Also, keep in mind none of the LLVM limitations would prevent miri from demonstrating UB.

The main use case for these is benchmarks and when users try to put what they learn into practice, there is no self-correcting mechanism that will let them know they are using these incorrectly unless they run their benchmarks under miri. Maybe there is a way to encourage users to run their benchmarks under miri somehow, but that is going to require a bit of experimentation on how to best do that properly because currently miri is quite slow. I suppose libtest could help here by reducing the number of iterations to 1 when run under miri by default or something like that since the purpose there is verifying that the benchmarks do not have UB as opposed to obtaining performance timings.

Sure. That's unfortunate... but isn't good documentation the solution here?

I mean, function name choice (and whether you have one or two functions) kind of is part of "good documentation". Self-documenting functions are better than something people may misuse if they don't read the docs.

@rfcbot resolve actually-a-black-box
The new name bench_black_box seems pretty clear about how this is supposed to be used.

Ping @SimonSapin @Zoxc @michaelwoerister @varkor for your checkboxes here.

Ping @SimonSapin @Zoxc @michaelwoerister for your checkboxes https://github.com/rust-lang/rfcs/pull/2360#issuecomment-461978619

🎉 Huzzah! This RFC has been merged! 🎉
Tracking issue: https://github.com/rust-lang/rust/issues/64102


Enable Line Numbers in Dart Playground

As mentioned in issue #317, The embedded DartPad editor has had the line numbers for a long time. This Pull Request enables the same option on the Playground side.

Hi @149segolte,
Thanks for the PR! Can you please supply a before and after screenshot? It helps to verify the visual change is sane. Thanks!
brett

Sure @domesticmouse,
Before( Taken from DartPad.dev ) :

After( Taken from localhost ) :


fix(notification_service):

Abstract method of SqlAlchemyStore has no implementation.
notify method of NotificationService has no any return value.
HAManager doesn't delete member when stopping.
#103

@MarvinMiao , thanks for contribution of Notification Service high availability. I leave some minor comments. @wuchaochen , @WeiZhong94 please help to review these commits, thanks.

@MarvinMiao , thanks for contribution of Notification Service high availability. I leave some minor comments. @wuchaochen , @WeiZhong94 please help to review these commits, thanks.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.2 out of 3 committers have signed the CLA.:white_check_mark: MarvinMiao:white_check_mark: wuchaochen:x: WeiZhong94You have signed the CLA already but the status is still pending? Let us recheck it.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.2 out of 3 committers have signed the CLA.:white_check_mark: MarvinMiao:white_check_mark: wuchaochen:x: WeiZhong94You have signed the CLA already but the status is still pending? Let us recheck it.


Investigate Scale Changing Source File Extension

A customer has reported the following:

I copied a file with extension = “FOO.NTF”, but it stores it as “FOO.ntf”. When I queried for the status, I passed /sources/?file_name=FOO.NTF, but this wasn’t found. I queried /sources/?file_name=FOO.ntf and it was found.

Investigate what is causing the file extension to be made lower case and see if the behavior can be changed. Also consider if there is any reason why this behavior would be desired.
Also investigate if this issue affects product saving as well.

S3?  Something getting sanitized through by a parameterizer?


follow xdg standard. fixes #122

Moves the rebar3 config (including templates and plugins) to ~/.config/rebar3 and the package cache to ~/.cache/rebar3
fixes #122

There's template docs that will need updates too with this: https://github.com/rebar/rebar3/blob/master/doc/templates.md#global-variables


Flagging hero crash the toolbox

From discord,

Sometimes when i either flag a hero through tb minimap or having shift or ctrl, tb closes my client down.

I fixed a few bugs with this - if the map type changed to outpost or loading and the player flagged on the map (e.g. clicked the flag button before map change when the buttons were available) it would crash the client. The merge with flag heros shortcut has put my fix for this in.

I wasn't able to reproduce. Does that happend every time for you ?

Was patched in #299.


Add files via upload

Docs Build status updates of commit a5c61a2:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

articles/synapse-analytics/media/sql-pools/configureserverlessname.png
:white_check_mark:Succeeded

articles/synapse-analytics/media/sql-pools/findserverlessname.png
:white_check_mark:Succeeded

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

Docs Build status updates of commit a7dc17f:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

articles/synapse-analytics/media/self-help
:white_check_mark:Succeeded

articles/synapse-analytics/media/sql-pools/configureserverlessname.png
:white_check_mark:Succeeded

articles/synapse-analytics/media/sql-pools/findserverlessname.png
:white_check_mark:Succeeded

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

@toastjoqo - we can't merge new image files submitted alone. You should make sure to add them to an article, and ideally this should be done in the private repo. (the file names also need to be changed to meet our guidance.)
@WilliamDAssafMSFT - fyi. I think you are the correct reviewer for this, but if not, please reassign.

IMPORTANT: When this content is ready to merge, you must add #sign-off in a comment or the approval may get overlooked.

#label:"aq-pr-triaged"
@MicrosoftDocs/public-repo-pr-review-team

Looks to me like this PR might have been created prematurely. @toastjoqo can you give us some context or details here on your proposed contribution?

See comment above. #please-close

@WilliamDAssafMSFT  Thank you! The comments are very helpful. I will refer to them to create new screenshots!


DataOutput2.grow() function producing incorrect value when called with current buffer size = 2^30

Using Java 11.43.55, and mapDB 3.1.0 or 3.0.10.
I'm running code which is pushing a total of over 1GB of data into a mapDB. The largest item in the sequence is roughly 106mb. The specific method for pushing data is BTreeMap<String, byte[]>.put().
In the execution chain that follows, the DataOutput2.grow() (called by ensureAvail(), which is called by write()) method is called to ensure enough buffer space is set aside to store the data. When the data sequence grows (split between multiple calls to put()) and the buffer (DataOutput2.buf) size grows to over 1GB, or 2^30 bytes, the next power of 2 is computed (see immediately following), it results in an overflowed signed int which is negative and is therefore not taken as the newSize value to grow a new buffer with.
The code to the DataOutput2 grow() function for context:
private void grow(int n) {
        //$DELAY$
        int newSize = Math.max(DataIO.nextPowTwo(n),buf.length);
        sizeMask = 0xFFFFFFFF-(newSize-1);
        buf = Arrays.copyOf(buf, newSize);
}

When the call fails, using IntelliJ debugger I find the inputs and state values are as follows:
n:          1,073,807,719
buf.length: 1,073,741,824
and at the end of the call, newSize is 1,073,741,824, which was already the size of buf, and which is not large enough to accomodate the desired new size of n.
Since n is larger than buf.length, the expression DataIO.nextPowTwo(n) should give the next power of 2 (2,147,483,648) however due to DataIO.NextPowTwo producing an int, it can't produce a value as large as 2,147,483,648, because the bits that would do so actually represent a negative value (-2147483648). I guess we are hitting the limits of buffer size that can be used here.
sizeMask was and remains the following bit sequence:<PHONE_NUMBER>0000000000000000000000 (I'm assuming the intended size computation is to have it flip one more bit to become<PHONE_NUMBER>0000000000000000000000 and thus accomodate 2^31 elements however it never got the chance to compute this because of the overflow in the NextPowTwo result.
Is it user error to send enough byte buffers to be stored that ends up overflowing the size calculation, or should some prior step in the BTreeMap<String, byte[]>.put() chain have divided the underlying set of buffers into smaller subbuffers with lengths that would fit inside a regular Java int?
I believe that the grow() method should prevent invalid values from being passed into it, or even better, no buffer should be used that exceeds 2^31-1 in size, and if buffers up to that size are to be permitted, the code needs to be aware that 2^31 is not possible with a signed int.
Here is the exception and stack trace as it occurs in my code (I cut off the bottom of the stack trace, which is my code calling mapDB):
java.lang.ArrayIndexOutOfBoundsException: arraycopy: last destination index<PHONE_NUMBER> out of bounds for byte[1073741824]
	at java.base/java.lang.System.arraycopy(Native Method)
	at org.mapdb.DataOutput2.write(DataOutput2.java:65)
	at org.mapdb.DataOutput2.write(DataOutput2.java:58)
	at org.mapdb.serializer.SerializerByteArray.serialize(SerializerByteArray.java:20)
	at org.mapdb.serializer.SerializerByteArray.serialize(SerializerByteArray.java:13)
	at org.mapdb.serializer.SerializerByteArray.valueArraySerialize(SerializerByteArray.java:76)
	at org.mapdb.BTreeMapJava$NodeSerializer.serialize(BTreeMapJava.java:171)
	at org.mapdb.BTreeMapJava$NodeSerializer.serialize(BTreeMapJava.java:136)
	at org.mapdb.StoreDirectAbstract.serialize(StoreDirectAbstract.kt:245)
	at org.mapdb.StoreDirect.update(StoreDirect.kt:632)
	at org.mapdb.BTreeMap.put2(BTreeMap.kt:408)
	at org.mapdb.BTreeMap.put(BTreeMap.kt:292)

Please let me know if I can provide additional information, or if I can assist in resolving this. I was initially hoping to try to solve this myself, but I'm unfamiliar with the overall design and I think someone familiar with this should be aware of the problem.

Use BTreeMapMaker externalValues() or something similar. Without this option values are stored as part of btree leaf nodes, and it grows to over GB.


"cannot find 'require'"

From @andrewscogo-ogocx:

I was wondering if it is possible to use the require method? for example local odbc = require "odbc"
I'm thinking of migrating to the sun I tried to use require and says:
attempt to call global 'require' (a nil value)

You need to call open_libraries(sol::lib::package) to have that work. Namely,
sol::state lua;
lua.open_libraries(sol::lib::package);

You can open multiple built-in libraries at once:
sol::state lua;
lua.open_libraries(sol::lib::package, sol::lib::base, sol::lib::os);


[func-sig-opts] Add some missing anonymous namespaces.

No point in injecting anything into the global namespace.

@swift-ci smoke test and merge


{AKS} az aks update: don't always use the current kube-proxy config when updating cluster

This checklist is used to make sure that common guidelines for a pull request are followed.

For new extensions:

[ ] My extension description/summary conforms to the Extension Summary Guidelines.

About Extension Publish
There is a pipeline to automatically build, upload and publish extension wheels.
Once your pull request is merged into main branch, a new pull request will be created to update src/index.json automatically.
You only need to update the version information in file setup.py and historical information in file HISTORY.rst in your PR but do not modify src/index.json.

AKS


Errors with ModuleManager and Kos

Kos is not installed on my current game.
ModuleManager throws this error while loading the game :
[LOG 06:21:42.801] [ModuleManager] Error - Skipping a patch with unbalanced square brackets or a space (replace them with a '?') :
@PART[kOSMachineRad|kOSMachine1m|kOSMachine0m|KR-2042|KAL9000|Cherry
[LOG 06:21:43.904] [ModuleManager] Errors in patch prevents the creation of the cache
[LOG 06:21:43.911] [ModuleManager] ModuleManager: 322 patches applied, found 1 error
1 error related to GameData/StockPlugins/kOS.cfg
PS: Super plugin :)

Merci, je corrige ça tout de suite :)


ScullyServer keeps running even though I quit it with Cmd + C or "q"

🐞 Bug report
Description
I run Scully with yarn scully. If I press "q" (or even Cmd + C) the shell exists

But the page is still being served at http://localhost:1864/. And in fact, ScullyServer seems to still run

💻Your Environment
Angular Version:

Angular CLI: 9.0.4
Node: 12.14.0
OS: darwin x64

Angular: 9.0.4
... animations, cli, common, compiler, compiler-cli, core, forms
... language-service, platform-browser, platform-browser-dynamic
... router
Ivy Workspace: Yes

Package                           Version
-----------------------------------------------------------
@angular-devkit/architect         0.900.4
@angular-devkit/build-angular     0.900.4
@angular-devkit/build-optimizer   0.900.4
@angular-devkit/build-webpack     0.900.4
@angular-devkit/core              9.0.4
@angular-devkit/schematics        9.0.4
@ngtools/webpack                  9.0.4
@schematics/angular               9.0.4
@schematics/update                0.900.4
rxjs                              6.5.4
typescript                        3.7.5
webpack                           4.41.2

Scully Version:

"@scullyio/init": "^0.0.23",
"@scullyio/ng-lib": "latest",
"@scullyio/scully": "latest",

Same issue here:

This should be closed by pr #349.
Please let us know if the problem persists. (Give us a day to release the latest version to NPM)


glossary: add glossary.md

Description (required)

Introduce glossary.md to main

Related issues & labels (optional)

Suggested label: glossary

Former glossary.md from #5634 (glossary branch)

I think we said it was OK to close this one and move to the HackMD!


Please document the second parameter of ngTouch $swipe event handlers.

Currently, the docs say

The four events are start, move, end, and cancel. start, move, and end receive as a parameter a coordinates object of the form { x: 150, y: 310 }.

They do not mention that there is a (helpful!) second parameter: the raw event object.

Thanks!


Licensing

Issue
I am confusing by the licensing of this project. This project uses the library cytriangle to compute the meshing which is GPLv3 which in turn requires this be GPLv3 licensed (at least in part?). However, looking at cytriangle the original C code provides no open source license and is copyrighted.
I'm no license expert and generally just stick to MIT licensed projects when possible, but I am concerned using this in a commercial context because ok the copyright attached to the original C code https://github.com/m-clare/cytriangle/blob/2b444ba743f8d5bb7e355bbb93c2e4b19580b72d/src/c/README#L9-L12
It would be great to clarify if this code can be used in a commercial context. Thanks

As far as I can tell this is the original source? https://www.cs.cmu.edu/~quake/triangle.html#:~:text=Triangle (version%201.6,without%20a%20license.

@SoggyBottomBoy are you hoping to include sectionproperties and therefore triangle in a paid product or just use within a commercial context? There is some discussion in this thread https://github.com/robbievanleeuwen/section-properties/issues/24.

Ah ok did not see this in the source of triangle.c. We would not be distributing/won't be in a paid product.


Update podspec to version 1.0.5

Verified that @RicoYao has signed the CLA. Thanks for the pull request!


Stage.mouseX/Y does not reflect stage transform.

Not totally sure how / if we should handle this scenario, but logging it for review.

Also related: https://github.com/CreateJS/EaselJS/issues/649 https://github.com/CreateJS/EaselJS/issues/772


Use of "target_suffix": ["_lesion-manual"] leads to multiple targets during training and testing

As discussed in more detail in https://github.com/ivadomed/ivadomed/issues/1055, I recently discovered that the use _lesion-manual as the target suffix leads to ivadomed using all derivatives which have the _lesion-manual string in it (e.g. _lesion-manual.nii.gz, _lesion-manual-majvote, _lesion-manual2.nii.gz, etc.).
This creates inconsistencies in training and testing. For example, running ivadomed --test -c config/test_on_rater1.json yields different results in each run as a different GT is selected from the derivatives that contain the _lesion-manual string.
As mentioned in the ivadomed issue linked above, a quick fix for now is to update the "target_suffix" to include the .nii.gz file extension. This is because the target suffix string _lesion-manual.nii.gz breaks the overlap between the filenames _lesion-manual.nii.gz and _lesion-manual2.nii.gz (and also the other derivatives).
The next steps are to:

[x] Update all config files to include the .nii.gz extension in the "target_suffix" key (will link a PR soon)
[x] Re-train and re-test lesion segmentation (note: no need to do this for SC segmentation as we have one label for this task)

Not needed anymore as we are now using a single-rater segmentation (_NeuroPoly)


[BUG]: Build of main branch fails on readthedocs.org

Description of the bug
See https://readthedocs.org/projects/arneis/builds/16147498/
Steps To Reproduce

Just look at https://readthedocs.org/projects/arneis/builds/

Additional Information
No response

@alv67 do you have any ideas of what could have gone wrong?

The first failed build of "version latest" was this one
https://readthedocs.org/projects/arneis/builds/16141262/

No idea. Apart for the TODO warnings, I don’t see other errors. But the TODO warning are present in other commit
Il 21 feb 2022, 07:03 +0100, Gianpaolo Macario @.***>, ha scritto:

@alv67 do you have any ideas of what could have gone wrong?
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you were mentioned.Message ID: @.***>

Try this arneis-alv67.readthedocs.io
where I tried to solve the problem (disabling PDF export) via a .readthedocs.yaml configuration file.
I tried also to force a python 3.9 version but that was not the solution.

Try this arneis-alv67.readthedocs.io
where I tried to solve the problem (disabling PDF export) via a .readthedocs.yaml configuration file.

Uhm, so the problem most likely lies in the PDF generation (or maybe the intermediate conversion to LaTeX file format).

If you agree I can PR this solution

Yes, please!
Later we will address how to generate the PDF again.


[SVC-3105] Set up Github Code Spaces

Motivation
Make it easy to set up a Rivet cluster in one click without installing anything.
Potential Issues

Does Code Spaces have a static public IP or will we have to use something like Ngrok?

From SyncLinear.com | SVC-3105

I'm going to work on this issue :)
Some initial questions I want to figure out:

The DEVELOPMENT.md mentions needing a Linode/Cloudflare account. I wonder if there's a way to not require this for local development, or specify more why it's needed
I'm curious how the nix shell should be setup when you start the container. Should it clone the most up-to-date version of Rivet?
Would it be nice to have more images in DEVELOPMENT.md of the UI?

It would probably also be good for nix stuff to be cached ahead of time if possible. Though I don't know if this will cause a problem for image size.

Out of sync with Linear


Way to input

Is there are ways to input to one running command while this command and another commands which running with concurrently can continue output?
For example:
concurently \"firebase experimental:functions:shell\" and \"tsc --watch\"

firebase experimental:functions:shell can output and take an input, tsc --watch only output.

Yes @DmitryGG, since v3.6.0 you can do this.
By default all input goes to the first process, but you can control this with --default-input-target and by prefixing the input with the index/name:
concurently "tsc --watch" "firebase experimental:functions:shell"
1:someinput

For more info, please refer to concurrently --help.


'Add Related Person' search field crashes if a matched patient is returned that has no DoB

🐛 Bug Report
When searching for an existing patient to add as a Related Person (Patients > View Patient > Related Persons tab), if any matching names are found that are of a patient with no date of birth on record, an error is thrown.
To Reproduce
Steps to reproduce the behavior:

Ensure your patient list has a patient record with no DoB set.

Navigate to a different patient's record, then go to the Related Persons tab.

Click 'Add Related Person' and type in the first few characters of the name of the record with no date of birth.

The program attempts to display the DoB alongside the matching name, but crashes on fail.

Paste your code here:
RangeError: Invalid time value
format
C:/Users/UnitA/Projects/hospitalrun-frontend/node_modules/date-fns/esm/format/index.js:371
  368 | var originalDate = toDate(dirtyDate);
  369 |
  370 | if (!isValid(originalDate)) {
> 371 |   throw new RangeError('Invalid time value');
      | ^  372 | } // Convert the date in system timezone to the same date in UTC+00:00 timezone.
  373 | // This ensures that when UTC functions will be implemented, locales will be compatible with them.
  374 | // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/376

View compiled

renderMenuItemChildren
C:/Users/UnitA/Projects/hospitalrun-frontend/src/patients/related-persons/AddRelatedPersonPanel.tsx:64
  61 | isInvalid={!!relatedPersonError?.relatedPerson}
  62 | onSearch={onSearch}
  63 | renderMenuItemChildren={(p: Patient) => (
> 64 |   <div>
     | ^  65 |     {`${p.fullName} - ${format(new Date(p.dateOfBirth), 'yyyy-MM-dd')} (${p.code})`}
  66 |   </div>
  67 | )}

View compiled

▶ 19 stack frames were collapsed.
(anonymous function)
C:/Users/UnitA/Projects/src/components/Typeahead/Typeahead.tsx:53
  50 | const search = async (query: string) => {
  51 |   setIsLoading(true)
  52 |   const results = await onSearch(query)
> 53 |   setOptions(results)
     | ^  54 |   setIsLoading(false)
  55 | }
  56 |
View compiled
This screen is visible only in development. It will not appear if the app crashes in production.
Open your browser’s developer console to further inspect this error.  Click the 'X' or hit ESC to dismiss this message.

Expected behavior
The crash should not happen.
Error catching should be in place.
DoB field should either be mandatory, or have a safe default value assigned when not known.

You may assign this to me to resolve the crash in the date-fns/format function by conditionally calling it, i.e. only if the DoB has a value, like we do in the patient listing.
In terms of preventing the issue from even happening, making DoB or estimated age mandatory sounds like a great idea.

@blestab I've assigned this to you. I agree, I thin making the DoB/estimated age field required sounds like the right solution.


fix: copy data from big frame msg

:facepalm: I forgot to actually copy data from the frame on len(payload) > bufferPoolingThreshold. Also add test to ensure that this works correctly.

/m


feat: add node-lts-codename output

Description:
Adds the installed node's LTS Codename (or lack of) to the action's output.
Related issue:
Don't have an open issue but I find myself in need of this output to determine if a given job should continue-on-error or not irrespective of what my node-version input format was.
Check list:

[ ] Mark if documentation changes are required.
[ ] Mark if tests were added or updated to cover the changes.

lts-syntax CI jobs fail because actions/node-versions is not updated to include the current latest (Hydrogen) yet. See https://github.com/actions/node-versions/pull/117#issuecomment-1291648895


Deploy artifact to the OSSRH Nexus Repository Manager

https://central.sonatype.org/publish/publish-maven/#deployment

This was done for the first release.


Dummy messages and plausible deniability

The current design does not yet provide plausible deniability with respect to ISPs or anyone in control of the WiFi (home, public spaces, work spaces).

A repeated poll pattern by the phone indicates a user awaiting a test result.
A poll pattern followed by a push message type indicates a positive test result.
The current dummy messages in the system do not yet sufficiently hide the above patterns.

This can be solved by a proper dummy message setup, and addressing all potential side channels (size, frequency, patterns, and response times). This will likely increase the overall load, and will need in-depth analysis.
Solving this also involves a trade-off between external dependency (e.g., it would be easier through push-notification but this relies on external parties) and complexity (e.g., the polling setup adds additional structure that must be hidden).

 We'll have to carefully make sure that those requirements are met, as otherwise the plausible deniability is endangered.

Is plausible deniability actually a design goal?
At least when it comes to the employer, people with a positive test result have to tell anyway.
Otherwise they'd need a good excuse why they'll have to stay at home for the next six weeks.
Furthermore, their coworkers will get a notification that they were in proximity to someone tested positive.
If you're at home with some excuse and all your coworkers get a warning, one needs to be really blind to not add one and one.
Regarding the ISP and the one running an access point: These people already know your usage of the app by the regular poll of settings.json and infected.json.
Since you only want to conceil the wait for a test, a possible solution is:
Poll for settings.json, infected.json and additionally for result.json.
So, with every polling, there will be three files anyway and, if there's no result, that file will just say that to the app: no result.
No need for a push.
If you poll every four to six hours anyway, a positive result arrives at latest after this time period, which shouldn't really create that much trouble.
Finally: If you're at someone else's home and use their wifi, you probably want them to know about your positive result, don't you?

Is plausible deniability actually a design goal?
At least when it comes to the employer, people with a positive test result have to tell anyway.

Sure! But not to a company's admin or to a sub contractor having access to the companies router.
Just imagine a "bad admin" giving this informations to stock traders one day ahead... very very bad szenario :)

@egandro So, just poll three files: settings.json, infected.json and results.json.
The results.json contains just a single char: 'p' for positive, 'n' for negative and 'e' for empy.
Since the connection is encrypted anyway nobody can read the results and since all three possibilities have the same size, nobody can infer the result by looking at the ciphertext.

Since the connection is encrypted anyway nobody can read the results, and since all three possibilities

As we discussed this many times before :) there are Companies having their own APNs + Full Trusted Root certificates - so it's either use the firewall/UTM/proxy (that does layer 7 packet inspection) - or no App on the business phones - for security reasons.
SAP / Telekom needs to solve this - because it affects millions of phones.

The items you talk about do a man-in-the-middle-attack and as already mentioned before and also discussed here #93, there are easy techniques to prevent this, such as certificate transparency and DANE.
Just like banks do in their online banking apps.
Yes, the result may be, that the app cannot be used on business smartphones which are forced to route their traffic through the companies firewall, for instance via a forced VPN when not connected to the companies wifi.
In that case, the companies' sysadmins might just create an exception for the well-known servers or simply break the app for their employees - at least on these business smartphones.
There are always special cornercases and this is one of them.
It breaks down to a sysadmin who forces their users to use the company's firewall and insists on the man-in-the-middle-attack.
This is nothing SAP and Telekom can solve in any way.
But it may raise legal questions about whether the sysadmin creates any danger to the employees which may bring the company's lawyers and C*Os into the arena.

@egandro man-in-the-middle attacks are also not the topic of this issue - the pattern of dummy message sending and their goal auf plausible deniability are.
We already asked to stay on topic multiple times in other issues and would highly appreciate if you could just focus on the respective topic at hand.
If you continue to move discussions off-topic, we unfortunately have to issue a temporary ban in accordance with our Enforcement Guidelines for the Code of Conduct..

@tkowark @tklingbeil @cascremers Back to topic, regarding plausible deniability.
For a positive test, wouldn't it be enough for the device to find its own ID in the infected.json?
Now, you only have to communicate a negative result somehow, which, however, is not that urgent at all.
You could simply have the lab call the patient and tell them: "Negative".

@hoelzlw: We also had that exact proposal on the table, to make available a list of hashed GUIDs, which confirm a positive infection.
However, this would have the following consequences:

the hash(GUID) needs to remain on the list until the test result is not considered relevant anymore (we could then start building delta lists, just as we do with the keys)
to make sure people are informed as soon as possible, you'd have to query in a interval of let's say one hour. The deltas would also need to be made available in that interval.
to assure plausible deniability random clients would have to query this list regularly (otherwise you would again be able to identify those, who are really trying to get their test result from the query pattern). Same applies to the regular polling.
you would not be able to communicate negative test results. This is still important, as people might be in self-isolation until they receive their results.

As it in the end did not solve any of our problems, we discarded it again.

This topic is currently being worked on, hence we move the issue to the CWA backlog repository.


pause / save simulation state

currently there is no way to pause or save the simulation state, and then load it to continue the same simulation later
would be nice to offer this

might be hard to ensure consistency

e.g. if the model changes, or the mesh is slightly numerically different, or dune has refined the initial mesh...

see also #285

resolved by #470


openai migrate - "ERROR (code: 200) - Too many params for text: expected maximum 1"

Confirm this is an issue with the Python library and not an underlying OpenAI API

[X] This is an issue with the Python library

Describe the bug
ERROR (code: 200) - Too many params for text: expected maximum 1 when running openai migrate
To Reproduce
openai migrate
Code snippets
No response
OS
macOS
Python version
Python 3.12.5
Library version
1.40.6

Can you share a full stack trace?

Can you share a full stack trace?

@RobertCraigie how do I do that?

oh is that all the output you get after running the command?

So there is no fix for this?

@gigantoq Until #1649 is released you can install Grit directly: https://docs.grit.io/cli/quickstart
Then just run grit apply openai.

I got the same error below while apply "openai migrate" command:
"Your working tree currently has untracked changes and Grit will rewrite files in place. Do you want to proceed? yes
ERROR (code: 200) - Too many params for text: expected maximum 1"
OS- Linux-20.04
python-3.9.12
How to resolve this error?

I just received the same error too.
Python 3.13.0
MacOS Sequoia 15.1.1

Just follow the instructions above.


prevent purging of enabled spaces

Without these changes it is possible to purge a space with one request.

Skip my comment.


Added sending notifications to logged in users

Notifications use dbus (notify-send) to send notifications to logged in users.  So far only important notifications are sent: backup start, end and failure to mount a mountpoint.

Pushed fixed commit. Mistook space for typo, sorry ;)


person name and vehicle detector sensor

with the new homebase3, it shows the person and pet detector binary sensor but not the vehicle binary sensor.
also sensor person name detector shows unknown, i assume this should show the name of the person by facial recognition with homebase3
much appreciated if this could be fixed, would make for some great automations.

https://github.com/fuatakgun/eufy_security/issues/591

If person name is not working correctly, please check with @bropat on eufy-security-ws repository, I cannot help there.
I will include vehicle detector sensor.

vehicle sensor is added to alpha release


Treat user provider as a service in security service provider

Follow-up to https://github.com/silexphp/Silex/pull/1611 and https://github.com/silexphp/Silex/pull/1217.
Fixes https://github.com/silexphp/Silex/issues/1630.

Thank you @hkdobrev.


Transcode via Brotli

Brotli offers 20% better compression than gzip.

Some suggestions here:

Now that the transcoder deals with more than just gzip, maybe the struct and file should be renamed to something more generic related to compression
The SkipGzipped flag prevents decompressing gzip if we're not minifying the content. That should be revised with the addition of brotli, because it may be worthwhile to decompress gzip and compress it with brotli if the client supports it. Actually, there are a lot of interesting combinations here that may be worth measuring, such as decompressing gzip/brotli of an unknown compression level, and recompressing at a higher level, or decompressing, minifying and then recompressing something. Not sure if either scenario results in signifcant savings but still possibly itneresting to look at.

I renamed Gzip to Zip to capture the new functionality, although something like LosslessCompression is more accurate but wordy.
I now force Brotli compression if the client supports it.  I agree other trade-offs exist although increasing gzip compression level has fewer benefits than increasing Brotli compression level:

https://blogs.akamai.com/2016/02/understanding-brotlis-potential.html


Change dependency to opencypher/front-end-9.1

Co-Authored-By: Max Kießling<EMAIL_ADDRESS>

Waiting for maven central release of front-end-9.1


CSS overflow and text alignment issues in PDF/A generation

Description
When generating a PDF with Gotenberg via Chromium and enabling the PDF/A feature, CSS properties such as overflow: hidden and text-align: justify do not behave as expected. The text or item overflows beyond its container, and justified text is left-aligned instead.
Steps to Reproduce

Use the following HTML and CSS code as a file:

<!DOCTYPE html>

  <title>Test PDF</title>
  <meta charset="utf-8">

Lorem ipsum dolor sit amet, consectetur adipiscing elit. In ac risus aliquam, tempor ante sit amet, vehicula erat. Vivamus tempus, diam et pellentesque condimentum, dolor lorem ornare dui, et mattis lorem elit nec neque. Suspendisse at nisl convallis, convallis lectus vitae, blandit velit. Aliquam tempus quam metus, ac efficitur arcu sagittis nec. Cras malesuada bibendum aliquam diam.

Lorem ipsum dolor sit amet, consectetur adipiscing elit. In ac risus aliquam, tempor ante sit amet, vehicula erat. Vivamus tempus, diam et pellentesque condimentum, dolor lorem ornare dui, et mattis lorem elit nec neque. Suspendisse at nisl convallis, convallis lectus vitae, blandit velit. Aliquam tempus quam metus, ac efficitur arcu sagittis nec. Cras malesuada bibendum aliquam diam.

Generate a PDF with Gotenberg using the demo route with PDF/A option enabled, eg;

curl --location 'https://demo.gotenberg.dev/forms/chromium/convert/html' \
--form<EMAIL_ADDRESS>\
--form 'pdfa="PDF/A-1b"'

Observe the output where the text and line overflow, and text is not justified.
Retry without the PDF/A option, all is OK.

Expected Behavior

The text and line (div tag with "line" class name) should be contained within the .wrapper div without overflowing.
The text should be justified as specified in the CSS.

Actual Behavior

The text and line overflow beyond the .wrapper div.
The text is left-aligned instead of justified.

Environment
Tested with v7.x, and 8.x via the demo route
Screenshots
PDF/A enabled:

PDF/A disabled:

Hello @RomainTFasst,
That's an issue with LibreOffice alas (Chromium convert to PDF, then LibreOffice to PDF/A). I cannot do much on my side. You should try https://bugs.documentfoundation.org/!

Thanks for your reply, for those who would like to follow this issue I have opened a bug report here: https://bugs.documentfoundation.org/show_bug.cgi?id=161778

Hi,
Following the answers of LibreOffice (see here), isn't there a modification to consider on the generation of PDF/A on the Gotenberg side? According to them, "it's a bad idea to treat PDF as a format you re-open and re-save. PDF is an export-only format."
Any thoughts about this?

I guess they are right (in a LibreOffice point of view), but that’s the only straightforward way I found to handle PDF/A.
That being said, softwares like Ghostscript offer a PDF -> PDF/A feature, so I guess the use case is not uncommon.

Hi,
Following the answers of LibreOffice (see here), isn't there a modification to consider on the generation of PDF/A on the Gotenberg side? According to them, "it's a bad idea to treat PDF as a format you re-open and re-save. PDF is an export-only format."
Any thoughts about this?

Hi,
I faced the same issue recently.
Did you find a solution (I cannot  or any other way to perform the PDF to PDF/A transformation out of Gotenberg ?
Most of the tools that I found are commercial products and the integration of Ghostscript is not straightforward.
Thank you 🙏