Indentation

Hey @FintanH :) thanks again for helping on this.
I've applied miso-from-html to this HTML fragment.

          John Smith @johnsmith 31m

          Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean efficitur sit amet massa fringilla egestas. Nullam condimentum luctus turpis.

and got
fn1 = div_
  [ class_ "box" ]
  [ article_
    [ class_ "media" ]
    [ div_
        [ class_ "media-left" ]
        [ figure_
                [ class_ "image is-64x64" ]
                [ img_
                                [ src_ "http://bulma.io/images/placeholders/128x128.png"
                                , alt_ "Image" ]
                                []
                ]
        ]
    ]
  ]
fn2 = div_
  [ class_ "media-content" ]
  [ div_
    [ class_ "content" ]
    [ p_
        []
        [ strong_
                []
                [ text "John Smith" ]
        , small_
                []
                [ text "@johnsmith" ]
        , small_
                []
                [ text "31m" ]
        , br_
                []
                [ text "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean efficitur sit amet massa fringilla egestas. Nullam condimentum luctus turpis." ]
        ]
    ]
  ]
fn3 = nav_
  [ class_ "level is-mobile" ]
  [ div_
    [ class_ "level-left" ]
    [ a_
        [ class_ "level-item" ]
        [ span_
                [ class_ "icon is-small" ]
                [ i_
                                [ class_ "fa fa-reply" ]
                                []
                ]
        ]
    , a_
        [ class_ "level-item" ]
        [ span_
                [ class_ "icon is-small" ]
                [ i_
                                [ class_ "fa fa-retweet" ]
                                []
                ]
        ]
    , a_
        [ class_ "level-item" ]
        [ span_
                [ class_ "icon is-small" ]
                [ i_
                                [ class_ "fa fa-heart" ]
                                []
                ]
        ]
    ]
  ]

I noticed that the indentation exponentially gets larger (indent + ident), one way I fixed this was by changing line 133 to
 _ -> "[ " ++ listIndent (map (showMisoIndent (indent + 2)) elems) ++ line ++ "]"

result
fn3 = nav_
  [ class_ "level is-mobile" ]
  [ div_
    [ class_ "level-left" ]
    [ a_
      [ class_ "level-item" ]
      [ span_
        [ class_ "icon is-small" ]
        [ i_
          [ class_ "fa fa-reply" ]
          []
        ]
      ]

The problem with this is that it isn't generic to support other indentation levels. So maybe we can think of a different approach to fix this.
Lastly, I noticed the generated code was getting put into smaller chunks like fn1, fn2, etc. I wouldn't mind keeping it all as one big long thing, and letting the user break it up. But maybe you can shed some light onto this decision.
cc @cocreature

Ya I wanted to get something simple out first without doing a bunch of indentation calculation. Maybe there's some way we can use the existing pretty printing packages to make this nicer.
Regarding the separate functions, that seems to be a bug, they should have all been nested in the top level div. I was going for a solution where if you had something like:

These would turn into two separate functions with their nesting inside:
fn1 = head_

fn2 = body_

Ah, well. I'm fine just keeping the indentation level at 2 then (anything above that might be too long for large fragments anyways).
 _ -> "[ " ++ listIndent (map (showMisoIndent (indent + 2)) elems) ++ line ++ "]"

In regards to the fn_ functions, maybe if we can resolve this issue we might be good for a beta release.

or, use the pretty printer that @cocreature recommended. :)

Just gonna drop the link to the pretty printer here so I don't lose it :)

This, I shall allow.

Fixed the functions issue using hxt over tagsoup. There's one issue with img tags but I opened an issue on the hxt repo https://github.com/UweSchmidt/hxt/issues/69.
Now onto the pretty printing.


Get, get_by_email and Post implemented with the new DB on cloud

Since SignUp and LogIn share many similar functionalities and are closely related, they have been implemented together in a single branch, #15.


Build basic rendering engine

This task will be fleshed out based on additional information determined in #26 (every class will have its individual implementation task).

I have, using SkiaSharp, created a basic image. Next step is to lay the groundwork for rendering musical symbols inside such images.
This may bleed over into Sprint 2.

Reminder (mostly so I have a quick link from here): code work is being done here: https://github.com/keeperazra/CapstoneSource

A very basic music note has been rendered. Further work will depend on #26 due to the complexity of the task, as well as the requirement now that lines (such as the staff) are strongly recommended to be drawn by the program instead of using font resources. As such, this task is effectively complete. I have learned what I need in order to do the rendering. Now, I need to setup a system where I can do math and organize as well as place symbols.


Senthil Raj

Much needed article!

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 7a0fa0ba-209a-e457-06b6-30d496593f86
Version Independent ID: d276a668-9296-d713-61e2-6d204f9181e9
Content: Write extensible code - Finance & Operations | Dynamics 365 | #MSDyn365FO
Content Source: articles/dev-itpro/extensibility/writing-extensible-code.md
Service: dynamics-ax-platform
GitHub Login: @mfp
Microsoft Alias: mfp

Thanks for the feedback!

On Fri, Sep 07, 2018 at 10:14:29AM -0700, senthilrajm wrote:

Much needed article!

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.
(...)

GitHub Login: @mfp

Not sure it matters, but just in case...
I'm @mfp, and I'm not related in any way to this document.
There might be some metadata in need of correction somewhere.
Mauricio Fernández


Compilation with jpeg-turbo and GCC14 requires changing in winpr/libwinpr/utils/image.c

Hello.
I'm on Archlinux x86_64 with gcc14 and libjpeg (libjpeg-turbo 3.0.2). To compile freerdp from git I have to apply the following patch:
diff --git a/winpr/libwinpr/utils/image.c b/winpr/libwinpr/utils/image.c
index c60982571..8cf95df6c 100644
--- a/winpr/libwinpr/utils/image.c
+++ b/winpr/libwinpr/utils/image.c
@@ -626,7 +626,7 @@ void* winpr_convert_to_jpeg(const void* data, size_t size, UINT32 width, UINT32
 	for (size_t x = 0; x < height; x++)
 	{
 		const JDIMENSION offset = x * stride;
-		const JSAMPLE* coffset = &cdata[offset];
+		JSAMPLE* coffset = &cdata[offset];
 		if (jpeg_write_scanlines(&cinfo, &coffset, 1) != 1)
 			goto fail;
 	}

According to jpeglib.h the second argument of jpeg_write_scanlines shouldn't have const.
Previously I built freerdp with GCC13 and all was fine, I presume it is related to new GCC14.

yes, API bug of lilbjpeg(aka not const correct), requires explicit casts with newer gcc.
pull requests welcome, will be back next week, but no idea when I got time ;)


[skip-ci] dev-deploy: add docker node-exporter

PR Description
Type of change

[x] New feature

Summary of the change and which issue is fixed
Main changes: dev-deploy: add docker node-exporter

Checklist

I have run format.sh under script
I have commented my code, particularly in hard-to-understand areas
New and existing unit tests pass locally with my changes

r+ @4eUeP @YangKian

please update the example file, rest LGTM

please update the example file, rest LGTM

it had done when I split previous commit by mistake
https://github.com/hstreamdb/hstream/blob/main/script/dev_deploy_conf_example.json#L53

it had done when I split previous commit by mistake

you forget to add memory and CPU

it had done when I split previous commit by mistake

you forget to add memory and CPU

Emm... Seems you did not add memory and CPU entries to every container. Since these two items are optional, I think it's ok to specified in the documentation

it had done when I split previous commit by mistake

you forget to add memory and CPU

Emm... Seems you did not add memory and CPU entries to every container. Since these two items are optional, I think it's ok to specified in the documentation

yes, thx. I gonna file a pr to docs


using reactmap layers still generates 2 canvases and fails to render properly

I am attempting to use the new reactmap integration. I am passing the gl context object to the StaticMap but the rendering appears to be messed up. What seems to happening is that Deck.GL is still rendering to its own context and the StaticMap, I assume is rendering to the react-map context. However, I can only see the StaticMap while panning. When I stop panning it starts rendering the Deck.GL layers, except it does not render alpha.
Here are a couple of screen shots:
This is what the Deck.gl layers output:

The background is a png, the white jagged stuff markers are the layers.
When I start panning I get the actual map that seems intact.

These things should be overlayed and have alpha.
Here are the relevant parts of the code:

static defaultProps = {
    iconMapping: {
      dot: {
        x: 64,
        y: 64,
        width: 64,
        height: 64,
      },
      shape: {
        x: 128,
        y: 64,
        width: 64,
        height: 64,
        anchorX: 32,
        anchorY: 64,
        mask: true,
      },
      [CONTENT_STORY]: {
        x: 128,
        y: 0,
        ...ICON_MAPPING,
      },
      [CONTENT_VIDEO]: {
        x: 0,
        y: 64,
        ...ICON_MAPPING,
      },
      [CONTENT_AUDIO]: {
        x: 0,
        y: 0,
        ...ICON_MAPPING,
      },
      [CONTENT_STATISTIC]: {
        x: 64,
        y: 0,
        ...ICON_MAPPING,
      },
      [CONTENT_FEATURED]: {
        x: 0,
        y: 128,
        ...ICON_MAPPING,
        anchorY: 64,
      },
    },
    iconAtlas: require('../../assets/images/icon-atlas.png'),
  }

state = {
    time: 0,
    selectedStory: null,
    highlightPin: 0,
    activateHotspot: false,
    transitionDuration: 0,
    mapState: { ...DEFAULT_STATE },
    zoomScale: 1,
    filtered: [],
    prevZoomLevel: MAX_ZOOM,
    gl: null,
    data: [],
    cursor: 'grab',
  }

_onWebGLInitialized = (gl) => {
    this.setState({ gl })
  }

_onMapLoad = () => {

    const map = this._mapRef
    const deck = this._deckRef

    map.addLayer(new MapboxLayer({ id: 'marker-layer', deck }), 'marker-label')
    map.addLayer(new MapboxLayer({ id: 'marker-icon-layer', deck }), 'marker-icon-label')
    map.addLayer(new MapboxLayer({ id: 'points-layer', deck }), 'points-label')
}

_renderLayers() {
    const { iconAtlas, iconMapping, onClickHotspot, stories, mapRef } = this.props
    const { data } = this.state

    const markers = new IconLayer({
      transitions: {
        getColor: {
          duration: 150,
          ease: easing.linear,
        },
        getPosition: {
          duration: 150,
          ease: easing.linear,
        },
      },
      data,
      id: 'marker-layer',
      iconAtlas,
      iconMapping,
      pickable: true,
      onClick: d => !(d.visible || d.selected) && this._handleOpenHotspot(stories[d.index])(),
      onHover: ({ object }) => {
        if (object && !object.visible && !object.selected) {
          this._setHover(object.id)
        } else {
          this._setHover()
        }
      },
      sizeScale: 1,
      getIcon: () => 'shape',
      getSize: 64,
      getColor: d => {
        return [...this._setHoverColor(d.hover), d.visible || d.selected ? 0 : 255]
      },
    })

    const markerIcons = new IconLayer({
      transitions: {
        getColor: {
          duration: 150,
          ease: easing.linear,
        },
      },
      data,
      id: 'marker-icon-layer',
      iconAtlas,
      iconMapping,
      pickable: false,
      sizeScale: 1,
      getIcon: d => (d.featured ? CONTENT_FEATURED : d.type),
      getSize: 64,
      getColor: d => {
        return [35, 56, 93, d.visible || d.selected ? 0 : 255]
      },
    })

    const dots = new IconLayer({
      transitions: {
        getSize: {
          duration: 300,
          ease: easing.anticipate,
        },
      },
      data,
      id: 'points-layer',
      iconAtlas,
      iconMapping,
      pickable: false,
      sizeScale: 16,
      getIcon: () => 'dot',
      getSize: d => {
        if (d.visible) {
          return (d.currentlyFiltered ? 3 : 1) + d.twinkleSeed
        } else {
          return 0
        }
      },
    })

    return [markers, markerIcons, dots]
  }

render() {
    const { dimensions, stories, onFeaturedGalleryClick, hideFilterBar, prevNextDisabled, mapStyle } = this.props
    const { selectedStory, transitionDuration, mapState, activateHotspot, gl } = this.state
    const activeOverlay = activateHotspot && !!selectedStory
    const enableMove = !!(hideFilterBar && !activeOverlay)

    this._toggleZoom(activeOverlay)

    return (
      <MapContainer
        onContextMenu={event => event.preventDefault()}
      >
        <DeckGL
          onWebGLInitialized={this._onWebGLInitialized}
          viewState={{
            ...mapState,
            transitionDuration: transitionDuration,
            transitionInterpolator: new FlyToInterpolator(),
            transitionInterruption: TRANSITION_EVENTS.IGNORE,
            onTransitionEnd: this._handleMapTransitionEnd,
            onTransitionInterrupt: this._handleMapTransitionInterrupt,
          }}
          controller
          view={dimensions}
          layers={this._renderLayers()}
          getCursor={this._getCursor}
          ref={ref => {
            // save a reference to the Deck instance
            this._deckRef = ref && ref.deck
          }}
          onViewStateChange={this._handleMapState}

        >

          { gl && (
            <StaticMap
              dragRotate={enableMove}
              dragPan={enableMove}
              scrollZoom={enableMove}
              touchZoom={enableMove}
              touchRotate={enableMove}
              gl={gl}
              ref={ref => this._mapRef = ref && ref.getMap()}
              mapboxApiAccessToken={REACT_APP_MAPBOX_TOKEN}
              mapStyle={mapStyle}
              {...mapState}
              {...dimensions}
              onLoad={this._onMapLoad}
            >
              <ToggleVisible hide={activeOverlay || !hideFilterBar}>
                <StyledMapNavigation onChangeViewport={this._handleMapState} onCenterMap={this._centerMapToUserGeo} mapState={mapState} />
                <ViewFeaturedButton onClick={onFeaturedGalleryClick} />
              </ToggleVisible>
              <BackgroundOverlay show={activeOverlay} />
              <Transition timeout={250} appear in={hideFilterBar}>
                {state => {
                  return <StyledContentFilterBar onSelectFilter={this._handleFilterHotspot} transitionState={state} />
                }}
              </Transition>
              <HotspotLayer stories={stories} mapState={mapState} activateHotspot={activateHotspot} selectedStory={selectedStory} onClose={this._handleCloseHotspot()} />
            </StaticMap>
          )}
        </DeckGL>

        {!!selectedStory && (
          <ContentControls stretch justifySpaceBetween>
            <FadeWhenDisabled disabled={prevNextDisabled}>
              <ArrowGroup>
                <DirectionButton disabled={prevNextDisabled} direction={DIRECTIONS.LEFT} onClick={this._moveToNextFilteredStory(DIRECTIONS.LEFT)} />
                <DirectionButton disabled={prevNextDisabled} direction={DIRECTIONS.RIGHT} onClick={this._moveToNextFilteredStory(DIRECTIONS.RIGHT)} />
              </ArrowGroup>
            </FadeWhenDisabled>
            <CloseButton onClick={this._handleCloseHotspot()} />
          </ContentControls>
        )}
        {/*<ScreenBlend />*/}
      </MapContainer>
    )
  }

This works fine if I don't try to mix the contexts, but this is some weird behavior.

This is what its supposed to look like:

Can you confirm that you're using<EMAIL_ADDRESS>

my package.json has: "react-map-gl": "4.0.0", and thats what is in node modules, mapbox-gl is 0.50.0
my whole package.json:
  "name": "onstar-experience-hub",
  "version": "0.7.0",
  "private": true,
  "lint-staged": {
    "*.{js,json,css,md}": [
      "prettier --write",
      "git add"
    ]
  },
  "dependencies": {
<EMAIL_ADDRESS>"6.2.4",
    "@glidejs/glide": "3.2.3",
    "@mapbox/mapbox-sdk": "0.4.1",
    "@mapbox/react-geocoder": "2.5.0",
    "@turf/turf": "5.1.6",
    "axios": "0.18.0",
    "bowser": "2.0.0-beta.3",
    "classnames": "2.2.6",
    "deck.gl": "6.2.4",
    "lodash": "4.16.2",
    "luma.gl": "6.2.0",
    "particles.js": "2.0.0",
    "polished": "1.9.3",
    "popmotion-pose": "3.1.0",
    "react": "16.5.2",
    "react-autocomplete": "1.8.1",
    "react-dom": "16.5.2",
    "react-map-gl": "4.0.0",
    "react-pose": "3.1.0",
    "react-pose-text": "3.1.0",
    "react-redux": "5.0.7",
    "react-transition-group": "2.4.0",
    "react-video-renderer": "2.1.1",
    "recompose": "0.27.1",
    "redux": "4.0.0",
    "redux-saga": "0.16.0",
    "redux-thunk": "2.3.0",
    "styled-components": "4.0.2",
    "viewport-mercator-project": "5.2.0",
    "vtt.js": "0.13.0"
  },
  "scripts": {
    "start": "node scripts/start.js",
    "build": "node scripts/build.js",
    "test": "node scripts/test.js --env=jsdom",
    "storybook": "start-storybook -p 9009 -s public",
    "build-storybook": "build-storybook -s public",
    "precommit": "lint-staged"
  },
  "devDependencies": {
    "@quickbaseoss/babel-plugin-styled-components-css-namespace": "0.0.10",
    "@sambego/storybook-state": "^1.0.7",
    "@storybook/addon-actions": "^3.4.8",
    "@storybook/addon-links": "^3.4.8",
    "@storybook/addons": "^3.4.8",
    "@storybook/react": "^3.4.8",
    "autoprefixer": "7.1.6",
    "babel-core": "6.26.0",
    "babel-eslint": "7.2.3",
    "babel-jest": "20.0.3",
    "babel-loader": "7.1.2",
    "babel-plugin-styled-components": "^1.5.1",
    "babel-plugin-styled-components-named": "^0.1.1",
    "babel-preset-react-app": "^3.1.1",
    "babel-runtime": "6.26.0",
    "case-sensitive-paths-webpack-plugin": "2.1.1",
    "chalk": "1.1.3",
    "css-loader": "0.28.7",
    "dotenv": "5",
    "dotenv-expand": "4.2.0",
    "eslint": "4.10.0",
    "eslint-config-prettier": "^3.0.1",
    "eslint-config-react-app": "^2.1.0",
    "eslint-config-standard-react": "^6.0.0",
    "eslint-loader": "1.9.0",
    "eslint-plugin-flowtype": "2.39.1",
    "eslint-plugin-import": "2.8.0",
    "eslint-plugin-jsx-a11y": "5.1.1",
    "eslint-plugin-prettier": "^2.6.2",
    "eslint-plugin-react": "7.4.0",
    "exports-loader": "^0.7.0",
    "extract-text-webpack-plugin": "3.0.2",
    "file-loader": "1.1.5",
    "fs-extra": "3.0.1",
    "html-webpack-plugin": "2.29.0",
    "husky": "^1.0.0-rc.13",
    "jest": "20.0.4",
    "lint-staged": "^7.2.2",
    "object-assign": "4.1.1",
    "postcss-flexbugs-fixes": "3.2.0",
    "postcss-loader": "2.0.8",
    "prettier": "^1.14.2",
    "prettier-eslint": "^8.8.2",
    "promise": "8.0.1",
    "raf": "3.4.0",
    "react-dev-utils": "^5.0.1",
    "react-hot-loader": "^4.3.4",
    "resolve": "1.8.1",
    "style-loader": "0.19.0",
    "stylelint": "^9.4.0",
    "stylelint-config-recommended": "^2.1.0",
    "stylelint-config-styled-components": "^0.1.1",
    "stylelint-processor-styled-components": "^1.3.2",
    "sw-precache-webpack-plugin": "0.11.4",
    "url-loader": "0.6.2",
    "webpack": "3.8.1",
    "webpack-dev-server": "2.9.4",
    "webpack-manifest-plugin": "1.3.2",
    "whatwg-fetch": "2.0.3"
  },
  "jest": {
    "collectCoverageFrom": [
      "src/**/*.{js,jsx,mjs}"
    ],
    "setupFiles": [
      "<rootDir>/config/polyfills.js"
    ],
    "testMatch": [
      "<rootDir>/src/**/__tests__/**/*.{js,jsx,mjs}",
      "<rootDir>/src/**/?(*.)(spec|test).{js,jsx,mjs}"
    ],
    "testEnvironment": "node",
    "testURL": "http://localhost",
    "transform": {
      "^.+\\.(js|jsx|mjs)$": "<rootDir>/node_modules/babel-jest",
      "^.+\\.css$": "<rootDir>/config/jest/cssTransform.js",
      "^(?!.*\\.(js|jsx|mjs|css|json)$)": "<rootDir>/config/jest/fileTransform.js"
    },
    "transformIgnorePatterns": [
      "[/\\\\]node_modules[/\\\\].+\\.(js|jsx|mjs)$"
    ],
    "moduleNameMapper": {
      "^react-native$": "react-native-web"
    },
    "moduleFileExtensions": [
      "web.js",
      "js",
      "json",
      "web.jsx",
      "jsx",
      "node",
      "mjs"
    ]
  },
  "babel": {
    "presets": [
      "react-app"
    ]
  },
  "eslintConfig": {
    "extends": "react-app"
  }
}

What is your MapContainer component?

```const MapContainer = styled.div  ${absoluteFill};

It is a styled-component div.

Additionally, all the stuff that is the children of StaticMap has no effect on the result.

Nothing immediately jumps out at me. Do you see any console errors? Can you check if _onMapLoad is actually called?

I get no console errors and it definitely calls _onMapLoad. It is strange, I should run the example and see what happens.

Ok so I realized the second parameter is what the layer should be before, these layers should not be before anything. So now it renders altogether. However, its still rendering weird:

All the sprites are jagged and do not have transparency.

This one I actually know why. Mapbox's custom layer implementation does not support anti-aliasing: https://github.com/mapbox/mapbox-gl-js/issues/7543
Looks like you're not rendering anything 3d. You can try this trick:
const markerIconLayer = new MapboxLayer({ id: 'marker-icon-layer', deck });
markerIconLayer.renderingMode = '2d';
map.addLayer(markerIconLayer);

Hmm, that doesn't seem to help. still jagged and no transparency. The iconAtlas is a png with transparency.
I'm starting to think that this feature is still too experimental to use for anything substantial. Revised code:

    const map = this._mapRef
    const deck = this._deckRef

    const layers = [
      new MapboxLayer({ id: 'points-layer', deck }),
      new MapboxLayer({ id: 'points-layer', deck }),
      new MapboxLayer({ id: 'marker-icon-layer', deck }),
    ]

    layers.forEach(layer => {
      layer.renderingMode = '2d'
      map.addLayer(layer)

    })

  }```

I'm starting to think that this feature is still too experimental to use for anything substantial.

I agree. I'd suggest you chime in on the Mapbox issue, it may help them prioritize a fix.


OrbStack Helper ~660% cpu

Describe the bug
OrbStack Helper uses CPU resources ~660%
To Reproduce

orb start k8s
do some work in the k8s
remove custom resources

Expected behavior
No response
Diagnostic report (REQUIRED)
OrbStack info:
Version: 1.6.4
Commit: 90e832a0f4c6787bd028dc4efcd9c98cd5a2bc3d (v1.6.4)
System info:
macOS: 14.6.1 (23G93)
CPU: arm64, 10 cores
CPU model: Apple M1 Pro
Model: MacBookPro18,1
Memory: 16 GiB
Full report: https://orbstack.dev/_admin/diag/orbstack-diagreport_2024-08-18T12-00-19.051065Z.zip

Screenshots and additional context (optional)

Fixed for the next version.

Released in v1.7.1.


Can't seem to overwrite the style

Hi,
I've added
.select2-container--default .select2-results__option--highlighted[aria-selected] {
  background-color: #ffffff;
  color: white;
}

to my sass file which is being loaded after select2 css, and it's not overwriting the blue aria-selected property?
Any ideas?
Thanks

This issue does not appear to conform to our contributing guidelines.
Please re-read the contributing guidelines carefully and then edit your question.  Once your issue complies with the guidelines, we can reopen it.


Add fold(ifEmpty, f) on Option

I'd love to be able to use 'fold' the Option type, so I created this pull request.
I hope it's fine like that, all tests are green on my machine.
Let me know if there is any issue

Current coverage is 97.09% (diff: 100%)

Merging #1682 into master will increase coverage by <.01%

@@             master      #1682   diff @@
==========================================
  Files            89         89
  Lines         11227      11230     +3
  Methods           0          0
  Messages          0          0
  Branches       1883       1884     +1
==========================================
+ Hits          10901      10904     +3
  Misses          181        181
  Partials        145        145

Powered by Codecov. Last update 222cd63...584abe9

Thank you Mathieu, well done (one feedback: we omit this.).
This is a tough decision. When I saw the email notification about this PR my first thoughts were:

"Hell, why not"
"Having just Option.fold does not scale very well"
"Ok, I think the Foldable interface was once part of Value, our mother of of monadic types. Maybe we can move it back from Traversable to Value. But wait - aren't there also foldLeft, foldRight, ... do these make sense for single-valued types?"

In the end I thought we should just add the fold to Option (without moving the Foldable interface) because it is/might be well known from Scala (or Haskell).
But then I read the following article and I agree: Option.fold() considered unreadable
I got feedback that there are already (too) many ways to achieve the same. We should take care keeping the API simple and comprehensible (but powerful). This is no dogma, there are examples where we added aliases to the existing API, e.g. Map.zip() as shortcut for Map.zip(e -> e). However, the user does not need to change his thinking, he wants a zip and he gets a zip.
Adding a fold(sup, f) as shortcut for map(f).getOrElse(sup) is different compared to adding a zip alias. The consumer of the API has to think in different ways of solving the same problem.
In the article I linked above Martin Odersky is cited: "I personally find methods (...) that take two closures as arguments are often overdoing it."
I think the Option.fold method does not fit well, therefore we should close this PR, for the following reasons:

Traversable is Foldable, but Value is not. At a first glance it seems inconsistent that Values like Option (Try, Either, ...) have fold but do not implement Foldable. This confuses our users.
There are too many ways to achieve the same. Keeping things simple is important. We also target an audience that is not familiar with Haskell or Scala.
There are already several ways to express fold(function, function)

These are the same:
option.fold(sup, f);

option.map(f).getOrElse(sup);

option.isDefined() ? f.apply(option.get()) : sup.get();

Match(option).of(
    Case(Some($()), f::apply),
    Case(None(), sup::get)
);

My suggestions are:

Use option.map(f).getOrElse(sup)
If it is crucial not to create an intermediate object (like map does) then use option.isDefined() ? f.apply(option.get()) : sup.get()

I hope you understand my decision to steer Javaslang in this particular direction. Looking at all your popular Github organizations I think you do.
I also hope to see future PRs from you :)
Greets
Daniel

Closing it now. Don't hesitate to share your thoughts.

Hi Daniel,
It's okay, I understand your point and I can live without fold on Option :-)
It's just that I'm used to it in Scala, so it would have been nice to be able to use it on Javaslang's Option.
Is there a place were I can discuss future pull requests with the team before writing them ?
Thanks for your answer
Mathieu

Hi Mathieu,

Is there a place were I can discuss future pull requests with the team before writing them ?

the best way is to create an issue. First I will label it as question and we can brainstorm how it integrate into the existing design etc.
Greets
- Daniel

Ok, thanks


CPU usage spikes when using keras

Hi all,
I am running a model which contains some GRU modules in an RNN with keras. While training, the CPU spikes between ~400% to ~950%, when every spike ends after several seconds and returns to 99% CPU usage baseline. Ideally I would like the CPU to stay steady in > 700%, as the spiking translates to inefficient runtime. My .theanorc file:
[global]
device = cpu
floatx = float32
allow_gc = false
mode = FAST_RUN
openmp = true

[scan]
allow_gc = false

Any suggestions?

This is not a keras issue, please close and post on the forum.


ci: Limit Sweeper Parallelism to avoid throttling

Fixes #N/A
Description

After https://github.com/aws/karpenter-provider-aws/pull/6137, the sweeper jobs is evaluating any increased number of instance profiles. Since the sweeper will need to get all the instance profiles tags for each instance profiles, We saw an increases in the call volume that is happening when running the sweeper job in parallel.
We are seeing increased throttling in the CI account due to request volume of Instance Profile Tags. That has resulted in the CI script not properly analyzing the instance profiles to terminate.
Sweeper Run: https://github.com/aws/karpenter-provider-aws/actions/runs/9349837641/job/25732030282

operation error IAM: ListInstanceProfileTags, exceeded maximum number of attempts, 3, https response error StatusCode: 400, RequestID: 7983a801-4324-4b7c-8aa5-d1119fb58f5f, api error Throttling: Rate exceeded; operation error IAM: ListInstanceProfileTags, exceeded maximum number of attempts, 3, https response error StatusCode: 400, RequestID: 6f178a2f-2565-4e00-b0cc-0b761a2ff825, api error Throttling: Rate exceeded; operation error IAM: ListInstanceProfileTags, exceeded maximum number of attempts, 3, https response error StatusCode: 400, RequestID: 4673ecb2-1e6c-44d8-9528-82fca99faa7f, api error Throttling: Rate exceeded; operation error IAM: ListInstanceProfileTags, exceeded maximum number of attempts, 3, https response error StatusCode: 400, RequestID: 9c4b44ca-b059-4cf0-bce3-765cfd5d257e

How was this change tested?

forked repository

Does this change impact docs?

[ ] Yes, PR includes docs updates
[ ] Yes, issue opened: #
[x] No

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 82.52%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
5547

Relevant Lines:
6722

💛  - Coveralls


Missing automodule content possibly due to a different version of sphinx

Details

Project URL:  http://mobly.readthedocs.io
Build URL (if applicable):
Read the Docs username (if applicable): yusufm

Expected Result
Documentation of module created via sphinx automodule. When doing a "make html" locally, we see the different modules correctly documented.
We are using Sphinx 1.5.2 & Alabaster 0.7.9.
The source files for the page are identical between local and readthedocs versions.
Actual Result
Missing content when drilling down to individual modules.
See: http://mobly.readthedocs.io/en/latest/mobly.html#mobly-asserts-module
On readthedocs we see its building with an older version:
Sphinx 1.3.5 & Alabaster 0.7.9.
Is it possible to have readthedocs build with a newer version of sphinx? Possibly by providing a pip requirements file that has the correct version specified?

Is it possible to have readthedocs build with a newer version of sphinx? Possibly by providing a pip requirements file that has the correct version specified?

@yusufm yes, you can provide a rtd_requirements.txt on your project's page. Please, try that and let me know if this fixes that issue so we can close it.

Does this have to be in the project root, or in the docs folder?

you can configure that in your RTD project's page as you wish.

Its using the right version of sphinx, but still no content. Is it because its not finding the module files?

Check the last build message: http://readthedocs.org/projects/mobly/builds/5067247/
Traceback (most recent call last):
  File "/home/docs/checkouts/readthedocs.org/user_builds/mobly/envs/latest/lib/python3.5/site-packages/sphinx/ext/autodoc.py", line 551, in import_object
    __import__(self.modname)
ImportError: No module named 'mobly'

You will need to install mobly in the venv or mock it, maybe.

I added mobly to the requirements file and it now works.
However, thats getting the code from the pip release, not from the source in github. What is the right way to setup the project so that when readthedocs builds the docs, it uses the module code from github?

Take a look at this guide: https://pip.pypa.io/en/latest/user_guide/#requirements-files
I'm closing this issue since it's not a problem on RTD but in your repo/project configurations.


fixed bug in deserialization.jl

if tb_logger is read from a file,
which content is generated by previous run.
then the last frame is corrupted.
So return nothing if the header is wrong.
this can read some data from the logger, it is better than nothing.

I'm not sure if this is a bug in the function for saving file.
Maybe we can make sure the saved file is not corrupted.
But this bug fix is very easy.

Hi @norci and thanks for the PR!
The idea of the bugfix is good, however I think that silently returning nothing with no way of distinguishing if it's because data is corrupted or if that is expected is not a good API...
Do you have a MWE off when Tensorbordlogger produces corrupted data?

@PhilipVinc ,
I'm not able to reproduce the corrupted file in a short test case. :(
But in my project, all the event files are corrupted.
sample: events.zip
lg = TBLogger("", tb_append)
TensorBoardLogger.map_summaries(lg) do tag, iter, val
    if iter % 1000 == 0
        @info tag iter val
    end
end

ERROR: AssertionError: crc_header == crc_header_ck
Stacktrace:
 [1] read_event(::IOStream) at /root/.julia/packages/TensorBoardLogger/G72zB/src/Deserialization/deserialization.jl:16
 [2] iterate(::TensorBoardLogger.TBEventFileIterator, ::Int64) at /root/.julia/packages/TensorBoardLogger/G72zB/src/Deserialization/deserialization.jl:84
 [3] iterate at /root/.julia/packages/TensorBoardLogger/G72zB/src/Deserialization/deserialization.jl:83 [inlined]
 [4] iterate(::TensorBoardLogger.TBEventFileCollectionIterator, ::Int64) at /root/.julia/packages/TensorBoardLogger/G72zB/src/Deserialization/deserialization.jl:59
 [5] map_summaries(::var"#25#26", ::TBLogger; purge::Bool, tags::Nothing, steps::Nothing, smart::Bool) at /root/.julia/packages/TensorBoardLogger/G72zB/src/Deserialization/deserialization.jl:224
 [6] map_summaries(::Function, ::TBLogger) at /root/.julia/packages/TensorBoardLogger/G72zB/src/Deserialization/deserialization.jl:205
 [7] top-level scope at REPL[40]:1

Can you share one of them? Is it only the crc header that is corrupt or the whole event? Is it just truncated?
Is it just the last event or more than 1?
We are flushing at every log so I don't really understand how it can be broken.

Can you share one of them? Is it only the crc header that is corrupt or the whole event? Is it just truncated?

https://github.com/PhilipVinc/TensorBoardLogger.jl/files/5911228/events.zip

Is it just the last event or more than 1?

I'm not sure.
I have updated function Base.iterate(it::TBEventFileIterator, state=0), @warn the exception, instead of fail silently.
and I got many
┌ Warning: AssertionError("crc_header == crc_header_ck")
└ @ TensorBoardLogger /code/TensorBoardLogger.jl/src/Deserialization/deserialization.jl:87

I don't know if this means many data frames are corrupted, or this one was read many times.

We are flushing at every log so I don't really understand how it can be broken.

Yes, I don't understand too.
Tensorboard displays the logs correctly. and the step number is correct too.

I think I found the error.
In the zip file you sent me there is a file .DS_Store.
The current logic is to read all files in a folder. Funnily enough, the first few bytes of .DS_Store parse validly as a somewhat empty event (how that is even possible I don't know),but then of course it has invalid data.
Deleting that .DS_Store fixes it for me.

The current logic is to read all files in a folder. Funnily enough, the first few bytes of .DS_Store parse validly as a somewhat empty event (how that is even possible I don't know),but then of course it has invalid data.

I saved a lot of files, about training information, in the same dir as event file.
(The format of these files are BSON, PNG)
then I got a lot of warnings.
I moved the event file to an empty dir (e.g. log), then
convert(MVHistory, TBLogger("checkpoints/2021_02_03_00_16_27/log", tb_append)

works.
I think this is an implicit constraint. should be considered as a bug.
so this PR is necessary.
that it should read the events from the files it can read, and skip those files it can not read.

Closed in favour of #89


Add helpers for unmarshal JSON object into Options map

Implements the json.Unmarshaler interface for DHCP Options map.
This adds simple way to init DHCP Options from JSON object. For example, read DHCP Options from JSON formatted config file.
P.S. go test also been implemented.

Hi, IMHO I don't think that sort of functionality belongs in the dhcp4 package as it near doubles the source size, on the oft chance that the user wants to store DHCP options, in that particular JSON format.
However, I do think there is merit in having this code in a separate package, which imports the dhcp4 package for the Options type.  That way those wanting the functionality can import your package along with my one.
Thoughts?

I like this idea (separate package or sub package) but Go doesn't allow to do this: How do I import Parent-package from Sub-package for method?:

This does not work, you may not define a method on a type you did not
declare in your own package, exported or not.

Perhaps something like:
type JSONOptions dhcp4.Options
Change object from dhcp4.Options to JSONOptions:
func (o *JSONOptions) UnmarshalJSON(b []byte) error { ... }
And when finished (in the example) cast your JSONOptions to dhcp4.Options.

Done. Usage:
import "encoding/json"
import "github.com/krolaw/dhcp4"
import "github.com/krolaw/dhcp4/reflectDHCP"
...
var opt = dhcp4.Options{};
json.Unmarshal(strJSON, (*reflectDHCP.Options)(&opt));

Not wanting to have misled, but I imagined the separate package would have been called something like:
github.com/ZiroKyl/JSONdhcp4
That way it's your feature, your responsibility.  I won't need to sign off or check improvements AND I can redirect requests for XML, TOML, bind, etc formats to their own packages that I also don't manage :-)

New repo https://github.com/ZiroKyl/reflectDHCP

I also don't manage :-)

I understand: https://github.com/ZiroKyl/dhcp4/commit/b05b5da875555fdda29dac19c9d18226f29ed00b#diff-23900ffffef263bf9082a906ba6c278aR371


Samples should be self contained

It's frustrating that the samples aren't self contained. If I want to take a copy of the cloud-function-aws and use it in my own POC I have to work out if there is any problem with removing the reference to the sample parent pom.

Yes sorry for that, but self contained samples that we had previously were too hard to maintain. With builtin native support in start.spring.io, I tend to think that's reasonably ok.


Suggestion: weight to be displayed

As per title, for those using this as a bag of holding or other backpack that has a specific weight limit, could it be possible to have the total weight displayed on the inventory?

Solved in: https://github.com/jopeek/fvtt-loot-sheet-npc-5e/pull/125


Git integration

Description
This PR adds basic git integration including stashing, committing, pushing and discarding, fixes a bug and fixes typos.
Related Issues

Closes #997

Checklist

[x] I read and understood the contributing guide as well as the code of conduct
[x] The issues this PR addresses are related to each other
[x] My changes generate no new warnings
[x] My code builds and runs on my machine
[x] My changes are all related to the related issue above
[x] I documented my code
[x] Pull requests
[x] Commits
[x] Pushing
[x] Stashing
[x] Discard changes
[x] Fix SSH

Screenshots
https://user-images.githubusercontent.com/98705626/224548439-81a6c8a3-3b3f-45da-9844-098adb09a951.mov

Please add one or multiple screenrecordings

Added 😄

The media doesn't really say anything. It doesn't show that the code behaves the way it should. Those buttons where already there, just disabled.

The media doesn't really say anything. It doesn't show that the code behaves the way it should. Those buttons where already there, just disabled.

What else do I put there?

I can just say it works as intended.

Show that the file(s) really do get committed. And that only the staged files get committed when you press commit, for example.

Your code is gonna cause a lot of issues for developers, I would advise to do a lot of research on this before allowing this to be merged into the project.
@iggy890 @matthijseikelenboom @0xWDG

Agreed, at the very least our git implementation should work with libgit instead of a shell and strings. It would be great if git were this simple but this will have to be removed in a future PR when a real git integration is done.

Agreed, at the very least our git implementation should work with libgit instead of a shell and strings. It would be great if git were this simple but this will have to be removed in a future PR when a real git integration is done.

App size about to go 📈

Your code is gonna cause a lot of issues for developers, I would advise to do a lot of research on this before allowing this to be merged into the project.
There is no safety fallback for any of the git operations.
@iggy890 @matthijseikelenboom @0xWDG

Handling errors somehow and some sort of output would be good as well.

Your code is gonna cause a lot of issues for developers, I would advise to do a lot of research on this before allowing this to be merged into the project.

There is no safety fallback for any of the git operations.

@iggy890 @matthijseikelenboom @0xWDG

Handling errors somehow and some sort of output would be good as well.

Not just that, there is a lot you would need to take in consideration.

For now I'll convert this to a draft.

If you have any more (specific) suggestions just create a new comment and @mention me

Hope this gives you and idea of what to actually do @iggy890

Well, I'll look into it.

App size about to go 📈

You're right, I thought there would be a way to link to an installed version but using a shell might be the way to go. Clearly I need to do my research too.

Closing this, CE's git integration needs a more stable, researched implementation and this PR includes some extra things out of scope. Continuing discussion on Discord.


Correct the bottom margin on modal headers

Was there a problem?

Yeah it was a little big. I think it always was off, because the 2rem (32px) spacing is used all over the UI library.


Death sound

Hey there!
This isn't really an issue but it is the only way i know to reach out,
I'm here with a request, if there is a possibility for you to create a similar one to this one, but with a friend/dovydas saying "byee"
i'm not knowledgeable in programming, so either as a request or to help me build one up from scratch

Hello!
Thanks for reaching out! I've heard a few people just wanting a custom sound. So I think I'll be making an update where you can link a path to a sound file and it will play it!
I can't give you an exact date. But I'll be trying to implement it as soon as possible!
Kind regards
Stan

This is probably not happening. I'll keep this issue open though.


[Identity] DeviceCodeCredential: Make ClientId optional.

ClientId should be optional.
One possible way to approach this is to overload the constructor.

DeviceCodeCredential currently requires the ClientID parameter to be specified: https://github.com/Azure/azure-sdk-for-js/blob/master/sdk/identity/identity/src/credentials/deviceCodeCredential.ts#L77
However, .Net allows ClientID to be null, and calls to MSAL's MsalPublicClient to otherwise retrieve the client (does that make sense?). (link).
MsalPublicClient comes as a parameter from DeviceCodeCredential (link), and I can't find it on msal-node, so I have no idea how to work with that.

Vinay mentioned to me that:

we need to make the clientid optional and use DeverloperSignOn id as default.

Not sure what's that yet! 😁 sorry. I'll be back with more information later.

Alright so I discussed with Jonathan about the API change and we agreed so far on making this parameter optional. Then, the default value seems to be the same as this: https://github.com/Azure/azure-sdk-for-js/blob/752628be7932cd03833c66b9697d12e5430fa3ec/sdk/identity/identity/src/constants.ts#L12
I'll make a draft PR with that information.


Compatibility with Lineamatic gate motors?

Hi,
I've just stumbled upon this project. I have a Lineamatic 2 gate motor that I'd like to add to Home Assistant. Is this project compatible with this motor? I think it is a Series 3 motor, but I'm not sure. Can I use the "venting" option for the "small gate" option (partial open)? Does it also report open-close-opening-closing-partially open state?
Thanks

I've found a pdf somewhere about the compatibility of the HCP module where it said Series 3:

(unfortunately it's in Hungarian, but "3-as sorozat" means "series 3")
The module's manual also states the UAP1 or the UAP1-300 as a compatible addon board. Can it be used in this case then?

I can't say, because I don't have one. You have to try it yourself.

Thanks, I'll try. One more question: can the PIC and the ESP be programmed on board, or do they need to be programmed before soldering them? If they can be programmed on board I could order the board presoldered from China and it would make my job a lot easier. If not, then I'll have to leave at least the PIC and the ESP unsoldered.

They can both be programmed "on board".
To program the PIC connect a supported microchip programming tool to SV1.
To programm the esp connect a USB-UART converter to SV3 and enter "programming mode" like described in the README.md

Thanks, I'll try. One more question: can the PIC and the ESP be programmed on board, or do they need to be programmed before soldering them? If they can be programmed on board I could order the board presoldered from China and it would make my job a lot easier. If not, then I'll have to leave at least the PIC and the ESP unsoldered.

Did you manage to try this on Lineamatic? I'd be interested in it as well. Were you able to order the board assembled and even preprogrammed? If yes, please share the source with me.

@kovlo no time so far, sorry

I have Lineamatic and yesterday I've connected a board to it.
It correctly reports status of the gate, even "option relay", but It can't send any command :(
I found that people had the same symptoms when they tried to use it with E4 ( https://community.home-assistant.io/t/hormann-garage-door-via-mqtt/279938/95 ). But I didn't change the pins, so it should be compatible with UAP 1, not with E4 series. I have currently no idea what to do next.

I've reviewed the code of Stephan and debugged it with Lineamatic. I've got that master (Lineamatic by itself) doesn't not send slave status requests.
After googling about the problem I found it in https://github.com/raintonr/hormann-hcp/issues/1
In that issue Stephan by himself gave an advise to Robin regarding the problem reason

Every message on the bus must start with a sync break (according to the LIN standard). A sync break are at least 13bits low, this is not the same as sending one or two zeros (each of them is only 8bits low). As the name says a sync break breaks the "normal" protocol frame to trigger an error = resync in every connected device.

I've reviewed code JS code of Robin and found that he followed the advice and solved the problem by switching boudrate=9600 and databits=7 temporary for sending the syncbreak.
Robin also mentioned that in the answer to Stephan:

In fact, this can be achieved by setting the baud rate down to 9600, data bits to 7 then sending a zero, which in effect holds the transmit line high for long enough. Remembering to turn communications parameters back to normal before continuing.

I also found the same solution in one more repository https://github.com/steff393/hgdo/blob/master/src/uap.cpp#L209
But in the code of Stephan there is no such switching, just

/* Start with a Syncbreak */
tx_counter = 0;
TX1STAbits.SENDB = 1;
TX1REG = 0x00;

Unfortunately I have no experience with programming PIC controllers. By reading the code and documentation I've got how to change bound rate, but I have no idea how to change data bits. It would be great if someone experienced (or @stephan192 by himself) can help me with that.

Hi @realdimik,
my software for the PIC issues a LIN conform syncbreak. The implementation of Robin for examle is just a workaround which seems to be working but is not what the standard requests.
For the PIC you found the right piece of code where the syncbreak is generated. It are just three lines of code. Please have a look at the datasheet (page 438 chapter 33.3.4) for more details.
/* Start with a Syncbreak */
tx_counter = 0;
TX1STAbits.SENDB = 1;
TX1REG = 0x00;
In conclusion: There is no need for baudrate change within my software!
If the Lineamatic doesn't sent slave status requests i currently don't see any change to control the door via my board.

Hi Stephan,
thank you for the reply. It is clear.
My assumption was made based on that Robin got Lineamatic work, and I only needed to find the difference in approaches. But finally I found not a difference, but my misunderstanding of PIC registers that you've described.
I will try to research a bit more. I will try to simulate Lineamatic by PIC and connect it to Hormann ese-868-bs that I have, and log how slave scan reply looks like.
In case of not success, I have plan B: connect a toggle gate button in Lineamatic board to an ESP.
For logging currently I'm collecting all messages in long memory buffer and make a breakpoint when it full to grab it using watches in MPLab. Does more standard way for logging exist?
rgds,
Dmitry

I've simulated Lineamatic by PIC and got from ese-868-bs a slave scan reply similar to UAP1, but with addr=0x29 and type=0x10 (makes sense). I've also measured timing. ese-868-bs replies by 9ms, not 3ms.
Then I sent the same slave scan reply using PIC to Lineamatic, but didn't get any slave status request with any timing from 3ms to 12ms :(

What do you mean by

I've simulated Lineamatic by PIC

The Lineamatic is the Master and the PIC or the ESE is the slave.
The "response delay" (3ms in my case) would be the next value i would start playing around, but you already did that. As far is a can remember is started with 0ms and my E3 didn't accept my slave can reply with 0ms delay.
My guess is that the Lineamatic doesn't accept/receive the slave scan reply by any reason. Normally the master keeps on sending the slave scan message until he receives a vaild reply. But, as far as i can remember, if it once has found a slave it never sends the slave scan again until the drive is reset.
I would do the following things as next steps:

Connect an additional rs485 dongle to the bus and log the messages on a PC.
Take an oszilloscope and measure the exact bus timings with the ESE.

What do you mean by

I've rewrite the code in PIC to send the same packets with the same timing as master does (broadcast and bus scan only), connected PIC to ESE, and logged replies to catch a slave scan reply. And got it.

As far is a can remember is started with 0ms

I haven't checked less than 3ms. I will do it.

My guess is that the Lineamatic doesn't accept/receive the slave scan reply by any reason.

Mine is too.

But, as far as i can remember, if it once has found a slave it never sends the slave scan again until the drive is reset.

It could help me. 30 minutes ago I got a slave status request. I changed logger to get more info, but I didn't get it again even after switching Lineamatic power off and on.
What do you mean by "drive is reset"?

What do you mean by "drive is reset"?
I mean performing a factory reset according to the drives manual. A power cycle is not enough.


switch to directory on lsst-dev

this allows users to run lsst_data_explorer from any directory on lsst-dev

better workaround for now is to launch lsst_data_explorer from the lsst-dashboard repo. I'll fix this properly in a different PR


Update core.py - 'params' & mp for custom strategies

Hi @twopirllc,
Here are the changes I propose to allow for the use of mp in CustomStrategies, as well as specifying the paramaters in ta with 'params', in the form :
CustomStrategy = ta.Strategy(
    name="MyStrat",
    ta=[
        {'kind':'sma', 'params':(30)},
        {'kind':'bbands', 'params':(20,2)},
        {'kind':'macd', 'params':(8,21)}
    ]
)

I have accounted for the case where some indicators are specified with 'params' and the others with their explicit fast, slow..., and for the case of chained indicators, for example :
CustomStrategy = ta.Strategy(
    name="MyStrat",
    ta=[
        {"kind":"ema",  "length": 5},
        {'kind':'bbands', 'params':(20,2)},
        {"kind":"linreg", "close": "EMA_5", "length": 8, "prefix": "EMA_5"}
        {"kind":"macd", "fast":9, "slow":19, "signal":7},
    ]
)

What I did :

deleted the finalize() method
re-writted all the indicators calls without finalize(). Deleted open, high, low, close & volume if present in the definition. The use of close = self._get_column(kwargs.pop('close', 'close')) allows for chained indicators via pop(), with a default on the actual close column of the df (respectively open, high...)
moved mp_worker() inside the AnalysisIndicators class and re-writed it consequently
writted a mp ordered map pool for CustomStrategies and skrinked the code
writted the same code without mp, to allow for comparison.

If I'm not mistaken these changes don't break any compatibility on the user's end.
Take your time to review the changes, you'll maybe see some details that I didn't !
Thanks,
DrPaprikaa

Hey @DrPaprikaa,
I will play around with it soon and test it on the development branch..
Thanks for taking the time to contribute to these issues and improving Pandas TA!
Thanks,
KJ

No problem, happy to contribute to this awesome project !
DrPaprikaa

@DrPaprikaa,
The strategy upgrade works well. No issues so far with it. 😎
However was the finalize decorator interfering with strategy?
Because it's removal has made it unable to append or add prefix/suffix to the the df DataFrame when doing:
ao = df.ta.ao(append=True, prefix="pre", suffix="suff")

It is a simple fix to append within a method to get it working like it was originally before writing finalize. Such as:
    def ao(self, fast=None, slow=None, offset=None, **kwargs):
        high  = self._get_column(kwargs.pop("high", "high"))
        low   = self._get_column(kwargs.pop("low", "low"))

        result = ao(high=high, low=low, fast=fast, slow=slow, offset=offset, **kwargs)
        self._add_prefix_suffix(result=result, **kwargs)
        self._append(result=result, **kwargs)
        return result

Will re implementing finalize break strategy? It is an easy thing to check and try for me. Just curious if finalize affected strategy in your development?
Thanks,
KJ

Hi @twopirllc,
Sure let me try it and do some tests. I also spotted typos here and there, so I'll use the occasion to correct them.
DrPaprikaa

@DrPaprikaa,
Sounds good. Also doing some refactoring on my end.
Thanks,
KJ

@DrPaprikaa,
So most of it is ready to go! Did some refactoring, core documenting, and now all the tests are passing. Just left is some documentation and notebook updating with an example or two.

@twopirllc,
I didn't find a way to correctly use finalize(), so I added back add_prefix() and append() to the indicators calls, so it now behaves as intended.
In the case where an indicator returns a df, I added an option, via kwargs, to append only one desired column to the data. It goes like this :
CustomStrategy = ta.Strategy(
    name="MyStrat",
    ta=[
        {'kind':'bbands', 'params':(20,), 'col_number':2},
    ]
)

or alternatively : ao = df.ta.bbands(append=True, col_number=2)
which can be usefull if the user needs only the upper bband for example.
Btw I have no idea how to use Github Desktop yet, so please discard commits 2 & 4 ! My 3rd commit is the one to go with, but it does not include the code refractoring that you did (where can I see what you wrote btw ?)
DrPaprikaa

Might want to try and figure out how to update your branch with the development branch make the col_number work from that point.

If you're happy with the col_number  solution I suggested, then updating the code is as simple as copy-pasting the line result = result.iloc[:,int(kwargs['col_number'])] if 'col_number' in kwargs and kwargs['col_number'] is not None else result in the corresponding indicators calls.
Don't hesitate if I can be of any help. Looking forward to seeing the result !
In the future should I make pull requests on the master or dev branch ?
DrPaprikaa

@DrPaprikaa,
If it may be a useful feature, then adding col_number but will not know unless it is implemented. Can you only target one column or more than one?

Don't hesitate if I can be of any help. Looking forward to seeing the result !

From what I have seen so far, you are welcome to help contribute and knock out any issues on the issue board.

In the future should I make pull requests on the master or dev branch ?

I push new stuff onto the development  branch and critical bugs onto master. But yeah, try to make use of the dev branch.
KJ

@twopirllc,

Adding col_number may be a useful feature, but we will not know unless it is implemented.

I've already implemented it in commit 3, it works well.

Can you only target one column or more than one?

Only one in the current form. Updating to multiple columns would be done by changing the line:
result = result.iloc[:,int(kwargs['col_number'])] if 'col_number' ...
to something like:
result = result.iloc[:,[int(n) for n in kwargs['col_number']]] if 'col_number' ...
and by specifying 'col_numbers' as a tuple. I haven't tested it though.
DrPaprikaa

@DrPaprikaa,
Last night and since the removal of finalize, I created a private method _post_process() to handle _append and _add_prefix_suffix before returning the result.
Sample indicator definition:
    def bias(self, length=None, mamode=None, offset=None, **kwargs):
        close  = self._get_column(kwargs.pop("close", "close"))
        result = bias(close=close, length=length, mamode=mamode, offset=offset, **kwargs)
        return self._post_process(result, **kwargs)

As for col_number lets do a seperate pull request from development so everything is insync again and close this one out.

Adding col_number may be a useful feature, but we will not know unless it is implemented.

I've already implemented it in commit 3, it works well.
Can you only target one column or more than one?
Only one in the current form. Updating to multiple columns would be done by changing the line:
result = result.iloc[:,int(kwargs['col_number'])] if 'col_number' ...
to something like:
result = result.iloc[:,[int(n) for n in kwargs['col_number']]] if 'col_number' ...
and by specifying 'col_numbers' as a tuple. I haven't tested it though.

KJ

Sure I'm closing this pull request, moving on to 'col_number' :)


Unable to use GPU

Hi,
My system has two K80 Nvidia GPUs, but I am unable to use GPUs(it shows that memory of the GPU has been utilized, but  GPU utilization is 0%, while CPU utilization is full. I have CentOS Linux release 7.2.1511 installed on my system with CUDA7.5, Theano0.8.0, CuDNN4 and CNMEM.
It gave the following message when I ran the code:
Using gpu device 1: Tesla K80 (CNMeM is enabled with initial size: 98.0% of memory, CuDNN 4007)
That means, it should use GPU properly
This is the command I gave to train the network:
python ./deepMedicRun -dev gpu1 -train ./examples/configFiles/deepMedic/train/trainConfig.cfg -model examples/output/cnnModels/deepMedic.initial.2017-02-<IP_ADDRESS>.367588.save
Could you please tell me the solution? Could you please provide a docker image for Deepmedic?
Thanks

Hello starofgit,
thanks for your interest and your feedback.
The message you receive indeed should mean that everything is fine and GPU is used.
The gpu usage can be low if you changed something in the configuration that makes the process very light on the GPU, and the training on the batches is done very fast, while CPU stays busy extracting patches for the next batch. For instance, this can happen if you deliberately used a very small network or with very few filters.
How are your training times? Is the model getting trained or not?
Would you mind sending me the log files from your training to<EMAIL_ADDRESS>They will help me spot a problem if there is one.
I have not scheduled of providing docker image, sorry.
Kind regards,
Kostas

Closing for now as there was no update on this issue.


Support for disabled runtime marshalling

https://learn.microsoft.com/en-us/dotnet/standard/native-interop/disabled-marshalling
There was some discussion on this topic in #428; I figured I'd open this issue to track support for this feature.
The bool issue in particular is one that I'm running into with a library that I'm generating bindings for. I am using [assembly: DisableRuntimeMarshalling] so it's a bit unfortunate that the P/Invoke signatures end up using byte. (Perhaps also worth noting that remapping with --remap _Bool=bool and/or --remap bool=bool as a hacky workaround isn't possible.)

I ended up just doing a cast for the "bool" type at the calling location/handoff to managed code. I only ever touch the values once so it worked well enough for me.

Resolved in https://github.com/dotnet/ClangSharp/pull/480


Importing attached PQ results via Gmail doesn't work

Steps to reproduce with c:geo 04.01.2012:

Run a PQ that sends zipped results via email
Open PQ result email in Gmail
Scroll to attachement and tap it

-> no way to open the zip with c:geo in order to import it
When using the standard E-Mail program, there is an 'Open' button at the attachment that allows to open the PQ result zip with c:geo which start the import procedure.

Yes, same on my Galaxy SII with the samsung email client...seems to be strongly depending on the used client.
I am not sure if anything can be done on that.....we discussed this some time as far as I remember.
Question for the developers:
How is the attachment identified as belonging to c:geo ? *.zip can not be all.

@Lineflyer
c:geo registers to be able to open files of type xml (for gpx and loc) and zip.
@stephanme
I assume you are using the Gmail app, not visiting the website.
I am using Gmail app version <IP_ADDRESS> and I am not given the option to preview or download .zip files.
I was going to try having c:geo register for additional types in case Gmail is using something different, but I cannot test it on my phone. Some that I was going to try are:
application/x-compressed"
application/x-zip-compressed"
application/x-zip"

Yes, I'm using Gmail + attachments. Import via browser download works without problems.
Can I debug c:geo (from Eclipse) on my phone without loosing all my c:geo configuration? I guess I have to uninstall the 'productive' c:geo before debugging.
If yes, I can test if additional mime types help with Gmail.
During development of the GPX import, I only tested in the emulator (and there is no Gmail, only simple Email).
I googled a bit and it seems that a lot of people have problems with attachments in Gmail...

@stephanme 1. Activate USB debugging on your phone 2. In Eclipse on your c:geo projekt "Debug As | Android Application".

The old installation must be removed first. Try Titanium Backup.

@campbeb :
Strangely I can neither open *.gpx nor *.zip containing a gpx with c:geo using samsung-mail client.
Is there another dependency like the filename or only the filetype ?
Locus is available for opening the *.gpx in my mails and handles them correctly....so technically it seems to be possible.

For import via browser download or email, there is no file name mapping but only mime type mapping. Currently, c:geo subscribes to mime types application/xml and application/zip.
Adding more mime types may help.

Can someone find which mime-type Locus is registering, because some friends with different mail-apps and also myself can open PQs without problems with Locus.

I can do it.

Ok, here are the lines related to gpx and zip (Locus supports a lot more):
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
                <data android:mimeType="application/gpx" />
                <data android:scheme="file" />
                <data android:scheme="content" />
                <data android:pathPattern=".*\\.gpx" />
            </intent-filter>
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
                <data android:mimeType="text/xml" />
                <data android:scheme="file" />
                <data android:scheme="content" />
                <data android:pathPattern=".*\\.gpx" />
            </intent-filter>
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
                <data android:mimeType="text/plain" />
                <data android:scheme="file" />
                <data android:scheme="content" />
                <data android:pathPattern=".*\\.gpx" />
            </intent-filter>
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
                <data android:mimeType="application/zip" />
                <data android:scheme="file" />
                <data android:scheme="content" />
                <data android:pathPattern=".*\\.zip" />
            </intent-filter>

Gmail is difficult. I tested the Locus intent-filters. No success.
I tested some more mime types:
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />
            <action android:name="android.intent.action.PICK"/>
            <action android:name="android.intent.action.GET_CONTENT"/>
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />
            <data android:mimeType="application/zip" />
            <data android:mimeType="application/x-compressed" />
            <data android:mimeType="application/x-zip-compressed" />
            <data android:mimeType="application/x-zip" />
            <data android:mimeType="application/octet-stream" />
            <data android:pathPattern=".*\\.zip" />
            <data android:scheme="file" />
            <data android:scheme="content" />
        </intent-filter>

Did not help.
But I can't send the zip attachment (zipped GC PQ result sent by mail) from Gmail to Locus either. The zip shows up as attachment in the email but there is no way to do something with it (no preview, no open).

Tried to add some permissions but still doesn't work.
<uses-permission android:name="com.google.android.providers.gmail.permission.READ_GMAIL"></uses-permission>
<uses-permission android:name="com.android.email.permission.READ_ATTACHMENT"></uses-permission>
<uses-permission android:name="com.google.android.gm.permission.READ_GMAIL"></uses-permission>
<uses-permission android:name="com.google.android.gm.permission.READ_ATTACHMENT_PREVIEW"></uses-permission>

http://www.google.co.uk/support/forum/p/gmail/thread?tid=3a7520d452d695b3&hl=en
says that since gmail 2.3.5 it is not possible anmyore to preview or download zip attachments.

I tested the app "Download All Files" that claims to enable zip download for Gmail. As expected, it doesn't work for Gmail <IP_ADDRESS>. So I'm giving up.
Anyway, I'll add the following mime types to the import:
<data android:mimeType="application/x-compressed" />
<data android:mimeType="application/x-zip-compressed" />
<data android:mimeType="application/x-zip" />
<data android:mimeType="application/octet-stream" />
<data android:pathPattern=".*\\.zip" />

Maybe it helps for other mail clients.

It helped for Samsung mail client on my Galaxy SII. Now I am able to open *.zip

Ok, we can't do anything else at the moment.


Remove the username step from the social auth

Our user model uses email and doesnt have an username field

LGTM.  Social Auth returns early for user models without a username, but all improvements are welcome.

We weren't using those settings so wasn't aware of that. Seemed the most reasonable to remove it as we font have the username on the model


Invariant Violation: Native module cannot be null

Report
Plugin Version
via 6.6.1
On what Platform are you having the issue?
ios
What did you do?

yarn add react-native-appsflyer
cd ios && pod install

What did you expect to happen?
Initialize the sdk
What happened instead?
Gives the build error Native Module cannot be null
Please provide any other relevant information.
appsFlyer.initSdk(
  {
    devKey: '***********',
    isDebug: false,
    appId: '*******',
  },
  (result) => {
    console.log(result);
  },
  (error) => {
    console.error(error);
  }
);

Using the old api (5.1.2) it works fine

I have the same issue

try to clean your project and remove derived data. then build again

@jorgeruvalcaba Please take a look here: https://github.com/AppsFlyerSDK/appsflyer-react-native-plugin/issues/391


Re-design release process

With the introduction of publishing docker images, our release process might need some refinements.
Originally, the idea was to publish pre-built binaries via releases and for that reason a preview release was introduced. However, this was more of a duct-tape solution than anything else as can be seen by the number of workarounds that we need to put in place for it to work correctly:

https://github.com/itchysats/itchysats/pull/734
https://github.com/itchysats/itchysats/blob/697771e71550b06148169e0c53fb2db20960670e/.github/workflows/preview-release.yml#L23

Both of these stem from the fact that tags are meant to be immutable but our preview tag is not.
Unfortunately, the current process of releasing a latest docker image depends on the release binaries being built upon merges to master and attaching them to the preview release. The same workflow is also used to attach binaries to actual releases.
A re-designed process should take into account:

No tag hacks like the above
Ideally no duplication between workflows

Feature-wise, I think the bare minimum we need is:

Updating the latest docker image every time we push to master
Releasing a versioned docker tag upon releases (like 0.1.2)

With Umbrel becoming our main target user base, I think we can ditch attaching release binaries to releases.
Thoughts welcome!

If we move the entire build process into the container, we could leverage docker buildx a bit better to build multi-platform images.
Couple of complications with that though:

Our binaries embed the frontends
If we build the binaries in the container, we need to also build the frontend in there - could use several multi-stage builds where we pass on the individual artifacts
We could also build the frontends outside the container but then we need to pass it in somehow (COPY?)

Perhaps we should also look into splitting the Dockerfile into two (one taker one maker) given these differences in the build system ...

If we move the entire build process into the container, we could leverage docker buildx a bit better to build multi-platform images.

I tried exactly this last week but gave up because building inside the container is unbearably slow:

docker buildx vs github build matrix: buildx parallelizes builds, but they are all in one action while building outside of a container can be parallelized using a build matrix
caching rust builds inside a container is really hard. I had a look at cargo-chef but could not get it working probably. I'll attach the docker file further down below. The initial build took over 3h.

cargo-chef dockerfile:
FROM lukemathwalker/cargo-chef:latest-rust-1.56.1 AS chef

LABEL "org.opencontainers.image.source"="https://github.com/itchysats/itchysats"
LABEL<EMAIL_ADDRESS>
FROM chef AS planner

WORKDIR app
COPY . .
RUN cargo chef prepare --recipe-path recipe.json

FROM node:16 as frontend

ARG BINARY=taker

# Cache the frontend
WORKDIR /frontend
COPY $BINARY-frontend/package.json $BINARY-frontend/yarn.lock ./
RUN yarn

# Build the frontend
COPY $BINARY-frontend ./
RUN yarn build

FROM chef AS builder

ARG BINARY=taker

WORKDIR /app

# Copy dependency graph
COPY --from=planner /app/recipe.json recipe.json

# Build dependencies - this is the caching Docker layer!
RUN cargo chef cook --release --recipe-path recipe.json

COPY . .

# Copy frontend build artifacts
COPY --from=frontend /frontend/dist/$BINARY $BINARY-frontend/dist/$BINARY

# Build application
RUN cargo build --release --bin $BINARY

FROM gcr.io/distroless/cc

USER 1000

ARG BINARY=taker

COPY --from=builder /app/target/release/$BINARY /usr/local/bin/app

VOLUME data

# HTTP Port and P2P Port
EXPOSE 8000 9999

ENTRYPOINT ["/usr/local/bin/app", "--data-dir=/data", "--http-address=<IP_ADDRESS>:8000"]

I would keep a similar build pipeline as we have right now: If we don't want the preview-release process then we could duplicate the build matrix and instead of publishing the resulting binaries as a release, we could upload them as artifacts to the build and then download them again in our docker image build, e.g.:
jobs:
  build_binaries:
   strategy:
      matrix:
.... build binaries and upload as artifacts
  build_docker:
    needs: build_binaries
.... same as now but downloads from artifacts

The downside is that we would need to duplicate parts of the build logic (yarn build and cargo build).
The advantage of this approach compared to building inside the docker container is that we can make use of parallel builds and cache the dependencies efficiently.

I came to the same conclusion and started some work here: https://github.com/itchysats/itchysats/pull/766/files
I think upload/download artifact is a good way of going about this! What I don't yet know is whether or not we can consolidate all binaries from a build matrix into one follow-up job.

Another thing that is currently not accounted for in our release process is doing releases from hotfix branches. Our automation for making a release there doesn't currently work because it always targets the master branch, regardless of which branch it was run from.


B Mb

Make Boron mb model, determine if permeation breeches entire B layer.

Folding into issue #11


Support type mapping when implementing an interface

👋🏼 @paulbakker @srinivasankavitha hope y'all are well!

We are in the process of migrating our monolith DGS app into a more federated architecture but using Gradle modules instead of services + a gateway. We want to have the organization think in a federated manner without going through the added headache of a router + registry when it isn't needed at this point in our GraphQL adoption journey. So far everything has worked pretty well but we recently hit a snag when trying to extend or return types across module boundaries.
Given two modules:
products-module
type Product implements Node {
  id: ID!
  cost: Number
}

reviews-module
type Review implements Node {
  id: ID!
  score: Number
}

extend type Product implements Node {
  id: ID!
  reviews: [Review]
}

When we write the resolver for review historically we would write it like this:
// in the review-module
@DgsComponent
class ProductResolver {
    @DgsData(parentType = DgsConstants.PRODUCT.TYPE_NAME)
    fun reviews(dfe: DgsDataFetchingEnvironment): CompletableFuture<List<Review>?> {
        val product = dfe.getSource<Product>()

        return fetchReviewsForProduct(product.id)
    }
}

As we have been extracting modules, this creates a class cast exception because the parent Product is from products-module so it has id and score which is incompatible with the reviews-module version which has id and an optional reviews.
Instead, we would like to restrict the contract across modules to be just the keys (aka @keys from federation) which is just the id from Node in this case.
In order to do this, we have a common Node interface which all shared types implement but dgs-codegen currently does not support sharing a common interface via type mapping. Instead, it creates a new Node type within each module so we can not down cast to the root Node. Instead, we would like to write a resolver like this:
// in the review-module
@DgsComponent
class ProductResolver {
    @DgsData(parentType = DgsConstants.PRODUCT.TYPE_NAME)
    fun reviews(dfe: DgsDataFetchingEnvironment): CompletableFuture<List<Review>?> {
        val node = dfe.getSource<Node>()

        return fetchReviewsForProduct(node.id)
    }
}

In order to do this, we need dgs-codegen to follow typeMappings in the config for types and interfaces which implement interfaces. This PR enables that 🎉

Thanks for the Pr contribution @jbaxleyiii. Will take a look.

It looks like other PRs are having the same build error for CI https://github.com/Netflix/dgs-codegen/actions/runs/3322640427/jobs/5491949624

It looks like other PRs are having the same build error for CI https://github.com/Netflix/dgs-codegen/actions/runs/3322640427/jobs/5491949624

Looking into it, will update once I have a fix, not sure what changed to affect this.

Just fixed: https://github.com/Netflix/dgs-codegen/pull/480

@srinivasankavitha I've rebased and pushed

@srinivasankavitha Thanks for the feedback! I've updated the PR with tests for both version of kotlin and the java generators

Looks great! Thanks for making the updates. Will create a release next week so I can add in a few more changes.

v5.6.0 released now


Implement indeterminate icon for checkboxes

Adds an indeterminate state icon to checkboxes

The icon is this SVG that Adam / Steve provided: https://gist.github.com/adamwathan/77588f8c72d8f21d1022253a38a4fb03
Icon can be customized using an indeterminateIcon property and respects the iconColor customization as well.
Closes #27 Closes #62 Closes #50 (thanks for these PRs as they were a good starting point!)

@swanson What's the reason for using [indeterminate] instead of the :indeterminate pseudo selector? I keep seeing both approaches in different articles online but can't find a good explanation for why you would use one vs. the other.

@swanson What's the reason for using [indeterminate] instead of the :indeterminate pseudo selector? I keep seeing both approaches in different articles online but can't find a good explanation for why you would use one vs. the other.

I'm not sure, but he pseudo selector does match the conventions of the project better and seems equally "official" to me: https://developer.mozilla.org/en-US/docs/Web/CSS/:indeterminate. The honest answer is that I was building off the other PRs and that's what they used :)

Haha gotcha! I have been working on this for the past little bit to see if there was an approach that didn't require a new key like indeterminateIcon and landed on this PR:
https://github.com/tailwindlabs/tailwindcss-custom-forms/pull/86
Going to go with that approach instead I think but really appreciate your work on this and also appreciate the nudge to just get this stupid feature done ❤


Error when using build-macos.sh

Appreciate this tool you've built! I'm in the process of trying to build the python wheels myself but get the following error when running build-macos.sh
ERROR: /Users/pablovela/0Dev/repos/mediapipe-silicon/mediapipe/mediapipe/modules/face_detection/BUILD:72:26: Executing genrule //mediapipe/modules/face_detection:face_detection_short_range_common_graph failed: (Aborted): bash failed: error executing command /bin/bash -c ... (remaining 1 argument(s) skipped)

Use --sandbox_debug to see verbose messages from the sandbox
dyld[21554]: symbol not found in flat namespace '_CFRelease'
/bin/bash: line 1: 21554 Abort trap: 6           bazel-out/host/bin/mediapipe/modules/face_detection/face_detection_short_range_common_graph_text_to_binary_graph --proto_source=mediapipe/modules/face_detection/face_detection_short_range_common.pbtxt --proto_output="bazel-out/darwin_arm64-opt/bin/mediapipe/modules/face_detection/face_detection_short_range_common.binarypb"
Target //mediapipe/modules/face_detection:face_detection_short_range_cpu failed to build
Use --verbose_failures to see the command lines of failed build steps.
INFO: Elapsed time: 94.490s, Critical Path: 72.13s
INFO: 1612 processes: 149 internal, 1463 darwin-sandbox.
FAILED: Build did NOT complete successfully

any insights would be greatly appreciated. Thanks again

Could you give me a bit more information about your system, xcode, compiler, python version and so on. Otherwise it is very difficult to investigate.

For sure
Macbook Pro M1 16 in OS 12.4 | System Firmware 7459.121.3
Python Version Python 3.9.13 using miniforge (conda)4.12.0
Xcode 13.4.1
Build version 13F100
cmake version 3.23.2
bazel 5.2.0
opencv@3  version 3.4.16_3
Seems like I'm getting a slightly different error now (I'd noticed that i'd forgotten to install xcode perviously as this is a new computer)
DEBUG: /private/var/tmp/_bazel_pablovela/310c415b7161d43f73f8e65119baefc4/external/org_tensorflow/third_party/repo.bzl:122:14:
Warning: skipping import of repository 'com_google_absl' because it already exists.
DEBUG: /private/var/tmp/_bazel_pablovela/310c415b7161d43f73f8e65119baefc4/external/org_tensorflow/third_party/repo.bzl:122:14:
Warning: skipping import of repository 'com_google_benchmark' because it already exists.
DEBUG: /private/var/tmp/_bazel_pablovela/310c415b7161d43f73f8e65119baefc4/external/org_tensorflow/third_party/repo.bzl:122:14:
Warning: skipping import of repository 'pybind11_bazel' because it already exists.
DEBUG: /private/var/tmp/_bazel_pablovela/310c415b7161d43f73f8e65119baefc4/external/org_tensorflow/third_party/repo.bzl:122:14:
Warning: skipping import of repository 'com_google_protobuf' because it already exists.
DEBUG: /private/var/tmp/_bazel_pablovela/310c415b7161d43f73f8e65119baefc4/external/org_tensorflow/third_party/repo.bzl:122:14:
Warning: skipping import of repository 'com_google_googletest' because it already exists.
DEBUG: /private/var/tmp/_bazel_pablovela/310c415b7161d43f73f8e65119baefc4/external/org_tensorflow/third_party/repo.bzl:122:14:
Warning: skipping import of repository 'com_github_gflags_gflags' because it already exists.
DEBUG: /private/var/tmp/_bazel_pablovela/310c415b7161d43f73f8e65119baefc4/external/org_tensorflow/third_party/repo.bzl:122:14:
Warning: skipping import of repository 'build_bazel_rules_apple' because it already exists.
DEBUG: /private/var/tmp/_bazel_pablovela/310c415b7161d43f73f8e65119baefc4/external/org_tensorflow/third_party/repo.bzl:122:14:
Warning: skipping import of repository 'build_bazel_rules_swift' because it already exists.
DEBUG: /private/var/tmp/_bazel_pablovela/310c415b7161d43f73f8e65119baefc4/external/org_tensorflow/third_party/repo.bzl:122:14:
Warning: skipping import of repository 'build_bazel_apple_support' because it already exists.
DEBUG: /private/var/tmp/_bazel_pablovela/310c415b7161d43f73f8e65119baefc4/external/org_tensorflow/third_party/repo.bzl:122:14:
Warning: skipping import of repository 'xctestrunner' because it already exists.
DEBUG: /private/var/tmp/_bazel_pablovela/310c415b7161d43f73f8e65119baefc4/external/org_tensorflow/third_party/repo.bzl:122:14:
Warning: skipping import of repository 'pybind11' because it already exists.
WARNING: /Users/pablovela/0Dev/repos/mediapipe-silicon/mediapipe/mediapipe/framework/tool/BUILD:182:24: in cc_library rule //mediapipe/framework/tool:field_data_cc_proto: target '//mediapipe/framework/tool:field_data_cc_proto' depends on deprecated target '@com_google_protobuf//:cc_wkt_protos': Only for backward compatibility. Do not use.
WARNING: /Users/pablovela/0Dev/repos/mediapipe-silicon/mediapipe/mediapipe/framework/BUILD:54:24: in cc_library rule //mediapipe/framework:calculator_cc_proto: target '//mediapipe/framework:calculator_cc_proto' depends on deprecated target '@com_google_protobuf//:cc_wkt_protos': Only for backward compatibility. Do not use.
INFO: Analyzed target //mediapipe/modules/face_detection:face_detection_short_range_cpu (25 packages loaded, 2054 targets configured).
INFO: Found 1 target...
ERROR: /private/var/tmp/_bazel_pablovela/310c415b7161d43f73f8e65119baefc4/external/zlib/BUILD.bazel:5:11: Compiling uncompr.c failed: I/O exception during sandboxed execution: com.google.devtools.build.lib.shell.ExecFailedException: java.io.IOException: Cannot run program "/var/tmp/_bazel_pablovela/install/71ed47cad951a20fff87381f54639763/xcode-locator": error=86, Bad CPU type in executable
Target //mediapipe/modules/face_detection:face_detection_short_range_cpu failed to build
Use --verbose_failures to see the command lines of failed build steps.
INFO: Elapsed time: 1.678s, Critical Path: 0.13s
INFO: 113 processes: 95 internal, 18 darwin-sandbox.
FAILED: Build did NOT complete successfully
build-macos.sh: line 46: pushd: dist: No such file or directory

So I ran softwareupdate --install-rosetta --agree-to-license (based on this)restarted my termial and also made sure to update my OS to the latest. Seems to have fixed things. Not really sure exactly why but hopefully it'll help someone else

It seems that xcode-locator is still a x64 binary and not compatible with M1. Thx for the update!


chore(open-payments): adding debug logs for client initialization & requests

Changes proposed in this pull request

Setting default log level to silent
Adding debug logs to client initialization
Adding debug logs when making requests & receiving responses

Example logs when GETting a wallet address, and making an incorrect grant request:
{
  "name": "Open Payments Client",
  "msg": "Loading key from file path: /Users/max/interledger/open-payments-test/private.key"
}
{
  "name": "Open Payments Client",
  "walletAddressUrl": "incorrect client",
  "keyId": "bde57813-19cb-437f-9e51-731aa9ebf333",
  "validateResponses": false,
  "useHttp": false,
  "requestTimeoutMs": 5000,
  "msg": "Created authenticated client"
}
{
  "name": "Open Payments Client",
  "method": "GET",
  "url": "https://ilp.rafiki.money/max_usd",
  "msg": "Sending request"
}
{
  "name": "Open Payments Client",
  "method": "GET",
  "url": "https://ilp.rafiki.money/max_usd",
  "body": {
    "id": "https://ilp.rafiki.money/max_usd",
    "publicName": "Max - Usd",
    "assetCode": "USD",
    "assetScale": 2,
    "authServer": "https://auth.rafiki.money",
    "resourceServer": "https://ilp.rafiki.money"
  },
  "status": 200,
  "msg": "Received response"
}
{
  "name": "Open Payments Client",
  "method": "POST",
  "url": "https://auth.rafiki.money/",
  "body": {
    "access_token": {
      "access": [
        {
          "type": "incoming-payment",
          "actions": [
            "read",
            "complete",
            "create"
          ]
        }
      ]
    },
    "client": "incorrect client"
  },
  "msg": "Sending request"
}
{
  "name": "Open Payments Client",
  "method": "POST",
  "url": "https://auth.rafiki.money/",
  "body": {
    "error": {
      "code": "invalid_client",
      "description": "could not determine client"
    }
  },
  "status": 400,
  "msg": "Received response"
}
{
  "name": "Open Payments Client",
  "method": "POST",
  "url": "https://auth.rafiki.money/",
  "status": 400,
  "description": "could not determine client",
  "code": "invalid_client",
  "msg": "Error making Open Payments POST request"
}

Context

Additional improvements after #482

Actions failing, cause:

https://github.com/pnpm/action-setup/issues/135


Verification Statements: Parse PDF contents into more usable format

From Dec. 2023 internal staff research. Have a way to parse PDF information from report into another, more usable format.

If I'm understanding this one correctly, it's referring to the PDF format of the verification statements that currently get uploaded through SWRS. We are unable to extract information from them so staff have to go through each one and cut/paste to excel/word to use!
Flag for potential MVP feature.

@patriciarussellCAS - exactly. This ties in with including verification done within the system so something to explore further.

Added Attention to business area tag so we can confirm what is required for verification, what does the statement look like, how big are these files? To flag for Munish to understand storage capacity for uploads.

Would be helpful to actually see a statement.

Closed as not technically possible. Can't parse PDFs accurately, technology does not yet exist for this.


Adding Persona

Adding persona for reference. Somehow my preview still shows markdown. Not sure why. @JasonMorgan @idealusrname, please adjust as needed.

please rename the file to something like: persona.md


Cannot change zip config ( node key file ) without remove docker volume

As there is return if the file is already present : https://github.com/luguslabs/archipel/blob/719335371d85dcdde5594d7bcba04c36a543d6e0/orchestrator/src/polkadot.js#L346
      // Check if node key file is already present
      if (fs.existsSync(`/service/keys/${config.polkadotNodeKeyFile}`)) {
        console.log(`File ${config.polkadotNodeKeyFile} is already in /service/key directory...`);
        return;
      }

The new node file key config is not taken and reserve-only on validator will not be able to connect to any centry nodes peers.
The solution was to remove the service volume manually.
If we keep this check and return may be add a env varibale to --overwrite-node-key-file when we really want to change the config without removing docker volumes.
( I see this problem when i change  from IP to DNS config during testing )

Fixed in #121.


Make sure we have some space left for typing

Fixes https://github.com/erkyrath/glkote/issues/53.
Inspired by https://github.com/garglk/garglk/blob/bde657b41e67f56e9f2bf58f48eef56ac002030f/garglk/wintext.cpp#L1102.

Handled by https://github.com/erkyrath/glkote/pull/58 .


Add feature: new property snowflake to Hashable class.

Summary

Checklist

[x] If code changes were made, then they have been tested

[x] I have updated the documentation to reflect the changes
[x] I have formatted the code properly by running task lint
[x] I have type-checked the code by running task pyright

[ ] This PR fixes an issue
[x] This PR adds something new (e.g. new method or parameters)
[ ] This PR is a breaking change (e.g. methods or parameters removed/renamed)
[ ] This PR is not a code change (e.g. documentation, README, ...)

Not entirely sold on this addition yet; what issue does it solve, as opposed to using f"{o.id}"/str(o.id) directly? In terms of performance, it's about the same as str(o.id), as both are function calls in the end.
The naming is slightly confusing, "snowflake" doesn't necessarily have to mean "string" in general.


Support catalog annation for how to use resolver path in the shared link

@karlcz can you please make a suggestion on the detail of the resolver config? Is this sufficient?
tag: tag:isrd.isi.edu,2018:resolver
  "catalog": 2
  "path": "/id/2/" or "/id/" for the default catalog?

@jrchudy We have already supported the default resolver, right? If so, then we should close this issue.


Fix convertKelvinToRankine method

There is currently a method called convertKelvinToRankine  that lives in /lib/convertKelvinToRankine.js.
It is incomplete and needs to be fixed!

Description:
The Rankine and Kelvin scales are both absolute scales used to measure temperature. This method takes an input of Kelvin and converts it into Rankine.
Acceptance Criteria:

Running yarn test convertKelvinToRankine results in tests passing.
You have written a skeleton method for someone else to work on.
You have written tests surrounding your skeleton method.
Running yarn lint does not print any errors to the console!
Optional: write one or two more tests surrounding the method you are solving to account for potential edge cases.

Please include the skeleton of a new method + an accompanying test for someone else to work on at the time of creating a pull request! A pull request will most likely be denied if it does not contain a skeleton method for someone else to work on! For more information, please read the Contributing Guide.
Thank you so much for your contribution!

I would like to take this #434

I will take this #450

Thanks @EvilEpicCoder !


How to use it?

Not actually an issue, lack of docs maybe. I just want to know how to use it?. I included the gem in my Gemfile as gem 'dotiw'. distance_of_time_in_words behaviour still the same.
I'd appreciate any response.
Best.

Did you restart your server after adding it? It overrides the default.

On 7 Feb 2015, at 07:20, Luis Alejandro Crespo Falco<EMAIL_ADDRESS>wrote:
Not actually an issue, lack of docs maybe. I just want to know how to use it?. I included the gem in my Gemfile as gem 'dotiw'. distance_of_time_in_words behaviour still the same.
I'd appreciate any response.
Best.
—
Reply to this email directly or view it on GitHub.

Thanks for your response.
Yep I restarted the server. Still displaying the simple distance_of_time_in_words. I'm using foreman for my sever, is there any problem with that?.

Can you reproduce this issue in a new application?

I'll give it a try and let you know!.

@luisincrespo How did it go?

Hey Ryan. Sorry I haven't gotten the time to reproduce the issue in a new
app. I'll be in touch when I do, you can close the issue for now thanks.
On 7:37pm, Fri, Feb 13, 2015 Ryan Bigg<EMAIL_ADDRESS>wrote:

@luisincrespo https://github.com/luisincrespo How did it go?
—
Reply to this email directly or view it on GitHub
https://github.com/radar/dotiw/issues/45#issuecomment-74349353.

What is the latest version of this gem pushed to rubygems?
https://rubygems.org/gems/dotiw
This seems quite old... is this the correct one?

I think you answered your own question.
Please use the version from GitHub until I push a new version.

On 15 Feb 2015, at 14:43, Giorgos<EMAIL_ADDRESS>wrote:
What is the latest version of this gem pushed to rubygems?
https://rubygems.org/gems/dotiw
This seems quite old... is this the correct one?
—
Reply to this email directly or view it on GitHub.


Update jms/serializer-uuid-bundle

Updates compatibility to support jms/serializer-bundle:^4.0
I'm running into symfony update issues while using the bundle. Seems it would require bumping the jms/serializer requirements in the serializer-uuid library too. (here https://github.com/mhujer/jms-serializer-uuid/pull/13)

Hi @p4veI @enumag I was thinking about deprecating this bundle, because all it does is that it registeres a handler in DI. See https://github.com/mhujer/jms-serializer-uuid-bundle/blob/master/src/DependencyInjection/config/services.yml
The whole bundle can be replaced with this in services.yaml:
services:
    Mhujer\JmsSerializer\Uuid\UuidSerializerHandler:
        tags:
            - { name: jms_serializer.subscribing_handler }

I already did similar thing in my fork of consistence-jms-serializer-symfony - just stopped using the bundle and I register the handler manually.
What do you think? Registering the handler directly should allow easier updates of JMS library without being blocked by neither of mhujer/jms-serializer-uuid or mhujer/jms-serializer-uuid-bundle.

Agreed, just add it into the readme of https://github.com/mhujer/jms-serializer-uuid. :-)

@enumag I will do it, just wanted to check with you that there isn't any other reason why the bundle may be useful.

Thanks for the info, I've replaced the library anyways, just bumped the deps for others, but you're right using this as a bundle is just an extra overhead. Thanks for your work tho!


Add Extra fields to GetGenomeByUUID payload

JIRA Ticket
https://www.ebi.ac.uk/panda/jira/browse/EA-1122
Changes
Add Extra the following fields to GetGenomeByUUID payload:

assembly.url_name
assembly.tol_id
assembly.provider_name (attribute)
assembly.provider_url (attribute)

Related PR
https://github.com/Ensembl/ensembl-metadata-service/pull/33

Mind the attributes keys may have changed in db since you were requested this feature.


[feature request] - include --verbose tag by default

greetings
it would be nice that whenever you install something on mac using homebrew (no matter if you are using "normal" installation or cask, etc.):
the terminal dumps out all installation data, similarly to what would happen with any linux package manager. this can be achieved with --verbose tag, as far as i am concerned. so an option would be adding it by default, and then adding some extra features
thank you so much :)

You can set HOMEBREW_VERBOSE in your terminal.
In future please always fill out the issue template.

dear @MikeMcQuaid

thank you so much for the time taken to review my contribution
I will try to go along with the homebrew contritbution standards next time and fill out the issue template
although we may sometimes have ideas that we may think to lead to positive improvements on a specific tool, not always we have to agree on everything

thank you so much for helping us making opensource world a better place

thank you so much for helping us making opensource world a better place

Thanks for the kind words @tmm2018!


Hotfix for Twig escaping / rendering issues in Drupal

Jira

http://vjira2:8080/browse/AC-67
http://vjira2:8080/browse/AC-65
http://vjira2:8080/browse/BDS-1988 --> especially this one.

Summary
Adds raw Twig filters to Bolt templates that output text or nested content (ex. {{ variable }}) as a hotfix to address several different Twig rendering issues flagged in http://vjira2:8080/browse/BDS-1988.
Details
This particular fix was a result of a day+ of debugging + hands on trial and error within Drupal Lab (using local Bolt Twig templates) to identify a viable solution for the Twig rendering issues.
Side note: while at least some of the templates being updated here haven't been confirmed to have been breaking on Academy (ex. Accordion and Forms), at least most of these have been -- hence the across the board update to try and address this vs playing whack-a-mole every single time this pops up.
Once things have settled down, I have some Drupal Lab config updates + workflow updates to PR back to Bolt that should help simplify the debugging process for issues like these (plus some potential ways to prevent this specific type of issue moving forward).
Screenshots of Drupal Lab running locally with the fix in place:

How to test

Sanity check on the Twig updates
Quick smoke test in PL to make sure things generally seem to be working fine
Confirm Twig rendering tests all pass

Closing out in lieu of #1729 1729