text:
Extract the landmarks of pose tracker in python

I run the python interpreter of mediapipe for pose estimation by following https://google.github.io/mediapipe/solutions/pose.html#python
pose_landmarks, annotated_image = pose_tracker.run(input_file='..')
I can print the pose_landmarks and see the results:
landmark {
  x: 0.21143554151058197
  y: 0.38574913144111633
  z: -1.4804680859015207e-06
  visibility: 18.393444061279297
}
landmark {
  x: 0.17173771560192108
  y: 0.20884688198566437
  z: 1.4749808769920492e-06
  visibility: 18.401046752929688
}
landmark {
  x: 0.25402435660362244
  y: 0.47103995084762573
  z: -7.617963149186835e-09
  visibility: 5.351391315460205
}
landmark {
  x: 0.24858616292476654
  y: 0.46068453788757324
  z: -2.170341559804001e-07
  visibility: 6.021092891693115
}
landmark {
  x: 0.23653149604797363
  y: 0.528248131275177
  z: 9.051044913555018e-10
  visibility: 4.122689723968506
}
landmark {
  x: 0.22942595183849335
  y: 0.5136697888374329
  z: -8.629959324935044e-07
  visibility: 4.733832359313965
}
...

But the output of pose_landmarks is a <class 'mediapipe.framework.formats.landmark_pb2.NormalizedLandmarkList'>, I would like to use directly by converting it to a python list of dict but I don't know how.
Can anyone help me?
Many thanks.

You can simply do the following to get each data point in the pose landmark list.
[
    print('x is', data_point.x, 'y is', data_point.y, 'z is', data_point.z)
    for data_point in pose_landmarks.landmark
]

Will update the pose tracker example to make the landmark data more accessible.

You can simply do the following to get each data point in the pose landmark list.
[
    print('x is', data_point.x, 'y is', data_point.y, 'z is', data_point.z,
          'visibility is', data_point.visibility)
    for data_point in pose_landmarks.landmark
]

Will update the documentation to show how to retrieve the landmark data points from the landmark list.

jiuqiant, Thank you for your reply!
This works well I can define a list of dict with the idea
keypoints = []
for data_point in pose_landmarks.landmark:
    data_point.x
    keypoints.append({
                         'X': data_point.x,
                         'Y': data_point.y,
                         'Z': data_point.z,
                         'Visibility': data_point.visibility,
                         })

[{'X': 0.22941510379314423, 'Y': 0.3362969160079956, 'Z': 0.00036452049971558154, 'Visibility': 7.158523082733154}, {'X': 0.2248845398426056, 'Y': 0.3288716673851013, 'Z': 0.0003398503758944571, 'Visibility': 6.53940486907959}, {'X': 0.22419394552707672, 'Y': 0.3290863037109375, 'Z': -0.0013778306310996413, 'Visibility': 6.5734052658081055}, {'X': 0.22357606887817383, 'Y': 0.3293464183807373, 'Z': 0.00047738433931954205, 'Visibility': 6.8802289962768555}, {'X': 0.22432096302509308, 'Y': 0.32969987392425537, 'Z': -0.0008961611310951412, 'Visibility': 7.292812824249268}, {'X': 0.22290897369384766, 'Y': 0.33005285263061523, 'Z': -0.00027306360425427556, 'Visibility': 8.049725532531738}, {'X': 0.22149835526943207, 'Y': 0.330348402261734, 'Z': 0.001738354447297752, 'Visibility': 8.718132019042969}, {'X': 0.21599923074245453, 'Y': 0.3352816104888916, 'Z': 0.0007447042153216898, 'Visibility': 8.168705940246582}, {'X': 0.2131650745868683, 'Y': 0.33602795004844666, 'Z': 0.0006085750064812601, 'Visibility': 9.590447425842285}, {'X': 0.22653266787528992, 'Y': 0.3470503091812134, 'Z': 6.458567077061161e-05, 'Visibility': 8.901251792907715}, {'X': 0.2251604050397873, 'Y': 0.34731805324554443, 'Z': 0.0018908820347860456, 'Visibility': 9.572975158691406}, {'X': 0.22312860190868378, 'Y': 0.37499237060546875, 'Z': 0.015017705969512463, 'Visibility': 8.1065034866333}, {'X': 0.20063789188861847, 'Y': 0.39548638463020325, 'Z': -0.018212972208857536, 'Visibility': 8.205290794372559}, {'X': 0.23315922915935516, 'Y': 0.42901355028152466, 'Z': 0.006132934708148241, 'Visibility': 6.994071960449219}, {'X': 0.20903190970420837, 'Y': 0.4670613706111908, 'Z': 0.006986796855926514, 'Visibility': 4.814481735229492}, {'X': 0.24870403110980988, 'Y': 0.4606689512729645, 'Z': 0.03467315435409546, 'Visibility': 5.79559850692749}, {'X': 0.229664146900177, 'Y': 0.5150744915008545, 'Z': -0.002222581999376416, 'Visibility': 4.5876665115356445}, {'X': 0.2553863525390625, 'Y': 0.4712091386318207, 'Z': -0.0012559948954731226, 'Visibility': 5.036598205566406}, {'X': 0.23253664374351501, 'Y': 0.5335666537284851, 'Z': -0.0008883491391316056, 'Visibility': 3.8042361736297607}, {'X': 0.25375494360923767, 'Y': 0.47055649757385254, 'Z': -0.0018278396455571055, 'Visibility': 5.04033899307251}, {'X': 0.23877401649951935, 'Y': 0.527604877948761, 'Z': 0.0008347983239218593, 'Visibility': 4.038757801055908}, {'X': 0.2510611116886139, 'Y': 0.46950027346611023, 'Z': 0.00031364907044917345, 'Visibility': 5.325376510620117}, {'X': 0.23850774765014648, 'Y': 0.5219038128852844, 'Z': -0.0004820673493668437, 'Visibility': 4.279197692871094}, {'X': 0.24704612791538239, 'Y': 0.49019908905029297, 'Z': 0.08008850365877151, 'Visibility': 6.993941307067871}, {'X': 0.2289113998413086, 'Y': 0.5110218524932861, 'Z': 0.02991626411676407, 'Visibility': 6.03526496887207}, {'X': 0.21143554151058197, 'Y': 0.38574913144111633, 'Z': -1.4804680859015207e-06, 'Visibility': 18.393444061279297}, {'X': 0.17173771560192108, 'Y': 0.20884688198566437, 'Z': 1.4749808769920492e-06, 'Visibility': 18.401046752929688}, {'X': 0.25402435660362244, 'Y': 0.47103995084762573, 'Z': -7.617963149186835e-09, 'Visibility': 5.351391315460205}, {'X': 0.24858616292476654, 'Y': 0.46068453788757324, 'Z': -2.170341559804001e-07, 'Visibility': 6.021092891693115}, {'X': 0.23653149604797363, 'Y': 0.528248131275177, 'Z': 9.051044913555018e-10, 'Visibility': 4.122689723968506}, {'X': 0.22942595183849335, 'Y': 0.5136697888374329, 'Z': -8.629959324935044e-07, 'Visibility': 4.733832359313965}]
In the same time, I found another way by using protobuf_to_dict library :
from protobuf_to_dict import protobuf_to_dict
...
keypoints = protobuf_to_dict(pose_landmarks)

it gives a similar result:
{'landmark': [{'x': 0.22941510379314423, 'y': 0.3362969160079956, 'z': 0.00036452049971558154, 'visibility': 7.158523082733154}, {'x': 0.2248845398426056, 'y': 0.3288716673851013, 'z': 0.0003398503758944571, 'visibility': 6.53940486907959}, {'x': 0.22419394552707672, 'y': 0.3290863037109375, 'z': -0.0013778306310996413, 'visibility': 6.5734052658081055}, {'x': 0.22357606887817383, 'y': 0.3293464183807373, 'z': 0.00047738433931954205, 'visibility': 6.8802289962768555}, {'x': 0.22432096302509308, 'y': 0.32969987392425537, 'z': -0.0008961611310951412, 'visibility': 7.292812824249268}, {'x': 0.22290897369384766, 'y': 0.33005285263061523, 'z': -0.00027306360425427556, 'visibility': 8.049725532531738}, {'x': 0.22149835526943207, 'y': 0.330348402261734, 'z': 0.001738354447297752, 'visibility': 8.718132019042969}, {'x': 0.21599923074245453, 'y': 0.3352816104888916, 'z': 0.0007447042153216898, 'visibility': 8.168705940246582}, {'x': 0.2131650745868683, 'y': 0.33602795004844666, 'z': 0.0006085750064812601, 'visibility': 9.590447425842285}, {'x': 0.22653266787528992, 'y': 0.3470503091812134, 'z': 6.458567077061161e-05, 'visibility': 8.901251792907715}, {'x': 0.2251604050397873, 'y': 0.34731805324554443, 'z': 0.0018908820347860456, 'visibility': 9.572975158691406}, {'x': 0.22312860190868378, 'y': 0.37499237060546875, 'z': 0.015017705969512463, 'visibility': 8.1065034866333}, {'x': 0.20063789188861847, 'y': 0.39548638463020325, 'z': -0.018212972208857536, 'visibility': 8.205290794372559}, {'x': 0.23315922915935516, 'y': 0.42901355028152466, 'z': 0.006132934708148241, 'visibility': 6.994071960449219}, {'x': 0.20903190970420837, 'y': 0.4670613706111908, 'z': 0.006986796855926514, 'visibility': 4.814481735229492}, {'x': 0.24870403110980988, 'y': 0.4606689512729645, 'z': 0.03467315435409546, 'visibility': 5.79559850692749}, {'x': 0.229664146900177, 'y': 0.5150744915008545, 'z': -0.002222581999376416, 'visibility': 4.5876665115356445}, {'x': 0.2553863525390625, 'y': 0.4712091386318207, 'z': -0.0012559948954731226, 'visibility': 5.036598205566406}, {'x': 0.23253664374351501, 'y': 0.5335666537284851, 'z': -0.0008883491391316056, 'visibility': 3.8042361736297607}, {'x': 0.25375494360923767, 'y': 0.47055649757385254, 'z': -0.0018278396455571055, 'visibility': 5.04033899307251}, {'x': 0.23877401649951935, 'y': 0.527604877948761, 'z': 0.0008347983239218593, 'visibility': 4.038757801055908}, {'x': 0.2510611116886139, 'y': 0.46950027346611023, 'z': 0.00031364907044917345, 'visibility': 5.325376510620117}, {'x': 0.23850774765014648, 'y': 0.5219038128852844, 'z': -0.0004820673493668437, 'visibility': 4.279197692871094}, {'x': 0.24704612791538239, 'y': 0.49019908905029297, 'z': 0.08008850365877151, 'visibility': 6.993941307067871}, {'x': 0.2289113998413086, 'y': 0.5110218524932861, 'z': 0.02991626411676407, 'visibility': 6.03526496887207}, {'x': 0.21143554151058197, 'y': 0.38574913144111633, 'z': -1.4804680859015207e-06, 'visibility': 18.393444061279297}, {'x': 0.17173771560192108, 'y': 0.20884688198566437, 'z': 1.4749808769920492e-06, 'visibility': 18.401046752929688}, {'x': 0.25402435660362244, 'y': 0.47103995084762573, 'z': -7.617963149186835e-09, 'visibility': 5.351391315460205}, {'x': 0.24858616292476654, 'y': 0.46068453788757324, 'z': -2.170341559804001e-07, 'visibility': 6.021092891693115}, {'x': 0.23653149604797363, 'y': 0.528248131275177, 'z': 9.051044913555018e-10, 'visibility': 4.122689723968506}, {'x': 0.22942595183849335, 'y': 0.5136697888374329, 'z': -8.629959324935044e-07, 'visibility': 4.733832359313965}]}

Glad to see that you are able to use those data points.

You can simply do the following to get each data point in the pose landmark list.
[
    print('x is', data_point.x, 'y is', data_point.y, 'z is', data_point.z,
          'visibility is', data_point.visibility)
    for data_point in pose_landmarks.landmark
]

Will update the documentation to show how to retrieve the landmark data points from the landmark list.

Hello @jiuqiant ,
Can You tell how to convert list of dictionary to NormalizedLandmarklist?

You can simply do the following to get each data point in the pose landmark list.
[
    print('x is', data_point.x, 'y is', data_point.y, 'z is', data_point.z,
          'visibility is', data_point.visibility)
    for data_point in pose_landmarks.landmark
]

Will update the documentation to show how to retrieve the landmark data points from the landmark list.

Hello @jiuqiant ,
Can You tell how to convert list of dictionary to NormalizedLandmarklist?

       try:
            landmarks = result.pose_landmarks.landmark
            print(landmarks)
            tog.isLeft = True
        except:
            pass

@martiniblack  thanks for the protobuf_to_dict suggestion,it's really helpful

keypoints = protobuf_to_dict(pose_landmarks)

If you come across [Use of long causes issues with newer python versions](Use of long causes issues with newer python versions), refer to this comment

how to convert lets say from dict or array back tomediapipe.framework.formats.landmark_pb2.NormalizedLandmark

repo: google/mediapipe


text:
Render the landmarks myself, do not render them in pixelBuffer from output.

I am working on handtrack for iOS . I get landmarks from output and render them by unity 3d, and I also want to render the camera view by [MPPLayerRenderer renderPixelBuffer:pixelBuffer];
But pixelBuffer above already contains landmarks detected. Is there a way to throw it away and just show the origin frame  from camera?

Hi @sek790c, Could you please share your code changes to investigate further. Thanks!

source: gharchive/issue

license_type: permissive

license_source: github-api


text:
windows.h': No such file or directory

System information
OS: Windows 10
Bazel version 3.7.2
Python version 3.7
VS Community 2019 14.29.30133
System information
OS: Windows 10
Bazel version 3.7.2
Python version 3.7
VS Community 2019 14.29.30133
Environmental Variable setting :
BAZEL_VC C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC
BAZEL_VC_FULL_VERSION 14.29.30133
BAZEL_VS C:\Program Files (x86)\Microsoft Visual Studio\2019\Community
BAZEL_WINSDK_FULL_VERSION  10.0.22000.00
Description
Hello!
I tried to build the C++ examples on Windows. The hello_world example works, but the hand tracking example gave this error:
C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.29.30133/bin/HostX64/x64/cl.exe /nologo /DCOMPILER_MSVC /DNOMINMAX /D_WIN32_WINNT=0x0601 /D_CRT_SECURE_NO_DEPRECATE /D_CRT_SECURE_NO_WARNINGS /bigobj /Zm500 /EHsc /wd4351 /wd4291 /wd4250 /wd4996 /Iexternal/flatbuffers /Ibazel-out/host/bin/external/flatbuffers /Ibazel-out/host/bin/external/flatbuffers/src/virtual_includes/flatbuffers /showIncludes /MD /O2 /Oy- /DNDEBUG /wd4117 -D__DATE_="redacted" -D__TIMESTAMP__="redacted" -D__TIME__="redacted" /Gy /Gw /D_USE_MATH_DEFINES /std:c++17 /Fobazel-out/host/bin/external/flatbuffers/src/_objs/flatbuffers/util.obj /c external/flatbuffers/src/util.cpp
Execution platform: @local_execution_config_platform//:platform
external/flatbuffers/src/util.cpp(30): fatal error C1083: Cannot open include file: 'windows.h': No such file or directory
Target //mediapipe/examples/desktop/hand_tracking:hand_tracking_cpu failed to build

build : bazel build -c opt --define MEDIAPIPE_DISABLE_GPU=1 --action_env PYTHON_BIN_PATH="C:\Program Files\Python37\python.exe" mediapipe/examples/desktop/hand_tracking:hand_tracking_cpu --verbose_failures

Build completed successfully, 3055 total actions-after rerplacing winsdk10.0.19041.685/000

I canceled the BAZEL_WINSDK_FULL_VERSION, which means not to tell bazel the version of sdk, let it try to find the default one.


text:
Support on_load event

Sometimes you may want to fetch data or anything expensive / async for the initial screen.
There's no good way to do this in Mesop today, so you'd need to either a) wait until the user interacts (e.g. clicks a button) or b) do it as part of a navigation from a previous page.
Considerations

Configure at the top page-level component or any component?

One hacky workaround is to do:
def app():
  maybe_load()
  # regular rendering code

def maybe_load()
  state = me.state(State)
  if state.loaded_value is None:
     state.loaded_value = do_expensive_work()

This contradicts the guidance in https://google.github.io/mesop/getting_started/#component. The issue with mutating state inside a component function is that each component function is actually called twice in a render loop. The first time is a no-op loop to find all available callback functions.
I will close this for now since there's a workaround.

repo: google/mesop


text:
IE11 'this' is not a Function object

Description
I've included both packages in my project (both without version definition and with version 0.8.1 as stated in https://spectrum.chat/model-viewer/general/ie-11-support~c0cb5567-737a-4499-af60-4557b98c7213), but it throws an error in IE11.
<script type="module" src="https://unpkg.com/@google/model-viewer/dist/model-viewer.js"></script>
<script nomodule src="https://unpkg.com/@google/model-viewer/dist/model-viewer-legacy.js"></script>

SCRIPT5002: Function.prototype.toString: 'this' is not a Function object
model-viewer-legacy.js (110,7189)

Live Demo
http://westal.preflight.workplace.nu/sv-se/produkter/inomhus/plafonder/athena-ii-hf-18w-3000k
Version

model-viewer: v1.2.1
model-viewer-legacy: v1.2.1

Browser Affected

[ ] Chrome
[ ] Edge
[ ] Firefox
[x] IE11
[ ] Safari

OS

[ ] Android
[ ] iOS
[ ] Linux
[ ] MacOS
[x] Windows 10

Strange; it is passing our tests on IE11. Does the model-viewer element not render? I don't see one on your example page to check. I also don't have a Windows machine on which to test locally, so I'll need any information you can give me.

Yeah, the issue is that because of the error all succeeding scripts fails (a lot is through ajax and react), so content doesn't render as it should.
A better example would be: http://westal.preflight.workplace.nu/sv-se/produkter/utomhus/fotarmaturer/gustav-fotlykta-koppar-klart-katedralglas#7747673 where you can click on the "3D"-icon at the bottom of the page to view the 3D-model in Chrome/Firefox. However none of it renders in IE11, so kinda hard to check since the file is rendered through ajax gets. The console error in IE11 can still be seen though.

What other information can I give you to help you?

Thanks, that's helpful. I really need to hunt down a windows machine so I can debug.

Hmm, I wonder if it's just a script ordering problem? IE11 needs the webcomponents polyfill in order to run the model-viewer.js script. Have you tried putting the model-viewer scripts at the end? That's the only reason I can imagine that you're having trouble when others aren't.

You are absolutely right, my good sir! I've placed model-viewer after webcomponents and the error is gone. Much obliged!

Another problem occurred when doing this change though. Would you like another issue created?
When the load order changed I get Stack Overflow from webcomponents (I guess it's this file, since the error disappears when i remove the script).

Maybe, though it would be helpful if you could narrow it down a little more; I've never seen anything like that. Can you get any models to load? Does our glitch work on this machine? You might try building up from a minimal example to see where it falls apart. Since I can't repro, I won't be a lot of help.

Nope, Glitch doesn't work in IE11:

I'll look into if I can make a minimal exampel, but since Glitch doesn't even work I'm not sure how to do it just yet.

authors: ToxicRobin elalish

repo: google/model-viewer

license_source: bigquery


text:
The window scale question

When the TCP sender (a Windows application) is notified that the receiver has 1054 bytes left in the receiving window, the sender stops sending data, and the receiver (using netstack) does not consider itself in a zero window. It is found that the Windows scale is 5. Is there an interface that can modify the Windows scale value? Or why doesn't the sender continue to send data?

Is the algorithm for zeroReceiveWindow too simple?

repo: google/netstack


text:
fix(build): Don't use Cachix as the binary cache during builds

Permission changes in the Travis CI Nix builders have caused this to
start failing, as the build user now has insufficient permissions to
use caches.
There may be a way to change the permissions instead, but in the
meantime we will just cause things to rebuild.

Integrating this in #98 instead.

source: gharchive/pull-request

repo: google/nixery


text:
Use transport.request in tests.

In the process

"spring clean" the modules that were touched
use HttpMock when HttpMockSequence not needed
add some verifications on new HttpMock's

Looks nearly good to me.

@nathanielmanistaatgoogle I made your file_mod -> file_module change and tests passed so I merged. If your "nearly LGTM" didn't become "LGTM" after that change, my bad for the merge (I made an assumption).

We're all good here. 👍

authors: dhermes nathanielmanistaatgoogle


text:
Python build fails: invalid command 'bdist_wheel'; Python build should be able to install python files alone without creating a wheel

===>  Building for py37-or-tools-7.7
[1/2] cd /usr/ports/math/py-or-tools/work/.build/python && /usr/local/bin/cmake -E copy Release/setup.py setup.py && /usr/local/bin/cmake -E remove_directory dist && /usr/local/bin/cmake -E make_directory ortools/.libs && /usr/local/bin/cmake -E copy /usr/ports/math/py-or-tools/work/.build/lib/libortools.so.7 ortools/.libs && /usr/local/bin/cmake -E copy /usr/ports/math/py-or-tools/work/.build/lib/_pywrapknapsack_solver.so ortools/algorithms && /usr/local/bin/cmake -E copy /usr/ports/math/py-or-tools/work/.build/lib/_pywrapgraph.so ortools/graph && /usr/local/bin/cmake -E copy /usr/ports/math/py-or-tools/work/.build/lib/_pywrapcp.so ortools/constraint_solver && /usr/local/bin/cmake -E copy /usr/ports/math/py-or-tools/work/.build/lib/_pywraplp.so ortools/linear_solver && /usr/local/bin/cmake -E copy /usr/ports/math/py-or-tools/work/.build/lib/_pywrapsat.so ortools/sat && /usr/local/bin/cmake -E copy /usr/ports/math/py-or-tools/work/.build/lib/_pywraprcpsp.so ortools/data && /usr/local/bin/cmake -E copy /usr/ports/math/py-or-tools/work/.build/lib/_sorted_interval_list.so ortools/util && /usr/local/bin/python3.8 setup.py bdist_wheel
FAILED: CMakeFiles/python_package python/ortools python/build python/dist python/ortools.egg-info
cd /usr/ports/math/py-or-tools/work/.build/python && /usr/local/bin/cmake -E copy Release/setup.py setup.py && /usr/local/bin/cmake -E remove_directory dist && /usr/local/bin/cmake -E make_directory ortools/.libs && /usr/local/bin/cmake -E copy /usr/ports/math/py-or-tools/work/.build/lib/libortools.so.7 ortools/.libs && /usr/local/bin/cmake -E copy /usr/ports/math/py-or-tools/work/.build/lib/_pywrapknapsack_solver.so ortools/algorithms && /usr/local/bin/cmake -E copy /usr/ports/math/py-or-tools/work/.build/lib/_pywrapgraph.so ortools/graph && /usr/local/bin/cmake -E copy /usr/ports/math/py-or-tools/work/.build/lib/_pywrapcp.so ortools/constraint_solver && /usr/local/bin/cmake -E copy /usr/ports/math/py-or-tools/work/.build/lib/_pywraplp.so ortools/linear_solver && /usr/local/bin/cmake -E copy /usr/ports/math/py-or-tools/work/.build/lib/_pywrapsat.so ortools/sat && /usr/local/bin/cmake -E copy /usr/ports/math/py-or-tools/work/.build/lib/_pywraprcpsp.so ortools/data && /usr/local/bin/cmake -E copy /usr/ports/math/py-or-tools/work/.build/lib/_sorted_interval_list.so ortools/util && /usr/local/bin/python3.8 setup.py bdist_wheel
usage: setup.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
   or: setup.py --help [cmd1 cmd2 ...]
   or: setup.py --help-commands
   or: setup.py cmd --help

error: invalid command 'bdist_wheel'

I think the python build should first be able to install python files into PYTHONPREFIX_SITELIBDIR, ex. into /usr/local/lib/python3.7/site-packages. This is most useful to packagers.
After this you can also create a python wheel for users using python tools to install packages.

You need to install the python wheel module.
Le lun. 3 août 2020 à 20:06, yuri@FreeBSD notifications@github.com a
écrit :

===>  Building for py37-or-tools-7.7
[1/2] cd /usr/ports/math/py-or-tools/work/.build/python && /usr/local/bin/cmake -E copy Release/setup.py setup.py && /usr/local/bin/cmake -E remove_directory dist && /usr/local/bin/cmake -E make_directory ortools/.libs && /usr/local/bin/cmake -E copy /usr/ports/math/py-or-tools/work/.build/lib/libortools.so.7 ortools/.libs && /usr/local/bin/cmake -E copy /usr/ports/math/py-or-tools/work/.build/lib/_pywrapknapsack_solver.so ortools/algorithms && /usr/local/bin/cmake -E copy /usr/ports/math/py-or-tools/work/.build/lib/_pywrapgraph.so ortools/graph && /usr/local/bin/cmake -E copy /usr/ports/math/py-or-tools/work/.build/lib/_pywrapcp.so ortools/constraint_solver && /usr/local/bin/cmake -E copy /usr/ports/math/py-or-tools/work/.build/lib/_pywraplp.so ortools/linear_solver && /usr/local/bin/cmake -E copy /usr/ports/math/py-or-tools/work/.build/lib/_pywrapsat.so ortools/sat && /usr/local/bin/cmake -E copy /usr/ports/math/py-or-tools/work/.build/lib/_pywraprcpsp.so ortools/data && /usr/local/bin/cmake -E copy /usr/ports/math/py-or-tools/work/.build/lib/_sorted_interval_list.so ortools/util && /usr/local/bin/python3.8 setup.py bdist_wheel
FAILED: CMakeFiles/python_package python/ortools python/build python/dist python/ortools.egg-info
cd /usr/ports/math/py-or-tools/work/.build/python && /usr/local/bin/cmake -E copy Release/setup.py setup.py && /usr/local/bin/cmake -E remove_directory dist && /usr/local/bin/cmake -E make_directory ortools/.libs && /usr/local/bin/cmake -E copy /usr/ports/math/py-or-tools/work/.build/lib/libortools.so.7 ortools/.libs && /usr/local/bin/cmake -E copy /usr/ports/math/py-or-tools/work/.build/lib/_pywrapknapsack_solver.so ortools/algorithms && /usr/local/bin/cmake -E copy /usr/ports/math/py-or-tools/work/.build/lib/_pywrapgraph.so ortools/graph && /usr/local/bin/cmake -E copy /usr/ports/math/py-or-tools/work/.build/lib/_pywrapcp.so ortools/constraint_solver && /usr/local/bin/cmake -E copy /usr/ports/math/py-or-tools/work/.build/lib/_pywraplp.so ortools/linear_solver && /usr/local/bin/cmake -E copy /usr/ports/math/py-or-tools/work/.build/lib/_pywrapsat.so ortools/sat && /usr/local/bin/cmake -E copy /usr/ports/math/py-or-tools/work/.build/lib/_pywraprcpsp.so ortools/data && /usr/local/bin/cmake -E copy /usr/ports/math/py-or-tools/work/.build/lib/_sorted_interval_list.so ortools/util && /usr/local/bin/python3.8 setup.py bdist_wheel
usage: setup.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
or: setup.py --help [cmd1 cmd2 ...]
or: setup.py --help-commands
or: setup.py cmd --help
error: invalid command 'bdist_wheel'
I think the python build should first be able to install python files into
PYTHONPREFIX_SITELIBDIR, ex. into /usr/local/lib/python3.7/site-packages.
This is most useful to packagers.
After this you can also create a python wheel for users using python tools
to install packages.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/google/or-tools/issues/2125, or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACUPL3M7BRI5JORFRFLGAVDR634A7ANCNFSM4PTSUSQQ
.

using the CMake based build, python module wheel will be installed to user workspace if not found...
see:
https://github.com/google/or-tools/blob/stable/cmake/python.cmake#L132

authors: Mizux lperron yurivict

repo: google/or-tools


text:
Memory Limit exceeded exception thrown while using cibc solver in the backend for mixed integer problem using or tools

What version of OR-Tools and what language are you using?
Version: 8.1
Language: C++ 17
Using CIBC Solver
OS - Macos Monterey
I created a problem using 100 decision variables all them having integer constraints and some complex constraints. The problem is expected to be infeasible. I set time limit as 500 seconds. I am getting an os SIGKILL exception before 500 seconds. When I set time limit to 100 seconds I am getting time limit exceeded exception as expected.
"macos 137 (interrupted by signal 9: SIGKILL)" This is the exception. I think it is because os is killing the process for using too much memory.
Is there a way in which we can catch these memory usage exceptions in the code itself when a threshold is breached.
I am using mac m1 with armv8 architecture.

No. Memory allocation is most likely done in a dependency (CBC).
Do you have a stacktrace when it fails ?
Question:

why not use 9.3 ?
Did you try the CP-SAT backend ? It should have better performance

No. Memory allocation is most likely done in a dependency (CBC).
Ok
Do you have a stacktrace when it fails ?
No, i was not able to recreate it, as this error occurs only when there is high memory usage in the system I think.
Question:

why not use 9.3 ?
Not sure if 9.3 has wasm support.
Did you try the CP-SAT backend ? It should have better performance
Will try it.Some of the problems in my use case are purely linear without any mip. Can CP_SAT support them too.

None of this codes (or-tools, cbc) are protected against OOM exceptions. None track memory used.
So I guess there is nothing we can do at this point.
I suppose you need to build limits in the models you are building to be sure they will not OOM.


text:
Update Go install command on home page.

To account for new module/repo path.

The command does not seem to work for me. Getting this error:
go: downloading github.com/google/osv.dev/tools/osv-scanner v0.0.0-20220817032841-55d70d05bc41
go: downloading github.com/google/osv.dev v0.0.14
go: github.com/google/osv.dev/tools/osv-scanner@latest: module github.com/google/osv.dev/tools/osv-scanner@latest found (v0.0.0-20220817032841-55d70d05bc41), but does not contain package github.com/google/osv.dev/tools/osv-scanner

Can you try setting export GONOPROXY=github.com/google/osv.dev and trying again? There's a bit of a propagation delay if we go through the Go module proxy.

Ah nice, seems to work now.

authors: another-rex oliverchang


text:
Feature request: infallible "from" for custom fields with bits that are a multiple of 8

If a custom field takes up, say, 48 bits, and each bit can be arbitrarily anything, then it should be able to infallibly be converted from a [u8; 6].
But the current generated code performs a fallible try_from(u64), which would require wrangling a series of bytes into a [u8; 8], and then converted to a u64.

Can you provide more context for this request  ?
Currently the rust generator only produces TryFrom implementations for the nearest scalar type; not TryFrom<[u8;N]>.

For example, lets consider this field declaration:
custom_field Field : 48

Right now, I can initialize it like this:
Field::try_from(0_u64).unwrap();

However, something that is 48 bits long is exactly 6 bytes long.
That means that if I know which 6 bytes I want to initialize Field with, I first have to wrangle it into a u64, and then initialize Field in a way that may fail if I wrangle my bytes into a u64 incorrectly`.
If Field were to implement From<[u8; 6]>, then there are fewer things that could go wrong in my conversion.
Let me know if I need to clarify further!

authors: hchataing whitevegagabriel

repo: google/pdl


text:
Clearer error message for SMS messages to a number not associated with any repos

e.g., "This number is not associated with any active Person Finder repository"

Could you explain more about what is to be changed and where?

TL;DR: We'd like to send back a human-readable error message to the user here, instead of just logging an error like we do now.
PF has an SMS feature that lets you make simple queries or record additions by texting "search " or "I am " to a designated number. The PF code for this is in app/api.py, specifically in the HandlerSMS class. The server that actually receives and sends text messages is separate, since we don't do that directly on App Engine; the SMS server forwards messages to PF itself, along with fields indicating both the sending and the recipient/destination phone numbers, and then sends an SMS back with PF's reply message. (This is also convenient for testing, since you can test Person Finder without having to really send text messages; you can just send HTTP requests like the ones the SMS server sends to PF.)
We support receiving messages sent to multiple different phone numbers, for a couple reasons. One is just so that we can provide local phone numbers for different country. Another reason is so that users don't have to specify what repository to use in their message: phone numbers are mapped to repositories, so we can tell what repository to use based on the destination number for incoming SMSes. This is defined by a global config setting with the key sms_number_to_repo, which can be configured on the global admin page (at /global/admin). When HandleSMS gets a request, it uses that map to look up which repository to use.
We try (with varying degrees of success, long story there) to maintain numbers for a bunch of countries set up in advance, so that we can launch SMS support more quickly if/when we activate PF for a disaster there. However, that means that, most of the time, those numbers aren't associated with any particular repository, and the existing code doesn't handle that well: it logs an error for us (developers) to see, and doesn't return anything at all to the SMS server. As a result, the SMS server thinks everything's broken and sends a message back saying the service is unavailable. This is pretty confusing, especially for folks on the team that maintain the SMS infrastructure (which is separate from the PF team), because it looks to them like there might be a problem on their side. So, we'd instead like PF to send back a message saying the number's not associated with any repository, so it's clear that the message did make it to Person Finder.

authors: gimite kshithijiyer nworden

repo: google/personfinder


text:
Create releases for new versions

Currently 2.0.0 is the last release on the releases page. Would it be possible to keep releasing the new versions (2.1.1, 2.2.0) as releases, so that I could get eg. notification about new release?

Thanks for the suggestion. I've made a note of this in the release process and created a release for the latest 2.3.1.

authors: tkafka ykjchen

repo: google/promises


text:
Fake Implementation of ValidatePeerCertificateChain

Implemented fake implementation of ValidatePeerCertificateChain for both a ClientPeer and a ServerPeer.
Modified existing cert_verifier library implementation to call (fake) s2av2
Additional notes:

client_subordinate_cert.pem is a cert that is signed by client_cert.pem/client_key.pem. Similarly, server_subordinate_cert.pem is signed by server_cert.pem/server_key.pem
Since ValidatePeerCertificateChainReq_ClientPeer and ValidatePeerCertificateChainReq_ServerPeer both have a CertificateChain field that requires the chain to be a list of DER encoded certificates, used this link:
Creating DER encoded cert from PEM cert: https://serverfault.com/questions/1006639/create-der-certificatekey-from-pem, to create DER encoded certificates from the existing PEM encoded certificates.
After reading documentation: https://pkg.go.dev/crypto/tls#Config:~:text=VerifyPeerCertificate func(rawCerts [][]byte%2C verifiedChains [][]*x509.Certificate) error, I changed cert_verifier_test.go to always pass nil for verified chains, since that is what API will do when we disable normal verification.

Thanks for all the comments Matt!


text:
DOM errors when playing Car on Safari

When playing the Car asset on Safari, it stops after ~15 seconds and throws a 3016 error, a 3015 error, and several "InvalidStateError (DOM Exception 11): The object is in an invalid state." errors. The video then enters a buffering state, but the time continues advancing forward until it reaches the end. It still plays the audio according to the little audio playing icon in the URL bar, but no sound is produced.
I've tried all of our test assets and haven't seen this with any other asset. I was testing with Safari 10.1.2.

The first error that occurs is a decoder error.  This only happens with adaptation; when switching to an affected track manually (when we clear the buffer first), the error doesn't occur.  Since this is a decoder error, this is likely a platform issue, but it may have to do with how we adapt.

I am fairly sure this is a limitation of the Safari decoder.  This may be caused by bad content, or just that Safari doesn't support this kind of content.  Safari plays other similar content fine, and it looks like we are doing all the correct things for this content.
I have reduced the problem to only when adapting (or switching without clearing the buffer).  When we clear the buffer (and implicitly reset the decoder), the content plays fine.  It also plays fine on the stream by itself.  I think the streams are somehow incompatible with each other.  I also think this only applies to the 426x240 video stream.  One difference I notice between that and the other streams is that in the SPS the pic_order_cnt_type is different.  The Safari decoder may not support changing this field since it changes the way frame parsing happens.
We could remove that video stream from the manifest, but we don't control the original asset (it's a YouTube test asset).  We could either drop the asset completely or make a copy that doesn't have that representation.

It's not representative of YouTube-encoded content, it's old, and it's unmaintained.  I move we drop it.

The fix has been cherry-picked to v2.2.x and will be released in v2.2.2.

authors: TheModMaker joeyparrish theodab

repo: google/shaka-player


text:
Live doesn't work in 2.2.9

Have you read the FAQ and checked for duplicate issues: yes
What version of Shaka Player are you using: 2.2.9
Can you reproduce the issue with our latest release version: yes
Can you reproduce the issue with the latest code from master: yes
Are you using the demo app or your own custom app: demo app and custom app
If custom app, can you reproduce the issue using our demo app: yes
What browser and OS are you using: Win 10 Chrome
What are the manifest and license server URIs:
(you can send the URIs to shaka-player-issues@google.com instead, but please use GitHub and the template for the rest)
https://shaka-player-demo.appspot.com/demo/#asset=//vm2.dashif.org/livesim/utc_head/testpic_6s/Manifest.mpd;lang=ru
What did you do?
Load live stream and press play
What did you expect to happen?
Stream started
What actually happened?
Infinite loading indicator.
In console I see many errors like this:
segment_reference.js:83 Assertion failed: startTime must be less than endTime
Looks like something broken in new release.

I'm experiencing the same issue, under the same test conditions (custom app, demo app, chrome on W10 adding chrome on Ubuntu 16.04)
I've noticed that the manifest failing looks like this:
`

`

Confirmed.  Looks like for the DASH live sim, it's a bug in our SegmentTemplate parser that is causing segment end times to be screwed up.

The bug was introduced in v2.2.9.  The fix, once published, will be cherry-picked for v2.2.10 and v2.3.1.

authors: joeyparrish lucasdavila86 theifish


text:
Code coverage reports are broken by Babel

We use Babel to transpile our code & tests on-the-fly for automated testing on IE and Tizen, where ES6 code can't be executed directly.  However, this seems to break code coverage reports created by Karma.  Those reports no longer reference the correct locations in the original, untranspiled code, so you cannot see what parts of the code are going untested.

This might help: https://github.com/istanbuljs/babel-plugin-istanbul


text:
Missing metadata event with timed ID3 data in HLS stream from Telos Z/IPStream X/2 encoder

Have you read the FAQ and checked for duplicate open issues?
yes
What version of Shaka Player are you using?
v3.2.1 (uncompiled)
Can you reproduce the issue with our latest release version?
yes
Can you reproduce the issue with the latest code from master?
didn't try
Are you using the demo app or your own custom app?
demo app
What browser and OS are you using?
Google Chrome 96.0.4664.45
What are the manifest and license server URIs?
https://wptv-devel.wpcdn.pl/open.fm/S04-HLS1-httpLS.m3u8
What configuration are you using?  What is the output of player.getConfiguration()?
default demo app configuration
What did you do?
In demo app:

start playing https://wptv-devel.wpcdn.pl/open.fm/S04-HLS1-httpLS.m3u8
add metadata event listener: shakaDemoMain.player_.addEventListener('metadata', (e) => {console.log("[t: " + shakaDemoMain.player_.getMediaElement().currentTime + "] MetadataEvent event", e);});

What did you expect to happen?
After about 1 minute of playing there should be 2 metadata events.
Hls.js shows them correctly:

What actually happened?
No metadata event fired.

I don't think we support the metadata event ourselves.  We technically do on Safari since the browser does it for us; but when playing ourselves, I don't think we handle the metadata events/data.  We'll keep this as an enhancement to add this.

@TheModMaker I can send you a sample HLS stream (from Wowza Streaming Engine) where metadata event is published in Chrome.

Your stream uses TS, and it seems like mux.js says it has metadata with dispatchType = 15, but it doesn't return no data or frames. I suggest you look at the logic of mux.js to see what is happening (https://github.com/videojs/mux.js/blob/main/lib/m2ts/metadata-stream.js).

mux.js PR --> https://github.com/videojs/mux.js/pull/408

authors: TheModMaker avelad pszemus


text:
resolver: make -nesteddef and -lambda always on

See https://github.com/bazelbuild/starlark/pull/145
for spec changes.
Updates https://github.com/bazelbuild/starlark/issues/20

Looks good. Does this mean Bazel will support these as well?

Yep, the plan is that the spec and all implementations support it.

repo: google/starlark-go


text:
Create Travis account

You should create a Travis account so you can fully incorporate CI to the repo.

We're on the case

@alexbw Cheers! Might be good as a side note that it would also be good to add coveralls.

Done. Thanks!

authors: alexbw erip

repo: google/tangent


text:
Changing CVE-ID in proposals breaks things

Changing the CVE-ID in the proposal section seems to break things:

Proposal disappears from 'My proposals' section.
ID handling seems to break

Make CVE-ID read only for now.

Fixed with https://github.com/google/vulncode-db/commit/aa27693063de54e01223d9dbfde5796d8e5aeea8 for now.

repo: google/vulncode-db


text:
Auto advancement is not working

Bug Description
Auto advancement is not working
Expected Behaviour
Page should auto advance per story / page settings
Steps to Reproduce
Preview a story with multiple pages
Screenshots

Do not alter or remove anything below. The following sections will be managed by moderators only.
Acceptance Criteria
QA Instructions

Pretty certain this was fixed by #1025.

This story is set to 4s auto-advancement, but the rendered story doesn't auto-advance.

authors: barklund jauyong swissspidy

repo: google/web-stories-wp


text:
Dashboard: File Upload UI Component

Summary
Settings view in Dashboard needs a simple drag and drop file upload component. Drew on the editor for structure.

Relevant Technical Choices

Relies on native event handler functionality for drag and drop and file upload
Passes files to parent to process how the parent needs data to avoid locking use cases down
Delete functionality is passing the index of the upload as well as the file itself back to parent because of unknowns at the moment.
Uses story editor's getResourceFromLocalFile util to try and keep structures in sync behind the surface

To-do

[x] Update icon from placeholder x to upload svg - need permissions in figma to download assets
[x] Determine 'delete' functionality
[ ] Follow up on when the file name should be blue like in figma
[ ] Follow up on if the "You can also drag your logo here" text should only be visible if there's not currently uploads (I think this is the case?)
[ ] Follow up on delete functionality (this will be after updated designs, read something about the ability to delete or also edit)
[x] Get updated button style once PR for dialogs is merged
[x] Tests

User-facing changes

Changes only exist in storybook

Testing Instructions

See storybook Dashboard/Components/FileUpload
Upload file(s) with "button" (it's a label) and try drag and dropping, you should see an image show up for each with file name
Hover over an uploaded image and click the 'x' to delete it, see actions trigger in storybook.
See storybook Dashboard/Views/EditorSettings to see the fileUpload in the settings page. Please note that the dummy functionality isn't hooked up in the view storybook ONLY the components since the view relies on context and since we don't know for sure what all is going to happen here re hooking up the real data I didn't want to spend the time on it.

(placeholder UI for functionality)

Addresses #2747

This works well and I tested the story and the state correctly keeps track of assets as they are added and removed. The only visual glitch I see is the x appears to be pushed up a little bit and perhaps needs to be moved down to be more center. Extra points if it could fade it nicely when hovered.

This works well and I tested the story and the state correctly keeps track of assets as they are added and removed. The only visual glitch I see is the x appears to be pushed up a little bit and perhaps needs to be moved down to be more center. Extra points if it could fade it nicely when hovered.

All fixed ~

e.preventDefault?.(); should fix that.

One super nit, that is tangentially related, I attempted to test the file upload component using the "PublishLogo" story (Views/EditorSettings/PublisherLogo) an e.preventDefault is not a function error when I try and drag/upload a file. It looks like when that story was written it was expecting onUpdatePublisherLogo to pass in an event object, but now it's passing in different thangs and so the story is breaking.

ah! so this is actually because i spaced I did that in storybook temporarily before hooking up the fileUpload. the event's preventDefault is taken care of in the fileUpload for consistency - it just needed to be removed - but now we can show the actual props getting passed on upload! Thanks for testing this view!

authors: BrittanyIRL carlos-kelly


text:
Animation Panel: Effect direction input indexed for clockwise keyboard navigation

Summary
We want to control the order the available directions are navigated by keyboard users  in the animation direction input. This ensures that available options are sorted clockwise around the UI - so top, right, bottom, left.
Relevant Technical Choices

Sort available directions by an ordered reference array
ordering the keyboard navigation of these inputs shows that there's an overlap when you have a value selected but move focus with keyboard, so adjusting button padding to subtract 2px to avoid this overlap.

To-do

User-facing changes
Animation direction input (Fly in, rotate, whoosh, scale) now has clockwise keyboard navigation. (top, right, bottom, left)
Testing Instructions
Select an effect and apply an animation to it that has the ability to set direction (Fly in, rotate, whoosh, scale), use the keyboard to navigate through inputs, see focus update. Your focus should move like a clock hand through the options navigating around the square.
Verify the same for background animations with pan and zoom. Disabled inputs are not focusable.

addresses #5613

Just making sure: does this work well in RTL context too?

Just making sure: does this work well in RTL context too?

valid question, for that we should probably be resulting in a counterclockwise arrow order (top, right, bottom, left), yes?

Just making sure: does this work well in RTL context too?

valid question, for that we should probably be resulting in a counterclockwise arrow order (top, right, bottom, left), yes?

Not necessarily. But in RTL context elements can be flipped. So this:
    A
B       C
    D

Can look like this:
    A
C       B
    D

So if you have keyboard shortcuts for ArrowLeft/ ArrowRight, they might need adjustment.
In my quick testing of the PR, the order looks OK, but two important notes:

#5428 really needs to be fixed.
Navigation in the animation popup with ArrowUp/ArrowDown works, but using ArrowLeft/ArrowRight moves the element on the canvas instead of changing the selection in the popup... Very unexpected behavior IMO.

By the way, you can install the RTL Tester WordPress plugin for easy testing of such scenarios)

Thanks!

#5428 really needs to be fixed.

Yes, this is also something that happens on the font family dropdown as well - perhaps there's something that needs applying across the board on them?  This is an easy enough thing to iterate on.

Navigation in the animation popup with ArrowUp/ArrowDown works, but using ArrowLeft/ArrowRight moves the element on the canvas instead of changing the selection in the popup... Very unexpected behavior IMO.

We're only hijacking keying down on arrow up down right now, it would probably be a good follow up to include arrow left / right. The animation popup is definitely going through a lot of very quick growing pains :) This is a spot where the behavior would differ from a standard dropdown intentionally. I will make a follow up ticket for this.

@swissspidy You bring up a good point. I do wonder if the canvas elements should even move on the arrow keys when you are inside the panels at all. I have found myself moving things unexpectedly with keyboard navigation.

Yes, this is also something that happens on the font family dropdown as well - perhaps there's something that needs applying across the board on them? This is an easy enough thing to iterate on.

Oh, I didn't know that! Now that makes it more clear where the issue is.
PR incoming!

@swissspidy You bring up a good point. I do wonder if the canvas elements should even move on the arrow keys when you are inside the panels at all. I have found myself moving things unexpectedly with keyboard navigation.

Yeah it's certainly unexpected. We have some logic in place to prevent this when inside an input within the design panel, but not when focusing on something else (e.g. a button). Mind creating a ticket to track & discuss?

@swissspidy https://app.zenhub.com/workspaces/web-stories-5e94d3aced449034e1e9b226/issues/google/web-stories-wp/5619

Navigation in the animation popup with ArrowUp/ArrowDown works, but using ArrowLeft/ArrowRight moves the element on the canvas instead of changing the selection in the popup... Very unexpected behavior IMO.

We're only hijacking keying down on arrow up down right now, it would probably be a good follow up to include arrow left / right. The animation popup is definitely going through a lot of very quick growing pains :) This is a spot where the behavior would differ from a standard dropdown intentionally. I will make a follow up ticket for this.

We have an unspoken UX "rule", that if we locally capture any arrow key, we capture them all – and ignore the ones we don't need. Exactly to avoid this kind of behavior. See this happening in e.g. the tab view component.
We don't enforce this consistently though, so there are probably counter-examples to this somewhere.

authors: BrittanyIRL barklund carlos-kelly swissspidy


text:
Infinite loop when using invalid refresh_token

When the refresh token is invalid, client goes into an infinite loop instead of raising exceptions:
[3] pry(main)> client.service(:Customer).list_accessible_customers

W, [2019-04-29T15:28:27.286127 #41]  WARN -- : CID: N/A, Host: googleads.googleapis.com:443, Method: /google.ads.googleads.v1.services.CustomerService/ListAccessibleCustomers, IsFault: yes
I, [2019-04-29T15:28:27.286886 #41]  INFO -- : Outgoing request: Headers: {"x-goog-api-client":"gl-ruby/2.6.3 gapic/1.1.1 gax/1.5.0 grpc/1.20.0","developer-token":"hidden"} Payload: {}
I, [2019-04-29T15:28:27.287015 #41]  INFO -- : Incoming response (errors):
Could not parse error details due to a malformed server response trailer.
W, [2019-04-29T15:28:27.488532 #41]  WARN -- : CID: N/A, Host: googleads.googleapis.com:443, Method: /google.ads.googleads.v1.services.CustomerService/ListAccessibleCustomers, IsFault: yes
I, [2019-04-29T15:28:27.488826 #41]  INFO -- : Outgoing request: Headers: {"x-goog-api-client":"gl-ruby/2.6.3 gapic/1.1.1 gax/1.5.0 grpc/1.20.0","developer-token":"hidden"} Payload: {}
I, [2019-04-29T15:28:27.489125 #41]  INFO -- : Incoming response (errors):
Could not parse error details due to a malformed server response trailer.
W, [2019-04-29T15:28:27.625463 #41]  WARN -- : CID: N/A, Host: googleads.googleapis.com:443, Method: /google.ads.googleads.v1.services.CustomerService/ListAccessibleCustomers, IsFault: yes
I, [2019-04-29T15:28:27.625792 #41]  INFO -- : Outgoing request: Headers: {"x-goog-api-client":"gl-ruby/2.6.3 gapic/1.1.1 gax/1.5.0 grpc/1.20.0","developer-token":"hidden"} Payload: {}
I, [2019-04-29T15:28:27.626775 #41]  INFO -- : Incoming response (errors):
Could not parse error details due to a malformed server response trailer.

I'm also able to reproduce. I think this is an issue with the underlying gax library, since we just pass the refresh token along there. I'll check with that team to see what we can do.

Thanks!
Also would be great to be able to have more authentication options than only refresh_token (without monkey-patching). For example, using simply access token.

What is the use case where you'd want to provide your own access token? Access tokens are only good for an hour, and require a refresh token to generate, so it seems like the convenience of letting the library handle it for you would be pretty appealing.

In our case we have one service responsible for storing/refreshing tokens and many other services using access tokens. So each service doesn't have to store all the secrets, handle errors and also access tokens are requested just once per hour.
It would be great not to limit the authorization options solely to refresh token since they are already there.

That sounds reasonable. I think we can expose an interface to allow you to define your own credentials to be passed to the service. I'll open a new issue for that feature request, and we can leave this one for the infinite loop.

Any updates on this? Any workarounds? I experienced it recently.
My intention is to use this in a worker queue, and if it loops infinitely I will be unable to to resolve it without intervention.

Going to close this as a duplicate of issue #246 since that one has more specific information.

authors: evgeniy-b mcloonan qnm

repo: googleads/google-ads-ruby


text:
App store app cant load ads

My ads will not load on iOS.... yet on  android they load everytime. The app has been on the store for 2 weeks now, I can see a few requests on the admob dashboard but no matches.
I have double checked my ad keys and they are fine.
I receive the following error.
ERROR CODE: 1
Request Error: No ad to show
I have checked the privacy settings in the iPhone and they are turned off. Does anyone have any idea why I havent been able to get a single ad to load on iOS?
Thanks

Hi @febg11, please share the output of flutter doctor -v

Is the issue with any specific ads or all types of ads?
Are the ads displayed when you run the app in release mode?

If you could possibly share a minimal reproducible code that would be great.
additionally you may try few solutions mentioned in this stackoverflow thread and see if this helps
Thanks

Hi @maheshmnj
The ads I have added are interstitial and reward ads.  I have checked all the answers in the stack overflow post and I have done all of the ones that require action, e.g. adding payment. The real ads work correctly on android which is why it seems weird. I have even tried making a new ad unit last week and it didnt help.
They also do not work in release mode. I have added the store link to the dashboard on admob and they also don't load If i use the app that was downloaded from the app store.
I have double checked that the app is using the iOS ad unit and can see the requests showing on the admob dashboard.
Here is my flutter doctor
[✓] Flutter (Channel master, 2.3.0-2.0.pre.108, on macOS 11.5 20G71 darwin-x64, locale en-GB)
    • Flutter version 2.3.0-2.0.pre.108 at /Volumes/Mac HD - Data/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision e994b959cd (3 months ago), 2021-05-11 09:19:02 -0400
    • Engine revision 8932fe7890
    • Dart version 2.14.0 (build 2.14.0-74.0.dev)

[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
    • Android SDK at /Users/USER/Library/Android/sdk
    • Platform android-30, build-tools 29.0.3
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6915495)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 12.5.1, Build version 12E507
    • CocoaPods version 1.10.1

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 4.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6915495)

[✓] VS Code (version 1.51.1)
    • VS Code at /Users/USER/Downloads/Visual Studio Code.app/Contents
    • Flutter extension can be installed from:
      🔨 https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter

[✓] Connected device (1 available)
    • Chrome (web) • chrome • web-javascript • Google Chrome 92.0.4515.131

Here is an example of how i am loading them
 InterstitialAd.load(
        adUnitId: ADMOB_INTERSTITIAL_AD_UNIT_ID,
        request: AdRequest(),
        adLoadCallback: InterstitialAdLoadCallback(
          onAdLoaded: (InterstitialAd ad) {
            _interstitialAd = ad;

            _interstitialAd.fullScreenContentCallback = FullScreenContentCallback(
              onAdFailedToShowFullScreenContent: (ad, error) {
                print(error.message);
                _interstitialAd.dispose();
              },

              onAdDismissedFullScreenContent: (ad) {
                 _interstitialAd.dispose();
              },
            );

            _interstitialAd.show();
          },
          onAdFailedToLoad: (LoadAdError error) {
            print(error.message);
          },
        ));

The error code was different  Error code 3 a few weeks back:
I am running out of ideas :/

They also do not work in release mode

If they don't run in release mode (flutter run --release) there is likely something wrong in the code can you try running the app and share the logs by running flutter run -v and also share what version of the ads plugin are you having this issue with?

Hi @maheshmnj
Thanks for replying I appreciate the help :)
I cant paste all the logs from verbose because it has a lot of private information in.
When i try to load an ad this is all it prints
[ +763 ms] <Google> To get test ads on this device, set: GADMobileAds.sharedInstance.requestConfiguration.testDeviceIdentifiers = @[ @"REPLACED" ];
[ +211 ms] flutter: Request Error: No ad to show.

The version I am using is
google_mobile_ads: 0.13.2

I can't understand what would be wrong with it? I just double checked the ad keys and they are correct. The test ads load correctly and the android ads work fine.
Do you have any ideas?

@febg11, Thanks for the details,  I see there is a similar open issue reporting this case https://github.com/googleads/googleads-mobile-flutter/issues/209, Please follow up there for further updates. Closing this issue as a duplicate
Thank you.

@maheshmnj Is that definitely the same problem? They seem to be talking about test ads not loading which is working for me

When you run the app in debug mode using flutter run --debug do you see the ads working? Please share the console logs and I see that you are getting Error code: 1 which means
The ad request was invalid; for instance, the ad unit ID was incorrect as mentioned in the docs

No I see nothing. All I see is what I have sent

Hi @maheshmnj
Do you have any other suggestions?
There is no way to contact admob, every time I fill in the contact form I just receive the following error

I also asked a question on the community group over 2 weeks ago and there has been no replies. I honestly don't know where to go from here.
I'm looking to purchase some advertising for my app but whats the point if I will receive no ad revenue. I'd appreciate any help you could give me.
Kind regards

@febg11 labeling this as a bug for further investigation

@febg11 can you also verify in your admobs dashboard if you have linked your app and its verified.

Hi again,
The debug android app I have been using has just started to fail to load test ads.  This has been the same version I have been using for a few weeks that was loading the test ads correctly. I have not changed anything in the app.
On debugging I receive the following messages
I/Ads     (31099): Ad failed to load : 3
I/flutter (31099): No ad config.
I/flutter (31099): my-app Failed to load Ad

Do you know why this has started happening, how I can fix it and could it be related to the iOS ads not loading correctly?

The app on the android store is now showing the same error. I have no ads at all
It prints the following
2021-09-01 19:22:26.381 26987-26987/? I/Ads: Ad failed to load : 3
2021-09-01 19:22:26.382 26987-27034/? I/flutter: No ad config.
2021-09-01 19:22:26.382 26987-27034/? I/flutter: my-app Failed to load Ad

Do you have anything else I can try @maheshmnj

Could you try the suggestions in this thread?

Hi @jjliu15
I have done everything in that bullet point list. I find it strange that the android ads have just stopped working entirely.
I am also worried about excessively trying the load the real ads myself, I dont want my account restricted becauswe of this as that would just lead to more problems.
Is there anything else I can do?

This issue looks like a possible duplicate of https://github.com/googleads/googleads-mobile-flutter/issues/59

I did actually comment on that issue a while back. Everything just seems to take months to fix with flutter. We can continue it on that issue if you want.
Hopefully this will get resolved soon, I see that it has been reproduced by https://github.com/googleads/googleads-mobile-flutter/issues/59#issuecomment-893547761

repo: googleads/googleads-mobile-flutter


text:
Support non-"master

Thanks for stopping by to let us know something could be better!
PLEASE READ: If you have a support contract with Google, please create an issue in the support console instead of filing on GitHub. This will ensure a timely response.
Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
Describe the solution you'd like
A clear and concise description of what you want to happen.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.

Accidentally opened

repo: googleapis/code-suggester