Requested locus in search bar - doesn't stop loading

Hey,
I am using the IGV Web app repo (pulling JS from a release tag for stability) and delivering it as a static resource in my Flask server. The contents of the igv-webapp are delivered in an iframe inside one of the pages of my application.
Its working great when I search for loci in the search bar inside the iframe. The issue is that sometimes (usually after about 20 searches but I'm not sure if the number has anything to do with it), the igvwebapp will keep loading the requested locus forever. Ultimately, causing Chrome to crash.
First, I wanted to make sure that my own javascript wasn't causing these issues, so I've been diligently optimizing my code. Chrome doesn't crash anymore, so that was definitely me. But even after this, sometimes the loading for requested locus will take forever  :(
Second, I tried to deploy my Flask server to production. I read online that development servers can sometimes underperform, so I deployed a gunicorn server. Even on the production server I deployed, after a few searches, the loading for requested locus takes forever :(
To check if Flask itself was the issue, I also tried searching for loci on your deployed app igv.org/app and it works similarly, i.e. works great most of the time, but after a few consecutive searches, the loading starts taking forever.
I was hoping you could shed some light on this issue. And I wanted to thank you for responding so quickly to my previous questions. You've been really helpful! 🙂
And of course, please let me know if you need any more information or specifics!
Best,
MarkleLab

Hi @MarkleLab,  thanks for the report.  Since you can reproduce it on igv.org/app let's focus on that.  Could you please give me exact steps to reproduce,  if possible, and generally more information.   For example what genome assembly, and what  types of files do you have loaded?     Steps to reproduce would be load XXX then do the following locus searches.....
We have a lot of public data for hg19,  look under the Tracks menu,  if you can create this isssue with that data it might be easier for me to reproduce.

Hi @jrobinso,
Thanks for getting back!
The BAM data that originally caused this issue is private, so I can't share the exact files with you. I tried recreating the issue with the publicly available tracks on igv.org/app. I chose the Platinum Genomes track because we are interested in using IGV to view alignment data, and this track most resembles the kind of data we originally have (BAM).
The following was done in Google Chrome Version 74.0.3729.157 (Official Build) (64-bit)
Genome: Human (GRCh37/ hg19)
Tracks: Choose "Platinum Genomes." Select the following files: (first 5 in dropdown) NA12877, NA12878, NA12889, NA128990, NA12891.
I wasn't able to find a locus that truly freezes the browser on the public dataset, but some of the searches take way longer than the others. Some of them load in a few seconds, while others took much longer (see below for details).
Here's the sequence of loci you can use to reproduce the issue:
This was on an iMac running High OS Sierra v.10.13.6.
Locus Searches:
chr1:231954045-231954045  # Takes about 7s for me.
chr9:34835361-34835361      # Takes about 6s for me
chr11:2664006-2664006        # Takes about 6s for me
chr11:2703116-2703116           # Takes about 5s for me
chr20:29628226-29628226   # Took about 1 min 30s.
chr20:29628229-29628229   # Took about 1 min 30s.
chr20:29628226-29628226   # Took about 1 min 30s.
chr20:29614272-29614272    # Took about 37s.
The loading time in the comments are averages of 3 runs of the entire sequence of loci. igv.org/app was reloaded before each run.
This was on a MacBook Pro running macOS Mojave V.10.14.4. Runs same version of Google Chrome as noted above.
Same Locus Searches as above:
chr1:231954045-231954045  # Takes about 17s for me.
chr9:34835361-34835361      # Takes about 13s for me
chr11:2664006-2664006        # Takes about 12s for me
chr11:2703116-2703116           # Takes about 10s for me
chr20:29628226-29628226   # Took about 1 min 45s.
chr20:29628229-29628229   # Took about 1 min.
chr20:29628226-29628226   # Took about 2mins.
chr20:29614272-29614272    # Took about 1min 10s.
The loading times I report are averages of 3 runs of the entire sequence of loci. igv.org/app was reloaded before each run.
It would be nice to know if there is a reason for this inconsistency in loading time between searches and that between systems. Similar pattern of wait times is experienced with my private BAM patient data when I embed igv.org/app inside my Flask app. The only difference is that on my own server, after about 2 minutes, the browser crashes ("Google Chrome has become unresponsive.").
I hope this was comprehensive and is therefore also reproducible on your systems, so this issue can actually be solved. Let me know if you need any more information at all, or have questions!
Best,
MarkleLab

OK I will have a look.   I am on vacation until July 5, btw, might not be
until after then.
The times in your test seem to be increasing on average.   If you switch
the order of the test loci do you get similar results?   I wonder if the
specific loci are important or its just an accumulation.    If its just
increasingly after an accumulation we might have a memory leak.
Some loci have deeper coverage that others,  have you factored that in?
Most of the wait time should be loading the bytes over the network,  you
can check this in the network tab on chrome devtools.
On Thu, Jun 27, 2019 at 12:57 PM MarkleLab<EMAIL_ADDRESS>wrote:

Hi @jrobinso https://github.com/jrobinso,
Thanks for getting back!
The BAM data that originally caused this issue is private, so I can't
share the exact files with you. I tried recreating the issue with the
publicly available tracks on igv.org/app. I chose the Platinum Genomes
track because we are interested in using IGV to view alignment data, and
this track most resembles the kind of data we originally have (BAM).
The following was done in Google Chrome Version 74.0.3729.157 (Official
Build) (64-bit)
Genome: Human (GRCh37/ hg19)
Tracks: Choose "Platinum Genomes." Select the following files: (first 5
in dropdown) NA12877, NA12878, NA12889, NA128990, NA12891.
I wasn't able to find a locus that truly freezes the browser on the public
dataset, but some of the searches take way longer than the others. Some of
them load in a few seconds, while others took much longer (see below for
details).
Here's the sequence of loci you can use to reproduce the issue:
This was on an iMac running High OS Sierra v.10.13.6.
Locus Searches:
chr1:231954045-231954045 # Takes about 7s for me.
chr9:34835361-34835361 # Takes about 6s for me
chr11:2664006-2664006 # Takes about 6s for me
chr11:2703116-2703116 # Takes about 5s for me
chr20:29628226-29628226 # Took about 1 min 30s.
chr20:29628229-29628229 # Took about 1 min 30s.
chr20:29628226-29628226 # Took about 1 min 30s.
chr20:29614272-29614272 # Took about 37s.
The loading time in the comments are averages of 3 runs of the entire
sequence of loci. igv.org/app was reloaded before each run.
This was on a MacBook Pro running macOS Mojave V.10.14.4. Runs same
version of Google Chrome as noted above.
Same Locus Searches as above:
chr1:231954045-231954045 # Takes about 17s for me.
chr9:34835361-34835361 # Takes about 13s for me
chr11:2664006-2664006 # Takes about 12s for me
chr11:2703116-2703116 # Takes about 10s for me
chr20:29628226-29628226 # Took about 1 min 45s.
chr20:29628229-29628229 # Took about 1 min.
chr20:29628226-29628226 # Took about 2mins.
chr20:29614272-29614272 # Took about 1min 10s.
The loading times I report are averages of 3 runs of the entire sequence
of loci. igv.org/app was reloaded before each run.
It would be nice to know if there is a reason for this inconsistency in
loading time between searches and that between systems. Similar pattern of
wait times is experienced with my private BAM patient data when I embed
igv.org/app inside my Flask app. The only difference is that on my own
server, after about 2 minutes, the browser crashes ("Google Chrome has
become unresponsive.").
I hope this was comprehensive and is therefore also reproducible on your
systems, so this issue can actually be solved. Let me know if you need any
more information at all, or have questions!
Best,
MarkleLab
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/igvteam/igv-webapp/issues/100?email_source=notifications&email_token=AAHD2HFFYVIUW4JY7IZTUSDP4ULRDA5CNFSM4H3WI6SKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODYYGKII#issuecomment-506488097,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAHD2HG2D6IGRQTHG3GLSVLP4ULRDANCNFSM4H3WI6SA
.

Also,  BTW, loading 5 bams is going to stress the browser for memory,  but it should stress it consistently, not get worse over time.

OK,  sorry for the string of replies but I had a few minutes to try a couple of these.    I tried chr20:29614272-29614272  first which took 1 minute 17 seconds.   The average coverage here is around 700x.   I then tried chr1:231954045-231954045  which took 9 seconds.   The average coverage here is around 65.   That's a 10X difference in data and ~ a 10X difference in load time.
So for that particular case I don't think load order is a factor, and those times are not out of line for 5 deep coverage bams.   However, in your original report there was hint of some cumulative error,  where the system got slower over time and eventually crashed,  that isn't demonstrated yet with the platinum genomes but I will look at the possibility more deeply when I have more time.

Hi @jrobinso,
Thanks for getting back! We had the same thoughts about this issue. This was either a loci-specific coverage/ mapping quality issue, or it was due to a memory leak.
Like you recommended, I switched the order of the test loci. Here are the results for my iMac running High OS Sierra v.10.13.6.
Locus Searches (reverse order from original):
chr20:29614272-29614272 # Took about 45s.
chr20:29628226-29628226 # Took about 1 min 30s.
chr20:29628229-29628229 # Took about 1 min 30s.
chr20:29628226-29628226 # Took about 1 min 30s.
chr11:2703116-2703116 # Takes about 6s for me
chr11:2664006-2664006 # Takes about 6s for me
chr9:34835361-34835361 # Takes about 7s for me
chr1:231954045-231954045 # Takes about 10s for me.
The loading time in the comments are averages of 3 runs of the entire sequence of loci. igv.org/app was reloaded before each run.
There is no major hint of accumulation in these runs, so yes, I think this might be a coverage issue like you explain in your third comment, instead of a memory leak caused due to accumulation. This is only a few runs on my computer, but please do look at the possibility of accumulation in your code base more deeply when you have time.
However, if this is indeed only a coverage issue for specific loci, is there a way to check for massive loading times in IGV? These loading times are only going to increase in the coming years as BAM files get denser and denser as sequencing facilities advance their technology.
Also, how did you know what the coverages (700x, or 65x) were? Would it be possible to know what the coverage is before I perform these searches? If I know the coverage beforehand, I can just query those searches in the native IGV app instead since that's much quicker.
Thanks,
MarkleLab

@MarkleLab is 5 or more simultaneous bams typical for your typical use case?  If yes we'll have to optimize (reduce) memory usage wherever we can.   I see some potential options to do that which will be generally useful, but will require some new config parameters.
One option which is available now is to turn off high DPI support.   Support for highDPI screens require creating images 4X or more larger than non DPI screens.   High DPI support can be turned off with the following non-documented config option for the track
supportHiDPI: false

Could you try this for your BAM tracks?  Text will not look as sharp but it might solve or delay the crashing problem.   It would be interesting to know either way.   It will not affect load time, only memory usage.   Of course if you are not using a high DPI screen this will have no effect.

@MarkleLab emails are crossing.   There is no way to know coverage before loading from the BAM file alone.   I've been involved in NGS sequencing since it began,  dense high coverage regions have always been with us.   High coverage can occur at any time for even low average coverage bams.   Some regions of the genome just accumulate lots of reads (repeat regions for example).   This is why IGV downsamples reads by default, to prevent running out of memory.    What's unusual about your case is loading 5 bams at once,  this is atypical in general but we should be able to support it without crashing.   However you are going to wait while all that data is loaded over the network.
You mentioned that native IGV is much quicker for this case.   I haven't tried comparing these exactly yet,  but that would surprise me,  generally for the same BAMs and same regions times are roughly equal.

@MarkleLab another suggestion, if reviewing bams is your main use case check out igv-reports https://github.com/igvteam/igv-reports.   Its a python preprocessor that extracts bam alignments for a list of loci and packs them into the page itself as a data uri.   Using this would mean some redesign of your site obviously, but its really fast.

Hi @jrobinso,
About 4-5 BAMs is typical for our use case. Thanks for the IGV Reports suggestion. It looks promising. I'll try to get it set up. And I will try the highDPI configuration, but our major concern right now is the load time.
After seeing the loading times' trends, I don't think there's a major memory leak on your end or mine. But, do you think if we just used a different input file type, this problem might be solved? What is your experience with CRAM files, and do you think this might make loading faster since it stores data in a memory efficient manner? I know that IGV Webapp supports CRAM files already, but I don't have a lot of CRAM files to test loading times on.
Thanks again for your help! 👍
Best,
MarkleLab

@MarkleLab re load times, here is an experiment to determine the max possible we could achieve.  Do the same queries on the same files from the same computer with the command lines with samtools view  or samtools tview.   Use URLs not local file paths,  just as the app does.     This will take all the overhead of the web browser, javascript, and igv.js out of the equation.
CRAM might faster, it would require experiments on the same files, and would depend on how agressively the CRAM file was compressed.
If you want fast loading preprocessing with igv-reports will give you the fastest possible load.  Out of the box it creates a complete page with a table view, but you don't have to use it that way.   There are APIs there to create the dataURIs.    These dataURIs can be used in place of urls in the config, its a straight replacement.   You don't supply an indexURL when using dataURIs.    See  examples/dataURI.html  (http://igv.org/web/release/2.2.13/examples/dataURI.htmll)


Auto-recover of corrupted projects

When project description is corrupted (file .project is missing) then there is no possibility to open this project.
We need to support auto-recover of such corrupted project (create empty project metadata).
Currently project open fails with error The project description file (.project) for my project is missing.

Fixed

Verified


Feature: add license section to readme.md

Type of feature
🍕 Feature
Current behavior
No license section existing
Suggested solution
Adding license section and linking it with LICENSE.md
Additional context
No response
Code of Conduct

[X] I agree to follow this project's Code of Conduct

Contributing Docs

[X] I agree to follow this project's Contribution Docs

want to work on this kindly assign me this

want to work on this kindly assign me this

Hi @shelar1423! :) Thanks for your interest, but we have a license section here, so I'm going to close this issue now. In the future, I suggest looking through the project thoroughly before raising an issue.


Not working

Im new to android, and I am downloding it and enter the dependencies in androidmanifest.xml and replace all your main folder files with my new project file but it is not working please tell some suggestion.

@merbin2012 The example project is here. Please take look at it.


How to build Dockerfile?

I'm working on a PR (#1421), but Docker builds are failing.
Context
I forked the repo, cloned locally, and attempted to build from either master or v6.2.1 branch. I used either docker build or make.
Expected Behavior
Docker image succesfully built for local testing
Actual Behavior
Build errors with:
Step 51/57 : COPY ./target/helper_functions.sh ./target/check-for-changes.sh ./target/start-mailserver.sh ./target/fail2ban-wrapper.sh ./target/postfix-wrapper.sh ./target/postsrsd-wrapper.sh ./target/docker-configomat/configomat.sh /usr/local/bin/
COPY failed: stat /var/lib/docker/tmp/docker-builder216340645/target/docker-configomat/configomat.sh: no such file or directory
make: *** [build] Error 1

git clone https://github.com/tomav/docker-mailserver.git
cd docker-mailserver
3.docker build . -t test
make

Your Environment

Mailserver version used: master or v6.2.1 branch
Docker version used: Docker version 19.03.5, build 633a0ea

Am I holding it wrong? :)
D

You have to check out submodules as well

Sorted with 'git submodule update --init --recursive', thank you :)


It does not put the animations for the characters correctly

Describe your problem here.
I don't know what's happening, but I have my Spritesheet correctly, the XML the same, but when I enter the name of my character's animations, it shows absolutely all the sprites, instead of the correct animations, and no, they are not incorrectly named , I already checked the XML code, everything is fine, but for some reason it puts all the frames instead of just those of the corresponding animations
Are you modding a build from source or with Lua?
Lua
What is your build target?
Windows x64
Did you edit anything in this build? If so, mention or summarize your changes.
No, i'dont edited nothing

Can I see a screenshot so I can help? Or DM on discord.

Can I see a screenshot so I can help? Or DM on discord.

Yes, there I try to pass some screenshots of the problem here. Just give me a moment and I'll take the screenshots.

This is the error, I put the correct name of the animation, the spritesheet is correct, and even there I send you how my XML is formed. But where it says it has 15 frames, it should really say 3, since for that animation I only put 3 frames [please ignore the bad art I made...]

 This is the error, I put the correct name of the animation, the spritesheet is correct, and even there I send you how my XML is formed. But where it says it has 15 frames, it should really say 3, since for that animation I only put 3 frames [please ignore the bad art I made...]

here I have the code of my XML
<?xml version="1.0" encoding="utf-8"?> <TextureAtlas imagePath="andrew L.png"> 	<!--  Or DM on discord.

man, I already passed the data about the error that I said


Godeps: bump appc to v0.7.0, etc

First pass at this tangled web. Let's see what Semaphore says.

The new ioprogress library means that there's a one line change that should be made in rkt/images.go to take advantage of the changes. Should that be added in here, or should I just made an additional PR for it?

@dgonyeo https://github.com/coreos/rkt/pull/1423#issuecomment-142351196 . this PR is just the bare minimum changes to have the codebase still compile/pass tests after the deps are bumped

LGTM

Will we have time to take further changes in appc/spec before the next rkt release? I am thinking of #1453 and https://github.com/appc/spec/issues/498 (not implemented yet).

@alban just to recap OOB discussion, I am happy to do a minor spec release and bump rkt - now that 0.7.0 has landed it should be much easier.


⚠ Bofrost.lu has degraded performance

In b2ebe62, Bofrost.lu (https://www.bofrost.lu) experienced degraded performance:

HTTP code: 200
Response time: 1156 ms

Resolved: Bofrost.lu performance has improved in 8a8ae89 after 4 hours, 38 minutes.


Linted Comparison_UnitTests.py and ModelTesting.py

Thank you @StephenSchroeder for your first contribution!  Also perhaps the contribution with the largest number of changed files (I guess that's the nature of linting!).
The PR details I'm looking at say the Travis checks have passed but warns "This branch is out-of-date with the base branch" and has an "Update branch" button.  Should I do that before I merge?

@llorracc we're working on this locally.  Stephen accidentally including his virtual environment to the PR, so first he's making a PR to add the virtual environment to the .gitignore, and then he'll fix this PR to only include the relevant changes.


Support templated strings as trigger output for text customization

One longstanding request is to be able to customize the text output of triggers.  Unfortunately this can be really complicated when triggers have so much JavaScript baked in.
ngld suggests in #1869 a potential way to make trigger output customizable:

Making trigger text configurable could be fairly easy IMO. If you add a new property to triggers with a list of templates with placeholders (Get Final Nisi (?), Pass {nisi} Nisi, Pass {nisi} Nisi to {player}, ...), the JS trigger could then just pick a string from that list (or map) and fill in the placeholder. The config UI could then offer options to override the text for simple triggers and a more complicated interface for these triggers where it'd show a list of templates and allow the user to modify/override them.

A half-baked proposal
(I'm making this up just to have something to talk about, so feel free to suggest other/better details)
Triggers now have a outputStrings field on them.  outputStrings is an object that maps keys to trigger text.  Trigger text must be either a string or a translatable object of strings, i.e. {en: 'str1', de: 'str2'} etc.  It must not be a function.
If this new outputStrings field exists, then it changes the trigger into an "output string only" trigger.  Any infoText / alertText / alarmText / ttsText output must output a key in the outputStrings field rather than outputting the literal text.  Then, the trigger would output whatever's in the outputStrings field that corresponds to the key for that trigger.  Responses themselves can contain outputStrings.  We can also add common ones to resources/translations.js in some new object.
Once all/many triggers use outputStrings then we can add configuration UI to override the output of these.  We should probably deprecate the Options trigger overrides for text at this point, at least in the sense of removing it from the documentation, and maybe adding console warnings for anybody using it to change to the newer thing.
Open questions

Is there any way to verify at build time whether the keys into outputStrings are valid? (i.e. no typos or missing keys)
Similarly, it'd be nice to verify that all language have the same set of interpolation fields?
How do we validate interpolation fields?
What are the set of fields that can be used for template interpolation? Do we allow data and matches? What about custom computed variables from a JavaScript function? The example below assumes that data and matches will be available to the interpolation, but what about other variables? It seems like it'd be better to store some puddleNumber variable for the interpolation to use rather than matches[1] but it also seems not great to have to store them in data directly, muddying that up?
Do we make everybody write Stack on ${data.ShortName(matches.target)} as their output string, do we auto-shorten names, do we add new fields?
Is there some better way to do this templating other than evaling the output string as a template literal, e.g. eval('`' + outputString['stackOnPerson'] + '`')? These are all user entered, so I'm less concerned about security implications here, but this still seems a bit gross.

Hypothetical example:
@@ -6,38 +6,42 @@
         // data.puddle is set by 'TEA Wormhole TPS Strat' (or by some user trigger).
         // If that's disabled, this will still just call out puddle counts.
         if (matches[1] == data.puddle) {
-          return {
-            en: 'Soak This Puddle (#' + matches[1] + ')',
-            de: 'Fläche nehmen (#' + matches[1] + ')',
-            ja: '懺悔踏む (#' + matches[1] + ')',
-            fr: 'Absorbez cette zone au sol (#' + matches[1] + ')',
-            ko: '참회 밟기 (#' + matches[1] + ')',
-            cn: '踩水圈 (#' + matches[1] + ')',
-          };
+          return 'soakPuddle';
         }
       },
       infoText: function(data, matches) {
         if (matches[1] == data.puddle)
           return;
-        return {
-          en: 'Puddle #' + matches[1],
-          de: 'Fläche #' + matches[1],
-          ja: '懺悔 #' + matches[1],
-          fr: 'Zone au sol #' + matches[1],
-          ko: '참회 #' + matches[1],
-          cn: '水圈 #' + matches[1],
-        };
+        return 'puddleNumber';
       },
       tts: function(data, matches) {
-        if (matches[1] == data.puddle) {
-          return {
-            en: 'Soak This Puddle',
-            de: 'Fläche nehmen',
-            fr: 'Absorbez cette zone au sol',
-            ja: '沼踏んで',
-            ko: '웅덩이 밟기',
-            cn: '踩水圈',
-          };
-        }
+        if (matches[1] == data.puddle)
+          return 'soakPuddleTTS';
+      },
+      outputStrings: {
+        soakPuddle: {
+          en: 'Soak This Puddle (#${matches[1]})',
+          de: 'Fläche nehmen (#${matches[1]})',
+          ja: '懺悔踏む (#${matches[1]})',
+          fr: 'Absorbez cette zone au sol (#${matches[1]})',
+          ko: '참회 밟기 (#${matches[1]})',
+          cn: '踩水圈 (#${matches[1]})',
+        },
+        puddleNumber: {
+          en: 'Puddle #${matches[1]}',
+          de: 'Fläche #${matches[1]}',
+          ja: '懺悔 #${matches[1]}',
+          fr: 'Zone au sol #${matches[1]}',
+          ko: '참회 #${matches[1]}',
+          cn: '水圈 #${matches[1]}',
+        },
+        soakPuddleTTS: {
+          en: 'Soak This Puddle',
+          de: 'Fläche nehmen',
+          fr: 'Absorbez cette zone au sol',
+          ja: '沼踏んで',
+          ko: '웅덩이 밟기',
+          cn: '踩水圈',
+        },
       },
     },

Since we are going to migrate to use webpack and TypeScript, maybe we can directly use template string of ECMAScript 6?
For example:
         if (matches[1] == data.puddle) {
           return {
-            en: 'Soak This Puddle (#' + matches[1] + ')',
-            de: 'Fläche nehmen (#' + matches[1] + ')',
-            ja: '懺悔踏む (#' + matches[1] + ')',
-            fr: 'Absorbez cette zone au sol (#' + matches[1] + ')',
-            ko: '참회 밟기 (#' + matches[1] + ')',
-            cn: '踩水圈 (#' + matches[1] + ')',
+            en: `Soak This Puddle (#${matches[1]})`,
+            de: `Fläche nehmen (#${matches[1]})`,
+            ja: `懺悔踏む (#${matches[1]})`,
+            fr: `Absorbez cette zone au sol (#${matches[1]})`,
+            ko: `참회 밟기 (#${matches[1]})`,
+            cn: `踩水圈 (#${matches[1]})`,
           };
         }
       },
@@ -235,12 +235,12 @@ const kFinalJudgementNisi = ['8B0', '8B1', '85B', '85C'];
         if (matches[1] == data.puddle)
           return;
         return {
-          en: 'Puddle #' + matches[1],
-          de: 'Fläche #' + matches[1],
-          ja: '懺悔 #' + matches[1],
-          fr: 'Zone au sol #' + matches[1],
-          ko: '참회 #' + matches[1],
-          cn: '水圈 #' + matches[1],
+          en: `Puddle #${matches[1]}`,
+          de: `Fläche #${matches[1]}`,
+          ja: `懺悔 #${matches[1]}`,
+          fr: `Zone au sol #${matches[1]}`,
+          ko: `참회 #${matches[1]}`,
+          cn: `水圈 #${matches[1]}`,
         };

I think that add more properties make it harder to refactor, and localizer need to scroll up and down when editing. Maybe this method can modify less part.

'$replace': {  'puddle': matches[1] } is a good thought about ways to create named aliases for variables.  Thanks!
I worry about there being some cases that can't handle where you really need to store some local variable that's been computed, like this trigger as one example.
One option could be instead of returning 'soakThisPuddle' it would instead return something more like return output('soakThisPuddle', {puddle: matches[1]} );, passing parameters to a function.  And then the template string could use those as names.

Oh, what I mean is that we still return an object as we currently do, only adding a $replace attribute to it.
If the user does not like the original Tankbuster prompt text (Tankbuster on you), for example he can change it to Tankbuster to {data.me}, we only need to eval() data.me.

I think my goal with these replacements is that users don't have to write javascript.  If users felt comfortable writing javascript, then it's arguable we wouldn't need this at all.  So, I think it's better to have all the replacements be simple words, like ${puddle} etc, and keep any logic in the trigger file.  I think that will also make it easier to validate the replacements and show errors in the UI.  I also think if the replacements are words or at most data.x or matches.x then I think it'd be pretty straightforward to regex the replacements if we didn't want to eval.
I had a thought of maybe having the triggers call a function instead of returning strings.  For example,
  return data.output('soakPuddle', {puddle: matches[1]});

I could imagine other alternatives here too, like this vs data (maybe we should already be binding the trigger as this for functions?) I could also imagine making the output strings functions? Like data.output.soakPuddle({puddle: matches[1]});.  I think data and matches could always be implicitly available to this function as well so we don't have to write that everywhere.
At any rate, I think an explicit approach like this would keep the javascript logic where it already is inside the triggers and then provide an explicit way to pass variables by name to the replacement function.


Correct the structure of the package.

Since the library sits already inside a <package name> dir
the file should be called package.mo and not <package name>.mo

Fixed wrong package name an re-structured library into directory structure instead of single file

Good idea. Splitting the package in to sub files means less dummy changes and less likely merge conflicts.


'Get-GSUserList' & 'Get-GSUser -Filter *' are "broken"

Describe the bug
With latest version, there is no error but nothing is returned.
To Reproduce
Steps to reproduce the behavior:

Call Get-GSUserList

Expected behavior
I should have the full list of users.
Additional context
Not sure yet if the problem is on my side or global, would be appreciated if it can be tested by someone else to confirm the problem.

when i call get-gsuser without params or with a given user, it work as expected.

hey @sguilbault-sherweb - What are you seeing when you tack on -Verbose to those commands? And do you have your CustomerId added to your config?
I'm not able to reproduce on my end, here's my output for reference:

I found out my problem. We recently configured a domain alias and changed all our primaryemail values to used this new domain (the rest being on the old domain).
I now need to call the cmdlets with -Domain parameter.

Sorry for the trouble ...

No trouble at all! Yeah, multi-domain can be a little odd. When you run Get-GSUser -Filter * -Verbose, does it show that it's Getting all Users for Domain 'domain.com' or Getting all Users for Customer 'C0xxxxxx'? Asking as you should be able to get all users for your entire customer account (i.e. all domains you own), but it may be defaulting to Domain due to config preference. If it's defaulting to domain, I have some additional steps for you that may help.

Keeping this open for a moment so that we're 100% on the same page =]

Here's what I would do:

Run: Set-PSGSuiteConfig -Preference CustomerId -CustomerId (Get-GSUser).CustomerId

This will update your Config to indicate CustomerId as your preference and set your CustomerId in your config if not already set.

Run: $users = Get-GSUser -Filter * -Verbose

This should give you your full user list now for all domains owned by your customer.

The Preference config value tells functions like Get-GSUser the scope at which you'd like to perform your action if no other parameter forces the alternative. When you specify the Domain parameter for Get-GSUser, for example, i.e. Get-GSUser -Filter * -Domain domain.com, this tells PSGSuite to disregard whatever your Preference is in your config and run it at the domain scope.
For example; if you have domain1.com set in your config as your Domain, Domain set as your Preference and no users in domain1.com because they moved to domain2.com, then Get-GSUser -Filter * will not return anything (since it's only looking in domain1.com for users based on your config). Get-GSUser -Filter * -Domain domain2.com will work, because you're overriding your config values and specifying a different domain.
Let me know if that makes sense and/or if it doesn't align with what you're seeing!

I forgot what I had put in configurations a couple weeks ago, I'll revisit my configuration file today, i was probably in domain mode so i'll switch in customer mode. Bottom line, your code is working as expected (why i had close the issue). Thanks for the hints, I'll let you know later how it goes.

Got it! Just making sure you're good to.go! I'll get this closed out then, please don't hesitate to reach out if there's anything else needed!
Sent with GitHawk


Implement the :dig method for Hash and Array

Implemented the :dig method for Hash and Array, via Diggable Go interface.
The PR contains also a small refactoring in the Array class, adding the internal normalizedIndex() method.

@st0012 this implementation uses a Go interface.
There is an alternative, which is to implement #dig entirely in Goby. I'm neutral, if you don't like the current implementation, I can easily switch.

@saveriomiroddi Nice work and refactoring 😄


Currencies.php example not working

When I execute it, all I get is the following Exception:
Exception 'Bitpay\Client\ArgumentException' with message 'The currency code "CUP" is not supported.'

in .../vendor/bitpay/php-client/src/Bitpay/Currency.php:119

It appears that 3 new supported currencies were added to BitPay and were not yet reflected in the \Bitpay\Currency::$availableCurrencies array.
Please add the 3 missing currencies. They are: CUP, IRR and KPW


Joining produces bans

Summary
While discord.py-self is running if you join tokens to guilds, it will cause bans. Not every token but a lot of them.
Reproduction Steps
Turn off guild subscriptions completely and await client.start() with around 500 tokens, I would really suggest to use at least one separate proxy each 2-3 bots.
Now either use the join() method or a browser to join these 500 tokens to a couple different guilds, use delays between each  join and do not run it concurrently.
You will notice that you get a high amount of bans no matter if you use the join() method or a browser to join servers.
Code
No response
Expected Results
The tokens do not get banned - at least if a browser is being used to join them manually while discord.py-self is running.
Actual Results
A high percentage of the tokens, that are currently online with discord.py-self are getting banned.
System Information

Windows 10
Python 3.9.6
Release 1.9.1

Checklist

[X] I have searched the open issues for duplicates.
[X] I have shared the entire traceback.
[X] I am using a user token (and it isn't visible in the code).

Additional Information
I would be willing to provide you working and verified tokens for testing this. Share me a throwaway Discord and I will contact you there.

are the tokens fully verified? (phone & email), i noticed that if you join servers with either unverified accounts or accounts that are not phone verified discord may lock or even ban them for the spam/selfbot reason (using this lib or even manually on browser). But if the tokens are phone verified you shouldnt get locked/banned.

from my experience anyway


Why is the standardLoadout field not identical to upgrades

In quick-build.schema.json the upgrades are defined as
"upgrades": {
            "type": "object",
            "additionalProperties": false,
            "patternProperties": {
              "^(astromech|cannon|configuration|crew|device|force-power|gunner|illicit|missile|modification|sensor|tactical-relay|talent|tech|title|torpedo|turret)$": {
                "type": "array",
                "minLength": 1,
                "items": { "type": "string", "pattern": "^[a-z0-9-]+$" }
              }
            }

while in the pilot.schema.json the standard loadout upgrades are an array of strings.
"standardLoadout": {
      "type": "array",
      "items": {
        "type": "string",
        "pattern": "^[a-z0-9-]+$"
      }
    }

I would expect the types to be the same since they both store upgrades.

Good point. Chris and I discussed this here when he added the new schema. I didn't think to look in the quick builds file at the time but this looks like a good improvement.

Ok, I've had a proper read of the two schemas (above) and what it looks like in the data.
Standard Loadout:
      "slots": [
        "Talent",
        "Turret",
        "Torpedo",
        "Astromech",
        "Device",
        "Missile",
        "Modification"
      ],

Quick Builds:
          "upgrades": {
            "talent": ["experthandling"],
            "crew": ["seasonednavigator"],
            "gunner": ["veterantailgunner"],
            "astromech": ["r3astromech"],
            "modification": ["ablativeplating", "hullupgrade"]
          }

The quick builds version is certainly more detailed, but I don't think it adds much value. The important bit ("pattern": "^[a-z0-9-]+$") is the same for both. The upgrade type in the quick build schema can be inferred from the xws id anyway.
The quick build schema is also much more work for those of us doing data input (and there's a potential for error eg if we list a talent as a modification).
If we were to take action on this issue, I'd actually propose simplifying the quick build schema and data to match what we've done on standard loadouts. However, I think quick builds in this repo are rarely used so I don't see much value in doing that.
@chrisalleng may also have an opinion

I'll close this if no further activity by Feb

Sorry I've been hard to find. Yeah, I think the quick build schema would be the better one to change.
I also agree it's not worth the effort to do so, I suspect it's just making extra work for people, and I don't expect anyone to start some new project with quickbuilds as I suspect they're effectively being quietly sunsetted with the more fleshed out standard loadout cards.


[Build] Add types

What does this PR do?
Add Typescript types in the final bundle.
Where should the reviewer start?
webpack.config.js
What testing has been done on this PR?
Importing this repo in another project to check if the types ware being exported.
How should this be manually tested?
Run yarn build and check if index.d.ts is in the final result in dist folder.
Any background context you want to provide?
NA
What are the relevant issues?
#30
Screenshots (if appropriate)
NA

:tada: This PR is included in version 0.5.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


FIX #57 - Change default branch from develop to master and simplify publishing workflow

Description
The current workflow is unecessarily complex, having a single branch as source of truth will make deployment easier.
Development notes

Switch default branch from develop to master
Update documentation accordingly
Remove develop branch

Checklist

[X] Read the contributing guidelines
N/A Open this PR as a 'Draft Pull Request' if it is work-in-progress
[X] Update the documentation to reflect the code changes
N/A Add a description of this change and add your name to the list of supporting contributions in the CHANGELOG.md file. Please respect Keep a Changelog guidelines.
N/A Add tests to cover your changes

Notice

[X] I acknowledge and agree that, by checking this box and clicking "Submit Pull Request":

I submit this contribution under the Apache 2.0 license and represent that I am entitled to do so on behalf of myself, my employer, or relevant third parties, as applicable.

I certify that (a) this contribution is my original creation and / or (b) to the extent it is not my original creation, I am authorised to submit this contribution on behalf of the original creator(s) or their licensees.

I certify that the use of this contribution as authorised by the Apache 2.0 license does not violate the intellectual property rights of anyone else.

Codecov Report

Merging #174 (72be5f5) into master (477147f) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##            master      #174   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files           25        25
  Lines          713       713
=========================================
  Hits           713       713

Continue to review full report at Codecov.

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


await WriteAsync seems to return before all the data is actually written to the stream

I noticed that on Android (Xamarin Android Project targeting Android 12.0) that when calling await WriteAsync the call returns before all the data is written to the stream.
The following code is used to send data to a printer.
If I don't include the delay and just close the stream then the data never prints.
If the number of bytes I'm trying to pass to WriteAsync is large then a larger delay is needed.
I would expect awaiting the call would wait until all data is written, but that does not seem to be the case.
byte[] bytes = System.Text.Encoding.UTF8.GetBytes(cmd);
using (var bs = client.GetStream())
{
   await bs.WriteAsync(bytes, 0, bytes.Length);
   await Task.Delay(250); // Delay is needed otherwise stream closes before data is written.
   bs.Close();
}

Android uses a buffered stream underneath the hood so the method returns when it has finished writing to the buffer. You can force it to flush the buffer and write all to the device using Flush or FlushAsync on the stream.


wifi: hostap: Relocate source code of AP setup using hostapd to separate files

Issue:
Originally, setting up AP with wpa_supplicant is supported in modules/hostap/src/supp_*.c files. Now adding new support of setting up AP with hostapd in same files, controlled by new macro CONFIG_WIFI_NM_HOSTAPD_AP. This implementation is not easy to maintain in the future.
Solution:
Relocate the hostapd support source code to new files and place those files under modules/hostap/src. Update CMAKE file so that those files will only be included and compiled when CONFIG_WIFI_NM_HOSTAPD_AP is enabled.

@krish2718
Hi Chaitanya,
Created this issue to track the hostapd support relocation task. Could you please help add this issue to Wi-Fi project.
Thanks!
Regards,
Hui Bai


Add ReadFileInputStreamTests.cpp to CMakeLists.txt

I found that this test was not runnable and was not included in any CMakeLists file.
This PR adds the file to the list and re-enables the ReadFileInputStream test.

Interestingly, the linux-build failed with the fuzzer error on the initial commit (unrelated to this PR): https://app.circleci.com/pipelines/github/facebookincubator/velox/19391/workflows/a3e63749-9096-4a2f-87e7-fc8173589e29/jobs/122307:
I0129 19:59:25.404004 153233 ExpressionVerifier.cpp:80] Executing expression: plus(4466318525357736456,"c0")
I0129 19:59:25.404017 153233 ExpressionVerifier.cpp:32] 1 vectors as input:
I0129 19:59:25.404021 153233 ExpressionVerifier.cpp:34] 	[DICTIONARY BIGINT: 100 elements, 9 nulls], [FLAT BIGINT: 100 elements, 11 nulls]
E0129 19:59:25.404275 153233 Exceptions.h:68] Line: ../.././velox/common/base/CheckedArithmetic.h:31, Function:checkedPlus, Expression:  integer overflow:<PHONE_NUMBER>357736456 +<PHONE_NUMBER>385321841, Source: USER, ErrorCode: ARITHMETIC_ERROR
E0129 19:59:25.404511 153233 Exceptions.h:68] Line: ../.././velox/common/base/CheckedArithmetic.h:31, Function:checkedPlus, Expression:  integer overflow:<PHONE_NUMBER>357736456 +<PHONE_NUMBER>478018639, Source: USER, ErrorCode: ARITHMETIC_ERROR
W0129 19:59:25.404592 153233 FuzzerToolkit.cpp:112] Two different VeloxExceptions were thrown:
	integer overflow:<PHONE_NUMBER>357736456 +<PHONE_NUMBER>385321841
and
	integer overflow:<PHONE_NUMBER>357736456 +<PHONE_NUMBER>478018639

I have re-triggered the tests and will investigate it separately, it should not block this PR.

@aditi-pandit Could you review this small PR when you have time? Thank you.

@isadikov You can change the status of the PR when you think it's ready

@Yuhta This PR is ready now. Could you take another look? Thank you.


File editor does't always refresh after command

I use VSCode v1.89.1 and RunOnSave v0.2.0, with this minimal .vscode/settings.json:
{
    "emeraldwalk.runonsave": {
        "commands": [
            {
                "match": "\\.cpp$",
                "cmd": "clang-format -i ${file}"
            }
        ]
    }
}

I have the following file tree in VSCode:
.
|-- foo.cpp
|-- src
|   |-- bar.cpp
|   |-- main
|   |   -- foobar.cpp

Saving the top-level foo.cpp formats the file and, crucially, refreshes the open editor in thte GUI (as expected).
Saving any of the .cpp files in the sub-directories also formats the file but does not refresh the display. (Trying to save again brings up the dirty file conflict resolution popup). Bringing another file forefront in the GUI, and then the problematic file back again does refresh it from disk.
As a workaround, I also tried "cmd": "clang-format -i ${file}; code -r ${file}" but that made no difference.

@pruizFocusrite the extension doesn’t actually do anything to refresh editors. The fact that it refreshes in some cases would suggest some other on save formatting maybe running. The VS code docs would suggest clang-format is a built in formatter already.
https://code.visualstudio.com/docs/cpp/cpp-ide#_code-formatting
Is it possible multiple formatters are running when you save your files?


R plugin not working

Hi,
I've installed the R Language Support on PyCharm, but I receive weird German errors:
Warnung: Namensraum ‘ggplot2’ ist nicht verfügar und ist durch.GlobalEnv ersetzt worden während Objekt ‘consumption_boxplot’ verarbeitet wurde
Process finished with exit code 0
Effectively, I cannot process any R code, not even something simple like print('Hi')
Any ideas? Thanks!

Could you post a screenshot of the error?
It seems more related to your R installation to me.

Closed due to inactivity. Feel welcome to reopen the ticket if the problem remains.


Notes for myself

This is how the Node.js internal functions map to the modules loading algorithms:

Phase
Node.js ModuleWrap (C++)
Node.js vm.Module (JS)
Current spec algorithm

Graph fetching
ModuleWrap::Link
Module#[kLink] (called by Module#link)
n/a

Graph linking
ModuleWrap::Instantiate
Module#link
module.Link()

Graph evaluation
ModuleWrap::Evaluate
Module#evaluate
module.Evaluate()

This is how the different engines schedule the settlement of the import() promise.
Test code (./dep.js is an empty file):
(async() => {

{
  let i = 0;
  (async () => { while (++i<1000) await Promise.resolve() })();
  await import("<invalid>").catch(() => console.log("counter after error is", i));
}

await new Promise(r => setTimeout(r, 0)); // cleanup microtask queue

{
  let i = 0;
  (async () => { while (++i<1000) await Promise.resolve() })();
  await import("./dep.js").then(() => console.log("counter after success (first time) is", i));
}

await new Promise(r => setTimeout(r, 0)); // cleanup microtask queue

{
  let i = 0;
  (async () => { while (++i<1000) await Promise.resolve() })();
  await import("./dep.js").then(() => console.log("counter after success (second time) is", i));
}

})();

Node.js:
counter after error is 11
counter after success (first time) is 1000
counter after success (second time) is 14

Deno:
counter after error is 1000
counter after success (first time) is 1000
counter after success (second time) is 1000

Firefox/Chrome:
counter after error is 2
counter after success (first time) is 1000
counter after success (second time) is 1000

With this refactor it would be:
counter after error is **host defined**
counter after success (first time) is **host defined**
counter after success (second time) is 3

#6 fixed the divergence


Add more complex handling of MB artist joins

coverage: 61.586% (+0.1%) from 61.463% when pulling e0767d2a48085858dd9466187c1c0ca450565dba on complex into d5a24d4cf29abd5689f76f7f5a2b044142191751 on main.


I am Able to Zoom tileview but tileview gets hidden after full zoom

I am using single image of size 1825 * 1650 in order to display my floorplan inside tileview like this. I have set tileview size also as 1825, 1650. I can zoom in and zoom out tileview. But when i fully zoom tileview, sometimes image inside tileview gets hidden and only markers remain. Again i have to zoom out in order to bring back image in tileview.
tileView = new TileView(this);
((RelativeLayout) findViewById(R.id.main_tile_layout)).addView(tileView);
tileView.setId(R.id.tile_view);
tileView.setBackgroundColor(getResources().getColor(R.color.chat_sender));
tileView.setSize(1825, 1650);
tileView.setScale(0,2);
tileView.addDetailLevel( 1.000f, "tiles/floorplan_0/125/%d_%d.png");
This is my activity layout code.

<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/chat_sender"
android:fitsSystemWindows="true">
<RelativeLayout
    android:id="@+id/relative_Layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <RelativeLayout
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="40dp">

        <ImageView
            android:id="@+id/imgBack"
            android:layout_width="30dp"
            android:layout_height="30dp"
            android:layout_alignParentStart="true"
            android:layout_centerVertical="true"
            android:layout_marginEnd="10dp"
            android:layout_marginStart="10dp"
            android:background="@drawable/ic_arrow_back_black_24dp"
            android:contentDescription="@string/app_name" />

        <TextView
            android:id="@+id/txtMember"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:layout_toEndOf="@+id/imgBack"
            android:text="@string/active_employees"
            android:textColor="@color/white"
            android:textSize="@dimen/mediumTextSize"
            android:textStyle="bold"
            tools:ignore="RelativeOverlap" />

    </RelativeLayout>

    <RelativeLayout
        android:id="@+id/main_tile_layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@+id/toolbar">

    </RelativeLayout>

    <RelativeLayout
        android:id="@+id/zoom_layout"
        android:layout_width="@dimen/dimen_45dp"
        android:layout_height="@dimen/dimen_90dp"
        android:layout_alignParentBottom="true"
        android:layout_alignParentEnd="true"
        android:layout_marginBottom="@dimen/dimen_10dp"
        android:layout_marginEnd="@dimen/dimen_10dp">

        <ImageButton
            android:id="@+id/zoom_in"
            style="@style/StateButton"
            android:layout_width="45dp"
            android:layout_height="45dp"
            android:layout_above="@+id/zoom_out"
            android:layout_centerHorizontal="true"
            android:contentDescription="@string/app_name"
            android:padding="@dimen/dimen_7dp"
            app:srcCompat="@drawable/ic_zoom_in" />

        <ImageButton
            android:id="@+id/zoom_out"
            style="@style/StateButton"
            android:layout_width="45dp"
            android:layout_height="45dp"
            android:layout_alignParentBottom="true"
            android:layout_centerHorizontal="true"
            android:contentDescription="@string/app_name"
            android:padding="@dimen/dimen_10dp"
            app:srcCompat="@drawable/ic_subtract" />

    </RelativeLayout>

</RelativeLayout>

</android.support.design.widget.CoordinatorLayout>
I am able to use pinch zoom, pan zoom or scale tileview. What am i doing wrong as image gets hidden and only markers remain in tileview sometimes?

your bitmaps may be too large.  instead of having scale 0 to 2 (which forces upsizing), keep scale 0 to 1, and try to double the size of your tiled image (but keep the tile size the same - so the number of tiles would increase).
if that doesn't work, post the project somewhere i can clone it and i'll take a look

Thanks for your reply. I tried out what u said. But it did not work for me. I would require your help. Can you please take a look at this project? http://androidbash.com/floorplan/FloorPlan.zip

I could solve it by using this class and loading image from byte Array.
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.util.Log;

import com.qozix.tileview.graphics.BitmapProvider;
import com.qozix.tileview.tiles.Tile;
import com.wrkspot.employee.widget.media.utils.Utils;

public class BitmapProviderInternalStorage implements BitmapProvider {
private static final BitmapFactory.Options OPTIONS = new BitmapFactory.Options();

static {
    OPTIONS.inPreferredConfig = Bitmap.Config.RGB_565;
}

@Override
public Bitmap getBitmap(Tile tile, Context context) {
    byte[] data = (byte[]) tile.getData();
    if (data != null) {
        try {
            try {
                BitmapFactory.Options options = new BitmapFactory.Options();
                options.inJustDecodeBounds = true;

                options.inSampleSize = Utils.calculateInSampleSize(options, tile.getWidth(), tile.getHeight());
                options.inJustDecodeBounds = false;

                return BitmapFactory.decodeByteArray(data, 0, data.length, options);
            } catch (OutOfMemoryError | Exception e) {
                // this is probably an out of memory error - you can try sleeping (this method won't be called in the UI thread) or try again (or give up)
                Log.e("BitmapProviderIntStrg", "Out of memory: " + e);
            }
        } catch (Exception e) {
            // this is probably an IOException, meaning the file can't be found
            Log.e("BitmapProviderIntStrg", "Error loading file: " + e);
        }
    }
    return null;
  }
}

private void generateTileView(int floorNumber) {
    byte[] decodedString = null;
    try {
        FloorPlanImageModel floorPlanImageModel = RealmManager.getInstance().getFloorPlanData();

        for (FloorPlanImageData imageData : floorPlanImageModel.getData()) {
            if (imageData.getFloorNumber().equalsIgnoreCase(String.valueOf(floorNumber))) {
                String encodedImage = imageData.getFile().getBody();
                decodedString = Base64.decode(encodedImage, Base64.DEFAULT);
                break;
            }
        }
    } catch (Exception e) {
        Log.e(getLocalClassName(), "Could not decode bitmap");
    }

    tileView = new TileView(this);

    ((RelativeLayout) findViewById(R.id.main_tile_layout)).addView(tileView);
    tileView.setId(R.id.tile_view);
    tileView.setBackgroundColor(getResources().getColor(R.color.chat_sender));
    tileView.setSaveEnabled( true );
    tileView.setSize(1825, 1368);
    tileView.addDetailLevel(1.000f, decodedString, 1825, 1368);
    tileView.setMarkerAnchorPoints(-0.5f, -0.5f);
    tileView.setBitmapProvider(new BitmapProviderInternalStorage());
    tileView.setScaleLimits(0,2f);
    //tileView.setShouldRenderWhilePanning(true);

    tileView.setMarkerTapListener(mMarkerTapListener);

    tileView.setOnTouchListener(new View.OnTouchListener() {
        private static final int MAX_CLICK_DURATION = 200;
        private long startClickTime;

        @Override
        public boolean onTouch(View v, MotionEvent event) {
            switch (event.getAction()) {
                case MotionEvent.ACTION_DOWN: {
                    startClickTime = Calendar.getInstance().getTimeInMillis();
                    break;
                }
                case MotionEvent.ACTION_UP: {
                    long clickDuration = Calendar.getInstance().getTimeInMillis() - startClickTime;
                    if (clickDuration < MAX_CLICK_DURATION) {
                        if (mTimePickerLayout.getVisibility() != View.VISIBLE) {
                            fadeInView(mFloorLayout);
                            fadeInView(mTimePickerLayout);
                        }
                    }
                }
            }
            return false;
        }
    });

}

Thank you for your amazing library. And i could solve all my issues except generating heatmap. Any help from your side for generating heatmap? Can you provide sample?

i'll try to take a look at the project you posted this weekend (no promises though, it's a very busy time for me).
can you define what you mean by "heatmap"?  do you want to place bitmaps (markers)?  do you want to draw on the canvas?  what specifically do you want to do?  there are innumerable ways to define or implement that...

I can understand.  Any chance you can drop a mail for<EMAIL_ADDRESS>? I am extremely dependent on this library for my project. I need to generate a heatmap mostly similar to this link : https://img.gadgethacks.com/img/30/78/63548728113997/0/make-interactive-heat-maps-from-your-android-devices-location-history.1280x600.jpg

HI Mike, Let me know if you need anything from my side. In the above comment i have even mentioned my email. Hope you get some time today or tomorrow.

sorry, i haven't had a chance to get to this.
if you have the disappearing tile thing resolved, that's probably all i would be able to help with.  there's definitely nothing built in for heatmaps.  i'd use the drawing plugin which gives you access to the underlying tiled canvas, then just manage the heatmap graphic generation yourself

I will also try that. Do you know anyone who can help me with this? You can try whenever it is possible for you.

I will also try that. Do you know anyone who can help me with this? You can try whenever it is possible for you.

No, I don't know anyone that could help you with that.  I'd figure out how to draw it first, then try to adopt to the library.

No, I don't know anyone that could help you with that. I'd figure out how to draw it first, then try to adopt to the library.
Yeah i tried to draw from this. But i am not able to draw the same on to tileview. This is the same code as how Google map draws haetmap.
https://github.com/ChristianFF/HeatMapForAndroid/tree/master/app/src/main/java/com/ff/heatmap/heatmap

Yeah i tried to draw from this. But i am not able to draw the same on to tileview. This is the same code as how Google map draws heatmap. Can you please try once in your free time??
https://github.com/ChristianFF/HeatMapForAndroid/tree/master/app/src/main/java/com/ff/heatmap/heatmap

Sorry this isn't really related to the library.  You have access to the drawing canvas, which is should be sufficient.  Good luck!

Any help on this issue? I am still stuck only with the heatmap part. Even i tried to integrate https://github.com/HeartlandSoftware/AndroidHeatMap with tileview. But somehow i am unable to get the result.

sorry, this is not a feature that i'd include in the library


Remove - Load CAS with VarChar folder – outdated. Replaced by CAS - Convert Char to Varchar

Please include answers to these questions as part of your pull request
In the GitHub webUI, use the Write tab to modify the Markdown text that is part of the pull request. For each question simply place an X inside the square brackets, [X], that represents your answer. Make sure there are no blanks inside the brackets, otherwise MarkDown doesn't render properly. Using the Preview tab while editing this form, you can see the formatted/rendered version of the message.

Q1: Confirm that you have the right to submit the code that is being contributed. Please consider the origin of your code and confirm you have the appropriate rights to make the submission subject to the Apache 2.0 license that applies to everything in this repository of custom steps. If so, follow the instructions for the Contributor Agreement (which is based on the industry-standard Developer Certificate of Origin (DCO)).

[x] Yes, I have the right to submit the contributed code on behalf of myself, my company, or any other owner of the code. I have also attached my signed copy of the DCO to this message.
[ ] No

Q2: Confirm that your contribution does not include any personally identifiable information (PII), for example, in any examples used in your README file.

[x] My contribution does NOT include PII data
[ ] My contribution includes PII data

Q3: Confirm your contribution does not include any encryption or other export-controlled technology.

[x] My contribution does NOT contain encryption or other export-controlled technology
[ ] My contribution includes encryption or other export-controlled technology

ContributorAgreement.CarloPetti.txt

SAS Internal Due Diligence Review - COMPLETED on 20FEB2023

In a way is a "continuation" of pull request #44. Because of an oversight the old version of the contributed step with an old name was not removed and had been closed already.  We decided to not reopen the original pull request, but handle it in this small/dedicated new pull request.


After flutter 3.7 upgrade intl throws error on numeric codes in select statement

Since upgrading to flutter 3.7.0 I am getting this error in app_xx_arb files:

ICU Syntax Error: Expected "}" but found "1".

If I replace "1" with "a1" it is no longer a problem.
This is on intl 0.17.0
"praiseFrases": "{praise, select, 1{Good} 2{Well done} 3{Great} 4{Amazing} 5{Awesome} other{Unknown}}",
    "@praiseFrases":{
        "placeholders": {
            "praise": {}
        }
    },

Flutter doctor
[√] Flutter (Channel stable, 3.7.0, on Microsoft Windows [Version 10.0.19045.2486], locale en-US)
    • Flutter version 3.7.0 on channel stable at C:\src\flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision b06b8b2710 (26 hours ago), 2023-01-23 16:55:55 -0800
    • Engine revision b24591ed32
    • Dart version 2.19.0
    • DevTools version 2.20.1

[√] Windows Version (Installed version of Windows is version 10 or higher)

[√] Android toolchain - develop for Android devices (Android SDK version 33.0.1)
    • Android SDK at C:\Users\AppData\Local\Android\sdk
    • Platform android-33, build-tools 33.0.1
    • Java binary at: C:\Program Files\Microsoft\jdk-<IP_ADDRESS>-hotspot\bin\java.exe
    • Java version OpenJDK Runtime Environment Microsoft-25199 (build 11.0.12+7)
    • All Android licenses accepted.

[√] Chrome - develop for the web
    • Chrome at C:\Program Files\Google\Chrome\Application\chrome.exe

[!] Visual Studio - develop for Windows (Visual Studio Community 2022 17.4.4)
    • Visual Studio at C:\Program Files\Microsoft Visual Studio\2022\Community
    • Visual Studio Community 2022 version 17.4.33213.308
    • Windows 10 SDK version 10.0.22621.0
    X Visual Studio is missing necessary components. Please re-run the Visual Studio installer for the "Desktop development with C++" workload, and include these components:
        MSVC v142 - VS 2019 C++ x64/x86 build tools
         - If there are multiple build tool versions available, install the latest
        C++ CMake tools for Windows
        Windows 10 SDK

[!] Android Studio (version 2022.1)
    • Android Studio at C:\Program Files\Android\Android Studio
    • Flutter plugin can be installed from:
       https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
       https://plugins.jetbrains.com/plugin/6351-dart
    X Unable to find bundled Java version.
    • Try updating or re-installing Android Studio.

[√] VS Code (version 1.74.3)
    • VS Code at C:\Users\AppData\Local\Programs\Microsoft VS Code
    • Flutter extension version 3.56.0

[√] Connected device (3 available)
    • Windows (desktop) • windows • windows-x64    • Microsoft Windows [Version 10.0.19045.2486]
    • Chrome (web)      • chrome  • web-javascript • Google Chrome 109.0.5414.75
    • Edge (web)        • edge    • web-javascript • Microsoft Edge 109.0.1518.61

[√] HTTP Host Availability
    • All required HTTP hosts are available

! Doctor found issues in 2 categories.

@thkim1011, this might be an issue with the parser? I also noticed that in select statements, the argument cannot start with select, e.g.
"praiseFrases": "{selectPraise, select, 1{Good} 2{Well done} 3{Great} 4{Amazing} 5{Awesome} other{Unknown}}",

Would also give an error.

On my side, since flutter update to 3.7, every placeholder are generating this error.
Output sample:
[app_en.arb:sentence] ICU Lexing Error: Unexpected character.     Estimated profit: {POSSIBLE_PROFIT}!

This should be fixed, closing this now.


Support styled.div... syntax, like styled-components

Hi, this looks very promising - we're looking into kuma as a replacement for styled-components that works without overhead for react server components. We have hundreds of files and thousands of components to migrate, though, so the closer we can get to something with an API like styled-components, the better.
I noticed in the docs that this is how a div would be styled:
const MyDiv = styled('div')`
  color: blue;
`

Would you consider adding this syntax, to match styled-components and make our migration much easier?
const MyDiv = styled.div`
  color: blue;
`

(as well as equivalents for the various HTML element types)
It could be a non-breaking, thin wrapper for the existing syntax. I'd be happy to contribute a PR for this if it'd be accepted.

@mmkal
Hey, thanks for reaching out. Indeed, a syntax that more closely resembles the existing API is desirable. Feel free to submit a PR! If you encounter any issues, I'd be happy to help.
The related files are probably packages/compiler/src/processTaggedTemplateExpression.ts and packages/core/src/styled.ts.


Can't compile after upgrading Hugo

What version of Hugo are you using (hugo version)?

$ hugo version
0.119.0-1

Does this issue reproduce with the latest release?
yes, I have also tried with the gohugo-extended-bin-0.120.4-1 but same error.
Error:
ERROR render of "page" failed: "/home/me/hugoProject/layouts/_default/baseof.html:3:9": execute of template failed: template: artists/single.html:3:9: executing "artists/single.html" at <partial "head.html" .>: error calling partial: "/home/me/hugoProject/layouts/partials/head.html:3:8": execute of template failed: template: partials/head.html:3:8: executing "partials/head.html" at <partial "schema" .>: error calling partial: execute of template failed: html/template:partials/schema.html: ends in a non-text context: {stateJSDqStr delimNone urlPartNone jsCtxRegexp attrNone elementScript }
Workaround:
downgrading package hugo (0.119.0-1 => 0.118.2-2)

@sankayop A reproducible example would be helpful.

Hi @jmooring , I'm not using Hugo on a regular basis so it takes a bit of an effort to get the smallest case but.
Here's a howto to get the error from scratch:
'''
hugo new site quickstart
cd quickstart
git init
cd themes
git clone https://github.com/appernetic/hugo-nederburg-theme.git
cd ..
rm -rf content layouts static hugo.toml
cp -r themes/hugo-nederburg-theme/exampleSite/* .
'''
then remove following lines from following files:

themes/hugo-nederburg-theme/layouts/partials/head.html:25-28
themes/hugo-nederburg-theme/layouts/partials/category.html:4-9

then:
'''
hugo server
'''
and you get the site working with 0.118 but not with 0.119 and latest.
I hope it can help making Hugo better :)
btw, it looks indeed very similar to #11507

Your site has several errors and deprecated functions. Try this modified copy of your site https://filebin.net/eyok6f0unb4y5gkl. Pay attention to the schema.html file in particular. That's Hugo's recommended way of writing schema.

The issue is simply reduced to:
<script>{ "a" b" }</script>

This is user error (missing quotation). Go's html/template package is doing the right thing.


WIP: splines

splines work
computing G + H identical output as compared to MATLAB
unsolved issue: constructing the correct coordinate transform, spherical, based on standard 10/20 montage (http://psychophysiology.cpmc.columbia.edu/software/CSDtoolbox/tutorial.html#PrepareInput)

@dengemann any reason you abandoned the CSD components here? CSD seems like it could be a nice way to visualize EEG data, e.g.:
https://www.researchgate.net/figure/229151438_fig1_Fig-3-Nose-referenced-ERP-lV-and-CSD-lVm-2-topographies-for-different-EEG

Yes, mainly some annoying obstacles. Can't explain it right now. Let's try
to chat later.
On Tue, 23 May 2017 at 21:58, Eric Larson<EMAIL_ADDRESS>wrote:

@dengemann https://github.com/dengemann any reason you abandoned the
CSD components here? CSD seems like it could be a nice way to visualize EEG
data, e.g.:
https://www.researchgate.net/figure/229151438_fig1_Fig-3-Nose-referenced-ERP-lV-and-CSD-lVm-2-topographies-for-different-EEG
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/mne-tools/mne-python/pull/1385#issuecomment-303514167,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AB0finkyszGPBLq5z8uKEwzS9JjaeP8eks5r8zpJgaJpZM4CGyRi
.


ID of nodes are disappearing in JSON document

We use fixed ID s for each node. After changing node data, the ID is disappearing in the JSON document (this.$refs.tree).
Original document:
treeData: [
{
id: "100001",
text: "Testnode 100001",
data: { value: "2" },
children: [
{
id: "100002",
text: "Testnode 10002.",
data: { value: "1" },
children: []
...
How can we prevent this behaviour?

If you use Vuex, then you need to store the id in the data property

@amsik thanks for the plugin.
I had the same problem. I get data from the backend that contains **id**, and I need to send data with id. But when using **this.$refs.tree.toJSON()**, **id** is not in the list. Can you tell me how to fix this?
Vuex is not used.

Hi!
You can try:
const treeData = [
{
text: "Testnode 100001",
data: { value: "2", id: "100001" },
children: [
{
text: "Testnode 10002.",
data: { value: "1", id: "100002", },
children: []
}
]


Port data module back to tensorwaves

The ampform.data module computes kinematic variables from four-momentums. Ideally, we only want AmpForm to provide the formulas for that conversion through SymPy and then let TensorWaves perform those computations with some computational backend (not only NumPy).
Unfortunately, we were so far unable to do this well, because of the need for numpy.einsum when computing dot products of four-momenta:
https://github.com/ComPWA/ampform/blob/66cf5db768701db5dd7c50d7a6f9e771b1e67150/src/ampform/data.py#L336-L340
Its equivalent in SymPy (most likely candidate is a Tensor) does not lambdify correctly though. TR-001 may offer a way out, however.

See also #91, which makes the data module even more clumsy, as well as #3 (which is just some sugar-coating to the data module, but it would be weird to provide that through AmpForm).

Closed by #177 and https://github.com/ComPWA/tensorwaves/pull/345


Wondering if this is going to be updated so as to use "Slack apps" instead of legacy tokens

Just ran this OK, and it works great! Thank you!
I'm just wondering if this might be updated so as to use "Slack apps" in the future. When I went to go create a token, I got a warning that tokens were EOL, and could stop working at any time. When Slack does pull the plug on the legacy tokens, I'd love to continue to be able to use this script, or some modified form of it.

sounds reasonable. send a PR if you want.

This is beyond my skill set for now, so probably won't be able to get to it for several weeks or months. Might be better suited for someone on the project more familiar with the Slack API.

Turn out this was a bit easier than I thought it would be.
Nothing in the Python code actually needs to be changed. It's just README.md that should be updated so as to reflect what permission scopes the particular Slack app needs.
When using the OAuth token, the script just kept spitting out errors. The script doesn't really return any error message from Slack, but I just went through slack-autoarchive.py looking at all the api_endpoints. Then I looked through Slack's documentation for the particular API methods. Turns out that for the particular Slack app, you can look up particular methods right in the search bar for the permission scopes. Some of the script's methods overlap for the particular permission scopes that they need. Anyway, I have a complete list now:

channels:history
channels:read
channels:write
chat:write:bot
chat:write:user

Easy enough once you add those permission scopes. I'll update README.md and send a pull request. Thanks.

great, sounds like a reasonable PR. After you send it, I'll close this issue.

#32 should be all we need here.

Thanks for the PR!


Detect Perlmutter nodes and set corresponding Globus endpoint

NERSC Perlmutter nodes do not have an FQDN set properly. It means that socket.getfqdn() and regex cannot be used to determine what machine zstash is run on and set a corresponding Globus endpoint UUID. This PR adds another detection method that relies on $NERSC_HOST environment variable that is set on NERSC machines. If the variable is set to "Perlmutter" or "unknown", a Perlmutter Globus endpoint will be used for the machine zstash executed on.

Thanks @lukaszlacinski for implementing this. The unit tests pass on Perlmutter. Merging.


should sa.SparqlAnything() be idempotent?

say you are at the REPL and you instantiate the sa engine but you forgot to assign it to a variable....
maybe subsequent invocations should return the same reference?
Python 3.12.4 (main, Jun  7 2024, 19:06:40) [GCC 12.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import pysparql_anything as sa
sa>>> sa.SparqlAnything()
<pysparql_anything.sparql_anything.SparqlAnything object at 0x77d81fc9bb90>
>>> engine=sa.SparqlAnything()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.12/site-packages/pysparql_anything/sparql_anything.py", line 25, in __init__
    self.receiver = SPARQLAnythingReflection(jvm_options)
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/pysparql_anything/sparql_anything_reflection.py", line 43, in __init__
    jnius_config.set_classpath(get_path2jar())
  File "/usr/local/lib/python3.12/site-packages/jnius_config.py", line 47, in set_classpath
    check_vm_running()
  File "/usr/local/lib/python3.12/site-packages/jnius_config.py", line 20, in check_vm_running
    raise ValueError("VM is already running, can't set classpath/options; VM started at" + vm_started_at)
ValueError: VM is already running, can't set classpath/options; VM started at  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.12/site-packages/pysparql_anything/sparql_anything.py", line 25, in __init__
    self.receiver = SPARQLAnythingReflection(jvm_options)
  File "/usr/local/lib/python3.12/site-packages/pysparql_anything/sparql_anything_reflection.py", line 45, in __init__
    from jnius import autoclass
  File "<frozen importlib._bootstrap>", line 1360, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1331, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 935, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 995, in exec_module
  File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed
  File "/usr/local/lib/python3.12/site-packages/jnius/__init__.py", line 45, in <module>
    from .reflect import *  # noqa
  File "<frozen importlib._bootstrap>", line 1360, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1331, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 935, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 995, in exec_module
  File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed
  File "/usr/local/lib/python3.12/site-packages/jnius/reflect.py", line 19, in <module>
    class Class(JavaClass, metaclass=MetaJavaClass):

Hi Justin,
I've been looking into this. The closest thing that I can implement (and I've tested it) is a singleton construction that returns the same reference whenever the constructor is called again. To use your same example, we now have this:
Python 3.11.9 (tags/v3.11.9:de54cf5, Apr  2 2024, 10:12:12) [MSC v.1938 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import pysparql_anything as sa
>>> sa.SparqlAnything()
<pysparql_anything.sparql_anything.SparqlAnything object at 0x00000192AE485010>
>>> e = sa.SparqlAnything()
>>> e
<pysparql_anything.sparql_anything.SparqlAnything object at 0x00000192AE485010>
>>> e2 = sa.SparqlAnything("-Xrs", "-Xmx6g")
>>> e2
<pysparql_anything.sparql_anything.SparqlAnything object at 0x00000192AE485010>
>>>

The last example has been added to show that due to limitations with the JNI that first call to the SparqlAnything constructor is final, as the JVM cannot be shutdown and restarted with new options unless the underlying process is shut down and restarted.
@enridaga, as you gave this a thumbs up wdyt?

thanks @MarcoR1791 , looks good to me. i think is long is there is something like an sa.shutdown() that last example doesn't bother me since one could shutdown and invoke again with different args.

No probs! Actually finally learnt how Python really creates classes and their instances.
As for the the sa.shutdown() method, I'm not sure if it can even be done at the moment. See the last comment in issue #6 with links to further related discussions about the JVM and JNI. Obviously if anyone has an idea on the matter I'm very open to hearing about it.
I'm also curious whether there is a specific use case that you have for running PySPARQL in the Python shell rather than using the provided CLI?


Fix database URL for test helper

@burke figured this one out (thanks!): Puts a colon between the database user and password in the test helper.

It looks like this was already done in #29


Training on variable input size

First of all thanks for the code, I´m new to Chainer and I find the code very clean.
I´m going to try to use FCN for a segmentation problem but I have one doubt from the code. In the FCN32 model, after the Deconvolution2D there is a hardcoded crop.
h = self.upscore(score_fr)
h = h[:, :, 19:19 + x.data.shape[2], 19:19 + x.data.shape[3]]

This crop is due to a particular size for the training set, right?

I answered the question at https://github.com/wkentaro/pytorch-fcn/issues/51#issuecomment-324423289.

Awesome! Thank you very much for your prompt reply :)

Your welcome:)


Add application icons to the assignment menus

See NAudio example for icon extraction

I have started work on this feature on https://github.com/ho0ber/NK2Tray/tree/feature/process-icons
Currently i am stuck at setting the icon to the context menu. I tried different ways but none seem to really work that great so some help here would be appreciated.


API - Serve OpenAPI Definition and Swagger UI

Serve our generated OpenAPI definitions via our API server under /v1/openapi and the Swagger UI on /v1/swagger, setup the swagger UI to display the v1 api spec.
Ref: #452
https://stackoverflow.com/questions/46237255/how-to-embed-swagger-ui-into-a-webpage

https://github.com/kubermatic/kubecarrier/pull/461


Discrete Boundary-Seeking GANs

Hi,
I think the current implementation for Boundary-seeking GANs is only applicable for continuous variables, and not for discrete which was the main contribution of the paper. Is a discrete implementation in the works?

Hi,
No, it's not in the work.

Hi guys :)
@ankeshanand, why don't you try the current implementation on binarized MNIST?
I think you only need to use torch.round on X, in this line
https://github.com/wiseodd/generative-models/blob/master/GAN/boundary_seeking_gan/bgan_pytorch.py#L57
Why not give it a try?

@AjayTalati
Don't think it's that simple. If you go through the paper, the discretized version is different from the continuous version. The gradients are computed analytically there, not via backprop.

@ankeshanand thanks, I had a look.
Luckily PyTorch has an easy to implement REINFORCE method. Perhaps you might want to use that to get a simple baseline, so at least you can reproduce some of their paper?
If you did that, then you could implement their method, and compare the two.

Hi there. It's actually quite easy to implement discrete BGAN using standard backprop methods.
Lasagne implementation:
Binary variables:
https://github.com/rdevon/BGAN/blob/master/lib/loss.py#L176
General multinomial:
https://github.com/rdevon/BGAN/blob/master/lib/loss.py#L230
I'm sure it would be easy to implement in PyTorch


Extend LionWeb diff to find differences in order of children, reference targets and annotations

The diff does not recognise changes in ordering, while the order of these properties is significant according to the LionWeb specification.

Done in https://github.com/LionWeb-io/lionweb-typescript/pull/124


Security Vulnerabilities with third party JS

Dev tools lists 3 libraries with security vulnerabilities.

Bootstrap 3.3.7
jQuery 1.12.4
jQuery UI 1.11.4

The version of jQuery that we are using is from 2016. Recommend a plan to upgrade the libraries to the most current versions.

How can we verify that these are actual vulnerabilities?  Github is not reporting these as  issue.

Security Vulnerabilities
Bootstrap
https://snyk.io/vuln/npm:bootstrap?lh=3.3.7
jQuery
https://snyk.io/vuln/npm:jquery?lh=1.12.4
jQuery UI
https://snyk.io/vuln/npm:jquery-ui?lh=1.11.4

Unable to update the jQuery because we are on the latest Curation Concerns (1.7.8) that does NOT require a migration with reverse membership. Upgrading to CC 2.0 would require the relationship change and a migration to update jQuery. This is not ideal at this point in time.


Fix PE-D bugs

Codecov Report

Merging #171 (5e59ea8) into master (630360d) will not change coverage.
The diff coverage is n/a.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
@@            Coverage Diff            @@
##             master     #171   +/-   ##
=========================================
  Coverage     56.65%   56.65%
  Complexity      596      596
=========================================
  Files           112      112
  Lines          2351     2351
  Branches        269      269
=========================================
  Hits           1332     1332
  Misses          960      960
  Partials         59       59

Impacted Files
Coverage Δ

...java/seedu/address/logic/commands/MarkCommand.java
85.71% <ø> (ø)

...in/java/seedu/address/ui/PersonStatsListPanel.java
0.00% <ø> (ø)

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.


ERROR: <urlopen error [Errno 1] Operation not permitted>

Received the following error when running speedtest-cli:
Retrieving speedtest.net configuration...
Cannot retrieve speedtest configuration
ERROR: <urlopen error [Errno 1] Operation not permitted>

When running with the --secure option, there was no issue.
Per https://github.com/sivel/speedtest-cli/issues/572, it seems --secure will be the default behavior in v2.2.0, but I figured I'd still let you know.
(Tested on macOS v10.13.6 using Python v2.7.10 and speedtest-cli v2.1.1)

I get same error when running the script behind the proxy:

Retrieving speedtest.net configuration...
Cannot retrieve speedtest configuration
ERROR: <urlopen error EOF occurred in violation of protocol (_ssl.c:590)>

The older version used to work with proxy.

@dmarcucci I did run without the secure option and I am able to get it work. Even I tried to remove the secure option in the speedtestcall(speedtest.py). It did still work
(Tested on MACOS v10.14 using python v2.7.16 and speedtest-cli v 2.1.1)

Mac OS
vi /usr/local/bin/speedtest-cli and /usr/local/bin/speedtest
add
import ssl
ssl._create_default_https_context = ssl._create_unverified_context

save


T10.01-Exercises-IntentServices

There is a different of the method name from the TODOs, when i believe they refer to the same method

TODO (6) Create a public static void method called executeTask

TODO (13) Call ReminderTasks.executeTaskForTag and pass in the action to be performed

Created a pull request https://github.com/udacity/ud851-Exercises/pull/190

Fixed.


USDC Bridge documentation; explorer fixes; app-relative path resolution

This PR does several things; I apologize for failing to separate concerns but it all happened so fast, doctor
-My belated docs on the USDC Bridge
-Remove/replace all Blockscout links with Etherscan links
-I tweaked the settings of config.docusaurus.js in such a way that we no longer have to do specific relative paths (./../../../static/img/ur-fotoez-here.png); we can do app-relative paths:

--> images (/img/ur-fotoez-here.png),
--> articles (/use-linea/ur-artikul-here.md),
--> sections (/use-linea/ur-subseckshun-here/)

There will be a secondary part to that, which will be cleaning up the links which are unnecessarily specific now that we have this.
Disclaimer: Sometimes config works one way in local run and local build, and breaks in prod. We'll see how the tests go.

Yeah, it hates the links. OK. I'll work on this. We need a fix for this path issue.


Sentry ignores traces_sample_rate

How do you use Sentry?
Self-hosted/on-premise
Version
1.9.10
Steps to Reproduce
With following sentry configuration:
    SentryClient.client.init(
        dsn=settings["sentry_dsn"],
        integrations=[
            PyramidIntegration(),
        ],
        traces_sample_rate=float(settings["sentry_sample_rate"]),
        send_default_pii=True,
    )

Regardless of what value we put in traces_sample_rate in range from 0.0 to 1.0, we still get the same amount of transactions in our self-hosted Sentry instance.
Expected Result
The number of transactions to drop
Actual Result
The number of transactions doesn't change

Hey @PAKalucki
Thanks for reporting this!
Could you tests if this is also happening if you upgrade to the newest version of the Sentry SDK?


Add Race Information Fields

Added:

avg speed winner
avg temperature
start time
race category

Also:
If a bonus is over 60 seconds this is displayed in time format and not int
See evenpoel in the vuelta: https://www.procyclingstats.com/race/vuelta-a-espana/2023/stage-20-gc

Thanks for help! Merged. I changed return types of temperature and winner speed to float/None and I also changed bonus time formatting to H:MM:SS.


TestLoader's support for custom paths

Currently the code assumes hardcoded "test" folders and splits.
Support for custom paths will make it possible to easily test on separate volumes of seismic data.

Discussed - this should go as a PR directly into the staging branch of the main repo.
TODO: please add a regression test to make sure that when your optional parameters are turned off the original script still produces the same result before you added the optional parameters.

Pull request successfully merged and closed
https://github.com/microsoft/seismic-deeplearning/pull/196


Automated cherry pick of #3301: fix: 修复华为云ucloud安全组同步问题

Cherry pick of #3301 on release/2.12.
#3301: fix: 修复华为云ucloud安全组同步问题

Codecov Report

:exclamation: No coverage uploaded for pull request base (release/2.12@f2e801a). Click here to learn what that means.
The diff coverage is 0%.

@@              Coverage Diff               @@
##             release/2.12   #3302   +/-   ##
==============================================
  Coverage                ?   7.32%
==============================================
  Files                   ?     490
  Lines                   ?   78960
  Branches                ?       0
==============================================
  Hits                    ?    5780
  Misses                  ?   72693
  Partials                ?     487

Flag
Coverage Δ

#aFlag
7.32% <0%> (?)

Impacted Files
Coverage Δ

pkg/multicloud/ucloud/securitygroup.go
0% <0%> (ø)

Continue to review full report at Codecov.

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

/lgtm

/approve


Hurricane Katrina text

Hurricane Katrina text, in the US, is too big for the frame.

Not able to confirm... closing issue


[CELEBORN-1436][FOLLOWUP] Fix REST API endpoint of decommissioning in decommissioning.md

What changes were proposed in this pull request?
Fix REST API endpoint of decommissioning in decommissioning.md.
Why are the changes needed?
/sendWorkerEvent and /exit have already migrated to /api/v1/workers/events and /api/v1/workers/exit. Meanwhile, the monitoring.md has migrated to webapi.md. Therefore, the REST API endpoint of decommissioning in decommissioning.md should also be migrated.
Does this PR introduce any user-facing change?
No.
How was this patch tested?
No.

Ping @turboFei, @RexXiong.

Merged to main for 0.6


Add Support Ticket functionality

Similar to the iOS support ticket functionality

@kngako Some changes needed (screen attached as reference):

Make Problem EditText taller and multiline as on iOS (keeping layout design as similar as possible)
Implement the GET /logs endpoint to relay to get last logs from server and show them below the problem EditText with similar format as on iOS
Add the "Copy Logs" button and make buttons style similar to iOS

GET /logs
Response:
{
    success: true,
    response: logs
}

Should the logs be automatically included in the email or the user is required to paste them into the EditText?

@kngako  Logs are automatically included in Email body if they are present in the view (request to get logs could have failed)
https://github.com/stakwork/sphinx-ios/blob/0aa456c8ef74ac432cdae58777b4092909cfe99a/sphinx/Scenes/Left Menu/SupportViewController.swift#L83
But on iOS we are not automatically sending the email but opening the Email app with To email and body filled. So user can always delete the logs from the email body. I'm not sure if we can do something similar on android. If not let's discuss the options we have.


FTP Upload task v2 fails with 550 The directory is not empty.

FTP Upload task fails with an "Access Denied" error when release the contents of an Azure Web Site Using FTP. This always happens when i push Code From VS got error during release.
But when i manually click after release Failed on  Deploy release successfully deploy on Azure App Service.
I am using SelfHosted Agent in private Azure VM and Azure App Service is also on VN And Private Endpoint.
VM & Azure Service App both on Same Private Virtual Network.

using .Net Core Enviroment.

Hi @Hasnni, thank you for reporting!
Could you provide some additional information:

Full pipeline logs in debug mode. This can be done using the following documentation - https://docs.microsoft.com/en-us/azure/devops/pipelines/troubleshooting/review-logs?view=azure-devops
Agent diagnostic logs
As I see in the logs provided, the FTP server sends that the remote directory may contain hidden files - https://forums.techguy.org/threads/ftp-error-550-cannot-remove-directory-directory-not-empty.673692
http://knowledge.3essentials.com/web-hosting/article/1092/FTP-error----550-The-directory-is-not-empty.html
Could you check if the directory contains hidden files?

If you are concerned about security, you can send the logs to my email<EMAIL_ADDRESS>Thank you

@KonstantinTyukalov  i sent you file in email few days ago i hope you managed time to see it.

@Hasnni thank you, I emailed back, please check

@KonstantinTyukalov  Thank you so much i got your email and send back to you all logs files which is required to you.
Thank you so much for helping

Hi @KonstantinTyukalov
i sent you again all requested logs files per email around start of august, i am wondering if you manage time to see them because i am still struggling with this issue, i also read some where that we can't do automate via FTP Upload.


Run a command when changing desktops

JWM <IP_ADDRESS>
Background type="image" does not work in conjunction with Background type="command"
<Background type="image"> this tag his not working wen we also use the command tag</Background>
<Desktop>
    <Background type="command">notify-send "Desktop 1"</Background></Desktop>
   <Desktop>
    <Background type="command">notify-send "Desktop 2"</Background></Desktop>
   <Desktop>
    <Background type="command">notify-send  "Desktop 3"</Background></Desktop>
   <Desktop>
    <Background type="command">notify-send "Desktop 4"</Background></Desktop>

I think a best approach will be?
<Background type="image">/home/username/Videos/jwmwalpaper.png</Background>

<Desktop><Command>notify-send "Desktop 1" </Command></Desktop>
 <Desktop>
    <Command>notify-send "Desktop 2" </Command><
    <Background type="image">override background tag on the top for desktop 2</Background>
</Desktop>
   <Desktop>
       <Command>notify-send  "Desktop 3" </Command>
       <Background type="image">override background tag on the top for desktop 3</Background>
    </Desktop>
   <Desktop><Command>notify-send "Desktop 4" </Command>/Desktop>

I believe this is working as designed. The outside "Background" tag is a default and JWM expects the command to set the background, so it won't set the background to the default if it runs a command to do so.  I could see wanting a command to run when JWM switches the desktop, but as you mention, that would be a new feature.

Is Command run every time that desktop is switched to?  If so, that's pretty simple; just run a script that uses some-tool ( ... there are too many to mention) to set the background then notify-send.  Jwm seems to start much faster and use less resources with no background or just solid colors anyhow (my Xvesa + jwm initramfs uses only ~2mb combined)

the command tag his one of the most useful tags in jwm a allows me to start an kill applications just by switching desktop or even systemd services i could write a scrip to do all that and set the desktop background that's not an issue.
what i mean is the tag itself could be more descriptive all it does his running command from the shell
and  suggest even from the documentation (A command to be run for setting the background) .
I get what the tag does you guys get it too, but how about some guy messing with the configuration that only knows XML i just tink it could have some improvements here syntax wise?

@vmnlopes Many people don't like mixing csv with their xml
My jwm tools use a flat config file with csv and convert it to xml.

@technosaurus  i guess it goes down to personal preference .

The background tag works just fine to run scripts, closing this issue


Scroll "Stick To End": PR Proposal

Is your feature request related to a problem? Please describe.
I want to be able to set the scroll direction as up for UIs where content enters from the bottom such as log scrollers, terminals and spectographs etc.
Describe the solution you'd like
I will attempt a PR that allows the ScrollArea to have a scroll_direction attribute. This will basically inverse a few assumption in ScrollArea (maybe more I haven't investigated the blast area)
Describe alternatives you've considered
Reframing my problem to have a different UI or ditching Egui (which I don't want to do)
Additional context
I can write code so how hard can it be (haha)
@emilk anything I may need to know before diving in and giving this a whirl?

Sounds to me like what you want is a feature where if the scroll area is scrolled all the way to the bottom, it should stay scrolled to the very bottom the next frame too, even if there is more content there now (e.g. more log lines has arrived).
If the scroll is not at the bottom, it should stay (the user has scrolled up in the log to read something old).
Does that cover it?
If so I would suggest adding something like a stick_to_bottom boolean for this setting. "Reverse scroll direction" sounds like something completely different to my ears.

Ok maybe stick_to_bottom_right: [bool; 2] to cover the horizontal scroll case too. I'll try this route thanks!

PR here https://github.com/emilk/egui/pull/765

I need something like this for my egui log backend that I started hacking together today

:+1: