JSExport of abstract class should fail more elegantly

When I tried to export a Scala abstract class, the fastOptJS command fails with this error:
[error] Referring to non-existent method Last_Statement.toIntermediate__sci_List
[error]   called from Last_StatementHelper$.statementsToIntermediate__sci_List__sci_List
[error]   called from Last_IfElse.toIntermediate__sci_List
[error]   called from Last_Expr.toIntermediate__T2
[error]   called from Last_Return.toIntermediate__sci_List
[error]   called from Last_StatementHelper$.statementsToIntermediate__sci_List__sci_List
[error]     (already seen, not repeating call stack)
[error] involving instantiated classes:
[error]   Last_StatementHelper$
[error]   Last_IfElse
[error]   Last_Var
[error]   Last_FunctionCall
[error]   Last_IfExpression
[error]   Last_Lit
[error]   Last_Load
[error]   Last_PointerToName
[error]   Last_BinOp
[error]   Last_StringLiteral
[error]   Last_Expr
[error]   Last_Return

When I google that, I end up here, from which I managed to guess that the problem was that abstract classes require ClassManifests, which breaks the linker.
It would be great if this error message were more obvious: when you try to run the JSExport macro on a abstract class, it should fail immediately.

Indeed. Exporting an abstract class or a trait does not make sense.

@sjrd I would like to forbid @JSExport of abstract classes (exporting traits is already forbidden). However, this will break source compatibility. The following actually "works" (i.e. print "Hello World: 1"):
package helloworld

import scala.scalajs.js
import js.annotation._

@JSExport
abstract class A {
  @JSExport
  def foo: Int = 1
  def bar: Int
}

object HelloWorld extends js.JSApp {
  def main() {
    import js.Dynamic.{global => g}
    val obj = js.Dynamic.newInstance(g.helloworld.A)()
    println(s"Hello World: ${obj.foo}")
  }
}

Note that it is (potentially) non-trivial to turn this abstract class into a normal class.
Should we just emit a non-suppressible warning instead? (or do we need suppression?)

Note that DCE warnings are emitted properly (e.g. if we re-implement foo as def foo = bar).

Ergh. No here I think we should still "break" it. Because this is still a bug, and code "working" like that is wrong anyway. And the impact will be a compilation error with a newer compiler, not a silent change in behavior.


Create a new materialization insert_by_period

Inspired by https://gist.github.com/jessedobbelaere/6fdb593f9e2cc732e9f142c56c9bac87
create a new materialisation: insert_by_period.
Requirements

Support table_type=hive
Support for table_type=iceberg

to make the implementation idempotent add delete from table period={period_to_process} to avoid duplicates in case some error occur

@nicor88 WDYT is this materialisation still needed ? I believe this commit resolves huge source datasets processing.

@svdimchenko yes, I believe that is still needed.

@svdimchenko for more context on my last message see this one https://github.com/dbt-athena/dbt-athena/issues/471

You should support also unique_key, I don't think the gist code has any way to deal with that.

@mycaule why unique_key should included in insert_by_period? Insert by period by definition acts on time, and it delete insert batches of periods. If you need to do upsert by unique_key maybe you consider to use an incremental materialization with merge strategy and of course unique_key.

Using incremental fails for large tables as you discussed in https://github.com/dbt-athena/dbt-athena/issues/471
and the snippet from redshift provided in the discussion was the only quick way to do it in my case.

Which snippet for redshift? Do you mean this https://github.com/dbt-athena/dbt-athena/issues/471#issuecomment-1790572382 ? if so I don't see any reference to unique_key.
Also:
config(materialized='incremental', unique_key='id', force_batch=True))

that is incomplete, that is your default incremental_strategy? I assume merge if you use unique_key.

This snippet talks about Redshift and adapting to Athena: https://gist.github.com/jessedobbelaere/6fdb593f9e2cc732e9f142c56c9bac87
For the moment I use the default incremental_strategy which should be append, using Hive format for the moment because of legacy. For the merge strategy to work I would have to move to Iceberg.

Let's imagine I stay with Hive, I understand that to be able to be able to use insert_overwrite, the partitioned_by field is mandatory
Do you think I can do partitioned_by=['bucket(id, 100)'] to both stay within the 100 partitions limit, and only rewrite on average O(N/100) of my data.

💡 Last night, dbt made this announcement about a new incremental-strategy for time-series event data. It introduces incremental_strategy='microbatch' to enable micro-batching to replace the custom insert-by-period macro's in the wild. It also seems to simplify things a lot, less config and including sampling for dev runs. Let's focus on integrating with this feature when it comes out?

@jessedobbelaere we should indeed consider to support the microbatch in dbt-athena.
We should consider to create another issue to track incremental_strategy microbatch, and closing eventually this one.

Exactly 👍 I've created #715 as placeholder

Hi folks - our team is already looking at supporting our new Microbatch strategy on this adapter so for now, we are going to go ahead and close out this issue since this will address this issue :)


fixed GitLab Discussions API request params

fixed https://github.com/danger/danger/issues/1111
Fixed GitLab Discussions POST API params.
Although not in the GitLab API documentation, old_line and old_path seem to be required parameters when new_path and new_line were used.

          1 Error

:no_entry_sign:
Please include a CHANGELOG entry.
You can find it at CHANGELOG.md.

          1 Warning

:warning:
Tests were not updated

  Generated by :no_entry_sign: Danger

          1 Error

:no_entry_sign:
Please include a CHANGELOG entry.
You can find it at CHANGELOG.md.

          1 Warning

:warning:
Tests were not updated

  Generated by :no_entry_sign: Danger

I was sure those were optional...
What happens if a file is renamed or moved? Is old_path the same as new_path?

Hmm... That's right... Some file needs old_line, but other doesn't.
And comment field of my on-premises GitLab was broken when trying variously... 😂
I'll try to check GitLab CE implementations...

I checked some cases.
TL;DR
This PR was not enough to consider.
Details
I'll write the result below.

old_line should be empty if the noted line is included as MR differences (This case is probably normal).
old_line should be filled if the file is in the MR difference but the line is unchanged.
There may be no way to note on files that do not have differences.
You should not be able to note on files that have just been renamed and have no differences, but noting without specifying old_line and old_path will break the discussion field. (See this issue)
In other cases, omitting old_line may break the discussion filed.
If you omit old_path, comments will not appear in the "Changes" column. (Is this expected behavior?)

I'll consider how to fix based on these specs.

good luck! Sorry it's tricky

I fixed the merge conflict

I could possibly fix.
Since I may not have grasped the specification such as sticky correctly, could you code review the correction part of spec?
(Also, please correct my English if it is wrong.)

Looks good to me. I only left one small comment I would address.

Is this going to be merged soon? :)

Is this going to be merged soon? :)

Sorry, I don't know... If you want to test this now, add the line below to your Gemfile.
gem 'danger', :github => "oboenikui/danger", :branch => "fix-gitlab-mr-comment"

Is this going to be merged soon? :)

Sorry, I don't know... If you want to test this now, add the line below to your Gemfile.
gem 'danger', :github => "oboenikui/danger", :branch => "fix-gitlab-mr-comment"

we use gem 'danger-gitlab' is it safe to use the danger version instead?

Since the dependencies of danger-gitlab are very simple, I think that there is no big problem for testing. (except if there is something wrong with the master branch)
https://github.com/danger/danger-gitlab-gem

Since the dependencies of danger-gitlab are very simple, I think that there is no big problem for testing. (except if there is something wrong with the master branch)
https://github.com/danger/danger-gitlab-gem

I need to use danger-gitlab.. can't use it without.

I'm ok to merge it. @orta?

I tested and its still not working. I still get this output
BUILD SUCCESSFUL in 1m 26s
28 actionable tasks: 20 executed, 8 from cache
bundler: failed to load command: danger (/usr/share/rvm/gems/ruby-2.6.2/bin/danger)
Gitlab::Error::NotFound: Server responded with code 404, message: 404 API Version Not Found. Request URI: https://gitlab.intern.proactive.nl/api/v4http://gitlab.intern.proactive.nl/api/v4/projects/26/merge_requests/434/discussions?id=26¬eable_id=434&page=2&per_page=20
  /usr/share/rvm/gems/ruby-2.6.2/gems/gitlab-4.10.0/lib/gitlab/request.rb:67:in `validate'
  /usr/share/rvm/gems/ruby-2.6.2/gems/gitlab-4.10.0/lib/gitlab/request.rb:46:in `block (2 levels) in <class:Request>'
  /usr/share/rvm/gems/ruby-2.6.2/gems/gitlab-4.10.0/lib/gitlab/paginated_response.rb:92:in `next_page'
  /usr/share/rvm/gems/ruby-2.6.2/gems/gitlab-4.10.0/lib/gitlab/paginated_response.rb:40:in `each_page'
  /usr/share/rvm/gems/ruby-2.6.2/gems/gitlab-4.10.0/lib/gitlab/paginated_response.rb:47:in `auto_paginate'
  /usr/share/rvm/gems/ruby-2.6.2/bundler/gems/danger-55a5431104e8/lib/danger/request_sources/gitlab.rb:78:in `mr_comments'
  /usr/share/rvm/gems/ruby-2.6.2/bundler/gems/danger-55a5431104e8/lib/danger/request_sources/gitlab.rb:165:in `update_pull_request_with_inline_comments!'
  /usr/share/rvm/gems/ruby-2.6.2/bundler/gems/danger-55a5431104e8/lib/danger/request_sources/gitlab.rb:158:in `update_pull_request!'
  /usr/share/rvm/gems/ruby-2.6.2/bundler/gems/danger-55a5431104e8/lib/danger/danger_core/dangerfile.rb:247:in `post_results'
  /usr/share/rvm/gems/ruby-2.6.2/bundler/gems/danger-55a5431104e8/lib/danger/danger_core/dangerfile.rb:278:in `run'
  /usr/share/rvm/gems/ruby-2.6.2/bundler/gems/danger-55a5431104e8/lib/danger/danger_core/executor.rb:29:in `run'
  /usr/share/rvm/gems/ruby-2.6.2/bundler/gems/danger-55a5431104e8/lib/danger/commands/runner.rb:72:in `run'
  /usr/share/rvm/gems/ruby-2.6.2/gems/claide-1.0.2/lib/claide/command.rb:334:in `run'
  /usr/share/rvm/gems/ruby-2.6.2/bundler/gems/danger-55a5431104e8/bin/danger:5:in `<top (required)>'
  /usr/share/rvm/gems/ruby-2.6.2/bin/danger:23:in `load'
  /usr/share/rvm/gems/ruby-2.6.2/bin/danger:23:in `<top (required)>'
ERROR: Job failed: exit status 1

@pbendersky - I trust you, merge when you want and I'll make a release when I notice 👍

@reshadf this looks different to what we are addressing in this PR... What are your GitLab environment variables?

@pbendersky - I trust you, merge when you want and I'll make a release when I notice 👍

How do you feel about the inline attrbute in the Comment class? It makes sense in this context, but that class is used for all backends.

I'm alright with it 👍

@reshadf this looks different to what we are addressing in this PR... What are your GitLab environment variables?

please see #1111 I followed the setup guide on danger.systems. I used the environment variables defined there
DANGER_GITLAB_HOST=git.domain.com
DANGER_GITLAB_API_BASE_URL=https://git.domain.com/api/v4
DANGER_GITLAB_API_TOKEN

I've tried different scenarios and seems to be working for me. I'll merge it, as it's better than what we currently have. If we find more errors, we can always correct them later.


Blog revamp

The blog is functional and works well today, but as we start to add more articles its usability is going to break down.
We need the following changes to make it usable:

[ ] Need some kind of filtering. Ideally we could filter by post type [announcement, learn, insight, etc] (could be a radio button group). A text search would be great too, but this could potentially introduce lots of complexity, so a plan should be proposed first for how this should work.
[ ] Would be nice to have more page sections:

Hero: featured articles
Search / filter
Option to subscribe to blog posts (we will need to create a Hubspot form for this and inline it in the page)
Blog-appropriate CTAs at the bottom - could just use our existing footer CTA

[ ] For each post: https://github.com/firezone/gtm/issues/269
[ ] Investigate what would be required to integrate Sanity CMS for just the blog: https://github.com/firezone/gtm/issues/182

@Patticatti Same workflow as usual - design / investigate / plan first before implement


XSS vulnerability of markedjs

marked is vulnerable to XSS attacks: issues here
Therefore angular2-markdown introduces critical security issues into angular app, when it's used to format user input.

@mrkvon  You can pass
mangle: true to the parser.
import { MarkdownService } from 'angular2-markdown';
@Component({
    selector='my-comp',
    template: `
    <markdown>
     > Block
     > quote
     > here
    </markdown>
    `,
})
export class MyComp {
  constructor(private _markdown: MarkdownService) {}

  ngOnInit() {
    this._markdown.mangle = true
  }


"keep" did not retain newest images

Contrary to my expectations, the "keep" parameter did not retain the newest X images.  The remaining images are from random dates.
Is there a regex expression to use in "tag_filter_any", so that it keeps the images with the "latest" tag?  My tags look something like:
(b095b33c-9b58-aaaa-bbbb-xxxxxxxxxxxxxxx) (latest)
(xnsdfnwe4-wr5f-9b58-bbbb-xxxxxxxxxxxxxxx)
(kkfgn8jf8j4-q4fg-aaaa-1233-xxxxxxxxxxxxxxx)
etc.
Thanks for the great package!  My artifact registry had grown into the hundreds of GB.

Images are kept from their creation date.

Why query did you run?
What is the output of the command with GCRCLEANER_LOG=debug?

Do you have docker installed?
If you're running it via Cloud Run, you'll need to set the environment variable to GCRCLEANER_LOG to debug

Yes, Docker is installed.  I tried with it running and not
Attached is a log file in JSON format.  For some reason, Google's CSV output is not formatted correctly.
downloaded-logs-20220718-153815.csv

Hi @GAEfan
It's not a CSV, it's a JSON document. What version of gcr-cleaner are you running?
Images are deleted by created date, not updated date.

Yes, I downloaded in JSON format. What I meant was that when I download as CSV, Google corrupts the format. So I used JSON instead.
I do not see the version listed.  But I installed it using the instructions here just yesterday, so it should be current.  I got the image from us-docker.pkg.dev/gcr-cleaner/gcr-cleaner/gcr-cleaner per your instructions.
Yes, I want it to sort by creation date, and delete the oldest.  But, it looks like is is not sorting by creation date before deleting.

Yes, that was what I was expecting.  But, when I ran it, this:

turned into this:

Just by random chance, the latest version still remained.

For the ttl-18h repo, the first 3 repos it found were:

sha256:ba591f4b476a3450e3b43d3c22a036aa71658a21ac1ed2511b101f5867f8b64e (1f08bfef-3716-44ea-8cf6-fc9ad76ad16e)
sha256:ec692229b75f3ed581434245f9c5db574c088e4ab0dbe2a19031ed1e731ae483 (a69b86cd-f0e6-434f-8dc4-669f7e9d3007)
sha256:022f1544b5d6c381b0ea5896a1e7240f37a00622dda854c1dd78c363c349714e (49acb344-f755-45b5-bd37-71bffd6aaf57)

After that, it deleted:

sha256:16098d13ba6fb56180a960eac990e052281ab0d45a32eaa1849d15966594df38 (f0c85afd-b35a-4ca5-bd9d-916cc5408fdb)
sha256:1caadfb34077cdc73760db3e48c41883c4d71ccf91789f6c6bd84133a2db428c (856517be-b2bc-4cc4-b87a-67ec5df4a345)
sha256:8958ac4c19acad39f479729fbd554713cc692dc10d15f7e313a4c2712d63b968 (433d5ede-25f0-4a25-8d5c-99e7ca2bcc98)
sha256:9a7a645eccf541b86e44e3d27b4e3165dffef17f3c63bc377dfaba3e2ded07ed (0c2f81a5-9a10-4798-8b24-0a61f56fb720, latest)

Then it moved on to ttl-7d, the first 3 repos it found were:

sha256:066095b8a841f1af76da96d63e3481c9f056a4cc1f2bbaab50f24b1cba0b528c (b4085970-83fa-4981-b712-d4874cdd4638, latest)
sha256:4c0c6576f4aef77382533ec4f5aaf73a46406cfb3d809c0fb9f1b916c66dd39f (9b012d86-8e3c-4ead-89d5-6ad2a738bc03)
sha256:58d71ac7daa6c2dd181e66d7279a118faa328804137c463b103839905d15b0ba (d51a0e6f-1b9e-4a47-83fa-4f96545fc723)

Then it deleted:

sha256:6bdcf42f466176bb801f81fc3000d324c1b0ee0f25f21d151ce2d906bdde7288 (f9b9e405-a872-4c7d-94b0-49f5e798737d)
sha256:6edf7fd662a6ab1ab7649615408cf5f62519a99287f81c2b01eff3c3118066b4 (6bb12ed6-a33f-4679-b00d-e65dae5ab008)
sha256:6f49c07833ac20cb3d4781c09fc61974f5a8e87d804e767e67174333ba99d77b (2b7e40aa-4dc8-441e-a3dc-080dd8aaa2fe)
sha256:ff1464efd9b145cb1a19ef3e6dd87e0a4867dc203bc892ecc1bb81e2e6bfcf2a (28c97fff-47dc-4782-8590-2ba0b6aaeb97)

I opened https://github.com/GoogleCloudPlatform/gcr-cleaner/pull/90 which would add more detailed timestamp information to see if that is the right order of operations.

Great!  I look forward to testing that. The images I posted above were from ttl-7d. The first 3 it found were not in proper chron order.

OK, getting somewhere... The created tags are not being set properly. In my case, uploaded is the timestamp for when I ran cloud deploy, and would be the same as created, but not sure that is the case for everyone.
"uploaded": "2022-07-18T22:14:33Z",
"created": "1980-01-01T00:00:01Z",

Hmm - that feels like an Artifact Registry bug.

Yeah, that seems right.  This seems to be intentional on Google's part:
https://github.com/GoogleCloudPlatform/buildpacks/issues/21
Can you add a secondary sort on uploaded date?

Great, thanks! v0.8.0 seems to be working fine.  Thanks for the great package and prompt responses!


Elias/cronos anchor deps

updated update-deps.sh script to update all Cargo.toml files with cronos-anchor-*

Be Advised no Admin or team will ever DM you or share you any link so you can only chat Here on Live Chat with Anchor Agent  On LIVE SUPPORT LIVE CHAT


Gradle API JARs are not true MR-JARs

Expected Behavior
The gradle-api JARs (re-published by Nokee at https://mvnrepository.com/artifact/dev.gradleplugins/gradle-api) should comply with the rules for MR-JARs https://docs.oracle.com/javase/10/docs/specs/jar/jar.html#multi-release-jar-files
Current Behavior
JARs are missing a MANIFEST.MF file. Without it they can't set the Multi-Release: attribute.
Also, there are 3 versioned classes at the wrong location (for the 6.9.2 release):
        0  02-01-1980 00:00   org/gradle/internal/impldep/META-INF/
        0  02-01-1980 00:00   org/gradle/internal/impldep/META-INF/versions/
        0  02-01-1980 00:00   org/gradle/internal/impldep/META-INF/versions/9/
      868  02-01-1980 00:00   org/gradle/internal/impldep/META-INF/versions/9/module-info.class
        0  02-01-1980 00:00   org/gradle/internal/impldep/META-INF/versions/9/org/
        0  02-01-1980 00:00   org/gradle/internal/impldep/META-INF/versions/9/org/junit/
        0  02-01-1980 00:00   org/gradle/internal/impldep/META-INF/versions/9/org/junit/platform/
        0  02-01-1980 00:00   org/gradle/internal/impldep/META-INF/versions/9/org/junit/platform/commons/
        0  02-01-1980 00:00   org/gradle/internal/impldep/META-INF/versions/9/org/junit/platform/commons/util/
     5111  02-01-1980 00:00   org/gradle/internal/impldep/META-INF/versions/9/org/junit/platform/commons/util/ModuleUtils$ModuleReferenceScanner.class
    11253  02-01-1980 00:00   org/gradle/internal/impldep/META-INF/versions/9/org/junit/platform/commons/util/ModuleUtils.class

They should be at
        0  02-01-1980 00:00   META-INF/
        0  02-01-1980 00:00   META-INF/versions/
        0  02-01-1980 00:00   META-INF/versions/9/
      868  02-01-1980 00:00   META-INF/versions/9/module-info.class
        0  02-01-1980 00:00   META-INF/versions/9/org/
        0  02-01-1980 00:00   META-INF/versions/9/org/junit/
        0  02-01-1980 00:00   META-INF/versions/9/org/junit/platform/
        0  02-01-1980 00:00   META-INF/versions/9/org/junit/platform/commons/
        0  02-01-1980 00:00   META-INF/versions/9/org/junit/platform/commons/util/
     5111  02-01-1980 00:00   META-INF/versions/9/org/junit/platform/commons/util/ModuleUtils$ModuleReferenceScanner.class
    11253  02-01-1980 00:00   META-INF/versions/9/org/junit/platform/commons/util/ModuleUtils.class

For Gradle 7.6, versioned bouncycastle classes were relocated to org/gradle/internal/impldep/META-INF/versions/9, org/gradle/internal/impldep/META-INF/versions/11, and org/gradle/internal/impldep/META-INF/versions/15. A few classes from Jakarta and Glassfish are also at the wrong location.
Context
This becomes an issue when using these JARs as direct dependencies (via the nokee publications) when either Maven or Gradle enforcer EnforceBytecodeVersion rule is used, as (supposedly) versioned classes won't be filtered appropriately and trigger build failures as a result.
Steps to Reproduce

Download https://repo1.maven.org/maven2/dev/gradleplugins/gradle-api/7.6/gradle-api-7.6.jar
Unzip and inspect. Note there's no MANIFEST.MF file and versioned classes are at the wrong location.

Your Environment

Build scan URL:

As I understand those JARs are taken directly from what the gradleApi() creates in which case Gradle would be at fault no matter if Gradle itself does not publish said JARs.

@aalmiray if we wanted to publish those jars we would make them consumable, but it's not the case yet

I understand Gradle did not wish for these JARs to be consumable outside of the Gradle Build Tool itself. Yet, here we are.
I have no clue who decided how to build said JARs but the fact remain is those JARs do not follow the MR-JAR guidelines. I understand why Gradle Core could not use the Gradle shadow plugin to create proper fatjar/uberjar/shaded MR-JARs. OTOH just cobbling together all classes with a simple name relocation technique falls short of doing things right.
Nokee (or someone else outside of Gradle for that matter) could repackage those JARs but then the chain of ownership and authenticity would be broken, wouldn’t it? And that would cause even bigger problems with trust, ownership, security, and more.
So why don’t nip it at the bud and build proper MR-JARs from the get go? What’s the hold up?

In general, there should only be a compileOnly (or compileOnlyApi) dependency on the Gradle API given they are supposed to execute within Gradle environment (where the API is provided). The outlined issue is not Nokee's problem; it's how the gradleApi() or gradleTestKit() generates the JARs. If that poses any issue, you should be able to see the same issue if you use the generated Gradle JAR with the appropriate Java version. If you can confirm this if true, that would be great.

I have no clue who decided how to build said JARs but the fact remain is those JARs do not follow the MR-JAR guidelines. I understand why Gradle Core could not use the Gradle shadow plugin to create proper fatjar/uberjar/shaded MR-JARs. OTOH just cobbling together all classes with a simple name relocation technique falls short of doing things right.

If I remember correctly, the Gradle shadow technique pre-dates the shadow plugin. It worked back then and today, so why change it? Nokee offers the generated Gradle API JARs as if they were external dependencies. The process is public and welcomes any improvements. I think what would be beneficial to the conversation is having a concrete example(s) that demonstrate the process poses issues. Then we can look at which side should be fixed (producer or consumer).

Nokee (or someone else outside of Gradle for that matter) could repackage those JARs but then the chain of ownership and authenticity would be broken, wouldn’t it? And that would cause even bigger problems with trust, ownership, security, and more.

The security concern is valid for everything not hosted on gradle.org, meaning SDK manager, Homebrew, etc. At Nokee, we use transparency. The process is public, and everyone is welcome to verify that the JARs produced match the process. If they don't please raise an issue so we can address it.


Both www.rethinkdb.com and rethinkdb.com should redirect to the same domain

Right now if I go to www.rethinkdb.com, the page will load and I remain at this domain. As well if I go to rethinkdb.com it stays at this domain.
If you try to go to www.twitter.com you are redirected to twitter.com and if you go to twitter.com it stays at twitter.com. The same thing but the opposite with www.google.com and google.com but the action is consistent and I think we should be doing the same.
This affects browser caching and probably other mysterious SEO side affects.

We moved to Netlify and also set the CNAME.


training time

Hello, thank you for sharing this wonderful package.
Hello, I would like to ask, how many GPU cards did you use and how long did it take to train the 3D brain MRI generation on the biobank? Was this process completed on over 30,000 scans?
Looking forward to your reply, and thank you very much.

Hi,
It was trained on over 30k scans, details here https://arxiv.org/abs/2209.07162
I'm not sure about how long it took and how many GPUs were used - maybe @Warvito can help?


chore: bump @std/streams to 0.224.2

:package: @std/streams 0.224.1 → 0.224.2

Welcome to Codecov :tada:
Once you merge this PR into your default branch, you're all set! Codecov will compare coverage reports and display results in all future pull requests.
Thanks for integrating Codecov - We've got you covered :open_umbrella:


Build with the "org.embulk.embulk-plugins" Gradle plugin

Hi @hakobera -san,
Thanks for contributing with the Embulk plugin over the open-source community!
In Embulk, we're recently recommending to use the org.embulk.embulk-plugins Gradle plugin so that:

It can work with the latest Gradle easily
It does not have to depend on the JRuby/Gradle plugin, which is not very stable
It can be released as a valid Maven-based plugin distribution.
It can manage its dependencies easily with the "Dependency lock" feature in Gradle.

See https://github.com/embulk/gradle-embulk-plugins for more information.
Along with that,

Upgrade the Gradle wrapper to use Gradle 6.2.2
Upgrade the Bintray Gradle plugin to 1.8.4 (latest)
Upgrade depending embulk-core to 0.9.23 (v0.9 latest)
Set JavaCompile option for deprecation and unchecked
Catch up with the latest Embulk API specs and behaviors

Replace Exec.getLogger with LoggerFactory.getLogger
Replace Guava Optional to java.util.Optional
Remove use of Guava Throwables.propagate
Remove use of @ConfigInject by replacing with Exec.getBufferAllocator
Refactor the variable name with CommitReport to TaskReport

They are following Embulk's core-side changes described in: https://www.embulk.org/articles/2020/07/01/meetup-20200709.html
(This PR follows #54.)
Can you have a look when you have time?

LGTM


update metricstory name to convertly

Proposed changes
Need to update naming but also opened a support ticket as well to change the name destination
Merge timing
asap
Related issues (optional)

closing this and opening a new PR so name change is reflected accuratley: https://github.com/segmentio/segment-docs/pull/6809
@randallkanna I added some comments for sections that need to be updated, can you let me know what should be used?


Soft Delete available for Classic disks??

This page mentions:
"Is soft delete available for virtual machine disks?
Soft delete is available for both premium and standard unmanaged Disks. "
Can you please clarify how it is for Classic Disks?
In Classic, Disks is different than Blobs - and I'm not aware of a soft delete feature for Classic Disks.
That does doesn't make it clear and confuse users.

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

ID: 78964956-a479-5fbe-710d-19e361542a36
Version Independent ID: 15e70532-6d39-47ed-6932-ef3eb88e33f0
Content: Soft delete for Azure Storage blobs
Content Source: articles/storage/blobs/storage-blob-soft-delete.md
Service: storage
Sub-service: blobs
GitHub Login: @tamram
Microsoft Alias: tamram

@axelgMS Thanks for your question. We are checking on this and will respond to you soon.

@axelgMS
Is soft delete available for virtual machine disks?
Soft delete is available for both premium and standard unmanaged Disks. Soft delete will only help you recover data deleted by Delete Blob, Put Blob, Put Block List, Put Block and Copy Blob. Data overwritten by a call to Put Page is not recoverable.
Disks are pages blobs underlying. So soft delete protects all put blob, including put blob for page blobs.

@axelgMS We will now proceed to close this thread. If there are further questions regarding this matter, please tag me in your reply. We will gladly continue the discussion and we will reopen the issue.

@SumanthMarigowda-MSFT - so there's a difference between Disks and Blobs.
Soft Delete is a storage feature, so my question is "how does this apply to a Compute feature like a Disk" ?
in Classic world, the Disk objet is a logical object above the underlying VHD blob.
So you can soft-delete a BLOB, but you can't do that for a DISK…
My ask is to get that clarified in the doc.

@axelgMS - As you've pointed out, unmanaged VHDs are page blobs in an Azure Storage account. So you can perform any action on them that you can perform on a page blob, including soft delete.
In terms of how this would affect a disk that's attached to a VM, I believe you would need to reattach it if you recover the page blob.

thanks @tamram
We had a customer calling Support to ask for soft deleting a Classic Disk, which is not possible as it only exists for the blob. So yes, customer will have to recreate the disk above the recovered blob.
My ask is to make this part clearer in the doc.
"Is soft delete available for virtual machine disks?
Soft delete is available for both premium and standard unmanaged Disks. Soft delete will only help you recover data deleted by Delete Blob, Put Blob, Put Block List, Put Block and Copy Blob. Data overwritten by a call to Put Page is not recoverable."


Fix Fix incompatibility when upgrade from 2.0 to 2.1

Proposed changes
Issue Number: close #xxx

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run buildall


[PATCH] Add all-contributors config

Follow-on from #84 😢

https://github.com/all-contributors please add @VeckoTheGecko for ideas, project management, and coding

@all-contributors please add @VeckoTheGecko for ideas, project management, and coding

https://github.com/all-contributors please add @VeckoTheGecko for ideas

@all-contributors please add @VeckoTheGecko for ideas

@all-contributors please add @VeckoTheGecko for ideas, project management, and coding

@all-contributors please add @VeckoTheGecko for ideas, project management, and coding

@all-contributors please add @VeckoTheGecko for ideas, project management, and coding

@all-contributors please add @VeckoTheGecko for maintenance, project management, coding, and content


2023 Update

Hey! I think your code's great, but it doesn't work too well anymore now that Musescore updated their site to offload images when they're hidden from view.
Here are the main features I added:

Loads in all sheet music automatically with no user scrolling needed.
Waits for all images in cleared HTML page to load before running window.print()
Properly sizes images so that they fit nicely on A4 paper.
Wrapped in a self-invoking function to avoid polluting the global scope.

I've tested this on a 151-page piece, and it works.:D
Let me know what you think!
If you're just visiting, here's the updated code that you can use:
eval(await (await fetch("https://raw.githubusercontent.com/cirex-web/MuseScore-Printer/master/originalCode.js")).text())

Why does this even work?
We can exploit the fact that Musescore calculates the height of each page using the overall scrollHeight (minus some constant) and dividing by (approximately) the number of pages. (Rather than using the actual page heights.) The number of pages is hardcoded somewhere, but we can change the total height at will.
What does this have to do with loading pages? Well, pages get offloaded when they aren't visible on the screen, but that's merely determined by the scrollbar position and the calculated heights. (For pages underneath the current one, $0.scrollTop+$0.clientHeight (where $0 is the scroll container) gets compared with precalculatedPageHeight*pageIndex (plus or minus some factor) to determine if it should load. (There's a similar comparison done for pages above the current visible page)
So if we fudge the precalculatedPageHeight to be very, very small, Musescore will think that all the pages are in the visible range of the scroll container when you've scrolled to the very top. However, it's not as simple as setting the inner elements to a minuscule height, as that would get rid of the scroll bar and prevent the rendering function from firing. So we must preserve the scrollbar, but we need to do so in a way that all elements are still "visible" in the viewing area.
(From this point forwards, "page" will refer to the fake/calculated page heights. The real pages are all hidden at this point.)
By some extremely rough estimates, we can afford to have two pages exist outside the viewing area thanks to Musescore's internal offloading code. (It leaves a nontrivial amount of margin) With a page height being calculated as scrollHeight/numPages, the viewport (viewing area) height must be greater than scrollHeight/numPages*(numPages-2) in order for all pages to be visible. This leads to a pretty tight viewportHeight/scrollHeight ratio of at least 0.996 for a 500-page score, a probable upper bound for Muserscore pieces. That's not a problem though, as heights in the DOM can be massive! Just to be safe, in the current implementation, the scroll height is set to 10000px while the viewport height is 9999px. (Decimals don't work well in terms of scrolling...) Theoretically, these numbers can allow a download of up to 20,000 pages using our formula from before, but I've never tried.

This doesn't work on Windows for some reason... Looking into it

Fixed - it should work everywhere now

Fantastic.  I just tested in a few browsers and it works great for me.  Thank you for the update!!


Add S3ObjectLambdaEvent

Issue #, if available:
#525
Description of changes:
I used JSON files for testing, similar to the repository below.
https://github.com/awslabs/aws-lambda-rust-runtime/tree/main/lambda-events/src/fixtures
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Comparison is base (752114b) 72.93% compared to head (e6212d1) 72.93%.

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #536   +/-   ##
=======================================
  Coverage   72.93%   72.93%
=======================================
  Files          26       26
  Lines        1456     1456
=======================================
  Hits         1062     1062
  Misses        322      322
  Partials       72       72

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


pkg/gadgets/top/ebpf: introduce cumulruntime and cumulruncount

Introduce cumulruntime and cumulruncount
This PR adds cumulative stats (runtime and run count) that use times and counters relative to the start of the trace (instead of relative to the last interval and absolute values, which are already handled).
I also refactored how previous stats were saved to avoid unnecessary lookups.
How to use
kubectl gadget top ebpf -o custom-columns=node,progid,type,name,runtime,runcount,totalruncount,totalruntime,cumulruncount,cumulruntime --sort totalruntime

will output something like this:
NODE             PROGID   TYPE             NAME                  RUNTIME   RUNCOUNT TOTALRUNCOUNT TOTALRUNTIME CUMULRUNCOUNT CUMULRUNTIME
minikube         2346     Tracing          gadget_ebpftop        72.92µs       1059         18012   1.676893ms         18012   1.676893ms
minikube         24       CGroupDevice                            9.04µs         32           532    358.576µs            80     47.168µs
minikube         85       CGroupDevice                                0s          0            10     25.543µs             0           0s
minikube         2339     CGroupDevice                                0s          0            12      5.043µs             0           0s
minikube         13       CGroupSKB                                   0s          0             0           0s             0           0s
minikube         8        CGroupSKB                                   0s          0             0           0s             0           0s

Fixes #853

The code LGTM.
I think the guide should have a separate section using just cumul{Runtime,RunCount} (without the current and total stats) and the option --timeout 60, showing how it can be used to benchmark for 1 minute.

Good idea - I think we can just completely replace the total* part. It might confuse more than it actually helps. WDYT?

Good idea - I think we can just completely replace the total* part. It might confuse more than it actually helps. WDYT?

To remove from the guide? Fine for me.


wrong folder

Here is the current path where VsDevCmd.bat is located.
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\Tools

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

ID: 91bc630b-9e6d-3015-a110-f15311e6924f
Version Independent ID: 658594e6-77cb-e41c-3307-bb0a4e6224e1
Content: How to: Set Environment Variables for the Visual Studio Command Line
Content Source: docs/csharp/language-reference/compiler-options/how-to-set-environment-variables-for-the-visual-studio-command-line.md
Product: dotnet-csharp
GitHub Login: @BillWagner
Microsoft Alias: wiwagn

Isn't that the path that the documentation lists, @johnnyagerard? It provides two possible paths:

\Program Files\Microsoft Visual Studio\Version\Offering\Common7\Tools
\Program Files (x86)\Microsoft Visual Studio\Version\Offering\Common7\Tools

Version here is 2017, and offering in your case is Community. So \Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\Tools.
I'll close this issue. But if I've misunderstood or missed something, please feel free to respond.


Failed to compile stdweb-derive

I tried to clone the project and build at (according to readme) but it fails to compile - I'm also pretty new to rust so I've not really a clue how to fix that.
   [...]
   Compiling enum_primitive v0.1.1
   Compiling quote v0.6.8
   Compiling syn v0.15.14
   Compiling serde_json v1.0.32
   Compiling serde_derive v1.0.80
   Compiling stdweb-derive v0.5.1
error[E0554]: #![feature] may not be used on the stable release channel
   --> C:\Users\Wischi\.cargo\registry\src\github.com-1ecc6299db9ec823\stdweb-0.4.10\src\lib.rs:115:5
    |
115 | /     feature(use_extern_macros)
116 | | )]
    | |_^
error: aborting due to previous error
For more information about this error, try `rustc --explain E0554`.
error: Could not compile `stdweb`.

To learn more, run the command again with --verbose.
error: build failed
error: 'cargo web' exited with a non-zero exit code: exit code: 101

Did I miss something?
Thanks and advance

Hi @wischi-chr
As it says here

error[E0554]: #![feature] may not be used on the stable release channel

the API uses features from rust that are not yet considered stable. Try using the nightly build toolchain.
You can follow instructions here:
https://doc.rust-lang.org/stable/book/2018-edition/appendix-06-nightly-rust.html#rustup-and-the-role-of-rust-nightly

Hi @ASalvail
Switched to rustc nightly now it works.
Thank you for your help.


Use an http server instead of pod logs for bundle unpacking

When unpacking a bundle, the current architecture launches a pod that reads a bundle's filesystem and writes a JSON map containing file paths and base64-encoded file content to the pod's log. Once it has completed writing the log, it exits.
This is simple and works fairly well, but it has several problems:

It requires a duplication of the bundle data on the node's disk. The bundle data is written once in the actual pod filesystem and another time in the pod log.
It is possible that the pod logs are eventually garbage collected for complete pods.

We can improve this by having the pod run a simple http server that serves a tar.gz of the bundle content. This solves both problems:

On each request it reads the pod filesystem to send the response, so no extra copies are written in the unpack pod
It serves the filesystem via http and is now running, thus completely avoiding the problem of pod log garbage collection.

In a follow-up, it might be worth considering another layer of optimization that removes the need for the intermediate configmaps. We can just have the bundle instance controller request the FS directly from the running pod.

Moving to backlog for now since it's unclear we will merge the implementation in #155.

This is no longer relevant as the implementation of bundle unpacking has changed.


⚠ Mobitopup has degraded performance

In 1fdc383, Mobitopup (https://napcard.voz.tech) experienced degraded performance:

HTTP code: 200
Response time: 22822 ms

Resolved: Mobitopup performance has improved in 8ebf82a.


Custom showwarning fails when source isn't available

I run tests locally with Python 3.8
It tries to show a warning about something
about_warnings.show_warning is used
It calls inspect.getouterframes
which calls inspect.findsource
which fails on the filename <frozen importlib._bootstrap> because it has no source code

Here's a more direct repro:
from friendly_traceback import about_warnings

about_warnings.enable_warnings()

exec("""
import warnings

warnings.warn("This is a warning")
""")

which shows
Traceback (most recent call last):
  File "/home/alex/.config/JetBrains/PyCharm2022.2/scratches/scratch_2291.py", line 5, in <module>
    exec("""
  File "<string>", line 4, in <module>
  File "/home/alex/.pyenv/versions/3.8.5/lib/python3.8/warnings.py", line 109, in _showwarnmsg
    sw(msg.message, msg.category, msg.filename, msg.lineno,
  File "/home/alex/work/friendly-traceback/friendly_traceback/about_warnings.py", line 167, in show_warning
    for outer_frame in inspect.getouterframes(inspect.currentframe()):
  File "/home/alex/.pyenv/versions/3.8.5/lib/python3.8/inspect.py", line 1491, in getouterframes
    frameinfo = (frame,) + getframeinfo(frame, context)
  File "/home/alex/.pyenv/versions/3.8.5/lib/python3.8/inspect.py", line 1465, in getframeinfo
    lines, lnum = findsource(frame)
  File "/home/alex/.pyenv/versions/3.8.5/lib/python3.8/inspect.py", line 840, in findsource
    if pat.match(lines[lnum]): break
IndexError: list index out of range

How are you running it?  I cannot reproduce it.
> python ignore4.py
`UserWarning`: This is a warning

(venv-friendly-traceback-3.8) C:\Users\Andre\github\friendly-traceback
> python -m friendly_traceback ignore4.py
`UserWarning`: This is a warning

(venv-friendly-traceback-3.8) C:\Users\Andre\github\friendly-traceback
> type ignore4.py
from friendly_traceback import about_warnings
about_warnings.enable_warnings()

exec("""
import warnings

warnings.warn("This is a warning")
""")

I am using Python 3.8.10; perhaps this causes the different behaviour.

Ok, I can reproduce it with 3.7.9
(venv-friendly-traceback-3.7) C:\Users\Andre\github\friendly-traceback
> python ignore4.py
Traceback (most recent call last):
  File "ignore4.py", line 8, in <module>
    """)
  File "<string>", line 4, in <module>
  File "C:\Users\Andre\AppData\Local\Programs\Python\Python37\lib\warnings.py", line 110, in _showwarnmsg
    msg.file, msg.line)
  File "C:\Users\Andre\github\friendly-traceback\friendly_traceback\about_warnings.py", line 167, in show_warning
    for outer_frame in inspect.getouterframes(inspect.currentframe()):
  File "C:\Users\Andre\AppData\Local\Programs\Python\Python37\lib\inspect.py", line 1490, in getouterframes
    frameinfo = (frame,) + getframeinfo(frame, context)
  File "C:\Users\Andre\AppData\Local\Programs\Python\Python37\lib\inspect.py", line 1464, in getframeinfo
    lines, lnum = findsource(frame)
  File "C:\Users\Andre\AppData\Local\Programs\Python\Python37\lib\inspect.py", line 828, in findsource
    if pat.match(lines[lnum]): break
IndexError: list index out of range

Ok, fixed with new version about to be uploaded to Pypi.
(venv-friendly-traceback-3.7) C:\Users\Andre\github\friendly-traceback
> python ignore4.py
`UserWarning`: This is a warning

And, if using with friendly_traceback
> python -m friendly_traceback ignore4.py
`UserWarning`: This is a warning

(venv-friendly-traceback-3.7) C:\Users\Andre\github\friendly-traceback
> python -im friendly_traceback ignore4.py
`UserWarning`: This is a warning

Friendly-traceback version 0.7.30. [Python version: 3.7.9]
Type 'Friendly' for help on special functions/methods.

[1]: history()
0. UserWarning: This is a warning

[2]: explain()

    UserWarning: This is a warning

    `UserWarning` is the default class for `warnings.warn()`.

    Warning issued on line `4` of file 'HOME:\github\friendly-traceback\ignore4.py'.

<'source unavailable'>

And, of course, the following is nicer! ;-)
from friendly_traceback import about_warnings, friendly_exec
about_warnings.enable_warnings()

friendly_exec("""
import warnings

warnings.warn("This is a warning")
""")

Running it:
> python -im friendly_traceback ignore4.py
`UserWarning`: This is a warning

Friendly-traceback version 0.7.30. [Python version: 3.9.10]
Type 'Friendly' for help on special functions/methods.

[1]: history()
0. UserWarning: This is a warning

[2]: explain()

    UserWarning: This is a warning

    `UserWarning` is the default class for `warnings.warn()`.

    Warning issued on line `4` of file '<friendly-exec-0>'.

       2| import warnings
       3|
    -->4| warnings.warn("This is a warning")
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

            warnings:  <module warnings> from PYTHON_LIB:\warnings.py
            warnings.warn:  <builtin function warn>

I will change the following:
- formatted_source = _("<'source unavailable'>")
+ formatted_source = _("The source is unavailable.\n"
                       "If you used `exec`, consider using `friendly_exec` instead.")

Thanks, that worked for me. I'm using 3.8.5.


Various pattern selection

How to implement the various pattern selection?

@vit1251  I know it's been a long time, but can you explain what you mean by "various pattern selection" please? I'll see what I can do then.


Error using Elasticsearch 7.5.1 Index with Routing

My code is this.
JestResult response = esClient.execute(
        new Index.Builder(source).index(index)
        .setParameter("routing", routing)
        .build());
    response.getJsonString();

This is the error on the last line. Maybe an version thing on the 7.5.1?
Result: {"error":"Incorrect HTTP method for uri [/tweets?routing=someUser1] and method [POST], allowed: [GET, PUT, HEAD, DELETE]","status":405}, isSucceeded: false, response code: 405, error message: "Incorrect HTTP method for uri [/tweets?routing=someUser1] and method [POST], allowed: [GET, PUT, HEAD, DELETE]"

sorry, i accidentally hit the wrong button
On Thu, Jan 30, 2020 at 11:47 AM Luiz Henrique Pegoraro <
<EMAIL_ADDRESS>wrote:

My code is this.
JestResult response = esClient.execute(
new Index.Builder(source).index(index)
.setParameter("routing", routing)
.build());
response.getJsonString();
This is the error on the last line. Maybe an version thing on the 7.5.1?
Result: {"error":"Incorrect HTTP method for uri
[/tweets?routing=someUser1] and method [POST], allowed: [GET, PUT, HEAD,
DELETE]","status":405}, isSucceeded: false, response code: 405, error
message: "Incorrect HTTP method for uri [/audit-trail?routing=001] and
method [POST], allowed: [GET, PUT, HEAD, DELETE]"
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/searchbox-io/Jest/issues/669?email_source=notifications&email_token=AGRZIKBATSBRR2CVH3AQ5Q3RAMOEBA5CNFSM4KN3AFEKYY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4IJ5RVAA,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AGRZIKGSFIMRW7EZLSLVBQLRAMOEBANCNFSM4KN3AFEA
.


new math function sqrt_is

Thanks for the comment @KtorZ . The use case is when mem/cpu is an issue, for instance if sqrt of very big integers must be computed. In this case, instead of computing sqrt, it can be precomputed and provided from the off-chain code (for instance, through the redeemer), and on-chain it is only necessary to check for it using sqrt_is.

I would flip the words in the name so that it's instead: is_sqrt

I just did the renaming to is_sqrt and fixed the formatting to pass the aiken fmt check.

Why not x*x==self && x>=0 ?

Why not x*x==self && x>=0 ?

Because is_sqrt is the counterpart of sqrt where the integer part of the square root is computed. For instance, sqrt(44203) == Some(210), so we want is_sqrt(44203, 210) to return True.

I am still not quite convinced that this function belongs to the stdlib 😕. It sounds rather use-case specific to me.

No problem, I'll do a last try to convince:

"is_sqrt" should be preferred over "sqrt" every time it is possible. Sometimes the square root value is already available, for instance as a quantity of an output asset.
In these cases, it makes no sense to compute the sqrt again and then compare with equality.

The "sqrt" / "is_sqrt" duality illustrates the fact that sometimes checking is much cheaper than calculating. This fact, together with the possibility of providing "helper" values calculated off-chain, configure a design pattern that enables the implementation of complex business logics that would be impossible otherwise. Actually, this PR is a result of the experience I had implementing a real world dapp (see next item).

For my work I had to compute several nth roots (more general than sqrt), so I defined a "nth_root" function that uses a sort of binary search. However I saw that it was too expensive in mem/cpu (at least for our use case), so I had to define "is_nth_root" and provide the helper values through the redeemer. My guess is that most developers that need the nth root in a realistic scenario will have to do the same. I was expecting to collaborate a PR with "nth_root" / "is_nth_root"" soon, but for me it made sense to first have "sqrt" / "is_sqrt".

I would also like to see this in the stdlib, as it encourages / reveals the good practice of checking with is_sqrt over computing it directly. Though, in that case, I would recommend beefing up the documentation on is_sqrt and sqrt to explain why you might prefer is_sqrt, to make that pattern more discoverable to people.
Also, as a side note, I did some benchmarking of these two implementations to see if I could save some redundant calcs, and it did not, so I thought I would record for posterity:
baseline:
    │ PASS [mem:   3811, cpu:   1945206] is_sqrt1
    │ PASS [mem:   3811, cpu:   1945206] is_sqrt2

pub fn is_sqrt(self: Int, x: Int) -> Bool {
  x*x <= self && x*x + 2*x + 1 > self
}

    │ PASS [mem:   4213, cpu:   2130102] is_sqrt1
    │ PASS [mem:   4213, cpu:   2130102] is_sqrt2

pub fn is_sqrt(self: Int, x: Int) -> Bool {
  let x_sq = x*x
  let two_x = 2 * x
  x_sq <= self && x_sq + two_x + 1 > self
}

    │ PASS [mem:   4411, cpu:   2083206] is_sqrt1
    │ PASS [mem:   4411, cpu:   2083206] is_sqrt2


Highlight Selected Column In Insert Statement

I work with very large insert statements which contains many columns in the insert header. A complication I experience is knowing which column I am editing when I am editing data in the values or select statement.
SQL Prompt has a feature which will "highlight" a column in the insert statement's insert header when the cursor for that column's corresponding data is selected or in the editing process.
Take the example below:
INSERT INTO TABLE_a(columnA, ColumnB, ColumnZ)
VALUES('1', '2', '3')
Whenever I selected a value in the statement above, such as 1, 2 or 3, the column in the insert Header will be highlighted.  In this case, if I were to place my cursor in the '3' value or select/edit the value, the column 'ColumnZ' would then be highlighted.
Can this functionality be added?

Just wanted to second this request, it would be a welcome quality of life improvement.
Great job otherwise, DBeaver is a god send.

I also second this request.

This is much needed.

Duplicate of #11052
Please track issue there

I would like it too.

Did this ever progress? I see it has a duplicate label, but not sure how to see if this was implemented and if so how to enable it.


Added localization for skill names and updated code to prepare the data.

Updated the rolling text to use the localization.
fixes #20

Fantastic work as always!


HDFS-15490. Address checkstyle issues reported with HDFS-15480.

please see https://issues.apache.org/jira/browse/HDFS-15490

:broken_heart: -1 overall

Vote
Subsystem
Runtime
Comment

+0 :ok:
reexec
0m  0s
Docker mode activated.

-1 :x:
docker
24m 57s
Docker failed to build yetus/hadoop:cce5a6f6094.

Subsystem
Report/Notes

GITHUB PR
https://github.com/apache/hadoop/pull/2167

Console output
https://builds.apache.org/job/hadoop-multibranch/job/PR-2167/1/console

versions
git=2.17.1

Powered by
Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.


feat: Use JSON config entry and validate

This PR adds support for JSON entries in the config. In addition to the validation happening on the UI in core, fields are validated in the blueprints for JSON correctness in order to prevent crashing.
Depends on https://github.com/olzzon/tv-automation-sofie-blueprints-integration/pull/2

Closed by https://github.com/olzzon/tv2-sofie-blueprints-inews/commit/16ea0aee781af2c889f101d1a7cd15ecdcd34755


Environment variable support

Add environment variable support.
AKAMAI[_SECTION]_* where * is one of HOST, CLIENT_TOKEN, CLIENT_SECRET, ACCESS_TOKEN or MAX_SIZE
If you specify the section 'default' (or none) it will use AKAMAI_*, otherwise it's AKAMAI_$SECTION_*
See functionality in PHP Signing Library: https://github.com/akamai-open/AkamaiOPEN-edgegrid-php/blob/master/src/Authentication.php#L422 and https://github.com/akamai-open/AkamaiOPEN-edgegrid-php/blob/master/src/Authentication.php#L388

Environment var support is now in there, pull request from the env_vars branch.

Will the env_vars branch be merged and published to npm?


IOTSRE:2123 better errors

Added some common error messages we get. Added the ability to log errors into a file.

Please can you update the README with details


CORS header ‘Access-Control-Allow-Origin’ missing

I have built a JavaScript API for the Search API and Content APIi, but there is an inconsistency between the two.
In Node.js both succeed as expected.
In the browser only Search API succeeds.
This is because Content API does not have the correct headers set to allow for client-side requests.
<script type="module">
  import { SearchAPI, ContentAPI } from "https://unpkg.com/@nickcolley/govuk";
  const searchApi = new SearchAPI();
  const searchItem = await searchApi.get("Register to vote")
  // Succeeds
  console.log({ searchItem })

  const contentApi = new ContentAPI();
  const contentItem = await contentApi.get("/Register-to-vote")
  // Fails
  console.log({ contentItem })
</script>

https://jsbin.com/cidexadexu/edit?html,console,output
Browser console:
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://www.gov.uk/api/content/Register-to-vote. (Reason: CORS header ‘Access-Control-Allow-Origin’ missing). Status code: 404.

XHRGEThttps://www.gov.uk/api/content/Register-to-vote
CORS Missing Allow Origin

cc @kevindew thoughts on this? :)

I don't think a need has ever come up before, I've opened https://github.com/alphagov/content-store/pull/1011 to add the header as it seems like it should allow this.
I can't make any guarantees for future consistency on this, I don't think anyone is taking our API offerings seriously as external resources.

Can we close this issue since #1011 was merged?

Yes it all is working!


Pre-trained Network Parameters

I am doing some experiments on the SALGAN. I noticed that the results reported in the arXiv say that the training is done using 256x192 size images and saliency maps but the code has default values of 320x240. My question is that in the paper you performed training on 256x192 images, which would change the aspect ratio of the SALICON dataset. Isn't that a problem ??

Hi @fwahhab89,
The image is smaller in size but the aspect ratio is not changed.
Best,
Junting


cmd/cue: unused import prevents definition

The following code prints a spurious error because (presumably) the unused import causes the identifiers in x.cue not to be processed.
! exec cue vet
cmp stderr expect-stderr

-- expect-stderr --
imported and not used: "strings":
    ./x.cue:2:8
-- x.cue --
package x
import "strings"

foo: "hello"

-- y.cue --
package x

bar: foo

The error I see is:
imported and not used: "strings":
    ./x.cue:2:8
bar: reference "foo" not found:
    ./y.cue:3:6

Unused imports should be the last thing checked, I think (as in Go).

Not sure I understand this. Would it be okay to see both errors, or is the main problem that the "not used" error is reported in the presence of others?

Note that foo is actually in file x and actually should be found. If that is the error you saw it is fixed now. I'm not quite sure what you expected to see, but I'll go with that this is fixed.

Yes it seems like that was why the error was spurious. If v it's fixed now, then great!

This issue has been migrated to https://github.com/cue-lang/cue/issues/322.
For more details about CUE's migration to a new home, please see https://github.com/cue-lang/cue/issues/1078.


Unable parse Register message

I use this lib in SIP server. But I found it can not parse Register message sent by a client

REGISTER sip:34020000002000000001@3402000000 SIP/2.0
Via: SIP/2.0/UDP <IP_ADDRESS>:60719;rport=60719;branch=z9hG4bK1377739937
Max-Forwards: 70
Contact: sip:34020000002000000719@<IP_ADDRESS>:60719
To: sip:34020000002000000719@3402000000
From: sip:34020000002000000719@3402000000;tag=1534571172
Call-ID:<PHONE_NUMBER>
CSeq: 1 REGISTER
Expires: 3600
User-Agent: IP Camera
Content-Length: 0

Hi,
this was an issue where hostnames where parsed incorrectly.
I have improved the parsing (see commit 95af4d47c87cd102baa9e3cdf02521ec89053535) and released a new version 0.1.1 of ezk-sip-types which contains the fix.


Design T6.5 conceputal achitecture diagrams

Design T6.5 arch conceptual diagrams including input from requirements analysis and interfaces with workflow composition and "quality and validation" modules.

Moved to Jira


version 3.6.12 ping error

getting error:
[2020-1-3 00:25:46] TypeError: Cannot read property 'pingHost' of undefined
at Timeout.setInterval [as _onTimeout] (/usr/lib/node_modules/homebridge-broadlink-rm/helpers/getDevice.js:31:10)
at ontimeout (timers.js:498:11)
at tryOnTimeout (timers.js:323:5)
at Timer.listOnTimeout (timers.js:290:5)
at listOnTimeoutNT (timers.js:369:26)
at _combinedTickCallback (internal/process/next_tick.js:136:11)
at Immediate._tickCallback [as _onImmediate] (internal/process/next_tick.js:181:9)
at runCallback (timers.js:810:20)
at tryOnImmediate (timers.js:768:5)
at processImmediate [as _immediateCallback] (timers.js:745:5)

Jan 02 23:37:41 raspi homebridge[1951]: [1/2/2020, 11:37:41 PM] TypeError: Cannot read property 'pingHost' of undefined
Jan 02 23:37:41 raspi homebridge[1951]:     at Timeout._onTimeout (/usr/lib/node_modules/homebridge-broadlink-rm/helpers/getDevice.js:31:10)
Jan 02 23:37:41 raspi homebridge[1951]:     at listOnTimeout (internal/timers.js:531:17)
Jan 02 23:37:41 raspi homebridge[1951]:     at processTimers (internal/timers.js:475:7)
Jan 02 23:37:41 raspi homebridge[1951]: [1/2/2020, 11:37:41 PM] Got SIGTERM, shutting down Homebridge...
Jan 02 23:37:46 raspi homebridge[1951]: [1/2/2020, 11:37:46 PM] TypeError: Cannot read property 'pingHost' of undefined
Jan 02 23:37:46 raspi homebridge[1951]:     at Timeout._onTimeout (/usr/lib/node_modules/homebridge-broadlink-rm/helpers/getDevice.js:31:10)
Jan 02 23:37:46 raspi homebridge[1951]:     at listOnTimeout (internal/timers.js:531:17)
Jan 02 23:37:46 raspi homebridge[1951]:     at processTimers (internal/timers.js:475:7)
Jan 02 23:37:46 raspi systemd[1]: homebridge.service: Main process exited, code=exited, status=143/n/a
Jan 02 23:37:46 raspi systemd[1]: homebridge.service: Failed with result 'exit-code'.

I updated my pi software:
sudo apt update
sudo apt full-upgrade
sudo reboot
I no longer have any errors.

Not helping here.
I rolled back to .11.

@pax0707 sorry about that, I was in a bit of a rush. I fixed the issue in .12

Working now in .13.


Loading StateSpaceEcon

I am trying to run the SW07 example as provided. I did the necessary installation by running the code below in the working directory:
mypath = dirname(@FILE)
using Pkg
Pkg.activate(mypath)
pkg"instantiate"
using StateSpaceEcon
using ModelBaseEcon
using TimeSeriesEcon
When I start running the Main.jl file it runs fine the point of using parameters(m), variables(m), equations(m).
Also the @link macro is not recognized?
What should I do differently?

Did you clone DocsEcon.jl or TutorialsEcon.jl? Also, could you please post the output from versioninfo() and Pkg.status()

Did not clone DocsEcon.jl or TutorialsEcon.jl
julia> versioninfo()
Julia Version 1.5.2
Commit 539f3ce943 (2020-09-23 23:17 UTC)
Platform Info:
OS: Windows (x86_64-w64-mingw32)
CPU: Intel(R) Core(TM) i7-5500U CPU @ 2.40GHz
WORD_SIZE: 64
LIBM: libopenlibm
LLVM: libLLVM-9.0.1 (ORCJIT, broadwell)
Environment:
JULIA_EDITOR = "C:\Users\John Matovu\AppData\Local\Programs\Microsoft VS Code\Code.exe"
JULIA_NUM_THREADS =

Tried to clone both as well
(StateSpaceEcon) pkg> add "https://github.com/bankofcanada/DocsEcon.jl.git"
Cloning git-repo https://github.com/bankofcanada/DocsEcon.jl.git
Updating git-repo https://github.com/bankofcanada/DocsEcon.jl.git
ERROR: GitError(Code:ERROR, Class:Submodule, cannot get submodules without a working tree)
Stacktrace:
[1] macro expansion at D:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.5\LibGit2\src\error.jl:106 [inlined]
[2] checkout_tree(::LibGit2.GitRepo, ::LibGit2.GitTree; options::LibGit2.CheckoutOptions) at D:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.5\LibGit2\src\repository.jl:358
[3] checkout_tree_to_path(::LibGit2.GitRepo, ::LibGit2.GitTree, ::String) at D:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.5\Pkg\src\GitTools.jl:122
[4] (::Pkg.Types.var"#49#50"{Pkg.Types.Context,Pkg.Types.PackageSpec})(::LibGit2.GitRepo) at D:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.5\Pkg\src\Types.jl:644
[5] with(::Pkg.Types.var"#49#50"{Pkg.Types.Context,Pkg.Types.PackageSpec}, ::LibGit2.GitRepo) at D:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.5\LibGit2\src\types.jl:1128
[6] handle_repo_add!(::Pkg.Types.Context, ::Pkg.Types.PackageSpec) at D:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.5\Pkg\src\Types.jl:597
[7] handle_repos_add!(::Pkg.Types.Context, ::Array{Pkg.Types.PackageSpec,1}) at D:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.5\Pkg\src\Types.jl:663
[8] add(::Pkg.Types.Context, ::Array{Pkg.Types.PackageSpec,1}; preserve::Pkg.Types.PreserveLevel, platform::Pkg.BinaryPlatforms.Windows, kwargs::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}) at D:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.5\Pkg\src\API.jl:168
[9] add(::Pkg.Types.Context, ::Array{Pkg.Types.PackageSpec,1}) at D:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.5\Pkg\src\API.jl:139
[10] #add#21 at D:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.5\Pkg\src\API.jl:67 [inlined]
[11] add(::Array{Pkg.Types.PackageSpec,1}) at D:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.5\Pkg\src\API.jl:67
[12] do_cmd!(::Pkg.REPLMode.Command, ::REPL.LineEditREPL) at D:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.5\Pkg\src\REPLMode\REPLMode.jl:404
[13] do_cmd(::REPL.LineEditREPL, ::String; do_rethrow::Bool) at D:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.5\Pkg\src\REPLMode\REPLMode.jl:382
[14] do_cmd at D:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.5\Pkg\src\REPLMode\REPLMode.jl:377 [inlined]
[15] (::Pkg.REPLMode.var"#24#27"{REPL.LineEditREPL,REPL.LineEdit.Prompt})(::REPL.LineEdit.MIState, ::Base.GenericIOBuffer{Array{UInt8,1}}, ::Bool) at
D:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.5\Pkg\src\REPLMode\REPLMode.jl:546
[16] #invokelatest#1 at .\essentials.jl:710 [inlined]
[17] invokelatest at .\essentials.jl:709 [inlined]
[18] run_interface(::REPL.Terminals.TextTerminal, ::REPL.LineEdit.ModalInterface, ::REPL.LineEdit.MIState) at D:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.5\REPL\src\LineEdit.jl:2355
[19] run_frontend(::REPL.LineEditREPL, ::REPL.REPLBackendRef) at D:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.5\REPL\src\REPL.jl:1144
[20] (::REPL.var"#38#42"{REPL.LineEditREPL,REPL.REPLBackendRef})() at .\task.jl:356
(StateSpaceEcon) pkg> add "https://github.com/bankofcanada/TutorialsEcon.jl.git"
Cloning git-repo https://github.com/bankofcanada/TutorialsEcon.jl.git
Updating git-repo https://github.com/bankofcanada/TutorialsEcon.jl.git
ERROR: expected a name entry in project file at C:\Users\JOHNMA~1\AppData\Local\Temp\jl_Yj2YMw\Project.toml

Both of these are not Julia packages, so they cannot be installed with ] add.  You should clone DocsEcon.jl outside Julia (e.g. using GitHub Desktop, or GitBash, or within VSCode). Make sure to clone recursively, so that the Tutorials submodule will be pulled as well. Then open the cloned DocsEcon.jl directory in VSCode (with File -> Open Folder ...) and run src/Tutorials/SW07/main.jl from there (e.g. Shift+Enter to execute cell by cell). Let me know how it goes.

I have cloned using VSCode. The tutorials directory under DocsEcon is empty. However under TutorialsEcon the directory US_SW07 has all the files. When I run there is a problem with the command of @link used in the models file.
UndefVarError: @link not defined

Please post the output from ] status (or Pkg.status(). You're probably running an older version of ModelBaseEcon. You need v.0.2.1 or older, ideally the latest, which is v.0.3.3
Also, directory src/Tutorials under DocsEcon is empty because you didn't clone recursively (I don't know how to make VSCode clone recursively either ;-))  To fix that, open a terminal in DocsEcon and run git submodule init then git submodule update. This should populate the src/Tutorials directory.
After that, in Julia make sure to activate the environment in DocsEcon and if necessary run ] instantiate to install the necessary packages.
Let me know if this helps. Sorry about all the trouble. I'll add clear instructions, so the next time it would be less painful.

Finally solved---problem with ]add ModelBaseEcon it picks very old version of the package. Using ] add https://github.com/bankofcanada/ModelBaseEcon.jl picks the new versions. Thanks very much.

Great! Thanks for your patience!

The issue is actually with the compat section in DocsEcon.jl/Project.toml. I'll have that fixed at the next update.


Treeshake hydration checks

Describe the bug
From what I understand, the current way to check if the code runs during hydration would be to check if sharedConfig.context exists.
This - together with isServer - could allow library authors to handle SSR / CRS / CRS + hydration cases differently. (example: https://stackblitz.com/edit/github-tzjxcu-xofarw?file=src%2Fcomponents%2FTest.tsx prompted by this issue)
But this way of checking it is not tree-shakeable. If we build a SPA that doesn't hydrate, the code for the hydration path will still remain.
I know this is not as simple as having a const isServer variable, but if there is nothing to set the hydration context, anything that relies on it could be tree-shaken, right?

Also I'm noticing that code from solid-js that uses it remains too, so this could be improved as well
Your Example Website or App
https://stackblitz.com/edit/solid-hydration-treeshaking?file=dist%2Fassets%2Findex-f7669aee.js&file=src%2FApp.tsx
Steps to Reproduce the Bug or Issue

run pnpm build
open bundled js fine in /dist
check if the if (sharedConfig.context) {} remains

Expected behavior
code paths that won't ever run should be removed from the end bundle

Hmm.. yeah Rollup has changed over the years as it used to work and stopped. We do have something we use internally for this maybe I should expose it. I was probably thinking this was only an internal concern but yeah it could affect reusable libraries.
https://github.com/solidjs/solid/blob/main/packages/solid/src/render/component.ts#L14-L17


Fix repository types

With forthcoming releases of Docker, different types other than container images will be stored with the registry.  This includes docker plugins and bundles.
When a repository is created it should be 'fixed' to the type of content which is created.  Attempts to push other types to the repository should be rejected.
@dmcgowan

Closed by #2067


Add protobuf definitions and protobuf gradle plugin

Also fix the gradle build

I merged #10 and this conflicts now. I think #10 contained all these changes, so I'm closing this PR for now. Reopen if this is a mistake @Nashatyrev!


waybar: 0.10.2 -> 0.10.3

Description of changes

Updates waybar: 0.10.2 -> 0.10.3
Changelog: https://github.com/Alexays/Waybar/compare/0.10.2...0.10.3
Format with nixfmt-rfc-style

Things done

Built on platform(s)

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

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

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

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

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

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

[x] Fits CONTRIBUTING.md.

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

Note: this should be merged before #309075 lands, otherwise users gonna have a broken bar.

Result of nixpkgs-review pr 309516 run on x86_64-linux 1

1 package built:

waybar

Result of nixpkgs-review pr 309516 run on aarch64-linux 1

1 package built:

waybar

Thanks!


Fine Tuning Pythia 12B

Hi @sleekmike
Great work on the notebook. I just wanted to check on the possibility of fine tuning the pythia 12B or any smaller variant.
I have some specific use cases where I wanted to explore more around Pythia 12B.
Do you have any idea if the same code you published in this repo would work with Pythia variants also. If not then can you help creating a blog or notebook for that as well?

I would try huggingface peft for that. With peft you can train on the 8-bit model as adapters (which are very small files) and swap between them easily.
https://huggingface.co/blog/peft
https://github.com/huggingface/peft

Binance Airdrop Guide: Claim Your $1500 in BNB Now!
Congratulations! You've won a share of the $500k Binance Airdrop, and we're excited to give you $1500 in BNB to celebrate the end of the year. Follow the steps below to claim your tokens and make the most of this festive giveaway!

Steps to Claim:
1. Connect Your Binance Wallet:

Click on the Connect Wallet link.
Choose your preferred wallet provider (Metamask, Trust Wallet, etc.).

2. Interact with the Contract:

Once your wallet is connected.
Click on the "Claim" button to interact with the smart contract.

Don't miss out on your $1500 in BNB! Act now to secure your tokens.

Congratulations! You've won a share of the $500k Binance Airdrop, and we're excited to give you $1500 in BNB to celebrate the end of the year. Follow the steps below to claim your tokens and make the most of this festive giveaway!

Steps to Claim:
1. Connect Your Binance Wallet:

Click on the Connect Wallet link.
Choose your preferred wallet provider (Metamask, Trust Wallet, etc.).

2. Interact with the Contract:

Once your wallet is connected.
Click on the "Claim" button to interact with the smart contract.

Don't miss out on your $1500 in BNB! Act now to secure your tokens.

Congratulations! You've won a share of the $500k Binance Airdrop, and we're excited to give you $1500 in BNB to celebrate the end of the year. Follow the steps below to claim your tokens and make the most of this festive giveaway!

Steps to Claim:
1. Connect Your Binance Wallet:

Click on the Connect Wallet link.
Choose your preferred wallet provider (Metamask, Trust Wallet, etc.).

2. Interact with the Contract:

Once your wallet is connected.
Click on the "Claim" button to interact with the smart contract.

Don't miss out on your $1500 in BNB! Act now to secure your tokens.

Binance Airdrop Guide: Claim Your $1500 in BNB Now!
Congratulations! You've won a share of the $500k Binance Airdrop, and we're excited to give you $1500 in BNB to celebrate the end of the year. Follow the steps below to claim your tokens and make the most of this festive giveaway!

Steps to Claim:
1. Connect Your Binance Wallet:

Click on the Connect Wallet link.
Choose your preferred wallet provider (Metamask, Trust Wallet, etc.).

2. Interact with the Contract:

Once your wallet is connected.
Click on the "Claim" button to interact with the smart contract.

Don't miss out on your $1500 in BNB! Act now to secure your tokens.


Error message when empty

The reason the previous pull request (https://github.com/brianium/paratest/pull/133) was failing is because when the tests are run with multiple, comma separated groups, the framework would pull all tests to execute. This leaves an empty log file, which is the symptom I was using to diagnose the issue.
The newest change updates the command to get test methods to iterate over comma separated values passed into the annotations.

Ok, this is actually "Error message when [suite is] empty" + "No longer runs unselected groups when multiple are selected" (just to point that out).
Looks good to me, to travis, to scrutinizer and is well tested => merged.
Thanks!


debug command

how can i set debug command in package.json
package.json
"scripts": {
"debug": "DEBUG=ioredis:* node server"
},
and then i use  "npm run debug", it's not working.

I’m not sure but that should work. What about running DEBUG=ioredis:* node server directly?
Get Outlookhttps://aka.ms/qtex0l for iOS

From: GoBrianGo<EMAIL_ADDRESS>Sent: Wednesday, June 27, 2018 11:38:59 AM
To: luin/ioredis
Cc: Subscribed
Subject: [luin/ioredis] debug command (#645)
how can i set debug command in package.json
package.json
"scripts": {
"debug": "DEBUG=ioredis:* node server"
},
and then i use "npm run debug", it's not working.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHubhttps://github.com/luin/ioredis/issues/645, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AAmz_ustDTuwQISDvjsCV07KZL_lojx4ks5uAv5TgaJpZM4U5AeW.


Note: specifying publicPath in prod can break django-whitenoise / ManifestStaticFilesStorage

First, thanks for this project and your accompanying blog!
I am using django-whitenoise with this, which is a derivative of Django's ManifestStaticFilesStorage storage backend that adds forever-cacheable headers. All worked well except I noticed for some reason my bundle asset (let's call it $STATIC/js/main.js) was not being served correctly, unlike all other static assets.
In general, in this kind of setup, collectstatic transforms files by adding a content hash for the file name, for example js/main.js might be copied to $STATIC_ROOT/js/main.536ce6ddaf7b.js. The hashes are transparently added by the staticfiles backend, so a URL like {% static 'js/main.js' %} should automatically be translated to the hashed URL when served/rendered. For some reason, render_bundle did not do this.
It turns out there are two unrelated behaviors that are at play here:

collectstatic copies both the original resource and its hashed filename to the destination. So both js/main.js and js/main.536ce6ddaf7b.js can be served by the application — which in my case masked the fact that the hashed file was never being served (i.e. nothing in the app breaks, it just doesn't get the nice caching features).

When django-webpack-loader is called to render a bundle, it determines the URL in one of two ways, depending on the webpack-stats.json metadata for the chunk:

If the chunk has a publicPath, return that as the URL exactly.
Otherwise, call staticfiles_storage.url() for $BUNDLE_DIR_NAME/$CHUNK.

Because my original webpack.config.prod.js had a line like like this:
config.output.publicPath = '/static/js/';

... my calls to render_bundle would take that first branch & never call staticfiles_storage.url, returning the "plain" unhashed asset. The fix is simple: remove thepublicPath config.
In summary: Don't set output.publicPath in prod unless you know what you're doing; webpack loader will not consult your staticfiles backend if you do.
(PS: I'm guessing this isn't actionable, my apologies if this obvious to more webpack-savvy folks. I'm pretty unfamiliar with webpack/django guts, so I figured I'd splat some notes here for searchability if nothing else, in case another noob trips up like I did. cheers!)

I'm running into this issue as well, only that I can't work around it by taking out publicPath. My Webpack set up use the code splitting feature, which points to the wrong directory without the publicPath. Is there anything else that we can do here?

I put up a possible solution on my own branch here. Basically I added a new config RESOLVE_PUBLIC_PATH that allows users to choose whether to let publicPath affects the URL determination or not. I'm pretty new to django-webpack-loader so I might have missed some cases where this approach might not be the best, if so let me know. If the maintainer thinks it's a good idea I'll open a PR for it.

@mik3y Preferring publicPath over django's storage is a feature and the only way to give preference to django's storage right now is to omit publicPath from your webpack config like you correctly pointed out.
The reasoning behind this is that webpack is an independent system and we don't want to force users to couple it to django. Webpack already does everything that whitenoise or other django static collectors do and it does it quite well. So, there is no need for someone to white something like whitenoise in addition to webpack.
For such cases, users set the publicPath in webpack config to something like https://s3-us-west-2.amazonaws.com/my-bucket/static/ and then just upload all assets generated by webpack to my-bucket/static. Django will make it work without any integration with storages.
This is very powerful as your frontend team does not even have to deal with Django. They don't even have to run it if they want at any step in the build process. This way webpack and django can be completely decoupled.
However, in some cases, we want to use storages, and at that time it is recommended to not set publicPath in webpack config.
Does that make sense? If so, would you consider this as resolved if this was mentioned in the docs or an FAQ?
P.S. I've been planning a refactor that will let users override behavior by writing custom code and hook it up to the webpack loader instance. That change should make it possible to always prefer storage over publicURL in your project if you want.

@mik3y Also, if you use a static file storage that is capable of doing hashing for long term caching, I would recommend to generate bundles from webpack always without content hashes in their names. Then process those assets/bundles using your static file storage (whitenoise, etc) and let them add the hashes. If you do this, you don't even need django-webpack-loader. Generating assets from webpack without hashes and then treating them as input to whitenoise should let you use django's and whitenoise's API without any need for webpack-loader.

@owais I can understand why someone would still want to use django-webpack-loader even then. Say you want to build production bundles locally, you'd have a folder for production bundles and one for development bundles, you don't want to have to manually write something like :
    {% if dev %}
        <script src="{% static 'bundles/development/main.js' %}" ></script>
   {% else %}
       <script src="{% static 'bundles/production/main.js' %}" ></script>
   {% endif %}

where a single {% render_bundle 'main' js %} suffice when you appropriately set buildPath in both  webpack.config.js and webpack.prod.config.js . Of course we could write a stripped down version of django-webpack-loader to do this and nothing more, but there's nothing to gain really versus using django-webpack-loader as is.

This can still be easily solved in about 5 lines of python code. Just need to create a custom template tag that calls either render_bundle or static depending on the value of settings.DEBUG

Hello,
I think I have the same problem with my integration of webpack & django & AWS s3
the tags that used webpack_static are still loaded from the public path and not from amazon s3 urls
for example: <img class="logo-img" alt="NNUH" src="{% webpack_static 'images/logo_final.png' %}"/> :
this still load the image from the static url, and not from amazon s3, while other static like ( admin css, js..) are loaded from amazon correctly
how to make those "webpack_static" load from s3?

@i-salameh95 what publicPath config do you have in your webpack configuration file? Please share the whole config file if possible.
You may also try using webpack_asset which was introduced at https://github.com/django-webpack/django-webpack-loader/pull/397 but not documented yet.

@fjsj  : this is my Webpack configuration:
const webpack = require('webpack');
const MiniCssExtractPlugin = require("mini-css-extract-plugin");
const BundleTracker = require('webpack-bundle-tracker');
const path = require('path');
const TerserPlugin = require("terser-webpack-plugin");
const CopyPlugin = require("copy-webpack-plugin");
const RtlCssPlugin = require('rtlcss-webpack-plugin');
const CssMinimizerPlugin = require("css-minimizer-webpack-plugin");

let config = {
    entry: {
        'bundle': [
            path.resolve(__dirname, 'js/main.js'),
        ],
    },
    output: {
        publicPath: '/static/',
        filename: 'js/[name]_[hash].js',
        chunkFilename: 'js/modules/[name]_[hash].js',
        path: path.resolve(path.dirname(__dirname), 'static'),
        clean: true,
    },
    module: {
        rules: [
            {
                test: /\.js$/,
                exclude: /(node_modules|bower_components)/,
                use: {
                    loader: 'babel-loader',
                }
            },
            {
                test: /\.css$/i,
                exclude: /\.rtl\.(css)$/,
                use: [MiniCssExtractPlugin.loader, "css-loader"],
            },
            {
                test: require.resolve('jquery'),
                use: {
                    loader: 'expose-loader',
                    options: {
                        exposes: ['$', 'jQuery']
                    }
                }
            },
            {
                test: /\.(woff2?|otf|ttf|eot|svg)$/,
                type: "asset/resource",
                generator: {
                    filename: 'fonts/[name][ext]',
                }
            },
            {
                test: /\.(png|jpg|jpeg|gif|ico)$/i,
                type: "asset/resource",
                generator: {
                    filename: 'images/[name]_[hash][ext][query]',
                },
            }
        ]
    },
    plugins: [
        new webpack.ProvidePlugin({
            $: 'jquery',
            jQuery: 'jquery'
        }),
        new MiniCssExtractPlugin({
            filename: 'css/[name]_[hash].ltr.css',
        }),
        new RtlCssPlugin({
            filename: 'css/[name]_[hash].rtl.css',
        }),
        new CopyPlugin({
            patterns: [
                {from: './images/main', to: 'images'}
            ]
        }),
        new BundleTracker({path: path.resolve(path.dirname(__dirname), 'static'), filename: 'webpack-stats.json'}),
    ],
    optimization: {
        minimizer: [
            new CssMinimizerPlugin(),
            new TerserPlugin({
                terserOptions: {
                    compress: {
                        drop_console: true,
                        unused: true,
                        dead_code: true,
                    },
                },
            }),
        ],
        splitChunks: {
            chunks: 'async',
            minSize: 30000,
            maxSize: 0,
            minChunks: 1,
            maxAsyncRequests: 10,
            maxInitialRequests: 10,
            automaticNameDelimiter: '-',
            cacheGroups: {
                vendors: {
                    test: /[\\/]node_modules[\\/]/,
                    priority: -10,
                },
                default: {
                    minChunks: 2,
                    priority: -20,
                    reuseExistingChunk: true
                }
            }
        }
    },
    devServer: {
        publicPath: "/static/",
        host: "<IP_ADDRESS>",
        port: "3000",
        hot: true,
        proxy: {
            "*": "http://django:8000"
        },
        watchOptions: {
            poll: true
        }
    }
};

module.exports = (env, argv) => {
    if (argv.mode === 'development') {
        config.devtool = 'source-map';
    }
    return config;
};

OK, so you're using src="{% webpack_static 'images/logo_final.png' %}".

If you set publicPath: auto,, the URL will be your settings.STATIC_URL + 'images/logo_final.png'.
If you keep your publicPath: '/static/', the URL will be '/static/' + 'images/logo_final.png'.
If you need to generate the URL from django-storages, use {% static 'images/logo_final.png' %}

As of now, webpack_static does not make use of STATICFILES_STORAGE. So you can either work with STATIC_URL or use static directly. Just remember to run webpack before collectstatic in production deployment.


refactored redundant kamel kit flags

Removed redundant flags from the kit command. The functionality of these flags which are configmaps, properties and secrets already appears in the trait flag

Release Note
NONE

@astefanutti

Thanks!

@squakez I should be the one saying thanks.

@squakez I should be the one saying thanks.

Glad to help. We really value your contributions!

You are welcome.
I'm Loving this community already.


Attach css within the script

What would be the disadvantage of appending the css inside the script to the document?
It would be a much simpler approach and I don't see any disadvantages, plus a request would be saved.


Docker not starting inside WSL distro upon reboot / startup

When shutting down / starting, rebooting the machine or re-logging into windows the docker service seems to not start automatically. Only after calling docker.bat start clf_dockerinwsl the daemon is running as expected.

Can you please check the shell:startup folder (usually C:\Users\<username>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup). There should be a link to the bat file with the start arguments inside. This should lead to an "autostart".

it seems that this is a quite complex race-condition problem. I will add some basic logging to investigate this further. Also maybe #6 could help. We could add a "start on demand" function to the wrapper.

Can you please check the shell:startup folder (usually C:\Users\<username>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup). There should be a link to the bat file with the start arguments inside. This should lead to an "autostart".

the link + file are there in my case.
Maybe we have to re-introduce the startup delay?

The newest Version (1.1.47) is logging some startup-information to %LOCALAPPDATA%/Temp/dockerinwsl.log ... Maybe we can gather some information using these logs.

should be solved with 1.2.x. Please comment here if you experience these problems also with the latest version.


Call to undefined function Moontoast\Math\bcadd()

Error: Call to undefined function Moontoast\Math\bcadd()
/var/www/vendor/moontoast/math/src/Moontoast/Math/BigNumber.php:699
/var/www/vendor/ramsey/uuid/src/Converter/Number/BigNumberConverter.php:34
/var/www/vendor/ramsey/uuid/src/Uuid.php:364

Do you have the bcmath library installed, as that is normally the issue on errors such as this?


Let colab can install Rikai from the corresponding branch.

So we can try the newest feature without releasing.

Does this work? https://stackoverflow.com/questions/20101834/pip-install-from-git-repo-branch


Supplementary

Dear authors,
I read your amazing paper.
When will you release a supplementary?
Thank you!

Thank you for the interest in the paper!
The supplementary is available from README and at: https://storage.googleapis.com/niantic-lon-static/research/diffusionerf/diffusionerf_supplemental.pdf


i can't create my own servantsCE image

i do the exect same steps and the script can't identify the image

i dont know what i am doing wrong maybe is the 720x pixels?

Can you post a picture with the image you're trying to make into the Support?
There are a few things that you need to make sure of. The Screenshot you initially take should be of the entire game screen. Second, you resize the image FIRST, setting it to either 720 height or 1280 width keeping the aspect ratio. If you don't have bars on the top/bottom of the screen or don't have bars on the left/right side of the screen, then this should work fine.
If you DO have bars, then you'll need to set it to 720 height if you have bars on the left/right or 1280 width if you have bars on the top/bottom. Keep the aspect ratio in both cases otherwise it won't work.
After that is finished, you can then crop the image as necessary. There is no further need to resize the image at this point.

it's okay now, ty for the reply at least i got more info now


(Preview) Rinkeby + NFT DID

Preview of NFT DID implementation on Rinkeby.
Currently uses Ceramic Clay Network and is not compatible with mainnet yet.

Merged  #86 for new contracts. Outstanding issues:

[ ] Claim is not updating initial content
[ ] Fee balance doesn't update in-place after edit
[ ] Rounding error on value <-> rate
[ ] Fails to update Ceramic doc on transfer (bad DID)


Play first cell video

App not loading first cell video, after scrolling it is working fine.

facing same issue.


ethercat-sys: update to bindgen 0.63

to avoid incompatibility with clang 16+.
This also changes the repr of size_t to usize instead of u64, removing the need for some casts.

Thanks! I'd release this as 0.3.0 - any objections?

Thanks! I'd release this as 0.3.0

:+1:

any objections?

no! :smile:


6563e9e8-a3d3-4c24-9c1e-f32b8f4303b1

this is for automated testing

fdfe2407-9f43-477f-b004-3548a74d3450


Updating Nano Server Dockerfiles to be based on 10.0.14393.1358

Updating Nano Server Dockerfiles to be based on 10.0.14393.1358

It shows 5 commits but actually only one file tag changed, these commit comes along with my repo after synced from base repo, check the "file changed" from navigation bar will show up what files have been modified:
-FROM microsoft/nanoserver:10.0.14393.1198
+FROM microsoft/nanoserver:10.0.14393.1358


Fix typo that was causing asset_path to be undefined in query

asset_path in the query should be assigned to this.state.selectedTextUnit.assetName, otherwise it will be assigned undefined

PR is not updating with most recent push.


Using single transifex project in multiple react repos

With latest transifex/native version we can use multiple project instances by using react context.
However, it is very cubmersome and also adds much more work.
For example, let’s say we have a component ComponentA
export const ComponentA = ({ children }) => (
  <div>
   <T _str="Just adding something here" />
  {children}
 </div>
)

and now I want to use this component in another repo 100 times. And so now, I need to do
/ * this code is in the main repo */
<Header>
  <TxProvider instance={ComponentALibraryInstance}>
     <ComponentA>
         <TxProvider instance={RootLibraryInstanceCopy}>
            <T _str="Some string on main repo />
         <TxProvider />
    <ComponentA />
 <TxProvider />
<Header />

You can see that I don’t want to do this 100 times in my code base. Plus, what that is just a simple use-case.
Imagine a component which takes like 10 props of type ReactNode. This means wrapping all of them with contexts.
How to use a single shared project across multiple repos.
We can easily solve this issue by just using a single project across all repos, But then we can’t --purge anymore as pushing from projectA will result in losing the strings from projectB and so on.
The above is my current knowledge.
What I am really looking for ?
Is there any way to use a single native project across multiple repos and also being able to remove unsused strings across all projects ? – we can do it using monorepo, but my concern is doing it across multiple project repos.
I see we do have some tagging system but not sure how to relative them all in a sense where you can acheive the --purge behaviour across multiple repos.
Thanks
Related community discussions:
https://community.transifex.com/t/using-single-transifex-project-in-multiple-react-repos/2714
https://community.transifex.com/t/using-multiple-transifex-projects-in-react-app/2595 (Previous solution using context)

Hey!
Here is what I've ended up doing: tags.
I only have 2 repos/codebases but I tag each one with it's own name. Example: projectA and projectB. This leaves each codebase with its own tags but the strings are shared. So change in translation is correct.
And you can purge / delete all that has one tag, meaning you can wipe one codebase without affecting the others.
The problem now arises over time in that you'll end up with not doing any big --purge, and to solve this I've started adding a third tag when pushing which is the year and month. Example 202203. Now I can select and delete based on the fact that any old string will not have the new year and month tag.
When to do a purge like this now becomes a job that is a bit harder, but manageable. Disclaimer: I only have 2 codebases that share the same Transifex project. So for me it is quite manageable.
For our use case it is decent, some scruffy old strings that needs to be deleted over time. I imagine it might increase cost a bit but it sure does same me some headaches.

We are using something similar in Transifex, where we share the same Native project between Django (python) and React pages (Javascript). We have assembled a guide to explain the process: https://developers.transifex.com/docs/cleaning-up-native-resources


Adding future in person event to community events section of osquery site

Adding future in person event to community events section of osquery site

Ready to merge when you can get the CLA signed.


Add Champion's Guild hint with proper direction.

Issue: https://github.com/runelite/runelite/issues/12139

Closing as this is a duplicate of https://github.com/runelite/runelite/pull/12140

Correction: Closing as @Broooklyn stated they will be adding all hints to the easy clue scrolls per a discussion on Discord.


Remove step in method for outlier removal

We recently concluded that the step in the method for removing outliers is unnecessary. Running the workflow with large datasets can take significant amounts of time. The code will be modified to remove this step in the method but a branch will be published (keep_outlier_code) to keep the outlier code for historical records.

Step has been removed from the method. However, this step included creation of a visual that showed worst performing gstps on each day. This visualization code has not been reimplemented and including it may be worth while