remote.DecodeWriteRequest: returns "snappy: corrupt input"

What did you do?
I was playing with the remote write adapter demo server and I'm getting lots of following errors that spams my stdout:
snappy: corrupt input

It seems remote.DecodeWriteRequest(r.Body) could not decode the body properly.
My go.mod file:
go 1.17

require (
 ...
 github.com/prometheus/prometheus v1.8.2-0.20211006110246-b878527151e6
)

What did you expect to see?
Snappy should decode the write request?
What did you see instead? Under which circumstances?
snappy: corrupt input

Environment

System information:

Linux 5.11.0-34-generic x86_64

Prometheus version:

NAME               	NAMESPACE 	REVISION	UPDATED                                	STATUS  	CHART                       	APP VERSION
prometheus-operator	monitoring	16      	2021-10-07 15:30:12.761238426 +0000 UTC	deployed	kube-prometheus-stack-18.0.5	0.50.0

v2.28.1

Prometheus configuration file:

insert configuration here

Alertmanager configuration file:

Click to expand!
enabled: true
prometheusSpec:
  additionalAlertManagerConfigs:
  - consul_sd_configs:
    - datacenter: mars
      server: consul-api.external
      services:
      - alertmanager
  additionalScrapeConfigs:
  - job_name: kubernetes-pods
    kubernetes_sd_configs:
    - role: pod
    relabel_configs:
    - action: keep
      regex: true
      source_labels:
      - __meta_kubernetes_pod_annotation_prometheus_io_scrape
    - action: replace
      regex: (.+)
      source_labels:
      - __meta_kubernetes_pod_annotation_prometheus_io_path
      target_label: __metrics_path__
    - action: replace
      regex: ([^:]+)(?::\d+)?;(\d+)
      replacement: $1:$2
      source_labels:
      - __address__
      - __meta_kubernetes_pod_annotation_prometheus_io_port
      target_label: __address__
    - action: labelmap
      regex: __meta_kubernetes_pod_label_(.+)
    - action: replace
      source_labels:
      - __meta_kubernetes_namespace
      target_label: kubernetes_namespace
    - action: replace
      source_labels:
      - __meta_kubernetes_pod_name
      target_label: kubernetes_pod_name
  disableCompaction: true
  enableAdminAPI: true
  externalLabels:
    _cluster: foo
    _environment: bar
    _federation: baz
    _provider: qux
    _region: quux
    _team: platform
  image:
    repository: $(PROMETHEUS_REPOSITORY)
  logFormat: json
  nodeSelector:
    floor: monitoring
  podMonitorSelectorNilUsesHelmValues: false
  query: {}
  remoteRead: []
  remoteWrite: []
  resources:
    requests:
      memory: 400Mi
  retention: 6h
  ruleSelectorNilUsesHelmValues: false
  secrets:
  - etcd-certs
  serviceMonitorSelectorNilUsesHelmValues: false
  storageSpec:
    volumeClaimTemplate:
      spec:
        accessModes:
        - ReadWriteOnce
        resources:
          requests:
            storage: 10Gi
        storageClassName: manual
        volumeName: prometheus
  thanos:
    baseImage:  $(THANOS_REPOSITORY)
    objectStorageConfig:
      key: thanos.yaml
      name: thanos-objstore-config
    tracingConfig:
      key: thanos.yaml
      name: thanos-tracing-config
    version: v0.22.0
  tolerations:
  - key: floor
    operator: Equal
    value: monitoring
  walCompression: false
service:
  additionalPorts:
  - name: thanos
    nodePort: 30091
    port: 10901
    protocol: TCP
    targetPort: 10901
  annotations:
    consul.hashicorp.com/service-name: thanos-store-api
    consul.hashicorp.com/service-port: thanos
    consul.hashicorp.com/service-sync: "true"
  nodePort: 30090
  type: NodePort
serviceAccount:
  create: true
serviceMonitor:
  selfMonitor: true

Weird, I'm not sure what the issue could be here, but I doubt it's with the adapter as that code is used in many places without issue.
cc @cstyan @csmarchbanks

Reviewed at the bug-scrub meeting:
There is not enough detail here to debug.  Since no further comments in 3 years we will close.


When VS Code is launched from an activated conda environment, prompt to select it

Related to https://github.com/microsoft/vscode-docs/issues/3481, if someone launches VS Code with a conda environment already activated, VS Code should detect that and then ask the user if they would like to make that environment their selected one.

From an activated Anaconda Prompt, the set environment variables appear to be (for an environment named "activatetest"):
CONDA_DEFAULT_ENV=activatetest
CONDA_EXE=C:\Users\brcan\AppData\Local\Continuum\miniconda3\Scripts\conda.exe
CONDA_PREFIX=C:\Users\brcan\AppData\Local\Continuum\miniconda3\envs\activatetest
CONDA_PREFIX_1=C:\Users\brcan\AppData\Local\Continuum\miniconda3
CONDA_PROMPT_MODIFIER=(activatetest)
CONDA_PYTHON_EXE=C:\Users\brcan\AppData\Local\Continuum\miniconda3\python.exe
CONDA_SHLVL=2

CONDA_SHLVL is the variable to check.
In case of base environments only attempt to select it if auto activate base is set to false, see https://stackoverflow.com/questions/54429210/how-do-i-prevent-conda-from-activating-the-base-environment-by-default. Will likely have to check both CONDA_AUTO_ACTIVATE_BASE and conda config --get auto_activate_base.

You're right about the env variable. CONDA_SHLVL > 1 would indeed let you know if you are a "level" deeper than the base env, aka there is an environment activated. You actually could "Inception it" and go deeper as well. This can also be 0 as well which indicates that the conda command is available for the shell, but nothing is activated at all (even the base).  Here is a little more information if you're curious.
As far as determining what env you are in, the CONDA_PREFIX env variable will show you that, or you could use conda info --json and check active_prefix, but the former would be the way to go.
Note that there is an open issue for this not working as it should on Windows: here which @karrtikr is already aware of. The Anaconda team will make sure to get to that.

Upstream VSCode bug preventing autoselection at startup: https://github.com/microsoft/vscode/issues/171827


Closing Browser tap causes other browsers tabs to refresh their content and lost work

When having multiple browser tabs, closing one causes the other to refresh and lost current input done on them.
OS : Windows 7 x64
Lightable:  0.7.2
Binary Version : 0.8.4
How to reproduce:
Just open multiple browser tabs for example, create one tab and load grooveshark select a couple of tracks, then start closing the rest of the browser tabs, then your current  groover session will be lost.

Since grooveshark isn't around anymore, is there another way to reproduce this? On 0.8.0-alpha, I don't see items being lost in http://todomvc.com/examples/backbone/ if I open and close multiple tabs

Closing as this isn't reproducible. Happy to reopen if we get reproducible steps


[Windows] Use case-sensitive file names for the system fonts to avoid warnings.

Fixes https://github.com/godotengine/godot/issues/68767

Thanks!


fix: interaction.isContextMenu is not a function

Please describe the changes this PR makes and why it should be merged:
Solved this error (probably) [17:09:27/ERROR]  interaction.isContextMenu is not a function
Status and versioning classification:
#539

https://github.com/Garlic-Team/gcommands/pull/539

Please, can you do this PR on my fork? Branch https://github.com/xHyroM/GCommands/tree/feat/support-for-djs-v14 . I'm currently on vacation so I can't update it @whattyu


User Retention Admin Interface

As a Rancher Admin, I want to configure global user retention settings so that I can define when a user will get deactivated or deleted from Rancher after a not logging in for a given duration.
Screenshots
Add a new button to the User Retention page

User Retention Form
Inputs disable without data

Form with data

Backend QA assigned to the rancher/rancher ticket so UI QA should coordinate with them on where to help with testing.

/backport v2.8.next1

there are e2e tests that perform basic navigation and form checks but we should expand on this to test whether a user account is disabled/deleted after a given inactivity period and to make sure users other than the admin have access to this setting. Here's a follow-up automation ticket https://github.com/rancher/qa-tasks/issues/1400
for 2.9 release we will need to manually test this feature until we can get further automation coverage. moving to To Test.

UI interface behaves as expected. However, the functionality does not work. Here are my findings:

For users who last logged in before the user retention is set, the cron job does not execute the disable/delete action.

https://github.com/rancher/dashboard/assets/70187881/e4ad830c-3d4f-4b4a-9ce3-f641962d697f

Also, the default timestamp for a user that doesn't have a last login date is not being displayed in the table

https://github.com/rancher/dashboard/assets/70187881/ccca8330-633d-471d-bc85-40f053682a72

For a user that last logged in after the user retention is set, when the countdown reaches 0 for both disable/delete fields, the table exhibits back the - and the actions to disable/delete the user are not performed at all

@IsaSih we need to collect more information so that we could properly troubleshoot the behavior you are seeing. The UI is only setting and reading values from the backend, so we first need to confirm the values for the following settings:

user-retention-cron
`user-last-login-default'

For users who last logged in before the user retention is set, the cron job does not execute the disable/delete action.

In the video that you posted, it looks like the "dry mode" option is active. Can you also validate the value for user-retention-dry-run? If this is active, users will not be automatically deactivated/deleted, but the Rancher backend will produce a log describing what it would have done if dry mode was disabled.

Tested in v2.9-1c2b815c8dd66e141b21630904127adc8e03c3de-head:

user is disabled/deleted after a given inactivity period (single and multiple users)
only admin users have access to the settings
The cron job schedule works as expected (there is a bit of a delay between when the cron job executes and when the user sees changes in the UI)
dry-mode works as expected (no changes are applied to user records when it is toggled off)
default last login - https://github.com/rancher/rancher/issues/46063
User table
-- last login (populated when user logins into their account, see the above issue for default last login)
-- disable after (populated when inactivity period is set in settings and not in dry-mode)
-- delete after (populated when the inactivity period is set in settings and not in dry-mode)


Allow entering AMI manually from sample page

Just a simple addition of input for manually entering an AMI that we want to provision.
This should be just a fallback, when IB is not available, but will be useful until IB is in ehpemeral environment and also for easier local testing.

LGTM except for the size of the select bar but it is not important 😄

LGTM except for the size of the select bar but it is not important smile

Yeah, it is bit oversized, but I was lazy to look for a solution xD
And given its just for testing...


Implement MIDI Control Change

After implementing pitch bend, it would be nice for us to set up the basic infrastructure to be able to send MIDI Control Change messages.
We could start by implementing a control_change function in the MIDI module that would have a signature like this:
val control_change : ~cc:int -> ~value:int -> ~timestamp:int32 -> Event.t

The MIDI chart at this address provides the specification of this message: https://www.midi.org/specifications-old/item/table-1-summary-of-midi-message
Following the conversation on #9 would provide good insight on how to implement it easily.
For testing purpose, it looks like fluid synth supports MIDI CC 091 (Reverb modulation), so you can try to add a MIDI CC 91 at the start of the sequencer_func in stat_engine.ml and check if reverb is indeed working. 😊

Please can I work on this?

I just assigned you, thanks!

Hi @Engil, I have already implemented the control_change function but I am still trying to complete the second task (testing if reverb is working)
I could not find sequencer_func in stat_engine.ml did you mean sequencer_main_func?
Thanks

Yes I was referring to sequencer_main_func indeed. :)

(to note: I am not sure I was right about fluidsynth: let me know if you are struggling with this part)

(to note: I am not sure I was right about fluidsynth: let me know if you are struggling with this part)

Yes please any hint would help. Thanks

Yes please!

Hi @Engil it seems you forgot to close this issue

Hi @pitag-ha, @Engil
I am trying to fill the Outreachy application form
Please what should I put for the project timeline?

Hi @kamtoeddy, I think the application form is closed already, isn't it? If not, let me know and I answer you by mail. That's what I've done for other applicants as well.

I would also like to know whether we can continue working on the various projects after the deadline. I am still working on my issue in the fry repo

@AryanGodara has had a similar question. I've answered it in quite some detail here. Let me know if any of you two has more questions about that.

Hi @kamtoeddy, I think the application form is closed already, isn't it? If not, let me know and I answer you by mail. That's what I've done for other applicants as well.

It is closed already


PL/SQL block: Fix contradictions between sqlparse and Oracle syntax

Fixes issue #86
The change reflects the Oracle SQL syntax (Version 12c.2) as far as it conforms with the current parse tree of sqlparse.
The PR has been tested successfully with the current versions of dderl and imem.

Coverage increased (+0.06%) to 99.815% when pulling 82b96504818220b0fb9a6f98b15f2880839fcedd on wwe_issue_86 into 645851b2f813952bdd9c3dc02d1199eab32a970a on master.


Changed caching directives builder to use the protocol that creates a…

… ZnMultiValueDictionary.

Coverage decreased (-0.0002%) to 99.563% when pulling 53bea2a616d2e774da55254edaf2a6610fc55cae on use-ZnMultiValueDictionary-in-headers into 45bd52baef05a702f250771ac8d11d25d72c0333 on release-candidate.

Coverage decreased (-0.0002%) to 99.563% when pulling 53bea2a616d2e774da55254edaf2a6610fc55cae on use-ZnMultiValueDictionary-in-headers into 45bd52baef05a702f250771ac8d11d25d72c0333 on release-candidate.


Additional Enhancements for Doxx

There's a few more things I think Doxx can do that would most likely ease developers with customization with the template.
I would like have your thoughts on adding an option for bower and using that for the templates. We can keep the old template but create a new template that uses bower if the user opts in for a new one.
Also if you need a helping hand, I will be willing to be a collaborator. Of course, I have some projects of my own that I am working  on (which they really needed Doxx haha) but I can try looking into fixing other issues. Just let me know how you do things with versioning and I'll try to follow it. :)

---
Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/26434143-additional-enhancements-for-doxx?utm_campaign=plugin&utm_content=tracker%2F332585&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F332585&utm_medium=issues&utm_source=github).

Hello @iwatakeshi,

I would like have your thoughts on adding an option for bower and using that for the templates.

Indeed, we could extend the "--template" to detect if its a bower dependency (e.g. if the string contains an @ it's a bower dependency) and install (or update it) asynchronously before running the next process steps. That way the documentation template could be required via bower, what do you think?

Also if you need a helping hand, I will be willing to be a collaborator.

Yeah, no problem! Let's do that!

how you do things with versioning and I'll try to follow it. :)

I follow semver:

Given a version number MAJOR.MINOR.PATCH, increment the:
MAJOR version when you make incompatible API changes,
MINOR version when you add functionality in a backwards-compatible manner, and
PATCH version when you make backwards-compatible bug fixes.

Awesome, thanks @FGRibreau! :+1:

Indeed, we could extend the "--template" to detect if its a bower dependency (e.g. if the string contains an @ it's a bower dependency) and install (or update it) asynchronously before running the next process steps. That way the documentation template could be required via bower, what do you think?

That sounds like a possibility. A pseudo code for bash may be:
# parse a whole folder
  $ doxx --source lib --bower true --target docs
# or the shortcut:
  $ doxx -s lib -b true -T docs

# parse a whole folder and use a specific template with bower
  $ doxx --template ./view/myowntpl.jade --bower ./bower.json --source lib --target docs
# or the shortcut:
  $ doxx -t ./view/myowntpl.jade -b ./bower.json -s lib -T  docs

Although for the parsing a whole folder, I would love to use an implied command like the following:
# parse a whole folder
  $ doxx --source lib --bower --target docs
# or the shortcut:
  $ doxx -s lib -b -T docs

So instead of checking if -b is a boolean we can just check if it's an empty string.
As far as installing bower, I'm think of creating a new class called Bower which takes an option as a param of the constructor and then using a local bower to install the dependencies at the provided target. And yes, async does sound like a good idea.
What do you think?

 --bower true seems redoundant --bower or -b would be enough right?

As far as installing bower, I'm think of creating a new class called Bower which takes an option as a param of the constructor and then using a local bower to install the dependencies at the provided target.
:+1: sounds good to me!

Yes, I think -b or --bower would be better. I'm in the middle of researching of researching a couple of things to enhance doxx and so far I thought to try a GitHub template and see how that would work out. A fork of the template can be found here: https://github.com/iwatakeshi/doxx-theme-cayman
Another thought I had about doxx was making it a language agnostic documentation generator. I'll push the idea on the develop branch in a bit but basically I'm just seeing how we can use Prism's tokenize method... your thoughts?

Here's the develop branch: https://github.com/iwatakeshi/doxx/tree/develop
You'll need to have babel installed globally and then run:
$ babel-node ./lib/3.0.0/test

It should output the comments only. Of course all this is just to give me an idea of what Prism.js can do.

:+1: for https://github.com/iwatakeshi/doxx-theme-cayman
About the develop branch, I really really prefer whenjs over Q, would you mind make the switch?
Otherwise than that, it's good for me :)

:+1:  No problem, I definitely can do that. Most seemed to use Q so I just gave it a shot. haha.

I must say that the doxx-theme-cayman came out real good. It's pretty much ready but there's a couple of things that needs be done before moving on with theming.
First, we'll need to create a component that will copy the theme and its dependencies or assets into the same dir as the docs. Here are some thoughts/questions that I had and would like to hear your thoughts as well:
We could:

"For this, if users would like to create custom templates, we'll need to create a guideline."

Just provide a starter-template :)

"Create a themes repo and have users pull request their custom themes there."

I'm not very fond if this option, it's better if users can install any template they want

Create a theme searching site similar to how gulp.js search their plugins.

I would not rate this as high priority feature, a lot still needs to be done on Doxx itself :)

Just provide a starter-template :)

That sounds good then. I'll create a repo and name it doxx-theme-starter

I'm not very fond if this option, it's better if users can install any template they want using bower :) However, every template could start with "doxx-theme-"

I agree, any thoughts or a pseudo code to have Doxx install the templates?

I would not rate this as high priority feature, a lot still needs to be done on Doxx itself :)

Mobile is hard....haha

I would not rate this as high priority feature, a lot still needs to be done on Doxx itself :)

I agree, I would add this to a milestone and slowly work on it.

:+1:

I'll close this for now. I'll be creating milestones if needed.


Component level scss processing

Please provide the environment you discovered this bug in.
Analog generated project
Which area/package is the issue in?
vite-plugin-angular
Description
I am having problem processing component level scss.  Do you have an example of such?
this seems to be a bug because in plugin you are resolving the css but not processing it if it is a scss before resolving
Please provide the exception or error you saw
No response
Other information
No response
I would be willing to submit a PR to fix this issue

[ ] Yes
[ ] No

this is an issue for me too. Is there a fix?

Inline component SCSS is not supported at the moment. Will look into see what is needed for this feature soon.

@brandonroberts line 176 in angular-vite-plugin.ts could be enhanced to use vite:css plugin.  Below is pseudo code of how to find the plugin, the plugin has transform handle but not sure how to call it.  Sorry don't know vite uses the plugin otherwise would have completed the following and submitted the PR.
if (hasStyleUrls(code)) {
const styleUrls = resolveStyleUrls(code, id);
//TODO: add resolution of css pre processing
const cssPlugin = viteServer.config.worker.plugins.find(plugin => {plugin.name == 'vite:css'});
styleUrls.forEach((styleUrl) => {
if (cssPlugin) {
// need to use the plugin and call the transform method on it.
} else {
this.addWatchFile(styleUrl);
}
});
}

Inline component SCSS is not supported at the moment. Will look into see what is needed for this feature soon.

This is not inline scss, this styleUrls that are not working as the current component-resolvers assume that file reference is complied css and does not require preprocessing.

The vite:css plugin is already part of the pipeline. The file watchers are not responsible for the transform themselves. The styles get inlined during compilation, so they would have to be processed before then.

I was trying to help but I think i am clueless in how this works.  What you are saying make sense,  so I will wait for you to bridge this gap.  This kinda blocker for me, so if you can close this as you get time then i would really appreciate it.  Overall the plugin is working great for me.

This fix has been included with the 0.2.0-alpha.8 release of the plugin. Thanks!

@brandonroberts thank you.  I tested it but the styleUrls are not working.  It results in following error:
8:16:52 PM [vite] Internal server error: Cannot read properties of null (reading '1')
at Context. (/opt/development/trianz/analog/node_modules/@analogjs/vite-plugin-angular/src/lib/inline-styles-plugin.js:29:62)
at Generator.next ()
at /opt/development/trianz/analog/node_modules/tslib/tslib.js:118:75
at new Promise ()
at Object.__awaiter (/opt/development/trianz/analog/node_modules/tslib/tslib.js:114:16)
at Context.load (/opt/development/trianz/analog/node_modules/@analogjs/vite-plugin-angular/src/lib/inline-styles-plugin.js:25:28)
at Object.load (file:///opt/development/trianz/analog/node_modules/vite/dist/node/chunks/dep-5cb728cb.js:35266:50)
at loadAndTransform (file:///opt/development/trianz/analog/node_modules/vite/dist/node/chunks/dep-5cb728cb.js:39808:46)
at doTransform (file:///opt/development/trianz/analog/node_modules/vite/dist/node/chunks/dep-5cb728cb.js:39794:20)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)

@pratikpparikh I'll take a look. If you have a reproduction or quick example snippet that would help also

@brandonroberts I tested it with your analog-app under apps.  Just swap out inline scss style in product-list.component.ts with styleUrls: ['./product-list.component.scss'] and you will be able to reproduce.
Regards,
Pratik Parikh

Hmm interesting. There are already other components in the analog-app that use SCSS styleUrls. Thanks

I see what's going on now. Those other ones are CSS styleUrls. I'll get a fix in

thank you

Fixed and released as 0.2.0-alpha.9


WVa likes Bad PDFs

Bad PDFs are constantly added to WVa website.
I think we should do a head request on the PDFs and throw out any broken ones.

This may just be the result of delayed uploading of files to the server.  Seems like it suffers from the same problem NJ does.  The files that were broken yesterday are loading today.


sdkconfig improvements

use sdkconfig.defaults
disable DHCP/TLS server support
disable TLS < 1.2
disable Wi-Fi SoftAP support

I'm seeing a crash and bootloop:
https://gist.github.com/kristiankielhofner/c33f96af661d87ab10250404b0195fc2

This very much looks like what I saw when I bumped ESP-ADF to 2.6. What is probably happening is that you updated your build container, so you're now building with ESP-ADF 2.6 without the changes required in Willow (985e8ec0323a6a8b0f3bc9595170c6c29504e862).
I will create a new PR to bump ESP-SR and ESP-ADF separately to solve this. This will also work around the CI issue we're seeing for 922de25e61ba4bb35c24352592c11c9dfb5531d4.


Switched jsdom to jsdom-no-contextify to avoid python dependency.

With this change we can build grommet on windows without depending on python.

Thanks for digging into that @TiagoJustino!

Thanks Tiago!  Nice improvement.


ScrollBar control cannot slide in Flyout

Discussed in https://github.com/AvaloniaUI/Avalonia/discussions/12263
Please see https://github.com/AvaloniaUI/Avalonia/discussions/12263#discussioncomment-6504766 for how to reproduce

Originally posted by pyking-wang July 20, 2023
It is also normal in the previewer, but cannot slide after compilation.
<ScrollBar Visibility="Visible" Orientation="Horizontal" Scroll="ScrollHandler1" Grid.Column="1"/>

The slider has disappeared.

acc. to https://github.com/AvaloniaUI/Avalonia/discussions/12263#discussioncomment-7055023 and own tests, this issue is fixed in master (not 11.0.4) and can be closed. Should be available latest in 11.1, if not 11.0.5


docs: use unjs badge colors

🔗 Linked issue

❓ Type of change

[x] 📖 Documentation (updates to the documentation, readme, or JSdoc annotations)
[ ] 🐞 Bug fix (a non-breaking change that fixes an issue)
[ ] 👌 Enhancement (improving an existing functionality like performance)
[ ] ✨ New feature (a non-breaking change that adds functionality)
[ ] 🧹 Chore (updates to the build process or auxiliary tools and libraries)
[ ] ⚠ Breaking change (fix or feature that would cause existing functionality to change)

📚 Description

📝 Checklist

[ ] I have linked an issue or discussion.
[x] I have updated the documentation accordingly.

@uncenter @pi0 Should we create a attribute called preset-color = unjs|default can add more later for ease of use?
Thoughts?

@uncenter @pi0 Should we create a attribute called preset-color = unjs|default can add more later for ease of use?
Thoughts?

Sounds like a good idea to me, would be presetColor though since we are using camelCase now (I must say I'm an avid kebab-case fan, especially in this instance with HTML attribute-like syntax ahah).


Add command line option to skip existing files

We use Yo to generate content for new Git repositories. We have several in-house templates. Jobs to generate are run non-interactively through Jenkins. We'd like to be able to re-run our Yeoman templates on existing repositories without clearing their contents. In other words, if we have an updated template that adds a file, we'd like to add that file to our template and let our users re-run the Jenkins job and have that file added to the repository without overwriting any existing files.
Today, Yo prompts what you want to do when it finds a conflict. This doesn't work when running non-interactively. Yo has the --force switch, but that overwrites everything. This is not what we want. Users could easily have strayed from the defaults since the initially created their repository.
Because of this, we now have to write extra automation to add new files to repositories and we can't add them to the template. (Well, I guess we could, but then we'd have that file in two different places.)
Please add a --skip-existing or a --on-conflict <skip|overwrite|abort> switch to Yo so I can control what to do when handling conflicts.

I wouldn't mind putting together a pull request for this feature. I just need help navigating to the right spot in the code. I looked in the yo module but couldn't find where the --force switch gets used.

The options are all handled inside yeoman-generator. More specifically, conflicts resolution is handled over here: https://github.com/yeoman/generator/blob/master/lib/util/conflicter.js


[C++][Python] Non decomposable aggregation UDF (Hash version)

Describe the enhancement requested
In https://github.com/apache/arrow/issues/35515,
I have implemented a Scalar version of the non decomposable UDF (Scalar as in SCALAR_AGGREGATE). I would like to support the Hash version of it (Hash as in HASH_AGGREGATE)
Component(s)
C++

take


Topic/fix typo and set version 1.16 align with GoReleaser

I read your blog.
https://engineering.nature.global/entry/shukujitsu
I will inform you with two points, although they are not essential.
thank you for your work.

thanks !


[docs][oracle] add documents about oracle cdb (#790)

Fix for #790

@leonardBang Would you like to help review.

@luoyuxia Thanks for the contribution, could you validate this in local environment ?

@leonardBang yes，I'll validate it as soon as possible.

@leonardBang I have validated it in my local environment. Lookforward your review if you're free.


renderLineHighlight doesn't work with remote files

VSCode Version: 1.49.1
OS Version: Debian

Steps to Reproduce:

Use "editor.renderLineHighlight": "all"
Connect to a remote instance using the Remote - SSH plugin.
Use the Dark+ theme (or any other theme it seems)
Open a remote file.

Notice the editor does not show a box around the current line. Only the gutter changes, with a text color change.

Copy/paste the contents of the file into a new editor (with ctrl+n).

Notice a box is shown around the current line.

Does this issue occur when all extensions are disabled?: Yes/No

@dharrington The setting "editor.renderLineHighlight": "all" works fine for me for any remote file that I try. What is much more likely, is that you are opening a file from a folder or a workspace where you have a .vscode settings folder and where perhaps there is also configured editor.renderLineHighlight, but with a different value:

That's exactly right. I didn't realize folder settings were a thing, or that I had some. Thanks


Weird error

What version of ViaVersion are you using? Type /ver viaversion
0.9.8
What version of Spigot are you using? Type /ver
PaperSpigot-"4c7641d" (MC: 1.8.8)
What plugins are you using? Type /plugins
I'll send my plugins private, if necessary (about 60plugins)
Are you using any additional software like BungeeCord? If so, what software and version? (Please list your plugins as well)
Right now I'm not using bungee, because I'm just building server...
How does this error happen? login? Using an item?
When I joined the server
Is there an error in the console? Use pastebin.com. Is there a kick message?
http://pastebin.com/Ntb2dQ92

We are aware of this issue, it's a problem at the third-party API (Spiget), we hope it'll be solved soon. You can ignore it for now or disable the update checker in the config.
I keep this issue open until it's fixed at Spiget's side

We released ViaVersion 0.9.9, that uses Spiget API v2. That'll fix this issue.

Thanks!


removed TODOs and made tickets for them

Removed TODOs and added tickets with descriptions and point estimates (so they might actually get done 😅)

If anyone thought someone was going to implement each fix in this "todo" ticket, that's unrealistic

I feel like the TODOs should stay in the code, but adding tickets is definitely good. Maybe a reference to the file and line number in the ticket so its easy to get where you need


separating high level api and  low level api

high level API (for human)
low level API (for compatibility)

or creating another wrapper package.

example 1
semver
  __init__.py  # high level api
  _internal.py # low level api

example 2
semver
  __init__.py  # exporting symbols minimumly
  _internal.py # low level api
  forhuman.py  # high level api (this is not good name)

When the bug (guessed) is found, then, the question that "what is the specification?", answering this question changes to more difficult, it is not my wanted.

no


Improve docs of transpose

This is PR for improving docs of functions/links. Related issue: #2182
Modified functions/links:

functions/array/transpose

jenkins, test this please

LGTM!


$$hashkey in serialised Choice objects

[2016-09-08 22:01:24] [INFO ] QuestionFacade:164 - Failed to map to any expected input...
com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "$$hashKey"
(class uk.ac.cam.cl.dtg.segue.dos.content.Choice), not marked as ignorable
(19 known properties: "level", "canonicalSourceFile", "author", "relatedContent", "encoding",
"version", "subtitle", "title", "tags", "explanation", "id", "layout", "correct", "published",
"value", "type" [truncated]])
 at
[Source: {"type":"choice","canonicalSourceFile":"content/books/physics_skills_14/ch_a_p2.json",
"encoding":"markdown","children":[],"value":"$\\units{N\\\\,m^{-4}\\\\,s}$","published":false,
"$$hashKey":"object:1754"}; line: 1, column: 194]
(through reference chain: uk.ac.cam.cl.dtg.segue.dos.content.Choice["$$hashKey"])
at com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException
            .from(UnrecognizedPropertyException.java:51)

apparently it's a thing that can happen with JSON.stringify(...): http://stackoverflow.com/questions/18826320/what-is-the-hashkey-added-to-my-json-stringify-result

We believe that it could be caused by the ng-repeat in MultiChoiceQuestion.html not having a "track by" argument which then gets serialised using JSON.stringify(...) rather than angular.toJson(...).
However, we have not been able to reproduce the bug.
As this error was not seen in the logs over the lifetime of the previous API version, we will demote this issue to a nice-to-have rather than a bug for now.


Add Optimism kovan network

Add Optimism Kovan to list of networks and also a slight rename to the mainnet network to be in line with Optimism brand guide.

Any blockers to merge this?

@ChaituVR @bonustrack hey guys 😄  would love a review on this. Let us know if you need anything on our end. Thanks!


Require TypeScript 3.0 to build TSLint

Is your feature request related to a problem? Please describe.
In order to add TypeScript 3.0 unknown related rules, the TSLint needs to use TS 3.0 library.
For instance ts.SyntaxKind.UnknownKeyword identifier is not defined prior TypeScript 3.0 which is required for fixing #4355 .
Describe the solution you'd like
Update package.json to require TypeScript 3.0 and above.
Describe alternatives you've considered
If it is possible to use ts.SyntaxKind.UnknownKeyword without requiring TS 3.0 it would be better of course, but I don't know such way.

@NN--- this is an interesting discussion. Another workaround is from https://github.com/palantir/tslint/pull/4219/files#diff-8c6f0d081a57df6182dc05490ed38a63R166:
        // Forwards-compatibility with TS3
        case (ts.SyntaxKind as any).UnknownKeyword:

...which should probably be changed to just case ts.SyntaxKind.UnknownKeyword after this goes in.

This'll be fixed by #4274

Seems like TS 3.0 requirement is a bug change and can be workarounded now.


Jurisdiction selector doesn't use latest data

The way the jurisdiction selector is implemented causes several problems.

It's loaded dynamically by the world map generator.
It doesn't use the latest data as the selecting the latest of a set of versioned rows is very difficult in ActiveRecord. This means it doesn't show updated:

survey names
relevant alpha/beta/live statuses of questionnaires.

no longer have world map on homepage


[DRAFT] Clarify required preload on updating assoc

Not sure if my understanding is correct here, so please confirm before merging.
AFAICT the preload is mandatory and omitting it leads to a RuntimeError] raised at https://github.com/elixir-ecto/ecto/blob/a67675a6437fd8d16d6c4686e080ccff0e6bb560/lib/ecto/changeset/relation.ex#L74

NVM, don't know what I was thinking...


the correspondence between the numerical identifiers in the output matrix and the transposable elements

I am encountering difficulties in downstream analysis due to the inability to locate the correspondence between the numerical identifiers in the output matrix and the subfamily and loci of transposable elements.
I have successfully run MATES on 10x Visium data, resulting in the generation of an h5ad file (../10X_locus/X/combined_matrix.h5ad) and an expression matrix (../result_MTX/X/TE_MTX.csv). However, the row names in these files appear to be numerical values. I would like to confirm if these are the final output files. Additionally, could you please advise on how to obtain the correspondence between these numerical values and the specific subfamilies and loci of the transposable elements?
Thank you for your help!
Kind regards,
Zurui

Hi @huangzr123 ,
May I ask would you be interested in locus level TE expression or subfamily level? The 'combined_matrix.h5ad' file contains the TE expression in the locus level. And you can map these numerical values back to the TE reference file sent to MATES. We are currently working on the new function to showing these results in the same manner as in our manuscript, like 'chr3∣75551382∣75558968∣ + ∣HERVK − int∣ERVK, 7586 bp'. See also my latest reply to #13 for details.
The expression matrix (../result_MTX/X/TE_MTX.csv) contains the subfamily level information, you can combine this csv table with your 10x visium h5ad file following this tutorial. There is a section called 'TE' and it shows you how to combine the produced csv file with h5ad to do downstream analysis.
Please let me know if you have any other question.
Thanks,
Yumin

Hi @huangzr123 ,
May I ask would you be interested in locus level TE expression or subfamily level? The 'combined_matrix.h5ad' file contains the TE expression in the locus level. And you can map these numerical values back to the TE reference file sent to MATES. We are currently working on the new function to showing these results in the same manner as in our manuscript, like 'chr3∣75551382∣75558968∣ + ∣HERVK − int∣ERVK, 7586 bp'. See also my latest reply to #13 for details.
The expression matrix (../result_MTX/X/TE_MTX.csv) contains the subfamily level information, you can combine this csv table with your 10x visium h5ad file following this tutorial. There is a section called 'TE' and it shows you how to combine the produced csv file with h5ad to do downstream analysis.
Please let me know if you have any other question.
Thanks, Yumin

Thanks! My question has been fixed! Nice work

Sorry, when I test the h5ad output, I found the TE_index is duplicated?
table(duplicated(CRC4_loci@assays$RNA@meta.features$TE_index))
FALSE   TRUE
118628  15414

See also #18

Hi @huangzr123 ,
The generated h5ad file can also show the TE locus information (Chromosome|start|end|TE_name).
Thanks,
Yumin


Modify sources

Hey,
I really like using this tool as it simplifies my theme changing habit a lot. However one thing I think which could be better would be to be able specify the templates and schemes sources directly in the config.toml file.
I think it would be easier especially when initializing the tool to have them in the configuration file as it is configure IMHO instead of having to manually create all the folder arborescence in .local/...
I could try submitting a PR for this if you're interested although I've never writtenrrust before
Cheers

Hey, thanks for the suggestion!
I'm about to merge #48, which should help with your usecase.
I sure agree adding an option to set this on the config would also work. I think this order of precedence makes sense: config file -> sources file in .config -> sources file in .local/share
A PR would be very welcome :)

I think this was fixed by https://github.com/Misterio77/flavours/pull/62, feel free to reopen if there's anything missing!


Include a code sample in the homepage

Extracted from some feedback in a HackerNews thread.
We should include a short code sample in falconframework.org and probably make the CTA for documentation/tutorials more easily reachable from there.

Can I get a volunteer to help make this happen ASAP?
https://github.com/racker/falconframework.org

Merged.


Question: Persisting docker /etc/hosts file changes after Docker host restart

Hi,
This is probably just a newbie question instead of an actual issue -- is there a way to restart the docker host while persisting the changes made to the /etc/hosts file?
Thanks,
Kurt

I thought that this was going to be merely a trivial annoying issue, but it turns out that this also prevents pushing into a private repository.  Tagging and pushing via the IP address will work but if we want the host name to be mapped to the IP address then we would need to be able to persist that host file entry between Docker host restarts.
How are other folks solving this issue?

@nathanleclaire Any ideas about this one?

You mean /etc/hosts in the VM?

Yes.  Is there a way to tell docker-machine to create a host vm or update one with mappings in the host file?

It's not possible currently.  You could probably use docker-machine ssh after create is done if desired.

Thanks for the information, Nathan.  I will say that it is going to be hard to have to modify the /etc/hosts file each time the host VM is restarted.  Now I'm wondering whether there is a way to override the docker-machine start/restart script to include automatically scripting these modifications.  Good idea or bad one?
Is this the same for any custom certs that we have?  Ideally, I would like to be able to add a directory on the Docker VM to the effect of /etc/docker/certs.d/my.docker.reg.com/ and then store a cert for my registry there.  I am not really seeing how Docker Machine's create can handle this situation. Am I missing an optional argument that will allow for this?
Thanks again for the info, @nathanleclaire!

Thanks for the information, Nathan. I will say that it is going to be hard to have to modify the /etc/hosts file each time the host VM is restarted. Now I'm wondering whether there is a way to override the docker-machine start/restart script to include automatically scripting these modifications. Good idea or bad one?

Unfortunately there is no way to do this in Machine itself (without modification) today AFAIK but you could potentially wrap machine start and restart in a little script / alias if the need is strong.

Is this the same for any custom certs that we have? Ideally, I would like to be able to add a directory on the Docker VM to the effect of /etc/docker/certs.d/my.docker.reg.com/ and then store a cert for my registry there. I am not really seeing how Docker Machine's create can handle this situation. Am I missing an optional argument that will allow for this?

Take a look at https://github.com/boot2docker/boot2docker#installing-secure-registry-certificates.  B2D accounts for this and you should be able to persist certificates in the VM if installed correctly.

Thanks, Nathan!  The boot2docker link looks interesting. I'll play around with B2D (in the next day or so) to see whether it solves the problem.

This issue #1792 is related.

+1

+1

+1

+1


RuneQuest:Rolepaying in Glorantha  version 04.03.2019

Changes / Comments
Tweaked CSS so skill names can be read when modifying repeating sections
Added fields for coinage on the 2nd tab.  Currently this does not effect encumbrance.
I added a bunch of new hit locations including all the location tables  at the start of the bestiary.
Added fields for individual weapons skill modifiers or occasion such as Bladesharp cast as per request
https://app.roll20.net/forum/post/7170823/runequest-roleplaying-in-glorantha-feature-request-weapons-skill-mod/?pageforid=7170823#post-7170823
I also added checkboxes with the heading Spells Cast for Vigor, Strength  and Glamour they handle all the fudges listed under the spells,such as skill category  increases, damage die steps and max enc.So don't add the stat bonuses in the mod fields of the characteristics.The bonuses are automatically added to stat rolls.A message appears under the stats  reminding you to add the bonus when doing resistance table rolls.  There is probably better way of doing this but it would mean changing a lot of sheetworkers and/or adding a whole new column of mod fields.
Removed a lot of tables in Hit location roll templates
Roll20 Requests
.

Thanks for the comment. That was helpful.


Terser syntax through well-documented defaults and inference

Issue Type

Feature Request

It appears that one of the primary goals of this project is to reduce typing. I think every programmer loves that.
It might be possible to allow for even terser syntax by establishing and documenting some sensible defaults and inference behavior. Here are some suggested considerations:
Default script:
For example, one could use the command denox run, which would be expanded to denox run default. (I gave default as the example here, but maybe you like main, etc.)
Example:
deno-workspace.yaml
scripts:
  default:
    file: main.ts
    deno_options:
      allow-net: example.com

shell
> denox run
# equal to:
# deno run --allow-net=example.com main.ts

Inferring file from script:
Likewise, in deno-workspace.scripts:
If a script does not provide a value for file, it could be inferred from its script key—this would allow it to be an optional property if people would like to organize scripts directly by file name. This practice provides the advantage of native terminal tab-completion and also promotes an organizational structure which aligns with the workspace filesystem.
Example:
This:
scripts:
  main.ts:
    file: main.ts
    deno_options:
      allow-net: example.com

could be equal to:
scripts:
  main.ts:
    deno_options:
      allow-net: example.com

With the future the possibility to specify cmd instead of file #15 , I'm afraid adding a terser syntax would result in more confusion.

@BentoumiTech I can see how that would complicate things. However, #19 addresses this.

denox run is faster to type than denox start, I like this change!


Update build definition gives 404

I have a URI ending
...  _apis/build/definitions?definitionId=54&api-version=5.1
or _apis/build/definitions/54?api-version=5.1
Where 54 is the ID of a build definition

GET this URL returns the definition
PUT this url with a new definition as the body parses the JSON and any returns errors (e.g. If I remove the ID from the JSON I get The request specifies pipeline ID 54 but the supplied pipeline has ID 0.) if the JSON is valid I get a 404 error and the body says Build pipeline 54 was not found
DELETE this URL did delete it

Issue turns out to be with the value in revision.
Revision needs to be the current rev number, incrementing it to what you want the revision to be causes this error


CI: Run browser, node and fastboot tests in parallel

Yeah, getting build times back to a decent level would be a big relief ❤

Strange thing is this runs just as long as the non-parallel builds: https://travis-ci.org/simplabs/ember-simple-auth/jobs/234047753
😕

yeah... I'm a little confused by that too 🤔

FWIW I still consider this a win since we can see the log output of the node and fastboot tests again 😉

Absolutely - we should investigate the time thing though…

Argh, build is failing due to updated FastBoot.

This needs to be rebased on master once #1367 is merged.


SchemaVersion mismatch error when returning CallandBridge action

Describe the issue
I am integrating AWS PSTN audio service with AWS Chime meetings and want to make an Outbound Call to a phone number. I am working in amazon-chime-sdk-js on front end in angular and my backend is in dot net core 3.1. I am using the AWS Chime SDK Meetings and AWS Chime SDK Voice for meetings and calling respectively.
When I made a SIP call using
CreateSipMediaApplicationCallRequest request = new CreateSipMediaApplicationCallRequest
{
FromPhoneNumber = fromNumber,
ToPhoneNumber = toNumber,
SipMediaApplicationId = getSipMediaApplicationResponse.SipMediaApplication.SipMediaApplicationId,
SipHeaders = new Dictionary<string, string>
{
{ "X-chime-join-token" , teleMeetingJoinToken} ,
{ "X-chime-meeting-id", chimeMeetingId}
},
ArgumentsMap = new Dictionary<string, string>
{
{ "MeetingId", chimeMeetingId },
{ "RequestedDialNumber", toNumber },
{ "DialVC", "false" }
}
};
CreateSipMediaApplicationCallResponse result = await amazonChimeSDKVoiceClient.CreateSipMediaApplicationCallAsync(request);
return result;
As evident from { "DialVC", "false" }, I am using PSTN audio service for calling instead of Voice connector Uri as there are 2 approaches.
Outbound call is made , my lambda function is triggered with following series of events from SIPMediaApplication :
"InvocationEventType": "NEW_OUTBOUND_CALL",  "InvocationEventType": "RINGING", "InvocationEventType": "CALL_ANSWERED",
Here is one of event as an sample:
{
"SchemaVersion": "1.0",
"Sequence": 1,
"InvocationEventType": "NEW_OUTBOUND_CALL",
"ActionData": {
"Type": "CallCreateRequest",
"Parameters": {
"Arguments": {
"DialVC": "false",
"RequestedVCArn": null,
"MeetingId": "6f8dafc1-274a-4471-93a3-b773545d3172",
"RequestorEmail": null,
"RequestedDialNumber": "+1**********"
},
"CallTimeoutSeconds": 0,
"CallerIdNumber": null,
"ParticipantTag": null,
"Endpoints": null,
"CallId": null,
"SipResponseCode": 0,
"ReceivedDigits": 0
},
"ErrorType": null,
"ErrorMessage": null
},
"CallDetails": {
"TransactionId": "ba950e5a-fa0f-4d1d-9ce7-b2ca60911b78",
"AwsAccountId": "***********",
"AwsRegion": "us-east-1",
"SipMediaApplicationId": "032c6130-9967-41de-u89v-1c3b043b1f02",
"SipRuleId": null,
"TransactionAttributes": null,
"Participants": [
{
"CallId": "7e09fb9c-9b3c-4b37-k7h4-3ccc53764218",
"ParticipantTag": "LEG-A",
"To": "+1**********",
"From": "+1**********",
"Direction": "Outbound",
"StartTimeInMilliseconds": "1706710463004",
"Status": null
}
]
},
"ErrorType": null,
"ErrorMessage": null
}
And in response to that CALL_ANSWERED event, I am returning CallAndBridge action as:
{
"SchemaVersion": "1.0",
"Actions": [
{
"Type": "CallAndBridge",
"Parameters": {
"CallTimeoutSeconds": 30,
"CallerIdNumber": "+1**********",
"Endpoints": [
{
"BridgeEndpointType": "PSTN",
"Uri": "+1**********"
}
]
}
}
]
}
And as soon as the call is answered at the receiver's end, lambda function is triggered with INVALID_LAMBDA_RESPONSE event and error message is
"ErrorType": "SchemaVersionMismatch",
"ErrorMessage": "Schema version included in invocation request does not match with schema version in the response."
After this event, call HangUp and my lambda is triggered with HANGUP event.
I have analyzed the issue at my end and realized that "SchemaVersion" in the event I received and the response I am returning is same i.e., "1.0"
I need help with this error to resolve it as SchemaVersion is same and I am unable to understand the reason of this error.
I am using Lambda function, SIPMediaApplication, and meeting all the things in the same AWS account.
Steps to Reproduce
I have just integrated the SIP calling in my project.
Current behavior
CallAndBridge action is not being completed as I get SchemaVersion mismatch error. Due to which call is not being possible and it quickly hangs up.
AWS SDK version used
"AWSSDK.ChimeSDKMeetings" Version="3.7.301.15"  ||  "AWSSDK.ChimeSDKVoice" Version="<IP_ADDRESS>" || "AWSSDK.Core" Version="3.7.301.9"
Operating System and version
Windows 10 pro , browser: google

Is it possible that you're not sending it back in the correct JSON format?  I've seen this before and that is what "SchemaVersionMismatch" typically means.  If you use it with the include TypeScript, does it work?

Is it possible that you're not sending it back in the correct JSON format? I've seen this before and that is what "SchemaVersionMismatch" typically means. If you use it with the include TypeScript, does it work?

Please see below the response of my lambda function to SIP Media Application (SMA) for CALL_ANSWERED event:
{
statusCode: 200,
body: '{
"SchemaVersion": "1.0",
"Actions": [
{
"Type": "CallAndBridge",
"Parameters": {
"CallTimeoutSeconds": 30,
"CallerIdNumber": "+1**********",
"Endpoints": [
{
"BridgeEndpointType": "PSTN",
"Uri": "+1**********"
}
]
}
}
],
"TransactionAttributes": {
"MeetingId": "",
"RequestedDialNumber": "",
"DialVC": ""
}
}'
}
It is in JSON format, can you please highlight the possible issue in that ?
Moreover, I have looked at the following documentation for response :
https://docs.aws.amazon.com/chime-sdk/latest/dg/call-and-bridge.html

Does it work if you use the original code?  If you're still unable to get it to work and sure you're sending JSON and not stringified JSON, please open a ticket.

Does it work if you use the original code? If you're still unable to get it to work and sure you're sending JSON and not stringified JSON, please open a ticket.

Hi Schuettc,
Appreciate your support in resolving the issue.
I was previously sending stringified JSON as evident in above response I shared.
But I have tried with sending JSON object as well but it still didn't work and throws same error : "ErrorType": "SchemaVersionMismatch".
My Workflow: SIPMeidaApplication (SMA) triggers --> lambda --> call an endpoint of dot net core project with event (from SMA) as payload, that endpoint contain logic for handling event  (similar to smaHandler in the provided project) and returning response back to lambda  --> lambda return the response received from endpoint back to SMA as JSON object.


Export the maxVolume value

Export the const value maxVolume (value : 1)

@Manu1400 What exactly are you suggesting here?


Add dark dragon fire x a-dessa by Redilix

Song Name
dark dragon fire x a-dessa
Artist Name
Redilix
Source
Direct file download
Youtube Link
ApwTCS8eyYU
Direct File Link
No response
Song ID
91656
Start Offset [ms]
0
Extra
Created from Auto Nong.
Created for level: 72636568
Downloaded: everyone

Accept
вс, 3 нояб. 2024 г., 21:38 auto-nong[bot] @.***>:

Thanks for contributing!
Someone will soon review your request.
Here is the JSON result for the reviewer:
{
"name": "dark dragon fire x a-dessa",
"artist": "Redilix",
"source": "host",
"startOffset": 0,
"url": "",
"songs": [
91656
]
}
To accept the request, a reviewer needs to write "accept".
—
Reply to this email directly, view it on GitHub
https://github.com/FlafyDev/auto-nong-indexes/issues/5869#issuecomment-2453531085,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/BMUJPWYRV4652NI6YKJ3GRTZ6ZUTJAVCNFSM6AAAAABRC7FFMOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDINJTGUZTCMBYGU
.
You are receiving this because you authored the thread.Message ID:
@.***>


Profile injection steps

Investigate current injection timing breakdown to see what can be done online vs. during dataset generation

As referenced in https://github.com/ML4GW/BBHNet/issues/11#issuecomment-1063295567

Related to #10

I'm not sure how well these results will copy over, but the main takeaway is that >90% of the time to generate these signals comes from two lines: getting the time-domain strain for the given set of parameters, and performing the filtering. Given this, I think it makes sense to generate the training data with fixed times. The below is from simulating 2000 signals.
`Timer unit: 1e-06 s
Total time: 47.3069 s
File: simulate.py
Function: generate_gw at line 13
Line #      Hits         Time  Per Hit   % Time  Line Contents
13                                           @profile
14                                           def generate_gw(
15                                               sample_params,
16                                               ifo,
17                                               waveform_generator=None,
18                                           ):
19                                               """Generate gravitational-wave events
20
21                                               Arguments:
22                                               - sample_params: dictionary of GW parameters
23                                               - ifo: interferometer
24                                               - waveform_generator: bilby.gw.WaveformGenerator with appropriate params
25                                               """
26
27         4      12991.0   3247.8      0.0      sample_params = [
28         2         27.0     13.5      0.0          dict(zip(sample_params, col)) for col in zip(*sample_params.values())
29                                               ]
30         2          6.0      3.0      0.0      n_sample = len(sample_params)
31
32         2          4.0      2.0      0.0      if waveform_generator is None:
33                                                   waveform_generator = bilby.gw.WaveformGenerator(
34                                                       duration=8,
35                                                       sampling_frequency=16384,
36                                                       frequency_domain_source_model=lal_binary_black_hole,
37                                                       parameter_conversion=convert_to_lal_binary_black_hole_parameters,
38                                                       waveform_arguments={
39                                                           "waveform_approximant": "IMRPhenomPv2",
40                                                           "reference_frequency": 50,
41                                                           "minimum_frequency": 20,
42                                                       },
43                                                   )
44
45         2         19.0      9.5      0.0      sample_rate = waveform_generator.sampling_frequency
46         2         19.0      9.5      0.0      waveform_duration = waveform_generator.duration
47         2          6.0      3.0      0.0      waveform_size = int(sample_rate * waveform_duration)
48
49         2         57.0     28.5      0.0      signals = np.zeros((n_sample, waveform_size))
50
51         2     296875.0 148437.5      0.6      ifo = bilby.gw.detector.get_empty_interferometer(ifo)
52         4       2837.0    709.2      0.0      b, a = sig.butter(
53         2          4.0      2.0      0.0          N=8,
54         2          6.0      3.0      0.0          Wn=waveform_generator.waveform_arguments["minimum_frequency"],
55         2          3.0      1.5      0.0          btype="highpass",
56         2         19.0      9.5      0.0          fs=waveform_generator.sampling_frequency,
57                                               )
58      4002      11829.0      3.0      0.0      for i, p in enumerate(sample_params):
59
60                                                   # For less ugly function calls later on
61      4000      12250.0      3.1      0.0          ra = p["ra"]
62      4000       7598.0      1.9      0.0          dec = p["dec"]
63      4000      10613.0      2.7      0.0          geocent_time = p["geocent_time"]
64      4000       7490.0      1.9      0.0          psi = p["psi"]
65
66                                                   # Generate signal in IFO
67      4000   32093796.0   8023.4     67.8          polarizations = waveform_generator.time_domain_strain(p)
68      4000      95928.0     24.0      0.2          signal = np.zeros(waveform_size)
69     12000      47026.0      3.9      0.1          for mode, polarization in polarizations.items():
70                                                       # Get ifo response
71      8000    1600375.0    200.0      3.4              response = ifo.antenna_response(ra, dec, geocent_time, psi, mode)
72      8000   11388709.0   1423.6     24.1              signal += response * sig.filtfilt(b, a, polarization)
73
74                                                   # Total shift = shift to trigger time + geometric shift
75      4000      10765.0      2.7      0.0          dt = waveform_duration / 2.0
76      4000     299508.0     74.9      0.6          dt += ifo.time_delay_from_geocenter(ra, dec, geocent_time)
77      4000     546601.0    136.7      1.2          signal = np.roll(signal, int(np.round(dt * sample_rate)))
78
79      4000     861554.0    215.4      1.8          signals[i] = signal
80
81         2          4.0      2.0      0.0      return signals`

Really quick, can you edit that comment to wrap those results in 3 tick marks instead of 1?
But ok yeah in any case it definitely seems like at least for now it makes sense to bake the sky/time parameters into the dataset and leave this as a future avenue of exploration if we can't fit well enough on the dataset we generate.
The one thing that occurs to me is, does the polarization generation depend on the sky/time parameters? If not, it at least seems possible that we could save the polarizations as a dataset (with an entry for each one of the keys in the polarizations dict mapping to an array of shape (num_waveforms, sample_rate * 8)) and then, at data loading time, apply the filter in an array-like fashion (with axis=-1) to each batch of sampled polarizations before sampling sky/time parameters and using them to compute and apply the IFO responses to these filtered polarizations. Though maybe applying the filtering to the 1-second samples would create too many artifacts.

Fixed!
Yes, I believe that those parameters would affect the polarizations, so we wouldn't be able to manage around that step.

Got it sounds good, thanks for looking into this

@wbenoit26 @alecgunny  So the polarization is an independent variable itself. How the two polarization modes (h-plus and h-cross) are projected onto the detectors depend on the sky localization parameters, and gpstime.
This step is taking the longest because this is the step that produces the raw waveform (i.e. the step we want to do in bulk before hand (Just got confirmation from Bilby experts).
So, I'm reading this as we generate purely raw waveforms (no times, ra, decs, gpstimes associated)  , and do the projection at train time.

Oh, awesome. I'd thought that because the function took the full set of parameters, it was making use of at least the sky parameters somehow.
The filtering time is still kind of long, but maybe short enough? From the above timings, it looks to be 5-6 ms per waveform. I'll also dig up the email chain where we decided that we needed the filtering step and confirm it needs to happen this way.

Ok this is all super interesting. Are the sampling mechanisms for time/sky parameters pretty straightforward? I.e. do we have to use Bilby to sample from some specific prior or can we just do some uniform sampling on the relevant ranges?

It should be straightforward. We can use bilby or do it manually.

The sky parameters are just ra and dec, right? Those are sampled and stored at the same time as the rest of the parameters. And then the geocent time should match up to the background time

To your first point yes. I'm still trying to evaluate the implications of injecting with a gpstime that is not equivalent to the background time used. I think as long as we inject H1 and L1 at the same gpstime  regardless of background time used, we should be okay. Erik will have a concrete answer.


Point to the right property for imported modules

First, sorry about all the PRs, I'm not super familiar with how Webpack's bundles everything together.
After some more testing, I've realized that only the first imported file is marked with __esModule, for the others, the component lives on the a property.. as you can see below.

Don't be sorry, you're contributing 👍
That's a strange behavior, but seems to work...


Updated Readme

Description
Updated Read Me
Fixes #143
Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[ ] I have commented my code, particularly in hard-to-understand areas
[x] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes
[ ] Any dependent changes have been merged and published in downstream modules

ATTACH SCREEN-SHOTS
https://github.com/rohank2502/SFC-foundations/blob/master/README.md

@himanshu007-creator @divyashukla23


all atributes filtered out when client requests *

If an incoming search request has * as the only attribute, the server filter out all attributes from outgoing responses.
I think it should treat that case as if no attributes had been requested.

You're on fire today ;)
I'll put that in too (I was actually revisiting the binary problem while I was back in this code).

And done.


Update composer require ^2.0 to ^2.1

Instructions to install ^2.0 is incompatible with other libraries due to google/auth version conflict. Can only install one of: google/auth[v0.8, v0.11.1].

This change actually makes the library requirements more strict and not less, so this would not resolve a version conflict.

Strangely, after I made the change I managed to install without version
conflict.
On Wed, 26 Apr 2017 at 10:14 PM, Brent Shaffer<EMAIL_ADDRESS>wrote:

This change actually makes the library requirements more strict and not
less, so this would not resolve a version conflict.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/google/google-api-php-client/pull/1202#issuecomment-297421731,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ADsQdbBHoslYZ5mmN2coTUrotYQPp_Nqks5rz1FJgaJpZM4M_t75
.


Document how to uninstall chefdk

It would also be helpful if there was documentation (or better yet an uninstaller app) on how to uninstall ChefDK. I know you can generally just rm -rf /opt/chefdk but there are those pesky symlinks in /usr/bin. Are there any other changes that need to be removed?
It would help remove the unease of installing something that might break existing setups if we knew that we could uninstall it so that the install/uninstall would not break any other styles of installation.

I recommend you also clear out the chefdk's ruby in your user directory. rm -rf .chefdk/ should do the trick.

Should I also care about my ~/.gem directory when uninstalling chef-dk?

@ricardolupo If you're using ChefDK's ruby as your local system ruby environment, it shouldn't touch ~/.gem.
However I'd be wary about removing ~/.chefdk entirely on upgrades. That directory is also where the policyfile-downloaded cookbooks are cached (~/.chefdk/cache).

I remove the ~/.chefdk for those times I've managed to, yet again, totally hose my gems.

Thanks @otukutun, your script uninstalled fine for me when run under sudo (or root).


Command createVsCmdPrompt not found

command 'terminalVcVers.createVsCmdPrompt' not found

Installed in through the Extensions Tab (Ctrl+Shift+X), reloaded the editor, edited my settings.json (because it defaults to powershell in my case), and tried opening the vscmdprompt.
Version:

Version 1.9.1
Commit f9d0c687ff2ea7aabd85fb9a43129117c0ecf519
Date 2017-02-09T00:26:45.394Z
Shell 1.4.6
Renderer 53.0.2785.143
Node 6.5.0

On my machine, it works correctly on 1.9.1 and 1.10.0-insider.
I have no idea why the extension failed to run.
Could you please reinstall (Uninstall and Install) the extension?

Hm. Weird. After I uninstalled the extension, restarted the whole application, installed, and restarted the whole application again it worked.. Before I tried it with reload window which didn't work.
Maybe it had something to do that I edited the settings.json AFTER installing your extension?

I want t o explain about the root cause of the issue.
VSCode recently (in these two months) changed the default terminal to powershell and it breaks internal consistency of vcterminal-vscode. Of course, if you explicitly change terminal.integrated.shell.windows value to something like C:\\WINDOWS\\Sysnative\\cmd.exe (it's my case).
I've updated the code to deal with cmd.exe and powershell.exe installed on either system32 or sysnative directory. I think it resolves the issue completely.

Thank you for reporting back! Great that you figured out what is causing the issue and thanks for fixing it so fast. :)


Support for Cordova 5

Why does it require Cordova < 4.0.0?
It tried it on Cordova 5.0.0 on Android and it works great !

We've had trouble with Cordova 4. Can try Cordova 5 when we have time.

Tested and working on Cordova 5.


Window Tiling Rules Not Working

I'm trying to setup rules for specific apps to launch to specific desktops but not having any luck. I've read over the documentation but the application doesn't get launched and/or moved to the desired desktop. I have a rule like this for Spotify to launch to Desktop 4 and it doesn't go there when I restart chunk whether it's open or not when chunk is loaded.
# .chunkwmrc
chunkc tiling::rule --owner Spotify --desktop 4

I'm on MacOS 10.14.4, have chunk-sa installed and working for other things.

That exact command works for me on 10.14.4 with chunkwm --version being 0.4.8 (2f84) which is the current HEAD as of writing this. My Spotify version is 1.1.3.
Just off the top of my head, here's how some questions for DIY troubleshooting:

Does desktop 4 exist? Is it on the same or another monitor?
Can you reproduce this with other applications?
Do you have other rules interfering with this?
Does moving a window to another space with chunkc tiling::window --send-to-desktop 4 work?

Thanks for the comment! I tried out the things you said to check, see below.

That exact command works for me on 10.14.4 with chunkwm --version being 0.4.8 (2f84) which is the current HEAD as of writing this. My Spotify version is 1.1.3.

➜ chunkwm --version
chunkwm 0.4.8 (2f84)

Does desktop 4 exist? Is it on the same or another monitor?
Yeah, I  was sending to a desktop that other things were on already. I only have 1 monitor.

Can you reproduce this with other applications?
Yeah, I've tried with a few apps and nothing happens with them as well.

Do you have other rules interfering with this?
I don't know?

Does moving a window to another space with chunkc tiling::window --send-to-desktop 4 work?
Yep!

https://github.com/rjhilgefort/.chunkwm/blob/1abb39de757370d7bcc5bd83bd1e9c22cc224ecf/.chunkwmrc#L77-L88
Swap the order. The rules are commands and not variables, so they need to be used after loading the tiling plugin.

🙌wow, thanks you for finding my config and making the suggestion. That makes a lot of sense and I'm sorry I didn't figure that out myself.


Add pod limits show to lens

What would you like to be added:
Add pod limits show to lens
Why is this needed:
We need to use ssh to see it
Environment you are Lens application on:

Kubernetes distribution: selfhosted
Desktop OS: Windows 11

Thanks
P.S. I mean these
Limits:
cpu:     500m
memory:  512Mi
Requests:
cpu:      100m
memory:   128Mi

These already show in the pod properties tab

@tracetechnical Can you provide a screenshot and version of the app ?

CPU:

Memory:

2024.1.300751-latest

Values shown in tooltip

This looks to me like you have no data at all from the redis container
A few checks:

Is the lens-metrics package installed and fully running?
Are all your node exporters running
Have you tried changing the timerange
Has your redis pod actually got limits defined?
Is the redis pod actually fully running and outputting logs?

If the answer to ALL of the above are yes, then your metrics are missing.
I'd try on a few other pods such as the ones in kube-system and see if this is an issue isolated to your redis pod or its namespace.

@tracetechnical can't update lens to turn on bundles solutions, so i've installed kube-prometheus-stack via helm, now all works well, thank you for clarification!

@emoxam you are most welcome, happy to help!


Fix some errors occurred when formatting alloxio

Alluxio Version:
What version of Alluxio are you using?
2.9.0/2.9.1
Describe the bug
When I try to start Alluxio quickly, I follow the following link:
https://docs.alluxio.io/os/user/stable/cn/overview/Getting-Started.html
I configured allouxio-site.properties and executed the./bin/allouxio format. Here I will receive some errors. In {allouxio_home_dir}/logs/task. log:
[2023-02-27 14:46:32][localhost] Error: Cannot find 'java' on path or under $JAVA_ HOME/bin/. Please set JAVA_ HOME in alluxio-env.sh or user bash profile.
[2023-02-27 14:46:32][localhost] Connection to localhost closed.
Obviously, we need to create alloxio-env.sh in advance and add JAVA_ HOME.
To Reproduce
The following steps can be followed:

Download allouxio-2.9.1-bin.tar.gz
Press it
Configure conf/alloxio-site.properties
Execute the command:./bin/alluxio validateEnv local
Execute the command:./bin/alluxio format

Expected behavior
When executing the command:/ When bin/alloxio format, everything should be as usual without any errors
Urgency
Describe the impact and urgency of the bug.
Are you planning to fix it
Please indicate if you are already working on a PR.
Additional context
Add any other context about the problem here.

I will submit pr later.

Sounds good, looking forward to your PR submission

@fuzhengjia thank you so much for your comments. I have submitted a new pr. Link: https://github.com/Alluxio/alluxio/pull/16950


Requesting an ipv6 address and using a proxy results in a garbled response

hi, I found a problem with okhttp using a proxy on android.  I'm using android to execute the curl command as a control group, curl has no problem accessing an ipv6 address using a proxy, but okhttp uses a socks proxy to access an ipv6 address with a garbled Unexpected status line.
I wrote an app to test the issue.
But to test it, you need a socket server , if you don't have one, then I recommend github.com/things-go/go-socks5.
The program has two built in addresses, you can switch from ipv6 to ipv4 by clicking on the button at the top, the input box below the request address is the proxy addr, make sure to fill this in when testing okhttp to use a proxy to access the ipv6 address. In order to have a control group, I used the curl command in the program, which can also be tested on a computer, so that the control group can rule out a proxy problem.
Also the two addresses above are ip in mainland China, it may be very slow. If it is slow, you can directly access your local ipv6 address, or an ipv6 address near your computer.
I uploaded the code to the repository https://github.com/jeesk/okhttp_request_ipv6_via_proxy

@swankjesse do you remember the status of SOCKS5 on Android?
I think when we've looked at supporting this we've found JVM examples that work via a custom Socket factory https://github.com/square/okhttp/pull/7645/files
And I think early android only supported Socks v4.  https://github.com/square/okhttp/pull/4430/files
I'll take a look, but if it's blocking you, for the moment, I'd suggest handling in a custom socket factory, which I think should work?

OkHttp doesn’t do Socks internally. If you need it, you’ll need to set it up via a custom socket factory. That linked PR has a great sample.


Update the Japanese translation of the concepts/workloads/

✅ Resolves #26895.
This is the follow-up PR of #27507.

/assign @inductor

/lgtm
/approve

/check-cla

/retest-all

/lgtm


"Hospitalisation" infocard should use adjusted values

Current Implementation
Currently Hospitalisation numbers are shown below the risk status inside the app. However the app uses the raw, unadjusted values, that are basically always incorrect.
The reason for this is the fact that there is a huge time lag in reporting, thus the current numbers always get higher later.
Suggested Enhancement
RKI publishes an adjusted hospitalisation rate in their reports (e.g. here at page 12)
Several outlets for example SZ are already computing adjusted hospitalisation rates.
This works by imputing the real number of hospitalisations from the raw data.
Expected Benefits

The raw rate is at best completely useless at worst it gives users a false sense of security. The app should display accurate information.

Thanks for your enhancement request @pkreissel. We have created an internal ticket for it and will raise this topic internally.
Internal Tracking ID: EXPOSUREAPP-13340

Corona-Warn-App Open Source Team


YAML file for Docker Compose compatible with macOS

When trying to fire up the docker environment using the command described in the README.md docker-compose up --build -d this fails on macOS with the following error:
ERROR: for hashbrown-mongo  Cannot start service mongodb: b'Mounts denied: \r\nThe path /etc/localtime\r\nis not shared from OS X and is not known to Docker.\r\nYou can configure shared paths from Docker -> Preferences... -> File Sharing.\r\nSee https://docs.docker.com/docker-for-mac/osxfs/#namespaces for more info.\r\n.'

ERROR: for mongodb  Cannot start service mongodb: b'Mounts denied: \r\nThe path /etc/localtime\r\nis not shared from OS X and is not known to Docker.\r\nYou can configure shared paths from Docker -> Preferences... -> File Sharing.\r\nSee https://docs.docker.com/docker-for-mac/osxfs/#namespaces for more info.\r\n.'

ERROR: Encountered errors while bringing up the project.

The file /etc/localtime does not exist on macOS systems.
When lines 23 and 33 are taken out ("/etc/localtime:/etc/localtime:ro") the above commands work to fire up the docker containers and seems to work just fine.

@mrzapp If you have objections to removing these lines, please let me know.

That's OK with me :)


BigDecimal using Oracle and IBM JDK 1.6

Using version 1.63.
I am in an scenario where I serialize using IBM JDK 1.6, and I deserialize using Oracle JDK 1.6. BigDeciaml in those implementations differs, not having the same attributes, and both overriding readObject and writeObject. IBM's implementation makes sure the necessary fields for Oracle's implementation are written in the serialized data, having the following body:
private synchronized void writeObject(ObjectOutputStream out)
    throws IOException
{
    ObjectOutputStream.PutField fields = out.putFields();

    fields.put("scale", scale());
    fields.put("intVal", unscaledValue());
    out.writeFields();
}

When deserializing, I got the following exception:
Exception in thread "main" java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
	at de.ruedigermoeller.serialization.util.FSTUtil.rethrow(FSTUtil.java:119)
	at de.ruedigermoeller.serialization.FSTObjectInput.readObjectCompatibleRecursive(FSTObjectInput.java:474)
	at de.ruedigermoeller.serialization.FSTObjectInput.readObjectCompatible(FSTObjectInput.java:448)
	at de.ruedigermoeller.serialization.FSTObjectInput.instantiateAndReadNoSer(FSTObjectInput.java:399)
	at de.ruedigermoeller.serialization.FSTObjectInput.readObjectWithHeader(FSTObjectInput.java:262)
	at de.ruedigermoeller.serialization.FSTObjectInput.readObjectInternal(FSTObjectInput.java:230)
	at de.ruedigermoeller.serialization.FSTObjectInput.readObject(FSTObjectInput.java:210)
	at com.agabar.laboratory.serialization.Deserializer.deserialization(Deserializer.java:40)
	at com.agabar.laboratory.serialization.Deserializer.main(Deserializer.java:27)
Caused by: java.lang.reflect.InvocationTargetException
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at de.ruedigermoeller.serialization.FSTObjectInput.readObjectCompatibleRecursive(FSTObjectInput.java:471)
	... 7 more
Caused by: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
	at de.ruedigermoeller.serialization.util.FSTUtil.rethrow(FSTUtil.java:119)
	at de.ruedigermoeller.serialization.FSTObjectInput.readObjectCompatibleRecursive(FSTObjectInput.java:474)
	at de.ruedigermoeller.serialization.FSTObjectInput.readObjectCompatible(FSTObjectInput.java:448)
	at de.ruedigermoeller.serialization.FSTObjectInput.instantiateAndReadNoSer(FSTObjectInput.java:399)
	at de.ruedigermoeller.serialization.FSTObjectInput.readObjectWithHeader(FSTObjectInput.java:262)
	at de.ruedigermoeller.serialization.FSTObjectInput.readObjectFields(FSTObjectInput.java:544)
	at de.ruedigermoeller.serialization.FSTObjectInput$2.defaultReadObject(FSTObjectInput.java:1180)
	at de.ruedigermoeller.serialization.FSTObjectInput$MyObjectStream.defaultReadObject(FSTObjectInput.java:1481)
	at com.agabar.laboratory.serialization.Objekt.readObject(Objekt.java:27)
	... 12 more
Caused by: java.lang.reflect.InvocationTargetException
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at de.ruedigermoeller.serialization.FSTObjectInput.readObjectCompatibleRecursive(FSTObjectInput.java:471)
	... 19 more
Caused by: java.io.StreamCorruptedException: BigDecimal: null intVal in stream
	at java.math.BigDecimal.readObject(BigDecimal.java:3551)
	... 24 more

This exception corresponds to Oracle's BigDecimal not receiving intVal, which was actually written when serializing. I suspect there is some inconsistency when written fields and actual fields differ.
I would appreciate any help regarding this issue.
I can provide sample code if you need so.
Thank you.
Dimas Cabré i Chacón

First you might you check out the issues list for issues tagged "needs backport", there are some issues which have not been ported back to fast-serialization 1.x . Your issue might be affected by those fixes as they have to do with 'old' JDK serialization mechanics compatibility.
An easy workaround for a limited set of problematic classes is the definition & registration of custom serializers. Once a custom serializer is defined for a class, fst always uses it in favour of a provided read/writeObject implementation.

There seems to be no previous issue that targets the problem I reported.
I did further research, and I think I found where the problem comes from. In class de.ruedigermoeller.serialization.FSTObjectInput, at line 1776, all fields that come from custom serialization through ObjectOutputStream.PutField.put method are read are placed in a HashMap. But it seems these information is not used later. In my opinion, we need to set these fields onto the target object. I added the following lines following line 1776:
final FSTClazzInfo.FSTFieldInfo[] fieldArray = clInfo.compInfo.get(cl).getFieldArray();
for (int i = 0; i < fieldArray.length; i++) {
   FSTClazzInfo.FSTFieldInfo fstFieldInfo = fieldArray[i];
   final Object val = fieldMap.get(fstFieldInfo.getField().getName());
   if ( val != null ) {
   fstFieldInfo.setObjectValue(toRead,val);
}

This way, the problem seems to be fixed.
I would appreciate a lot if you could confirm the root cause and fix are right, or if there is an alternative way to accomplish the same without using custom serializers. In case of a positive answer, I would thank you if you could release a new 1.x version with the fix.
Thank you in advance.
Dimas Cabré i Chacón

The putfield variants work usually (many testcases in 2.x cover that ).
What's the problem is, that JDK Serialization implicitely assumes, that the
values written by the putField variant are binary compatible to
defaultReadObject and can be read later on using e.g. defaultReadObejct.
Therefore I added special tags into the stream so I can recognize at
readtime, which method has been used on write time. These fixes have not
reconciled back to the 1.x branch so I'd assume this is the reason.
Unfortunately 1.x has no proper test cases and I can tell you changing
stuff in the area of JDK-compatibility is very dangerous. Usually a fix for
one case breaks other use cases.
Can you provide me with a reproducer ? I will have a look as is find time
(I'm at work currently ..). Ofc I'll check your fix, however I'd like to
first verify if its fixed by backporting some of the 2.x issues, as they
have been proven to work without breaking other variants.
Regarding "Custom Serializer": If a FSTSerializer is registered at
FSTConfiguration, putField should not be called at all, so I am somewhat
confused now :-)
2015-01-29 11:39 GMT+01:00 Dimas Cabré i Chacón<EMAIL_ADDRESS>
There seems to be no previous issue that targets the problem I reported.
I did further research, and I think I found where the problem comes from.
In class de.ruedigermoeller.serialization.FSTObjectInput, at line 1776,
all fields that come from custom serialization through
ObjectOutputStream.PutField.put method are read are placed in a HashMap.
But it seems these information is not used later. In my opinion, we need to
set these fields onto the target object. I added the following lines
following line 1776:
final FSTClazzInfo.FSTFieldInfo[] fieldArray = clInfo.compInfo.get(cl).getFieldArray();                       for (int i = 0; i < fieldArray.length; i++) {
FSTClazzInfo.FSTFieldInfo fstFieldInfo = fieldArray[i];
final Object val = fieldMap.get(fstFieldInfo.getField().getName());
if ( val != null ) {
fstFieldInfo.setObjectValue(toRead,val);
}
This way, the problem seems to be fixed.
I would appreciate a lot if you could confirm the root cause and fix are
right, or if there is an alternative way to accomplish the same without
using custom serializers. In case of a positive answer, I would thank you
if you could release a new 1.x version with the fix.
Thank you in advance.
Dimas Cabré i Chacón
—
Reply to this email directly or view it on GitHub
https://github.com/RuedigerMoeller/fast-serialization/issues/51#issuecomment-72004033
.

issue #39 is related to something very similar (getField/putField used on write but not on read in Vector or so)
though my initial analysis was wrong, scroll down ..
best way for you would be registering a custom serializer and continue. I'll have time at friday to backport 2.x testcases. Its incredibly easy to break things :-). Seems like i have to prepare for a longer 1.x maintenance period :-)
It would be very helpful if you could provide a simpel reproducer. Does it also fail oracle <=> oracle or only IBM <=> oracle ?

Regarding your fix: there are tons of testcases covering correct behaviour of get/putfield so I'd assume it should be correct. However what do know :) , I really have to find time for a deep look. In any case thanks for your help+analysis in advance ... stay tuned

Hello.
I try to answer to all your questions and give you further feedback.
I understand my problem could be fixed with some backporting. I would greatly appreciate if you could work on it in a short time. Please, let me know if I can help you in any way.
I prepared two files were the result of serializing with Oracle and IBM JDK is written. I cannot see how to attach them. Please, let me know how can I make them available to you. Assuming these files, here is the simple code that tries to deserialize the stream in the file:
package com.agabar.laboratory.serialization;

import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.IOException;
import java.math.BigDecimal;

import org.apache.commons.io.FileUtils;

import de.ruedigermoeller.serialization.FSTConfiguration;
import de.ruedigermoeller.serialization.FSTObjectInput;

public class Deserializer
{

	private static final FSTConfiguration fstConfiguration = FSTConfiguration.createDefaultConfiguration ();

	public static void main (String [] arguments) throws IOException, Exception
	{
		fstConfiguration.registerClass (BigDecimal.class);
		@SuppressWarnings ("unused")
		BigDecimal bigDecimal = deserialization ();
	}

	private static BigDecimal deserialization () throws Exception
	{
		FSTObjectInput fstObjectInput = null;
		ByteArrayInputStream byteArrayInputStream = null;

		try
		{
			byte [] data = FileUtils.readFileToByteArray (new File ("c:/" + BigDecimal.class.getName () + ".ibm" + ".dat"));
			byteArrayInputStream = new ByteArrayInputStream (data);
			fstObjectInput = fstConfiguration.getObjectInput (byteArrayInputStream);
			BigDecimal bigDecimal = (BigDecimal) fstObjectInput.readObject (BigDecimal.class);
			return bigDecimal;
		}
		finally
		{
			byteArrayInputStream.close ();
		}
	}
}

I can send you a whole simple Eclipse project if you can tell me how to send it to you.
As for your last question, deserialization goes wrong when mixing JDK's. That is:
IBM --> Oracle: fail
Oracle --> IBM: fail
IBM --> IBM: success
Oracle --> Oracle: success
Additionally, I found my previous solution contains a bug. As you can see, I used method setObjectValue to set the value for the extra fields. This method is wrong and not working for primitive types, as the dedicated method for the primitive type has to be used. That's what you already do in method readObjectFields in the same class. Unfortunately, this method gives me problems for non primitive types. I coded a workaround spliting primitive and non primitive fields into two arrays, and setting their corresponding values with different working strategies. I am aware this is far from perfect and might mean I am not understanding something from your code. Still, you use the same setObjectValue some lines above, as I mentioned in my previous post, so your code might contain the same problem I am facing.
For you reference, here is the final block of code I added after line 1776 (I am sure you will want to rewrite it in a more elegant and efficient way...):
final FSTClazzInfo.FSTFieldInfo[] fieldArray = clInfo.compInfo.get(cl).getFieldArray();

// We split primitive fileds and reference fileds
FSTClazzInfo.FSTFieldInfo[] fieldInfo =  clInfo.compInfo.get(cl).getFieldArray();
ArrayList<FSTClazzInfo.FSTFieldInfo> fieldInfoPrimitive = new ArrayList<FSTClazzInfo.FSTFieldInfo> ();
ArrayList<FSTClazzInfo.FSTFieldInfo> fieldInfoReference = new ArrayList<FSTClazzInfo.FSTFieldInfo> ();
final int length = fieldInfo.length;
for (int i = 0; i < fieldInfo.length; i++) {
	FSTClazzInfo.FSTFieldInfo subInfo = fieldInfo[i];
	 if (subInfo.isPrimitive()) {
		 fieldInfoPrimitive.add (subInfo);
	 } else {
		 fieldInfoReference.add (subInfo);
	 }
}

// Put primitive fields using standard method that already forks by type
FSTObjectInput.this.readObjectFields(
	 referencee,
	 clInfo,
	 fieldInfoPrimitive.toArray (new FSTClazzInfo.FSTFieldInfo [fieldInfoPrimitive.size ()]),
	 toRead
);

// Put reference fields usingt forced setObjectValue, as previous method crashes for reference fields
FSTClazzInfo.FSTFieldInfo[] fieldArrayReference = fieldInfoReference.toArray (new FSTClazzInfo.FSTFieldInfo [fieldInfoReference.size ()]);
for (int i = 0; i < fieldArrayReference.length; i++) {
	FSTClazzInfo.FSTFieldInfo fstFieldInfo = fieldArrayReference[i];
	final Object val = fieldMap.get(fstFieldInfo.getField().getName());
	if ( val != null ) {
		fstFieldInfo.setObjectValue(toRead, val);
	}
}

Finally: ¿Could you explain me how to run the 1.* tests? I see they cannot be compiled with JDK 1.6, so I am not sure whether I am doing something wrong or not.

To explain the root problem:
one class uses .. putField(..); ... outstream.writeFields .. but the reader side impl. then uses something like instream.defaultReadObject(). The JDK expectation is, that writeFields and e.g. defaultWirteObject() create binary compatible output. But this does not hold true for fast-ser, as I optimized the defaultWriteObject a lot, so I don't write field names and stuff, so it works only if the read and write side use the same method to read/write data.
The solution I applied in 2.x was to put something in at writer side like writeFields() { stream.writeByte(99); .. } so I can detect during read, which method has been used on writer side and can branch to an appropriate read method.
I'll provide you with a FSTSerializer based workaround as I am short of time, and will deliver a proper fix later. The 1.x tests are a complete mess, I added proper testing in 2.x only :-).

Here is an outline how to workaround issues like yours. Must be applied symmetrically to reading and writing application
public class FSTBigDecimalSerializer extends FSTBasicObjectSerializer {
    @Override
    public void writeObject(FSTObjectOutput out, Object toWrite, FSTClazzInfo clzInfo, FSTClazzInfo.FSTFieldInfo referencedBy, int streamPosition) throws IOException {
        BigDecimal bd = (BigDecimal) toWrite;
        out.writeCInt(bd.scale());
        out.writeObject(bd.toBigInteger().toByteArray());
    }

    @Override
    public Object instantiate(Class objectClass, FSTObjectInput in, FSTClazzInfo serializationInfo, FSTClazzInfo.FSTFieldInfo referencee, int streamPositioin) throws IOException, ClassNotFoundException, InstantiationException, IllegalAccessException {
        int scale = in.readCInt(); // read"C"Int means compressed int
        BigDecimal bigDecimal = new BigDecimal( new BigInteger((byte[]) in.readObject()), scale);
        // need to register for ref restauration
        in.registerObject(bigDecimal,streamPositioin,serializationInfo,referencee);
        return bigDecimal;
    }

    public static void main( String arg[] ) {
        // init static conf
        /* public static */FSTConfiguration conf = FSTConfiguration.createDefaultConfiguration();
        conf.registerSerializer(BigDecimal.class, new FSTBigDecimalSerializer(),false);

        // later
        InputStream instream = null;
        FSTObjectInput in = new FSTObjectInput(instream,conf);
        // or
        // conf.getObjectInput(..)
        //...

        // similar with output
    }
}

Thank you for your response and code! I tested it and it works perfect!
I will wait for you 1.* fix during next week. Please, let me know if you want me to do some testing using distinct source and target VMs before releasing the next version.
Thank you again.

thanks for helping. Note Serializers can be used to fix most cross JDK Issues as long it a limited set of problems/incompatible classes.

I decided to not longer provide fixes for ancient releases because
a) most of them can be workarounded using FSTSerializers
b) There is no testsuite for 1.x, so its extremely easy to break cornercases
c) there is a small audience for ancient releases and edgy stuff like oracle<=>ibm jdk 1.6 interop
d) my time is not for free :-)
I'll still help by analysing and will mark fixes for 2.x with a "needsbackport" tag.
You can either workaround as described above, backport yourself or in case of production-critical need for 1.x ancient jdk release fixes contact me at my gmail _ com account under moru0011 for commercial support.


Support Numpy 2

@xenide: does this fix the issues you encountered with numpy v2? #161

yup seems to work now!

Wonderful, thank you @ngehrsitz & @xenide! 🙂


Keep other static class members, such as defaultProps

I've been trying this out against our codebase, and I found that it was stripping out all static class members, not just propTypes.
Tracked down the issue to isPropTypesMember where getFullText returns a string surrounded by whitespace; so I've fixed that in https://github.com/lyft/react-javascript-to-typescript-transform/commit/95f6b0e8a2af0e9502724d5cc6de8a935d4bddea.
That makes it so that we check if propTypes === propTypes, instead of if the  propTypes !==  propTypes. And that makes it strip out propTypes, but keep all other static class members which is what I think we want!
Now here's the hacky part:
that caused end-to-end initial-state-and-proprypes and end-to-end initial-state-and-proprypes-and-set-state to fail because getFullText returns empty in those cases (Going into the very nitty-gritty,  the IdentifierType in these cases has pos: -1, end: -1).
I'm using escapedText here as a fallback but this feels like a gigantic hack; have you run into this before, and do you know what might be the best way to fix it?

Thanks for this work. I'll help you to get this merged.
To answer your question, yes. I've seen getText throwing because node is at -1,-1. Guessing this is because node was added by other transformers to the AST without having an actual position in printed source. Copying @RyanCavanaugh and @rbuckton for comments about that.
Also copying @VincentBel to review as he helped a lot with this project as well.

Guessing this is because node was added by other transformers to the AST without having an actual position in printed source.

This is correct. You can use the function nodeIsSynthesized to determine if a node is synthesized without relying on the underlying representation of -1, -1 to indicate a synthetic node.
What you actually do when faced with a synthetic node is really dependent on the application. Reading the .escapedText is fine IMHO (maybe test using .kind instead of in) but I'd defer to @rbuckton's opinion on that.

.kind looks cool; I've updated to using that entirely instead of getFullText. Since the typedef for SyntaxKind.Identifier shows that escapedText is a required attribute, this seems safe.

Signed CLA!

Thanks for the tip. Updated!


Log4j Vunrability

This AMI seems to be affected by the log4j vulnerability, any idea on a timeline for a new release to patch it (or is it just a simple yum update we can do ourselves)?

You're reporting a security issue. Can you please start with this and include all relevant details.