LIVE VIEW IS HD EVEN IF IT WAS EXPLICITLY USED THE SUB STREAM

Hello, I have updated the frigate server to the latest and the frigate integration and frigate card. I use go2rtc as my live provider but my problem is the viewing stream is defaulting to HD. I can't select the sub-stream unlike when I use the live provider as webrtc, I can select the sub-stream as a viewing stream.
Here's what I get when I select the sub-stream

Unlike webrtc, I can select the sub-stream as a viewing stream

My setup:
I'm running frigate (0.12.0-DA3E197) as a docker container in unraid.
Below is my config:
mqtt:
  host: <IP_ADDRESS>
  port: 1883
  user: [removed]
  password: [removed]

detect:
  width: 640
  height: 480
  fps: 5

record:
  enabled: true
  expire_interval: 60
  retain:
    days: 60
    mode: motion
  events:
    pre_capture: 5
    post_capture: 5

snapshots:
  enabled: true
  bounding_box: true
  retain:
    default: 60
    objects:
      person: 60
      cat: 60
      dog: 60
      bird: 60
      car: 60
      motorcycle: 60

ffmpeg:
  hwaccel_args: preset-vaapi

detectors:
  coral:
    type: edgetpu
    device: usb

go2rtc:
  streams:
    living:
      - rtsp://[removed]:[removed]@<IP_ADDRESS>:554/Streaming/Channels/101?transportmode=unicast&profile=Profile_1
    living_sub:
      - rtsp://[removed]:[removed]@<IP_ADDRESS>:554/Streaming/Channels/102?transportmode=unicast&profile=Profile_1
    rooftop:
      - rtsp://[removed]:[removed]@<IP_ADDRESS>:554/Streaming/Channels/101?transportmode=unicast&profile=Profile_1
    rooftop_sub:
      - rtsp://[removed]:[removed]@<IP_ADDRESS>:554/Streaming/Channels/102?transportmode=unicast&profile=Profile_1
    front:
      - rtsp://[removed]:[removed]@<IP_ADDRESS>:554/Streaming/Channels/101?transportmode=unicast&profile=Profile_1
    front_sub:
      - rtsp://[removed]:[removed]@<IP_ADDRESS>:554/Streaming/Channels/102?transportmode=unicast&profile=Profile_1
    parking:
      - rtsp://[removed]:[removed]@<IP_ADDRESS>:554/Streaming/Channels/101?transportmode=unicast&profile=Profile_1
    parking_sub:
      - rtsp://[removed]:[removed]@<IP_ADDRESS>:554/Streaming/Channels/102?transportmode=unicast&profile=Profile_1

ui:
  live_mode: webrtc

live:
  height: 640
  quality: 1

rtmp:
  enabled: false

cameras:
  living:
    ffmpeg:
      inputs:
        - path: rtsp://<IP_ADDRESS>:8554/living_sub
          input_args: preset-rtsp-restream
          roles:
            - detect
        - path: rtsp://<IP_ADDRESS>:8554/living
          input_args: preset-rtsp-restream
          roles:
            - record
    live:
      stream_name: living_sub
    objects:
      track:
        - person
        - cat
    motion:
      mask: 0,56,216,55,215,21,0,21
    zones:
      living_zone:
        coordinates: 462,480,468,182,480,21,394,0,258,0,244,58,115,61,0,60,0,135,0,480
        objects:
          - person
          - cat

  rooftop:
    ffmpeg:
      inputs:
        - path: rtsp://<IP_ADDRESS>:8554/rooftop_sub
          input_args: preset-rtsp-restream
          roles:
            - detect
        - path: rtsp://<IP_ADDRESS>:8554/rooftop
          input_args: preset-rtsp-restream
          roles:
            - record
    live:
      stream_name: rooftop_sub
    record:
      events:
        required_zones:
          - rooftop_area
    snapshots:
      required_zones:
        - rooftop_area
    objects:
      track:
        - person
        - cat
        - bird
        - dog
    motion:
      mask: 272,253,0,250,0,145,0,0,442,0,640,0,640,480,515,480,471,275,369,264,372,205,276,192
    zones:
      rooftop_area:
        coordinates: 518,480,477,268,370,254,366,181,274,188,253,236,220,237,0,247,0,480
        objects:
          - person
          - cat
          - dog

  front:
    ffmpeg:
      inputs:
        - path: rtsp://<IP_ADDRESS>:8554/front_sub
          input_args: preset-rtsp-restream
          roles:
            - detect
        - path: rtsp://<IP_ADDRESS>:8554/front
          input_args: preset-rtsp-restream
          roles:
            - record
    live:
      stream_name: front_sub
    record:
      events:
        required_zones:
          - front_house
          - planters
          - garage
    snapshots:
      required_zones:
        - front_house
        - planters
        - garage
    objects:
      track:
        - person
        - cat
        - dog
        - car
        - motorcycle
    motion:
      mask: 0,217,0,0,199,0,350,0,447,0,640,0,640,67,640,182,419,204,0,458,0,480
    zones:
      front_house:
        coordinates: 239,480,291,439,360,384,413,331,445,294,479,252,414,246,274,345,83,480
        objects:
          - person
          - car
          - motorcycle
          - dog
      planters:
        coordinates: 552,480,473,459,494,262,405,369,289,480
        objects:
          - person
          - cat
          - dog
      garage:
        coordinates: 489,242,529,194,590,219,576,380,548,480,475,459
        objects:
          - person
          - cat
          - dog

  parking:
    ffmpeg:
      inputs:
        - path: rtsp://<IP_ADDRESS>:8554/parking_sub
          input_args: preset-rtsp-restream
          roles:
            - detect
        - path: rtsp://<IP_ADDRESS>:8554/parking
          input_args: preset-rtsp-restream
          roles:
            - record
    live:
      stream_name: parking_sub
    record:
      events:
        required_zones:
          - garage
    snapshots:
      required_zones:
        - garage
    objects:
      track:
        - person
        - cat
        - dog
    motion:
      mask:
        - 477,0,481,91,228,81,215,0
        - 0,24,217,24,219,48,0,46
    zones:
      garage:
        coordinates: 478,480,480,89,249,86,221,98,213,34,0,167,0,480,62,480
        objects:
          - person
          - cat
          - dog

There is a stream name field for the go2rtc provider. If I understand your problem correctly, you should just be able to set that to living_sub or whatever go2rtc stream you want.

Thank you. I thought it was in the frigate config that I need to set it to. It is now working.


Custom script migration

Custom script migration

so what kind of problem is these changes trying to solve? just curious. Can you explain. thank you

So, thank you for your reply.
I want to implement a db migration stepped with SQL Script 1.sql, 2.sql, etc...
but without automatic model creation, all with SQL Script.

and to do all SQL Script without conflict (like triggers with multiple instructions) we need to add a custom script separator.

@agrosner please can you add this functionality...it doesn't have any conflicts with your version and can be useful for me.

Solved with a Custom OpenHelperCreator.
You can close it. :) thank you


Tap On Screen Close Selection Mnuu

Hi Thanks For This Library.
I Use Action Sheet Style And Single Selection. I Want When User Tap Other Screen Space , Close (Dismiss)
Action Sheet. Please Help me Thanks.

@fcbmojtaba1995 you need to provide action button to dismiss the menu on tap outside.
like this.
selectionMenu.show(style: .Actionsheet(title: nil, action: "Done", height: nil), from: self)
Hope this helps.


Haptics doesn't work when "Render in headset" is enabled

Haptic events are generating in the console, but no haptics on the controllers at all. Tried it with and without launching ovr_dummy.
Not a big problem though, since I found that Oculus Killer works well as an alternative to disable any rendering in CV1.

Thanks for the heads up, there's been issues like this with render in headset mode for a long time, which is why the alternative of using ovr_dummy exists to stop accidental interaction with oculus home. I'll have a look at some point of I can persuade it to work again. Can you share the rest of your setup please? What's the other headset you are using?
Thanks

Pico Neo 3 Link in DisplayPort mode (it works as a native SteamVR headset). Its controllers are disabled. Also I use continuous calibration with 3rd Touch controller firmly attached to the headset.


Improve projects UI

Currently projects are cards at the bottom of the page. It looks all too similar to the other cards on the page.
A few suggestions:

Add an image to the project preview.
Make the cards bigger and display more information on them, like who built it, and what not
Improve the project page when you click on it, so it's easy to navigate back to the main site

I would like to work on this issue.

@0904-mansi can we have some styling added to the project card? It looks too plain

@0904-mansi can we have some styling added to the project card? It looks too plain

sure mam could you please hint what kind of styling must be added?


To ID or FID - that is the question

I have a postgresql/postgis database (14.11/3.4).
I set up DB Sync and it works.  IN my database I have ID as my Primary key.  DB Sync creates a geopackage without an FID and ID is a required field. When I go to Enter data on my phone it prompts me to manually save the Primary key.
So when I set up the QGZ file - I can turn off ID as a required field. Record data. It works. ID is ignored. When it syncs back to the database - ID is properly filled out.
If I change the database and make ID field FID (My new Primary key is FID) - I don't have to make any changes and everything works out of the box.
I'm not even sure if this is a bug or normal.
Should db sync make an FID field in the geopackage? Should my Primary key become FID to smooth out the process? Is it up to the  user to fix it in the QGZ file? I really am leaning toward "this is intended behavior and the user needs to switch off the primary key in the QGZ/db_sync.gpkg file to smooth out data collection".

So if I hide the ID in the QGZ file it's not a problem.


New version: LGUG2Z.whkd version 0.2.0

Pull request has been created with WinGet Releaser v2 :rocket:
Microsoft Reviewers: Open in CodeFlow

@wingetbot waivers Add Validation-Executable-Error


Add korean link in readme_en, modi mistranslation

Sorry, I forgot to put the Korean link in the English readme. I also corrected the mistranslation.

👍


enable snapshots of wikidata powered pages like https://scholia.toolforge.org/author/Q3675789

Use case:

track author pages over time
do diffs on the changes

Currently, the pages contain templated javascript that is used to dynamically render a page.
Preston support would have to run the queries independently (or somehow), retrieve the raw data, and associate this to the content produced by pages like https://scholia.toolforge.org/author/Q3675789 .
For templates see https://github.com/WDscholia/scholia/blob/master/scholia/app/templates/author.html .
Ideally, the sparql queries would be embedded in machine readable html meta tags, so Preston doesn't have to parse dynamically generated javascript.

Note that the Scholia pages change, which may make the diff complicated (html layout changes, data schema changes).

In discussion with @Daniel-Mietchen
fyi @mielliott

hey @Daniel-Mietchen - I had some fun with SPARQL queries sent from Scholia to wikipedia.
Some observations:

due to ordering issues, the results returned from wikipedia are not the same (the order in author list changes)
sparql used is not formally correct sparql due to missing prefixes (e.g., wd: prefix not explicitly defined)

Some ideas:
I see your website Scholia as a service that:

knows how to ask questions
knows how to interpret answers

It just so happens to be that you are using wikidata to answer your questions.
If I look at the nuts and bolts: I see a query entity (the sparql query) that is used in some activity (the query process) and has some result (the query result).
The query Q and result R are simply strings that can be expressed as content.
The activity can be described in the provenance ontology (e.g., "process X used query Q to invoke service Y which resulted in result R).
What Preston can offer is a way to related specific queries Q1,Q2,Q3, to their results R1, R2, R3, ... through a well-defined activity.

Or, you can choose to lookup a known result R associated with a query Q through a "query result registry".
Now, through configuration (e.g., live query, or wikidata from 2021-04-21 as seen from a server in Germany), you can actively choose your perspective on the data universe that you are interested in. Are you looking for an unpredictable data university to explore, do a live query. If you are looking to do research, you'd want to have your data universe controlled, predictable and well-behaved (something that the internet cannot guarantee, but abstract data graphs like those created by Preston can).
Curious to hear your thoughts,
-jorrit


Remove potentially unsafe calls from ISR functions.

Identified a couple of function calls that I believe are unsafe to call from within interrupts. There is potential for esp_err_to_name() and ESP_LOGx() functions to trigger an illegal call exception as they reside in flash along with the stings that they might use.
In the event of the preceding calls returning an error, I don't think the log messages would be of much use - If I understand the code, calls to the timer functions only return an error if bad data is passed - This would either be a programming error, or the result of memory corruption. And if memory is corrupt, the whole system is toast.

You are right, string manipulation and logging doesn't look safe in context of interrupt handlers. But I think it's still useful to handle possible errors with timer, just not report them in these handlers. I'll merge this PR and add some error reporting a bit later.


401 Authentication issue for API

we have wso2 3.0.0 APIM installed in our production environment.
Suddenly for one of our clients for their API started getting a 401 authentication issue.
The token which was provided by us was a lifetime token.
is this issue with the product itself? could you please confirm? what precautions should be taken so that this should never happen again.

This is not happen in latest product. Needed more information to sort this down. If require please re-open


The TypeScript language service died 5 times right after it got started. The service will not be restarted.

Issue Type: Bug
Every time I launch vscode I get "The TypeScript language service died 5 times right after it got started. The service will not be restarted."
Everything worked fine yesterday. I don't think vscode or typescript has updated in the last couple of days. I've restared vscode multiple times and I restarted my computer.
Any help here would be appreciated. vscode is really helpful if I don't get the typescript features.
VS Code version: Code 1.50.1 (d2e414d9e4239a252d1ab117bd7067f125afd80a, 2020-10-13T14:53:05.704Z)
OS version: Darwin x64 18.7.0

System Info

Item
Value

CPUs
Intel(R) Core(TM) i7-4870HQ CPU @ 2.50GHz (8 x 2500)

GPU Status
2d_canvas: enabledflash_3d: enabledflash_stage3d: enabledflash_stage3d_baseline: enabledgpu_compositing: enabledmetal: disabled_offmultiple_raster_threads: enabled_onoop_rasterization: enabledopengl: enabled_onprotected_video_decode: unavailable_offrasterization: enabledskia_renderer: disabled_off_okvideo_decode: enabledwebgl: enabledwebgl2: enabled

Load (avg)
4, 4, 5

Memory (System)
16.00GB (0.08GB free)

Process Argv
--crash-reporter-id ad666562-6867-40ec-bc92-9441dad4da7b

Screen Reader
no

VM
0%

Extensions (6)

Extension
Author (truncated)
Version

EditorConfig
Edi
0.15.1

vscode-install-vsix
fab
1.4.0

beautify
Hoo
1.5.0

vscode-typescript-next
ms-
4.1.20201026

vscode-typescript-tslint-plugin
ms-
1.2.3

angular-console
nrw
14.0.1

It appears to be the tslint extension causing the issue. TypeScript language service seems to start fine when that is disabled.

Does this reproduce in the latest VS Code insiders build with all extensions disabled?


Handle Qiskit 1.0 removals

Summary
Handles all removals in qiskit 1.0, there should also be compatibility with qiskit 0.45/0.46
Removed test_composite_job since those tests have been skipped for over a year and we are deprecating this repo soon anyway.
Details and comments

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 1 (100.0%)  changed or added relevant line in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.04%) to 43.127%

Totals

Change from base Build<PHONE_NUMBER>:
0.04%

Covered Lines:
2902

Relevant Lines:
6729

💛  - Coveralls


Installing AMUSE on a Mac where Anaconda Python Distribution Installed

I'm interested in installing AMUSE on a MacPro (Late 2013) that run MacOS X Sierra (ver. 10.12.6) that has Python 3.6.5 Anaconda distribution installed. Is there a procedure for installing AMUSE under Mac OS X with the Anaconda distribution of Python already installed that does not require the use of MacPorts?
Please advise.

Myself, I am not too familier with mac installs (or anaconda)..
@rieder: have you tried this?

I’m in the process of trying :).
I’ll hopefully have something more to say later this week.

I tried this by installing the prerequisites through conda.
Unfortunately, all the Fortran-based community codes fail to build. This is because the openmpi I installed (from conda-forge) doesn't have fortran support - probably because it's built for the Xcode compilers which lack this (maybe this shouldn't be a blocking issue for installing any part of AMUSE, but that's a separate issue).
If there is an openmpi (or mpich) with fortran support which can be installed through conda, I guess it could work. I'll keep looking for now, but if anyone knows of such a package, please let us know.

Hm, I deduced from this that the conda-forge openmpi would be fortran enabled. Indeed the fortran codes build on my machine (High Sierra 10.13.5, Xcode 9.4.1, clean conda env with python2.7). However, I also have Macports gfortran installed, so I'm not 100% sure which fortran gets used.

I also installed gfortran_osx-64, that seems to make sure that indeed the conda fortran compiler is used instead of the macports one.

If that works, great!
Did you install gfortran_osx-64 through Anaconda as well?

Ok, just installing pkg-config does not magically fix everything.
I did find a way to add the necessary rpath to a complaining executable after the fact. One example is hermite0_worker:
cd src/amuse/community/hermite0
install_name_tool -add_rpath ${CONDA_PREFIX}/lib hermite0_worker

After this it works without complaining (well, it complains about MPI not being able to connect through my firewall, different issue #243). So indeed, supplying rpath at build time using -Wl,-rpath,$CONDA_PREFIX in LD_FLAGS should do the trick... let's try.

Issue #182 is also related to / the same as this one

First testing results:
Core tests
nosetests -e 'grid_implementation' test/core_tests

The grid_implementation test is excluded, see #258.
Results:
...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................F................................................................................./Users/pbos/src/git/amuse/src/amuse/test/amusetest.py:119: RuntimeWarning: overflow encountered in ulong_scalars
  is_one_zero = second_num * first_num == 0.0
.............................................................................
======================================================================
FAIL: test10 (test.core_tests.test_rotation.TestRotations)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/pbos/src/git/amuse/test/core_tests/test_rotation.py", line 162, in test10
    self.assertAlmostEquals(dot1,dot2,14)
  File "/Users/pbos/src/git/amuse/src/amuse/test/amusetest.py", line 99, in failUnlessAlmostEqual
    self._raise_exceptions_if_any(failures, first, second, '{0} != {1} within {2} places', msg, places)
  File "/Users/pbos/src/git/amuse/src/amuse/test/amusetest.py", line 64, in _raise_exceptions_if_any
    raise self.failureException(msg or err_fmt_string.format(first, second, *args))
AssertionError: 24.0 != 24.0 within 14 places
-------------------- >> begin captured stdout << ---------------------
test conservation of dot, transformation of cross

--------------------- >> end captured stdout << ----------------------

----------------------------------------------------------------------
Ran 922 tests in 25.819s

FAILED (failures=1)

Report tests
nosetests -e 'test_speed' nosetests test/reports

The test_speed test fails as well, see again #258.
Results
----------------------------------------------------------------------
Ran 0 tests in 0.000s

OK

Seems a bit odd to have an almost empty testing directory.

Ext tests
nosetests test/ext_tests

Results
......................................................................S....SE.EWriting output to: /Users/pbos/src/git/amuse/data/gaslactics/output/model7603316886328939275

 running dbh

dyld: Library not loaded: @rpath/libgfortran.3.dylib
  Referenced from: /Users/pbos/src/git/amuse/src/amuse/community/galactics/gas_src/bin/dbh
  Reason: image not found
Exception occurred in commit_parameters: dbh fail
-1 OrderedDictionary({})
E.....SSSSSSS......Checking parameters, calculating halo properties and initialising grid in r...
Done in 0.151459 seconds.
Initialising grid for distribution function...
Warning!
x = 6.9077553e+00 was above range of array! Index i = 2000 / n = 2001.
Array between -1.3815511e+01 and 6.9077553e+00.
Relative error (= 1.28577e-16) at upper boundary was within tolerance of 1.000000e-10
Index set to i = n-2 = 1999
Done in 2.2651 seconds.
Setting particle positions...
Done in 0.000552 seconds.
Setting particle velocities...
Done in 0.000489 seconds.
Setting remaining particle attributes...
Done in 8e-06 seconds
Calculating a few things, doing mass scaling and correct center of mass position and velocity...
Warning!
x = 5.0000000e-04 was below range of array! Index i = -1 / n = 2001.
Array between 1.0000000e+00 and 1.0010000e+00.
Done in 0.000203 seconds
Total time needed was 2.41781 seconds
...............E....SSS................................................................E.E........E............................S/Users/pbos/src/git/amuse/src/amuse/ext/static_potentials.py:184: RuntimeWarning: divide by zero encountered in log
  log_m_over_mb = numpy.log(mass_above/mass_below) * numpy.log(r/radius_below) / numpy.log(radius_above/radius_below)
/Users/pbos/src/git/amuse/src/amuse/ext/static_potentials.py:184: RuntimeWarning: invalid value encountered in double_scalars
  log_m_over_mb = numpy.log(mass_above/mass_below) * numpy.log(r/radius_below) / numpy.log(radius_above/radius_below)
.........S.SSSS.............................
======================================================================
ERROR: test1 (test.ext_tests.test_galactics_model.NewGalactICsModelTests)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/pbos/src/git/amuse/test/ext_tests/test_galactics_model.py", line 17, in test1
    do_scale = True)
  File "/Users/pbos/src/git/amuse/src/amuse/ext/galactics_model.py", line 80, in __call__
    return _new_galactics_model(*args, code=code,**kwargs)
  File "/Users/pbos/src/git/amuse/src/amuse/ext/galactics_model.py", line 18, in _new_galactics_model
    instance.generate_particles()
  File "/Users/pbos/src/git/amuse/src/amuse/community/galactics/interface.py", line 883, in generate_particles
    result = self.overridden().generate_particles()
  File "/Users/pbos/src/git/amuse/src/amuse/support/methods.py", line 107, in __call__
    result = self.method(*list_arguments, **keyword_arguments)
  File "/Users/pbos/src/git/amuse/src/amuse/support/methods.py", line 109, in __call__
    result = self.convert_result(result)
  File "/Users/pbos/src/git/amuse/src/amuse/support/methods.py", line 145, in convert_result
    return self.definition.convert_result(self, result)
  File "/Users/pbos/src/git/amuse/src/amuse/support/interface.py", line 628, in convert_result
    return self.handle_return_value(method, result)
  File "/Users/pbos/src/git/amuse/src/amuse/support/interface.py", line 571, in handle_as_unit
    unit.append_result_value(method, self, value, result)
  File "/Users/pbos/src/git/amuse/src/amuse/support/interface.py", line 60, in append_result_value
    self.convert_result_value(method, definition, value)
  File "/Users/pbos/src/git/amuse/src/amuse/support/interface.py", line 70, in convert_result_value
    definition.handle_errorcode(errorcode)
  File "/Users/pbos/src/git/amuse/src/amuse/support/interface.py", line 548, in handle_errorcode
    raise exceptions.AmuseException("Error when calling '{0}' of a '{1}', errorcode is {2}".format(self.name, type(self.wrapped_object).__name__, errorcode), errorcode)
AmuseException: Error when calling 'generate_particles' of a 'GalactICs', errorcode is -4

======================================================================
ERROR: test5 (test.ext_tests.test_galactics_model.NewGalactICsModelTests)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/pbos/src/git/amuse/test/ext_tests/test_galactics_model.py", line 73, in test5
    do_scale = False)
  File "/Users/pbos/src/git/amuse/src/amuse/ext/galactics_model.py", line 80, in __call__
    return _new_galactics_model(*args, code=code,**kwargs)
  File "/Users/pbos/src/git/amuse/src/amuse/ext/galactics_model.py", line 18, in _new_galactics_model
    instance.generate_particles()
  File "/Users/pbos/src/git/amuse/src/amuse/community/galactics/interface.py", line 883, in generate_particles
    result = self.overridden().generate_particles()
  File "/Users/pbos/src/git/amuse/src/amuse/support/methods.py", line 107, in __call__
    result = self.method(*list_arguments, **keyword_arguments)
  File "/Users/pbos/src/git/amuse/src/amuse/support/methods.py", line 109, in __call__
    result = self.convert_result(result)
  File "/Users/pbos/src/git/amuse/src/amuse/support/methods.py", line 145, in convert_result
    return self.definition.convert_result(self, result)
  File "/Users/pbos/src/git/amuse/src/amuse/support/interface.py", line 628, in convert_result
    return self.handle_return_value(method, result)
  File "/Users/pbos/src/git/amuse/src/amuse/support/interface.py", line 571, in handle_as_unit
    unit.append_result_value(method, self, value, result)
  File "/Users/pbos/src/git/amuse/src/amuse/support/interface.py", line 60, in append_result_value
    self.convert_result_value(method, definition, value)
  File "/Users/pbos/src/git/amuse/src/amuse/support/interface.py", line 70, in convert_result_value
    definition.handle_errorcode(errorcode)
  File "/Users/pbos/src/git/amuse/src/amuse/support/interface.py", line 548, in handle_errorcode
    raise exceptions.AmuseException("Error when calling '{0}' of a '{1}', errorcode is {2}".format(self.name, type(self.wrapped_object).__name__, errorcode), errorcode)
AmuseException: Error when calling 'generate_particles' of a 'GalactICs', errorcode is -4

======================================================================
ERROR: test6 (test.ext_tests.test_galactics_model.NewGalactICsModelTests)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/pbos/src/git/amuse/test/ext_tests/test_galactics_model.py", line 113, in test6
    do_scale = False, reuse_cached_model=False, verbose=True)
  File "/Users/pbos/src/git/amuse/src/amuse/ext/galactics_model.py", line 80, in __call__
    return _new_galactics_model(*args, code=code,**kwargs)
  File "/Users/pbos/src/git/amuse/src/amuse/ext/galactics_model.py", line 18, in _new_galactics_model
    instance.generate_particles()
  File "/Users/pbos/src/git/amuse/src/amuse/community/galactics/gas_interface.py", line 753, in generate_particles
    result = self.overridden().generate_particles()
  File "/Users/pbos/src/git/amuse/src/amuse/support/methods.py", line 105, in __call__
    object = self.precall()
  File "/Users/pbos/src/git/amuse/src/amuse/support/methods.py", line 148, in precall
    return self.definition.precall(self)
  File "/Users/pbos/src/git/amuse/src/amuse/support/interface.py", line 355, in precall
    transition.do()
  File "/Users/pbos/src/git/amuse/src/amuse/support/state.py", line 124, in do
    self.method.new_method()()
  File "/Users/pbos/src/git/amuse/src/amuse/support/methods.py", line 107, in __call__
    result = self.method(*list_arguments, **keyword_arguments)
  File "/Users/pbos/src/git/amuse/src/amuse/community/galactics/gas_interface.py", line 745, in commit_parameters
    self.overridden().commit_parameters()
  File "/Users/pbos/src/git/amuse/src/amuse/support/methods.py", line 107, in __call__
    result = self.method(*list_arguments, **keyword_arguments)
  File "/Users/pbos/src/git/amuse/src/amuse/support/methods.py", line 109, in __call__
    result = self.convert_result(result)
  File "/Users/pbos/src/git/amuse/src/amuse/support/methods.py", line 145, in convert_result
    return self.definition.convert_result(self, result)
  File "/Users/pbos/src/git/amuse/src/amuse/support/interface.py", line 628, in convert_result
    return self.handle_return_value(method, result)
  File "/Users/pbos/src/git/amuse/src/amuse/support/interface.py", line 564, in handle_as_unit
    return self.return_units.convert_result_value(method, self, return_value)
  File "/Users/pbos/src/git/amuse/src/amuse/support/interface.py", line 70, in convert_result_value
    definition.handle_errorcode(errorcode)
  File "/Users/pbos/src/git/amuse/src/amuse/support/interface.py", line 548, in handle_errorcode
    raise exceptions.AmuseException("Error when calling '{0}' of a '{1}', errorcode is {2}".format(self.name, type(self.wrapped_object).__name__, errorcode), errorcode)
AmuseException: Error when calling 'commit_parameters' of a 'GaslactICs', errorcode is -1
-------------------- >> begin captured stdout << ---------------------
adopted galaxy model parameters:
bulge_cutoff_potential: -20.0 length**2 / (time**2)
bulge_cutoff_radius: 7.0 length
bulge_density_parameter: 5.5 mass / (length**3)
bulge_do_center_flag: False
bulge_number_of_particles: 1000
bulge_random_seed: 12345678
bulge_scale_radius: 0.8 length
bulge_streaming_fraction: 0.5
bulge_type_parameter: 0
bulge_velocity_dispersion: 1.0 length / time
disk_central_radial_vdisp_over_z_vdisp: 1.0
disk_do_center_flag: False
disk_mass: 50.0
disk_number_of_particles: 1000
disk_outer_radius: 13.0 length
disk_random_seed: 98765432
disk_scale_height: 0.6 length
disk_scale_length: 3.0 length
disk_scale_length_of_radial_vdisp: 3.0 length
disk_truncation_dr: 1.0 length
disk_type_parameter: 0
gas_disk_gamma: 1.0
gas_disk_mass: 5.0
gas_disk_max_z: 5.0 length
gas_disk_number_of_particles: 1000
gas_disk_number_of_radial_bins: 50
gas_disk_outer_radius: 26.0 length
gas_disk_random_seed: 543212345
gas_disk_scale_length: 3.0 length
gas_disk_sound_speed: 0.12 length / time
gas_disk_truncation_dr: 1.0 length
gas_disk_velocity_dispersion: 0.0
halo_Ra: 4.0 length
halo_central_potential: -28.0 length**2 / (time**2)
halo_coreparam: 0.0
halo_density_parameter: 0.01 mass / (length**3)
halo_do_center_flag: False
halo_einasto_mass: 400.0
halo_einasto_nindex: 5.0
halo_number_of_particles: 1000
halo_q: 1.0
halo_random_seed: -1
halo_scale_radius: 13.7 length
halo_streaming_fraction: 0.5
halo_type_parameter: 3
halo_v0: 2.5 length / time
halo_virial_radius: 40.0 length
number_of_grid_intervals: 20000
number_of_iterations: 12
number_of_radial_steps_correction_fns: 200
order_of_multipole_expansion: 0
output_directory: /Users/pbos/src/git/amuse/data/gaslactics/output
radial_grid_delta_r: 0.025 length
reuse_cached_model: False

generating galaxy model, this may take a while...

--------------------- >> end captured stdout << ----------------------
-------------------- >> begin captured logging << --------------------
amuse.rfi.channel: DEBUG: got 1 strings of size [48]
amuse.rfi.channel: DEBUG: got 1 strings of size [48], data = [u'/Users/pbos/src/git/amuse/data/gaslactics/output']
--------------------- >> end captured logging << ---------------------

======================================================================
ERROR: test4 (test.ext_tests.test_jobserver.TestRemoteCode)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/pbos/src/git/amuse/test/ext_tests/test_jobserver.py", line 83, in test4
    remote=RemoteCodeInterface(channel_type="sockets")
  File "/Users/pbos/src/git/amuse/src/amuse/ext/job_server.py", line 94, in __init__
    PythonCodeInterface.__init__(self, RemoteCodeImplementation, **options)
  File "/Users/pbos/src/git/amuse/src/amuse/rfi/core.py", line 1070, in __init__
    CodeInterface.__init__(self, name_of_the_worker, **options)
  File "/Users/pbos/src/git/amuse/src/amuse/rfi/core.py", line 711, in __init__
    self._start(name_of_the_worker = name_of_the_worker, **options)
  File "/Users/pbos/src/git/amuse/src/amuse/rfi/core.py", line 1086, in _start
    CodeInterface._start(self, name_of_the_worker = name_of_the_worker, **options)
  File "/Users/pbos/src/git/amuse/src/amuse/rfi/core.py", line 739, in _start
    self.channel.start()
  File "/Users/pbos/src/git/amuse/src/amuse/rfi/channel.py", line 2290, in start
    self.socket, address = self.accept_worker_connection(server_socket, self.process)
  File "/Users/pbos/src/git/amuse/src/amuse/rfi/channel.py", line 2218, in accept_worker_connection
    raise exceptions.CodeException('could not connect to worker, worker process terminated')
CodeException: could not connect to worker, worker process terminated
-------------------- >> begin captured logging << --------------------
amuse.rfi.channel: DEBUG: initializing SocketChannel with options {'channel_type': 'sockets', 'dynamic_python_code': True}
amuse.rfi.channel: DEBUG: full name of worker is /Users/pbos/src/git/amuse/job_server
amuse.rfi.channel: DEBUG: starting socket worker process, listening for worker connection on ('<IP_ADDRESS>', 59369)
amuse.rfi.channel: DEBUG: mpi_enabled: True
amuse.rfi.channel: DEBUG: starting process with command `/Users/pbos/sw/miniconda3/envs/amuse/bin/mpiexec`, arguments `['/Users/pbos/sw/miniconda3/envs/amuse/bin/mpiexec', '-n', '1', '/Users/pbos/sw/miniconda3/envs/amuse/bin/python', '/Users/pbos/src/git/amuse/src/amuse/rfi/run_command_redirected.pyc', '/dev/null', '/dev/null', '/Users/pbos/src/git/amuse/job_server', '59369', 'ESLT0072', 'true']` and environment '{'_': '/Users/pbos/sw/miniconda3/envs/amuse/bin/nosetests', 'CONDA_PYTHON_EXE': '/Users/pbos/sw/miniconda3/bin/python', 'LESS': '-F -g -i -M -R -S -w -X -z-4', 'FC': '/Users/pbos/sw/miniconda3/envs/amuse/bin/x86_64-apple-darwin13.4.0-gfortran', 'OMPI_MCA_rmaps_base_oversubscribe': 'yes', 'TERM_PROGRAM_VERSION': '3.1.6', 'PKG_CONFIG_PATH': '/Users/pbos/sw/lib/pkgconfig', 'FORTRANFLAGS': '-march=nocona -mtune=core2 -ftree-vectorize -fPIC -fstack-protector -O2 -pipe', 'LOGNAME': 'pbos', 'USER': 'pbos', 'PATH': '/Users/pbos/sw/miniconda3/envs/amuse/bin:/Users/pbos/sw/miniconda3/bin:/opt/local/bin:/opt/local/sbin:/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/TeX/texbin:/usr/local/MacGPG2/bin:/opt/X11/bin', 'HOME': '/Users/pbos', 'DISPLAY': '/private/tmp/com.apple.launchd.AAnKNWQE98/org.macosforge.xquartz:0', 'TERM_PROGRAM': 'iTerm.app', 'LANG': 'en_US.UTF-8', 'LESS_TERMCAP_se': '\x1b[0m', 'TERM': 'xterm-256color', 'Apple_PubSub_Socket_Render': '/private/tmp/com.apple.launchd.h55hb6of6R/Render', 'COLORFGBG': '12;8', 'SHLVL': '1', 'LESS_TERMCAP_me': '\x1b[0m', 'LESS_TERMCAP_md': '\x1b[01;31m', 'CONDA_PREFIX': '/Users/pbos/sw/miniconda3/envs/amuse', 'LESS_TERMCAP_mb': '\x1b[01;31m', 'XPC_FLAGS': '0x0', 'ITERM_SESSION_ID': 'w0t1p0:3984955F-3D6A-40FA-A4B8-6005D882148A', 'EDITOR': 'vim', 'CONDA_DEFAULT_ENV': 'amuse', 'FFLAGS': '-march=nocona -mtune=core2 -ftree-vectorize -fPIC -fstack-protector -O2 -pipe', 'GREP_COLOR': '37;45', 'JAVA_HOME': '/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home', 'TERM_SESSION_ID': 'w0t1p0:3984955F-3D6A-40FA-A4B8-6005D882148A', 'XPC_SERVICE_NAME': '0', 'GREP_COLORS': 'mt=37;45', 'PYTHONPATH': '/Users/pbos/code/python_modules', 'SSH_AUTH_SOCK': '/private/tmp/com.apple.launchd.x3PBS16MJa/Listeners', 'POWERLEVEL9K_MODE': 'nerdfont-complete', 'CONDA_PROMPT_MODIFIER': '', 'VISUAL': 'vim', 'SHELL': '/bin/zsh', 'GFORTRAN': '/Users/pbos/sw/miniconda3/envs/amuse/bin/x86_64-apple-darwin13.4.0-gfortran', 'ITERM_PROFILE': 'Default', 'CONDA_SHLVL': '1', 'TMPDIR': '/var/folders/_k/2ysbjq6j6cz6ybqxl777795r0000gn/T/', 'BROWSER': 'open', 'F95': '/Users/pbos/sw/miniconda3/envs/amuse/bin/x86_64-apple-darwin13.4.0-gfortran', 'LESS_TERMCAP_ue': '\x1b[0m', 'LSCOLORS': 'exfxcxdxbxGxDxabagacad', 'OLDPWD': '/Users/pbos/mpi_spawn_test', 'HOST': 'x86_64-apple-darwin13.4.0', 'CONDA_BACKUP_HOST': 'ESLT0072', '__CF_USER_TEXT_ENCODING': '0x0:0:5', 'PWD': '/Users/pbos/src/git/amuse', 'DEBUG_FFLAGS': '-march=nocona -mtune=core2 -ftree-vectorize -fPIC -fstack-protector -O2 -pipe -march=nocona -mtune=core2 -ftree-vectorize -fPIC -fstack-protector -O2 -pipe -Og -g -Wall -Wextra -fcheck=all -fbacktrace -fimplicit-none -fvar-tracking-assignments', 'LESS_TERMCAP_us': '\x1b[01;32m', 'COLORTERM': 'truecolor', 'LESS_TERMCAP_so': '\x1b[00;47;30m', 'LS_COLORS': 'di=34:ln=35:so=32:pi=33:ex=31:bd=36;01:cd=33;01:su=31;40;07:sg=36;40;07:tw=32;40;07:ow=33;40;07:', 'PAGER': 'less', 'CONDA_EXE': '/Users/pbos/sw/miniconda3/bin/conda', 'DEFAULT_USER': 'pbos'}'
amuse.rfi.channel: DEBUG: waiting for connection from worker
--------------------- >> end captured logging << ---------------------

======================================================================
ERROR: test2 (test.ext_tests.test_sph_to_grid.TestSPH2Grid)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/pbos/src/git/amuse/test/ext_tests/test_sph_to_grid.py", line 71, in test2
    sph_code = self.setup_sph_code(Fi, number_of_particles, L, rho, u)
  File "/Users/pbos/src/git/amuse/test/ext_tests/test_sph_to_grid.py", line 16, in setup_sph_code
    sph_code = sph_code(converter, mode = 'periodic')#, redirection = 'none')
  File "/Users/pbos/src/git/amuse/src/amuse/community/fi/interface.py", line 1679, in __init__
    legacy_interface = FiInterface(mode = mode, **options)
  File "/Users/pbos/src/git/amuse/src/amuse/community/fi/interface.py", line 53, in __init__
    CodeInterface.__init__(self, name_of_the_worker = self.name_of_the_worker(mode), **options)
  File "/Users/pbos/src/git/amuse/src/amuse/rfi/core.py", line 711, in __init__
    self._start(name_of_the_worker = name_of_the_worker, **options)
  File "/Users/pbos/src/git/amuse/src/amuse/rfi/core.py", line 730, in _start
    self.channel = self.channel_factory(name_of_the_worker, type(self), interpreter_executable = interpreter_executable, **options)
  File "/Users/pbos/src/git/amuse/src/amuse/rfi/channel.py", line 1364, in __init__
    self.full_name_of_the_worker = self.get_full_name_of_the_worker(legacy_interface_type)
  File "/Users/pbos/src/git/amuse/src/amuse/rfi/channel.py", line 1167, in get_full_name_of_the_worker
    raise exceptions.CodeException("The worker application does not exist, it should be at: \n{0}".format('\n'.join(tried_workers)))
CodeException: The worker application does not exist, it should be at:
/Users/pbos/src/git/amuse/src/amuse/community/fi/fi_worker_periodic
/Users/pbos/src/git/amuse/src/amuse/rfi/fi_worker_periodic
-------------------- >> begin captured stdout << ---------------------
Testing convert_SPH_to_grid with Fi

--------------------- >> end captured stdout << ----------------------

======================================================================
ERROR: test4 (test.ext_tests.test_sph_to_grid.TestSPH2Grid)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/pbos/src/git/amuse/test/ext_tests/test_sph_to_grid.py", line 121, in test4
    sph_code = self.setup_sph_code(Fi, number_of_particles, L, rho, u)
  File "/Users/pbos/src/git/amuse/test/ext_tests/test_sph_to_grid.py", line 16, in setup_sph_code
    sph_code = sph_code(converter, mode = 'periodic')#, redirection = 'none')
  File "/Users/pbos/src/git/amuse/src/amuse/community/fi/interface.py", line 1679, in __init__
    legacy_interface = FiInterface(mode = mode, **options)
  File "/Users/pbos/src/git/amuse/src/amuse/community/fi/interface.py", line 53, in __init__
    CodeInterface.__init__(self, name_of_the_worker = self.name_of_the_worker(mode), **options)
  File "/Users/pbos/src/git/amuse/src/amuse/rfi/core.py", line 711, in __init__
    self._start(name_of_the_worker = name_of_the_worker, **options)
  File "/Users/pbos/src/git/amuse/src/amuse/rfi/core.py", line 730, in _start
    self.channel = self.channel_factory(name_of_the_worker, type(self), interpreter_executable = interpreter_executable, **options)
  File "/Users/pbos/src/git/amuse/src/amuse/rfi/channel.py", line 1364, in __init__
    self.full_name_of_the_worker = self.get_full_name_of_the_worker(legacy_interface_type)
  File "/Users/pbos/src/git/amuse/src/amuse/rfi/channel.py", line 1167, in get_full_name_of_the_worker
    raise exceptions.CodeException("The worker application does not exist, it should be at: \n{0}".format('\n'.join(tried_workers)))
CodeException: The worker application does not exist, it should be at:
/Users/pbos/src/git/amuse/src/amuse/community/fi/fi_worker_periodic
/Users/pbos/src/git/amuse/src/amuse/rfi/fi_worker_periodic
-------------------- >> begin captured stdout << ---------------------
Testing convert_SPH_to_grid with Fi and do_scale

--------------------- >> end captured stdout << ----------------------

======================================================================
ERROR: test10 (test.ext_tests.test_spherical_model.TestUniformSphericalDistribution)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/pbos/src/git/amuse/test/ext_tests/test_spherical_model.py", line 118, in test10
    type="glass", target_rms=0.3)
  File "/Users/pbos/src/git/amuse/src/amuse/ext/spherical_model.py", line 278, in new_uniform_spherical_particle_distribution
    x, y, z = UniformSphericalDistribution(number_of_particles, **keyword_arguments).result
  File "/Users/pbos/src/git/amuse/src/amuse/ext/spherical_model.py", line 246, in result
    return getattr(self, self.type)()
  File "/Users/pbos/src/git/amuse/src/amuse/ext/spherical_model.py", line 191, in glass
    sph = Fi(mode = 'periodic', redirection = 'none')
  File "/Users/pbos/src/git/amuse/src/amuse/community/fi/interface.py", line 1679, in __init__
    legacy_interface = FiInterface(mode = mode, **options)
  File "/Users/pbos/src/git/amuse/src/amuse/community/fi/interface.py", line 53, in __init__
    CodeInterface.__init__(self, name_of_the_worker = self.name_of_the_worker(mode), **options)
  File "/Users/pbos/src/git/amuse/src/amuse/rfi/core.py", line 711, in __init__
    self._start(name_of_the_worker = name_of_the_worker, **options)
  File "/Users/pbos/src/git/amuse/src/amuse/rfi/core.py", line 730, in _start
    self.channel = self.channel_factory(name_of_the_worker, type(self), interpreter_executable = interpreter_executable, **options)
  File "/Users/pbos/src/git/amuse/src/amuse/rfi/channel.py", line 1364, in __init__
    self.full_name_of_the_worker = self.get_full_name_of_the_worker(legacy_interface_type)
  File "/Users/pbos/src/git/amuse/src/amuse/rfi/channel.py", line 1167, in get_full_name_of_the_worker
    raise exceptions.CodeException("The worker application does not exist, it should be at: \n{0}".format('\n'.join(tried_workers)))
CodeException: The worker application does not exist, it should be at:
/Users/pbos/src/git/amuse/src/amuse/community/fi/fi_worker_periodic
/Users/pbos/src/git/amuse/src/amuse/rfi/fi_worker_periodic
-------------------- >> begin captured stdout << ---------------------
Test new_uniform_spherical_particle_distribution, glass

--------------------- >> end captured stdout << ----------------------

----------------------------------------------------------------------
Ran 270 tests in 206.600s

FAILED (SKIP=18, errors=7)

Not bad, but not perfect either. Here again some @rpath issues. Discussed this with @ipelupessy, will fix these dynamic build tests by adding LDFLAGS in the from-Python-compilation scripting as well.

Btw, I think this should be done in a Travis build to keep things as clean as possible, otherwise it's nearly impossible to make sure whether indeed no local toolchains are interfering with the Conda toolchain. I think due to the long test times, we should then do either some representative selection or perhaps a random selection of tests. Alternatively, we could do just a build test and a separate (longer) actual test test.

Regarding the LDFLAGS issues in the ext_tests: #264

Hey I guess this is the right thread for my problems. I'm also using the conda environment but since I didn't get it to work with the conda packages (even the ones from conda-forge) I decided to go with the macport packages but still being in the conda env for the python stuff... urgh so it installs 45/47 codes without errormessages but then if I want to run the code I'm getting this error:
----> 1 ph4()

/anaconda3/envs/amuse/lib/python2.7/site-packages/amuse/community/ph4/interface.pyc in __init__(self, convert_nbody, **keyword_arguments)
    467
    468     def __init__(self, convert_nbody = None, **keyword_arguments):
--> 469         legacy_interface = ph4Interface(**keyword_arguments)
    470
    471         self.stopping_conditions = StoppingConditions(self)

/anaconda3/envs/amuse/lib/python2.7/site-packages/amuse/community/ph4/interface.pyc in __init__(self, mode, **options)
     31             self,
     32             name_of_the_worker=self.name_of_the_muse_worker(mode),
---> 33             **options
     34         )
     35

/anaconda3/envs/amuse/lib/python2.7/site-packages/amuse/rfi/core.pyc in __init__(self, name_of_the_worker, **options)
    750
    751         if self.must_start_worker:
--> 752             self._start(name_of_the_worker = name_of_the_worker, **options)
    753
    754     def __del__(self):

/anaconda3/envs/amuse/lib/python2.7/site-packages/amuse/rfi/core.pyc in _start(self, name_of_the_worker, interpreter_executable, **options)
    778         self.channel.initialize_mpi = self.initialize_mpi
    779
--> 780         self.channel.start()
    781
    782         # must register stop interfaces after channel start

/anaconda3/envs/amuse/lib/python2.7/site-packages/amuse/rfi/channel.pyc in start(self)
   1807
   1808         logger.debug("starting process with command `%s`, arguments `%s` and environment '%s'", command, arguments, os.environ)
-> 1809         self.process = Popen(arguments, executable=command, stdin=PIPE, stdout=None, stderr=None, close_fds=True)
   1810         logger.debug("waiting for connection from worker")
   1811

/anaconda3/envs/amuse/lib/python2.7/subprocess.pyc in __init__(self, args, bufsize, executable, stdin, stdout, stderr, preexec_fn, close_fds, shell, cwd, env, universal_newlines, startupinfo, creationflags)
    392                                 p2cread, p2cwrite,
    393                                 c2pread, c2pwrite,
--> 394                                 errread, errwrite)
    395         except Exception:
    396             # Preserve original exception in case os.close raises.

/anaconda3/envs/amuse/lib/python2.7/subprocess.pyc in _execute_child(self, args, executable, preexec_fn, close_fds, cwd, env, universal_newlines, startupinfo, creationflags, shell, to_close, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite)
   1045                         raise
   1046                 child_exception = pickle.loads(data)
-> 1047                 raise child_exception
   1048
   1049

OSError: [Errno 2] No such file or directory

I looked which file it was looking for and it looks like that it is trying to get /anaconda3/envs/amuse/bin/mpiexec which does not exist sigh it should look in the macports directory for this but I don't know where I tell AMUSE to use this one. It obviously used those directories for the installation also, even weirder, which mpiexec yields /opt/local/bin/mpiexec so the right directory. Where is Amuse getting its information from? All I could find is that it is an attribute in that channel.SocketChannel but this is a also a structure where my python knowledge ends...

did you rerun configure?
you can make sure by specifying MPIEXEC when running configure,  but you can also  change config.mk and config.py by hand now. I see that there is a slight oddity with the config, here the MPICC etc in the config files don't have the full path, where MPIEXEC points to a full path...

Actually I did not run configure but I did edit the config.mk by hand. And then just run python setup.py install I know you are not supposed to do this but I find this much easier than having to guess how to call the config with the right inputs. So config.mk has the right path:
config.mk.txt
I also checked that the config.mk in the anaconda3/envs/amuse/lib/python2.7/site-packages/amuse has the right paths and it does.

did you also change the config.py? (in src/amuse)

Urgh I just found it... will try again now. To do it correctly I would have to set all of this in the ./configure command right? I'm just always having a hard time to get the syntax right for this.

It would be nice having a config file rather than the command :)

well, you should not have to change anything in the configure at all (if you mean that), there are
options to set (./configure --help)

(the configure is auto-generated and does some detections and checks)

I didn't change anything in the configure. What I  mean is... in my case I want to make sure that it is using the right packages. Because conda sometimes installs MPI for some of their packages and I don't want AMUSE to use this MPI but the one from the macports. However if I"m in the conda environment it will by design take the conda packages if I don't specify it. And I guess the way to do it would be to run ./configure MPI=use_my_maport_pi or something like that. But I much rather would have a text file where I can see which of the flags/paths I have to change so that I'm sure it is using all the right packages. With the configure method I might miss some...so thats the reasin why I started editing the config.mk directly.

Arrgh it still doesn't work :(
config.py.txt

is there an amuserc somewhere?

There is. The one in my local folder is empty. The one in the site-packages folder says this:
[channel]
must_check_if_worker_is_up_to_date=0
use_python_interpreter=1
[data]
output_data_root_directory=_amuse_output_data

hmm that does not explain it (mpiexec can be overridden in the amuserc, but it isn't). You can try to add it to the channel section, but first can you try:
from amuse import config
print(config.mpi.mpiexec)

??

This gives me the correct path:
In [5]: print(config.mpi.mpiexec)
/opt/local/mpiexec

However, when I go into the debugger for the error I'm getting loading ph4 or any other code I get this:
-> self.process = Popen(arguments, executable=command, stdin=PIPE, stdout=None, stderr=None, close_fds=True)
(Pdb) arguments
['/anaconda3/envs/amuse/bin/mpiexec', '-n', '1', '/anaconda3/envs/amuse/bin/python', '/anaconda3/envs/amuse/lib/python2.7/site-packages/amuse/rfi/run_command_redirected.pyc', '/dev/null', '/dev/null', '/anaconda3/envs/amuse/lib/python2.7/site-packages/amuse/_workers/ph4_worker', '56047', 'Linus.local', 'true']
(Pdb) self.mpiexec
'/anaconda3/envs/amuse/bin/mpiexec'

btw, if you are using the latest amuse, and an installed amuse, there is:
config.mk in /share/amuse and in .../site-packages/amuse
config.py in ../site-packages/amuse

OK found that but looks ok to me too.

hmm also it is strange that it is using socket channel...
can you run the test with
import logging
logging.basicConfig(level=logging.DEBUG)

somewhere at the top.
Did you try adding
mpiexec=<iopt/local/mpiexec>

to the amuserc (maybe make a copy to your working dir - it should find it there too)
can you check that is is using the correct config (printing config.file)??
its either using config.mpi.mpiexec or something that comes from an amuserc file...

also from amuserc.example:
This is an example configuration file for AMUSE
AMUSE will look for the amuserc file in the following locations
1) amuse python path    (src/amuse, used for binary installs)
2) amuse root directory (set by the AMUSE_DIR environment variable)
3) your home directory  (under the name .amuserc, so a hidden file)
4) a file set in the AMUSERC environment variable
5) the current working directory
AMUSE will combine the files it finds in these paths.
The file in the path with the higher number will overwrite the values
in the file(s) in the path with lower number. For example
the values in the file in the current working directory will
override the values in the file in the amuse root directory.
Amuse will use the 'amuserc' filename, except for the home directory
were it will look for .amuserc (${HOME}/.amuserc)
so...do you have an old amusrc somewhere??

Ok found it. I think somewhere on the way I even managed to mess up the macports path and my conig.py had /opt/local/mpiexec instead of /opt/local/bin/mpiexec Its running now yay! Thanks Inti!
So in order to do this right the next time. What is the best way? It can't be the right me editing the config.mk and config.py by hand...

ideally you should have your environment setup that it finds the correct mpi and then ./configure should do, otherwise
./configure MPIEXEC=/opt/local/bin/mpiexec should do it....

@nluetzge  I have changed config.py so that there is a single configuration file (config.mk), so you can change this by hand easier...


moved getUser example under getUser category

This change seems to have inserted the putUser documentation in the README right between the getUser documentation and its example.

Thanks! 🎉


Rename AblyRealtime to Ably

[x] Tests
[x] Example project
[x] Push new pod

target 'AblyClientApp' do
  pod 'Ably'
end

Tested the CocoaPod 'Ably' with Swift and Objective-C.
Import like

Swift:

import Ably

Objective-C

#import <Ably/Ably.h>

⚠ Create a new release from tag 0.8.6 after this has been merged.

Tasks:

[ ] Merge in all other PRs before this release so 0.8 is complete, ideally with Reauth but we can do that after
[ ] Create a new release from tag 0.8.6 after this has been merged.
[ ] Update all references in documentation
[ ] Update README
[ ] Update CHANGELOG with important notice about the change.

@tcard I may need your help with this on Monday

@ricardopereira it does not look like all the tasks is this PR are going to be done, so please can you create a new issue now with those tasks so that we get those bits done?

@mattheworiordan Ok, I will.


Amend omnifunc return value documentation

The documentation says that the completion is cancelled if the return value of the omnifunc is -1. In fact, if we look at the code, nothing special is done for that value and the completion is assumed to start at the cursor column. This PR updates the documentation to reflect this.

Codecov Report

Merging #3354 into master will increase coverage by 0.04%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #3354      +/-   ##
==========================================
+ Coverage   76.62%   76.66%   +0.04%
==========================================
  Files          93       93
  Lines      137133   137134       +1
==========================================
+ Hits       105075   105135      +60
+ Misses      32058    31999      -59

Impacted Files
Coverage Δ

src/if_xcmdsrv.c
84.35% <0%> (-0.18%)
:arrow_down:

src/channel.c
83.05% <0%> (-0.04%)
:arrow_down:

src/if_py_both.h
76.31% <0%> (ø)
:arrow_up:

src/screen.c
76.75% <0%> (+0.04%)
:arrow_up:

src/getchar.c
75.16% <0%> (+0.04%)
:arrow_up:

src/normal.c
74.42% <0%> (+0.07%)
:arrow_up:

src/gui.c
49.56% <0%> (+0.1%)
:arrow_up:

src/ex_cmds.c
80.08% <0%> (+0.22%)
:arrow_up:

src/window.c
82.39% <0%> (+0.51%)
:arrow_up:

src/gui_gtk_x11.c
48.14% <0%> (+0.59%)
:arrow_up:

... and 1 more

Continue to review full report at Codecov.

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

The documentation says that the completion is cancelled if the return value of the omnifunc is -1. In fact, if we look at the code, nothing special is done for that value and the completion is assumed to start at the cursor column. This PR updates the documentation to reflect this.

Thanks for looking into this.  It's not 100% correct though, any
negative value other than -2 and -3 results in the cursor column.
A positive value is used for the completion column.
We can make the text:
Special return values:
-2 	To cancel silently and stay in completion mode.
-3 	To cancel silently and leave completion mode.
Another negative value: completion starts at the cursor column
--
If you don't get everything you want, think of
everything you didn't get and don't want.
/// Bram Moolenaar --<EMAIL_ADDRESS>-- http://www.Moolenaar.net   \
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \
\\  an exciting new programming language -- http://www.Zimbu.org        ///
\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

It's not 100% correct though, any negative value other than -2 and -3 results in the cursor column.

In fact, it's any value other than -3, -2, and the values between 0 and the cursor column (the starting column is set to the cursor column for values after the cursor column). That's what I meant with

If another value is returned, completion is assumed to start at the cursor
column.

so, if we really want to be thorough, the docs should say:

Special return values:
-2 To cancel silently and stay in completion mode.
-3 To cancel silently and leave completion mode.
Any other value: completion starts at the cursor column

It's not 100% correct though, any negative value other than -2 and -3
results in the cursor column.

In fact, it's any value other than -3, -2, and the values between 0 and the cursor column (the starting column is set to the cursor column for values after the cursor column). That's what I meant with

If another value is returned, completion is assumed to start at the cursor
column.

so, if we really want to be thorough, the docs should say:

Special return values:
-2 To cancel silently and stay in completion mode.
-3 To cancel silently and leave completion mode.
Any other value: completion starts at the cursor column

But a value between zero and the cursor column is used as-is.  We can make this
clearer by making the heading not "Special return values" but "Negative return
values".
--
CART DRIVER: Bring out your dead!
LARGE MAN:   Here's one!
CART DRIVER: Ninepence.
BODY:        I'm not dead!
"Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
/// Bram Moolenaar --<EMAIL_ADDRESS>-- http://www.Moolenaar.net   \
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \
\\  an exciting new programming language -- http://www.Zimbu.org        ///
\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

This doesn't explain what happens if the returned value is after the current column. Not a big deal though.


Tech debt tracking

Tracking status of the client-side implementation of SSH with Globus Auth

[ ] Exit on unknown user (actually, never re display the token prompt)
[ ] Support 'logout -all' ??
[ ] sftp support
[ ] CLI-like hidden venv
[ ] "Easy" updates
[ ] Auto popup browser during consent flow when possible
[x] Unit Tests
[ ] Don't refresh the access token if not needed
[ ] Fix 'invalid grant' message when refresh token is bogus
[x] Python 3.x support

A couple questions:

For sftp support, is there something preventing us from using sftp -S globus-ssh?

are "Easy" updates supposed to be something like the cli's globus update?

For sftp support, I'd prefer globus-sftp for consistency with globus-ssh / globus-scp. And yeah, 'easy updates' are meant to mimic the CLI's behavior of 'globus update'.

These items have been split out into separate tracking issues.


Refactor changes and code smells

Refactor changes and code smells  listed :

long method
primitive obsession
code duplication
unnecessary comments

@abdelrahmanassem Please sign the Contributor License Agreement!
Click here to manually synchronize the status of this Pull Request.
See the FAQ for frequently asked questions.


Updatable entity view prototype

We have an extensive feature list provided in #127 and we should prototype some of the features so we can test them in real applications. It is not a goal to implement all features in this release but get a minimal version that can be used and actually makes sense. We should focus on the features rather than the best implementation or various strategies to see if this model is actually usable in real applications or how it should be adapted.

During the discussion with some of my fellow colleagues, we thought through some questions that came to my mind.

Should we support only managed i.e. created via factory, or also instances of custom subtypes
At first, only allow managed instances, in a final version we might also allow custom subtypes for easier integration

Do we want a special designation of create models i.e. models that are used for creating entities?
Yes we want that(@CreatableEntityView) and also the "completeness" validation that can be done because of the special designation. It should be possible to disable validation for certain attributes that might be set in listeners. Updatable views should also be usable to create new instances, although this behavior should be configurable.

Where should generated ids be set?
Set the value on the respective objects. Note that this requires such views to have an id mapping just like updatable entity views, although it doesn't have to be updatable.

How should cascading and subtypes be handled when having updatable/non-updatable mutable types?
We decided on the defaults

Allowed subtypes must be declared. If a not allowed subtype is encountered, an exception is thrown.
Updatable mappings will only cascade UPDATE by default, when the static type is an updatable view.
Updatable mappings will only cascade PERSIST by default, when the static type is a creatable view.
Mutable mappings will cascade UPDATE by default.
Non-Updatable collection mappings of non-mutable types will not cascade anything by default.
Non-Updatable collection mappings of mutable types will cascade UPDATE by default.
Non-Updatable mappings will never change the entity relation representing it i.e. no "collection add".

What update and flush strategies should be supported?
Currently we have the partial strategy, which does dirty checking and skips updates of non-dirty attributes and the full strategy, which always updates everything.
The full strategy has a better query cache hit ratio, but might involve higher data transfer.
The partial strategy has better data transfer characteristics, but is a bit more complicated to compute and has a bad query cache hit ratio.
We decided that although both strategies have valid use cases, we'd like a hybrid of the two strategies as new default. The default strategy should still be configurable on the @UpdatableEntityView annotation.

The new strategy will do dirty checking like the partial strategy and will do a full update of the object, if at least one attribute is dirty. By doing the dirty checking, the strategy can implement entity graph loading or query flushing more efficiently.

What should the "updateFull" method do when subviews have partial updating configured?
Should ignore the configured default and do full updates all the way.

Bi-Directional mapping optimizations
When mapping a collection in an entity view that has a inverse relation mapping, the "collection add/remove" operations can be implemented by updating the inverse relations respectively. This is a nice optimization that should be implemented at some point.

Do we really need access to dirty state?
After discussing possible use cases like auditing or conditional checks, we decided that this is a very important feature. Maybe we could even annotate a lock level or so that should be used when a change is detected.

Other features we discussed

Listeners for "pre-load", "pre-persist" and "pre-update" events
Entity views without a root i.e. aggregates of multiple roots


Fix system caption buttons not updating colors when system theme changes

Description

Refactored code related to theme saving and storing into a separate file ThemeHelper to make the handling of that easier and make future changes in that area easier. Now themes are stored there and not in the App class.
Also added a listener to system wide color (and thus theme) changes so we can update the system caption buttons when the user updates the theme system wide.
Motivation and Context

Remove redundant code, improve maintainability slightly. Also fixes #251
How Has This Been Tested?

Tested following scenarios:

Switch from dark/light to light/dark (in App)
Switch from use system to dark/light
Switch from dark/light to use system settings
Switch system theme while using the option "use system settings"

Screenshots (if appropriate):
Types of changes

[x]   Bug fix (non-breaking change which fixes an issue)
[x]   New feature (non-breaking change which adds functionality)
[x] ? Breaking change (fix or feature that would cause existing functionality to change)

I noticed that I can still repro the caption controls (minimize/maximize/close buttons) drawing the wrong color. Steps:

Make sure XCG is set to Use system setting for Theme Mode
Navigate to any sample page (e.g. Acrylic)
Open Windows Settings, Personalization > Colors and change default app mode to the opposite of current.
Put focus back on XCG window
Note that the caption controls visually disappear.
Navigigating to XCG's Settings page fixes the caption control colors.

I noticed that I can still repro the caption controls (minimize/maximize/close buttons) drawing the wrong color. Steps:

Make sure XCG is set to Use system setting for Theme Mode
Navigate to any sample page (e.g. Acrylic)
Open Windows Settings, Personalization > Colors and change default app mode to the opposite of current.
Put focus back on XCG window
Note that the caption controls visually disappear.
Navigating to XCG's Settings page fixes the caption control colors.

Yes I am having the same behavior now too. I will look into this.

@YuliKl The issue should be fixed now.
On a different note: According to this article UISettings.ColorValuesChanged is not raised reliably. If this is still the case, I guess we are out of luck.


Add broadcast QuorumData tests

Adds tests for the QuorumFormed and BroadcastQuorumFormed events, where QuorumData is sent over the network.

Closing for now, logic is relevant but a lot has changed since this PR was started.
Will need to continue down this path on a new PR to add integration testing for NodeRuntime


EditorGUI.InspectorTitlebar takes 4 parameters in Unity5.3

As I explained in this post, EditorGUI.InspectorTitlebar takes a 4th boolean parameter "expandable" in Unity5.3 so the method RabbitGUI.InspectorTitlebar in Vexe\GUIs\RabbitGUI\RabbitGUI.cs is not correct anymore and will prevent compilation with the error No overload for method 'InspectorTitlebar' takes '3' arguments.
As a quick fix I added "true" as a 4th argument since you probably want the property to be expandable, but it would make sense to add the same 4th argument to RabbitGUI.InspectorTitlebar and to pass it to EditorGUI.InspectorTitlebar. For backward compatibility, you could also add a default value:
public override bool InspectorTitlebar(bool foldout, UnityObject target, bool expandable = true)
I know thie description of the issue is alreay close to a fix, but I'm not familiar with InspectorTitlebar, I just wanted my code to compile, so I let those who know better choose how to fix it.

The default bool expandable=true should be good. Have you had any issues with it? I'm kind of away from VFW codebase at the moment that's why I asked for a PR when you can.

I didn't dig into the Unity API changes or anything but it looks like they removed the default on the bool value.  I did the same thing and used true.

No problem so far, but I'll try both versions just in case and send a PR when I find the time. Sorry to keep you waiting a little more.

@srndpty spotted the issue too and fixed it by adding true as 4th argument directly. I should thank him/her...
I think it was the only instance in VFW. If anyone needs more customization he/she can add a patch anytime.


API to specify max number of elements

Thanks all for the great project, I can't wait until this is made stable!
To help with the portability I thought it would be useful to have some way of asking for a SIMD struct with the maximum number of elements supported by the target, such that you could write something like:
let a = f32::with_max_elements();

And that would give you Simd<f32, 16> for a target which supports 512 bits but Simd<f32, 4> on targets which only support 128 bits.
I thought this would be a fairly easy addition so I tried a couple of different implementations (including the one above) but each on so far has had problems. I'm very keen to contribute to the project and would happily write this up but wanted to check a couple of things:

Is this something that would be useful and worth implementing?
What do you think is the best way to go about this?

I think something like this would be nice, but difficult to implement.  The difficult part is accounting for detected target features.  My target_features and multiversion crates support this, this may help: https://calebzulawski.github.io/rust-simd-book/4.2-native-vector-width.html

other things that make this harder is that on some architectures you can't get the maximum length at compile time, e.g. on RISC-V V, the maximum length is decided by the cpu manufacturer and may be all the way up to 16384 but can be much shorter. Some architectures you can't get a reasonable maximum length, e.g. SVP64 on PowerISA has a maximum length of 64, but you can only have 3 u64x64 vectors in registers, but you can instead easily have dozens of u64x4 vectors in registers which may even be faster.

That's another good point--you could conceivably have two versions of such a function, one that's const and one that isn't.  In target-features I simply return 128-bit vectors for the v extension, even though they can of course be much larger.  If rust adds zvl*b target features, that would at least make it possible to statically detect a larger minimum.

Thanks for the responses, I hadn't even considered non-mainstream architectures yet! Your target-features crate seems to do similar things to my plan which was just having a load of #[cfg(target-feature = "...")] within a function although the crate is a much nicer way to do this.
One potential annoyance one could have with the suggested_vector_width API is that a user could conceivably do something like:
const N: usize = selected_target!().suggested_vector_width::<f32>().unwrap_or(1);
let vector = Simd<f64, N>

Which is why I thought an associated method on the Simd struct might have been nicer because it just has to care about one instance of T.
To implement this functionality within portable_simd is would be good to use the target-features and multiversion crates but is that allowed when thinking about up-streaming to stable?

It would be difficult to make it an associated function because the return type needs to have the number of elements in it, and that number of elements is contextual, at least on the statically enabled features but also potentially from the #[target_feature] attributes.  This is definitely something I'd like to be easier to do, but unfortunately it's a bit difficult in Rust today.


"Impossible" NullPointerExcepton regression in build 188

This is happening in the main demo of Aurora project. It's quite large for a reproducer, but it might take some time for me to make it into a standalone thing. First, the crash itself:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
	at org.pushingpixels.aurora.component.AuroraRadioButtonKt.AuroraRadioButton(AuroraRadioButton.kt:188)
	at org.pushingpixels.aurora.component.AuroraRadioButtonKt$AuroraRadioButton$7.invoke(AuroraRadioButton.kt)
	at org.pushingpixels.aurora.component.AuroraRadioButtonKt$AuroraRadioButton$7.invoke(AuroraRadioButton.kt)
	at androidx.compose.runtime.RecomposeScopeImpl.compose(RecomposeScopeImpl.kt:96)
	at androidx.compose.runtime.ComposerImpl.recomposeToGroupEnd(Composer.kt:2116)
	at androidx.compose.runtime.ComposerImpl.skipCurrentGroup(Composer.kt:2374)
	at androidx.compose.runtime.ComposerImpl.doCompose(Composer.kt:2516)
	at androidx.compose.runtime.ComposerImpl.recompose$runtime(Composer.kt:2487)
	at androidx.compose.runtime.CompositionImpl.recompose(Composition.kt:546)
	at androidx.compose.runtime.Recomposer.performRecompose(Recomposer.kt:733)
	at androidx.compose.runtime.Recomposer.access$performRecompose(Recomposer.kt:102)
	at androidx.compose.runtime.Recomposer$runRecomposeAndApplyChanges$2$2.invoke(Recomposer.kt:443)
	at androidx.compose.runtime.Recomposer$runRecomposeAndApplyChanges$2$2.invoke(Recomposer.kt:415)
	at androidx.compose.runtime.BroadcastFrameClock$FrameAwaiter.resume(BroadcastFrameClock.kt:42)
	at androidx.compose.runtime.BroadcastFrameClock.sendFrame(BroadcastFrameClock.kt:63)
	at androidx.compose.ui.platform.DesktopOwners.onFrame(DesktopOwners.desktop.kt:120)
	at androidx.compose.desktop.ComposeLayer$1.onRender(ComposeLayer.desktop.kt:122)
	at org.jetbrains.skiko.SkiaLayer.update$skiko(SkiaLayer.kt:222)
	at org.jetbrains.skiko.redrawer.MetalRedrawer.update(MetalRedrawer.kt:48)
	at org.jetbrains.skiko.redrawer.MetalRedrawer.access$update(MetalRedrawer.kt:14)
	at org.jetbrains.skiko.redrawer.MetalRedrawer$frameDispatcher$1.invokeSuspend(MetalRedrawer.kt:24)
	at org.jetbrains.skiko.redrawer.MetalRedrawer$frameDispatcher$1.invoke(MetalRedrawer.kt)
	at org.jetbrains.skiko.FrameDispatcher$job$1.invokeSuspend(FrameDispatcher.kt:33)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
	at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
	at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:740)
	at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

Line 188 is https://github.com/kirill-grouchnikov/aurora/blob/icicle/component/src/desktopMain/kotlin/org/pushingpixels/aurora/component/AuroraRadioButton.kt#L188 and if I print presentationModel right before it in the scenario below, it is indeed null. Except that it can't be null from the signature of the method in https://github.com/kirill-grouchnikov/aurora/blob/icicle/component/src/desktopMain/kotlin/org/pushingpixels/aurora/component/AuroraRadioButton.kt#L72 and the overall setup of the demo and composables.
Here is the reproducer:

Run the AuroraDemo demo
Click on the "sample check" checkbox to uncheck it
Move the mouse over the "sample radio" - it crashes

The same happens if you click "sample radio" to uncheck it, and then move the mouse over "sample check" checkbox. There's a similar crash in AuroraCheckBox.
This is a regression from build 185 to build 188, and also what looks to be an impossible scenario to get to given the signature of the matching composables, and no path in the code that I know of that sets those arguments to null.

Issue and reproducer in Google tracker:
https://issuetracker.google.com/issues/188015757

The issue in core Compose has been merged a few days ago. Looks like build-210 picked up that fix, as I'm no longer seeing this crash.

Should be fixed in 0.4.0-build211, 0.4.0-build210 was built before this fix (from https://github.com/JetBrains/androidx/tree/jb-main) 🤔.

Can be closed now?

Yes, thanks.


styles for zoomImage prop don't work

Expected behavior
I expected style key to work with the zoomImage prop.
e.g.
zoomImage={{
    src: `${item.imageS}`,
    style: {width: `20rem`, height: `5rem`}
}}

...makes the zoomed image 20rem wide, 5rem tall.
Changing styles works perfectly for the image prop.
Actual behavior
Adding style key the zoomImage prop object has no effect.
e.g.
zoomImage={{
    src: `${item.imageS}`,
    style: {width: `20rem`, height: `5rem`}
}}

Hey I’m getting married today so can’t look at this for a little bit... I’ll get around to it in a week or so. Feel free to make a pull request if you so please!

On Feb 18, 2018, at 06:35, plkuzmich<EMAIL_ADDRESS>wrote:
Expected behavior
I expected style key to work with the zoomImage prop.
e.g.
zoomImage={{
src: ${item.imageS},
style: {width: 20rem, height: 5rem}
}}
...makes the zoomed image 20rem wide, 5rem tall.
Changing styles works perfectly for the image prop.
Actual behavior
Adding style key the zoomImage prop object has no effect.
e.g.
zoomImage={{
src: ${item.imageS},
style: {width: 20rem, height: 5rem}
}}
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.

@13806 checking back in on this, and I'll repeat my question from before:

Could you please provide the version of react-medium-image-zoom you are using and provide a full example of this not working? A link to a GitHub project or equivalent would do just fine.

Closing until I can get some more information.

Hey, @rpearce I am facing the same issue.
Fortunately, I have a repro → https://github.com/deadcoder0904/unsplash-styled-components
The demo is at → https://unsplash-styled-components.netlify.com/
The related code is at → src/components/Pic.js
As you can see in Pic.js, I have specified styles in zoomImage
<ImageZoom
        image={{
          ...imageProps,
          style: {
            width: '37rem',
            height: '48rem',
          },
        }}
        zoomImage={{
          ...imageProps,
          style: {
            width: '102.4rem',
            height: '72rem',
          },
        }}
      />

But it doesn't work.
Basically, what I want to do is I want to have tall images when in a grid layout but when clicked I want the image to be wide.
So 370x480 when all the images are shown in Grid (tall) & 1024x720 when an image is clicked (wide).
I hope u understood what I said :)

@deadcoder0904 Do you think there crossover here this this PR that @xerona has opened?
https://github.com/rpearce/react-medium-image-zoom/pull/156/files

I thought so too. I installed that PR with ⸺
yarn add rpearce/react-medium-image-zoom#156/head

But it didn't work out either. Is it because something is wrong with my code?
I pushed the new commit & updated the repo with the new PR → https://github.com/deadcoder0904/unsplash-styled-components

I also tried the code mentioned here ⸺
<ImageZoom
  image={{src: path}}
  defaultStyles={{
    zoomContainer: {overflow: 'scroll'},
    overlay: { position: 'fixed', width: '100%', height: '100%' },
    image: { width: '100%' },
    zoomImage: { width: '100%', height: 'initial', transform: 'none', top: '0', left: '0', padding: '50px' }
  }}
/>

But it didn't work either.

Okay, this and that PR are going on my to-do list. I don't have time to look at this during the work day, unfortunately. I'll check back in the next couple of days

@deadcoder0904 THANK YOU for the repro

This is the commit where I've used the PR version.
I got an error now Module not found: Can't resolve 'koa' in 'node_modules/react-medium-image-zoom' so I'll be using the npm version I think. But that commit should provide the repro needed :)

@deadcoder0904
If I understand your scenario correctly, here's why the style prop looks like it isn't working. I say looks like because I believe it will work right for any style except top, left, width, height, translate3d. You make the ImageZoom component and provide width and height as items of the object you're using in the argument style of both image and imageZoom. When <Zoom> is created, it sets the style on <img> with the results of _getZoomImageStyle. The results of _getZoomImageStyle are
Object.assign(
    {},
    defaults.styles.zoomImage,
    this.props.defaultStyles.zoomImage,
    this.props.style,
    style,
    zoomStyle
)

At this point, your {style: height, width} is stored this.props.style. style has also been computed. It contains the keys top, left, width, height. Because the returned value of _getZoomImageStyle is using Object.assign, your values for width and height are overwritten by subsequent assignments of those values.
tl;dr
const foo = Object.assign(
    {},
    defaults.styles.zoomImage,
    this.props.defaultStyles.zoomImage,
    {  // this.props.style,
        width: '102.4rem',
        height: '72rem',
    },
    {  // style
        top: image.getBoundingClientRect().top
        left: image.getBoundingClientRect().left
        width: image.width
        height: image.height
    },
    zoomStyle  // the translate3d with scale happens here
)
foo.width = image.width
foo.height = image.height

So @xerona do I have to change the node_modules file with this or your PR will do it? A bit confused as to what I should change.

The code I included in the previous comment was just for understanding. If you want to test the code on my branch try this.
yarn add https://github.com/xerona/react-medium-image-zoom.git#patch-1
If that doesn't work and you really need it now, you can implement a hack as I did.
import React, { Fragment } from "react";

import ImageZoom from "react-medium-image-zoom";
import Zoom from "react-medium-image-zoom/lib/Zoom";
import EventsWrapper from "react-medium-image-zoom/lib/EventsWrapper";

export class ZoomHack extends Zoom {
  _getZoomImageStyle() {
    return Object.assign(
      super._getZoomImageStyle(),
      this.props.style,
      this.props.defaultStyles.zoomImage
    );
  }
}

const isControlled = isZoomed => isZoomed !== null && isZoomed !== undefined;
const focusableTabIndex = 0;
const unfocusableTabIndex = -1;

export default class ImageZoomHack extends ImageZoom {
  render() {
    const {
      props: {
        defaultStyles,
        image,
        isZoomed: propsIsZoomed,
        shouldRespectMaxDimension,
        zoomImage,
        zoomMargin
      },
      state: { isDisabled, isZoomed: stateIsZoomed, src, isClosing }
    } = this;

    const attrs = Object.assign(
      {},
      !isDisabled && { tabIndex: focusableTabIndex },
      image,
      { src, style: this._getImageStyle() },
      !isDisabled && {
        onMouseDown: this._preventFocus,
        onClick: this._handleZoom,
        onKeyDown: this._handleKeyDown
      }
    );
    const isZoomed = isControlled(propsIsZoomed)
      ? propsIsZoomed
      : stateIsZoomed;

    return (
      <Fragment>
        <img
          {...attrs}
          key="image"
          ref={x => {
            this.image = x;
          }}
          onLoad={this._handleLoad}
          onError={this._handleLoadError}
        />
        {this.image && (isZoomed || isClosing) ? (
          <EventsWrapper
            key="portal"
            ref={node => {
              this.portalInstance = node;
            }}
            controlledEventFn={this._getControlledEventFn()}
            allowAccessibilityClose={this._allowTabNavigation()}
          >
            <ZoomHack
              defaultStyles={defaultStyles}
              image={this.image}
              shouldRespectMaxDimension={shouldRespectMaxDimension}
              zoomImage={zoomImage}
              zoomMargin={Number(zoomMargin)}
              onUnzoom={this._handleUnzoom}
            />
          </EventsWrapper>
        ) : null}
      </Fragment>
    );
  }
}

Then just create the new thing in the same way.
    <ImageZoomHack
        image={{
          ...imageProps,
          style: {
            width: '37rem',
            height: '48rem',
          },
        }}
        zoomImage={{
          ...imageProps,
          style: {
            width: '102.4rem',
            height: '72rem',
          },
        }}
      />

Naah I can't use a hack as it's needed for a tutorial. I can't explain readers this 😂but thanks for the info :)

At some point, this library is going to get a lot easier to work with. That doesn't help you right now, though. Again, this is on my to-do list for this week.

I am sorry that this has fallen by the wayside, as I've been focused on https://github.com/rpearce/react-medium-image-zoom/issues/143 and https://github.com/rpearce/react-medium-image-zoom/pull/159.
Does https://github.com/rpearce/react-medium-image-zoom/pull/156 resolve the issue here?

This should not be an issue in the latest react-medium-image-zoom@alpha v4 release channel, for we don't exactly have a zoomImage prop to work with in the new API (though I'll try to figure out how I want to do that in https://github.com/rpearce/react-medium-image-zoom/issues/166).
Closing this

@13806 @deadcoder0904 @xerona I've added you all to the "all contributors" section as a thank you for your :eyes: and 💭 here.


ocr text detector not working on ios

IOS doesn't open the camera for OCR .If its still not implemented please let me know what I can do.


[Concurrency runtime] Don't read from the actor after transitioning state

Once we have transitioned the actor into a new state, we report the state change as a trace event so it can be noted by tools (e.g., Instruments). However, the act of transitioning to a new state can mean that there is an opportunity for another thread to deallocate the actor. This means that the tracing call cannot depend on dereferencing the actor pointer.
A refactoring a few months ago to move the bit that indicates when a distributed actor is remote from inside the atomic actor state out to a separate field (because it's constant for a given actor instance), which introduced a dereference of the actor instance in forming the tracing call. This introduced a narrow window in which a race condition could occur: the actor transitions to an idle state, and is then deallocate before the trace event for the actor transition occurs, leading to a use-after-free.
Fetch this bit of information earlier in the process, before any state changes and when we know the actor is still allocated, and pass it through to the tracing code.
Fixes rdar://108497870.

@swift-ci please smoke test


feat: Adds SASL (plain and gssapi) support for kafka source

Adds SASL (plain and GSSAPI/kerberos) support for Kafka source.

SCRAM-SHA-256/512 and OAUTH not implemented.

Tested the following SASL mechanism using kafka-docker-playground:

sasl-plain
sasl-ssl
kerberos (keytab and password)
ssl-kerberos (keytab and password)

@vigith i have resigned the commits. made a mistake prevously.

@alexanghh - would you mind adding it to Kafka sink as well?

@whynowy sure, but I can only add the changes this weekend. Do I commit to this pull branch as well?

@whynowy sure, but I can only add the changes this weekend. Do I commit to this pull branch as well?

A separate PR works.

could you please do make codegen

@vigith noted. Will commit the codegen changes as well.

Will be resubmittng the changes. did not base my local branch on the latest main.


fix: Ignore instance engine version updates

Description
Updating engine version forces replacement of instances, and they shouldn't be replaced, because cluster will update them if the engine version is changed.
Motivation and Context
Fixes https://github.com/terraform-aws-modules/terraform-aws-rds-aurora/issues/118
Breaking Changes
none
How Has This Been Tested?
I tested this on multiple aurora clusters to upgrade MySQL engine version 2.07.1 -> 2.07.2.

Hi Alen,
Unfortunately, this is not the fix we can accept in this module because it breaks the functionality for people who want to do upgrades with Terraform.
I recommend you change the value of an argument of this module and run terraform refresh to fetch correct one from AWS. In this case, Terraform won't tell you to replace anything because version is as in configs.

Unfortunately, this is not the fix we can accept in this module because it breaks the functionality for people who want to do upgrades with Terraform.

But, this makes it possible to upgrade with Terraform. Currently, it is not possible, because the module will recreate the instances. Recreating RDS instances means losing the data and huge downtime even if you want to restore from a snapshot.
With this PR, the module will update the cluster resource, and the cluster resource updates the instances. After the run is finished, both cluster and instance versions are aligned.

Have you tried the solution I've just described?

I did not. That is not a solution, it is a workaround.
Let me explain the issue in more detail. For example, I want to update to the new engine version. I go and edit engine_version, and run terraform apply expecting that I will get my cluster upgraded the same way the RDS console does (by not replacing the instances).
What I get instead is:
module.app_rds_cluster.aws_rds_cluster.this will be updated in-place

and

module.app_rds_cluster.aws_rds_cluster_instance.this[0] must be replaced

Why does the instance need to be replaced when that is not required for the engine upgrade?
With this PR, I would only see module.app_rds_cluster.aws_rds_cluster.this will be updated in-place, and both my cluster and the instance will have the desired versions.
As I workaround I targeted only cluster terraform apply -target=module.app_rds_cluster.aws_rds_cluster.this and after the cluster is upgraded I can run terraform apply and it would not make any changes or replace the instance. This is not how it should work in my opinion, hence this PR.

Came here to see this issue and agree fully with @komljen about both the solution and the workaround not being useful.
@antonbabenko maybe you could lay out in more detail how you would expect a solution to this problem to be implemented if you don't want to accept this PR, that would help to see how we might arrive at a solution that suits both needs.

Agreed with @komljen and @dj5k. Instances shouldn't have to be replaced to perform an upgrade. I'd like to see this PR re-opened and approved, or an alternate solution presented if this PR is unacceptable for some reason.

I was asked to give some input on this issue.
This module is designed to support the majority of use-cases out-of-the-box without a need to manage a separate fork. It does this part as best as it is possible with the current version of Terraform.
Introducing ignore_changes = [engine_version] lifecycle will simply turn off the possibility to manage engine_version argument for users who want to have everything managed with Terraform.
To make this work for both types of users we can't have this PR merged, but we need to use the workaround specified by @komljen in the comment above.
There is no better workaround which I am aware of, which can be less hacky because Terraform 0.13 still does not allow us to use variables inside of the lifecycle block.

Introducing ignore_changes = [engine_version] lifecycle will simply turn off the possibility to manage engine_version argument for users who want to have everything managed with Terraform.

The above claim is simply not true.
@antonbabenko even Terraform docs for aws_rds_cluster_instance resource says that this lifecycle is recommended.
engine_version - (Optional) The database engine version. When managing the engine version in the cluster, it is recommended to add the lifecycle ignore_changes configuration for this argument to prevent Terraform from proposing changes to the instance engine version directly.

Reference https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/rds_cluster_instance
Which makes perfect sense. If you put instance under the cluster, like this module does, from AWS perspective versions are one thing. You simply cannot update one version without another. However, to update the instance version, you just need to update the cluster version. That is how AWS API works and has not anything to do with Terraform features.

Nice. Now we are talking, I didn't see this in the docs before. 👍
But I still don't understand what if users want to be able to control engine_version in the code? If we have ignore_changes, they will not be able (right?). This is how such a change is related to Terraform behavior.
Let's merge this PR and make a note in README about this so that everyone is aware of it.

But I still don't understand what if users want to be able to control engine_version in the code? If we have ignore_changes, they will not be able (right?). This is how such a change is related to Terraform behavior.

They still do, engine_version is controled here as well https://github.com/terraform-aws-modules/terraform-aws-rds-aurora/blob/master/main.tf#L40.

Thanks for the explanation and for the pointer to docs, @komljen !
v2.27.0 has been just released.


ValueError for RSquare metric - requested dtype float32 for Tensor with dtype float64

Hey there!
I was trying to use the latest version of RSquare that fixes the missing sample_weight argument, but there is another error when I try to use it. It seems the conversion to float32 fails or something.
System information

OS Platform and Distribution (e.g., Linux Ubuntu 16.04): Windows 10
TensorFlow version and how it was installed (source or binary): 2.1.0 from pip
TensorFlow-Addons version and how it was installed (source or binary): 0.9.0-dev tfa-nightly from pip
Python version: 3.7
Is GPU used? (yes/no): yes

Describe the bug
Exception has occurred: ValueError
in converted code:

    C:\Users\vbersier\AppData\Local\Continuum\miniconda3\envs\smsl\lib\site-packages\tensorflow_addons\metrics\r_square.py:65 update_state  *
        y_true = tf.convert_to_tensor(y_true, tf.float32)
    C:\Users\vbersier\AppData\Local\Continuum\miniconda3\envs\smsl\lib\site-packages\tensorflow_core\python\framework\ops.py:1256 convert_to_tensor_v2
        as_ref=False)
    C:\Users\vbersier\AppData\Local\Continuum\miniconda3\envs\smsl\lib\site-packages\tensorflow_core\python\framework\ops.py:1290 convert_to_tensor
        (dtype.name, value.dtype.name, value))

    ValueError: Tensor conversion requested dtype float32 for Tensor with dtype float64: <tf.Tensor 'y_true:0' shape=(None, 1) dtype=float64>

Code to reproduce the issue
model = tf.keras.Model(inputs, outputs)
model.compile('...', metrics=[tfa.metrics.RSquare()])

Other info / logs
N/A

Thanks foe reporting this. Looks like the same issue as in #1261

@AakashKumarNain the error does not happen in the same file. The exception is roughly the same but the cause is probably different. I would say "not a duplicate"

After upgrading to tf-nightly 2.2.0 it seems the problem is gone. So the issue might be upstream on tf 2.1.0...

tf.convert_to_tensor() takes dtype as an argument, so that shouldn't be a problem. self.dtye makes it possible to use with any type of float