Cannot create libffmpeg.so after running ./build_android.sh

Hi,
AndroidFFmpeg is a great project. I tried to build it from the source code by following the instruction in https://github.com/appunite/AndroidFFmpeg. After successfully running ./build_android.sh using android ndk r10, however, I couldn't find libffmpeg.so being created.
In the folder library-jni/jni/ffmpeg-build/armeabi, I can see bin, include, lib, share folders but there is no libffmpeg.so file.
Anything else I need to be aware of? Thanks.

Did you use branch for ndk-r10? because master branch as is written in documentation do not support ndk r10e.
What was output form ./build_android.sk?

Thanks for your prompt reply.
I downloaded android-ndk-r10e-linux-x86_64.bin from https://developer.android.com/ndk/downloads/index.html (I am using ubuntu 14.0.4 64bits).
I downloaded your source code like this (as this could download x264 folder in git submodule update).
git clone https://github.com/appunite/AndroidFFmpeg.git AndroidFFmpeg
cd AndroidFFmpeg
git submodule init
git submodule sync #if you are updating source code
git submodule update
cd library-jni
cd jni
./fetch.sh
...
I did realize that I did not select ndk-r10e branch from your wiki. I just tried. https://github.com/appunite/AndroidFFmpeg/tree/ndk-r10e.
git clone https://review.appunite.com/androidffmpeg AndroidFFmpeg
cd AndroidFFmpeg
git submodule init
git submodule sync #if you are updating source code
git submodule update
...
However, here I could not download x264.
Cloning into 'FFmpegLibrary/jni/x264'...
remote: Counting objects: 18269, done.
remote: Compressing objects: 100% (3409/3409), done.
remote: Total 18269 (delta 15071), reused 18001 (delta 14818)
Receiving objects: 100% (18269/18269), 4.34 MiB | 564.00 KiB/s, done.
Resolving deltas: 100% (15071/15071), done.
Checking connectivity... done.
fatal: reference is not a tree: 999b753ff0f4dc872077f4fa90d465e948cbe656
Unable to checkout '999b753ff0f4dc872077f4fa90d465e948cbe656' in submodule path 'FFmpegLibrary/jni/x264'
shalina@shalina-Inspiron-1720:~/test/AndroidFFmpeg$
I recall you just fixed that recently (maybe in master branch?). Thanks a lot.

please do not clone from gerrit it is deprecated use github and branch ndk-r10e r10e. or master branch with r8e

Thanks for your time.
Sorry. Did you mean git clone from https://github.com/appunite/AndroidFFmpeg.git? I just did but it failed at tropicssl.
Submodule path 'library-jni/jni/libyuv': checked out '5abb6d455640d657d35ce79365eaf78efea2a6c0'
Cloning into 'library-jni/jni/tropicssl'...
fatal: repository 'https://gitorious.org/tropicssl/tropicssl.git/' not found
Clone of 'https://gitorious.org/tropicssl/tropicssl.git' into submodule path 'library-jni/jni/tropicssl' failed

All logs below.
shalina@shalina-Inspiron-1720:~/test$ git clone https://github.com/appunite/AndroidFFmpeg.git
Cloning into 'AndroidFFmpeg'...
remote: Counting objects: 1355, done.
remote: Compressing objects: 100% (135/135), done.
remote: Total 1355 (delta 86), reused 0 (delta 0), pack-reused 1196
Receiving objects: 100% (1355/1355), 801.04 KiB | 609.00 KiB/s, done.
Resolving deltas: 100% (645/645), done.
Checking connectivity... done.
shalina@shalina-Inspiron-1720:~/test$ cd AndroidFFmpeg/
shalina@shalina-Inspiron-1720:~/test/AndroidFFmpeg$ git submodule init
Submodule 'library-jni/jni/ffmpeg' (git://source.ffmpeg.org/ffmpeg.git) registered for path 'library-jni/jni/ffmpeg'
Submodule 'library-jni/jni/freetype2' (git://git.sv.gnu.org/freetype/freetype2.git) registered for path 'library-jni/jni/freetype2'
Submodule 'library-jni/jni/fribidi' (https://github.com/appunite/fribidi.git) registered for path 'library-jni/jni/fribidi'
Submodule 'library-jni/jni/libass' (https://github.com/libass/libass.git) registered for path 'library-jni/jni/libass'
Submodule 'library-jni/jni/libyuv' (https://git.chromium.org/external/libyuv.git) registered for path 'library-jni/jni/libyuv'
Submodule 'library-jni/jni/tropicssl' (https://gitorious.org/tropicssl/tropicssl.git) registered for path 'library-jni/jni/tropicssl'
Submodule 'library-jni/jni/vo-aacenc' (git://git.code.sf.net/p/opencore-amr/vo-aacenc) registered for path 'library-jni/jni/vo-aacenc'
Submodule 'library-jni/jni/vo-amrwbenc' (git://git.code.sf.net/p/opencore-amr/vo-amrwbenc) registered for path 'library-jni/jni/vo-amrwbenc'
Submodule 'library-jni/jni/x264' (git://git.videolan.org/x264.git) registered for path 'library-jni/jni/x264'
shalina@shalina-Inspiron-1720:~/test/AndroidFFmpeg$ git submodule sync
Synchronizing submodule url for 'library-jni/jni/ffmpeg'
Synchronizing submodule url for 'library-jni/jni/freetype2'
Synchronizing submodule url for 'library-jni/jni/fribidi'
Synchronizing submodule url for 'library-jni/jni/libass'
Synchronizing submodule url for 'library-jni/jni/libyuv'
Synchronizing submodule url for 'library-jni/jni/tropicssl'
Synchronizing submodule url for 'library-jni/jni/vo-aacenc'
Synchronizing submodule url for 'library-jni/jni/vo-amrwbenc'
Synchronizing submodule url for 'library-jni/jni/x264'
shalina@shalina-Inspiron-1720:~/test/AndroidFFmpeg$ git submodule update
Cloning into 'library-jni/jni/ffmpeg'...
remote: Counting objects: 431761, done.
remote: Compressing objects: 100% (92756/92756), done.
remote: Total 431761 (delta 343014), reused 426142 (delta 338278)
Receiving objects: 100% (431761/431761), 102.31 MiB | 242.00 KiB/s, done.
Resolving deltas: 100% (343014/343014), done.
Checking connectivity... done.
Submodule path 'library-jni/jni/ffmpeg': checked out '82db8ee3211014a38db6b8cae03f1c3246938eee'
Cloning into 'library-jni/jni/freetype2'...
remote: Counting objects: 52942, done.
remote: Compressing objects: 100% (8811/8811), done.
remote: Total 52942 (delta 43830), reused 52932 (delta 43825)
Receiving objects: 100% (52942/52942), 15.02 MiB | 520.00 KiB/s, done.
Resolving deltas: 100% (43830/43830), done.
Checking connectivity... done.
Submodule path 'library-jni/jni/freetype2': checked out '320613eeb83d0cd704de3e6adfb13dce787861bb'
Cloning into 'library-jni/jni/fribidi'...
remote: Counting objects: 536, done.
remote: Total 536 (delta 0), reused 0 (delta 0), pack-reused 536
Receiving objects: 100% (536/536), 1.80 MiB | 577.00 KiB/s, done.
Resolving deltas: 100% (307/307), done.
Checking connectivity... done.
Submodule path 'library-jni/jni/fribidi': checked out '3b4b2c54f2ba6964bb5e81cbf5dff70b1e0b1d44'
Cloning into 'library-jni/jni/libass'...
remote: Counting objects: 5538, done.
remote: Compressing objects: 100% (9/9), done.
remote: Total 5538 (delta 3), reused 0 (delta 0), pack-reused 5529
Receiving objects: 100% (5538/5538), 1.93 MiB | 568.00 KiB/s, done.
Resolving deltas: 100% (3598/3598), done.
Checking connectivity... done.
Submodule path 'library-jni/jni/libass': checked out 'de409235f4a32f6dfa6ab73eeb4bcd8d3b679387'
Cloning into 'library-jni/jni/libyuv'...
remote: Counting objects: 12385, done.
remote: Compressing objects: 100% (1898/1898), done.
remote: Total 12385 (delta 10470), reused 12385 (delta 10470)
Receiving objects: 100% (12385/12385), 5.78 MiB | 561.00 KiB/s, done.
Resolving deltas: 100% (10470/10470), done.
Checking connectivity... done.
Submodule path 'library-jni/jni/libyuv': checked out '5abb6d455640d657d35ce79365eaf78efea2a6c0'
Cloning into 'library-jni/jni/tropicssl'...
fatal: repository 'https://gitorious.org/tropicssl/tropicssl.git/' not found
Clone of 'https://gitorious.org/tropicssl/tropicssl.git' into submodule path 'library-jni/jni/tropicssl' failed
shalina@shalina-Inspiron-1720:~/test/AndroidFFmpeg$

I think I should use git clone https://github.com/appunite/AndroidFFmpeg/tree/ndk-r10e.
I am doing that now.

Sorry for several posts.
I tried
git clone https://github.com/appunite/AndroidFFmpeg AndroidFFmpeg
git checkout origin/ndk-r10e
...
same error fatal: repository 'https://gitorious.org/tropicssl/tropicssl.git/' not found.
Please help.

Full log here.
shalina@shalina-Inspiron-1720:~/test$ rm -rf AndroidFFmpeg
shalina@shalina-Inspiron-1720:~/test$ git clone https://github.com/appunite/AndroidFFmpeg/tree/ndk-r10e AndroidFFmpeg
Cloning into 'AndroidFFmpeg'...
fatal: repository 'https://github.com/appunite/AndroidFFmpeg/tree/ndk-r10e/' not found
shalina@shalina-Inspiron-1720:~/test$ git clone https://github.com/appunite/AndroidFFmpeg AndroidFFmpeg
Cloning into 'AndroidFFmpeg'...
remote: Counting objects: 1355, done.
remote: Compressing objects: 100% (135/135), done.
remote: Total 1355 (delta 86), reused 0 (delta 0), pack-reused 1196
Receiving objects: 100% (1355/1355), 801.04 KiB | 589.00 KiB/s, done.
Resolving deltas: 100% (645/645), done.
Checking connectivity... done.
shalina@shalina-Inspiron-1720:~/test$ cd AndroidFFmpeg/
shalina@shalina-Inspiron-1720:~/test/AndroidFFmpeg$ ls -al
total 76
drwxrwxr-x 7 shalina shalina  4096 Jul  7 10:48 .
drwxrwxr-x 8 shalina shalina  4096 Jul  7 10:48 ..
-rw-rw-r-- 1 shalina shalina   301 Jul  7 10:48 build.gradle
drwxrwxr-x 3 shalina shalina  4096 Jul  7 10:48 example
drwxrwxr-x 8 shalina shalina  4096 Jul  7 10:48 .git
-rw-rw-r-- 1 shalina shalina   239 Jul  7 10:48 .gitignore
-rw-rw-r-- 1 shalina shalina  1076 Jul  7 10:48 .gitmodules
drwxrwxr-x 3 shalina shalina  4096 Jul  7 10:48 gradle
-rwxrwxr-x 1 shalina shalina  5080 Jul  7 10:48 gradlew
drwxrwxr-x 3 shalina shalina  4096 Jul  7 10:48 library
drwxrwxr-x 3 shalina shalina  4096 Jul  7 10:48 library-jni
-rw-rw-r-- 1 shalina shalina 10174 Jul  7 10:48 LICENSE
-rw-rw-r-- 1 shalina shalina  4867 Jul  7 10:48 README.md
-rw-rw-r-- 1 shalina shalina    38 Jul  7 10:48 settings.gradle
-rw-rw-r-- 1 shalina shalina  1435 Jul  7 10:48 .travis.yml
shalina@shalina-Inspiron-1720:~/test/AndroidFFmpeg$ git branch -r
origin/HEAD -> origin/master
origin/hardware-decoding
origin/master
origin/ndk-r10e
shalina@shalina-Inspiron-1720:~/test/AndroidFFmpeg$ cd ..
shalina@shalina-Inspiron-1720:~/test$ rm -rf AndroidFFmpeg
shalina@shalina-Inspiron-1720:~/test$ git clone https://github.com/appunite/AndroidFFmpeg AndroidFFmpeg
Cloning into 'AndroidFFmpeg'...
remote: Counting objects: 1355, done.
remote: Compressing objects: 100% (135/135), done.
remote: Total 1355 (delta 86), reused 0 (delta 0), pack-reused 1196
Receiving objects: 100% (1355/1355), 801.04 KiB | 593.00 KiB/s, done.
Resolving deltas: 100% (645/645), done.
Checking connectivity... done.
shalina@shalina-Inspiron-1720:~/test$ cd AndroidFFmpeg/
shalina@shalina-Inspiron-1720:~/test/AndroidFFmpeg$ git branch -r
origin/HEAD -> origin/master
origin/hardware-decoding
origin/master
origin/ndk-r10e
shalina@shalina-Inspiron-1720:~/test/AndroidFFmpeg$ git checkout origin/ndk-r10e
Note: checking out 'origin/ndk-r10e'.
You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b new_branch_name
HEAD is now at 0089d8e... Disable 64' build
shalina@shalina-Inspiron-1720:~/test/AndroidFFmpeg$ git status
HEAD detached at origin/ndk-r10e
nothing to commit, working directory clean
shalina@shalina-Inspiron-1720:~/test/AndroidFFmpeg$ git checkout -b ndk-r10e
Switched to a new branch 'ndk-r10e'
shalina@shalina-Inspiron-1720:~/test/AndroidFFmpeg$ git branch
master

ndk-r10e
shalina@shalina-Inspiron-1720:~/test/AndroidFFmpeg$ git branch -r
origin/HEAD -> origin/master
origin/hardware-decoding
origin/master
origin/ndk-r10e
shalina@shalina-Inspiron-1720:~/test/AndroidFFmpeg$ ls -al
total 76
drwxrwxr-x 7 shalina shalina  4096 Jul  7 10:49 .
drwxrwxr-x 8 shalina shalina  4096 Jul  7 10:49 ..
-rw-rw-r-- 1 shalina shalina   301 Jul  7 10:49 build.gradle
drwxrwxr-x 3 shalina shalina  4096 Jul  7 10:49 example
drwxrwxr-x 8 shalina shalina  4096 Jul  7 10:50 .git
-rw-rw-r-- 1 shalina shalina   239 Jul  7 10:49 .gitignore
-rw-rw-r-- 1 shalina shalina  1076 Jul  7 10:49 .gitmodules
drwxrwxr-x 3 shalina shalina  4096 Jul  7 10:49 gradle
-rwxrwxr-x 1 shalina shalina  5080 Jul  7 10:49 gradlew
drwxrwxr-x 3 shalina shalina  4096 Jul  7 10:49 library
drwxrwxr-x 3 shalina shalina  4096 Jul  7 10:49 library-jni
-rw-rw-r-- 1 shalina shalina 10174 Jul  7 10:49 LICENSE
-rw-rw-r-- 1 shalina shalina  4921 Jul  7 10:49 README.md
-rw-rw-r-- 1 shalina shalina    38 Jul  7 10:49 settings.gradle
-rw-rw-r-- 1 shalina shalina  1573 Jul  7 10:49 .travis.yml
shalina@shalina-Inspiron-1720:~/test/AndroidFFmpeg$ pwd
/home/shalina/test/AndroidFFmpeg
shalina@shalina-Inspiron-1720:~/test/AndroidFFmpeg$ git branch -r
origin/HEAD -> origin/master
origin/hardware-decoding
origin/master
origin/ndk-r10e
shalina@shalina-Inspiron-1720:~/test/AndroidFFmpeg$ git branch
master
ndk-r10e
shalina@shalina-Inspiron-1720:~/test/AndroidFFmpeg$ git submodule init
Submodule 'library-jni/jni/ffmpeg' (git://source.ffmpeg.org/ffmpeg.git) registered for path 'library-jni/jni/ffmpeg'
Submodule 'library-jni/jni/freetype2' (git://git.sv.gnu.org/freetype/freetype2.git) registered for path 'library-jni/jni/freetype2'
Submodule 'library-jni/jni/fribidi' (https://github.com/appunite/fribidi.git) registered for path 'library-jni/jni/fribidi'
Submodule 'library-jni/jni/libass' (https://github.com/libass/libass.git) registered for path 'library-jni/jni/libass'
Submodule 'library-jni/jni/libyuv' (https://git.chromium.org/external/libyuv.git) registered for path 'library-jni/jni/libyuv'
Submodule 'library-jni/jni/tropicssl' (https://gitorious.org/tropicssl/tropicssl.git) registered for path 'library-jni/jni/tropicssl'
Submodule 'library-jni/jni/vo-aacenc' (git://git.code.sf.net/p/opencore-amr/vo-aacenc) registered for path 'library-jni/jni/vo-aacenc'
Submodule 'library-jni/jni/vo-amrwbenc' (git://git.code.sf.net/p/opencore-amr/vo-amrwbenc) registered for path 'library-jni/jni/vo-amrwbenc'
Submodule 'library-jni/jni/x264' (git://git.videolan.org/x264.git) registered for path 'library-jni/jni/x264'
shalina@shalina-Inspiron-1720:~/test/AndroidFFmpeg$ git submodule sync
Synchronizing submodule url for 'library-jni/jni/ffmpeg'
Synchronizing submodule url for 'library-jni/jni/freetype2'
Synchronizing submodule url for 'library-jni/jni/fribidi'
Synchronizing submodule url for 'library-jni/jni/libass'
Synchronizing submodule url for 'library-jni/jni/libyuv'
Synchronizing submodule url for 'library-jni/jni/tropicssl'
Synchronizing submodule url for 'library-jni/jni/vo-aacenc'
Synchronizing submodule url for 'library-jni/jni/vo-amrwbenc'
Synchronizing submodule url for 'library-jni/jni/x264'
shalina@shalina-Inspiron-1720:~/test/AndroidFFmpeg$ git submodule update
Cloning into 'library-jni/jni/ffmpeg'...
remote: Counting objects: 431761, done.
remote: Compressing objects: 100% (92756/92756), done.
remote: Total 431761 (delta 343013), reused 426143 (delta 338278)
Receiving objects: 100% (431761/431761), 102.31 MiB | 582.00 KiB/s, done.
Resolving deltas: 100% (343013/343013), done.
Checking connectivity... done.
Submodule path 'library-jni/jni/ffmpeg': checked out '82db8ee3211014a38db6b8cae03f1c3246938eee'
Cloning into 'library-jni/jni/freetype2'...
remote: Counting objects: 52942, done.
remote: Compressing objects: 100% (8811/8811), done.
remote: Total 52942 (delta 43830), reused 52932 (delta 43825)
Receiving objects: 100% (52942/52942), 15.02 MiB | 535.00 KiB/s, done.
Resolving deltas: 100% (43830/43830), done.
Checking connectivity... done.
Submodule path 'library-jni/jni/freetype2': checked out '320613eeb83d0cd704de3e6adfb13dce787861bb'
Cloning into 'library-jni/jni/fribidi'...
remote: Counting objects: 536, done.
remote: Total 536 (delta 0), reused 0 (delta 0), pack-reused 536
Receiving objects: 100% (536/536), 1.80 MiB | 584.00 KiB/s, done.
Resolving deltas: 100% (307/307), done.
Checking connectivity... done.
Submodule path 'library-jni/jni/fribidi': checked out '3b4b2c54f2ba6964bb5e81cbf5dff70b1e0b1d44'
Cloning into 'library-jni/jni/libass'...
remote: Counting objects: 5538, done.
remote: Compressing objects: 100% (9/9), done.
remote: Total 5538 (delta 3), reused 0 (delta 0), pack-reused 5529
Receiving objects: 100% (5538/5538), 1.93 MiB | 593.00 KiB/s, done.
Resolving deltas: 100% (3598/3598), done.
Checking connectivity... done.
Submodule path 'library-jni/jni/libass': checked out 'de409235f4a32f6dfa6ab73eeb4bcd8d3b679387'
Cloning into 'library-jni/jni/libyuv'...
remote: Counting objects: 12385, done.
remote: Compressing objects: 100% (1886/1886), done.
remote: Total 12385 (delta 10482), reused 12385 (delta 10482)
Receiving objects: 100% (12385/12385), 5.77 MiB | 535.00 KiB/s, done.
Resolving deltas: 100% (10482/10482), done.
Checking connectivity... done.
Submodule path 'library-jni/jni/libyuv': checked out '5abb6d455640d657d35ce79365eaf78efea2a6c0'
Cloning into 'library-jni/jni/tropicssl'...
fatal: repository 'https://gitorious.org/tropicssl/tropicssl.git/' not found
Clone of 'https://gitorious.org/tropicssl/tropicssl.git' into submodule path 'library-jni/jni/tropicssl' failed
shalina@shalina-Inspiron-1720:~/test/AndroidFFmpeg$

@shalinashiyan You need to wait: https://gitorious.org/tropicssl/ gitorious has some migrations

Changed source of git module


Leaving sticky state throws error: "TypeError: state.params.$$keys is not a function"

Hey Chris,
first of all thank you for this great plugin!
I'm using the sticky states, to keep the background state of a modal view (similar to your example).
But I run into an error, if I want to change the state on an open modal:
TypeError: state.params.$$keys is not a function at resolveState ...
I prepared a plunker to replicate the issue:
http://plnkr.co/edit/1tLs2tgU1G2SUZgnB4Wr?p=preview
To replicate the error in the plunker click on:

brand 1
otherview
brand 2

If there is any more information I can help with, let me know!

Notes...
First thing I noticed is that sticky states prepped  the transition incorrectly.
-----------------------------------------------------
angular.js:13550    Current transition:  brand.otherview: {"brand":"1"}:  -> brand.sticky: {"brand":2}
angular.js:13550 Before transition, inactives are:   :  ["brand.sticky"]
angular.js:13550 After transition,  inactives will be:  []
angular.js:13550 Transition will exit:   ["EXIT: brand", "EXIT: brand.otherview"]
angular.js:13550 Transition will enter:  ["ENTER: brand", "REACTIVATE: brand.sticky"]
angular.js:13550 SurrogateFromPath:  ["reactivate_phase1:brand.sticky", "brand", "brand.otherview"]
angular.js:13550 SurrogateToPath:    ["brand", "reactivate_phase1:brand.sticky", "reactivate_phase2:brand.sticky"]

It is trying to reactivate brand.sticky which is clearly a violation of this snippet from the docs:


Rename zerobin

This pull request renames the Zerobin App to Message.  It addresses one half of #110.

Aside from the show.html in the ZeroBin folder needing to be built, I believe this is ready to go.  I assume that you will be rebuilding the html as part of the merge so won't bother doing that here.


Integrate with Kubernetes Auditing

https://kubernetes.io/docs/tasks/debug-application-cluster/audit/

[ ] add as a separate, optional configuration from fim-[k8s|openshift].yaml
[ ] add Audit Policy type for fimwatchers

Related to clustergarage/fim-controller#22

Notes:

auditing is done by kube-apiserver on all API calls -- e.g. "GET" all pods in namespace "foo"
one can record metadata of these calls such as who called it, when, etc.
backends that can be hooked up to this are log-to-file, webhook -- the webhook option is another kubeconfig (same API as what kube-apiserver exposes)
only one audit.k8s.io/Policy is defined per cluster -- can also be configured separately in multi-tenant


944 about page design tweaks

Pre-Flight checklist

[x] Screenshots and design review for any changes that affect layout or styling

[x] Desktop screenshots
[ ] Mobile width screenshots

What are the relevant tickets?
https://github.com/mitodl/mitxonline/issues/944
What's this PR do?
design tweaks requested in https://github.com/mitodl/mitxonline/issues/944
How should this be manually tested?
Go to frontend to see the style changes (Reference to css file attached to ticket)
Screenshots (if appropriate)
PRICE box, hero-block font size, and margin changes

course card border style change

course card hover

Removed hover on Instruction card (not actionable)

dashboard font size, badge, and button changes

Checkout

dropdown menu

button hover

hover on the course title

@pdpinch I've included the screenshots, please take a look when you get a moment. thanks

@collinpreston This appears on RC as well, I don't see the style changes in css file. Could you let me know what expect to change?

Codecov Report

Merging #955 (b671cda) into main (8081c5f) will decrease coverage by 0.03%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main     #955      +/-   ##
==========================================
- Coverage   84.49%   84.46%   -0.04%
==========================================
  Files         139      139
  Lines        6610     6610
  Branches     1111     1111
==========================================
- Hits         5585     5583       -2
- Misses        844      846       +2
  Partials      181      181

Impacted Files
Coverage Δ

ecommerce/discounts.py
78.94% <0.00%> (-1.76%)
:arrow_down:

ecommerce/views/v0/__init__.py
89.61% <0.00%> (-0.44%)
:arrow_down:

ecommerce/models.py
88.85% <0.00%> (ø)

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


Will hiveShim support hive.2.3.9 in the future？

Because my current hive version is 2.3.9,So i cannot use hive metastore

@numbernumberone thanks for raising this issue. These hive versions are tested by us. There are too many hive version being used across different companies, so for other hive versions not on the list, we are looking for the community's support to verify and add to the list.

@garyli1019  Okay Thank you very much

Looks like we've fixed the issue in  #208 @garyli1019 ?，please have a try @numbernumberone


incorrect FMRC regridding of gappy starts (non-contiguous F initialization times)

Reported by andrew wittenberg on 23 Mar 2016 19:00 UTC
See also #2381.
I created an FMRC aggregation using the attached ens.agg file, then ran the following commands:
 	NOAA/PMEL TMAP
 	FERRET v6.97 (beta/opt)
 	Linux 2.6.32-573.18.1.el6.x86_64 64-bit - 03/09/16
 	23-Mar-16 14:23

yes? use ens.agg
   dmgetting files...
building aggregation for member 01...
building aggregation for member 02...
aggregating 2 ensemble members...
yes? can v; set v ul; shade/y=0/x=140w/m=1 t_surf
yes? set v ll; shade/y=0/x=140w/m=1/lev t_surf[set v lr; shade/y=0/x=140w/m=1/lev t_surf[gt(tf_times)=tf_cal_t,gf(tf_times)=tf_lag_f](gt(tf_times)=tf_cal_t@fmrc]
yes?)

Now with the following uncommented in ens.agg, so that we start a forecast every month, the plots look fine (fcst_noskip.gif):
let init_months = "{01,02,03,04,05,06,07,08,09,10,11,12}"

But if we instead do
let init_months = "{01,04,07,10}"

so that we only read the 1-January, 1-April, 1-July, and 1-October starts, then we get fcst_noskip.gif.
In this latter case, the bottom-right panel ("forecast skill" view) is not right.  Some of the regridding may be getting done along the wrong axis.
What this bottom-right panel should look like is the following.  Its first column (lead 0.5 months) should traverse along the bottom-most diagonal of the "diagonal" view (panel at lower left) -- i.e.
dark green, light orange, reddish orange, etc.
rather than
dark green, light green, light orange, light orange, etc.
As it stands, it looks as if this first column of the "skill" view is pulling the first 3 times from the bottom of the first column of the diagonal view; the next three times from the 2nd column of the diagonal view; etc.  Not right.
Instead, each column of the "skill" view should have, traversing upward from the bottom of the column:
DATA, gap, gap, DATA, gap, gap, ...
i.e.
column 1: dark green, gap, gap, light orange, gap, gap, reddish orange, ...
column 2: light green, gap, gap, reddish orange, gap, gap, reddish orange, ...
And the columns of the "skill" view should be 1 month (~30 days) apart, not 90 days apart, along the horizontal axis.
Migrated-From: http://dunkel.pmel.noaa.gov/trac/ferret/ticket/2391

Comment by steven.c.hankin on 28 Mar 2016 20:04 UTC
In configuring a gappy FMRC, Ferret deduces the T-delta between the forecasts by finding the smallest T-delta between the consecutive files.  If this gap is not an integer divisor of all other gaps, it adjusts it by fractions (allows only 1/2 then 1/3) to find the true implied gap.  This logic had a bug (in SORT_FMRC_DSETS) that has now been fixed.  It was getting the wrong delta.
Even with this logic repaired, it remains possible to get the "wrong" conclusion about the natural T-delta between forecasts  e.g.  for "yes? FMRC = 1, 3, 5, 7, 9"  Ferret will see this as having no gaps at all.  It appears simply to have a uniform double-sized T-delta between forecasts.  If this situation is a problem, then we will need to add a qualifier FMRC/deltaF=.
A slightly mor obscure case of the preceding is
"yes? FMRC = 1, 5, 7, 9"
where Ferret will see just a single file missing between member no. 1 and member no. 5.

Comment by andrew.wittenberg on 29 Mar 2016 21:50 UTC
Rather than FMRC/deltaF=<value>, I'd suggest the proposal in #2393.

Comment by andrew.wittenberg on 15 Apr 2016 17:31 UTC
In v6.97beta5 dated 4/14/16, the compact and diagonal views look correct now.
But for the gappy starts, the skill view is still not right; the data are being traversed incorrectly.
See the attached plots.  plot_month.gif looks perfect -- its skill plot (bottom right) pulls its leftmost column from the bottom diagonal of the diagonal plot (bottom-left), and its rightmost column from the top diagonal of the diagonal plot.  As we move up a given column in the skill plot, we move upwards & to the right along its corresponding diagonal in the diagonal plot.
Now plot_season.gif looks perfect for the left 2 panels.  But the skill plot (bottom right) is all wrong.  It should have 12 columns (not 4), corresponding to the 12 diagonals (12 leads) in the diagonal plot.  And each column should have only 8 elements (8 verification times) covering the span of 24 months in the vertical.  In the skill plot the horizontal cell-centers should be a month apart (not 3 months apart), and in the vertical the cells should be a month high (as they currently are).
Traversing upwards along a column in the skill plot, we should have: valid month, gap month, gap month, valid month, gap month, gap month, valid_month, etc.  Just imagine taking the bottom diagonal (i.e. the lead time of 0.5 months) of the diagonal plot, and sliding all its cells (whether filled or empty) to the left side; that'd be the first column of the skill plot.
Now repeat for the 2nd-from-bottom diagonal of the diagonal plot.  All the valid cells and gaps are shifted upwards by one cell, relative to the first diagonal.  So that'll also be the case for the 2nd column of the skill plot.
So what we should see in the skill plot, is a stack of 8 diagonal stripes flowing upwards to the right, separated by 2 gap-months in the vertical and 2 gap-months in the horizontal.  The sequence of colors from bottom-left to top-right along each diagonal stripe in the skill plot, will be identical to the sequence of colors traversing upwards along a column in the compact plot or diagonal plot.

Comment by steven.c.hankin on 21 Apr 2016 00:29 UTC
I have a theory about what is going on here, and I want to run it past you before looking further.
Back story:
If you define two (or more) different FMRC's in the same session, the names of the special regrid axes differ, because they are distinct axes.  The first will get axes TF_CAL_T, TF_LAG_F and the next will get TF_CAL_T1, TF_LAG_F1, etc.  To see the special axis associated with each FMRC use SHOW DATA/ATTR.

In this sample session I have created both a monthly and a seasonal FMRC using some of your files and we see:

        yes? show data/att
             currently SET data sets:
           37> andrew_fmrc     Forecast aggregation
         Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
        ------------------------------------------------------------------------------------------

         .                               aggregate name  CHAR        11   F       andrew_fmrc
                                         _cal_t_ax       CHAR        8    T       TF_CAL_T
                                         _lag_f_ax       CHAR        8    T       TF_LAG_F

         TAU_X                 FLOAT     long_name       CHAR        17   T       zonal wind stress
        ...
                                         _ftime2d        CHAR        8    T       TF_TIMES
                                         _cal_t_ax       CHAR        8    T       TF_CAL_T
                                         _lag_f_ax       CHAR        8    T       TF_LAG_F
        ...

        ...
           38> fmrc_seasonal  (default)  Forecast aggregation
         Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
        ------------------------------------------------------------------------------------------

         .                               aggregate name  CHAR        13   F       fmrc_seasonal
                                         _cal_t_ax       CHAR        9    T       TF_CAL_T1
                                         _lag_f_ax       CHAR        9    T       TF_LAG_F1

         TAU_X                 FLOAT     long_name       CHAR        17   T       zonal wind stress
        ...
                                         _ftime2d        CHAR        8    T       TF_TIMES
                                         _cal_t_ax       CHAR        9    T       TF_CAL_T1
                                         _lag_f_ax       CHAR        9    T       TF_LAG_F1

Some comments relative to this:
o we are currently using the "full control" syntax, which we manually tell Ferret how to to the regridding.  Recall the document we wrote last Spring, where we spelled out a more automated syntax using a "REMAP" directive.  The analogous automated behaviors (and syntax) for FRMCs are still needed.  e.g.  FILL/remap=skill taux    or whatever.  This will tell Ferret to use the special axis that is indicated in the attributes.

o I think it will help our ability to communicate eficiently on these matters if we have some shared datasets/scripts.  I have attached the benchmark, bn_aggregate_f.jnl (and .sub), which creates and then uses test files.  (The variables in the test files are made needlessly complex ... a choice I have come to regret, but so it goes ...)  Feel free to hack on these whenever you want to communicate/discuss an issue.  Send me back modified versions (or other scripts) to facilitate communication -- or upload them to trac.

Comment by andrew.wittenberg on 21 Apr 2016 20:38 UTC
I'm attaching a simplified, self-contained set of benchmark scripts, and plots illustrating the above issues.
plot_monthly.gif looks good.
plot_seasonal.gif looks good in the left two panels, but not the bottom right.
plot_monthly_masked.gif is a version of plot_monthly.gif showing only the 1-JAN, 1-APR, 1-JUL, and 1-OCT starts.  Its bottom-right panel is what we ought to see in plot_seasonal.gif.
Note that the left panels in plot_monthly_masked.gif differ from plot_seasonal.gif.  In plot_seasonal.gif, we haven't told Ferret anything about the desired cell widths along the initialization axis -- so it has to infer it from the spacing of the initializations.  This indeed is the desired behavior.
Scripts: do_all.jnl, which calls test_fmrc.jnl, which calls make_dsets.jnl.

Comment by steven.c.hankin on 22 Apr 2016 00:21 UTC
Thank you so much for sending such a clear example.  I do, indeed, see where you are coming from.
BUT -- we will need to talk this over next week and think it through together.  My opening position is this:  The way that Ferret is handling things now is a little different from what you are envisioning -- but is self-consistent, defensible, and easier to understand visually.  (Yes, I am prepared to be persuaded otherwise.  I hope you are, likewise.)  Here's why ..
Many forecast model runs routinely have delta-L>1 between forecast runs, do they not?  For example, (making this sh*t up!) an operational weather model may output hourly with a 72 hour forecast and be run again 4 times daily -- ie. advancing 6 time steps between forecast runs.  So whereas your "seasonal" use case poses our problem as one where 2 out of three of the monthly model runs are missing; most use cases would pose these forecasts run series as complete representations -- no voids.  Delta-L>1 is merely a normal property of that particular FMRC.
Your proposed SKILL visualization:
In the visualization that you propose (ref plot_monthly_masked.gif) our skill plot will give us the most highly resolved interpretation of forecast lead time, but the plot will be '''mostly voids'''.  Using the weather forecast example, each 6 time steps on the TF_CAL_T (vertical) axis will correspond to a diagonal matrix of 6 points on the TF_LAG_F (horizontal) axis.  i.e. 5 out of 6 of all cells will be void.  It is difficult to visualize the environmental processes you are seeing this way (the plot_monthly_masked.gif SKILL plot illustrates how difficult).  A FILL plot is not even possible
The current SKILL visualization:
The visualization that Ferret is currently generating takes that very same 6x6 sub-matrix, but it smears the colors from the diagonal cells from left to right so they fill a broader 6x1 sub-matrix.  This definitely helps you to visualize the scientific phenomena more easily.  But in addition to being easier to view, it is also scientifically defensible.  The reality is that there is only a single forecast model run every 6 hours.  So the forecast lead times are less resolved concept as a result.   A very knowledgeable user like yourself would know that the most accurate interpretation of the wide 6x1 matrix, is to imagine a line that lies along its diagonal.
Here's my proposal:
I will make an easy-to-use tool that generates the high-resolution, sparse SKILL view that you like from the current SKILL view.  Your do_all.jnl already shows one approach -- it isn't a hard problem (TDB together).  And we will document the why's, wherefore's and useage of this tool in the User guide.  This means that for the precision-oriented user we have a complete solution.  And for the plebs (in which category I include myself!) the default visualization will be pleasing to the eye, albeit with a fuzzier interpretation of the F-lag resolution.

Comment by andrew.wittenberg on 22 Apr 2016 18:10 UTC
I understand your point about visualization, but I think there's a much better way to address it -- will describe at the end of this comment.
First as to correctness...  Yes, the plot_monthly_masked.gif is mostly voids -- but that's the only truly correct representation of the data.
In plot_monthly_masked.gif, in the skill plot (bottom right), let's look at the dark-red cell in the lower-left corner.  That's the forecasted monthly-mean temperature for the month spanning t=1-jan-1980:1-feb-1980, and for the month spanning f=0:1 "months since initialization at 1-jan-1980."
Now examine the next cell up, which is a void.  This is because there was NO FORECAST of the t=1-feb-1980:1-mar-1980 temperature, for F=0:1 months lead.  But there is a forecast of t=1-feb-1980:1-mar-1980 temperature at F=1:2 months lead; it's the red box just to the right of this void.
There's an important distinction between the "compact" & "diagonal" plots and the "skill" plot.  In the first two, the cells really "ought" to have 0 width along the abscissa, since they were initialized at a single point in time (not a time range).  However, since it'd be impossible to see an infinitesimally-narrow ribbon (and there's no way to create a "delta function" in Ferret for integrating/averaging), for convenience we assign these cells a finite width, stretching halfway to the next cell (unless we have additional information, e.g. a 1-feb forecast, that'd motivate a 1-month rather than 3-month cell width).  But in the "skill" plot, the cells really, correctly, ought to have identical finite widths in both the vertical & horizontal directions.  In the vertical we have a time average over a range of actual dates (e.g. 1-jan-1980:1-feb-1980); in the horizontal we have a time average over a range of lead times (e.g. 0:1 months since initialization at 1-jan-1980).
Now look at the skill plot as currently implemented in plot_seasonal.gif.  Here the bottom-left red cell makes no sense.  It says there's a forecast of the 1-jan-1980:1-feb-1980 mean, that spans 0:3 months since initialization -- clearly impossible.
So back to the correct gappy representation.  We needn't stop here, since Ferret can easily interpolate across these voids.  I've updated do_all.jnl and plot_monthly_masked.gif to show one simple method (@fln followed by @spz); the result is added to plot_monthly_masked.gif as a new top-right panel.  We start with something correct, then explicitly say how we're imputing the gaps.  As you can see, it does an excellent job of reconstructing the bottom-right panel of plot_monthly.gif.  (And later if we so desired, we could fill some of these gaps by running actual forecasts initialized from 1-feb-1980 and 1-mar-1980; then the interpolation would be able to do less work.)

Comment by steven.c.hankin on 25 Apr 2016 16:12 UTC
Your interpolation SKILL figure looks excellent. The added F resolution makes it much clearer.  (While driving I had imagined this plot, which was what changed my mind and lead to my email from Gig Harbor.  Sorry I didn't catch you 30 minutes sooner ...)
You may or may not agree with me on the following, but I believe that the '''interpolated''' SKILL view will be by far the dominant usage of it.  The sparse view needs to exist primarily as a reminder to the user of which cells do -- or not -- deserve the full level of trust.  When calling for forecast SKILL views from, say, an LAS interface, we'd probably only ever show the interpolated view.
Which means I'd like to put the interpolation steps directly into the code -- not requiring extra LET definitions.  So what is a nice syntax to differentiate the sparse and filled views?  In the full control syntax we might consider
gf(TF_TIMES)=TF_LAG_F@FILL
   vs
gf(TF_TIMES)=TF_LAG_F@FMRC  ! "FMRC" is the default ... usually omitted

In the as-yet-not-implemented automated syntax it might be something like
var[  vs
var[SKILL_SPARSE](SKILL]
)

We can talk about this on Wed., Thu.  We don't need to decide on the exact syntax now.
Which raises the question of what the "best" form of interpolation would be?  Would you agree that we can make a pretty sound argument for a linearly interpolated fill along the first column? That interpolation is equivalent to assuming that our sequence of initialization states has captured the phenomena. Once that first column is in place, a linear interpolation fill along the F (horizontal) axis is simply filling in the "missing" forecasts for the same verification time. (The left-most sub-matrices, where the first column has been filled by interpolation, is a little more complicated to describe/justify.)

Comment by andrew.wittenberg on 25 Apr 2016 17:37 UTC
Yes, I agree that in such gappy cases, the user will usually proceed to the interpolated view -- and it'd be great to have a simple way to do this interpolation, per your proposed syntax.
I do feel that the gappy version should be the default.  If the user must explicitly request filling (even via simple syntax), then they're forced to know at least a little about what they're doing, and how to interpret the resulting plot.
It'd be nice to have the interpolation be bilinear, e.g. as done by CONTOUR and FILL but on the grid-scale.  As an aside, that'd be a great general-purpose transformation to add:
shade gappy[equivalently

shade gappy [tf=@fbl](t=@fbl,f=@fbl]

or)

where @fbl stands for "fill bilinear".  This could reduce to @lin when performed on only a single axis, and perhaps generalized to multilinear interpolation when applied to 2 or more axes simultaneously.  Other multi-axis interpolation methods (e.g. bicubic, spline) can be found in Numerical Recipes:
[interpolation is a big enough topic that it probably deserves a new ticket.
Short of multi-axis interpolation, the easiest thing would be to just do ```[t=@fln](http://www.aip.de/groups/soe/local/numres/bookcpdf/c3-6.pdf]
Multi-axis)``` to fill each column.  Or fancier, do what I did in plot_monthly_masked.gif: fill in T, then smooth in F, then add back the cells lost at the edges:
let skill = temp[missing(skill[t=@fln,f=@spz:3](gt(tf_times)=tf_cal_t,gf(tf_times)=tf_lag_f]
shade),skill[t=@fln])

Comment by steven.c.hankin on 11 May 2016 16:32 UTC
Here is an outline of the code changes that will be needed to generate a full-resolution, sparse lag-F axis, per the discussion above:
Full control syntax: "sst[   o testing scripts
o ~hankin/FERRET32/fer/demo_fmrc.jnl
o bn_aggregate_f.jnl
o bn_aggregate_tef.jnl
o create the lag-F axis (named "TF_LAG_F", "TF_LAG_F1", ...)
o in fmt/src/cd_make_fmrc_axes.F see "NOW FINALLY THE FORECAST LEAD TIME AXIS OF THE FMRC"
o in the call to TM_MAKE_BASIC_AXIS change the delta time to match the delta time on the FMRC lag-T axis
o see note on "Monthly data in FMRCs" below
o request the data needed to perform the regrid specified by the user
o stk/aux_regrid_lims_2d_tf.F
o quite possibly no change is required in the request for data
o use the received data to perform the regrid
o doo/do_aux_var_regrid_2d_tf.F
o make sure to pre-fill with missing values, since the result will now be sparse
o look for "N-lag loop"
o I believe that the F-lag loop is referred to as the "N-lag loop" in this code.  I believe the name refers to "N actual forecasts ahead".  We are switching to an outlook in which we are thinking in terms of "N potential forecasts ahead" (with some of the potential forecasts missing), which is what leads to the sparse result
o add logic for auto-filling (interpolation) of the sparse field
o need to decide upon a syntax for this.  The "full control" syntax is "sst[gt(tf_times)=TF_CAL_T@FMRC,gf(tf_times)=TF_LAG_F@FMRC](gt(tf_times)=TF_CAL_T,gf(tf_times)=TF_LAG_F]"
)" where the "@FMRC" transformation type as the default if omitted.  My impulse would be that the auto-filled result should be indicated by a syntax such as "sst[gt(tf_times)=TF_CAL_T,gf(tf_times)=TF_LAG_F@FILL]"
o note: the cx_regrid_trans value for that "@FMRC" algorithm is named with parameter "pauxrgrd_fmrc".  You can grep the code to find the places that are relevant -- creating automatic labels, etc.
o My coding suggestion would be to create a new parameter pauxrgrd_fmrc_fill, and a new subroutine that performs the auto-fill/interpolation to be called from doo/do_aux_var_regrid_2d_tf.F if the @FILL transformation has been requested
'''Monthly data in FMRCs -- notes on the messiness of monthly data, in which there is no true delta-T
'''
o In an ideal world it would be desirable to explicitly capture the ambiguous notion of a "regular" monthly time series in the FMRC code.  In other words, to support an underlying encoding of 1, 2, 3, ... referring to month number (from some origin).  The current code, instead, sticks with the CF time encoding (days, hours, whatever) and allows small errors in regularity of spacing.  Messy and imperfect.  Besides cleaner code, another nice outcome would be that plot labels would then be in units of months (e.g. showing a forecast ability 3 months in advance).
o Ansley has new code (which I have not seen) that might provide a nice way to bring the concept of "regular" into the FMRC's.  It would be worth looking over how much work it would be to incorporate this into the FMRC framework and deciding if the effort is worthwhile.
o presumably with Ansley's code the incoming time series axes of the forecasts will be encoded (somehow) as month numbers
o you'd need to generate lag-T, cal-T, lag-F and cal-F all correspondingly in units of months (simple changes)
o The tf_times array would need to be converted into units of months (and would then become beautifully simple and regular small integer month numbers).  The code that assembles the 2d time array, tf_times, already includes the logic complexity of allowing for the T0 time encoding origin to shift between model runs.  You would need only modify this logic.
o in several places the numerical code that depends upon the 2d time array could then be simplified and cleaned up
o TDS special case: Note that FMRCs may be created by TDS, as an alternative to being synthesized by Ferret.  Separate code would be needed to address monthly data in this case.  See ~hankin/FERRET32/fer/demo_fmrc.jnl for an example script that can be run on either a TDS-generated or a Ferret-generated FMRCs.  (I dont think there is a benchmark test of a TDS-generated FMRC.  With Caron gone from Unidata, I'm not sure what the future of TDS-generated FMRCs is.)

Comment by steven.c.hankin on 11 May 2016 16:34 UTC
added karl as cc in case not already getting this

Comment by steven.c.hankin on 11 May 2016 16:35 UTC
*really added karl as cc in case not already getting this

Attachment from andrew.wittenberg on 23 Mar 2016 19:00 UTC
REPLACE THIS TEXT WITH UPLOADED FILE ./attachments/TRAC_2391_GIT_1663/ens.agg

Attachment from andrew.wittenberg on 23 Mar 2016 19:01 UTC
REPLACE THIS TEXT WITH UPLOADED FILE ./attachments/TRAC_2391_GIT_1663/fcst_noskip.gif

Attachment from andrew.wittenberg on 23 Mar 2016 19:01 UTC
REPLACE THIS TEXT WITH UPLOADED FILE ./attachments/TRAC_2391_GIT_1663/fcst_skip.gif

Attachment from andrew.wittenberg on 15 Apr 2016 17:32 UTC
REPLACE THIS TEXT WITH UPLOADED FILE ./attachments/TRAC_2391_GIT_1663/plot_month.gif

Attachment from andrew.wittenberg on 15 Apr 2016 17:32 UTC
REPLACE THIS TEXT WITH UPLOADED FILE ./attachments/TRAC_2391_GIT_1663/plot_season.gif

Attachment from steven.c.hankin on 21 Apr 2016 00:30 UTC
F-aggregation benchmark script
REPLACE THIS TEXT WITH UPLOADED FILE ./attachments/TRAC_2391_GIT_1663/bn_aggregate_f.jnl

Attachment from steven.c.hankin on 21 Apr 2016 00:31 UTC
'subroutine' script for F-aggregation benchmark
REPLACE THIS TEXT WITH UPLOADED FILE ./attachments/TRAC_2391_GIT_1663/bn_aggregate_f.sub

Attachment from andrew.wittenberg on 21 Apr 2016 20:39 UTC
REPLACE THIS TEXT WITH UPLOADED FILE ./attachments/TRAC_2391_GIT_1663/plot_monthly.gif

Attachment from andrew.wittenberg on 21 Apr 2016 20:39 UTC
REPLACE THIS TEXT WITH UPLOADED FILE ./attachments/TRAC_2391_GIT_1663/plot_seasonal.gif

Attachment from andrew.wittenberg on 21 Apr 2016 20:40 UTC
REPLACE THIS TEXT WITH UPLOADED FILE ./attachments/TRAC_2391_GIT_1663/make_dsets.jnl

Attachment from andrew.wittenberg on 21 Apr 2016 20:40 UTC
REPLACE THIS TEXT WITH UPLOADED FILE ./attachments/TRAC_2391_GIT_1663/test_fmrc.jnl

Attachment from andrew.wittenberg on 22 Apr 2016 18:11 UTC
REPLACE THIS TEXT WITH UPLOADED FILE ./attachments/TRAC_2391_GIT_1663/do_all.jnl

Attachment from andrew.wittenberg on 22 Apr 2016 18:12 UTC
REPLACE THIS TEXT WITH UPLOADED FILE ./attachments/TRAC_2391_GIT_1663/plot_monthly_masked.gif

Attachment from andrew.wittenberg on 25 Apr 2016 17:37 UTC
REPLACE THIS TEXT WITH UPLOADED FILE ./attachments/TRAC_2391_GIT_1663/do_all.2.jnl

Have this working (not checked in) for the case where the forecasted (verification) and initialization axis are regular and one of the initialization time matches one of the forecasted times for the first forecast.  I make a minimal superset of regular axis coordinates that contain times for both the forecasted and initialization times, and the TF_LAG_T, TF_CAL_F, TF_LAG_F, TF_CAL_T, and TF_TIMES all use these coordinates for their axes.  (So if a forecast is made every 3 t_unit and a forecasted times are every 2 t_unit, the superset coordinates will be every t_unit.)  The original aggregated data is still defined on its own grid, so the first step in using this data is to regrid this data to TF_LAG_T, TF_CAL_F
DEFINE DATA/AGGREGATE/F testdata = ....
! contains aggregated variable "actual"

LET actualfine = actual[GT=TF_LAG_T@BIN,GF=TF_CAL_F@BIN]
! plot shows something like plot_monthly_masked top left

LET diagview = actualfine[gt(tf_times)=tf_cal_t]
! plot shows something like plot_monthly_masked bottom left

LET leadview = actualfine[gt(tf_times)=tf_cal_t,gf(tf_times)=tf_lag_f]
! plot shows something like plot_monthly_mashed bottom right

The restriction of the regular axes and an initialization time matching a first forecast forecasted time is just to automatically come up with a minimal superset of coordinates, but also makes it easy to generated the TF_... values.
Question: is this restriction a big problem?  If not, I am thinking there will then need to be something (probably a new command) that the user provides the coordinates which then generates the TF_.... axes and TF_TIMES.

Example plots using four forecasts of "monthly" (365.2425/12 days) made every three "months" from the benchmarks.

FYI - the data for "actual" are perfect forecasts, so some of the test is making sure values/colors are identical where expected.

Changes commited https://github.com/NOAA-PMEL/Ferret/commit/ea0d1ee7f53974b8b4408b98ba3c2b7c8e855aa0
which require regular forecasted time and forecast initialization axes that share some dates in order to auto-generated the superset axis coordinates which is used to create the TF_... axes and TF_TIMES variable.
As mentioned in ticket #1665, allowing the user to specify the desired coordinates for the TF_... axes and resulting TF_TIMES variable would be desirable and remove the above restrictions, although the above could remain the default.


⚠ Bofrost.be has degraded performance

In 8ef0376, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 1527 ms

Resolved: Bofrost.be performance has improved in a7cbe58 after 30 minutes.


Adding topic wise problems

I guess adding topic wise problems can be helpful to beginners in the world of data structures and algorithms to recognize patterns in problems and hence easily solve them.

Yes, I agree. I never had thought of that before starting the repository.
It might take a bit of time from my side otherwise I'm open for pull requests from people :smile:
Feel free to raise changes if you wish.
Again thanks for raising the issue @DiligentCoder-20022001 :tada:

Sure, thank you for the response @afrozchakure : )

Let's just keep this issue open for now. So that others too know what to contribute to this repository :D


Cannot change/update permissions for sharing plan

I can share a plan with designated Co-owner, Editor, or Read only permissions. But when I attempt to change the permissions using the drop-down it only updates to the new selection if I choose a higher level of permission, so e.g. I can successfully change from Editor to Co-owner but cannot downgrade permissions.
Each time I select a new permission level I receive a "Sharing details successfully updated" message whether they have been updated or not

The email message it sends out also has a spacing issue. Add a space between 'have' and the permission level:
"Your permissions relating to"stability test (Horizon 2020 DMP)" have changed. You now haveco-owner access."

This is working as expected. Remaining issues w/permissions #219 and #220 Closing this issue.


mcu/nrf5340: Fix virtual flash driver compilation

Add dedicated IPC API for getting embedded netcore image information instead of vflash relying on internals of IPC driver.

builds, works, lgtm


Added withEndIndices option + tests + description in readme

eg. <html> hello </html>
Node:
name: html
startIndex: 0
endIndex: 19

@fb55 Any chance of this getting merged in?

Yeah, could take a while. As you can see been waiting since apr. Your best bet is to fork the repo and merge it yourself. Or just use my fork https://github.com/BuildingJarl/domhandler

Sorry for the delay. Thanks a lot for this patch, it's a great addition.


Groups and Users support. V2 Upgrade

added group name and excluded connection support
updated to latest version of serilog and signalr
added support for multiple groups and users
added support for a proxy based sink
new extension method for creating the client sink
new sink which accepts the uri, hubname, groups and users args to create a client connection which enables logging from other applications.
added usage documentation to the readme

@nblumhardt after reviewing the code and completing some usage testing, this is what I came up with. I ended up modifying the SignalRSink to just accept groups & users along with the IHubContext, which should solve PR #1 's main concern. In addition to that, I added in the other major use case for SignalR, which is for the sink to act as an client using the IHubProxy. For for that sink, you simply supply the uri and the name of the hub (optional) and it will make the connection and start sending...it also supports groups and users, however whomever is using that sink will have to deal with that on their hub implementation.
I was a bit conflicted about adding two sinks in the same lib, however I don't think there is enough to justify splitting them out...other than forcing you to take dependency on the SignalR client package. So, there are just two extension method's to support each scenario as well as full usage documentation in the readme. Let me know what you think.

@nblumhardt all set. Kept the original extension and the new one named SignalRClient

We can squash merge this one if you want to in order to clean up the commits...it would only affect my fork, which is fine. I'll delete and re-fork if necessary

@sirkirby Boom! :-) Great stuff. Should be out soon as a 2.0.x package.


adding tweaks about validity range

Adding a bunch of tweaks revolving around validation range.

These were included in #233.


button.active issues after update

Im running waybar under Hyprland, and just did a upgrade, and for some reason button.active is acting up.
background-color etc is working fine, but not color.
#workspaces button.active {
color: #00BFBC;
border-color: #00BFBC;
font-size: 18px;
}
Running
Waybar v0.9.24
Hyprland, built from branch  at commit v0.32.3  ().

Same. After the update I'm having issues with both that and the font

My issue was entirely fixed by fixing my font issue (Nerd Fonts changed naming from  Nerd Font to  NF. That broke a bunch of things on my end, incluing this

My issue was entirely fixed by fixing my font issue (Nerd Fonts changed naming from  Nerd Font to  NF. This originally broke a lot of stuff on my end, including OP's issue

Thanks for your response, but that doesn't seem to be my issue. My fonts are working fine and I recently tried removing persistent-workspaces, which makes the color come back. So button.active (specifically color) isnt working with persistent workspaces, but is working outside of it for some reason?
    "hyprland/workspaces": {
    //     "disable-scroll": true,
         "all-outputs": false,
         "format": "{icon}",
         "format-icons": {
         "active-only": false,
            "urgent": "",
            "active": "",
            "default": ""
         },
         "on-click":"activate",
         "persistent-workspaces": {
            // "*": 2
           "1": ["DVI-D-1", "HDMI-A-1", "eDP-1"],
           "2": ["DVI-D-1", "HDMI-A-1", "eDP-1"],
           "3": ["DVI-D-1", "HDMI-A-1", "eDP-1"],
           "4": ["DVI-D-1", "HDMI-A-1", "eDP-1"],
           "5": ["DVI-D-1", "HDMI-A-1", "eDP-1"]
         }

#workspaces {
/*    margin-top: 6px;*/
/*    margin-left: 12px;*/
/*    margin-bottom: 0px;*/
    border-radius: 10px;
    background: rgba(22, 19, 32,0.6);
    transition: none;
    font-size: 26px;
}

#workspaces button {
    transition: none;
    color: #5882AD;
    background: transparent;
    border-radius: 4px;
    border-left: 2px solid transparent;
    border-right: 2px solid transparent;
    padding:6px 16px 6px 12px;
}
#workspaces button:first-child{
/*    margin-left: 10px;*/
}
#workspaces button:last-child{
    padding-right: 18px;
}
#workspaces button.occupied {
    transition: none;
    color: #F28FAD;
    background: transparent;
    font-size: 4px;
}

#workspaces button.active {
    color: #A483B1;
    border-color: #A483B1;
}
#workspaces button.urgent {
    color: #FF7B89;
    border-color: #FF7B89;
}

#workspaces button:hover {
    transition: none;
    box-shadow: inherit;
    text-shadow: inherit;
    border-color: #D898D8;
    color: #D898D8;
}

#workspaces button.active:hover {
/*    color: #325379;*/
    border-color: #D898D8;
}

Alright, i was able to find a solution :) I had to restructure the code so button.persistent went above button.active, and also add button.empty inbetween. button.persistent color now holds the "busy" desktops color, while .empty holds the empty colors. I wonder when this change was implemented?
Anyways here is my relevant config if anyone else runs into the same problem:
#workspaces button.persistent {
    color: #00BFBC;
    font-size: 18px;
}

#workspaces button.empty {
    color: #3c485d;
}

#workspaces button.active {
    color: #00BFBC;
    border-color: #00BFBC;
    font-size: 18px;
}


Update recommended '[plugins."io.containerd.grpc.v1.cri".registry].config_path' value

What is the problem you're trying to solve
While reading the docs I found the following configuration example:

Set config_path = "/etc/containerd/certs.d" in your config.toml for containerd.

However, I believe the naming certs.d is not completely accurate, as it holds configuration files rather than certificates.
Describe the solution you'd like
I would like to propose to instead recommend /etc/containerd/hosts.d as the directory for configuration files (and optionally recommend /etc/containerd/certs.d as the directory for certificates). My reasoning behind this is that is hosts.d indicates more clearly that only host configuration files will be present.
An example of how documentation would look like:
$ tree /etc/containerd
/etc/containerd/
├── certs.d
│   └── ca.pem
└── hosts.d
    ├── <IP_ADDRESS>:5000
    │   └── hosts.toml
    └── docker.io
        └── hosts.toml

$ cat /etc/containerd/hosts.d/docker.io/hosts.toml
server = "https://docker.io"

[host."https://registry-1.docker.io"]
  capabilities = ["pull", "resolve"]

$ cat /etc/containerd/hosts.d/<IP_ADDRESS>:5000/hosts.toml
server = "https://<IP_ADDRESS>:5000"

[host."https://<IP_ADDRESS>:5000"]
  ca = "/etc/containerd/certs.d/ca.pem"

Additional context
This might impact #6485

cc @qiutongs @samuelkarp

I like your suggested naming.

I would like to take this up.
/assign

There is a legacy understanding around certs.d related to users migrating from Docker's configuration. The /etc/docker/certs.d uses the same hostname directory with certificates inside. The containerd host directory logic is compatible with this setup, so even if you don't have a hosts.toml, its able to read the certificates in the same layout is docker. The more confusing part of this would most likely be that we would expect users who have such an existing configuration to just set the config path to /etc/docker/certs.d without changing any other existing configuration. I am in favor of switching the example to /etc/containerd/hosts.d, but then we should just completely remove any mention of /etc/containerd/certs.d. We especially shouldn't include that directory with a different layout. Just put the ca.pem in the same directory or it can be linked to outside of /etc/containerd if it is defined elsewhere or globally.


Improve UI of Temperature calculator

In the calculator, style the "Reset" and "Submit" buttons also use placeholders for input box and output box.

@Srijita-Mandal Would like to work on this issue under JWOC.

@anurag8546 Go for it.

@Srijita-Mandal  updated.


Can't download 1 hour 42min video

Checklist

[ ] I'm reporting a broken site support issue
[x] I've verified that I'm running youtube-dl version 2021.06.06
[x] I've checked that all provided URLs are alive and playable in a browser
[x] I've checked that all URLs and arguments with special characters are properly quoted or escaped
[x] I've searched the bugtracker for similar bug reports including closed ones
[x] I've read bugs section in FAQ

Verbose log

[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['-v', '-f', '18', 'https://www.youtube.com/watch?v=OJWbI2qw6nU']
[debug] Encodings: locale cp932, fs mbcs, out cp932, pref cp932
[debug] youtube-dl version 2021.06.06
[debug] Python version 3.4.4 (CPython) - Windows-7-6.1.7601-SP1
[debug] exe versions: ffmpeg git-2020-05-01-39fb1e9, ffprobe git-2020-05-01-39fb1e9
[debug] Proxy map: {'no': '<IP_ADDRESS>'}
[youtube] OJWbI2qw6nU: Downloading webpage
[debug] Invoking downloader on 'https://r5---sn-8pgbpohxqp5-ajtl.googlevideo.com/videoplayback?expire=1631977176&ei=eKpFYcusL6GCp-oPkfmNoA8&ip=82.34.6
7.16&id=o-AMT0YHkpuqUHr2YoB6pKM1hOecMmGOlcq3ZUL1yVhw4U&itag=18&source=youtube&requiressl=yes&mh=H7&mm=31%2C29&mn=sn-8pgbpohxqp5-ajtl%2Csn-8pgbpohxqp5-aigy&ms=au%2Crdu&mv=m&mvi=5&pl=21&initcwndbps=2131250&vprv=1&mime=video%2Fmp4&ns=_sKl_n30OJFYXk1EJFH17XIG&gir=yes&clen=258313848&ratebypass=yes&dur=6140.818&lmt=1575364564771289&mt=1631955180&fvip=4&fexp=24001373%2C24007246&c=WEB&txp=2311222&n=o67B331c1E8Osx&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cratebypass%2Cdur%2Clmt&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=AG3C_xAwRgIhA
N6cxeipD7K-CatJrKX8QTU2NdoYQ7mWVhJcbJpmFV_nAiEAhbMsBsCPE1ajbEjI-NnI-7RIn58yA_mMmobFrxXN8BI%3D&sig=AOq0QJ8wRQIhAImZ1ZOYnnmx-eQiUXBo04prWACE_3-u7-tQ2O1bvwYUAiBaI2hzrNmwVrp5dSK_EeqtIj4mbgXnphyP-jPkD8W9kg=='
ERROR: unable to download video data: <urlopen error [WinError 10060] A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond>
Traceback (most recent call last):
  File "C:\Python\Python34\lib\urllib\request.py", line 1183, in do_open
  File "C:\Python\Python34\lib\http\client.py", line 1137, in request
  File "C:\Python\Python34\lib\http\client.py", line 1182, in _send_request
  File "C:\Python\Python34\lib\http\client.py", line 1133, in endheaders
  File "C:\Python\Python34\lib\http\client.py", line 963, in _send_output
  File "C:\Python\Python34\lib\http\client.py", line 898, in send
  File "C:\Python\Python34\lib\http\client.py", line 1279, in connect
  File "C:\Python\Python34\lib\http\client.py", line 871, in connect
  File "C:\Python\Python34\lib\socket.py", line 516, in create_connection
  File "C:\Python\Python34\lib\socket.py", line 507, in create_connection
TimeoutError: [WinError 10060] A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\ytdl-org\tmpkqxnwl31\build\youtube_dl\YoutubeDL.py", line 1976, in process_info
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\ytdl-org\tmpkqxnwl31\build\youtube_dl\YoutubeDL.py", line 1915, in dl
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\ytdl-org\tmpkqxnwl31\build\youtube_dl\downloader\common.py", line 366, in download
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\ytdl-org\tmpkqxnwl31\build\youtube_dl\downloader\http.py", line 351, in real_download
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\ytdl-org\tmpkqxnwl31\build\youtube_dl\downloader\http.py", line 116, in establish_connection
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\ytdl-org\tmpkqxnwl31\build\youtube_dl\downloader\http.py", line 110, in establish_connection
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\ytdl-org\tmpkqxnwl31\build\youtube_dl\YoutubeDL.py", line 2288, in urlopen
  File "C:\Python\Python34\lib\urllib\request.py", line 464, in open
  File "C:\Python\Python34\lib\urllib\request.py", line 482, in _open
  File "C:\Python\Python34\lib\urllib\request.py", line 442, in _call_chain
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\ytdl-org\tmpkqxnwl31\build\youtube_dl\utils.py", line 2737, in https_open
  File "C:\Python\Python34\lib\urllib\request.py", line 1185, in do_open
urllib.error.URLError: <urlopen error [WinError 10060] A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond>

Description

WRITE DESCRIPTION HERE
trying to download this specific video but it does not work. https://www.youtube.com/watch?v=OJWbI2qw6nU
I've used youtube-dl -f 18 https://www.youtube.com/watch?v=OJWbI2qw6nU and youtube-dl -f https://www.youtube.com/watch?v=OJWbI2qw6nU and it comes up as this error "ERROR: unable to download video data: <urlopen error [WinError 10060] A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond>"

Since its just audio, you can get the audio format:
youtube -v -1 -a 251 OJWbI2qw6nU

https://github.com/89z/mech

Since its just audio, you can get the audio format:
youtube -v -1 -a 251 OJWbI2qw6nU

https://github.com/89z/mech

Do I have to use the one in your link or does youtube-dl not work at all for downloading this?

You tell me, does it look like YouTube-DL works?

for this video -  https://www.youtube.com/watch?v=OJWbI2qw6nU
add  -o "%(id)s.%(ext)s"   so  it looks like this  youtube-dl -o "%(id)s.%(ext)s"  https://www.youtube.com/watch?v=OJWbI2qw6nU
the video will now download.

for this video - https://www.youtube.com/watch?v=OJWbI2qw6nU i don't get the
error above, i just get error file name too long. so i
add -o "%(id)s.%(ext)s" so it looks like this youtube-dl -o "%(id)s.%(ext)s" https://www.youtube.com/watch?v=OJWbI2qw6nU
the video will now download.

still getting the same error message using this command

So does this format play in the browser?
And if so, is any required proxy configuration being passed to yt-dl?
It appears that something is blocking your connection. (WorksForMe)

So does this format play in the browser?
And if so, is any required proxy configuration being passed to yt-dl?
It appears that something is blocking your connection. (WorksForMe)

I can download any other youtube video but not this one. How can I troubleshoot why it blocks the connection when downloading this video? I've tried downloading 5 hour long videos and it works fine

for this video - https://www.youtube.com/watch?v=OJWbI2qw6nU i don't get the
error above, i just get error file name too long. so i
add -o "%(id)s.%(ext)s" so it looks like this youtube-dl -o "%(id)s.%(ext)s" https://www.youtube.com/watch?v=OJWbI2qw6nU
the video will now download.

still getting the same error message using this command

found at least 2 more posts with the same error
and it is an issue with your network connection.

Also, try -f 134+140.

for this video - https://www.youtube.com/watch?v=OJWbI2qw6nU i don't get the
error above, i just get error file name too long. so i
add -o "%(id)s.%(ext)s" so it looks like this youtube-dl -o "%(id)s.%(ext)s" https://www.youtube.com/watch?v=OJWbI2qw6nU
the video will now download.

still getting the same error message using this command

found at least 2 more posts with the same error
and it is an issue with your network connection.

I can play the video in my browser with no problems. I can download any other youtube video without errors but not this one why is that?

for this video - https://www.youtube.com/watch?v=OJWbI2qw6nU i don't get the
error above, i just get error file name too long. so i
add -o "%(id)s.%(ext)s" so it looks like this youtube-dl -o "%(id)s.%(ext)s" https://www.youtube.com/watch?v=OJWbI2qw6nU
the video will now download.

still getting the same error message using this command

found at least 2 more posts with the same error
and it is an issue with your network connection.

I can play the video in my browser with no problems. I can download any other youtube video without errors but not this one why is that?

while signed in to youtube, try using the authenticated cookies option
and see if the video will download.

for this video - https://www.youtube.com/watch?v=OJWbI2qw6nU i don't get the
error above, i just get error file name too long. so i
add -o "%(id)s.%(ext)s" so it looks like this youtube-dl -o "%(id)s.%(ext)s" https://www.youtube.com/watch?v=OJWbI2qw6nU
the video will now download.

still getting the same error message using this command

found at least 2 more posts with the same error
and it is an issue with your network connection.

I can play the video in my browser with no problems. I can download any other youtube video without errors but not this one why is that?

while signed in to youtube, try using the authenticated cookies option
and see if the video will download.

what is the authenticated cookies option?

Run this command:
youtube-dl -g -f 18  "https://www.youtube.com/watch?v=OJWbI2qw6nU"

(where -g is a synonym for --get-url)
It should print a long URL like the one listed above in the line beginning [debug] Invoking downloader on .... Copy the URL, paste it into the browser's address bar, and go to the URL. You should see either a video player in the browser, or a 'Save link as... dialog. If so, the browser has some network setting, like a proxy, that isn't set up for yt-dl.

Run this command:
youtube-dl -g -f 18  "https://www.youtube.com/watch?v=OJWbI2qw6nU"

(where -g is a synonym for --get-url)
It should print a long URL like the one listed above in the line beginning [debug] Invoking downloader on .... Copy the URL, paste it into the browser's address bar, and go to the URL. You should see either a video player in the browser, or a 'Save link as... dialog. If so, the browser has some network setting, like a proxy, that isn't set up for yt-dl.

says The connection has timed out

for this video - https://www.youtube.com/watch?v=OJWbI2qw6nU i don't get the
error above, i just get error file name too long. so i
add -o "%(id)s.%(ext)s" so it looks like this youtube-dl -o "%(id)s.%(ext)s" https://www.youtube.com/watch?v=OJWbI2qw6nU
the video will now download.

still getting the same error message using this command

found at least 2 more posts with the same error
and it is an issue with your network connection.

I can play the video in my browser with no problems. I can download any other youtube video without errors but not this one why is that?

while signed in to youtube, try using the authenticated cookies option
and see if the video will download.

what is the authenticated cookies option?

if you use firefox, install the addon cookies.txt
for chrome, it's get cookies.txt
go back to youtube while signed in and back to this video  https://www.youtube.com/watch?v=OJWbI2qw6nU click on get cookies.txt and select export it will save a cookie file
now, run youtube-dl -o "%(id)s.%(ext)s" https://www.youtube.com/watch?v=OJWbI2qw6nU --cookies "paste the cookie file.txt" here without the quotes. now see if the video will download.

says The connection has timed out when pasting the link into the browser

At least that's consistent. Your network is blocking the URL. Try the same thing with -f 140 instead of -f 18, to get just the mp4/AAC audio.
Cookies couldn't cause the connection attempt to time out, because the server needs to make the connection first before checking your cookie.

says The connection has timed out when pasting the link into the browser

At least that's consistent. Your network is blocking the URL. Try the same thing with -f 140 instead of -f 18, to get just the mp4/AAC audio.
Cookies couldn't cause the connection attempt to time out, because the server needs to make the connection first before checking your cookie.

still the same error with "-f 140"

And you can still play the same video in the browser using the YT site?

And you can still play the same video in the browser using the YT site?

yes


"No connection established. Last error: null" after connection forcefully closed

Steps to reproduce:

Start a GRPC server locally.
Start a long-running server stream to that server.
Shutdown the server while the connection is still active in VS Code.
Restart server.
Try to call any endpoint from VS Code, either unary or stream endpoint, it will return a "No connection established. Last error: null".

At point 3, VS Code shows a "Call cancelled" message, so looks like the connection was terminated on both sides, but for some reason after the server restart it won't be able to connect back.
Sometimes it solves itself after a few tries, sometimes deleting the sessions looks like work, but a lot of times I need to restart VS Code to work again.
It does not happen if there is no pending connection to the server, only when a stream is in progress and the server is forcefully stopped, which can happen a lot during development.
The relevant log entry:
Error: Error: 14 UNAVAILABLE: No connection established. Last error: null
	at AU.<anonymous> (/home/ncsibra/.vscode-server/extensions/anweber.vscode-httpyac-6.14.0/dist/extension.js:137:158735)
	at AU.emit (node:events:518:28)
	at Object.onReceiveStatus (/home/ncsibra/.vscode-server/extensions/anweber.vscode-httpyac-6.14.0/dist/extension.js:90:5903)
	at Object.onReceiveStatus (/home/ncsibra/.vscode-server/extensions/anweber.vscode-httpyac-6.14.0/dist/extension.js:88:8193)
	at /home/ncsibra/.vscode-server/extensions/anweber.vscode-httpyac-6.14.0/dist/extension.js:104:30902
	at process.processTicksAndRejections (node:internal/process/task_queues:77:11)

It looks like it happens with simple unary streams if the last call before the server shutdown fails.

@ncsibra Unfortunately, I can't recreate the error. For me, it always returns a Call Canceled and I can simply send further requests.

sometimes deleting the sessions looks like work

Yes, that should always fix the error. The reference to a previous client is in the session and I would establish a new connection/ client without a session.
The error is thrown by grpc-js (see load-balancer-round-robin.ts#L157 Error reads similar to https://github.com/grpc/grpc-node/issues/2694

Can I provide you with more logs to help you solve this?
Or is it possible to recreate the client when you get an error like this?

@ncsibra I would just do a release where I log out more information. In other words, run the error once with LogLevel.debug after the release, this could help.
Otherwise I would have tried to reproduce it with the docker container of grpcb.in docker run -it --rm -p 9000:9000 -p 9001:9001 moul/grpcbin) as a server. If you provide me with a simple server project that has a longer connection and you can produce the error there, that might help too.
I've read a bit of the code and yes I don't actively destroy the client on error, but the session delete should have taken care of that. So reproducing the error would be very helpful.

please reopen ticket if you can provide a way to recreate the error or I got more information. thx


FI-1927 inferno start --watch command

Summary
Adds a --watch flag to inferno start that uses rerun to wrap the existing command that runs Inferno.  This is a pretty simple solution compared to a much more complex 'hot-reload' type functionality.  However, it saves test writers the need to do several commands to stop and restart every time a file changes and has the exact same result as that method of reloading Inferno.
I have it change on the default rerun watch targets, which is almost all file types that we deal with, but not quite everything.  It won't restart when the Gemfile is changed, for example.  It also doesn't affect the services... it might make sense to add --watch to services when the IG package.tgz is updated, but that solution may look a little different than this and probably warrants a separate ticket.
I used the same pattern as we did for foreman, where you need to install the gem separately, and the CLI will alert you if you haven't installed it but try to use the watch command.  I don't love this solution, but since we are already doing it for foreman I don't see any harm in being consistent with the pattern.
I updated the documentation to tell the user to install rerun and add the --watch flag in the quickstart section.  I didn't see any other references to inferno start in our docs.
Testing Guidance
You can test in this repo simply by running bin/inferno start --watch, and you can see the server restarting.  For a more realistic test, in a separate test kit like g10, you can run something like ../inferno-core/bin/inferno start --watch (assuming that is the path to this copy of inferno-core).    If you change a test, it should automatically fully restart Inferno after a second or two max.
It should be tolerant to bad changes -- eg. invalid Ruby... the service won't start and will give a stack trace, but by fixing the error and resaving the file it should automatically restart again.
It shouldn't consume a lot of resources if you do this for awhile.  I haven't really checked this but didn't notice anything unusual.
I haven't tried this on Windows.  I believe it should work fine on WSL2, but there is always the chance that something funny is happening with file change watches/signals in that kind of environment.  If it doesn't work properly in Windows, I don't think we should block this though regardless... we should be sure to try it out later.

Codecov Report
Patch coverage has no change and project coverage change: +20.16 :tada:

Comparison is base (e6c4711) 74.09% compared to head (1eda07a) 94.26%.

:exclamation: Current head 1eda07a differs from pull request most recent head d953792. Consider uploading reports for the commit d953792 to get more accurate results

Additional details and impacted files
@@             Coverage Diff             @@
##             main     #329       +/-   ##
===========================================
+ Coverage   74.09%   94.26%   +20.16%
===========================================
  Files         194      116       -78
  Lines        9469     3102     -6367
  Branches      787      364      -423
===========================================
- Hits         7016     2924     -4092
+ Misses       2036      178     -1858
+ Partials      417        0      -417

Flag
Coverage Δ

backend
94.26% <ø> (ø)

frontend
?

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

client/src/api/TestSuitesApi.ts

...components/LandingPage/__mocked_data__/mockData.ts

...TestSuiteDetails/TestListItem/InputOutputsList.tsx

client/src/components/Footer/styles.tsx

client/src/setupTests.ts

...src/components/_common/__mocked_data__/mockData.ts

client/src/api/RequestsApi.ts

...ite/TestSuiteDetails/TestListItem/ProblemBadge.tsx

client/src/components/ThemeProvider.tsx

...nt/src/components/InputsModal/InputsRadioGroup.tsx

... and 68 more

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

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


cannot use time.Now().Add(time.Hour * 24).Unix() (type int64) as type *jwt.Time in field value

Why am i getting this error?
cannot use time.Now().Add(time.Hour * 24).Unix() (type int64) as type *jwt.Time in field value

Here is what i have
import (
	"github.com/gofiber/fiber/v2"
	"golang.org/x/crypto/bcrypt"
	"github.com/dgrijalva/jwt-go/v4"
	"strconv"
	"time"
)

	payload := jwt.StandardClaims{
		Subject: strconv.Itoa(int(user.Id)),
		ExpiresAt: time.Now().Add(time.Hour * 24).Unix(),
	}

	token, err := jwt.NewWithClaims(jwt.SigningMethodHS256, payload).SignedString([]byte("secret"))

What am i doing wrong here???
issue is on this particular line
		ExpiresAt: time.Now().Add(time.Hour * 24).Unix(),

I have also tried the following
	payload := &jwt.StandardClaims{
		Subject: strconv.Itoa(int(user.Id)),
		ExpiresAt: time.Now().Add(time.Hour * 24),
	}

i get this error
cannot use time.Now().Add(time.Hour * 24) (type time.Time) as type *jwt.Time in field value

funny thing is i see this as part of the examples here https://github.com/dgrijalva/jwt-go/blob/master/example_test.go#L18 but yet does not work for me
	payload := &jwt.StandardClaims{
		Subject: strconv.Itoa(int(user.Id)),
		ExpiresAt: 3600,
	}

i get this error
cannot use 3600 (type int) as type *jwt.Time in field value

could you fixed that error. I got same

try change import
from "github.com/dgrijalva/jwt-go/v4"
to "github.com/dgrijalva/jwt-go"


Remove separate namespace for tests

Tests have the Test suffix so they don't clash with other classes. In rare cases if such will happen, rename testing class to avoid clashing.

Should not be done. It is ok as test have the common prefix from the composer.json:
    "autoload": {
        "psr-4": {
            "Morpho\\": "lib/"
        },

Also it is not clear where to move the integration and manual tests. So leave it as is.


Heading Attributes

Heading Attributes
User Story
AS A marketing agency
I WANT a codebase that follows accessibility standards
SO THAT our own site is optimized for search engines
Acceptance Criteria
GIVEN a webpage meets accessibility standards
WHEN I view the heading attributes
THEN they fall in sequential order

This is complete


{% page_attribute "changed_date" %}

I add a {% page_attribute "changed_date" %} into the base template.
On a blog entry detail page, this date is not the blog date. It seems that this is the AppHook-Page date.
Is that normal?!?

Yes: {% page_attribute %} is for django CMS page data only.
To access the post data you cna use the post variable in the context

Ah, thanks!
I've done this:
    {% if post.date_published %}{# djangocms-blog #}
        {{ post.date_published|date:"SHORT_DATE_FORMAT" }}
    {% else %}
        {% page_attribute "changed_date" as date_changed %}{{ date_changed|date:"SHORT_DATE_FORMAT" }}
    {% endif %}

;)


[Mobile] My DAOs and My Feed are not accessible from physical mobile devices

This issue is observed on physical android device Nokia 8 with Android 9.
In the web browser everything is OK with any resolution. Issue is reproducible on physical device only.
AR: "My Feed" and "My DAOs" buttons are absent if open Astro DAO app in mobile browser on physical device
AR: "My Feed" and "My DAOs" buttons should be present if open Astro DAO app in mobile browser on physical device

Not an issue


Fix joint translations

This fixes the planar and floating joints by first translating, then rotating, instead of rotation then translation.

@EzraBrooks I tested it again with your changes and it's working the same


MinMove doesn't change space between y-axis values

Hi all,
I've been going around in circles with this and need help.
I understand that minMove allows you to set the resolution of the y-axis values (mine is set to 0.0001) but it doesn't set the actual spacing between each value on the y-axis (ie the literal white space you see between each y-axis value).
Here is the code:
Javascript:
"const getData = async () => {
const res = await fetch('Pioneer_of_the_Nile_original.csv');
const resp = await res.text();
const cdata = resp.split('\n').map((row) => {
const [time1, high, low] = row.split(',');
// Parse the time string and add 1 hour (in milliseconds)
const time = new Date(${time1}).getTime() / 1000 + 3600; // 3600 seconds = 1 hour
return {
time,
open: high * 1,
high: high * 1,
low: low * 1,
close: low * 1,
};
});
return cdata;
};
const displayChart = async () => {
const chartProperties = {
width: 1500,
height: 600,
timeScale: {
timeVisible: false,
secondsVisible: false,
rightOffset: 3, // Add a right offset to make room for the y-axis
barSpacing: 1, // Adjust the width of the candles by setting the bar spacing
timeVisibleRange: {
from: new Date('2023-03-31').getTime() / 1000, // Convert milliseconds to seconds
to: new Date('2023-07-31').getTime() / 1000,
}
},
priceScale: {
position: 'right', // Position of the price scale
mode: 0, // Normal mode
autoScale: false, // Disable automatic scaling
minValue: 0.9000, // min value for y-axis
maxValue: 1.3000, // max value for y-axis
scaleMargins: {
top: 0.0500,
bottom: 0.0500,
},
minMove: 0.0001, // Set the minimum step between price scale values to 0.0001 BUT IT DOESN'T CHANGE THE
// WHITE SPACE BETWEEN THE Y-AXIS VALUES
tickSize: 0.0005, // Set the tick size for the y-axis
tickMarkFormatter: (tickValue, index, formatter) => {
// Adjust the space between tick marks by modifying the tickValue
// For example, you can round tick values or apply custom formatting
return tickValue.toFixed(4); // Adjust the number of decimal places as needed
},
},
};
const domElement = document.getElementById('tvchart');
const chart = LightweightCharts.createChart(domElement, chartProperties);
const candleseries = chart.addCandlestickSeries();
const klinedata = await getData();
candleseries.setData(klinedata);
// Changing the Candlestick colors
candleseries.applyOptions({
upColor: "rgb(84, 174, 50)", // light green candles for upward candles
downColor: "rgb(65, 132, 70)", // dark green candles for downward candles
borderVisible: false,
});
// Apply price format options to the candlestick series
candleseries.applyOptions({
priceFormat: {
type: 'price',
precision: 4,
minMove: 0.0001,
},
});
// Calculate the time range of the data and other operations...
};
displayChart();"
HTML code:
"

Pioneer of the Nile

"
the dataset (non-financial):
01-Jan-23,0.9900,1.0100
11-Apr-23,1.0395,0.9405
12-Apr-23,1.0395,0.9405
13-Apr-23,1.0395,0.9405
14-Apr-23,1.0395,0.9405
15-Apr-23,1.0395,0.9405
16-Apr-23,1.0395,0.9405
17-Apr-23,1.0395,0.9405
18-Apr-23,1.0815,0.9785
19-Apr-23,1.0815,0.9785
20-Apr-23,1.0815,0.9785
21-Apr-23,1.0815,0.9785
22-Apr-23,1.0815,0.9785
23-Apr-23,1.0815,0.9785
24-Apr-23,1.092,0.988
25-Apr-23,1.092,0.988
26-Apr-23,1.092,0.988
27-Apr-23,1.092,0.988
28-Apr-23,1.092,0.988
29-Apr-23,1.092,0.988
30-Apr-23,1.092,0.988
01-May-23,1.092,0.988
02-May-23,1.092,0.988
03-May-23,1.092,0.988
04-May-23,1.0815,0.9785
05-May-23,1.0815,0.9785
06-May-23,1.0815,0.9785
07-May-23,1.0815,0.9785
08-May-23,1.0815,0.9785
09-May-23,1.1025,0.9975
10-May-23,1.1025,0.9975
11-May-23,1.1025,0.9975
12-May-23,1.1025,0.9975
13-May-23,1.1025,0.9975
14-May-23,1.1025,0.9975
15-May-23,1.1025,0.9975
16-May-23,1.1025,0.9975
17-May-23,1.1025,0.9975
18-May-23,1.1025,0.9975
19-May-23,1.1025,0.9975
20-May-23,1.1025,0.9975
21-May-23,1.1025,0.9975
22-May-23,1.1025,0.9975
23-May-23,1.1025,0.9975
24-May-23,1.1025,0.9975
25-May-23,1.1025,0.9975
26-May-23,1.1025,0.9975
27-May-23,1.1025,0.9975
28-May-23,1.1025,0.9975
29-May-23,1.1025,0.9975
30-May-23,1.1025,0.9975
31-May-23,1.1025,0.9975
01-Jun-23,1.1025,0.9975
02-Jun-23,1.1025,0.9975
03-Jun-23,1.1025,0.9975
04-Jun-23,1.1025,0.9975
05-Jun-23,1.1025,0.9975
06-Jun-23,1.1025,0.9975
07-Jun-23,1.1025,0.9975
08-Jun-23,1.1025,0.9975
09-Jun-23,1.1025,0.9975
10-Jun-23,1.1025,0.9975
11-Jun-23,1.1025,0.9975
12-Jun-23,1.1025,0.9975
13-Jun-23,1.1025,0.9975
14-Jun-23,1.1025,0.9975
15-Jun-23,1.1025,0.9975
16-Jun-23,1.1025,0.9975
17-Jun-23,1.1025,0.9975
18-Jun-23,1.1025,0.9975
19-Jun-23,1.1025,0.9975
20-Jun-23,1.1025,0.9975
21-Jun-23,1.1025,0.9975
22-Jun-23,1.1025,0.9975
23-Jun-23,1.1025,0.9975
24-Jun-23,1.1025,0.9975
25-Jun-23,1.1025,0.9975
26-Jun-23,1.1025,0.9975
27-Jun-23,1.1025,0.9975
28-Jun-23,1.1025,0.9975
29-Jun-23,1.1025,0.9975
30-Jun-23,1.1025,0.9975
01-Jul-23,1.1025,0.9975
02-Jul-23,1.1025,0.9975
03-Jul-23,1.1025,0.9975
04-Jul-23,1.1025,0.9975
05-Jul-23,1.1025,0.9975
06-Jul-23,1.1025,0.9975
07-Jul-23,1.1025,0.9975
08-Jul-23,1.1025,0.9975
09-Jul-23,1.1025,0.9975
10-Jul-23,1.1025,0.9975
11-Jul-23,1.1025,0.9975
12-Jul-23,1.1025,0.9975
13-Jul-23,1.1025,0.9975
14-Jul-23,1.1025,0.9975
15-Jul-23,1.1025,0.9975
16-Jul-23,1.1025,0.9975
17-Jul-23,1.1025,0.9975
18-Jul-23,1.1025,0.9975
19-Jul-23,1.1025,0.9975
20-Jul-23,1.1025,0.9975
21-Jul-23,1.1025,0.9975
22-Jul-23,1.1025,0.9975
23-Jul-23,1.1025,0.9975
24-Jul-23,1.1025,0.9975
25-Jul-23,1.1025,0.9975
26-Jul-23,1.0815,0.9785
I would like to make the white spacing smaller between each y-axis interval (ie I want the y-axis values to be physically closer together on the graph). Please could someone help? Attached is a screenshot of the graph so far.

I have same issue, have you solved the problem yet? @EMChloe


Support additional options in prospector

With the newest version of filebeat (v. 1.1) just out, most people are waiting to use the "multiline" which is not included in the prospector template. There are also quite a few other new options which need to be added.
I list of options from https://www.elastic.co/guide/en/beats/filebeat/1.1/filebeat-configuration-details.html that I see need to be added are:

exclude_lines
include_lines
exclude_files
max_bytes
multiline
spool_size
publish_async
idle_timeout
registry_file

Of these, the most important to everyone is the multiline support.

@pcfens , I am working on this now.

I'm working on this as well, and am nearly done
Some of the settings you listed (at least registry_file, idle_timeout, and spool_size) are global settings that can't be applied on a per-prospector level which is why they were left out originally. I'll hopefully be pushing something up shortly.

@pcfens , Do you want me to post what I have? I have added a new test too and am about to test it.

If you already have something then go for it - I don't have any tests around this stuff yet since I've been cleaning up docs.

I have posted https://github.com/pcfens/puppet-filebeat/pull/11 to quick start you to a successful implementation @pcfens .
When do you think that you will merge and create a puppet module?

@pcfens , I have fixed all test and merge issues. I also removed the global settings from the per-prospector level.

This got handled by commit 9730c7fe


Never triggers, using example code

require('dotenv').config();

const Snoowrap = require('snoowrap');
const Snoostorm = require('snoostorm');

const r = new Snoowrap({
    userAgent: 'nodejs:redditinsurance:v1.0.0 (by u/austinhuang)',
    clientId: process.env.CLIENT_ID,
    clientSecret: process.env.CLIENT_SECRET,
    username: process.env.REDDIT_USER,
    password: process.env.REDDIT_PASS
});
const client = new Snoostorm(r);

var comments = client.CommentStream({
	subreddit: "all",
	results: 1000,
	pollTime: 3000
});

comments.on('comment', (comment) => {
    if (comment.body === 'I\'d like to start a claim.') {
		return r.getSubmission(comment.link_id).fetch().then(post => {
			return comment.reply('Your claim has been submitted. We\'ll get back to you once it is processed.\n\nBest Regards, Reddit Insurance^[Info](https://reddit.com/r/RedditInsurance)');
		});
    }
});```

Can't test this now, what's the output/error?

There is no outputaside from the "you are being ratelimited" thingy, it just doesn't do anything.

If you're getting rate limiting errors, then it sounds like you haven't corrected configured your bot account. Depending on the exact error message, you may be unable to make posts/read data because of karma restrictions. You can remove these restrictions by making the bot accounts moderators on the applicable subreddit. However, I can't really help you unless you give me the exact output when the code is executed

Since I left Snoostorm already (Basically setInterval to fetch posts), I cannot retest it (I can only do stuff on my borrowed VPS which I can't use it for testing, I can only use it for production. Plus, my own PC is admin-locked thus I can't get nodejs). I think there was no output log aside from ratelimiting (by Snoowrap).

Be wary of duplicate responses when using setInterval; snoostorm had a system to ensure that handlers were never called more than once for one comment / post


Externalize MFR

Purpose
Current implementation of the modular file renderer is not very modular. Making the MFR its own project increases modularity. New MFR functionality is greater than or equal to functionality of the old MFR.
Changes

Externalize MFR
Improve support for .pdb by switching rendering libraries
Improve support for audio files
Improve support for tabular files
Add (browser dependent) support for ogv/webm/mp4 video files

Side Effects
Miscellaneous other bug fixes, see MFR's commit log for details.

Code review done in person. Changes made during merge. :octopus:


Scaling factors

Hi!
I think the scaling factors in the linear attention are wrong.
You have
q = q.softmax(dim=-1)
q = q * dim ** -0.5

k = k.softmax(dim=-2)

In the paper, both Q and K are scaled, however each with sqrt(N), where N is the usual scaling factor - sqrt(D_head). Shouldn't it be:
# First apply softmax, then scale - Equations 3 and 4 from the paper.
q = q.softmax(dim=-1)
k = k.softmax(dim=-2)

q = q * dim ** -0.25 # it's 1/sqrt(sqrt(d_head))
k = k * dim ** -0.25 # same.

Figured they are equivalent because scalar multiplication is commutative with matrix
multiplication and matrix multiplication is associative. Closing the issue.


wrong type in overlay Positioning

Describe the bug
https://vue3openlayers.netlify.app/componentsguide/overlay/#positioning
positioning
Type: string
Default: top-left
BUT
:positioning await ARRAY.
working: :positioning="['top-left']" // or const positioning = ref(['top-left'])
not working: :positioning="'top-left'" // or const positioning = ref('top-left')
To Reproduce
just try a component
Expected behavior
expected the right is like not workin
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):
Smartphone (please complete the following information):
Additional context
https://github.com/MelihAltintas/vue3-openlayers/blob/main/src/components/map/Overlay.vue
...
positioning: {
type: Array
},
...

position type has already array. Documentation is wrong :) I will update. Thanks for your report. If you like the project please give a star :)


Fixed issue #879

Fixes issue #879

@elsassph @Neverbirth please review this PR

Will finish reviewing before the end of tomorrow (local time), but so far looks good.

Great work, can't wait to have this in!

It looks like usages of GetPrivateAccessor, GetPublicAccessor and GetStaticKeyword could be fully removed?

I think that this settings should be implemented to override getter|setter|function. I'm working on it. PR will be today after my main work.

Иногда мне кажется, что мы не понимаем друг друга, хех. Пулл реквест вроде ок, только те 3 метода можно удалить, чтобы код выглядел чище. Нет необходимости закрывать его для тех дополнительных вещей, о которых ты говорил, их можно сделать отдельным пулл реквестом.

Ого ;) Нет, я хорошо тебя понял, но те три метода используются в других генераторах, которые я не доделал за прошлую итерацию. Я сейчас заканчиваю с тестами и в течении дня открою этот пулл реквест.

Done, but this functionality is not implemented for the Generate Delegate Methods ..., I will try to implement it tomorrow.

If I use "promote to class member" or "generate private function", it doesn't add private as modifier, while I have my "protected declarations" set to True.

This setting is called "Generate Default Modifier Declaration", so maybe you enabled a different one? I didn't check "Promote to class member", but tested "Generate private function" among others and it was working fine for me.

@markknol, I will check this today.

 From what I see the CI build failed because it couldn't download NSIS to create an installer.

Ah sorry then I downloaded too soon.

It looks like AppVeyor is running into some problems for the time being.

The CI server is back, and the builds were updated successfully now. Give it a try.

it works!! w00t!!