text:
Add highlight and typo-tolerance to the search

Hello,
Thanks for building react-parts, this is a really useful tool for me. I think the search results can still be improved, by adding highlight on the matching words and auto-fixing typos (among other things).
I took the liberty of forking the code and replace the json-based search with one using Algolia (which is a SaaS search engine, with the above features built-in). Full disclosure: I work at Algolia. Here is what it looks like:

You can test it live here (this is hosted on an heroku free plan, so first load might be slow).
Tell me if this is something you would be interested in. If so, I'll submit a PR. We're used to giving custom and free accounts to open-source projects as a way of contributing back, so this won't cost you anything. I did those changes a few weeks ago so I did not (yet) include the latest changes to the UI you did, but I'll happily merge them back.
Looking forward to hear from you, and see if we can build something together.

Hello @pixelastic,
First of all thank you for using react.parts and for taking the time to contribute. I would also like to thank Algolia for supporting open source projects :+1: Although I don't find myself needing the counters or the highlighting, the fuzzy matching is definitely a big improvement.
My only concern right now is that we only deploy whenever we add new features. The data files are simply uploaded via scp to the servers. Can you show us your fork to understand how you're doing the indexing? Thank you again for your contribution!

Sure thing.
The code responsible for pushing data to the index is here : https://github.com/algolia/react-parts/blob/feature/algolia-search/algolia.js
It basically reads the ./components/react-web.json and ./components/react-native-ios.json json files and push its content to the Algolia indices (pushing all ranking-relative settings with it). To keep your search index in sync, you'll have to re-run this script everytime you update the list of plugins (I guess this will replace the scp command).
(Don't pay attention to the multiple commits in the repo, I'll rebase/squash that properly later).

I personally like what i see in the PR. I hadn't tried Algolia in the past, but it seems pretty sweet, specially the part of not having to worry about maintaining an ElasticSearch / Solr instance, and the API is indeed friendly. :+1:

Hey again @pixelastic,
First of all, I'm sorry you had to do all those fixes to fetch.js. I did them too a long time ago but only consolidated and pushed them recently.
I like how the details related to the Algolia API are isolated in a single file. One thing I didn't understand in the new algolia.js script is that you push the components/react-*.json files instead of the data/react-*.json ones (that contain the metadata, such as stars).
Another thing I noticed (probably an easy fix) is with the pagination: Try to visit /web and go to "Next page". Now refresh the page. The results are not the same. One thing I usually do to make sure our server-side pagination works the same way as the client is to disable JavaScript in the browser.
To clarify why we have both the components and data files, I'm writing a readme with information about our current process (and also about our deployment strategy).
Thank you again! We really appreciate you taking the time to make React.parts better :+1:

I must confess I did not completely understood the difference between the components and data directories, so I might have copy-pasted the consolidated files (with metadata) inside the components directory and used that.
The fixes I did to the fetch.js file were mostly due to my account using two factor-authentication. In the end I disabled the 2FA before running the script and re-enabled it after :). If you did fix it on upstream I'll use your fixed version instead.
I'm glad you find this useful. I'll fix the issue you mentioned and squash/rebase all that soon. Thanks for making React.parts in the first place :)
If you want to see how it will look like from your Algolia dashboard, just create a free account and I'll give you ownership on the indices.

Thank you, we'll create an Algolia account later today :+1:
I hope the new readme will clarify why we keep the two separate folders. Your experience also reminded me that we should explain there how one can create a "Personal Access Token" in GitHub and use it as the username (with a blank password) to be granted limited read access.
We would love if you could send a simple PR with only the script and search functionality. The new release as a narrower footer, but we can add the Algolia logo to it with a link right after your PR, if you prefer. We can also add the highlighting, counters and visual changes afterwords. Let me know if that works for you!

That's perfect, I'll work on the fix/merge right now.

Until the readme is published, could help me with the order of the npm run commands?
Here is what I did:
npm run download:all
npm run parse
cp ./components/react-native.json ./data
cp ./components/react-web.json ./data
npm run fetch react-native
npm run fetch react-web

I tried the npm run fetch:all commands, but they did nothing, or complained that no json file were found in ./data. Am I on the right track here?

Generating the data/react-*.json files using the components/react-*.json files should be possible by running npm run fetch:all. But I just checked, and you are right, there is an issue if the files don't exist yet. Until the issue is fixed, you can:

Download react-web.json to data/react-web.json and react-native.json to data/react-native.json
Create empty json files with [] named data/react-web.json and data/react-native.json and then run npm run fetch:all

I'm sorry you are having this problem, and thanks for reporting it!

No problem, I figured this out. Thanks

Hello @pixelastic, our free Algolia account is associated to this address: developer@react.parts
There's now a readme.md in the master branch and the bug you reported yesterday should also be fixed. Hope this helps!

@dmfrancisco Great, I've upgraded your account to a free one with unlimited operations. Thanks for the readme, it will make things clearer for other contributors.

This is awesome, and it comes at a good time because we really needeed a solution that scales for more than 2k components.
I'll update the publish script to run algolia and add the logo to the footer. I'm still not a fan of the highlighting. I find it too distracting and think it may be a little confusing when a record doesn't have any highlights (when what gets matched is a keyword). I also would prefer if the pagination started at 1 instead of 0. But I can make those minor changes myself.
So if you don't mind @pixelastic, I fetched and pushed your feature branch and will make those changes instead of merging the PR directly. We'll keep this PR open for now and will notify you as soon we deploy. Does that work for you?

Sure, feel free to tweak it as much as you'd like.
Regarding the highlight, maybe something acting directly on the text color instead of the background?

The highlight is interesting to give the user instant feedback on what he's searching, and letting him adjust his query while typing. Maybe it will become more useful when the dataset will grow. In the end, I'll let you test it and do what you think is best :)
If you could just add a link to our website on the Algolia logo that would be awesome. Keep me informed when this will be deployed :)

Everything seems to be working smoothly! I made some changes to the script, in order to have an index sorted by modified, to be used for the initial unfiltered list. Algolia's slave indices feature is really cool. I also added a dev index to allow us to experiment without affecting the production data.
You can check Algolia's logo here: https://new.react.parts
Again, thanks for making this possible :+1:
We'll make this available to the community within the next couple of days.

Happy to see that you started playing with it! Also, thanks for the logo, that's perfect.
Just a note though, be careful with your ranking formula. I saw that you moved the custom criterion in the second position. This criterion can only ever be the last of the list (meaning that all others -words, proximity, attribute and exact) will never be used. I think that is too aggressive and might not yield the most relevant results.

exact is used for the typotolerance, this will rank results with no typos higher than the one with typos
attribute will use the list of attributesToIndex you defined, giving more weight to the one on top. This lets you rank results with a match in name higher than the one with a match in author for example
words is used for multiple word queries: results that match several words will be ranked higher than those that only match one
proximity is used on multiple word queries as well. When searching for audio player, results that have audio player exactly will be ranked higher than the one that have audio foo bar bar foo player.

Disabling all those criteria will significantly impact the relevance of the search. I'd recommend reverting to the default (which is the good choice in 90% of cases). What was the use-case you were trying to solve? I'd be happy to help you with the configuration

Hey @pixelastic! Thank you for looking at the changes. I haven't made a lot of testing yet, but it seemed to me that the default ranking was not giving enough relevance to the stars. In theory it seems to me that:

Exact matches must be ranked higher than partial matches
We should give relevance to stars and downloads
The number of occurrences of a word or position (eg: in one record calendar appears 3 times in description and keywords but in another record only appears once) is less relevant (in my opinion, usually not relevant at all, and that's the main difference compared to searching text in other sites)

So after trying it out a little bit it seemed that:

Putting custom_ranking first was a bad idea (eg: Searching for "card" shows react-native-carousel at first because it has more stars). This meant the default typos as first is preferable
Putting custom_ranking second did better results, with matches with fewer typos on top sorted by stars and downloads

Here are some examples, left is default and right is with custom_ranking as second place:

Oh, I see. Thanks for the screenshots, this makes understanding the issue much easier.
We handle the exact criterion a bit differently when you have only one word in the query. In that case, if a record contains an attribute that is (or an array that contains) exactly what is typed, then this record is ranked higher. In your example, you have all the records that contains video in keywords ranked first (exact match, ordered by stars), then all the one that did not get an exact match (because video was found in the name or description`), also ordered by star.
To fix that, you can either remove the exact criterion from your ranking formula. I would not recommend it, this will negatively impact the relevance in other use-cases. Instead, we have an undocumented attribute that you can pass to your request to disable the exact criterion when there is only one word.
Just add to the searchConfig in get-search-results.js (don't forget to revert your ranking formula to the defaults if you do that):
var searchConfig = {
  [...]
  useQueryEqualsOneAttributeInRanking: 0
};

This should get you the same results as in your screenshots.

Thank you @pixelastic, that makes sense :+1: I just pushed this change.
One last thing: I've noticed that the search API fetches at most 1000 hits, which is more than enough for searches. However, when the user is not searching, she should have access to the entire catalog. I tried to use the browse method, but a cursor must be passed, which means if a user comes from an url (eg: /web?page=60) this wouldn't work. Since this is a fairly uncommon use-case, and the data doesn't weight that much, I ended up doing a browseAll and then slicing the data on the client (or node server) on those cases. But let me know if you have any suggestion.
And that's it, thank you again! We'll deploy this weekend :tada:

Sorry I was a bit late to answer that one. As you said, the search method is limited to 1000 records, because that's enough for a search response. Nobody will skim through 1000 records manually if they have a search available to narrow down their terms. On the other hand, the browse method is here to let you navigate in your index (maybe for backup, stats, etc).
I think the solution you came up with is the right one. Your index is not that big, and I don't see why someone would request the 60th page anyway, so you're pretty safe.

Thank you for your response!
Regarding the Algolia JS Client, I may have missed something, but it was not obvious when I read the docs that the page param would only work in the browse method (not browseAll) for the first 1000 records. The example also uses content.nbPages which seemed to always be undefined. The docs make it seem that the options and response are the same as the search method, but they don't seem to be (above the 1000 records). Let me know if I should open an issue!

Oh, thanks. I'll rewrite the documentation to make that more obvious then. We'd like our documentation to be the clearest possible.

Hello again @pixelastic! We've been working a new project that has a more robust backend and that supersedes React.parts. It has been online for 2 weeks but only yesterday we open sourced the code.
Is Algolia still interested in sponsoring this new project? We would love to use your search engine! If you don't mind, we would reuse this account you gave us.

Sure thing. As long as it stays non-profit and you keep our logo somewhere, we're ok :)
Good luck with the new project, and don't hesitate if you need any help.

Sure :smiley: Thank you Tim!

authors: dmfrancisco fbatista pixelastic

repo: madebyform/react-parts


text:
golang.bbclass: Parse PARALLEL_MAKE

Fixes compilation with PARALLEL_MAKE = "-j N -l N". Derived from
waf.bbclass of OE-Core.
Signed-off-by: Andreas Oberritter obi@opendreambox.org

Thanks!

source: gharchive/pull-request

authors: madisongh mtdcr

repo: madisongh/meta-golang

license: mit

license_type: permissive

license_source: bigquery


text:
feat: add "fileResolve" option for deep import resolving

Good day!
I wanted to use the resolve option in order to resolve files from the compose: import. Unfortunately this option only gives me the possibility to resolve the "first layer" of composes.
Consider the following setup:
// a.css
.a {
  composes: b from "./b.css";
}

// b.css
.b {
  composes: c from "./c.css";
}

// c.css
.c {
  content: 'c';
}

In this setup the a.css file is my entry point. The resolve function will only be fired for the composes: b from "./b.css" statement. The "deeper" import inside b.css is completely opaque.
For this usecase I've implemented the fileResolve option in a non-breaking manner. This function will be called for all composes statements no matter how deep they are.

It receives two arguments file and importer, both of which are strings. The file is essentially the part between the brackets after the from keyword (same as the first argument of the resolve option). The importer is the file from which this compose statements comes from.
It has to return string | null or a Promise<string | null>. The returned string has to be an absolute path. If null is returned the default resultion takes place.

I haven't done that, but with this change I would propose to deprecate the current resolve option, because the new fileResolve
option is a bit more powerful, still straight forward to use and can still do the same thing as the resolve function.
The README would also need an update, but I would do that after I the feedback from this PR.
Fixes: #131

@KingSora thanks for the PR, I really appreciate your contribution. I have no time to implement features myself now, so this is a huge help for me.
I’ll review the PR in a few days.

@madyankin looking forward for the review! I've also created another PR which should fix sourcemaps #143

@madyankin just a little reminder :)

@KingSora thanks for pinging me. I have a todo in my Things, but now I'm relocating to another country, so a bit overwhelmed. Will have some time for the review next week

@madyankin please leave it open. I'll come back to it as soon as possible (next week possibly) I just need to finish an different project first

@KingSora don't worry — I have merged it and fixed the things I asked. Thank you for the implementation!
I'm going to release the new version after merging #143 — there are some failing tests. Could you take a look please?

@madyankin on it

authors: KingSora madyankin

repo: madyankin/postcss-modules

license: MIT

license_source: github-api


text:
PR for including the original line in the Error

Operating System: WSL
Node Version: 15.8
NPM Version: 7.5.1
csv-parser Version: 3.0.0

Expected Behavior / Situation
CSV is arguably one of the most untrusted file formats passing through the network stack. Parsing errors are common. The error object should include the actual row so that the parser logic can do something with it (write to a file for the user download, so they can see which lines went south)
Actual Behavior / Situation
At the moment, the error object returned by csv-parser does not include the original row.
Modification Proposal
162     if (!skip && this.options.strict && cells.length !== this.headers.length) {
163       const e = new RangeError('Row length does not match headers')
164       e.cells = cells;
165       this.emit('error', e)
166     } else {
167       if (!skip) this.writeRow(cells)
168     }

Hi, could you provide exact use case for exposing cells? Maybe provide more descriptive error message with line?

Hello, I'm intending to create an output file of all the lines I rejected through the parsing operation. Including the csv-parser pipe.
My pipeline looks something like this:
readstream,
csvParserToGiveMeNiceJsonAfterSomeHeaderManipulationAndFiltering,
on.error,
aTransformationToValidateReturnedJsonSchemaWithJoiThatMightDoAsyncLater
on.error
on.data
writeToSQLfile

So, in the end, I should have an SQL importable file. I was also going to suggest including the original cells in the returned JSON as well. This could also be valuable for certain use cases (when filtering the columns through mapHeaders.
I do understand there are benchmarks to keep up with it, so if it's beyond the scope of the csv-parser, I can fork and publish a package for my personal use case.
  writeRow (cells) {
    ...
    row._cells = cells
    this.push(row)
  }

@TrySound We would really profit from this "feature" too - our use case:
We have a file with around 15'000 lines. It is provided by a third party. Then sometimes our customer tells us that our app is broken because the import doens't work. In reality there's one line in the imported file that makes the import fail. Finding this line is virtually impossible.
This is why we'd love to know what line failed!
Thanks for providing this great library. :)

This is not resolved?

source: gharchive/issue

authors: LiamKarlMitchell TrySound basaran sandrooco

repo: mafintosh/csv-parser


text:
[BUG] Options in Firefox are not saved

When changes an option in Firefox this is not saved, I don't know if it's so in chrome

uninstall translate-man extension and reinstall

authors: cloudIC tejonaco

repo: magic-FE/translate-man


text:
Crash: dyld: dyld cache load error: shared cache file open() failed dyld: Symbol not found

Issue Description
After adding the MagicSDK pod and run the app, the application gets crashes with the bellow crash log. This crash happens with the latest versions 2.2.1 and 2.2.0.
Crash Log
dyld: dyld cache load error: shared cache file open() failed
dyld: Symbol not found: __ZN5swift34swift50override_conformsToProtocolEPKNS_14TargetMetadataINS_9InProcessEEEPKNS_24TargetProtocolDescriptorIS1_EEPFPKNS_18TargetWitnessTableIS1_EES4_S8_E
  Referenced from: /Users/appdeveloper/Library/Developer/CoreSimulator/Devices/3AB65244-F53C-475D-8857-8F150635EE78/data/Containers/Bundle/Application/2DC78AB9-B909-4533-9D67-D3DAA9A51350/MagicSDK-Demo.app/Frameworks/MagicSDK.framework/MagicSDK
  Expected in: /Users/appdeveloper/Library/Developer/CoreSimulator/Devices/3AB65244-F53C-475D-8857-8F150635EE78/data/Containers/Bundle/Application/2DC78AB9-B909-4533-9D67-D3DAA9A51350/MagicSDK-Demo.app/Frameworks/PromiseKit.framework/PromiseKit
 in /Users/appdeveloper/Library/Developer/CoreSimulator/Devices/3AB65244-F53C-475D-8857-8F150635EE78/data/Containers/Bundle/Application/2DC78AB9-B909-4533-9D67-D3DAA9A51350/MagicSDK-Demo.app/Frameworks/MagicSDK.framework/MagicSDK
dyld: launch, loading dependent libraries

Podfile
target 'MagicSDK-Demo' do
  # Comment the next line if you don't want to use dynamic frameworks
  use_frameworks!

  # Pods for MagicSDK-Demo
  pod 'MagicSDK'

  # Required for XCFramework
  post_install do |installer|
    installer.pods_project.targets.each do |target|
      target.build_configurations.each do |config|
        config.build_settings['BUILD_LIBRARY_FOR_DISTRIBUTION'] = 'YES'
      end
    end
  end
end

Environment
Xcode Version: 12.3 and 12.5
Swift Version: 5.3
Platform(s) running : iOS 14.3
macOS version running Xcode: intel - macOS Big Sur 11.1

Hi @kishanraja, I tried to reproduce it, but I'm not able to.
Could you try to do shift+k to clear the cache and reinstall the pods? Plz let me know if the error persists. 😄

Hello, @Ethella Thanks for looking at this.
I have tried this many times and create a new 2 - 3 fresh project but not solved. I just install the pod and run the app.
Here I attached a demo project link that might be helpful: https://github.com/kishanraja/MagicDemo.git
For now, I'm using the old version of SDK (v2.1.2) but it will also give us an error during the send transaction process
: Magic-SDK Error: DecodingError.typeMismatch(Swift.Int, Swift.DecodingError.Context(codingPath: [CodingKeys(stringValue: "response", intValue: nil), CodingKeys(stringValue: "error", intValue: nil), CodingKeys(stringValue: "code", intValue: nil)], debugDescription: "Expected to decode Int but found a number instead.", underlyingError: nil)) (code 4864)
let me know if you need more info.
Thank you.

Taking a look right at your repo now.
For the decoding issue, we are currently working on it.

@kishanraja I tried a couple of times to reproduce it but it still comes with no luck. And I also try to find relevant issues on the internet and I found no positive results.
Unfortunately, I guess I'll have to punt this issue and see if anyone else has encountered the same issue and fill in more context to help triage it.

@Ethella  Thank you for checking this. I will try my side to find more context and will update you. If possible can you please sare the environment like build architectures and Xcode version etc. so I can try to run the project on that environment. Or is there any external setting required for the build settings?

@Ethella Thank you for checking this. I will try my side to find more context and will update you. If possible can you please sare the environment like build architectures and Xcode version etc. so I can try to run the project on that environment. Or is there any external setting required for the build settings?

There's no more external configuration or build architectures required other than the ones listed in the doc.
Pod 1.10.1
Xcode 12.5 (12E262)
Big Sur 11.4

swiftc -version
Apple Swift version 5.4 (swiftlang-1205.0.26.9 clang-1205.0.19.55)
Target: x86_64-apple-darwin20.5.0

Thanks, @Ethella.  Your information helped me. After updating Xcode from 12.3 to Xcode 12.5.1, it works fine.

Thanks, @Ethella. Your information helped me. After updating Xcode from 12.3 to Xcode 12.5.1, it works fine.

Glad it helps! 😄

authors: Ethella kishanraja

repo: magiclabs/magic-ios-pod


text:
extract snippets h5 - improvements needed

There are a few ways in which the crucial extract snippets processing step needs improvement:

Extract snippets is a potentially-time-consuming preprocessing step for many of the sortingview tasks (waveforms, clusters, metrics, spike amplitudes). Many of these are launched in parallel. What we don't want is to launch the same extract-snippets step in parallel. In a previous version of labbox-ephys, a singleton extract snippets step was run first on opening of sortingview (and the GUI was grayed out) -- but that was removed as part of a simplifying/refactoring effort. I think we'll need to reimplement that, but perhaps in a smarter way. After all, some processing does not require this, and it would be a shame to block the GUI for those operations if extract-snippets is time consuming.

Ideally, we should pre-compute the extract-snippets step prior to opening the GUI as part of the recording/sorting import stage.

Some tasks require all events (e.g., spike amplitudes), while others should use a random subsampling of events (e.g., avg waveforms). For the former we could get away with very short snippets to save compute time/disk space. I think we'll want to extract at least two snippets .h5 file, one with shorter snippets and all events, and the second with longer snippets and a subsampling of events. Perhaps a third as well, longer snippets and all events. Of course we'll want to figure out reasonable parameters for subsampling and short/long snippet lengths.

Regarding (1), I restored the functionality where it pre-computes extract-snippets-h5 and blocks the GUI. This requires backend >=0.2.20. I deployed the front-end to this staging URL so as not to break existing deploy: https://sortingview-magland-spikeforest.vercel.app
But as soon as you have the 0.2.20 backend up, I will move this to prod.

Regarding (2), this is the code you'll want to use prior to opening gui (untested):
from sortingview.tasks.preload_extract_snippets import task_preload_extract_snippets

recording = # the labbox ephys recording extractor
sorting = # the labbox ephys sorting extractor
workspace = # the sortingview workspace
snippet_len = workspace.snippet_len # the snippet len associated with the workspace

# This should pre-compute the extract snippets so it won't block the sortingview GUI
snippets_h5_uri = task_preload_extract_snippets(
    recording_object=recording.object(),
    sorting_object=sorting.object(),
    snippet_len=snippet_len
)

@magland I think precomputing makes a great deal of sense, and we could do that pre-computation when we create the workspace, which would be fine. My only concern is disk space / cleanup, as we're close to running out of space at the moment, so ... is right to think that the snippets are also stored in the recording file (currently NWB; hopefully your higher efficiency version once we get back to trying it)?

Also, where would snippets_h5_uri be used?

@magland We have updated sortingview and are running backend version 0.2.20 now.

@lfrank.

Also, where would snippets_h5_uri be used?

Doesn't need to be used anywhere. That's just for info. The important thing is that the task was precomputed.
Regarding disk space, I have some opinions and plans about it - perhaps we can discuss in a call.

@magland @lfrank Just regenerated a workspace and tried opening it with the new sortingview backend. It precomputed the snippets before activating the GUI. This was pretty fast; took < 3 min for a 4-channel, 90 min recording. The visualization widgets were reasonably fast as well - timeseries view was probably the slowest. Check out the workspace here.

Actually there still seems to be some instabilities - the backend crashed with the following message when I tried to open up a lot of widgets at once
Traceback (most recent call last):
  File "/home/kacheryuser/miniconda3/envs/kachery-env/bin/sortingview-start-backend", line 6, in <module>
    sortingview.start_backend_cli()
  File "/home/kacheryuser/miniconda3/envs/kachery-env/lib/python3.8/site-packages/click/core.py", line 1137, in
__call__
    return self.main(*args, **kwargs)
  File "/home/kacheryuser/miniconda3/envs/kachery-env/lib/python3.8/site-packages/click/core.py", line 1062, in
main
    rv = self.invoke(ctx)
  File "/home/kacheryuser/miniconda3/envs/kachery-env/lib/python3.8/site-packages/click/core.py", line 1404, in
invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/kacheryuser/miniconda3/envs/kachery-env/lib/python3.8/site-packages/click/core.py", line 763, in i
nvoke
    return __callback(*args, **kwargs)
  File "/home/kacheryuser/miniconda3/envs/kachery-env/lib/python3.8/site-packages/sortingview/backend/start_back
end_cli.py", line 8, in start_backend_cli
    start_backend(channel=channel)
  File "/home/kacheryuser/miniconda3/envs/kachery-env/lib/python3.8/site-packages/sortingview/backend/start_back
end.py", line 8, in start_backend
    kc.run_task_backend(
  File "/home/kacheryuser/miniconda3/envs/kachery-env/lib/python3.8/site-packages/kachery_client/task_backend/ru
n_task_backend.py", line 32, in run_task_backend
    B.process_events()
  File "/home/kacheryuser/miniconda3/envs/kachery-env/lib/python3.8/site-packages/kachery_client/task_backend/Ta
skBackend.py", line 47, in process_events
    self._task_job_manager.process_events()
  File "/home/kacheryuser/miniconda3/envs/kachery-env/lib/python3.8/site-packages/kachery_client/task_backend/Ta
skJobManager.py", line 50, in process_events
    requested_task.update_status(status=job.status, error_message=error_message, result=result)
  File "/home/kacheryuser/miniconda3/envs/kachery-env/lib/python3.8/site-packages/kachery_client/task_backend/Re
questedTask.py", line 35, in update_status
    _update_task_status(channel=self.registered_task_function.channel, task_id=self.task_id, task_function_id=se
lf._registered_task_function.task_function_id, task_hash=self.task_hash, task_function_type=self.task_function_t
ype, status=status, result=result, error_message=error_message)
  File "/home/kacheryuser/miniconda3/envs/kachery-env/lib/python3.8/site-packages/kachery_client/task_backend/_u
pdate_task_status.py", line 39, in _update_task_status
    raise Exception(f'Unable to update task status')
Exception: Unable to update task status
Cleaning up parallel job handler
Cleaning up parallel job handler
Cleaning up parallel job handler
Cleaning up parallel job handler
Cleaning up parallel job handler
Cleaning up parallel job handler
Cleaning up parallel job handler

I believe that crashing issue reported by Kyu has now been addressed.
But I'm keeping this issue open because there is still more work to do with regards to precomputing snippets h5.

authors: khl02007 lfrank magland

repo: magland/sortingview


text:
Game bar

@tomclose This PR looks good, but circleci is failing. Do you think that is related to this PR?

authors: kerzhner tomclose

repo: magmo/rps-poc


text:
Unable to build under 'buildserver'

When running the build through the buildserver docker container the following happens during the sbt clean test assembly step:
[info] Packaging /srv/src/target/scala-2.11/src-assembly-0.9.2-8-g73f221b.jar ...
[info] Done packaging.
[success] Total time: 5 s, completed Feb 13, 2017 9:12:47 AM
cp: missing destination file operand after '/srv/src/target/docker/vamp-runner.jar'
Try 'cp --help' for more information.

Relevant lines: https://github.com/magneticio/vamp-runner/blob/master/build.sh#L54-L60
function sbt_make {
    cd ${dir}
    echo "${green}building jar: ${yellow}sbt clean test assembly${reset}"
    sbt clean test assembly
    mkdir -p ${target_docker}
    cp $(find "${target}/scala-2.11" -name 'vamp-runner-assembly-*.jar' | sort | tail -1) ${target_docker}/vamp-runner.jar
}

Fixed under https://github.com/magneticio/vamp-runner/commit/b35f2ec10aaef5c9d5a18d5b95b9eaaea6ce5f74

repo: magneticio/vamp-runner


text:
createDirectory IllegalArgumentException

val root = currentFs.rootDirectory
root.createDirectory("KKkkk") //error
Hello, I can read directories and file lists when testing FAT32 devices; At the same time, files can be created, but directories cannot be created. Below is the error message
java.lang.IllegalArgumentException

Need the whole stacktrace

authors: magnusja wangshufu

repo: magnusja/libaums


text:
🛑 Webmail is down

In f03017e, Webmail (https://mahd.email) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Webmail is back up in e8cf61c after 4 hours, 31 minutes.

repo: mahd-dev/mahd-cloud-status


text:
Allow ssh access to mac from out with the office

Currently the macOS slave can only be accessed via ssh from within the office. That limits the ability to troubleshoot or monitor from home, e.g. out of hours.

Now done. No PR associated with this as all work was on the router and on the mac itself - moving straight to closed

repo: maidsafe/safe-build-infrastructure


text:
Use charset in case of header decoding

If a header was encoded it can be represented as multiple 'encoded-word's. For instance string Тест длинного дисплей нейма is encoded like
=?utf-8?b?0KLQtdGB0YIg0LTQu9C40L3QvdC+0LPQviDQtNC40YHQv9C70LXQuSDQvdC10LnQ?=\n =?utf-8?b?vNCw?=. So in this example the ending of the first encoded-word in the middle of one UTF8 character. The method mime_to_unicode treated two words separately so the decoding result was Тест длинного дисплей ней�МаА. The fix make a concatenation of 'encoded-word's with the same charset and convert only the whole string to unicode.

@horkhe Yes, when flanker encodes headers it doesn't comply with RFC but email providers works fine with such headers. The fix doesn't care if a header is encoded by RFC or not. It just does the best to decode encoding text. Of course encoding issue has to be fixed as well.

@veulkehc it would be nice to update CHANGELOG.md.

authors: horkhe veulkehc

repo: mailgun/flanker


text:
rubocop linter results

45 files inspected, 710 offenses detected

45 files inspected, 1034 offenses detected, 764 offenses corrected

repo: mailman/mailman


text:
Adding request headers

Hello,
I am using the mailosaurGetMessage method and would like to pass two request headers through - which will bypass the need for me to log in using my gmail to access our testing environment
Is there a way I can add this in?
Thanks

Hi, Do you still have this issue? It sounds like you're behind an authenticated proxy perhaps? Please get in touch with support@mailosaur.com so we can investigate further.

Hi, Do you still have this issue? It sounds like you're behind an authenticated proxy perhaps? Please get in touch with support@mailosaur.com so we can investigate further.

authors: andosaur boneysaju

repo: mailosaur/cypress-mailosaur


text:
NOISSUE - Fix bootstrap token naming and interfaces named args

Signed-off-by: Manuel Imperiale manuel.imperiale@gmail.com

Codecov Report

Merging #1117 into master will increase coverage by 0.92%.
The diff coverage is 85.05%.

@@            Coverage Diff             @@
##           master    #1117      +/-   ##
==========================================
+ Coverage   76.09%   77.01%   +0.92%
==========================================
  Files          96       95       -1
  Lines        6826     6713     -113
==========================================
- Hits         5194     5170      -24
+ Misses       1286     1197      -89
  Partials      346      346

Impacted Files
Coverage Δ

bootstrap/service.go
78.16% <73.52%> (-0.69%)
:arrow_down:

bootstrap/redis/producer/streams.go
88.50% <87.50%> (ø)

bootstrap/postgres/configs.go
70.10% <94.11%> (ø)

bootstrap/api/endpoint.go
100.00% <100.00%> (ø)

bootstrap/api/requests.go
96.07% <100.00%> (ø)

bootstrap/api/transport.go
93.66% <100.00%> (ø)

sdk/go/sdk.go
97.72% <0.00%> (-0.81%)
:arrow_down:

sdk/go/bootstrap.go

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 fbbf2c0...2678918. Read the comment docs.

authors: codecov-io manuio

repo: mainflux/mainflux


text:
NOISSUE - Linting with flake8

What does this do?
Removes existing errors in examples.py by Linting with flake8
Which issue(s) does this PR fix/relate to?
No
List any changes that modify/break current functionality
No
Have you included tests for your changes?
No
Did you document any new/modified functionality?
No

N/A

@0x6f736f646f CI is failing

@dusanb94 Corrected the CI pipeline. It now works across all platforms

repo: mainflux/sdk-py


text:
WIP: [maistra-2.6] Rebase CNI

Please provide a description of this PR:
This is the maistra 2.6 Rebase CNI PR which is following the previous 2.5 one.
ref: https://github.com/maistra/istio/pull/846
To help us figure out who should review this PR, please put an X in all the areas that this PR affects.

[ ] Ambient
[ ] Configuration Infrastructure
[ ] Docs
[ ] Installation
[ ] Networking
[ ] Performance and Scalability
[ ] Policies and Telemetry
[ ] Security
[ ] Test and Release
[ ] User Experience
[ ] Developer Infrastructure

Please check any characteristics that apply to this pull request.

[ ] Does not have any user-facing changes. This may include CLI changes, API changes, behavior changes, performance improvements, etc.

wait until merging https://github.com/maistra/istio/pull/997

/test maistra-istio-gencheck-2-6

/test maistra-istio-unit-2-6

/test integ-security-2-6

close this #999 and recreate a PR as #1005

repo: maistra/istio


text:
Barcode interleaved 2 of 5

Would be great to have support for barcodes of type interleaved 2 of 5 (ITF).

https://github.com/barnhill/barcodelib looks promising.

Did a basic implementation for the ITF-14 code. However I believe using the barcodelib package one could make a pretty generic support for quite a range of barcodes. Might better be placed in a new Issue thou.

I am open to using barcodelib for a larger range of barcodes.

authors: chripf majorsilence

repo: majorsilence/My-FyiReporting


text:
RX Example

Hey,
I'm pretty new with the HackRF and would love to learn how to understand the data I get delivered by the HackRF. At the moment, I took a Stream Reader but I don't know how to understand the data delivered.
You might can give an example what do to with the data?

Hackrf streams data captured from its' IQ demodulator. The data from stream is interpolated IQ samples in signed byte format. For example, first byte you get from stream is a first I sample, second byte is a first Q sample, third byte is a second I sample etc.
This project was made to be used in LabVIEW environment as .NET by itself is not the best framework for digital signal processing applications.  So, most of the signal processing examples are written in LabVIEW language
I planned to do some examples for .NET core 5, but I haven't got around to it yet.

`            int SampleCount = 10000;
var iStream = new MemoryStream();
var qStream = new MemoryStream();
        var iWriter = new BinaryWriter(iStream);
        var qWriter = new BinaryWriter(qStream);

        for (int i = 0; i < SampleCount; i++)
        {
            byte[] iq = new byte[2];
            reader.Read(iq, 0, iq.Length);
            iWriter.Write(iq[0]);
            qWriter.Write(iq[1]);

        }

        var iComponent = new RawSourceWaveStream(iStream, new WaveFormat(16000, 16, 1));
        var qComponent = new RawSourceWaveStream(qStream, new WaveFormat(16000, 16, 1));

        var waveProvider = new MultiplexingWaveProvider(new IWaveProvider[] { iComponent, qComponent }, 2);

        WaveFileWriter.CreateWaveFile("test.wav", waveProvider);

        iComponent.Dispose();
        qComponent.Dispose();

        iWriter.Dispose();
        qWriter.Dispose();`

So for example, I found a little bit code for an RTL-SDR, this would create an Wave File from the IQ data, or do I understand this wrong?

I haven't worked with NAudio but it looks fine to me. Accessing RX stream for getting only 2 elements at once can have some negative effect on CPU consumption, but I haven't tried it, maybe it's ok.
I have added an FM receiver example to the master branch. It's bulky unoptimized, but seems to be working.

Hi!
Thank you very much for the example. You might can tell me, where I can find how these filter work? Especially what the coefficients mean?

It's an equiripple FIR filter. https://www.recordingblogs.com/wiki/equiripple-filter . In general you can calculate coefficients for FIR filters by performing inverse FFT on desired frequency response table. Or you can use one of already calculated filters such as equiripple or kaiser-window filter and calculate coefficients using some formulas.

So how would you for example generate the Coefficients for a sample rate for 1.2Mhz in that example? I got already audio live played, but for that I need a less comsuption using decimation.
I know, that I need a faktor of 25 for that sample rate but sadly (when I take the function from the hackrf.js example lowPassTaps) I get different results.

static double[] coefs = {-0.000863, 	-0.000640, 	0.000513, 	0.003171, 	0.006720, 	0.009316, 	0.008373, 	0.001870, 	-0.009968, 	-0.023509, 	-0.031961, 	-0.027398, 	-0.004050, 	0.038474, 	0.093600, 	0.148922, 	0.189944, 	0.205088, 	0.189944, 	0.148922, 	0.093600, 	0.038474, 	-0.004050, 	-0.027398, 	-0.031961, 	-0.023509, 	-0.009968, 	0.001870, 	0.008373, 	0.009316, 	0.006720, 	0.003171, 	0.000513, 	-0.000640, 	-0.000863 };
Fs=1,2MHz, Fpass=80kHz, Fstop=180kHz, Attenuation=60dB.

You might have an email address where I can send you my project? I have translated some hackrf.js functions and don't really understand it, if you want. You don't have to :D

You may upload it to dropbox or onedrive. I'll see what I can do, but no promises.

license: Unlicense


text:
Request support for Cleverio AD100 dehumidifier

Log Message

Device matches ceres_plus_petfeeder with quality of 20%. DPS: {"updated_at": 1700149955.0310867, "2": "sleep", "12": 0, "101": true, "102": true, "103": false}

Information about DPS mappings

{
  "result": {
    "model": "{\"modelId\":\"000003usxf\",\"services\":[{\"actions\":[],\"code\":\"\",\"description\":\"\",\"events\":[],\"name\":\"默认服务\",\"properties\":[{\"abilityId\":2,\"accessMode\":\"rw\",\"code\":\"Mode\",\"description\":\"高效模式；睡眠模式\",\"extensions\":{\"iconName\":\"icon-dp_mode\",\"attribute\":\"4\"},\"name\":\"模式\",\"typeSpec\":{\"range\":[\"High\",\"sleep\"],\"type\":\"enum\",\"typeDefaultValue\":\"High\"}},{\"abilityId\":12,\"accessMode\":\"ro\",\"code\":\"fault\",\"description\":\"水满提示\",\"extensions\":{\"iconName\":\"icon-dp_warming\",\"scope\":\"fault\"},\"name\":\"故障告警\",\"typeSpec\":{\"label\":[\"fullwater\"],\"maxlen\":1,\"type\":\"bitmap\",\"typeDefaultValue\":0}},{\"abilityId\":101,\"accessMode\":\"rw\",\"code\":\"Purify\",\"description\":\"\",\"extensions\":{\"iconName\":\"icon-a_fan_auto\",\"attribute\":\"4\"},\"name\":\"净化\",\"typeSpec\":{\"type\":\"bool\",\"typeDefaultValue\":false}},{\"abilityId\":102,\"accessMode\":\"rw\",\"code\":\"dehum\",\"description\":\"\",\"extensions\":{\"iconName\":\"icon-dp_wet2\",\"attribute\":\"5\"},\"name\":\"除湿\",\"typeSpec\":{\"type\":\"bool\",\"typeDefaultValue\":false}},{\"abilityId\":103,\"accessMode\":\"ro\",\"code\":\"filterreplace\",\"description\":\"true:滤网更换提示\",\"name\":\"滤网更换\",\"typeSpec\":{\"type\":\"bool\",\"typeDefaultValue\":false}}]}]}"
  },
  "success": true,
  "t": 1700151103513,
  "tid": "d54d93b7849a11eea84192c59b34336d"
}

Product ID

jkscqnjueuczotho

Information about how the device functions

https://www.kjell.com/globalassets/mediaassets/851996_90231_manual_en_sv.pdf

@make-all Any chance to add energy usage sensor for this device? I could measure energy usage for all states:

standby,
with dehumidifier off + low speed,
with dehumidifier off + high speed,
with dehumidifier on + low speed,
with dehumidifier on + high speed).

repo: make-all/tuya-local


text:
v1.3.0の顔トラ方式に戻した方がいいかも

概要

首のヨー・ピッチ連成がsolve_pnp方式にしてからかえって悪くなった気がするので…
高解像度 ( #415 )をやる上で特徴点の検出精度のわりに動きが怪しくなっちゃってるので、せっかく点の精度が出るなら従来方式でもバチ当たらないんじゃないかな～と。

期待メリット

高解像度モードの動きがよくなる
計算速度がキープされるか、あるいはちょっとよくなる
OpenCVforUnityへの依存度が下がる

もしやる場合、 #415 のブランチでついでにやってしまう。

#440 で入ってます

repo: malaybaku/VMagicMirror


text:
colloquialSinceNow is broken again

#SwiftDate 4.1.7 colloquialSinceNow say that date is "tomorrow" when it is not
(lldb) po startTime.colloquialSinceNow()
▿ 2 elements

colloquial : "tomorrow"
▿ time : Optional

some : "Fri, Jul 21"

(lldb) po startTime
▿ 2017-07-21 10:00:00 am +0000

timeIntervalSinceReferenceDate : 522324000.0

(lldb) po Date()
▿ 2017-07-19 10:07:27 am +0000

timeIntervalSinceReferenceDate : 522151647.46755201

I don't know if this is related, but I'm also having trouble with colloquial dates.
For dates that are between now and an hour ago, the colloquial string used to be "xx minutes ago".  Now, I'm only getting "one hour ago" for all values.

@plm75 can you provide some examples?
I've tried with three intervals and it works fine:
let ago_now = try! Date().colloquialSinceNow().colloquial // just now
let ago_6_minutes = try! (Date() - 6.minute).colloquialSinceNow().colloquial // 6 minutes ago
let ago_45_minutes = try! (Date() - 45.minute).colloquialSinceNow().colloquial // 45 minutes ago

@RolandasRazma can you paste the code here? thx

I wonder if there is an error or not.

@malcommac
        let startTime = Date(timeIntervalSinceReferenceDate: 522324000.0)
        let nowTime = Date(timeIntervalSinceReferenceDate: 522151647.46755201)

        let (colloquial, _) = try! DateInRegion(absoluteDate: startTime).colloquial(toDate: DateInRegion(absoluteDate: nowTime))

        print(colloquial)

(lldb) po startTime
▿ 2017-07-21 10:00:00 +0000

timeIntervalSinceReferenceDate : 522324000.0

(lldb) po nowTime
▿ 2017-07-19 10:07:27 +0000

timeIntervalSinceReferenceDate : 522151647.46755201

(lldb) po colloquial
"tomorrow"

@malcommac
Sorry for the delay.  I've put together a test app that shows incorrect colloquial strings displayed.
Swift Date Test.zip

May the date crosses a day?

@malcommac
Hello, just to let you know that after a pod update, the version fetched is 4.1.7 and it looks like it solves the issue.
For reference, the version in the bug demo app is 4.1.2
Cheers!
ps: As far as I'm concerned this issue can be closed now.

Thank you @plm75. We have revisited that functions not so long ago so this explain all.
Have a nice day

authors: RolandasRazma alexsanderkhitev malcommac plm75

repo: malcommac/SwiftDate


text:
Loading external resources

I don't understand why does the distribution file loads a new file via http -
http://cdnjs.cloudflare.com/ajax/libs/jquery-mousewheel/3.1.13/jquery.mousewheel.min.js?_=1464197036975
Especially when some apps requires offline usage.
Is there a way to fix it, and instead just load jquery mousewheel from an assets folder into the minified file, or just an npm dependency?
Or, load it only if mousewheel is not already loaded, so Ill load jquery mousewheel separately.
And finally, can the NPM module have the minified files as well?
Great library nonetheless!

I'll probably add the jquery.mCustomScrollbar.concat.min.js in npm.
If you load jquery mousewheel before jquery.mCustomScrollbar.js, the mousewheel will not load.

authors: AmitMY malihu

repo: malihu/malihu-custom-scrollbar-plugin


text:
Use safe random instead of deprecated rand() function

The php function rand() is not quite safe and not even very random. This PR pulls in the polyfill paragonie/random_compat for the PHP7 function random_int() and uses this function for getting a random key.
This deprecates the seedRandom() method.

Could you please elaborate on the issues you had with rand()? Did you experience collisions? The token doesn't need any cryptographic properties.

Hi @malkusch. Thanks for your reply. We are in the process of migrating from MySQL named locks to Redis locking. We are not experiencing any issues yet, I'm just worried. The seedRandom() method requires me to investigate if we use fork based Apache, or thread based, etc. to be sure that the distribution will always works correctly in our set up. And it requires me to keep track of this method, if we ever were to switch http server.
Switching to random_int() would assure me that this distribution would always be uniform, irrespective of the underlying platform.

No you don't have to worry. That use case is safe. My comment on seeding is about the rare case were forking happens after the Lock object was created.  This might happen in some rare esotheric CLI scripts. As long as you don't have an actual issue, I'm not going to merge this PR. It brings accidential complexity without any benefit.

As long as you don't have an actual issue, I'm not going to merge this PR.

I'm 99% certain I was experiencing this issue.  It's pretty difficult to reproduce because it's random 😀 , but after seeding rand with random_int I stopped experiencing issues.  This was with 1-20 non-forking processes attempting to use the same lock.  As outlined in #9 the mutex regenerating the token every time it fails to acquire a locks seems to contribute to the likely hood of causing a collision.

authors: malkusch willemstuursma yuloh

repo: malkusch/lock


text:
Countdown组件value不会更新 [bug]

动态更新value值没有效果

https://github.com/mallfoundry/taroify/pull/208

authors: bingtsingw tgioer

repo: mallfoundry/taroify


text:
Update dependency hotkeys-js to v3.13.7

This PR contains the following updates:

Package
Type
Update
Change

hotkeys-js (source)
dependencies
minor
3.12.2 -> 3.13.7

[!WARNING]
Some dependencies could not be looked up. Check the warning logs for more information.

Release Notes

jaywcjlove/hotkeys-js (hotkeys-js)
v3.13.7
Compare Source

Documentation v3.13.7: https://raw.githack.com/jaywcjlove/hotkeys/116a4c6/index.html
Comparing Changes: https://github.com/jaywcjlove/hotkeys-js/compare/v3.13.7...v3.13.7
npm i hotkeys-js@3.13.7

💢 ci: update workflows config. b003877

v3.13.6
Compare Source

Documentation v3.13.6: https://raw.githack.com/jaywcjlove/hotkeys/13069ba/index.html
Comparing Changes: https://github.com/jaywcjlove/hotkeys-js/compare/v3.13.5...v3.13.6
npm i hotkeys-js@3.13.6

🐞 fix: fix filter func (#473) 4fc526d @rockindolphin
💄 chore: fix eslint error. #473 99025bb

v3.13.5
Compare Source

Documentation v3.13.5: https://raw.githack.com/jaywcjlove/hotkeys/6171e4b/index.html
Comparing Changes: https://github.com/jaywcjlove/hotkeys-js/compare/v3.13.4...v3.13.5
npm i hotkeys-js@3.13.5

🌍 website: update example. 7f389ce
🐞 fix: fix unbind method issue. #470 bb1046c
⛑ test: fix test case issue. f2e1ab1

v3.13.4
Compare Source

Documentation v3.13.4: https://raw.githack.com/jaywcjlove/hotkeys/f8e5498/index.html
Comparing Changes: https://github.com/jaywcjlove/hotkeys-js/compare/v3.13.3...v3.13.4
npm i hotkeys-js@3.13.4

🐞 fix: Keyboard event memory leak (#469) 816d76d @qiongshusheng

v3.13.3
Compare Source

Documentation v3.13.3: https://raw.githack.com/jaywcjlove/hotkeys/46b6f09/index.html
Comparing Changes: https://github.com/jaywcjlove/hotkeys-js/compare/v3.13.2...v3.13.3
npm i hotkeys-js@3.13.3

🆎 type: fix getAllKeyCodes return type  (#466) 478ee66 @angryermine

v3.13.2
Compare Source

Documentation v3.13.2: https://raw.githack.com/jaywcjlove/hotkeys/023934e/index.html
Comparing Changes: https://github.com/jaywcjlove/hotkeys-js/compare/v3.13.1...v3.13.2
npm i hotkeys-js@3.13.2

🐞 fix: single config will conflict with other combinations (#465) 964d66f @cangSDARM

v3.13.1
Compare Source

Documentation v3.13.1: https://raw.githack.com/jaywcjlove/hotkeys/3f93f05/index.html
Comparing Changes: https://github.com/jaywcjlove/hotkeys-js/compare/v3.13.0...v3.13.1
npm i hotkeys-js@3.13.1

🔙 revert: "fix types under node16 moduleResolution" #441 #464 9268f8d

v3.13.0
Compare Source

Documentation v3.13.0: https://raw.githack.com/jaywcjlove/hotkeys/ada9a13/index.html
Comparing Changes: https://github.com/jaywcjlove/hotkeys-js/compare/v3.12.2...v3.13.0
npm i hotkeys-js@3.13.0

🌟 feat: add single option. (#463) 7bf34e9 @cangSDARM
🐞 fix: fix types under node16 moduleResolution (#441) 2767829 @me4502
💄 chore: update scripts. aeaff2d
💄 chore: update jest config. 89e801e
⛑ test: fix test error. 3c9bb77

Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.

[ ] If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

⚠ Artifact update problem
Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.
♻ Renovate will retry this branch, including artifacts, only when one of the following happens:

any of the package files in this branch needs updating, or
the branch becomes conflicted, or
you click the rebase/retry checkbox if found above, or
you rename this PR's title to start with "rebase!" to trigger it manually

The artifact failure details are included below:
File name: war/yarn.lock
error This project's package.json defines "packageManager": "yarn@4.4.0". However the current global version of Yarn is 1.22.22.

Presence of the "packageManager" field indicates that the project is meant to be used with Corepack, a tool included by default with all official Node.js distributions starting from 16.9 and 14.19.
Corepack must currently be enabled by running corepack enable in your terminal. For more information, check out https://yarnpkg.com/corepack.

repo: mamccorm/jenkins


text:
angular-oauth2-oidc in context of Angular-SPA->ASP.NET Core WebAPI (single domain)

We are in the process of migrating our product from integrated Win auth to federated auth. It consists of an Angular-SPA that accesses an ASP.NET Core WebAPI. Both components are running in the same domain.
In this context I'm wondering if angular-oauth2-oidc is really needed (and thus doing authentication on the client level) or if it's OK to do cookie based OIDC authentication in the WebAPI (via AddOpenIdConnect).
I had following thoughts. Are these correct?

OIDC-based Cookie authentication on the WebAPI level should work when talking about a single domain (like it does for MVC).
Using this library and doing authentication on the client level is the more OIDC-like/sophisticated approach. This has several advantages that might be relevant in the future (cross-domain-ability, more app-friendly, token-refreshing, identity-information in the SPA without involving the WebAPI, ...)

Thanks!

It's a broad, architectural question, so the answer will in the end always be: it depends...
But from your description, it sounds like you might have a "BFF" (Backend For Frontend) setup. Then you can for sure use just server side cookies, and you will likely reduce the attack surface of your app over bearer authorization.
PS. This question is not specific to the library you're reporting an issue at, but more a general thing around SPA's and Bearer Auth vs using session cookies.

OK, thanks!

authors: Tobias-Gr jeroenheijmans


text:
Say "for M̶250" not "for $M̶250", again

This PR is identical to #2577, which was (accidentally?) reverted by @jahooma in d3483dfba19f601a34bd1cfadfe446e48e529f80.

Oops, yeah my bad, was a merge error.

authors: jahooma syvb

repo: manifoldmarkets/manifold


text:
🛑 Mesa Freeworld is down

In 870cebf, Mesa Freeworld (https://nonfree.eu) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Mesa Freeworld is back up in 73647e0 after 12 minutes.

repo: manjaro-contrib/upptime


text:
🛑 Mesa Freeworld is down

In 8bac695, Mesa Freeworld (https://nonfree.eu) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Mesa Freeworld is back up in c136d23.


text:
🛑 Mesa Freeworld is down

In 3ef02d8, Mesa Freeworld (https://nonfree.eu) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Mesa Freeworld is back up in 1e2be14 after 17 minutes.


text:
Passing only one weights array for cross-correlations of unequal sizes

General information

Corrfunc version: v2.2

Issue description
Passing only one weights array when doing a cross-correlation of particle sets of different sizes causes a RuntimeError.
The cause is that the Python wrappers create a uniform weights array for the second set of particles if only the first was provided, but it is created with size equal to the first particle set.
Minimal failing example

import numpy as np
from Corrfunc.theory.DD import DD

N_d = 10000
Lbox = 250.
N_r = N_d*5

x_DM_jack = np.random.uniform(0.,Lbox,N_d)
y_DM_jack = np.random.uniform(0.,Lbox,N_d)
z_DM_jack = np.random.uniform(0.,Lbox,N_d)

x_rand_jack = np.random.uniform(0.,Lbox,N_r)
y_rand_jack = np.random.uniform(0.,Lbox,N_r)
z_rand_jack = np.random.uniform(0.,Lbox,N_r)

w_DM_jack = np.full_like(x_DM_jack,1.)
w_DM_jack[:] = np.random.uniform(1.,2.,N_d)

bins = np.logspace(-1,1.,25)

autocorr = 0
results = DD(autocorr,nthreads=16,binfile=bins,
                           X1=x_rand_jack, Y1=y_rand_jack, Z1=z_rand_jack,
                           X2=x_DM_jack, Y2=y_DM_jack, Z2=z_DM_jack,weights2=w_DM_jack,
                           boxsize=Lbox,periodic=False)

---------------------------------------------------------------------------
error                                     Traceback (most recent call last)
error: ERROR: the last dimension of `weights` must match the number of positions.  Instead found n_weights=10000, nx=50000

---------------------------------------------------------------------------
RuntimeError                              Traceback (most recent call last)
<ipython-input-7-fac2f1ff5530> in <module>
     23                            X1=x_rand_jack, Y1=y_rand_jack, Z1=z_rand_jack,
     24                            X2=x_DM_jack, Y2=y_DM_jack, Z2=z_DM_jack,weights2=w_DM_jack,
---> 25                            boxsize=Lbox,periodic=False)

~/anaconda3/lib/python3.6/site-packages/Corrfunc-2.3.0-py3.6-linux-x86_64.egg/Corrfunc/theory/DD.py in DD(autocorr, nthreads, binfile, X1, Y1, Z1, weights1, periodic, X2, Y2, Z2, weights2, verbose, boxsize, output_ravg, xbin_refine_factor, ybin_refine_factor, zbin_refine_factor, max_cells_per_dim, enable_min_sep_opt, c_api_timer, isa, weight_type)
    246     if extn_results is None:
    247         msg = "RuntimeError occurred"
--> 248         raise RuntimeError(msg)
    249     else:
    250         extn_results, api_time = extn_results

RuntimeError: RuntimeError occurred

Thanks to @boryanah for finding this and providing the failing example!

What is the expected behaviour here? If there was only a scalar passed, then I can understand numpy-style dimension broadcasting. But if there is only one weights array passed, then we should raise a ValueError and request that the user pass another weights array of shape (num_weights, ND2) with the values all set to 1.0 for PAIR_PRODUCT (or whatever would be equivalent for their weight type for custom weighting schemes). The num_weights for the second weights array should match that of the first array.

The expected behavior is that the Python wrapper automatically provides
such an array.  Indeed, this is the current documented behavior (but only
works as intended when the two sets are of equal size).
I think it's sensible to raise a ValueError if the weighting scheme is not
pair_product.
On Thu, May 16, 2019 at 6:17 PM Manodeep Sinha notifications@github.com
wrote:

What is the expected behaviour here? If there was only a scalar passed,
then I can understand numpy-style dimension broadcasting. But if there is
only one weights array passed, then we should raise a ValueError and
request that the user pass another weights array of shape (num_weights,
ND2) with the values all set to 1.0 for PAIR_PRODUCT (or whatever would
be equivalent for their weight type for custom weighting schemes). The
num_weights for the second weights array should match that of the first
array.
—
You are receiving this because you were assigned.
Reply to this email directly, view it on GitHub
https://github.com/manodeep/Corrfunc/issues/180?email_source=notifications&email_token=ABLA7S6LKY4ENT7BMXAEHNTPVXMQTA5CNFSM4HNPNDWKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODVTGS5I#issuecomment-493250933,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABLA7S4QJRWRZAR4BIJ4G3LPVXMQTANCNFSM4HNPNDWA
.

I am not sure how to automatically provide the array for the second set of particles. Say, the weights1 is full of uniform random numbers - how do you generate an equivalent array for the second dataset?
Are you saying to generate an array of the correct shape only when weights1 contains only 1 element (i.e., weights1 is a scalar)?

I just meant generate an array filled with 1s.
On Thu, May 16, 2019 at 6:40 PM Manodeep Sinha notifications@github.com
wrote:

I am not sure how to automatically provide the array for the second set of
particles. Say, the weights1 is full of uniform random numbers - how do
you generate an equivalent array for the second dataset?
Are you saying to generate an array of the correct shape only when
weights1 contains only 1 element (i.e., weights1 is a scalar)?
—
You are receiving this because you were assigned.
Reply to this email directly, view it on GitHub
https://github.com/manodeep/Corrfunc/issues/180?email_source=notifications&email_token=ABLA7S6M5DYUOEDT6RP6AUDPVXPGRA5CNFSM4HNPNDWKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODVTHZUY#issuecomment-493255891,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABLA7S4EALGZ55QB2WBYHWDPVXPGRANCNFSM4HNPNDWA
.

Hi!
I also wonder:
I am writing my own estimator to convert DD, DR, RR for non-periodic BC
into cf, but I wonder about whether there are any normalization factors
when you have weights (I thought there shouldn't but without them I don't
seem to be getting the right answer) -- this also doesn't seem to be in
convert_3d_counts_to_cf(), but I may be wrong.
Thank you for helping.
Best,
Boryana
On Thu, May 16, 2019 at 6:36 PM Lehman Garrison notifications@github.com
wrote:

The expected behavior is that the Python wrapper automatically provides
such an array. Indeed, this is the current documented behavior (but only
works as intended when the two sets are of equal size).
I think it's sensible to raise a ValueError if the weighting scheme is not
pair_product.
On Thu, May 16, 2019 at 6:17 PM Manodeep Sinha notifications@github.com
wrote:

What is the expected behaviour here? If there was only a scalar passed,
then I can understand numpy-style dimension broadcasting. But if there is
only one weights array passed, then we should raise a ValueError and
request that the user pass another weights array of shape (num_weights,
ND2) with the values all set to 1.0 for PAIR_PRODUCT (or whatever would
be equivalent for their weight type for custom weighting schemes). The
num_weights for the second weights array should match that of the first
array.
—
You are receiving this because you were assigned.
Reply to this email directly, view it on GitHub
<
https://github.com/manodeep/Corrfunc/issues/180?email_source=notifications&email_token=ABLA7S6LKY4ENT7BMXAEHNTPVXMQTA5CNFSM4HNPNDWKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODVTGS5I#issuecomment-493250933
,
or mute the thread
<
https://github.com/notifications/unsubscribe-auth/ABLA7S4QJRWRZAR4BIJ4G3LPVXMQTANCNFSM4HNPNDWA
.

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/manodeep/Corrfunc/issues/180?email_source=notifications&email_token=AKJFGGBXUTRIO7GWOWRU2T3PVXOVZA5CNFSM4HNPNDWKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODVTHSYI#issuecomment-493255009,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AKJFGGAPSBTVWUTGBEPVQNTPVXOVZANCNFSM4HNPNDWA
.

@lgarrison Ahh okay. So a matrix of the correct shape, filled with 1's for the PAIR_PRODUCT case. ValueError with the "Please supply weights" for all other weighting schemes...
@boryanah Yeah - we really don't have an utility to compute the weighted correlation function (or even check that weights have been used and warn the user). This has been open for a while now in issue #139

Thanks for the reference!
I am really sorry if this is very obvious, but which pair counts should be
multiplied by the average in what is fed to the convert function in the
case of different weights for R and D and pair_product type of weighting. I
tried:
cf = convert_3d_counts_to_cf(N_d, N_d, N_r,
N_r,
                         DD*w_avg,

DR*w_avg,
                         DR*w_avg, RR)

where w_avg is the mean weight of the data (mean weight of rand is 1), but
it didn't give me the right answer
On Thu, May 16, 2019 at 6:52 PM Manodeep Sinha notifications@github.com
wrote:

@lgarrison https://github.com/lgarrison Ahh okay. So a matrix of the
correct shape, filled with 1's for the PAIR_PRODUCT case. ValueError with
the "Please supply weights" for all other weighting schemes...
@boryanah https://github.com/boryanah Yeah - we really don't have an
utility to compute the weighted correlation function (or even check that
weights have been used and warn the user). This has been open for a while
now in issue #139 https://github.com/manodeep/Corrfunc/issues/139
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/manodeep/Corrfunc/issues/180?email_source=notifications&email_token=AKJFGGBZZEUORBFGSCYK4P3PVXQTLA5CNFSM4HNPNDWKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODVTILJA#issuecomment-493258148,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AKJFGGCRUBC2KNGJUPAYGJLPVXQTLANCNFSM4HNPNDWA
.

@boryanah You have to first compute the average weights on the dataset1 (and dataset2 for cross-correlations) with avgweight := sum(weights)/N_particles. In each radial bin, the total sum of weights is weightsum := weightavg * num_pairs_in_that_bin (where the weightavg is in itself a sum of the product of the two weights). Now, you have to figure out what would have been the weightsum if the points were randomly distributed -- so multiply by the number of points in one catalog with the density, volume, and average weight of the other catalog.
@lgarrison One thing I realise is that our rpavg is currently completely unweighted. We should probably also have an option to say return_weighted_rpavg -- where the math will be rp += weight*r within the kernels (instead of rp += r) and then divided by weightavg * num_pairs_in_bin at the end. (I have a vague memory of we discussing this previously, and deciding against weighted rpavg for backwards compatibility)

@boryanah And then use the different weightsum for each DD, DR, and RR and combine with Landy-Szalay to get the weighted average. @lgarrison Will you please check that I have not omitted steps (or completely mis-stated) ? :)

That sounds right to me!  It seems like we should be returning weightsum
instead of weightavg; it was a poor choice on my part.  I guess it couldn't
hurt to add the latter to the results struct.
And good point about rpavg.  One option would be to return both, although
that would be extra work in the kernels.
On Thu, May 16, 2019 at 11:24 PM Manodeep Sinha notifications@github.com
wrote:

@boryanah https://github.com/boryanah And then use the different
weightsum for each DD, DR, and RR and combine with Landy-Szalay to get
the weighted average. @lgarrison https://github.com/lgarrison Will you
please check that I have not omitted steps (or completely mis-stated) ? :)
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/manodeep/Corrfunc/issues/180?email_source=notifications&email_token=ABLA7S4MDRZCOAZ6RDZ2LYLPVYQPTA5CNFSM4HNPNDWKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODVTT4FA#issuecomment-493305364,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABLA7SZDD7RFLW6UGUBDTIDPVYQPTANCNFSM4HNPNDWA
.

Dear Manodeep,
Thanks a lot! This is what I understood (I think I got 2 wrong)
Say 1 is Data; 2 is Random.
We are trying to compute the factor that should multiply RD before it gets
into the LS estimator. This factor will be F

N1,2 = number of particles
Np1,2 = number of pairs per bin (vector)
w_avg1.2 = "weight average" as returned by the DD function when computing
DD(XYZ1,XYZ2, weights1,weights2) (also vector)
sum1,2 = w_avg1,2*Np1,2 (vector) sum of the products of weights in a given
bin

We also have mean weights:
w_mean1,2 = sum(weights1,2)/N1,2
To compute the sum of weights in the case of random for dataset 1 with
weights for 2, we do
sum_rand1 = N1 * [ N2/Vol * Vol * w_mean2 ] = N1* N2* w_mean2
(I think that I misunderstood this, maybe it is w_mean1w_mean2N1*N2 for
same volume?)

Here you say multiply the sum of weights per bin, sum1, by what would have
been the sum of weights for the catalog if random,
which is sum_rand1,
so F1 = sum_rand1*sum1

We substitute DR1 and DR2 in LS (or convert 3d to cf) with DR1F1 and DR2F2
This doesn't seem symmetric, so I guess this is DR1 and there is also DR2
which should go into the final estimator.
Best,
Boryana
On Thu, May 16, 2019 at 11:24 PM Manodeep Sinha notifications@github.com
wrote:

@boryanah https://github.com/boryanah And then use the different
weightsum for each DD, DR, and RR and combine with Landy-Szalay to get
the weighted average. @lgarrison https://github.com/lgarrison Will you
please check that I have not omitted steps (or completely mis-stated) ? :)
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/manodeep/Corrfunc/issues/180?email_source=notifications&email_token=AKJFGGCMG7XD7RIUGVMMVGTPVYQPVA5CNFSM4HNPNDWKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODVTT4FA#issuecomment-493305364,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AKJFGGGJXAQUUJS7QK4IPR3PVYQPVANCNFSM4HNPNDWA
.

I suspect that for 2)
sum_avg1 = N1* [N2/Vol Vol_bin w_mean2] and it is thus a vector and Vol is
the total volume while Vol_bin is only volume of the bin
and for 3) maybe we want
F1 = sum_rand1/sum1
I am really sorry for bothering you.
On Fri, May 17, 2019 at 12:07 AM Hadzhiyska, Boryana <
boryana.hadzhiyska@cfa.harvard.edu> wrote:

Dear Manodeep,
Thanks a lot! This is what I understood (I think I got 2 wrong)
Say 1 is Data; 2 is Random.
We are trying to compute the factor that should multiply RD before it gets
into the LS estimator. This factor will be F

N1,2 = number of particles
Np1,2 = number of pairs per bin (vector)
w_avg1.2 = "weight average" as returned by the DD function when computing
DD(XYZ1,XYZ2, weights1,weights2) (also vector)
sum1,2 = w_avg1,2*Np1,2 (vector) sum of the products of weights in a given
bin

We also have mean weights:
w_mean1,2 = sum(weights1,2)/N1,2
To compute the sum of weights in the case of random for dataset 1 with
weights for 2, we do
sum_rand1 = N1 * [ N2/Vol * Vol * w_mean2 ] = N1* N2* w_mean2
(I think that I misunderstood this, maybe it is w_mean1w_mean2N1*N2 for
same volume?)

Here you say multiply the sum of weights per bin, sum1, by what would have
been the sum of weights for the catalog if random,
which is sum_rand1,
so F1 = sum_rand1*sum1

We substitute DR1 and DR2 in LS (or convert 3d to cf) with DR1F1 and
DR2F2
This doesn't seem symmetric, so I guess this is DR1 and there is also DR2
which should go into the final estimator.
Best,
Boryana
On Thu, May 16, 2019 at 11:24 PM Manodeep Sinha notifications@github.com
wrote:

@boryanah https://github.com/boryanah And then use the different
weightsum for each DD, DR, and RR and combine with Landy-Szalay to get
the weighted average. @lgarrison https://github.com/lgarrison Will you
please check that I have not omitted steps (or completely mis-stated) ? :)
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/manodeep/Corrfunc/issues/180?email_source=notifications&email_token=AKJFGGCMG7XD7RIUGVMMVGTPVYQPVA5CNFSM4HNPNDWKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODVTT4FA#issuecomment-493305364,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AKJFGGGJXAQUUJS7QK4IPR3PVYQPVANCNFSM4HNPNDWA
.

Hey @boryanah - no worries at all. Unfortunately, I have a deadline right now but if I have not responded by Monday, please ping me again!
And thank you for catching the bug in the first place!

Thanks a lot! Good luck!! I appreciate it!
On Fri, May 17, 2019 at 12:39 AM Manodeep Sinha notifications@github.com
wrote:

Hey @boryanah https://github.com/boryanah - no worries at all.
Unfortunately, I have a deadline right now but if I have not responded by
Monday, please ping me again!
And thank you for catching the bug in the first place!
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/manodeep/Corrfunc/issues/180?email_source=notifications&email_token=AKJFGGHWFOITATYIGER3KCTPVYZILA5CNFSM4HNPNDWKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODVTWWLI#issuecomment-493316909,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AKJFGGCLQKNHCCC44CNYPFDPVYZILANCNFSM4HNPNDWA
.

@boryanah Thanks for your patience. Would it be possible to add in some lines of code to demonstrate what you are doing?

Hi,
I will try to write it up soon, but I have switched to something else for
the moment!
Best,
Boryana
On Mon, May 20, 2019 at 10:57 PM Manodeep Sinha notifications@github.com
wrote:

@boryanah https://github.com/boryanah Thanks for your patience. Would
it be possible to add in some lines of code to demonstrate what you are
doing?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/manodeep/Corrfunc/issues/180?email_source=notifications&email_token=AKJFGGBM2D3QMQ6QLKRI7F3PWNQKVA5CNFSM4HNPNDWKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODV2TLWI#issuecomment-494220761,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AKJFGGFCJU7JSTMNGEJHUU3PWNQKVANCNFSM4HNPNDWA
.

authors: boryanah lgarrison manodeep

repo: manodeep/Corrfunc


text:
Task : Implement post to yammer from browser right click context menu

Implement post to yammer from browser right click context menu using chrome API

@prashantambure has implemented something similar in his plugin, we could leverage his expertise

user will right click a topic and expects the url and the text to be shared with a selected user/group on yammer.
user will right click on a page and select share on yammer.
user will be given a pop up(chrome panel) listing all groups user can share to.
pop up will have the url and text pre selected and pasted in text box.
user will click share to share.
user should be able to cancel sharing and popup should be closed.

authors: hashd ksnov


text:
Revert "Revert "Fixed landing page #104""

Reverts mansiruhil13/Bobble-AI#128
The homepage is messed up.. revert this PR to resolve.
Check Linkedin @mansiruhil13

can you add gssoc tag into this ?? level 2 or 3 ??

Hey @mansiruhil13 , Active on github. It's urgent !!!


text:
Cannot find module 'manticoresearch-ts' or it's type declarations

The following error appears when copying the imports from the README:

Fix:
import * from "manticoresearch-ts/dist/src"

// OR

import * from "manticoresearch-ts/dist/src/index"

This probably happens because the index.d.ts file is under dist/src in the npm package.

We've fixed Readme as proposed

@Nick-S-2018 Fix proposed here is a hack, checkout #2 for proper fix.

authors: Lamarcke Nick-S-2018 mannol


text:
libRuler compatibility based on 1.9.0 branch

Hi! This pull request offers basic compatibility with libRuler and related modules as a completely optional addition. The intention here is that if libRuler is installed, Drag Ruler will use that. If libRuler is not installed, it falls back on the existing Drag Ruler code.
I added a libruler.js file that contains most of the code. Where possible, it imports functions from the ruler.js file. Specifically:

dragRulerAddWaypointHistory

dragRulerClearWaypoints

dragRulerDeleteWaypoint

dragRulerAbortDrag

dragRulerRecalculate

In order to accomplish this, I had to slightly modify ruler.js. I took those functions out of the DragRulerRuler class method definitions and make them their own functions that can be exported. Then I used Object.defineProperty to link each function to DragRulerRuler class (when not using libRuler) and the Ruler class (when using libRuler). I did not modify any of the functionality or code in ruler.js beyond that.
Edits to main.js are similarly intended to just be for libRuler. Basically just a bunch of switches to use libRuler if available but otherwise no modifications to the underlying code.
To check out how this works with libRuler, I recommend trying Drag Ruler along with

Elevation Ruler

Speed Ruler (not yet released in Foundry)

With the port of Drag Ruler to Foundry v10 I suppose this is no longer necessary.

Whoops, wrong comment for this PR, sorry. What I meant to write here is that Drag Ruler is using libWrapper now, so this can be closed.

authors: caewok manuelVo

repo: manuelVo/foundryvtt-drag-ruler


text:
isPointInside

var geolib = require('geolib');
var polygon = [
{latitude: -46, longitude: 1},
{latitude: -46, longitude: 2},
{latitude: -47, longitude: 2},
{latitude: -47, longitude: 1}
];
console.log(geolib.isPointInside({ latitude:-46, longitude:1}, polygon)) // --> false
console.log(geolib.isPointInside({ latitude:-46, longitude:2}, polygon)) // --> false
console.log(geolib.isPointInside({ latitude:-47, longitude:2}, polygon)) // --> false
console.log(geolib.isPointInside({ latitude:-47, longitude:1}, polygon)) // --> true
why get different result?

That is a legitimate question. I copied the algorithm from somewhere I can't remember. Seems to be buggy. I have just found this one:
https://github.com/substack/point-in-polygon/blob/master/index.js
I think I will have a look if this one works better shortly.

Ok, seems to have the same issue ;)
https://github.com/substack/point-in-polygon/issues/2
So this one seems to be better:
https://github.com/mikolalysenko/robust-point-in-polygon
(holy crap, what a code!)

hi...should I use this npm library or not, seems to be bug in isPointInside method?

Depends on what you need. If you need a 100% accurate function to check whether a point is inside of a polygon or not, don't use it (yet). For everything else: sure, use it!

thanks @manuelbieh

I experimentally implemented the great robust-point-in-polygon function from @mikolalysenko - you can use it like this:
var geolib = require('./dist/geolib.isPointInsideRobust')(require('geolib'));

var polygon = [
  {latitude: -46, longitude: 1},
  {latitude: -46, longitude: 2},
  {latitude: -47, longitude: 2},
  {latitude: -47, longitude: 1}
];

console.log(geolib.isPointInsideRobust({ latitude:-46, longitude:1}, polygon)) // --> 0
console.log(geolib.isPointInsideRobust({ latitude:-46, longitude:2}, polygon)) // --> 0
console.log(geolib.isPointInsideRobust({ latitude:-47, longitude:2}, polygon)) // --> 0
console.log(geolib.isPointInsideRobust({ latitude:-47, longitude:1}, polygon)) // --> 0

where 0 means the point is directly on the boundaries (then it's up to you whether you count it as "inside" or not), -1 means it is inside the given polygon and 1 means it is outside of the polygon.
In the browser just load the geolib.isPointInsideRobust.js after you loaded geolib.js. Then you can use geolib.isPointInsideRobust():
<script src="dist/geolib.js"></script>
<script src="dist/geolib.isPointInsideRobust.js"></script>
<script>
// use geolib.isPointInsideRobust() here
</script>

authors: CoderIvan deepaksisodiya manuelbieh

repo: manuelbieh/Geolib


text:
[idea]:  Web API Response for Store?

Rather than returning Promise<Uint8Array> , we could unify the store interface around Web-standard Response to expose additional features to zarr.Array instances.

Use the Response.ok or response.status to determine if the item is in the store or not (rather than Uint8Array | undefined).
Exposes conveniences to read response directly via .json(), .text(), .arrayBuffer(), and .blob(), rather than copying array buffers etc.
Ability process Response.body as a stream. This is the most interesting/exciting to me, but it's not clear if it would be useful. Ideally there is a world were chunks could be partially decoded, etc.

Rather than handling Responses within zarr.Array, we could look into something like a StorageTransformer layer, which by default just reads the response in full.

https://github.com/zarr-developers/zarr-specs/pull/134

hmm doesn't seem like Response is provided as a global in Node.js... would likely need to allow the current interface as well with Uint8Array.


text:
Support Swift Package Manager

Add a Package.swift file so that Swift Package Manager can incorporate this library into a project.
Blocked by raphaelmor/Polyline#35.
/cc @frederoni @captainbarbosa

https://github.com/raphaelmor/Polyline/pull/51

license: ISC


text:
deprecate in favor of mapbox-cli?

@jakepruitt @perrygeo does mapbox-cli cover all the functionality of this? can we move this to cutting-room-floor?

The currently implementation in mapbox-cli-py covers the datasets API fully so I would say yes. Some caveats:

The mapbox datasets interface and command names match the API endpoints closely so they're slightly different than mapbox-data (no big deal, just not a drop-in replacement)
We're currently working through a higher-level interface that will feel more like aws s3 - there is still an ongoing discussion around how these two styles of interface should co-exist
Several people are having difficulties installing it globally due to version conflicts with system python libs. This means we'll need to focus on packaging and distribution soon

cc @rclark @sgillies

authors: perrygeo tmcw

repo: mapbox/mapbox-data-cli


text:
Rename northarrow output

change the output name of northarrow to be northArrowSubReport instead of subReport

Makes sense to be consistent.

authors: jesseeichar tsauerwein

repo: mapfish/mapfish-print


text:
How do we calculate performances on the test set ?

Sorry to ask this, but is there any way we can calculate performances on the test set ? I don't see any "postprocessed.csv" in the test directories.
Is there a website where I can submit the results ? There arepeople talking about a challenge in the other discussions.
Thanks

Hi!
We hosted a challenge as part of the visual localisation workshop for ECCV2020.
I believe that the evaluation server is still functional. You'll need to upload a zip file with a csv file that contains query IDs and IDs for top N predictions. Here is a link to the evaluation server: https://codalab.mapillary.com/competitions/45#learn_the_details
For more details on the format of the csv file, please checkout the example files: https://github.com/mapillary/mapillary_sls/tree/master/files and the function https://github.com/mapillary/mapillary_sls/blob/b9edb130d3c8c248df79693fe8bfe138ad9f2ef3/mapillary_sls/utils/eval.py#L96
Hope it works out :)

The challenge is closed, so the evaluation server does not run anymore. We hope to re-open it for future workshops and hopefully leave it open as a running benchmark.

The challenge is closed, so the evaluation server does not run anymore. We hope to re-open it for future workshops and hopefully leave it open as a running benchmark.

Hi, thank you for your work!
Is it possible to publish test ground truth or make the evaluation server alive? I'm writing the paper, and I planned to use your dataset for training and as a benchmark. At the moment, it seems that I can only use the validation set for comparison, but even in your paper, you published only results on the test part of the dataset. The availability of the test ground truth will be much appreciated.

Hi!
We hosted a challenge as part of the visual localisation workshop for ECCV2020. I believe that the evaluation server is still functional. You'll need to upload a zip file with a csv file that contains query IDs and IDs for top N predictions. Here is a link to the evaluation server: https://codalab.mapillary.com/competitions/45#learn_the_details
For more details on the format of the csv file, please checkout the example files: https://github.com/mapillary/mapillary_sls/tree/master/files and the function
https://github.com/mapillary/mapillary_sls/blob/b9edb130d3c8c248df79693fe8bfe138ad9f2ef3/mapillary_sls/utils/eval.py#L96
Hope it works out :)
Hello. I participate the MSLS Place recognition challenge. I want to know how to generate the .csv file used in eval?  In details. What is N number in topN results. Looking forward to your reply

We've re-opened the evaluation server as part of the 4th Long-Term Visual Localization under Changing Conditions
, available here.
After the workshop challenge submission date is over (Oct 7th), we plan to re-open an ongoing evaluation server soon after.

The evaluation server is now permanently open. Read more here:
https://github.com/mapillary/mapillary_sls/#-evaluate-on-the-test-set

authors: FrederikWarburg Nanxiaohu666 aalibey dinarkino mlopezantequera


text:
Feature: tab for merging exisitng D2R mods

NB: any mod conflict must be a stopper for a generation.

done in  6d270d22


text:
Improve autocomplete styling

Use "position: absolute" so that autocomplete follows the field when you scroll.
Match autocomplete width with element width (accounting for padding)
Previously, the autocomplete dialog would appear below the field (e.g. font) and not move if you scrolled the symbol-layer edit window to a different position. This change makes it so the autocomplete dialog follows the field when you scroll. There are also some changes to width to ensure it matches the width of the input field.

Good spot thanks for the PR

authors: orangemug tbarsballe

repo: maputnik/editor


text:
Improve data for admin boundary in the water

Right now vector tiles don't indicate if a boundary (country, state, region, county, etc) is over the water or not. We should indicate this case to improve styling (color them blue, hide them, etc).

See also:

https://github.com/mapzen/vector-datasource/issues/180

Looks like the existing boundary_type property in the boundary query doesn't give us enough information for all maritime boundaries.
We need to export tags for boundary%3Dmaritime

The work for #180 makes this way more difficult than just looking at a tag. Also, a maritime boundary isn't the same thing as a boundary over water. For example, this border is entirely in the Hudson River, but isn't a maritime boundary.
If we want boundaries over water distinguished from boundaries over land for rendering purposes, then perhaps we need to intercut the water layer and boundaries layer. If we want maritime boundaries, then possibly that data can be recovered by intersecting the LineStrings, but I'm not 100% confident that it'll work.
@nvkelso, is it the former or latter that we're interested in?

We do need maritime to deal with that case, thanks for bringing this up!

Hmm... looks like the boundary up the Hudson River is marked maritime=yes (e.g: ways 61602961 and 61602969). In previous discussions, we'd talked about not wanting to lose that boundary when intersecting with any water, so I think we'll need to think a bit more on what exactly it is that we want shown (or not shown) in the tiles.

Let's bootstrap this using the maritime=yes tag alone and see how that goes.

After #236 and mapzen/TileStache#54, this is what it looks like. Maritime boundaries (with maritime=yes) are in blue, other boundaries in red:

@nvkelso could you review, please?

I should note: the missing boundaries are due to cut-offs in the data I've loaded locally - not, as far as I can tell, due to the processing. But we'll need to see it on dev to be sure.

Over to @rmarianski to resolve the missing kind values on some boundary lines.

@nvkelso Looks ok to you?

Drrrr, the kind thing is complicated to solve. We're rolling back part of this so we can take the rest of the sprint to prod.
Outstanding issues:

Not always getting kind and admin_level back on features. Probably requires to transform function in python.
Boundaries there are not shared are getting dropped (e.g. maritime boundaries between admin_level=[2,4] and open ocean). Root cause might be this join logic.
Often the state and country boundaries are being dropped in favor of the next admin_level down (e.g.: we're seeing state boundaries 4 instead of country boundaries 2 along the frontier. And we're seeing county boundaries 6 instead of state boundaries 4 in other places. Requires investigation.

Adding missing images.

There's a problem with this that I can't think of a simple way around. For example, take the international boundary near Vancouver:

The red lines are international boundaries, magenta with maritime_boundary=yes, green are state level boundaries, cyan with maritime_boundary=yes.
There are a couple of interesting features:

In both of these cases, the maritime boundary appears to be present, but isn't projecting down onto the border. The issue appears to be that there's an extra point in the representation of the maritime boundary. This is what the upper feature looks like:

The large, red points are present in the polygon boundary and the smaller, blue ones are present in the maritime boundary. When these points are extracted:
shape = g.linestring.LineString([[-13804958.87, 6156352.28], [-13859722, 6179044.59]])
cut_shape = g.linestring.LineString([[-13804958.87, 6156352.28],[-13816141.2857036, 6160985.96042869],[-13859722, 6179044.59]])
inside = shape.intersection(cut_shape)
print inside.wkt
# 'MULTIPOINT (-13859722 6179044.59, -13804958.87 6156352.28)'
print g.point.Point(-13816141.2857036, 6160985.96042869).distance(shape)
# 3.15023712478e-09

Which is saying that the point is effectively collinear with the points either side of it (3e-9 mercator meters is probably pretty close to numerical noise), but that the intersection algorithm considers it to be different enough that it excludes that segment from the result.
In the short term, we have some options:

Use this anyway, knowing that there'll be plenty of these places where the intersection doesn't work right, and the maritime property isn't right.
Don't put a maritime property on the admin boundaries - I think the rest of this patch is okay, but will need proper testing.
Find some other source for the maritime property, e.g: buffered coastline.

(Let’s prototype with option 3 – Find some other source for the maritime
property, e.g: buffered coastline.)
On Tue, Sep 29, 2015 at 8:24 AM, Matt Amos notifications@github.com wrote:

There's a problem with this that I can't think of a simple way around. For
example, take the international boundary near Vancouver:
[image: 210-bad-boundary]
https://cloud.githubusercontent.com/assets/271360/10168496/fcb81eec-66c4-11e5-933e-9b106f310d02.png
The red lines are international boundaries, magenta with
maritime_boundary=yes, green are state level boundaries, cyan with
maritime_boundary=yes.
There are a couple of interesting features:
[image: 210-bad-boundary-annotated]
https://cloud.githubusercontent.com/assets/271360/10168603/7078c746-66c5-11e5-8bb2-31c8be88bd80.png
In both of these cases, the maritime boundary appears to be present, but
isn't projecting down onto the border. The issue appears to be that there's
an extra point in the representation of the maritime boundary. This is what
the upper feature looks like:
[image: 210-missing-point]
https://cloud.githubusercontent.com/assets/271360/10168666/b6e3dd74-66c5-11e5-8a2d-0b54cc0835ab.png
The large, red points are present in the polygon boundary and the smaller,
blue ones are present in the maritime boundary. When these points are
extracted:
shape = g.linestring.LineString([[-13804958.87, 6156352.28], [-13859722, 6179044.59]])
cut_shape = g.linestring.LineString([[-13804958.87, 6156352.28],[-13816141.2857036, 6160985.96042869],[-13859722, 6179044.59]])
inside = shape.intersection(cut_shape)print inside.wkt# 'MULTIPOINT (-13859722 6179044.59, -13804958.87 6156352.28)'print g.point.Point(-13816141.2857036, 6160985.96042869).distance(shape)# 3.15023712478e-09
Which is saying that the point is effectively collinear with the points
either side of it (3e-9 mercator meters is probably pretty close to
numerical noise), but that the intersection algorithm considers it to be
different enough that it excludes that segment from the result.
In the short term, we have some options:

Use this anyway, knowing that there'll be plenty of these places
where the intersection doesn't work right, and the maritime property isn't
right.
Don't put a maritime property on the admin boundaries - I think the
rest of this patch is okay, but will need proper testing.
Find some other source for the maritime property, e.g: buffered
coastline.

—
Reply to this email directly or view it on GitHub
https://github.com/mapzen/vector-datasource/issues/210#issuecomment-144093418
.

Results of prototype 3:

You can see that the boundary is mostly cyan/purple which means it has maritime_boundary=yes on it. The parts closer to the coast don't, and are green/red. Zooming in closer you can see the left/right labelling on the international boundary:

Curved labels anyone? ;)
On Wed, Sep 30, 2015 at 11:44 AM, Matt Amos notifications@github.com
wrote:

Results of prototype 3:
[image: 210-maritime-3]
https://cloud.githubusercontent.com/assets/271360/10198074/582c20fc-6792-11e5-8487-f3c2ab1cbd1c.png
You can see that the boundary is mostly cyan/purple which means it has
maritime_boundary=yes on it. The parts closer to the coast don't, and are
green/red. Zooming in closer you can see the left/right labelling on the
international boundary:
[image: 210-prototype-maritime]
https://cloud.githubusercontent.com/assets/271360/10198055/3172954a-6792-11e5-970e-fb66e8f880da.png
—
Reply to this email directly or view it on GitHub
https://github.com/mapzen/vector-datasource/issues/210#issuecomment-144452490
.

Looks pretty good. Let's take it into dev for a test drive. /cc @rmarianski

Curved labels anyone? ;)

Yes, please!

Looks good around California. Need to review in more complicated areas.

Channel Islands off California need to be added to the maritime SHP (we shouldn't see boundary here):

Near Virginia and Washington DC:
#9/37.8427/-75.6437

South Carolina:
#9/33.2973/-79.3591

Florida:
#8/27.496/-79.579

Let's call this good enough, and track the rest in #294.

authors: bcamper nvkelso rmarianski zerebubuth

repo: mapzen/vector-datasource


text:
suggestion: make radius field name more descriptive

Right now, radius determines the outer rounding of an element's corners, but its name is kind of vague and might instead imply a sizing property rather than a roundness value. CSS uses border-radius, although the CSS working group considers this naming a mistake. Maybe something like corner_radius would be more descriptive?

Right now, radius determines the outer rounding of an element's corners, but its name is kind of vague and might instead imply a sizing property rather than a roundness value. CSS uses border-radius, although the CSS working group considers this naming a mistake. Maybe something like corner_radius would be more descriptive?

Would it be too crazy to accept both ways? radius and corner_radius? I don't like having to swap an attribute name hehe, but I understand your proposal


text:
not working on live server

everythong works fine on local server ..... but when i deploy it in AWS server using docker .I respond be this error.
Error: write EPIPE
at afterWriteDispatched (internal/stream_base_commons.js:150:25)
at writeGeneric (internal/stream_base_commons.js:141:3)
at Socket._writeGeneric (net.js:771:11)
at Socket._write (net.js:783:8)
at doWrite (_stream_writable.js:431:12)
at writeOrBuffer (_stream_writable.js:415:5)
at Socket.Writable.write (_stream_writable.js:305:11)
at PDF.PdfExec [as exec] (/usr/src/app/node_modules/html-pdf/lib/pdf.js:141:15)
at PDF.PdfToFile [as toFile] (/usr/src/app/node_modules/html-pdf/lib/pdf.js:83:8)
at /usr/src/app/dist/modules/merchant/merchantprofile.service.js:1021:22 {
errno: 'EPIPE',
code: 'EPIPE',
syscall: 'write'
}
Error: spawn /usr/src/app/node_modules/phantomjs-prebuilt/lib/phantom/bin/phantomjs ENOENT
at Process.ChildProcess._handle.onexit (internal/child_process.js:264:19)
at onErrorNT (internal/child_process.js:456:16)
at processTicksAndRejections (internal/process/task_queues.js:80:21) {
errno: 'ENOENT',
code: 'ENOENT',
syscall: 'spawn /usr/src/app/node_modules/phantomjs-prebuilt/lib/phantom/bin/phantomjs',
path: '/usr/src/app/node_modules/phantomjs-prebuilt/lib/phantom/bin/phantomjs',
spawnargs: [
'/usr/src/app/node_modules/html-pdf/lib/scripts/pdf_a4_portrait.js'
]
}
(node:18) UnhandledPromiseRejectionWarning: Error: spawn /usr/src/app/node_modules/phantomjs-prebuilt/lib/phantom/bin/phantomjs ENOENT
at Process.ChildProcess._handle.onexit (internal/child_process.js:264:19)
at onErrorNT (internal/child_process.js:456:16)
at processTicksAndRejections (internal/process/task_queues.js:80:21)
(node:18) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:18) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

just started to getting the same error, @menarayanzshrestha any progress?

@radzk .
Check this:
https://stackoverflow.com/questions/37363317/pdf-file-creation-using-html-pdf-is-not-working-in-my-deployment-server

@radzk @menarayanzshrestha I had the same problem but I found some solution:
If I understand correctly the problem is this package need fonts and try to reach phantomJs but not exist in the environment
https://github.com/marcbachmann/node-html-pdf/issues/612#issuecomment-798835694
https://github.com/marcbachmann/node-html-pdf/issues/612#issuecomment-854249720
https://github.com/marcbachmann/node-html-pdf/issues/35#issuecomment-155144094

repo: marcbachmann/node-html-pdf


text:
🛑 Nextcloud is down

In f9eb93a, Nextcloud ($NEXTCLOUD) was down:

HTTP code: 502
Response time: 459 ms

Resolved: Nextcloud is back up in 0d262f8 after 5 minutes.


text:
🛑 Video Call is down

In 58e33bc, Video Call (https://jitsi01.diversolatam.com/test) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Video Call is back up in 2e00bd4.

repo: marcoadasilvaa/health


text:
🛑 Web is down

In f1d79af, Web (https://www.sanna.pe/) was down:

HTTP code: 403
Response time: 252 ms

Resolved: Web is back up in dcbc7ad after 15 minutes.


text:
Ukrainian translation

Added Ukrainian translation for JavaFX 8 tutorial

Sorry, for some "noise" commits

Thank you very much @mrudnytskyi. That was the best and completest pull request I ever got for a translation!
Your Ukrainian translation is now live here: http://code.makery.ch/library/javafx-8-tutorial/uk/

authors: marcojakob mrudnytskyi