Hugo([ˈuɡu]) Sales([ˈsaləʃ])

Full stack developer / FOSS contributor

Bill of materials

Filter by category

64 skills 49 software 15 hardware & CAD

デモ Demos

Visrez Animated Loading Logo

Drawing No.

1 / 6

Scale

3:1

Weight

1.3KiB

Date

Projection

3 Overlapping <span> Overly complex structure Awkwardly sized viewBox

Original Logo

Visrez Animated Loading Logo

Drawing No.

2 / 6

Scale

3:1

Weight

7.5KiB

Date

Projection

(1.0, -0.707) (1.0, 0.707)
sin(45°) = 2 2 0.707

Cube :)

Visrez Animated Loading Logo

Drawing No.

3 / 6

Scale

3:1

Weight

1.3KiB

Date

Projection

(1.0, -0.707) (1.0, -0.707) * 0.6 (0.0, 0.0) (-1.0, -0.707)

We can represent the logo with the following commands

  1. - Size the viewBox to span from (-1.0, -1.0) to (1.0, 1.0)
  2. - Imagine a virtual starting point at (1.0, -0.707)
  3. - Move to 60% of that point
  4. - Draw an absolute line to (0.0, 0.0)
  5. - Draw a relative line to (-1.0, -0.707)
  6. - Draw a relative line to (1.0, -0.707)
  7. - et cet.

Authored Path

Visrez Animated Loading Logo

Drawing No.

4 / 6

Scale

3:1

Weight

1.3KiB

Date

Projection

<svg
  xmlns="http://www.w3.org/2000/svg"
  viewBox="-1 -1 2 2"       -- Define the coordinate system to go
                            -- from (-1, -1) with a width of (2, 2)
>
  <g style="scale: 0.707;"> -- Scale the overall shape down. Because
                            -- we move up (and down) by 2 * 0.707,
                            -- the overall height becomes 4 * 0.707 = 2.828,
                            -- so we scale down by 0.707 to get a height of 2
    <path
      d="M 0.6, -0.42       -- Move to 60% of (1, -O.707)
         L  0, 0            -- Draw a line to (0, 0)
         l -1, -0.707       -- Draw a relative line by moving (-1, -0.707)
         l  1, -0.707       -- Draw a relative line by moving ( 1, -0.707)
         l  1, 0.707        -- Draw a relative line by moving ( 1, 0.707)
         v  1               -- Draw a vertical line by moving (0, 1)
         L  0, 1            -- Draw a line by moving to (0, 1)
         l -1, -0.707       -- Draw a relative line by moving (-1, -0.707)
         v -O.2"            -- Draw a vertical line by moving (0, -0.2)
      pathLength="1"        -- Tell the renderer to treat the length
                            -- of the path as being 1
    />
  </g>
</svg>

Path Data

Visrez Animated Loading Logo

Drawing No.

5 / 6

Scale

3:1

Weight

1.3KiB

Date

Projection

Putting it all together

Visrez Animated Loading Logo

Drawing No.

6 / 6

Scale

3:1

Weight

1.3KiB

Date

Projection

Interactive Map Marker Editor

Drawing No.

1 / 6

Scale

1:1

Weight

45.7KiB

Date

Projection

Create marker Same marker, matches the pin order Create marker Same marker, matches the pin order

Marker Selector

Interactive Map Marker Editor

Drawing No.

2 / 6

Scale

1:1

Weight

45.7KiB

Date

Projection

Circles: drag to edit shape Crosses: display resulting constrained position Sidebar: internal parts of a marker

The whole interactive map is a React app, so it made sense to implement the editor as a regular component. That worked until I dragged a control point: every pointermove re-rendered a large subtree (solve contraints, preview SVG, update indicators, update sidebar), and the frame rate fell apart

My solution was to bypass React’s render loop. On drag, handlers mutate MarkerPart.controlPoints directly, then:

  1. Change circle / cross positions with CSS translate using DOM refs
  2. Each editor step is a class and has a corresponding imperativeReactComponent, a component that uses createRoot and provides a .update() method so we can update only what changed, imperatively
  3. Editor widgets that still need React (colors, text, icons) live on an external reactiveState. The UI subscribes with useSyncExternalStore, so React re-renders only when that store is notified, after a change is made

Marker Editor

Interactive Map Marker Editor

Drawing No.

3 / 6

Scale

1:1

Weight

45.7KiB

Date

Projection

Subpixel jitter Stable crosses

Preview Background

Interactive Map Marker Editor

Drawing No.

4 / 6

Scale

1:1

Weight

45.7KiB

Date

Projection

Composable Parts

Interactive Map Marker Editor

Drawing No.

5 / 6

Scale

1:1

Weight

45.7KiB

Date

Projection

Undoable Store

Interactive Map Marker Editor

Drawing No.

6 / 6

Scale

1:1

Weight

45.7KiB

Date

Projection

Space Builder · Add Tool

Drawing No.

1 / 6

Scale

1:1

Weight

27.4KiB

Date

Projection

Place Area

Space Builder · Add Tool

Drawing No.

2 / 6

Scale

1:1

Weight

27.4KiB

Date

Projection

Edit Parameters

Space Builder · Add Tool

Drawing No.

3 / 6

Scale

1:1

Weight

27.4KiB

Date

Projection

Layout Styles

Space Builder · Add Tool

Drawing No.

4 / 6

Scale

1:1

Weight

27.4KiB

Date

Projection

Tag offset

φ = θα r = min ( h 2 | cos φ | , w 2 | sin φ | ) offset = r+0.95

φ is the camera's angle relative to the area; r is the distance from center to the area's silhouette edge at that angle.

Capacity Badge

Space Builder · Add Tool

Drawing No.

5 / 6

Scale

1:1

Weight

27.4KiB

Date

Projection

Drag & Drop

Space Builder · Add Tool

Drawing No.

6 / 6

Scale

1:1

Weight

27.4KiB

Date

Projection

オープンソース Open Source

取り込み済 Merged
24
進行中 Open
18
終了 Closed
18

メンテナ Maintainer

GNU social v3

GNUsocial/gnu-social
Commits
~1200
Period
2021–2022

Led the GNU social v3 rewrite from 2021 to 2022 with ~1200 commits, funded by NLnet through the NGI0 Discovery programme. Ported the federated microblogging stack to Symfony 5, with an event driven and modular architecture, rewrote controllers and the posting form layer, expanded PHPUnit coverage, integrated PHPStan and dependency-hygiene tooling

GSoC応募者 GSoC applicant

Blender GSoC 2019

blender/blender
Period
2019

Proposed replacing Blender's Python OBJ, STL, and PLY importers/exporters with a shared C/C++ IO framework using memory-mapped files and optional parallelization. Developed patch D4575 demonstrating ~3× faster OBJ export performance and accepted into the GSoC programme.

Merged 24

withastro/compiler-rs#61 Fix wrong handling of combinators inside :global() (withastro/compiler-rs), opens in a new tab

Reworked Astro's compiler_rs's scope_css pass so combinators inside :global() hoist correctly, dropping the broken ParserOptions::css_modules path

· +786 −215 · 6 files
withastro/compiler-rs#58 JSX in object literal transforms incorrectly (withastro/compiler-rs), opens in a new tab

Fixed JSX-in-object-literal transforms in the Astro Rust compiler so object literals can contain JSX expressions (astro#17198).

· +86 −0 · 5 files
bootstrap-vue-next/bootstrap-vue-next#2040 feat(BPopover): Add close-on-hide prop to close the popover when it hides by clipping out of view (bootstrap-vue-next/bootstrap-vue-next), opens in a new tab

Added a close-on-hide prop to BPopover so popovers dismiss when clipping middleware hides them from view.

· +92 −7 · 4 files
react/react#27345 Add support for transition{run,start,cancel} events (react/react), opens in a new tab

Added React support for transitionrun, transitionstart, and transitioncancel events, with matching test coverage.

· +78 −1 · 6 files
xuoe/redux-observers#23 Refresh the state between observer runs (xuoe/redux-observers), opens in a new tab

Fixed chained Redux observers so each run sees the latest store state after upstream observers dispatch updates.

· +52 −3 · 2 files
DefinitelyTyped/DefinitelyTyped#69237 [leaflet] Forward given feature property type (DefinitelyTyped/DefinitelyTyped), opens in a new tab

Forwarded Leaflet's feature property generic through @types/leaflet so callers can type GeoJSON features precisely.

· +28 −13 · 3 files
DefinitelyTyped/DefinitelyTyped#69238 [leaflet] Turn on strictNullChecks and fix errors that arise (DefinitelyTyped/DefinitelyTyped), opens in a new tab

Enabled strictNullChecks on the Leaflet typings and fixed the resulting type errors.

· +22 −17 · 3 files
nonsequitur/inf-ruby#190 Add custom variable to specify a wrapper for the determined commands to launch a console (nonsequitur/inf-ruby), opens in a new tab

Added an inf-ruby variable to wrap the console command, making it easy to launch Ruby inside Docker.

· +24 −5 · 2 files
DefinitelyTyped/DefinitelyTyped#62487 [leaflet] Update to leaflet 1.9.1 (DefinitelyTyped/DefinitelyTyped), opens in a new tab

Brought @types/leaflet up to Leaflet 1.9.1.

· +17 −2 · 1 files
fmtlib/fmt#4107 Add n specifier for tuple and pair (fmtlib/fmt), opens in a new tab

Added an n format specifier for std::tuple and std::pair in {fmt}, following the tuple-formatting design from #4090.

· +11 −1 · 2 files
bootstrap-vue-next/bootstrap-vue-next#1903 feat(BOffcanvas): allow specifying a width (bootstrap-vue-next/bootstrap-vue-next), opens in a new tab

Added a width prop to BOffcanvas so sidebar sizing matches bootstrap-vue migration expectations.

· +7 −0 · 2 files
bootstrap-vue-next/bootstrap-vue-next#1892 feat(BInput): Alias BFormInput to BInput (bootstrap-vue-next/bootstrap-vue-next), opens in a new tab

Aliased BFormInput as BInput for bootstrap-vue compatibility.

· +2 −0 · 2 files
DefinitelyTyped/DefinitelyTyped#61339 Update Leaflet declaration to include missing methods, as of version 1.8 (DefinitelyTyped/DefinitelyTyped), opens in a new tab

Filled in missing Leaflet methods in the DefinitelyTyped declarations for v1.8.

lstrojny/functional-php#243 Add entries and from_entries, similar to JavaScript's Object.entries and Object.fromEntries (lstrojny/functional-php), opens in a new tab

Added entries and from_entries helpers to functional-php, mirroring JavaScript's Object.entries / Object.fromEntries.

somnambulist-tech/cte-builder#3 Update to Doctrine 3 and beberlei/assert 3.3 (somnambulist-tech/cte-builder), opens in a new tab

Upgraded cte-builder to Doctrine 3 and beberlei/assert 3.3.

vivien/i3blocks-contrib#311 Add option to memory to allow not showing the percentage (vivien/i3blocks-contrib), opens in a new tab

Added an i3blocks memory option to hide the percentage label while keeping the usage bar.

callstack/masked-view#101 Update Android Tools gradle version (callstack/masked-view), opens in a new tab

Bumped Android Gradle tooling in masked-view to unblock react-native-gesture-handler builds.

software-mansion/react-native-reanimated#1666 Update Android Tools gradle version (software-mansion/react-native-reanimated), opens in a new tab

Bumped Android Gradle tooling in Reanimated to unblock react-native-gesture-handler builds.

assimp/assimp#3555 Fix build error (assimp/assimp), opens in a new tab

Fix a spurious Assimp warning tracked in assimp#3222.

symfony/symfony#37371 [Translation] Add support for calling trans with ICU formatted messages (symfony/symfony), opens in a new tab

Extended Symfony's Translator so trans() accepts ICU-formatted messages directly (symfony#37228).

lstrojny/functional-php#215 Add ary function which ignores arguments over the supplied number (lstrojny/functional-php), opens in a new tab

Added ary, a helper that trims excess arguments before invoking a callable.

lstrojny/functional-php#218 Fix tests (lstrojny/functional-php), opens in a new tab

Repaired functional-php's PHPUnit suite after upstream dependency and PHP version drift.

melpa/melpa#6759 Add php-align recipe (melpa/melpa), opens in a new tab

Packaged php-align for MELPA with a recipe covering its PHP alignment rules.

th3rdwave/react-native-safe-area-context#173 Update Android Tools gradle version (th3rdwave/react-native-safe-area-context), opens in a new tab

Updated react-native-safe-area-context for current React Native API compatibility.

Open 18

git/git rebase: add --[no-]edit to --continue (git/git), opens in a new tab

Add git rebase --continue --no-edit and rebase.noEdit to skip opening $EDITOR after resolving conflicts, with --edit to override the config for a single continue.

· +126 −7 · 5 files
pear/XML_XRD#4 Switch to PSR-4 with XRD namespace (pear/XML_XRD), opens in a new tab

Modernized XML_XRD with PSR-4 autoloading under an XRD namespace, replacing legacy PEAR layout.

· +346 −314 · 25 files
Leaflet/Leaflet#9055 Add setInteractive (Leaflet/Leaflet), opens in a new tab

Added setInteractive on Leaflet layers so interactivity can be toggled after creation.

· +465 −20 · 10 files
svg/svgo#2194 feat: make optimize return the AST and export parseSvg for browser bundle (svg/svgo), opens in a new tab

Made SVGO's optimize return the AST and exported parseSvg in the browser bundle to avoid double parsing.

· +49 −1 · 3 files
pear/XML_XRD#3 Update tests to PHPUnit 9.5 (pear/XML_XRD), opens in a new tab

Updated XML_XRD tests to PHPUnit 9.5 as part of broader PEAR modernization.

· +90 −108 · 10 files
Leaflet/Leaflet#9462 Allow controls to use the 'button' role rather than requiring an <a> element (Leaflet/Leaflet), opens in a new tab

Let Leaflet controls use role="button" instead of requiring anchor elements in control markup.

· +29 −13 · 1 files
aspiers/stow#68 Add option to use absolute paths (aspiers/stow), opens in a new tab

Added a GNU Stow option to emit absolute symlinks when packages must resolve outside the stow tree.

· +28 −5 · 2 files
sgruhier/capistrano-db-tasks#138 Add support for specifying extra command line options during database dump and load (sgruhier/capistrano-db-tasks), opens in a new tab

Let capistrano-db-tasks pass extra mysqldump flags—needed for schemas where a non-unique key follows the primary key.

· +24 −5 · 5 files
pear/XML_XRD#2 Fix deprecation warning caused by missing return types (pear/XML_XRD), opens in a new tab

Added missing return types on XML_XRD to clear PHP 8 deprecation warnings.

· +7 −7 · 2 files
domdfcoding/whiptail#45 Ensure negative height is not given to whiptail (domdfcoding/whiptail), opens in a new tab

Clamped negative whiptail menu heights that broke item rendering from v0.52.22 onward.

· +1 −1 · 1 files
marwano/whiptail#2 Ensure negative height is not given to whiptail (marwano/whiptail), opens in a new tab

Clamped negative whiptail menu heights that broke item rendering from v0.52.22 onward.

· +1 −1 · 1 files
lstrojny/functional-php#244 Add cartesian_product and InvalidArgumentException::assertStringable (lstrojny/functional-php), opens in a new tab

Added cartesian_product and InvalidArgumentException::assertStringable to functional-php.

retejs/keyboard-plugin#3 Add copy and paste functionality (retejs/keyboard-plugin), opens in a new tab

Added copy/paste shortcuts to the Rete.js keyboard plugin for moving node selections between editor states.

retejs/keyboard-plugin#2 Spawn context menu at mouse position, clamped to viewport (retejs/keyboard-plugin), opens in a new tab

Opened the Rete.js context menu at the pointer and clamped it to the viewport edges.

retejs/keyboard-plugin#1 Switch from event.code to event.key, to allow for remapped layouts (retejs/keyboard-plugin), opens in a new tab

Switched Rete.js shortcuts from event.code to event.key so remapped and non-QWERTY layouts work.

vivien/i3blocks-contrib#310 Add redshift block to display the current screen temperature (vivien/i3blocks-contrib), opens in a new tab

Shipped a redshift i3blocks module that shows the current screen colour temperature.

Bumblebee-Project/bbswitch bbswitch (Bumblebee-Project/bbswitch), opens in a new tab

Fixed bbswitch kernel-module packaging and build issues for NVIDIA GPU power switching in a personal fork.

gnu/librefm gnufm (gnu/librefm), opens in a new tab

Fixed and extended GNU FM (Libre.fm) PHP code in a fork of the Savannah-hosted music platform.

Closed 18

gaoxiaoliangz/react-scoped-css#74 Update dependencies so it works with Webpack 5 and CRACO 7 (gaoxiaoliangz/react-scoped-css), opens in a new tab

Updated react-scoped-css for Webpack 5 and CRACO 7 without deprecated loader APIs. Closed as implemented by the maintainer

· +10329 −11380 · 52 files
PaulLeCam/react-leaflet#1092 Allow customizing which class gets used for LayersControl (PaulLeCam/react-leaflet), opens in a new tab

Let React Leaflet's LayersControl instantiate a custom L.Control subclass—needed for image-based layer toggles.

· +310 −26 · 4 files
clauderic/dnd-kit#1322 Pass DND Context to sorting strategy (clauderic/dnd-kit), opens in a new tab

Passed drag-and-drop context into dnd-kit sorting strategies so custom sorters can read sensors and collisions.

· +33 −15 · 3 files
clauderic/dnd-kit#1321 Add initial and delta to pointerCoordinates in collisionDetection (clauderic/dnd-kit), opens in a new tab

Added initial and delta pointer coordinates to dnd-kit collision detection for frame-to-frame movement.

· +23 −3 · 4 files
DefinitelyTyped/DefinitelyTyped#66805 [leaflet] Support optional altitude in LatLngTuple (DefinitelyTyped/DefinitelyTyped), opens in a new tab

Allowed optional altitude in Leaflet's LatLngTuple typing.

· +16 −4 · 2 files
scylladb/seastar#681 Fix table in README (scylladb/seastar), opens in a new tab

Fixed a malformed Markdown table in the Seastar README.

· +6 −6 · 1 files
PaulLeCam/react-leaflet#1086 Support dynamic changing of Marker interactive property (PaulLeCam/react-leaflet), opens in a new tab

Synced Leaflet marker interactive when the React Leaflet prop changes after mount.

· +10 −0 · 1 files
Codeception/Codeception#6316 Add explicit return types to methods overriding Symfony methods, silencing deprecation warnings (Codeception/Codeception), opens in a new tab

Added explicit return types on Symfony overrides in Codeception to silence Symfony 5.4 deprecations.

getopt-php/getopt-php#172 Update type signatures to avoid warnings in PHP 8.1 (getopt-php/getopt-php), opens in a new tab

Updated getopt-php type signatures for PHP 8.1 and PHPStan cleanliness.

software-mansion/react-native-screens#792 Update Android Tools gralde version (software-mansion/react-native-screens), opens in a new tab

Bumped Android Gradle tooling in react-native-screens to unblock gesture-handler builds.

react-native-community/react-native-template-typescript#179 Update Android Tools gradle version (react-native-community/react-native-template-typescript), opens in a new tab

Bumped Android Gradle tooling in the TypeScript RN template to fix Groovy/Java7 build failures.

symfony/symfony-docs#13875 [Translator] Document support for calling 'trans' with ICU formatted messages (symfony/symfony-docs), opens in a new tab

Documented Symfony Translator ICU message support alongside symfony#37371.

vivien/i3blocks-contrib#309 Add aur-update2, a simple pikaur based update checker (vivien/i3blocks-contrib), opens in a new tab

Added an aur-update2 i3blocks module that surfaces pending AUR upgrades via pikaur.

PHP-CS-Fixer/PHP-CS-Fixer#4889 Add option to allow single line functions (in the braces category) (PHP-CS-Fixer/PHP-CS-Fixer), opens in a new tab

Added a PHP CS Fixer option to keep single-line autogenerated getters and setters.

includeos/IncludeOS#1842 Fixed small errors in clean build (includeos/IncludeOS), opens in a new tab

Fixed IncludeOS build-system issues blocking a clean CI build.

OVYA/php-cs-fixer#11 Pull request #11 (OVYA/php-cs-fixer), opens in a new tab

Forked PHP CS Fixer with custom rules and configuration for project-specific formatting.

git/git Allow passing a new -p'/--parents' option to `git-mv' (git/git), opens in a new tab

Allow passing a new -p'/--parents' option to git-mv' making it so missing directories in the given target path get created if they don't exist. This allows running git mv -p foo bar/quux/' to first create the bar/' and bar/quux/' directories if they don't exist, and then move foo' to bar/quux/foo'.

git/git Add restore.defaultDestination option (git/git), opens in a new tab

Argued for restore.defaultDestination on the Git mailing list (mirrored as git/git#1467) so users control where restored files land during recovery.

This page works best when viewed on a desktop.