[Blog Contribution] Tracing your microservices made easy with MicroProfile Telemetry 1.0

MicroProfile.io WordPress
Social Media Description

[ ]  280 max chararters includes the author's Twitter or Github ID & blog link
[ ]  Yasmin Aumeeruddy introduces MicroProfile Telemetry (and OpenTelemetry) with a short demo.

Design Card  (for MicroProfile designer)

[ ]  Minimal requirements highlight the MicroProfiler & the title of the blog

Notes
To help with everything

@lauracowen Could you please write a tweet for this blog post and I will push it on MP SM

@rstjames There's one in the original comment - it's just more concise than usual :)

Yasmin Aumeeruddy introduces MicroProfile Telemetry (and OpenTelemetry) with a short demo.

it is live and will be pushed on SM


Top bar broken on mobile (responsive issue)

I'd remove the "start a collective" on Mobile if you need room.

Fixed in issue referenced.


Integrate Immersive Movement Into VRTK

As the title says, I'm looking to integrate Immersive Movement into the VRTK as a seperate artifical locomotion option.

Before we integrate it, we should look at the common similarities between immersive movement and arm swinger.
Also, at present VRTK has a concept of how to deal with player presence, so does ArmSwinger and so does Immersive Movement.
I think it would be a good idea to ensure there is 1 consistent player presence concept that is compatible with any locomotion system.
I'm going to raise a ticket with some ideas, I'll link to the ticket when i've raised it.

https://github.com/thestonefox/SteamVR_Unity_Toolkit/issues/603


[BUG] [SM] SM fails with an ultra lite configuration w/single IAM policy definition

(already fixed, opening ticket for record keeping).
Required Basic Info

Accelerator Version:  v1.2.3
Install Type: ALL
Install Branch: ALL
Upgrade from version: N/A
Which State did the Main State Machine Fail in: Phase 1

Describe the bug
We found an issue when creating an ultra-lite configuration, when a policy file is used by multiple accounts, we require the policy to be referenced multiple times in any one account or the SM fails.
Failure Info

What error messages have you identified, if any:

SyntaxError: Unexpected token u in JSON at position 0,
    at JSON.parse (<anonymous>)
    at createIamPolicy (/app/src/deployments/cdk/src/common/iam-assets.ts:33:34)
   at new IamAssets (/app/src/deployments/cdk/src/common/iam-assets.ts:174:11)
   at createIamAssets (/app/src/deployments/cdk/src/apps/phase-1.ts:361:25)
    at deploy (/app/src/deployments/cdk/src/apps/phase-1.ts:386:11)
    at processTicksAndRejections (internal/process/task_queues.js:97:5)
    at Object.deploy (/app/src/deployments/cdk/src/app.ts:70:3)
    at main (/app/src/deployments/cdk/cdk.ts:36:16)

Using an ultra-light config with most things stripped out.
Expected behavior
SM fails

Shipping in v1.2.4

Shipping in v1.2.4


UIViewPropertyAnimator Category

I want to add SaveTheDot game code using iOS 10's UIViewPropertyAnimator, where should I add this? or to create a sub category in UI ?

@naeemshaikh90 can you send me the link so I can take a look at it?

@lfarah https://github.com/JakeLin/SaveTheDot/issues

Hmmmm, unfortunately SaveTheDot is not a library.
It would fit better into @dkhamsing's Open source iOS apps list and I believe it is already there.

That would be better.


chore: release 1.2.201

:robot: I have created a release *beep* *boop*
1.2.201 (2023-02-16)
Bug Fixes

dismiss: allow --namespace or --release if git repo present (68f0f14)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/werf/werf/releases/tag/v1.2.201 :sunflower:


Tweak behaviors of build and release CI workflows

Description
Hello! With this PR I've tweaked some settings that @xylar and I have determined work out better in CI workflows on other repos. I've made the same changes here. These changes include:

cancel_others is now set to false by default, which should make it easier to decipher if a bug is isolated to a specific version of python via CI
All references to mamba/ Mambaforge have been removed and/or changed to conda / Miniforge3
The timeout for the pre-commit job has been upped to 5 minutes (we were having some timeout issues during the caching step)

Checklist

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] My changes generate no new warnings
[x] Any dependent changes have been merged and published in downstream modules

@altheaden, it looks like cancel others is still on here. Do you want to change that, too? Then, we can ask @tomvothecoder and @chengzhuzhang what they think.

@xylar Whoops, definitely a mistake, thanks for catching that! Fixed.

One more note, if you're happy with these changes, @altheaden will make similar ones for zppy and zstash.

@altheaden Thanks for working on this!
@xylar From visual inspection alone, these changes seem fine for zppy and zstash too, thanks.

Great, let's make sure @tomvothecoder agrees since he wrote these workflows in the first place.

Hi @altheaden and @xylar, these changes look reasonable to me. I'm happy to have this PR merged. Thanks @altheaden!

@chengzhuzhang, it sounds like you can merge then if you're also happy.

It looks good to me. Thank you for this update @altheaden @xylar !


Cannot Launch World - Error: The provided Item type must be in the array of types defined by the game system

Updated to v9 Release 245 and received this error when attempting to launch a Quest game.  Presently, other systems are not causing an issue.
See attached screenshots for errors

I’ll take a look at it here shortly, but It may have to wait until Monday

Are you on the most recent version of the quest system?

I just did a fresh deployment to a fresh install of foundry, and I have no errors. Can you please provide your Quest Version and any steps to reproduce the error?  Do you happen to be on the frge?

Quest v0.1.4 as current per update in Foundry.
I upgraded to the new 245 stable deployment of Foundry v9 with an existing updated Quest system and world already in place.  After the upgrade, upon attempting to launch the existing world, I received that error.
I am going to backup my world, uninstall the game system, reinstall, and see if that works.  If not, I will try a fresh install of Foundry.

If a reinstall of the system doesn't fix the issue send me over a copy of your world and I will see if I can find what's going on

So I created a new world to test and it works fine.  I'm going to manually migrate the old world back over piece by piece to see where it issue is (if there will even be one).  I'd say we can close this.

After the last module update to 1.8, this same issue has returned for my existing world.
If I create a new world from scratch, it isn't a problem, but there appears to be an issue with breaking existing worlds with module updates.

Can you send me a copy of your world?

Nothing related to Items has changed in the last few releases.  I'm a bit at a loss why you've had this issue after two different updates

Do you happen to have your user data folder setup to auto backup using something like dropbox or google drive?

I don't have anything auto-backing up, but it's probably a good idea.
I sent the world.json file via Discord.


Albatross-tls-endpoint

Hi, thanks for your work on albatross, it's very helpful!
I've not updated albatross for a while until last week. I have now an issue starting albatross-tls-endpoint 1.5.3 (the daemon is started with systemd):
# albatross-tls-endpoint --version
version v1.5.3 protocol version 5
# albatross-tls-endpoint --port 1025 -v -v -v --verbosity=debug cacert.pem server.pem server.key
albatross-tls-endpoint: internal error, uncaught exception:
                        Unix.Unix_error(Unix.EINVAL, "bind", "")

This was the commands I used to have but something may have changed recently. With strace I have the following additional information:
...
stat("cacert.pem", {st_mode=S_IFREG|0644, st_size=396, ...}) = 0
stat("server.pem", {st_mode=S_IFREG|0644, st_size=518, ...}) = 0
stat("server.key", {st_mode=S_IFREG|0400, st_size=119, ...}) = 0
rt_sigaction(SIGPIPE, {sa_handler=SIG_IGN, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7ff7a2edb420}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
socket(AF_INET6, SOCK_STREAM, IPPROTO_IP) = 5
fcntl(5, F_GETFD)                       = 0
fcntl(5, F_SETFD, FD_CLOEXEC)           = 0
setsockopt(5, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0
setsockopt(5, SOL_IPV6, IPV6_V6ONLY, [0], 4) = 0
bind(5, {sa_family=AF_INET, sin_port=htons(1025), sin_addr=inet_addr("<IP_ADDRESS>")}, 16) = -1 EINVAL (Invalid argument)
write(2, "albatross-tls-endpoint: internal"..., 150albatross-tls-endpoint: internal error, uncaught exception:
                        Unix.Unix_error(Unix.EINVAL, "bind", "")

) = 150
rt_sigaction(SIGCHLD, {sa_handler=0x5652b8785300, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7ff7a2edb420}, NULL, 8) = 0
rt_sigaction(SIGSEGV, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7ff7a2edb420}, NULL, 8) = 0
sigaltstack({ss_sp=0x28, ss_flags=SS_DISABLE, ss_size=140735027670208}, {ss_sp=0x5652b945eb50, ss_flags=0, ss_size=8192}) = 0
exit_group(125)                         = ?
+++ exited with 125 +++

The manual page for bind states that EINVAL is returned when the port is already binded (I checked that with netstat -talp and it's not), or addrlen is wrong, or addr is not a valid address for this ocket's domain.. The addrlen is 16 which suggest that bind try to use an IPv6 whereas sin_addr is an IPv4. Is there a way to specify which IP type address I want to use?

Thank you for your report.
I found the relevant code:
https://github.com/roburio/albatross/blob/9fee7f7c082c766fd7505dee522d026d76987e1c/src/vmm_lwt.ml#L15-L23
The documentation for Unix.inet_addr_any says
A special IPv4 address, for use only with [bind], representing
all the Internet addresses that the host machine possesses.

So it seems we should maybe use Unix.inet6_addr_any instead. In the meantime I think you should be able to use systemd socket activation (if you use systemd). You should have a sample .service and .socket file installed in /usr/share/doc/albatross/ I believe.
It's a good point that it is currently not possible to specify what address to listen on.

@reynir thanks for the fix, indeed a command line option to specify the listen address for the tls endpoint would be nice.

Fixed by #144 #147


Hydration Support

For SSR applications, it's a common case where some data is fetched on the server and then passed to client components as props.
I see that some API of this library is inspired by Jotai. It has a dedicated docs about hydration. However, I can't find how it can be done with this library. Only something like this (which is obviously has Flash-of-Content issue):
'use client'

import { RegistryContext, Rx, useRx } from '@effect-rx/rx-react'
import { useContext, useEffect } from 'react'

const valueRx = Rx.make('value')

export function ClientComponent({ valueFromServer }: { valueFromServer: string }) {
  const registry = useContext(RegistryContext)
  const [value, setValue] = useRx(valueRx)

  useEffect(() => {
    registry.set(valueRx, value)
  }, [value])

  return
{value}

}

Is this something similar to a Jotai atom hydration at the moment?

You can create a Registry with some initial values. Here is the test: https://github.com/tim-smart/effect-rx/blob/main/packages/rx/test/Rx.test.ts#L620

Yes, I've been trying to do this (with RegistryConvext). However, having the following code:
'use client'

import { Registry, RegistryContext, Rx, useRxValue } from '@effect-rx/rx-react'

const valueRx = Rx.make(10)

export function HomeClient({ valueFromServer }: { valueFromServer: number }) {
  const registry = Registry.make()

  return (
    <RegistryContext.Provider value={registry}>
      <Comp />
    </RegistryContext.Provider>
  )
}

function Comp() {
  const value = useRxValue(valueRx)

  return
{value}

}

I get TypeError: Illegal invocation (this line of code). Including RegistryContext causes it.
There is another issue: DX. When we place a Provider, we can only Consume it from other components. So we have to create another component just to accomplish it. Moreover, should we memo the registry context value?
// Server Component
export default async function Home() {
  const valueFromServer = await Promise.resolve(1000)

  return <HomeClient valueFromServer={valueFromServer}/>
}

// Client Provider
'use client'

import { Registry, RegistryContext, Rx, useRxValue } from '@effect-rx/rx-react'

const valueRx = Rx.make(10)

export function HomeProvider({ valueFromServer, children }: { valueFromServer: number, children: ReactNode }) {
  const registry = useMemo(() => Registry.make({ initialValues: [Rx.initialValue(valueRx, valueFromServer)] }), [valueFromServer])

  return <RegistryContext.Provider>{children}</RegistryContext.Provider>
}

// Client Component
'use client'

export function HomeClient() {
  const value = useRxValue(valueRx)
  return
{value}

}

I have added a useRxInitialValues hook. I haven't tested it, but it should do what you want.

Thank you for responding quickly!
I tested this function, however, it raises hydration mismatch error:
'use client'

import { Rx, useRxInitialValues, useRxValue } from '@effect-rx/rx-react'
import { atom, useAtomValue } from 'jotai'
import { useHydrateAtoms } from 'jotai/utils'

const valueRx = Rx.make('client')

export function PageClient({ serverValue }: { serverValue: string }) {
  useRxInitialValues([Rx.initialValue(valueRx, serverValue)])

  const value = useRxValue(valueRx)

  return
{value}

}

// Jotai alternative to check behaviour

const valueAtom = atom('client')

export function JotaiPageClient({ serverValue }: { serverValue: string }) {
  useHydrateAtoms([[valueAtom, serverValue]])

  const value = useAtomValue(valueAtom)

  return
{value}

}

It has the Flash-of-Content while rendering. So first I see 'client' and then it quickly switches to 'serverValue'.
Warning: Text content did not match. Server: "client" Client: "serverValue"

Does using const valueRx = Rx.make('client').pipe(Rx.keepAlive) work?

I can't reproduce with the following:


Investigate the breakdown of the sleepy_boi test

Happened in #159. There's no obvious sensible reason why it changed. I should not have had to comment out that assert from snooze().

Is postgrestd using one of Postgres' functions for the time?  I don't recall which function it comes from, but its SQL now() function is fixed at transaction start.  I think the SQL timeofday() actually ticks.

What's even weirder now is that it seems to even run the assert if it is commented out...? It's possible something is happening due to syn altering the line breaks or formatting. I should investigate this more closely sometime soon.


The k3d repo link was broken

The maintainer of Linkerd2 advice me to try to tilt because it works well for them. And I like tilt, so I'm trying to learn about it.

The link of k3d-local repo was broken, so need to be fix
And the way of install needs more

So I added the choice of Manually, and I believe that makes sense more than the only brew on Linux

Close due to PR #65


Tensor view should have hover preview for values just like 2D vie

Essentially this:

but on the tensor view
Also worth noting that we may want to merge tensor & 2D image view at some point. But this may be longer out.

+1 on @yilun-wu's comment
This feature would be a game changer for me. Any pointers appreciated.


Create ru_ru.json

@Telezhka-the-First was that intentional? If not I can copy the translations over manually

@Telezhka-the-First was that intentional? If not I can copy the translations over manually

I just noticed that this mod is for Fabric, while I use Forge. Translations are correct. Yes, please, re-commit the translations.

Alright thanks for them anyways! I'll get them committed tomorrow

Alright thanks for them anyways! I'll get them committed tomorrow

Alright thanks for them anyways! I'll get them committed tomorrow

😃


[Suggestion] [1.19.3] Locking at entities

Describe your feature
When pressed a keybind player's croshair will be locked at which enetity is there, like how it works in souls games, camera automatically follows the entity when moving.

Sorry for the late response. I looked at some gameplay footage and came to the conclusion that this feature is not really a suitable for shoulder surfing, Instead, this would be more of a feature for BetterThirdPerson, which can be used in conjunction with shoulder surfing.


[testing] updating tests to use TestRunner framework

Issues: Tests are slow to execute because they directly rely on Kafka/Zookeeper.
Changes: Migrate some tests to use the TestRunner framework, so they only depend on in-memory systems. There are still some tests that rely on Kafka/Zookeeper that were harder to migrate to the TestRunner, so I didn't update those yet.
Tests: ./gradlew build
API changes: N/A

Please Update the description of PR to match Samza SEP https://cwiki.apache.org/confluence/display/SAMZA/SEP-25%3A+PR+Title+And+Description+Guidelines and merge


Adjust App handling workflow for Resident Tasks

subtasks

[ ] Scale (up/down)
[ ] Restart
[ ] Change config
[ ] Task Lost

The essence of this is that the deployment logic has been designed with "Task = Launched Task" in mind. After our changes, a Task might only represent a reservation. Therefore you have to filter unlaunched tasks from the logic.

Task Lost handling is tracked in #3368


Two fields in one cell

Hello. I have a simple question regarding the row editing. Is it possible to add more than one input in one cell in the grid? Like so:

Yes, editTemplate returns jQuery object, so it could be as many elements as you need.


Drop the -rs suffix or rename library

-rs seems to be better for library bindings. We need to be confident in forging our own identity.

I believe that as long as we are just "gfx" on crates.io, we are good. Github project name starts to be less important, and I'd be happy to just keep it gfx-rs.

Ok, no worries, sound reasoning.


[XR] Lighting Estimation Feature

https://immersive-web.github.io/lighting-estimation/

I've started a branch:
https://github.com/brianzinn/Babylon.js/commit/ebd1f40ac64f4acbd924b9d3486c4c181bd0a3e6
I'll work to get the getReflectionCubeMap and LightingEstimate (primaryLightDirection/primaryLightIntensity and sphericalHarmonicsCoefficients).
I will get the XR feature to the point of making the data available.  One thing to note is that I think the babylon SphericalHarmonics is to order^2 and I think it would need to support order ^3 with the 27 element array, but I haven't checked thoroughly.


[TRI-1171] Add to docs: note about https://github.com/nextauthjs/next-auth/issues/7660

Users on Next.js 13.4.4 will run into the error linked in the title, we should add this to the docs in the Next.js platform guide
TRI-1171

hey @ericallam is this looks good to you ?

Or I need to change a bit ?


The resource group of the new VM/Storage account doesn't show in the list when deleting the resource group

OS: Win10/M1
Azure Resource Extension Build Version: 20220523.7
Repro Steps:

Make sure the resource groups by "Resource Type".
Create a VM/Storage account.
F1 -> Azure: Delete Resource Group.
Check whether the resource group of the new VM/Storage account shows in the list.

Expect:
The resource group of the new VM/Storage account shows in the list.
Actual:
The resource group of the new VM/Storage account doesn't show in the list.
More Info:
This issue does not reproduce for App Service and Function App.

Fixed by v2

This issue does not reproduce on the resource groups extension build 20230405.7.


Should we have an notification after each edit...?

As of today, I get this notification a lot when working in the grid:

It shows each time a save some changes on a DTGE-control, and they stay for a while so sometimes I have 2-3 of them at the same time.
I'm wondering if this is really needed? No other editor in the grid is reminding the editor to save the content?

Probably a side effect from saving the controls as blueprints. Should definitely be removed!

I don’t really understand the “blue prints”-part :) But if you have some pointers I’d be happy to help out if you want to.
Cheers!

Hi @enkelmedia
It's coming from #176, I think the notification is coming from the contentEditingHelper in https://github.com/skttl/umbraco-doc-type-grid-editor/blob/develop/src/Our.Umbraco.DocTypeGridEditor/Web/UI/App_Plugins/DocTypeGridEditor/Js/doctypegrideditor.controllers.js#L278. Need to investigate :)

Fixed in
09acdd3


SNK #117 kubecluster 4 redirected to another vm

Coverage remained the same at 47.45% when pulling 062102d0c4d0f9f743f51dfab7d86296b8e8bc7c on amarcine:master into 4cc18425e1e813be7f3c116121fc29d23b66690c on contiv:master.


Able to host in our own GCP Org?

Looking at what you are offering here & think it's wonderful. Kudos for the level of detail & knowledge sharing put in across the board - not unnoticed!
I am Dir of Data Science & MLops with an org committed to automating & proactively responding to data incidents.
My question is, rather than joining DQOPS GCP resources, are we able to set up shop within our organization? Meaning not just the front end, but everything??
I haven't been able to find anything speaking to that on the resources you have share - but if that's a possibility I'd love to learn more.
I'm guessing the initial reaching is something like, it's not just one service or tool it's integrated widely across the board. Compute, messaging, hosting etc...which would be understandable certainly.
That said, this is what we do on a daily basis (manage massive data & provide that to customers end-to-end. I'm not worried about handing to /stand up, maintain & sustain on our own.
So if you could share a bit about what that would look like, or perhaps we could jump on a call to do the same.
Appreciate it! 🔥

DQOps has two parts.
The big part that you can host anywhere is the DQOps engine itself which has the UI, data quality rules, and an offline data lake with parquet files. You can run that in your Org any time.
The remaining part that would be hosted as a commercial SaaS platform is the data warehouse and the data quality dashboards. We are setting up a small data quality data lake on GCP for each user. That is:

storage bucket for Parquet files, the same files that at a local DQOps instance stores in the .data/ folder
several external tables that are attached to the storage bucket, accessing the parquet files
several BigQuery native tables that are loaded with the content.

Besides that, we have a set of dashboards built with Looker Studio. They are connecting to the customer's data warehouse using our Looker Studio Community Connector.

However, the data quality data warehouse is hosted by DQOps as a SaaS solution. Your DQOps instance just incrementally uploads parquet files, the data warehouse is refreshed and you are using our Looker Studio Community Connector to see the dashboards.
That is the easiest option, possible right now.

Fully hosted in your Org
That would be possible, but will take some work. We would need to set up a copy of our SaaS backend in your environment. It is doable. But something else is more complex. Each dashboard connects to the data quality data warehouse using our Looker Studio Community Connector. You would need to set up your own connector that can access your BigQuery dataset instead of the data warehouse that we are hosting. The connector has 185 lines of code, it just passes the Access Token and forms a query to BigQuery, so it is not a big deal.
Next, you would have to update all dashboards that we release and switch the data source to your connector. Keep in mind that from now on, you will have to migrate your copy of dashboards every time we release a new version.

Compute and data hosted in your Org, but DQOps SaaS issues access tokens for Looker Studio
That would be somewhere between option 1 and option 2. Just grant rights to the DQOps SaaS service account to files in your copy of the data warehouse. DQOps SaaS would issue access tokens for the Looker Studio Community Connector, allowing to use of the most recent dashboards.

Fully hosted in your Org, using your dashboards
In this scenario, you just synchronize the whole .data/ folder to your storage bucket using rsync. You create your own external tables over the files in the .data/ folder. The files in the .data/ folder are structured as tables using a Hive-compatible partitioning format.
Having a fully local instance and your own data warehouse, you would have to make your own dashboards and replace the URLs in the dashboardslist.dqodashboards.yaml file.


W-14499999-EOL-Studio-archive-include-issues

Writer's Quality Checklist
Before merging your PR, did you:

[ ] Run spell checker
[ ] Run link checker to check for broken xrefs
[ ] Check for orphan files
[ ] Perform a local build and do a final visual check of your content, including checking for:

Broken images
Dead links
Correct rendering of partials if they are used in your content
Formatting issues, such as:

Misnumbered ordered lists (steps) or incorrectly nested unordered lists
Messed up tables
Proper indentation
Correct header levels

[ ] Receive final review and signoff from:

Technical SME
Product Manager
Editor or peer reviewer
Reporter, if this content is in response to a reported issue (internal or external feedback)

[ ] If applicable, verify that the software actually got released

This fixes the unresolved includes in install-mule-runtime-versions and also the unresolved images in those partials.


Remove warning from angular 10 compilation

In Angular 10, when compiling the project those warning appears :
WARNING in C:\Users\****\Documents\Repository\****\node_modules\angular-cesium\__ivy_ngcc__\fesm2015\angular-cesium.js depends on 'geodesy'. CommonJS or AMD dependencies can cause optimization bailouts.
For more info see: https://angular.io/guide/build#configuring-commonjs-dependencies

WARNING in C:\Users\****\Documents\Repository\****\node_modules\angular-cesium\__ivy_ngcc__\fesm2015\angular-cesium.js depends on 'util'. CommonJS or AMD dependencies can cause optimization bailouts.
For more info see: https://angular.io/guide/build#configuring-commonjs-dependencies

I believe this could be avoided by changing library/way of import

I agree, the link in the warnings shows you how to hide the warnings(https://angular.io/guide/build#configuring-commonjs-dependencies).
It recommends using a "ECMAScript modules" instead of the commonjs
not sure what complications are with updating the following
https://github.com/articodeltd/angular-cesium/blob/master/projects/angular-cesium/tsconfig.schematics.json#L9
 "module": "commonjs",

to
"module": "es2020",
It would be nice to optimize this section of the code.

actually looking at it a little more it looks like there are dependencies on 'geodesy' and 'util'. Which I was slow to realize was the cause of it.
here is the snippet to add if you want to disable the build warnings in the angular.json options
      "options": {
        "allowedCommonJsDependencies":[
          "geodesy",
          "util"
        ]
      }


[Request] Alien/abandoned ships, inter-planetary weapons and starships

I have multiple suggestions, but didn’t want to spam the issues tab.
My first suggestion is alien/abandoned ships. The idea for this is that while in a space station, you can scan for other bodies orbiting the planet/moon/ whatever you’re currently orbiting. If it finds an alien ship, you can copy its coordinates to a ship and fly to it. If the ship is an alien ship, it’ll be full of alien creatures (no specific design). With random loot and some structures like biome scanners. Abandoned ships will have holes, ruptured power lines, dark rooms and maybe some space junk around it. They have no mobs and very little loot, and some broken structures.
Next up is inter-planetary weapons! (Although some can be shot at moons or other stations) My first idea was a large super laser. With three different colors (red, green and blue) it can be set to attack set coordinates with three different modes:
Spiral- the laser spirals from about 50-80 blocks out toward a central location, doing light block damage to softer blocks like dirt, gravel and sand, but then increases power and does very high damage to both entities and blocks when nearing the center.
Multi-burst- blasts about 3-4 beams in succession at a set coordinate location
Single beam- launches a single but deadly beam at a set location.
The next weapon is a missile. Well… multiple missiles. Whether this be a way to launch missiles from icbm or other missile mods, or new missile mechanics entirely. The way missiles would be launched is with a silo. A multiblock structure which varies in size. The silo is what holds the missile and is what fires it from a silo controller which can be wireless. A large silo can hold three missiles. A warp silo can send missiles across solar systems with a neat warp animation to give it extra flare. Some new missiles come with this, too. One of which isn’t actually a missile.
EMP clamp- emp clamps can be launched from silos. They can only target stations as long as they or the one launching are in hyperspace. When the clamp is successfully…… clamped, the light will turn green on the back and will disable any electronics withib a 20, 35, or 50 block radius in any direction until it is destroyed.
Warp interceptor- a warp interceptor is another launchsble tool that clamps on a station. This one works in the way that when a warp is commenced, the interceptor will collect energy from the warp, disconnect from part of the interceptor and fly back to you. The part left behind is a ticking time bomb that if left alone for too long, will cause an energy based explosion based on how far the warp was, complete with its own animation. The interceptor will need to be reloaded before use again.
Energy missile- a missile that creates an energy based explosion dependent on the tier.
Implosion missile- makes a set area implode with a block-hole style effect
Defense crippler destroys low quality defense systems.
This last one is kinda out there, so I don’t care if it’s not possible or too hard to program. This last missile is inspired by the M.D. (molecular disrupter) from the book Ender’s Game (and later titles). This missile is so big it needs its own silo. A tier 4 silo. The missile is 7 blocks long, 5 blocks wide and 5 blocks tall. This giant missile can destroy an entire planet, moon or space station, turning it into a huge ball of space dust. As I said, this is inspired from the Ender’s Game series, (skip to next paragraph for no spoilers!) which the MD was used to annihilate both a swarm of Formic ships and the Formic home world.
 After it’s been destroyed, it acts as a gas giant. It still shows up on the map, just as a giant cloud of space dust that can’t be landed on. A set of new blocks called high power magnets and dust containers can be put on unmanned ships to collect metal dust, and lots of it.
Finally, starships. Starships work different to spaceships. They are horizontal instead of vertical. To build one, a control deck is required. It’s like a guidance computer but looks like a steering terminal. To take off, they must have a clear line of runway takeoff blocks, which they will fly above before flying upward into space. For landing, they also need a strip of runway landing blocks, which it will hover across before turning to face the direction of takeoff blocks. I thought of maybe letting the player control the flight until they decide to land or travel to another planet, but I feel that might get too complicated. If we ever get new thrusters, some ion or energy trail would be cool. Plus If it supported multiple passengers we could make space bus ports like in the Jetsons or something.
I think these features should be added because:
A. The abandoned and alien ships would add a bit of extra exploration and maybe lore with like hidden codex tapes or something
B. There’s not much in the form of weaponry and a way to have wars with friends or enemies except maybe block damage from the mining laser
C. Having starships alongside rockets would add so much potential for builds for one. Instead of having holes in the roof for rockets to land on or awkward landing pads sticking out, we could have landing ports flush with the station itself. Plus if the landing and takeoff blocks can take a ship vertically, we could do things like tie fighter hangars. Other than the build potential, if my other idea of letting a player control the flight before landing or traveling, maybe weapons could be added and we could get a bit of a Death Star attack going on with laser turrets and energy torpedoes. But otherwise, having starships could support multiple passengers, so multi-person travel would be possible.

Yeah it’s a lot. Sorry.

Have you seen some of the open suggestion threads? This isn't that much to suggest. You can always suggest stuff, it just might not get done for quite a while.

@Meatball1230


Update misleading documentation about how to initialize SbomGenerator

To invoke GenerateSbom, we need to instantiate SbomGenerator. However the documentation says that we need to call a SbomGenerator constructor with no arguments, which is not the case. It seems to have 5 arguments, and its unclear what they should be intialized with or are there are any restrictions !
public SbomGenerator(
        IWorkflow<SbomGenerationWorkflow> generationWorkflow,
        ManifestGeneratorProvider generatorProvider,
        IRecorder recorder,
        IEnumerable<ConfigValidator> configValidators,
        ConfigSanitizer configSanitizer

Can you update the documentation and make consumption of the nuget simpler ?

hey @edgarrs any updates regarding how to initialize SbomGenerator?


NNX attention layer missing qkv_features arg

In Linen, the input arg qkv_features determines the head dimension while the input arg out_features determines the output dimension.
In NNX, the input arg out_features determines BOTH the head dimension and the output dimension.
We can get equivalent behavior with the following instantiation:
x = jnp.ones((12, 8))
num_heads = 4

linen_attention = nn.MultiHeadDotProductAttention(num_heads)
linen_out, variables = linen_attention.init_with_output(jax.random.key(0), x)

nnx_attention = nnx.MultiHeadAttention(num_heads, in_features=8, rngs=nnx.Rngs(0))
nnx_out = nnx_attention(x)

assert linen_out.shape == nnx_out.shape

for qkvo in ('query', 'key', 'value', 'out'):
  for kb in ('kernel', 'bias'):
    linen_shape = variables['params'][qkvo][kb].shape
    nnx_shape = getattr(getattr(nnx_attention, qkvo), kb).shape
    print(qkvo, kb, linen_shape, nnx_shape)

query kernel (8, 4, 2) (8, 4, 2)
query bias (4, 2) (4, 2)
key kernel (8, 4, 2) (8, 4, 2)
key bias (4, 2) (4, 2)
value kernel (8, 4, 2) (8, 4, 2)
value bias (4, 2) (4, 2)
out kernel (4, 2, 8) (4, 2, 8)
out bias (8,) (8,)

But if we add in a qkv_features arg input into the Linen layer:
linen_attention = nn.MultiHeadDotProductAttention(num_heads, qkv_features=16)

We'll get a different result:
query kernel (8, 4, 4) (8, 4, 2)
query bias (4, 4) (4, 2)
key kernel (8, 4, 4) (8, 4, 2)
key bias (4, 4) (4, 2)
value kernel (8, 4, 4) (8, 4, 2)
value bias (4, 4) (4, 2)
out kernel (4, 4, 8) (4, 2, 8)
out bias (8,) (8,)

Currently NNX can't replicate this behavior. Should we add a qkv_features argument to the NNX attention layer?

cc: @cgarciae

Thanks for catching this Marcus! Created a PR with a fix.


Won bid items won't be listed

I'm using the bid function to bid a quite amount of players but the won items do not get listed. Any idea what I did wrong?

Same here!

I got the Same problem

I got the Same problem

same problem

same problem


PlatformException fired when longitude is negative in locationFromAddress method on iOS

🐛 Bug Report
[Only on iOS]
When trying to pass an address which longitude is negative (for example "81 Allée Joseph Pascal
31500 Pau") locationFromAddress method fires PlatformException.
[VERBOSE-2:ui_dart_state.cc(166)] Unhandled Exception: PlatformException(IO_ERROR, Error Domain=kCLErrorDomain Code=8 "(null)", null)
#0      StandardMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:572:7)
#1      MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:161:18)
<asynchronous suspension>
#2      MethodChannel.invokeMethod (package:flutter/src/services/platform_channel.dart:334:12)
#3      MethodChannelGeocoding.locationFromAddress (package:geocoding_platform_interface/src/implementations/method_channel_geocoding.dart:28:44)
#4      locationFromAddress (package:geocoding/geocoding.dart:22:32)
#5      _MapAddressState._updateAddress (package:jumpets_app/ui/components/maps/google_map_shelters.dart:49:32)
#6      _MapAddressState.didUpdateWidget (package:jumpets_app/ui/components/maps/google_map_shelters.dart:28:7)
#7      StatefulElement.update (package:flutter/src/widgets/framework.dart:4734:58)
#8      Element.updateChild (package:flut<…>

Expected behavior
The expected behavior is the resulted Location of address
Configuration
Version:
geocoding: ^1.0.3+1

$ flutter doctor -v
[✓] Flutter (Channel stable, 1.20.1, on Mac OS X 10.15.6 19G2021, locale
    es-ES)
    • Flutter version 1.20.1 at /Users/raulmateobeneyto/flutter
    • Framework revision 2ae34518b8 (6 weeks ago), 2020-08-05 19:53:19
      -0700
    • Engine revision c8e3b94853
    • Dart version 2.9.0

[✓] Android toolchain - develop for Android devices (Android SDK version
    29.0.2)
    • Android SDK at /Users/raulmateobeneyto/Library/Android/sdk
    • Platform android-29, build-tools 29.0.2
    • Java binary at:
      /Library/Java/JavaVirtualMachines/jdk1.8.0_192.jdk/Contents/Home/bin
      /java
    • Java version Java(TM) SE Runtime Environment (build 1.8.0_192-b12)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 11.4)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 11.4, Build version 11E146
    • CocoaPods version 1.8.4

[!] Android Studio (not installed)
    • Android Studio not found; download from
      https://developer.android.com/studio/index.html
      (or visit
      https://flutter.dev/docs/get-started/install/macos#android-setup for
      detailed instructions).

[✓] VS Code (version 1.49.0)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.14.1

[✓] Connected device (1 available)
    • iPhone 11 Pro (mobile) • D2CC28C5-236E-449A-A0F3-5B96652F3D58 • ios
      • com.apple.CoreSimulator.SimRuntime.iOS-13-4 (simulator)

! Doctor found issues in 1 category.

Platform:

[X] :iphone: iOS
[ ] :robot: Android

@Rahuvich thank you for submitting this issue. I have looked into it and found that in this case Apple cannot find a result for the given address (according to Apple's definition "kCLErrorDomain Code=8" means "kCLErrorGeocodeFoundNoResult".
Of course this should not be something that causes a crash on the geocoding plugin and I will be working on that to make sure the geocoding plug-in will return a null (as is also the case on Android, if the Android implementation cannot do the translation).

@mvanbeusekom Thank you, that would be awesome. 👍

Just experienced that on Android like @mvanbeusekom mentioned.
I moved my code to a try-catch block and create a dummy Placemark in the the catch block with "unknown address" to handle this.

@Rahuvich we have just release version 1.0.4 of the geocoding plug-in.
After some internal discussions we decided not to return null but a custom exception explaining clearly the address was not found. So in your case you can use the code like this:
List<Location> locations = null;

try {
    locations = await locationFromAddress("81 Allée Joseph Pascal 31500 Pau");
} on NoResultFoundException {
    // Handle "No results found for the address"
    ...
}

Will be closing this issue now, but please leave a message if you have any questions.


Add Provider Engine Support

Coverage increased (+0.6%) to 93.437% when pulling 344c4dd39558191dea9947f6bc6b2856ea36be19 on feature/provider-engine into e49043eca76d8cc006e87faf686abf62f05d3277 on master.

Coverage increased (+0.6%) to 93.425% when pulling 14e251288c0a86678df45b7bc724bbd1727d40e4 on feature/provider-engine into e49043eca76d8cc006e87faf686abf62f05d3277 on master.


Action Set Field class should also consider the OXM_FIELD to decide the subclass

Hi,
Currently, the ActionSetField class is only considering the action type on the deserialization process, as defined here:
https://github.com/kytos-ng/of_core/blob/3545b1c23fa8f39937b686d3fb0d056a8fa996e5/v0x04/flow.py#L189
If one were to implement a new ActionSetField (for instance, ActionSetFieldIPv4Dst), we would have to also consider the OXM_FIELD to take the decision of the proper subclass to deserialize the OF Action data.
Use case: in the HackInSDN project we are defining new Action Set Fields to implement Custom Containment actions to mitigate cyberattacks. Some actions we are adding include: ActionSetFieldIPv4Dst, ActionSetFieldIPv6Dst, ActionSetFieldTCPDst, etc.
On our implementation we ended up overriding the OFActionSetField as showed below:
        self.new_actions = {
            "set_ipv4_dst": ActionSetIPv4Dst,
            OFActionSetField: ActionSetIPv4Dst,
        }

        for name, action in self.new_actions.items():
            Action.add_action_class(name, action)

Then after adding a flow with set_ipv4_dst and also set_vlan, we got the following error:
Jul 30 13:08:04 bcd69a5b0fea uvicorn.error:ERROR httptools_impl:441:  Exception in ASGI application#012Traceback (most recent call last):#012  File "/usr/local/lib/python3.9/dist-packages/uvicorn/protocols/http/httptools_impl.py", line 436, in run_asgi#012    result = await app(  # type: ignore[func-returns-value]#012  File "/usr/local/lib/python3.9/dist-packages/uvicorn/middleware/proxy_headers.py", line 78, in __call__#012    return await self.app(scope, receive, send)#012  File "/usr/local/lib/python3.9/dist-packages/starlette/applications.py", line 120, in __call__#012    await self.middleware_stack(scope, receive, send)#012  File "/usr/local/lib/python3.9/dist-packages/starlette/middleware/errors.py", line 184, in __call__#012    raise exc#012  File "/usr/local/lib/python3.9/dist-packages/starlette/middleware/errors.py", line 162, in __call__#012    await self.app(scope, receive, _send)#012  File "/usr/local/lib/python3.9/dist-packages/starlette/middleware/cors.py", line 84, in __call__#012    await self.app(scope, receive, send)#012  File "/usr/local/lib/python3.9/dist-packages/starlette/middleware/exceptions.py", line 79, in __call__#012    raise exc#012  File "/usr/local/lib/python3.9/dist-packages/starlette/middleware/exceptions.py", line 68, in __call__#012    await self.app(scope, receive, sender)#012  File "/usr/local/lib/python3.9/dist-packages/starlette/routing.py", line 716, in __call__#012    await route.handle(scope, receive, send)#012  File "/usr/local/lib/python3.9/dist-packages/starlette/routing.py", line 276, in handle#012    await self.app(scope, receive, send)#012  File "/usr/local/lib/python3.9/dist-packages/starlette/routing.py", line 68, in app#012    response = await run_in_threadpool(func, request)#012  File "/usr/local/lib/python3.9/dist-packages/starlette/concurrency.py", line 41, in run_in_threadpool#012    return await anyio.to_thread.run_sync(func, *args)#012  File "/usr/local/lib/python3.9/dist-packages/anyio/to_thread.py", line 31, in run_sync#012    return await get_asynclib().run_sync_in_worker_thread(#012  File "/usr/local/lib/python3.9/dist-packages/anyio/_backends/_asyncio.py", line 937, in run_sync_in_worker_thread#012    return await future#012  File "/usr/local/lib/python3.9/dist-packages/anyio/_backends/_asyncio.py", line 867, in run#012    result = context.run(func, *args)#012  File "//var/lib/kytos/napps/kytos/flow_manager/main.py", line 612, in add#012    return self._send_flow_mods_from_request(request, dpid, "add")#012  File "//var/lib/kytos/napps/kytos/flow_manager/main.py", line 677, in _send_flow_mods_from_request#012    self._install_flows(command, flows_dict, [switch], reraise_conn=not force)#012  File "//var/lib/kytos/napps/kytos/flow_manager/main.py", line 722, in _install_flows#012    flow_mod = build_flow_mod_from_command(flow, command)#012  File "//var/lib/kytos/napps/../napps/kytos/flow_manager/utils.py", line 56, in build_flow_mod_from_command#012    flow_mod = flow.as_of_add_flow_mod()#012  File "//var/lib/kytos/napps/../napps/kytos/of_core/flow.py", line 191, in as_of_add_flow_mod#012    return self._as_of_flow_mod(FlowModCommand.OFPFC_ADD)#012  File "//var/lib/kytos/napps/../napps/kytos/of_core/v0x04/flow.py", line 403, in _as_of_flow_mod#012    of_flow_mod.instructions = [instruction.as_of_instruction() for#012  File "//var/lib/kytos/napps/../napps/kytos/of_core/v0x04/flow.py", line 403, in <listcomp>#012    of_flow_mod.instructions = [instruction.as_of_instruction() for#012  File "//var/lib/kytos/napps/../napps/kytos/of_core/v0x04/flow.py", line 241, in as_of_instruction#012    of_actions = [action.as_of_action() for action in self.actions]#012  File "//var/lib/kytos/napps/../napps/kytos/of_core/v0x04/flow.py", line 241, in <listcomp>#012    of_actions = [action.as_of_action() for action in self.actions]#012  File "//var/lib/kytos/napps/../napps/talitarp/contention/of_core/v0x04/action.py", line 33, in as_of_action#012    return OFActionSetField(field=tlv)#012NameError: name 'OFActionSetField' is not defined

This error happened because our class ended up being responsible for deserializing all OFActionSetField packets.
It seems that using a ActionSetField Factory to proper identify the subclass responsible for each OXM fields would be proper solution.
cc @talitarp since she is also working on this

Workaround we created:
        self.new_actions = {
            "set_ipv4_dst": ActionSetIPv4Dst,
            OFActionSetField: ActionSetFieldFactory,
        }

        for name, action in self.new_actions.items():
            Action.add_action_class(name, action)

class ActionSetFieldFactory(OFActionSetField):
    _subclass_set_field = {
        OxmOfbMatchField.OFPXMT_OFB_VLAN_VID: ActionSetVlan,
        OxmOfbMatchField.OFPXMT_OFB_IPV4_DST: ActionSetIPv4Dst,
        OxmOfbMatchField.OFPXMT_OFB_IPV6_DST: ActionSetIPv6Dst,
        OxmOfbMatchField.OFPXMT_OFB_TCP_DST: ActionSetTCPDst,
        OxmOfbMatchField.OFPXMT_OFB_UDP_DST: ActionSetUDPDst,
        OxmOfbMatchField.OFPXMT_OFB_ETH_DST: ActionSetETHDst,
    }

    @classmethod
    def from_of_action(cls, of_action):
        """Return a high-level ActionSetField to call specific subclass."""
        subclass = cls._subclass_set_field.get(of_action.field.oxm_field)
        return subclass.from_of_action(of_action) if subclass else None

    @classmethod
    def add_set_field_subclass(cls, oxm_field, subclass):
        """Add a subclass for ActionSetField based on OXM Field."""
        cls._subclass_set_field[oxm_field] = subclass

I believe that we should include this solution into of_core directly (to avoid someone else having to depending on our Napp or ended up overriding our subclasses when using together)

Usage examples after deploying the solution above:

Create a flow with set ipv4 destination:

curl -X POST -H 'Content-type: application/json' http://<IP_ADDRESS>:8181/api/kytos/flow_manager/v2/flows/00:00:00:00:00:00:00:01 -d '{"flows":[{"priority": 1000, "match":{"dl_vlan": 101, "dl_type": 2048}, "actions":[{"action_type": "set_ipv4_dst", "ipv4_dst": "<IP_ADDRESS>"}]}]}'

Create a flow with set ipv6 destination:

curl -X POST -H 'Content-type: application/json' http://<IP_ADDRESS>:8181/api/kytos/flow_manager/v2/flows/00:00:00:00:00:00:00:01 -d '{"flows":[{"priority": 1000, "match":{"dl_vlan": 101, "dl_type": 34525}, "actions":[{"action_type": "set_ipv6_dst", "ipv6_dst": "2001:db8:100:1::233"}]}]}'

Create a flow with set TCP destination port:

curl -X POST -H 'Content-type: application/json' http://<IP_ADDRESS>:8181/api/kytos/flow_manager/v2/flows/00:00:00:00:00:00:00:01 -d '{"flows":[{"priority": 1000, "match":{"dl_vlan": 101, "dl_type": 2048, "nw_proto": 6}, "actions":[{"action_type": "set_tcp_dst", "port": 33884}]}]}'

Create a flow with set UDP destination port:

curl -X POST -H 'Content-type: application/json' http://<IP_ADDRESS>:8181/api/kytos/flow_manager/v2/flows/00:00:00:00:00:00:00:01 -d '{"flows":[{"priority": 1000, "match":{"dl_vlan": 101, "dl_type": 2048, "nw_proto": 17}, "actions":[{"action_type": "set_udp_dst", "port": 33884}]}]}'

Create a flow with set Ethernet destination address (MAC address):

curl -X POST -H 'Content-type: application/json' http://<IP_ADDRESS>:8181/api/kytos/flow_manager/v2/flows/00:00:00:00:00:00:00:01 -d '{"flows":[{"priority": 1000, "match":{"dl_vlan": 101}, "actions":[{"action_type": "set_eth_dst", "eth_addr": "00:01:02:03:04:05"}]}]}'


CPX not working in NPM scripts.

I have a NPM script which runs cpx './src/Cache/*' './dist/Cache', it works when I run it command line but running it in an NPM script does nothing, it just says its doing something but doesn't actually complete the task. I tried to refer to this issue but it didn't help with anything.

Resolved by changing end point to ./dist/.


createConnection should return a promise

createConnection does not return a promise. While it is not necessary to know when connection to database is successful (because .query is aware of the createConnection state), it would be useful in order to catch unsuccessful connection error.

I'll have a look at this

So having had a look and a think, the only way I feel this could work would be if the promise returned the connection, so you'd handle it like so:
var mysql = require('promise-mysql');
var connection;
mysql.createConnection({
    host: 'localhost',
    user: 'sauron',
    password: 'theonetruering',
    database: 'mordor'
}).catch(function(error){
    //logs out the error
    console.log(error);
}).then(function(conn){
    connection = conn;
});

Is this what you're looking for @gajus?

Added in 84c7ed9fcc60a81cbc7fd3bdd6e1e4a87a1fcbe9


Caleb Kim Tech Talk 0

Score: 3.9/5
Individual GH-Pages
replit

Score: 3.75/5
Replit does not have user input that allows someone to choose which "game" they want to play.
Some of the challenges like matrix do not print the output in the correct format.
Properly embedded in the Github pages.

Score: 4/5
Team: 2/2
Individual: 2/3

Navigation: Notes are shown in split up sections within his github page (1/1)
Test prep plans are also contained on his page, but it is in the same column (0.5/1)
Links to repl on his ticket, has working algorithms, but menu has only slight modifications, implementation isn't changed too much (0.5/1)


Not listed yet: www.foreignaffairs.com

The website at this url is unlisted: https://www.foreignaffairs.com/articles/china/2019-03-06/problem-xis-china-model?utm_medium=newsletters

This website is now in the support list and will be in the next release of the GCM web extension on addons.mozilla.org
Thanks!


skype: remove deprecated

Motivation for this change
The old "skype" client for linux was deprecated as of July 1st 2017 and may stop working at any time.
(They claimed it would stop immediately, but it does appear to still connect for me)
Dropping it ASAP helps migrate users away before it stops functioning.
Alias added for backwards-compat and because "skype" is what I'd expect the attribute to be called anyway :).
Things done
Please check what applies. Note that these are not hard requirements but mereley serve as information for reviewers.

[ ] Tested using sandboxing
(nix.useSandbox on NixOS,
or option build-use-sandbox in nix.conf
on non-NixOS)
Built on platform(s)

[ ] NixOS
[ ] macOS
[ ] Linux

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Fits CONTRIBUTING.md.

(There are no derivations changed by this, so I don't believe the above checklist applies for the most part)

OT: are group calls working now with skypeforlinux?


Improve Social Media sharing (previews, etc)

Context
Blog posts are often shared to places like LinkedIN via 'posts.' Whenever I have done them, the post either has:
1 - No image
2 - My profile picture as the image
3 - The first picture embedded in a post
It would be great if authors could choose the photo that is featured in places like LinkedIN posts.
Current Behavior/Workaround
If you place an image very close to the top of your post, it appears to be used as the preview. For example, this post shares pretty well on LinkedIN.

Ideal behavior
I imagine an image field where you can choose what you want the preview to be. Once this is implemented, we can check the result using the LinkedIN post inspector which will show a preview of what your post will look like when it is published. There is also a facebook post inspector
Things to consider
I know little about social media sharing. WIll need to research this before attempting to implement. Check on this site on how they suggest doing it. This SO post agrees with the site.
It appears that I need to plug into the OpenGraph protocol.
In order to get the mimetype for the uploaded image, looks like I need to do some more work...like adding a validator
https://djangomango.com/blog/detail/checking-mime-types-for-uploaded-files-05a0d53e-4d5f-440f-a454-a5f5891adf01/
Also need to make sure GZIP compression is turned on
https://www.giftofspeed.com/gzip-test/
Test Plan

Implemented on https://github.com/jsolly/blogthedata/pull/23
Also pushed commit https://github.com/jsolly/blogthedata/commit/6debc3f113add4064ed450c779d7da029e333cc4 to master with some stuff I forgot 😅
There's now a metaimg field in the post template where you can upload a photo to be used when the link is shared. If you don't upload a metaimg, the default jsolly.jpeg image will be used.
Here's how a post looks by default using the LinkedIN post inspector

And here's how it looks after adding a metaimg

Nice!


Create separate HTTP parser

In a recent conversation, the oddity that is the presence of HTTP parser functions inside an event loop was discussed. I realized, upon musing on the discussion, that the original premise of bundling several async and async-adjacent utilities into a single extension was flawed. I now think it makes sense to remove parseHttpRequest and parseHttpResponse functions from the ext-mrloop API specification and place them in a separate extension.

https://github.com/ringPHP/php-mrloop/pull/9
https://github.com/ringPHP/php-picohttpparser


Not an issue, just a question

We use your token auth lib for slim3 on some of our apps. My question is: do you plan to port it to slim4? Or can u suggest an alternative package for slim4?

I have the same question

me too!


small fix

So in a very narrow case, if the end times or beginning times coincide perfectly, the traces don't show up correctly. Example:
By the way I am SUPER impressed with the quality of this code. It was very easy to find the error and very easy to understand the logic because it was well documented.
{
  "traceEvents": [
    {
      "name": "foo",
      "ph": "X",
      "ts": 48585,
      "dur": 69,
      "pid": 32588,
      "tid": 32588
    },
    {
      "name": "foo::bar",
      "ph": "X",
      "ts": 48586,
      "dur": 1,
      "pid": 32588,
      "tid": 32588
    },
    {
      "name": "foo::birth",
      "ph": "X",
      "ts": 48609,
      "dur": 44,
      "pid": 32588,
      "tid": 32588
    },
    {
      "name": "foo",
      "ph": "X",
      "ts": 48860,
      "dur": 45,
      "pid": 32588,
      "tid": 32588
    },
    {
      "name": "foo::bar",
      "ph": "X",
      "ts": 48861,
      "dur": 1,
      "pid": 32588,
      "tid": 32588
    },
    {
      "name": "foo::apply",
      "ph": "X",
      "ts": 48879,
      "dur": 25,
      "pid": 32588,
      "tid": 32588
    },
    {
      "name": "foo",
      "ph": "X",
      "ts": 49088,
      "dur": 43,
      "pid": 32588,
      "tid": 32588
    },
    {
      "name": "foo::bar",
      "ph": "X",
      "ts": 49089,
      "dur": 1,
      "pid": 32588,
      "tid": 32588
    },
    {
      "name": "foo::apply",
      "ph": "X",
      "ts": 49107,
      "dur": 24,
      "pid": 32588,
      "tid": 32588
    },
    {
      "name": "foo",
      "ph": "X",
      "ts": 49315,
      "dur": 43,
      "pid": 32588,
      "tid": 32588
    },
    {
      "name": "foo::bar",
      "ph": "X",
      "ts": 49316,
      "dur": 1,
      "pid": 32588,
      "tid": 32588
    },
    {
      "name": "foo::apply",
      "ph": "X",
      "ts": 49334,
      "dur": 24,
      "pid": 32588,
      "tid": 32588
    },
    {
      "name": "foo",
      "ph": "X",
      "ts": 49539,
      "dur": 43,
      "pid": 32588,
      "tid": 32588
    },
    {
      "name": "foo::bar",
      "ph": "X",
      "ts": 49540,
      "dur": 1,
      "pid": 32588,
      "tid": 32588
    },
    {
      "name": "foo::apply",
      "ph": "X",
      "ts": 49558,
      "dur": 24,
      "pid": 32588,
      "tid": 32588
    },
    {
      "name": "foo",
      "ph": "X",
      "ts": 49778,
      "dur": 44,
      "pid": 32588,
      "tid": 32588
    },
    {
      "name": "foo::bar",
      "ph": "X",
      "ts": 49779,
      "dur": 1,
      "pid": 32588,
      "tid": 32588
    }
  ]
}

Going to have to refactor to not break types...

Hi @micahcc! Thanks for the contribution and kind words about code quality :)
This change seems reasonable to me! Please add a test here: https://github.com/jlfwong/speedscope/blob/master/src/import/trace-event.test.ts
Let me know if you run into problems doing that

Hey, I'm not sure where you ended up in this PR, but I suspect the issue addressed by this PR has been fixed by https://github.com/jlfwong/speedscope/pull/322, so I'm going to close this. Let me know if you still hit issues where trace event files don't import correctly.


Example/Template for parent-child table

Include an example of a parent child table that someone could use as a template for their own

provided several in the inst/extdata folder


new 20.7.1 gives undefined symbol: SteamInternal_SteamAPI_Init

Description
Upgraded on linux from 20.6.1 to 20.7.1 and now when steam connects on Oculus quest 2. the app crashes and goes back to main screen on the VR. In std out i see:
/home/guy/.local/share/Steam/steamapps/common/SteamVR/bin/linux64/vrmonitor: symbol lookup error: /home/guy/.local/share/Steam/steamapps/common/SteamVR/bin/linux64/vrmonitor: undefined symbol: SteamInternal_SteamAPI_Init

Not sure how to do bisection testing. What should I do
General Troubleshooting

[x] I carefully followed the instructions in the README and successfully completed the setup wizard
[ x ] I read the ALVR Wikis here and here

Environment
Hardware
Note: for Linux, an upload to the hw-probe database is preferred: hw-probe -all -upload
https://linux-hardware.org/?probe=21882b12a8
CPU:
AMD Ryzen 9 4900HS with Radeon Graphics
GPU:
TU106M [GeForce RTX 2060 Max-Q]
GPU Driver Version:
nvidia 535 (proprietary)
Audio:
Installation
20.7.1:
ALVR Settings File:
SteamVR Version:
2.4.4
Install Type:

[] Packaged (exe, deb, rpm, etc)
[x] Portable (zip)
[ ] Source

OS Name and Version (winver on Windows or grep PRETTY_NAME /etc/os-release on most Linux distributions):
Ununtu 23.10

Still investigating

Just updating it works now in newer versions.


pgnodemx: expected 1, got 2, lines from file /proc/self/cgroup

I get the following error when trying to run the crunchydb postgres image.
user=,db=,app=,client=FATAL:  pgnodemx: expected 1, got 2, lines from file /proc/self/cgroup

The image I am running is crunchydata/crunchy-postgres:centos8-13.4-4.7.2 on debain.
When I look at the /proc/self/cgroup file I get the following result.
1:net_cls:/
0::/

Here is the full log.
Starting wal-test_postgres_1 ... done
Attaching to wal-test_postgres_1
postgres_1  | nss_wrapper: user exists
postgres_1  | nss_wrapper: group exists
postgres_1  | nss_wrapper: environment configured
postgres_1  | Sun Nov  7 09:41:09 UTC 2021 INFO: Image mode found: postgres
postgres_1  | Sun Nov  7 09:41:09 UTC 2021 INFO: Starting in 'postgres' mode
postgres_1  | Sun Nov  7 09:41:09 UTC 2021 INFO: Setting PGROOT to /usr/pgsql-13.
postgres_1  | Sun Nov  7 09:41:09 UTC 2021 INFO: PG_CTL_START_TIMEOUT set at: 60
postgres_1  | Sun Nov  7 09:41:09 UTC 2021 INFO: PG_CTL_STOP_TIMEOUT set at: 60
postgres_1  | Sun Nov  7 09:41:09 UTC 2021 INFO: PG_CTL_PROMOTE_TIMEOUT set at: 60
postgres_1  | Sun Nov  7 09:41:09 UTC 2021 INFO: Cleaning up the old postmaster.pid file..
postgres_1  | Sun Nov  7 09:41:09 UTC 2021 INFO: User ID is set to uid=26(postgres) gid=26(postgres) groups=26(postgres).
postgres_1  | Sun Nov  7 09:41:09 UTC 2021 INFO: Working on primary..
postgres_1  | Sun Nov  7 09:41:09 UTC 2021 INFO: Initializing the primary database..
postgres_1  | Sun Nov  7 09:41:09 UTC 2021 INFO: PGDATA already contains a database.
postgres_1  | Sun Nov  7 09:41:09 UTC 2021 INFO: Setting ARCHIVE_MODE to off.
postgres_1  | Sun Nov  7 09:41:09 UTC 2021 INFO: Setting ARCHIVE_TIMEOUT to 0.
postgres_1  | Sun Nov  7 09:41:09 UTC 2021 INFO: Starting PostgreSQL..
postgres_1  | 2021-11-07 09:41:09 UTC [48]: [1-1] user=,db=,app=,client=LOG:  pgaudit extension initialized
postgres_1  | 2021-11-07 09:41:09 UTC [48]: [2-1] user=,db=,app=,client=FATAL:  pgnodemx: expected 1, got 2, lines from file /proc/self/cgroup
postgres_1  | 2021-11-07 09:41:09 UTC [48]: [3-1] user=,db=,app=,client=LOG:  database system is shut down
postgres_1  | Sun Nov  7 09:41:09 UTC 2021 INFO: PostgreSQL is shutting down. Exiting..

Hi @clayrisser, can you provide a little more detail on this?:

exact version of Debian and kernel for host
is this itself a virtualized host (VM or otherwise)
steps to reproduce (e.g., which example you were using/customizing, any additional invocation options, etc)

Thanks!

@clayrisser, is this system in cgroup hybrid mode by any chance? That is, are both cgroup v1 and v2 enabled?
If so, that is not currently supported by pgnodemx. It is documented as such, but we should do a better job with the error message...

Thanks I believe that's my issue. I'm using Debain 11. I'm pasting this link here in case anyone else runs into this issue.
https://wiki.debian.org/LXC/CGroupV2

@clayrisser, I cannot reproduce the state necessary to take the exact code path that must of been taken in this report.
Essentially you must have been in hybrid mode, but with /sys/fs/cgroup as a cgroup v2 mount rather than cgroup v1 mount.
According to the documentation that I have found, hybrid mode should be /sys/fs/cgroup as a cgroup v1, with /sys/fs/cgroup/unified as v2.
However I have merged a blind fix for it and tested the best I could using gdb to manually manipulate things locally. If you could build/install/test using your system it would be helpful to confirm the fix.

@jconway oh wow thanks. I will test.


[Live Preview] Stopped working on particular PC

Prerequisites

[ ] Can you reproduce the problem with Debug -> Reload Without Extensions? YES
[ ] Did you perform a cursory search to see if your bug or enhancement is already reported? YES
[ ] Did you read the Troubleshooting guide? YES

Description
I have been working with my first project in Brackets. For a while I switched to my laptop during vacation. Both laptop and Office PC had brackets and both worked fine then. After returning from vacation with more code added in laptop, Brackets in Office PC crash when I live preview updated html file. Noted that the navigation menu with icons is out of order just before crash. Same folder still loads find in Brackets in my laptop. Did all troubleshooting and even re-installed after restart.
Steps to Reproduce

Set the site Folder containing html root files with css and images in subfolders
Open index.html file
Clicked live preview.
Page loads on chrome and within seconds windows crash error appear with 'close program' or 'debug' option

Expected behavior: Live preview with main navigation menu loaded with icons (iconic font)
Actual behavior: Preview crash just after loading... main menu not loaded and shows bullet list and no icons in background.
Versions
Release 1.11 build 1.11.0-17524 (release 86b5e2d4e)
build timestamp: Wed Sep 20 2017 11:49:15 GMT+0100
Windows 10 Pro
Debugger Console reported

couldnt find the dom for .........\index.html
unable to access 2 related .css files

During filing attempt of bug, I had to select all files to zip. This led to figure out the cause when I noted a lock icon for 2 css files and font file icons. It was due to file encryption being enabled for above mentioned files from advanced attributes in property window. How or who did it is still a mystery. This caused those files non readable in my office PC since they were encrypted using UAC of my laptop, Once they were cleared preview worked fine. Im sharing the solution since I did not see this possibility for any bug resolution on current issue list. Hope it will also help someone since Brackets was unable to tell directly that it was a file read error.

my live preview works but first i need to save the changes and then open live preview , without saving changes to a file i cannot see any changes in the live preview .so please tell me whats the problem?


small cleanups

Hi @leadpony ,
please review these two tiny patches (just two minor cleanups).
Cheers!

Hello @dfa1
Your PR looks pretty nice to me and I have merged it into the mater.
Much appreciated.


Addresses In Wallet Settings page should load addresses

replicate receive cubit loadAddress in the walletsettings cubit so that addresses view can also loadAddresses into the wallet.
currently only recieve loads Addresses.

loadAddresses should also be called in WalletBloc after sync.

Related to #112

Related to #111

Probably not required since all updates in labels and recieve addresses now reflect.


Name and discoverability

This is a good add-on, but I the name "gd2md" makes is hard to find it.
I suggest you rename the addon something like "Docs Markdown Export" or similar within the domain of human languages :)

Not a bad idea. gd2md-html is very literal but not very readable. Maybe "Docs export to Markdown/HTML", which is a bit more readable (and searchable)?

Hi @evbacher
I'm trying to whitelist this add-on for our organisation's Gsuite users. However, when I use the "Add apps to the whitelist" function, and search, I can't find this add-on at all.
I'm definitely searching for the right characters.
I don't want to stop our users accessing this add-on, but we need to restrict to only whitelisted add-ons. Any ideas?

Now available in the G Suite Marketplace: https://gsuite.google.com/marketplace/app/docs_to_markdown/700168918607
Renamed to "Docs to Markdown" for a bit more clarity.
Let me know if this works for you (or not).


Impossible in the javascript example ports.html create edge

Hello,
I noticed that now in the javascript example of ports.html it is no longer possible to connect two ports. Why? in the 3.8.0 release it worked.
How can I restore the example with the 3.5.0 release?
thank you

Checkout the <IP_ADDRESS> tag https://github.com/jgraph/mxgraph/tree/v<IP_ADDRESS>

solved, thanks :)

sorry, but with the 3.9.5 release it will no longer be possible to work in the same way as in the ports example?

That's why I left the issue open

I report the same problem in the helloport.html example.


[feature request] firefox color schemes

first thank you dylanaraps for your awesome tool
have pywal generate color schemes for firefox as userstyle css and then we can import them to firefox cache folder ^^

pywal already exports a css file with color variables.


Add support for room characteristics when getting a list of rooms/creating a new room

See ticket #495 on the CAS3 Trello board.

Currently, when adding a new room to a premises, only a name and some optional notes can be given. To provide additional information about a room, the API will need to provide a way to attach characteristics to a room.
This PR provides support for room characteristics through the following API changes:

The NewRoom schema used to define the request body of the POST /premises/{premisesId}/rooms endpoint has been extended to allow the client to specify a list of UUIDS representing characteristics.
The Room schema used in the response body of the POST /premises/{premisesId/rooms and the GET /premises/{premisesId}/rooms endpoints have been extended to specify the active characteristics of the room.

A characteristic has two ways in which to limit what it can be applied to, known as 'scopes'. The model scope determines which type of entity the characteristic is valid for (currently "room" or "premises"). The service scope determines which service the characteristic is valid for (currently "approved-premises" or "temporary-accommodation"). It is possible for a single characteristic to be shared across model or service scopes, although this is beyond the scope of this PR.
To add a characteristic to a room, the RoomService enforces that the characteristic has the correct scopes. A characteristic must have a model scope of "room", and the service scope must match the service the premises is for. If these are incorrect, they are reported as validation errors.

@brownbearsoftware I've just had a chat with Dan, my thinking was that when saving characteristics they could be optional as the user may not select any, however we'd still need to add defensive code to deal with that if they're optional. In this PR Dan has made them required and if there isn't any passed through then an empty list is generated. There's for's and against's for either approach but I'm happy with the way Dan has done it.


RecurrenceWidget produces values that can't be successfully parsed back

I think it's wrong to consider the widget as anything else than a full in/out solution for its own values. Compatibility with other systems should not be a primary concern.
https://github.com/plone/volto/blob/10eaab14d9f650638db3807c49f03d47890aee3c/src/components/manage/Widgets/RecurrenceWidget/RecurrenceWidget.jsx#L191
Here's a log showing how that's a problem. You can see that the options are parsed wrong when it uses compatible mode. The value is "occurs every second Monday of each month".
> value
'DTSTART:20210918T000000Z\n' +
  'RRULE:FREQ=MONTHLY;INTERVAL=1;UNTIL=20250701T000000Z;BYDAY=+2MO'
> rrule.rrulestr(value, {compatible:true}).options
{
  freq: 0,
  dtstart: 2023-06-23T08:08:29.000Z,
  interval: 1,
  wkst: 0,
  count: null,
  until: null,
  tzid: null,
  bysetpos: null,
  bymonth: [ 6 ],
  bymonthday: [ 23 ],
  bynmonthday: [],
  byyearday: null,
  byweekno: null,
  byweekday: null,
  bynweekday: null,
  byhour: [ 8 ],
  byminute: [ 8 ],
  bysecond: [ 29 ],
  byeaster: null
}
> rrule.rrulestr(value).options
{
  freq: 1,
  dtstart: 2021-09-18T00:00:00.000Z,
  interval: 1,
  wkst: 0,
  count: null,
  until: 2025-07-01T00:00:00.000Z,
  tzid: undefined,
  bysetpos: null,
  bymonth: null,
  bymonthday: [],
  bynmonthday: [],
  byyearday: null,
  byweekno: null,
  byweekday: null,
  bynweekday: [ [ 0, 2 ] ],
  byhour: [ 0 ],
  byminute: [ 0 ],
  bysecond: [ 0 ],
  byeaster: null
}

I think the concern was that the code produces a RRuleSet, rather than a RRule. The problem is that there's different parsing behavior between them

Actually the problem is not that simple. I'm investigating, let's see what I find out.

If I comment this line, then the widget displays the value that was previously saved.
In my case, I want a recurrent event on the second Monday of each month.
https://github.com/plone/volto/blob/10eaab14d9f650638db3807c49f03d47890aee3c/src/components/manage/Widgets/RecurrenceWidget/RecurrenceWidget.jsx#L215

Ok, so my problem seems to be because the options I'm setting are not compatible somehow and they're ignored. https://github.com/plone/volto/blob/10eaab14d9f650638db3807c49f03d47890aee3c/src/components/manage/Widgets/RecurrenceWidget/RecurrenceWidget.jsx#L128

This seem to be a potential bug, if value is number 0: https://github.com/plone/volto/blob/10eaab14d9f650638db3807c49f03d47890aee3c/src/components/manage/Widgets/RecurrenceWidget/RecurrenceWidget.jsx#L419-L430


Not focusing when opening firefox and no windows in any workspace

When opening a new window of firefox, it doesn't go into focus. This happens when there are no windows in any workspace (no corner of window at the bottom right of the screen).
Opening with this hotkey:
alt-shift-f = 'exec-and-forget open -n /Applications/Firefox.app'

I'm on the latest commit: https://github.com/nikitabobko/AeroSpace/commit/1e214f2cbe2244f179b15059b7dbf1bd64e660d4

Can't reproduce. exec-and-forget open -n /Applications/Firefox.app opens firefox, it receives focus, and gets layouted
Tested on commit: https://github.com/nikitabobko/AeroSpace/commit/1e214f2cbe2244f179b15059b7dbf1bd64e660d4

I think it only happens when firefox is running in the background (even though doing a native close).
Here's a video reproducing it: https://www.loom.com/share/afdfb31aaac54c38b96991b63f943288
Video showcases

No window in any of the workspaces
Nothing else running (by showing the dock)
Opening firefox works as intended where it focuses
Closed firefox but still shows up on the dock
Opening again, firefox doesn't focus
Quit (doesn't show up on the dock anymore)
Opening works


Feat/tm gitlab  pagination

Motivation

Referes to #230
This PR adds the ability to the GitLab targetManager to fetch files recursively in case the GitLab API provides a paginated response.
Changes

requests for result pages are made recursively

Additional changes:

Add helper function to get the next page link of pagination
Increased the result per page to 30 items (default by GitLab API is 20)
The ref is now added by the query.Set() instead of query.Add() -> result: query parameter is switched and not appended

For additional information look at the commits.
Tests done

[ ] Unit tests succeeded
[ ] E2E tests succeeded

TODO

[x] adding test case to test recursive fetchNextFileList func

Test for paginated requests added.
PR is complete from my side.


Fixing #72, in which we consider Unix time over seconds alone

This fixes issue #72. Only seconds were being considered when running conditional run logic, now we're using unix time


Has one generated a compile_commands.json  or how to do it?

Hi @dolmens, Could you please update your description with complete details. Thanks!


Android- Chat - Text inside compose box is not centered when using header MD

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Version Number: 1.4.58-0
Reproducible in staging?: Y
Reproducible in production?: Y
If this was caught during regression testing, add the test name, ID and link from TestRail: N/A
Issue reported by: Applause - Internal Team
Action Performed:

Open a chat
Start typing # followed by any letter

Expected Result:
Text inside the compose box should be centered as is in other platforms
Actual Result:
Text inside the compose box does not get centered which is different from behavior in other platforms
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[x] Android: Native
[ ] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[ ] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos
Add any screenshot/video evidence

https://github.com/Expensify/App/assets/78819774/cf05b9a9-95ae-4048-81e3-b1ed93b4f489
View all open jobs on GitHub

We think that this bug might be related to #vip-vsp

I don't think this is really a bug. This is related to our new native markdown formatting. Closing.


Keyword can not be used as function in provided clause

Keywords implement IFn, so they can be used as a function on maps like so:
(:a {:a 1}) ; => 1

However if I try to do this in a provided clause like in this contrived example:
(def baz {:a 5})
(unfinished bar)
(defn foo [x] (even? (bar x)))
(fact "Oops"
  (foo 5) => true
  (provided (bar (:a baz)) => 6))

...an exception is generated, originating from here: https://github.com/marick/Midje/blob/master/src/midje/parsing/util/fnref.clj#L8
It appears to not consider keywords as a candidate for function classification.
I am using version 1.8.3

In fact this would extend to any form that evaluates to a callable but is neither a symbol nor sequential.

I'm uncertain what the right solution is. In general, a form like (provided (x (y ...)) => z is expanded into two prerequisites:
(provided
  (y ...) => ..y-result-metaconstant..
  (x ..y-result-metaconstant..) => z

What should that actually mean when the token labeled y above is actually a keyword? Should it be ignored? If so, what would it mean if the "argument" to the keyword is actually a metaconstant? Should it be treated as a data prerequisite? - even though data prerequisites haven't really proven to be very useful.

fixed in https://github.com/marick/Midje/issues/393


Replace TGMI logo with PARADIGM logo and change copyright text in footer

Merged into release/110 and master


⚠ ClamAV has degraded performance

In 6dba85b, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 68 ms

Resolved: ClamAV performance has improved in 1fa3c93.


docs: update cover

Motivation

Links to misc/struct-encoding.md are incorrect
Some links on the cover are incorrect
The cover is out of date

Solution

Fix links
Update the cover

@all-contributors add @0xvv for review


Avoid type widening with enum-typed values in FormValue

The current generic type for FormValue is this:
export type FormValue<Schema> = Schema extends
	| string
	| number
	| boolean
	| Date
	| bigint
	| null
	| undefined
	? string | undefined

In this, if you have an enum or constant string type, then it will get widened into a string type. Turning Date and null types into string | undefined makes sense, but it is kind of just inconvenient to lose type information if you have an enum.
This tweaks the generic type so that if you have a type that extends string, then the FormValue generic uses that type instead of widening to string.

This is tricky... because conform does not validate the form value. The type you got is more or less a faith that the type should be mostly correct if you are using Conform properly. But it couldn't stop you from put a hidden input with an invalid enum which will be reflected on form value regardless. 😅
Maybe it is alright to made the same assumption with enum here... What do you think?

I think that hat's what typescript's about, constraining things to be something we want even though Javascript allows to do about anything.  I would slightly incline to have it widened and put the responsibility on the developer. I know, I also don't like not having the convenience but.. It forces the developer to put more checks in place.


PowerShell Alpha18 - Linux "ll" alias to "ls -l" command is not recognized.

Steps to reproduce
##Executing command alias equivalent to "ls -l":
ll
Expected behavior
##Display same results as executing command "ls -l":
ll
Actual behavior
ll
-> Error out
(see image in PowerShell)

(see image Linux)

Environment data
OS: Ubuntu 16.04.2 LTS

PS /home/maxt> $PSVersionTable

Name                           Value
----                           -----
PSVersion                      6.0.0-alpha
PSEdition                      Core
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
BuildVersion                   <IP_ADDRESS>
GitCommitId                    v6.0.0-alpha.18
CLRVersion
WSManStackVersion              3.0
PSRemotingProtocolVersion      2.3
SerializationVersion           <IP_ADDRESS>

ll is a Bash alias.  alias in Bash is a built in command so PowerShell has no awareness of it.  Perhaps this is something you could add to https://github.com/PowerShell/PowerShell-RFC/issues/68


Use a markdown-it-katex fork with latest KaTeX support

The markdown-it-katex package now has 6 PRs to update the ancient KaTeX version and apparently the maintainer is not going to merge any of the PRs for some reason (perhaps they're just busy or no longer maintaining the package?)
Thus I created a fork with an updated KaTeX (including tests) and used it here.
Closes #59

Is there any progress on this?


Add check parsetree is not NULL at _SPI_execute_plan and _SPI_prepare_plan

Add check parsetree is not NULL at _SPI_execute_plan and _SPI_prepare_plan
The parsetree pointer may be NULL. It uses to get information about the node
without checking on NULL. At the other places at the _SPI_execute_plan function
and the _SPI_prepare_plan function this pointer is checked before using. Needed
check was added.

add title to PR description

add title to PR description

done.


[BUG] Cannot migrate replicas in an evicting disk to a new disk on the same node when the node level hard affinity is applied.

Describe the bug
This issue (adding a new disk then evicting the old disk on the same node) is similar to https://github.com/longhorn/longhorn/issues/1400 (migrate replicas to another disk of the same node) but they are not identical.
For example, when the node level soft anti-affinity is disabled, the user just wants to evict an old disk but does not matter the migration destination / there is no enough space in the other disks of the node, some volume can migrate the replicas to other nodes as long as there is no peer replicas on those nodes.
To Reproduce
Steps to reproduce the behavior:

Disable the setting Replica Node Level Soft Anti-affinity
Create some volumes. Make sure there is a replica on each worker node.
Add a new schedulable disk to a node.
Disable the scheduling then Enable eviction for the old disk on the same node.
All replicas will be not migrated to the new disk.

Expected behavior
All replicas should be migrated to the new disk.
Log
Environment:

Longhorn version: v1.2.1-rc2

Test Steps:
Case 1: Evicting disk

Disable the setting Replica Node Level Soft Anti-affinity
Create some volumes. Make sure there is a replica on each worker node.
Add a new schedulable disk to a node.
Disable the scheduling then Enable eviction for the old disk on the same node.
Verify that the replicas on the old disk move to the new disk

Case 2: Retest evicting node
Case 3: Since this PR refactor the replica scheduling logic, we need to double check the replica scheduling behavior in all cases:

Replica Node Level Soft Anti-Affinity
Replica Zone Level Soft Anti-Affinity

ON
ON

ON
OFF

OFF
ON

OFF
OFF

Test Steps:
Case 1: Evicting disk

Disable the setting Replica Node Level Soft Anti-affinity
Create some volumes. Make sure there is a replica on each worker node.
Add a new schedulable disk to a node.
Disable the scheduling then Enable eviction for the old disk on the same node.
Verify that the replicas on the old disk move to the new disk

Case 2: Retest evicting node
Case 3: Since this PR refactor the replica scheduling logic, we need to double check the replica scheduling behavior in all cases:
Replica Node Level Soft Anti-Affinity Replica Zone Level Soft Anti-Affinity
ON	ON
ON	OFF
OFF	ON
OFF	OFF

Also the test cases of replica auto rebalance needed to be covered in the regression.

ref: https://github.com/longhorn/longhorn/issues/2141

@PhanLe1010 please also come out the test skeleton for this new test case in longhorn/longhorn-tests. Thanks.

Validation: Partially Failed
Longhorn version: v1.2.3-rc1
Case 1: Evicting disk

Disable the setting Replica Node Level Soft Anti-affinity
Create some volumes. Make sure there is a replica on each worker node.
Add a new schedulable disk to a node.
Disable the scheduling then Enable eviction for the old disk on the same node.
Verify that the replicas on the old disk move to the new disk

Replica moved to the new disk, but volumes state changed from attached to detached.

Validation: PASSED
Longhorn version: master  / 2021-12-03


372 refactor pickup list join leave

#372
had to insert ng-if for md-button to make hide and show working.

Codecov Report

Merging #420 into master will decrease coverage by 0.25%.
The diff coverage is 36.36%.

@@            Coverage Diff             @@
##           master     #420      +/-   ##
==========================================
- Coverage   98.59%   98.33%   -0.26%
==========================================
  Files         199      199
  Lines        2699     2708       +9
==========================================
+ Hits         2661     2663       +2
- Misses         38       45       +7

Impacted Files
Coverage Δ

...kupList/pickupListItem/pickupListItem.component.js
100% <ø> (ø)
:arrow_up:

.../_pickupList/pickupListItem/pickupListItem.spec.js
100% <ø> (ø)
:arrow_up:

...ponents/group/_pickupList/pickupList.controller.js
82.85% <0%> (-9.21%)
:arrow_down:

...upList/pickupListItem/pickupListItem.controller.js
100% <100%> (ø)
:arrow_up:

Continue to review full report at Codecov.

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

@Rian0702 Are you still interested in working on this?

I will finish this PR now


Kestrel listening port is not working

I try to define 22 profile to launch kestrel:
    "Dev": {
      "commandName": "Project",
      "launchBrowser": true,
      "launchUrl": "http://localhost:5000",
			"environmentVariables": {
				"ASPNETCORE_ENVIRONMENT": "Development"
			},
      "applicationUrl": "http://localhost:5000"
    },
	"PreProd": {
		"commandName": "Project",
		"launchBrowser": true,
		"launchUrl": "http://localhost:6000",
			"environmentVariables": {
				"ASPNETCORE_ENVIRONMENT": "PreProd"
			},
		"applicationUrl": "http://localhost:6000"
	}

Under VS2017, the ASPNETCORE_URLS variable should be set to applicationUrl and when running, kestrel claims to listen "http://localhost:6000" but doesn't, browser can't reach the application.
I've tried to browse port 5000 (default port) it fail too.
What's wrong with kestrel?

If you change launchUrl to http://<IP_ADDRESS>:6000 (or http://*:6000) does it work?

No
http://<IP_ADDRESS>:6000 same result.
I've tried to change applicationUrl too and it fail too.

launchUrl is for the browser when you launch it. Should be http://localhost:6000.
Can you try to change applicationUrl to http://*:6000 instead? (Or some other port :D)

Also, could you paste the Kestrel log output.

Seems SDK version is guilty. My app use 1.0.4 (not work) and a fresh Webapp using 1.1.2 work like a charm. I'm trying to upgrade and keep you posted.

Can you try to change applicationUrl to http://*:6000 instead? (Or some other port :D)

http://*:6000 raise an error.

Ok, after changing SDK version (still fail), I've the idea to change "applicationUrl": "http://localhost:6000/" to "applicationUrl": "http://localhost:6001/" that's work...
Seems that port 6000 (and 7000 and ... ?) are reserved and the application cannot run on thos port even if kestrel is claiming to listen on it...

@nimbusparis is this Linux?  Perhaps there's something else running on port 6000? You can check with lsof -i :6000 -S

That was under windows 10, netstat -a | grep 6000 show nothing

FYI: If someone else comes across this issue: seems like ports 6000 and 7000 are reserved for something. After changing "applicationUrl" in launchSettings.json from 6000 to 5000 it worked fine.
Kestrel claims it's listening on ports 6000 and 7000 but it's not really - would be preferable to throw an error during startup is the ports were already occupied.


sp

hey @blueyed can you add me to the org?

Welcome on board!
I prefer for stuff to be squash-merged btw.. :)

..also adjust the commit msg, please.

how about the organization ? https://github.com/neomake

Should be good now when you accept the invite.


Adding authentication support to hilink

This pull request adds authentication to the hilink package.
To use authentication, instantiate the client with the following instruction:
c := hilink.NewClient(hilink.Auth("admin", "myPassword"))
In the current hilink implementation, there is no automatic new session setup when it expires. The user would have to instantiate a new client to get an authenticated session. You might want to change this so that the client automatically setup a new session and authenticates itself when the session is expired. I don't think the end user should have to call NewSessionAndToken() and SetSessionAndTokenID() himself. All you need is call the login() to authenticate.
In addition, I removed a small problem in NewSessionAndTokenID() that would  prevent completion without error with my device (4G router B525S23a). The protocol change is that the SesInfo value doesn't start with "SessionID=" in my case.
Finally, I change the error text "no power" to "unauthorized" to provide a better hint on the cause, and the Auth() option.

Hello, i have a 4G router B525s-65a how can i use the authentication, i mean where i have to put c := hilink.NewClient(hilink.Auth("admin", "myPassword")) in command line or in a ".go" file ?
Thanks.


Check if the consensusset storage size can be reduced

Using the initial catalogation of what persistent data is stored (and how), as found at https://github.com/rivine/rivine/blob/master/doc/PersistentStorage.md, it should be fairly easy to:

conclude what data can be eliminated entirely;
what data is required but can be optimised in terms of storage;

Based on the documentation of the ConsensusSet's persistent storage (https://github.com/rivine/rivine/blob/master/doc/PersistentStorage.md#consensusset) and some research on how the data of each bucket listed there is used, I have come to the following conclusion.
buckets to remain as-is

"Consistency";
"BlockHeight";
"BlockPath";
"BlockMap";

buckets that can be deleted

"TransactionIDMap"

Currently it maps each shortID to the actual Tx ID;
However, given that the ShortID contains the block height and positional index of the Tx within that block, we can just as well fetch the block from the "BlockMap" bucket, and use our Tx pos index to get the Tx within that block, to than compute the TxID;
It means we have to fetch more data, but it does mean we can delete an entire bucket, saving more than 4MB ((8+32)*103830);

buckets that should remain, but can be optimised

"CoinOutputs"

Currently it maps each CoinOutputID with the actual CoinOutput. This is a waste, as we already have the CoinOutput stored as part of the block in the BlockMap as well. Therefore the question arises, why not use the CoinOutput of the BlockMap directly. And that's exactly how we can optimise that bucket.
I propose that we map each CoinOutputID to the following new struct type:
// 10 bytes in total
type CoinOutputRef struct {
    // contains block height and pos index of Tx within that block
    TransactionShortID types.TransactionShortID // 8 bytes
    // pos index of output within Tx
    OutputPosIndex uint16 // 2 bytes
}

Using this ref info, we could fetch the CoinOutput (and BlockStakeOutput) directly from the "BlockMap" when looking up the CoinOutputID (or BlockStakeOutputID).

As implied, the same could be done for the "BlockStakeOutputs" bucket.

It would save another ~10 MB.
buckets that can be deleted, as a heavy optimisation, but it is a bit crazy
Currently we also have a ton of "dco_*" buckets, which store all delayed coin outputs
into a bucket identified by the block height where the CoinOutput is unlocked.
This is done for all MinerPayouts (Tx Fees and Block Creation Rewards).
I find this system however pretty weird, and not sure why this special case.
We could just as well store them as special values directly in the
unspend "CoinOutputs" buckets. Of course, I say special value,
as these won't really refer to CoinOutputs but to a specific MinerPayout within a block.
Hence we would store it as 6 bytes (instead of the 10 bytes of a regular CoinOutputRef allowing us to differentiate values when looking up the CoinOutputID), using a struct type such as the following one:
type MinerPayoutRef struct {
    BlockHeight uint32
    MinerPayoutPosIndex uint16
}

This would allow us to look up the MinerPayout, when given a CoinOutputID. We would than manually (on-the-fly) create a BlockHeight-Locked (using the sum of the MinerPayout's block height and the MaturityDelay configured value) Conditioned CoinOutput using all this data.
It's a bit crazy, but it would allow us to save on quite some logic, and once again it would allow us to remove an entire bucket and instead store ref content, which is a lot smaller. It would allow us to save 8MB+ again (about 42 bytes per MinerPayout's coinOutputID).
some more remarks
Given the consensusDB is about 266 MB, and my proposal only saves more or less 22-25 MB, we can conclude that most of data is really going to storing all the blocks. Therefore it might be interesting to see if we really cannot optimise that Bucket further. We have to be careful however, that if we do find an optimised way, that we can still convert that block to a regular block should we have some reverts. Personally I would like to not touch that BlockMap bucket, but if we really want to save more than 22-25 MB from the RedisDB, than we'll have no choice but to touch the BlockMap.

...we can conclude that most of data is really going to storing all the blocks.
Therefore it might be interesting to see if we really cannot optimise that Bucket further.
...

I got inspired by the byte-saving work that is going on for the 3bot registration feature in tfchain, as can be read at https://github.com/threefoldfoundation/tfchain/blob/master/specs/3bot_registration.md#compact-binary-properties.
Given we are free to store the persistent data in whichever way we want, without breaking anything (as it is client-side), we could bring over the concept of dynamic integers, dynamic slices and smart-compact types, as proposed in the 3bot-registration spec.
Even if it saves us only 100 bytes per block (and I believe it to be much more) it would already save us 10+ MB.

While I was waiting for some other stuff, I gave this issue a thought as well. I think we look for patterns, we might also see a lot of the same category of block we store. The most obvious pattern is definitely the pure creation block which we could store with as little information as:
{
    "parentid": a2ae082f163646e5d8daa3960c8819c9bd2caa46b826d952a3e61d1512a6d9b0,
    "timestamp":<PHONE_NUMBER>,
    "blockheight": 115265,
    // optional, can be used in case it isn't the same as the BSOutput
    // "payoutAddress": "010088bcaebd3b1aea033e96653e50a4ca7ee999cfb50382c5d78d98be1fa6ea1b10f7063a4e97",
    "bsInput": <fulfillment>,
    "bsOutput": <condition>,
}

Which would save about 110 Bytes per block, or 11.5 MB for 103830 blocks.
We can even go further and replace a2ae082f163646e5d8daa3960c8819c9bd2caa46b826d952a3e61d1512a6d9b0 (32 bytes) with 8 bytes (the block height), it would however mean we have 2 extra DB calls for any fetched explorer block. This starts to get at the extreme though, but it is possible.
There might also be other of such patterns. Decoding the pattern-version of a block is cheap, as we can just use a single byte to identify our special types as well as one type to indicate we are dealing with a normal block (as a catch-all type). The encoding of such pattern can get more completer depending how complex we get.

use a single byte to identify our special types as well as one type to indicate we are dealing with a normal block (as a catch-all type)

this also allows us to apply the approach of my previous comment, where we can identify a block as a byte-optimized block, such that it uses the most byte-optimial versions of the regular Txs,

we do have to be careful with this approach, as we need to ensure that we can always go back to the original Block.

It is another approach we can go for. In the end, the user of the consensus module will still retrieve the blocks as they are, as we can turn them back into their regular form prior to returning it to the callee.


How fast is it recommended to use --delay ? Unable to find Xpath target for primaryLeft/secondary which doesn't have inputs, so won't even try

Moving too fast for your connection speed? Try adjusting the delay option (default is 1000)

How fast is recommended to use --delay? Can we use --delay 100?
Can we do --delay 1? When I try that fast the given alert name is not found and the code stops. If there is an error can we apply an exception to re-try again and continue the operation?
Even for --delay 1100 I am getting following error, and I have to restart adding the alerts:
 ERROR  Unable to find Xpath target for primaryLeft/secondary which doesn't have inputs, so won't even try                                                                                18:28:16

  at performActualEntry (node_modules/@alleyway/add-tradingview-alerts-tool/src/service/tv-page-actions.ts:228:32)
  at configureSingleAlertSettings (node_modules/@alleyway/add-tradingview-alerts-tool/src/service/tv-page-actions.ts:238:5)
  at addAlert (node_modules/@alleyway/add-tradingview-alerts-tool/src/service/tv-page-actions.ts:360:5)
  at addAlertsMain (node_modules/@alleyway/add-tradingview-alerts-tool/dist/add-alerts.js:175:9)
  at Command.<anonymous> (node_modules/@alleyway/add-tradingview-alerts-tool/src/cli.ts:77:13)

default is 1000, so I would experiment with 2000 to see if that works, if not, try 3000..if that works, then try 2500..and so on..

@mlake I was able to make it work with --delay 1500.
Just a minor note. I have called  await sleep(20000); right before if (accessDenied) check in the add-alerts.js file. That gives me time to remove alerts and update the strategy I am using.
function sleep(ms) {
  return new Promise((resolve) => {
    setTimeout(resolve, ms);
  });
}