Link from CONTRIBUTING to the code of conduct.

Contributes to https://github.com/dart-lang/site-www/issues/1792.

/cc @timsneath


[FEATURE] get traceid of langfuse as a response object

Describe the feature you'd like
A clear and concise description of what you would like Flowise to have.
right now we only get prompt output as a response .
I need the traceid of langfuse as a response object with prompt output so that users have more control over the implementation of langfuse scores() and other langfuse features."
Additional context
Add any other context or screenshots about the feature request here.

can you point us to langfuse docs for that? currently we just pass in langfuse callbacks into chains/agents, and the response we get back from langchain doesnt have the traceid

sure
https://langfuse.com/docs/integrations/sdk/typescript
this is in node js , document is also available in python

I am interested in this too.
Now it is a bit of a pain to work with Flowise <> Langfuse. Specifically, the lack of access to traceId as mentioned here in the response causes downstream issues.
For example, in our case we'd like to track user feedback on an LLM response (thumbs up/down) and associate it with a specific traceId.
Now we resort to hacks and run into timing issues. It'd be extremely helpful to get back the traceId. Or at least allow us to pass metadata in Langfuse so we can do our own matching. I opened anothet relevant ticket here.

@giorgosera PR merged. Its now working. See discussion


Added hint to inner_prod scan

Some issues with best effort callback. Used a hint in the relative_inner_product_scan to help guide the best effort callback.
Sample code to run (toggle False to True to test between the outer and inner product scans):
(Note this is a copy and paste from documentation)
from bluesky.plan_stubs import abs_set, wait

from bluesky.plans import (relative_outer_product_scan)
from bluesky.plans import relative_inner_product_scan

from bluesky.preprocessors import (run_decorator, stage_decorator,
                                    subs_decorator)
from bluesky.callbacks import LiveTable, LivePlot
from ophyd.sim import det4, motor1, motor2
from bluesky import RunEngine

from bluesky.callbacks.best_effort import BestEffortCallback

from bluesky.utils import ts_msg_hook

bec = BestEffortCallback()

def grid_in_grid(samples):
    """
    Scan a grid around the neighborhood of each sample.

    Parameters
    ----------
    sample : dict
        mapping each sample's name to its (x, y) position
    """

    # In this example we hard-code the hardware and other parameters. For more
    # flexibility, they could instead be parameters to the function.
    detector = det4
    x = motor1
    y = motor2
    x_range = y_range = 0.2
    x_num = y_num = 5

    hints = dict()

    @subs_decorator([
                     LiveTable([detector, x, y]),
                     #LivePlot('motor2'),
                     bec,
                    ])
    def plan():
        for name, position in samples.items():
            # Prepare metadata.
            md = {'sample': name}  #, 'hints': hints}

            # Move to the cetner of the sample position.
            x_pos, y_pos = position
            yield from abs_set(x, x_pos)
            yield from abs_set(y, y_pos)
            yield from wait()

            # Scan a grid around that position.
            if False:
                yield from relative_outer_product_scan([detector],
                                                       x, -x_range, x_range,
                                                       x_num,
                                                       y, -y_range, y_range,
                                                       y_num,
                                                       True, md=md)

            else:
                yield from relative_inner_product_scan([detector],
                                                       x_num,
                                                       x, -x_range, x_range,
                                                       y, -y_range, y_range,
                                                       md=md)

    yield from plan()

# Example usage:

RE = RunEngine({})
RE.msg_hook = ts_msg_hook
RE.subscribe(print)

#bec = BestEffortCallback()
#RE.subscribe(bec)

samples = {'A': (1, 1),
           'B': (1, 2),
           'C': (1, 3),
           'D': (2, 1),
           'E': (2, 2),
           'F': (2, 3)}

RE(grid_in_grid(samples))

This is a first pass for #868 and #867.

To my comment from Slack:

I think that the plan hints should give the complete story, and it should be up to BEC to decide whether it wants to ignore axes beyond the zeroth one. Someday we might get better high-dimensional viz, and it would be nice if it worked on old data.

As I load my memory of the design discussions around 'hints' back into mental RAM, I think we actually planned for this case (but neglected to implement it!). For a grid scan over two motors, the hint looks like:
[(('motor1',), 'primary), ('motor2',), 'primary')]

For an inner-product scan with two motors, the hint should look like:
[(('motor1', 'motor2'), 'primary')]

Each element in the list is an axis of the scan. That axis is often composed of just one motor, but as in the case of an inner-product scan, it can be composed of multiple motors moving together. This is why we specify ('motor1',) is a single-element tuple -- we left room for the more general case.

Ok, here is a proposed change. There are two levels to this:

Inner product scan needs to provide a hint that suggests motors are along the same axis, i.e. for two motor names, 'motor1' and 'motor2', changed the assumed dimensions from :

[(('motor1',), 'primary), ('motor2',), 'primary')]

to
[(('motor1', 'motor2',), 'primary')]

That's the attempt I made in plans.py
2. Finally, there is an issue where this list is currently flattened and assumed each motor name is a dimension, meaning both these lists would change to:
[(('motor1', 'motor2',), 'primary')]

I have modified the code so that we pick only one element of the name tuples in each list (('motor1', 'motor2') for example).
Thus we end for both cases with the same flattened list as before, but with the correct number of elements.
TODO (suggestions from Dan)

Right now, the first motor is assumed to be the x-axis. It could be interesting to allow the user to choose another motor (or require them to put the motor they want as x-axis first)
It might be interesting to hold on to the extra motor information, for example, use 'motor2' for the legend in the inner_product_scan case (would not make sense for outer_product_scan.

These could be a new PR with issue or handled here.
Thoughts? Suggestions?

Codecov Report

Merging #917 into master will increase coverage by <.01%.
The diff coverage is 91.66%.

@@            Coverage Diff             @@
##           master     #917      +/-   ##
==========================================
+ Coverage   89.38%   89.38%   +<.01%
==========================================
  Files          46       46
  Lines        8121     8131      +10
==========================================
+ Hits         7259     7268       +9
- Misses        862      863       +1

Impacted Files
Coverage Δ

bluesky/callbacks/best_effort.py
87.46% <100%> (ø)
:arrow_up:

bluesky/plans.py
86.11% <90.9%> (+0.09%)
: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 a3f23fa...5e528b5. Read the comment docs.

Elegant! Your helpful comments should rescue us next time we have to remember how this works.

thanks!


Allow to have dots on names and namespaces

According to http://wiki.commonjs.org/wiki/Packages/1.0, dots are allowed to be used on CommonJS packages names. This change use slashes (that's a not allowed character) to be used as namespaces separator and restored the previous behaviour by just removing the dots. An alternative, more compliant option would be to allow to use them in the namespaces names, but this would require to access to them using brackets instead of object notation.
A proposal for UMD is available as a pull request at https://github.com/ForbesLindesay/umd/pull/13

I going to close this with the same advice given in the linked thread.


Unwrap protocol errors

Fixes the issue when Stargate was returning a ServerError instead of protocol errors.
ProtocolException is not a CassandraException so it was not being converted at each persistence implementation.
It doesn't include an integration test in the patch because #169 is coming. You can look at the result of rebasing this on top of @olim7t changes with the test enabled here:  583bc9eef06f86eb4a997ba2bc621db539023d0d

 Here is an overview of what got changed by this pull request:

Complexity decreasing per file
==============================
+ persistence-cassandra-4.0/src/main/java/io/stargate/db/cassandra/impl/Conversion.java  -1
+ persistence-dse-6.8/src/main/java/io/stargate/db/dse/impl/Conversion.java  -1
+ persistence-cassandra-3.11/src/main/java/io/stargate/db/cassandra/impl/Conversion.java  -1

See the complete overview on Codacy


Cannot run the app on Windows 11 dark mode

Just installed, tried to run the app but it gave me those errors.

windows11 (b22000) using dark mode in settings (Personalize - Color)

Woah wth never seen that! I'll debug today and find the errors. Does the same happen when you run it directly from Python3.10?

looks like your theme files are corrupted

Looks like the system can't read the images in the first place!

looks like your theme files are corrupted

Tk 8.5 gives this same error, when using png-s, since png support was only added in Tk 8.6. Probably this isn't the error, if TimerX was compiled with Tk 8.6, the exe should contain that version, but idk exactly how cx_freeze compiles python files.

Yeah we should switch to pyinstaller soon.

Woah wth never seen that! I'll debug today and find the errors. Does the same happen when you run it directly from Python3.10?

will try it later! but on my laptop using Windows 10 (dark mode)
the background is just transparent like this?

That's normal. Switch to darkmode and restart the app via CLI, it would look better.

That's normal. Switch to darkmode and restart the app via CLI, it would look better.

Oh didnt know that option thanks! now it looks like this sadly

And if I set the timer for 1h 0m 0s, it just changes to default second when I hit play btn (setting like 1:33:0 works like 1:32:50)?

Use it in system dark mode, it would look a lot more better ;)

It's the font colliding with the background, but hold up, the titlebar... Anyone know what that lie of code is?

But this is indeed a bug, we achieved this at compile-time, hence we either have to switch to PyInstaller, or fix cx_Freeze. Have YOu edited any code in setup.py? Could lead to mishaps.
Tagging this as compile error and adding to project to get resolved.

We have plenty of time in the future since we have got holidays, so we'll try finding a potential bug fix at that time, it's best to investigate this for the time being. This deffo needs some team effort, so doing bug fixing in the holidays would be great since we can work simultaneously.

Well, No the background isnt supposed to be transperent, it should have acrillic on win10 and mica on win11.
@not-nef can you add the build.bat from Flux to TimerX?

Will do when i have time

You know, while rereading this, I found this:

And if I set the timer for 1h 0m 0s, it just changes to default second when I hit play btn (setting like 1:33:0 works like 1:32:50)?

It seems weird, but I don't know how the heck we could find that one line that disrupts this... Sorry to tell this really late, but I have vacations from tomorrow, so can't help at that time :( will try being updated though.

Ill fix the default sec thing by monday if nobodydoes it tell then


update docs on cmake.mingwSearchDirs

bugfix: https://github.com/microsoft/vscode-cmake-tools/issues/2996

I think it's better to just not add 'bin' to the path.  Fix it here:
https://github.com/microsoft/vscode-cmake-tools/blob/f666577a9876272e2be6b358b7309d49e14c4835/src/kit.ts#L1212
Otherwise we also have to explain it in package.nls.json.  It's easier to just not append 'bin'.

Let's fix it to work instead of updating the description.

The description needed to be updated to show that we removed the default value https://github.com/microsoft/vscode-cmake-tools/pull/2942


[bug] maximized: true isn't working

Describe the bug
When setting maximized to true in tauri.conf.json the window doesn't get maximized. Although, this issue from 3 years ago claims that it has been fixed.
Reproduction
Set maximized to true
Expected behavior
The window is expected to be maximized on startup
Full tauri info output
[✔] Environment
    - OS: Windows 10.0.19045 X64
    ✔ WebView2: 127.0.2651.98
    ✔ MSVC: Visual Studio Build Tools 2022
    ✔ rustc: 1.80.1 (3f5fd8dd4 2024-08-06)
    ✔ cargo: 1.80.1 (376290515 2024-07-16)
    ✔ rustup: 1.27.1 (54dd3d00f 2024-04-24)
    ✔ Rust toolchain: stable-x86_64-pc-windows-msvc (default)
    - node: 18.18.0
    - yarn: 1.22.22
    - npm: 10.5.0
    - bun: 1.1.15

[-] Packages
    - tauri [RUST]: 2.0.0-rc.2
    - tauri-build [RUST]: 2.0.0-rc.2
    - wry [RUST]: 0.41.0
    - tao [RUST]: 0.28.1
    - @tauri-apps/api [NPM]: 2.0.0-rc.0
    - @tauri-apps/cli [NPM]: 2.0.0-rc.3

[-] App
    - build-type: bundle
    - CSP: unset
    - frontendDist: ../out
    - devUrl: http://localhost:3000/
    - framework: React (Next.js)
    - bundler: Webpack

Stack trace
No response
Additional context
No response

I couldn't reproduce this, please provide a minimal repro

For some reason it just worked on my main project while I was testing the minimal repo, which also worked. I think I was doing something wrong. Sorry for the trouble.

No worries


Update cors-configuration.adoc

Added colon (:) in Route CORS Configuration in cors value

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

@korade-krushna Thank you for signing the Contributor License Agreement!

Duplicates f3c1f2ebd59ca8c2a9f9e029ce38f7c3735ac855


Fix false positive for Lint/FloatComparison against nil

Hi! This PR fixes a false positive for Lint/FloatComparison against nil.
Here is an example when a false positive can occur:
Float(user_submitted_value, exception: false) == nil

If user_submitted_value is a value that cannot be made a Float, nil is returned because of the exception: false param.

Before submitting the PR make sure the following are checked:

[x] The PR relates to only one subject with a clear title and description in grammatically correct, complete sentences.
[x] Wrote good commit messages.
[x] Commit message starts with [Fix #issue-number] (if the related issue exists).
[x] Feature branch is up-to-date with master (if not - rebase it).
[x] Squashed related commits together.
[x] Added tests.
[x] Ran bundle exec rake default. It executes all tests and runs RuboCop on its own code.
[x] Added an entry (file) to the changelog folder named {change_type}_{change_description}.md if the new code introduces user-observable changes. See changelog entry format for details.

Done, let me know if it should be more detailed.

Thank you!


feat(navigation): change base page to be navigation based

Short description of what this resolves:
Note - this PR is dependent on #20 being merged ahead of it.
This PR adjusts the base page to be of type NavigationPage so the built in navigation bar can be used when required.
Consistent styling is also applied to the navigation bar.
ConnectionPartialView is removed in place of the re-useable DetailedCell.
Changes proposed in this pull request:

Push the base page as a NavigationPage in the navigation service
Add missing account icon to android
Add navigation bar styles
Change navigation type for ConnectionPage
Remove ConnectionPartialView instead use DetailedCell
Change empty state message on ConnectionPage

Fixes: #17

I have built and deployed this code change to an iOS emulator. Although I was not able to test the connections page functionality, using gorilla I was able to test the navigation, which all works.

Thanks, can you attach a screen shot of the main pages tabbed layout too?

Is this what you're looking for?

Yes, thanks.


Feature Request: Pad top of :GitBlame when using a winbar

Problem
When setting a winbar, like lspsaga does by default, :GitBlame is off by 1 line.
Solution
Detect if winbar is set and pad top of :GitBlame buffer to keep blame lines aligned with source code.

Hi aquillano,
Thank you very much for your report.
Could you please provide me with some demonstration configuration + demo (photo) . It can help me to identify the issue quickly.
Thank you

I've also got this issue, here's screenshot:

My temporary workaround for this is hiding barbecue before opening GitBlame. The whole lazy.nvim config looks like this:
return {
    "dinhhuy258/git.nvim",
    config = function()
        require("git").setup({
            default_mappings = false,
        })
    end,
    keys = {
        {
            "<leader>gb",
            function()
                require("barbecue.ui").toggle(false)
                vim.cmd("GitBlame")
            end,
            desc = "Git blame",
        },
    },
}

However, it would truly be nice to not have to do this. Fugitive has this same bug.

Hi @frantisekstanko  thank you very much for your support... Feel free to open a pr to fix it as i am quite busy these days :(

This feature is now available, so this issue should probably be closed.
To enable winbar, set winbar = true in the plugin config.


Make summaries more accurately account user ops

We use number of ops since last summary as one of the triggers for summary generation:
    public get opsSinceLastAck(): number {
        return this.heuristicData.lastOpSequenceNumber - this.heuristicData.lastSuccessfulSummary.refSequenceNumber;
    }

This counts all ops, system ops and runtime ops.
Runtime ops matter 100%, because they change document state.
Summarizing system ops matters substantially less, as they do not modify document state, thought if we have a lot of them, it will take a bit longer to boot (as it takes some time to apply them, though processing time is much faster for system ops as less code is involved).
The ideal solution is that we use different weights here - 1.0 for runtime ops, and let's say 0.1 for system ops.
Andrei just added tracking this difference for telemetry purposes only: https://github.com/microsoft/FluidFramework/pull/9687/files
It would be great to leverage that.
Can we pass this.opTracker to through layers to SummarizeHeuristicRunner object?
Actually, I think it would be better for RunningSummarizer to control all of that (see handleOp() handler), do this counting directly in this class, and

Pass extra info to this.heuristicRunner?.run() such that it can do weighted analyzes
Account these properties in trySummarize() method (and thus not need runtime to care about this tracking).

If we can do that, then I'd either reduce maxOps to 100 (see top of https://github.com/microsoft/FluidFramework/issues/9908 for where this setting exists), or simply use coefficients 1.5 & 0.2 (instead of 1.0 and 0.1) to keep old limits in place, but make system summarize more often with same number of user ops, and less often with same number of system ops.

@NicholasCouri, @andre4i - FYI

Closed to track in AB#126


Expose Mesh Data and World Reconstruction

Allow developers to access mesh data from Lumin in the Components framework.

MXSCOMP-47


Tl

Describe the issue here.
Relevant URLs

Provide relevant URLs (the doc page in question, project issues, community threads, etc.)

Thanks for the issue @leslinice. Closing due to no actionable requests. If you have something you think we could improve on, please let us know by either reopening this issue with an updated description or by opening another issue.


Add option to install Python libraries from a custom index url

Resolves #362
Description
Added the option to provide a custom index_url from which to install Python libraries on the Databricks cluster. This enables developers at enterprise organizations that are required to install libraries from their own index to provide this URL. Also, it becomes much easier to implement shared logic over different Python models when the need arises (if SQL really is no option).
Checklist

[x] I have run this code in development and it appears to resolve the stated issue
[x] This PR includes tests, or tests are not required/relevant for this PR
[x] I have updated the CHANGELOG.md and added information about my change to the "dbt-databricks next" section.

@andrefurlan-db, @susodapop, @ueshin
Would it be possible to retrieve feedback on this pull request? Thanks!

Apologies for the delay in communication.  @casperdamen123, if you are still interested in adding this functionality, can you add a comment here showing how it would be used?  I can check out and then add an integration test that validates the functionality.

@benc-db , the idea was to add an option to specify a private index url. Which is then picked up and used to install any Python packages from. The config would look like this in a Python model:
def model(dbt, session):
    dbt.config(
        submission_method="job_cluster",
        packages=["<some_python_package>"],
        index_url="<some_custom_index_url>"
    )

@benc-db , could you indicate how much longer it would take to review this PR since it's open for several months now.
Is there anything I can do to help at this point?
Thanks!

hope this helps

Definitely.  Will try to get this into the next release, thanks.

Have you actually seen this work with a custom url?  I hit all sorts of issues trying to come up with a good test case, since the only alt url I could think of was test.pypi.org; I can verify that this change does not break the normal package install, and I've seen enough from trying to install from test.pypi.org that I think the problem is actually missing dependencies in the index.  As such, if you have an alt that you've validated with, I'm inclined to merge after updating the changelog, and just not document this feature until I can come up with a repeatable test.  @susodapop @rcypher-databricks for viz.

@benc-db yes, have seen it work since I tested it using the index url of the companie I currently work for. When checking the libraries of job cluster that was launched, these were indeed installed from the provided index url.
Maybe you can setup a pypi mirror to use in the tests. Alternatively, you could use an existing one like here

New PR is here: https://github.com/databricks/dbt-databricks/pull/449


Add possibility to set shouldOptimizeForNetworkUse to true

Use case
On ios (camera platform package camera_avfoundation) it is possible to set AVAssertWriter to optimize video for network use by setting shouldOptimizeForNetworkUse to true. It would be nice to have this possibility and produce videos optimized for network use.
https://developer.apple.com/documentation/avfoundation/avassetwriter/1389811-shouldoptimizefornetworkuse?language=objc
Proposal
Add a new setting to CameraController constructor to enable this option for ios (probably ignored on android).

/cc @camsim99 Do you know if Android has anything comparable, such that we could potentially put this at the platform interface level?

/cc @camsim99 Do you know if Android has anything comparable, such that we could potentially put this at the platform interface level?

Looking at the video capture overview and related APIs, I don't see anything that would map to this :/

Thanks, sounds like we'll need to look into setting up a platform subclass system for MediaSettings the way we've done for settings objects in some other plugins then.


Decide Location for Pre-Curated Data Sets

Where will we store our pre-curated data  (e.g. U.S. Congress)? Does Santa Fe or a partnering institution have a cloud? Something like Box?

Will students have access to Box to download the data?


twMerge function incorrectly merges unrelated utility classes

twMerge function incorrectly merges unrelated utility classes
To Reproduce
import { twMerge } from 'tailwind-merge';

const merged = twMerge('text-balance text-sm');
// Expected: 'text-balance text-sm'
// Actual: 'text-sm' // or some other unexpected result

Expected behavior
twMerge should correctly merge text-balance and text-<size> without conflict, as they are distinct functionalities. The output should include both classes.
Environment

tailwind-merge version: 2.3.0

Additional context
The issue appears to stem from twMerge incorrectly identifying the two classes as conflicting, despite their different purposes.

The issue came from my side guys! 🤣


Theme fallsback to default when a prop is change in stories

Recently i added a default theme for some stories. I realized that when switching themes and updating some controls the theme falls back to the default theme.
export default {
  title: 'Molecules/A-Thing',
  component: AThingComp,
  args: {
  },
  argTypes: {

  },
  parameters: {
    cssVariables: {
      theme: 'ATheme',
    },
  },
}

Also i notice that in cookies is the correct theme.
Im not sure if it happened also to another person.

I have the same Issue.

Is this issue only present when setting a specific theme for a story?

Closing as stale


Faster Move caused error in console

When i try to move my mouse pointer faster it's showing error in console, please check it: http://prntscr.com/fxxppt
It's also happen for your demo link, just try to move your pointer faster in hover button.

Yeah I'm aware of this bug, it doesn't affect the performance of the library.
I will try to work on a solution for it.
Thanks for reporting it.


Test/review references viewlet API

Refs: https://github.com/microsoft/vscode/issues/106929

[ ] anyOS @alexdima
[ ] anyOS @dbaeumer

Complexity: 4
Create Issue

The references viewlet has been reworked and now allows to show arbitrary contents via an extension API.

Make yourself familiar with the references viewlet API: https://github.com/microsoft/vscode-references-view/blob/a44cd9a6b08f9570572287f0fdbb2bd0b8ad035b/src/references-view.d.ts
Create a new dummy extensions and extends the "Hello World" command so that it shows some content in the references viewlet

@jrieken I am a little bit puzzled. How to I talk to the reference viewlet. The API list only interfaces. So how I get to the instance ?

Like so
const api = await vscode.extensions.getExtension<Api>('ms-vscode.references-view')?.activate();
if (!api) {
	return;
}

Thanks!


Remove symbolize::Builder::enable_debug_syms()?

https://docs.rs/blazesym/0.2.0-alpha.6/blazesym/symbolize/struct.Builder.html#method.enable_debug_syms
This entire property seems rather...useless. In the current design "debug_syms" are only available for ELF (if present). We should probably move it into the Elf source object instead. But also we had some thoughts on decoupling ELF & DWARF and making the latter a first class thing, which may make more sense for split DWARF cases.

Interestingly we already do that for the inspect set of APIs, where the fact that we consult debug information is encoded in the source: https://docs.rs/blazesym/0.2.0-alpha.7/blazesym/inspect/struct.Elf.html


isISO8601 allows non-existent dates

isISO8601 currently passes non-existent dates such as "2017-06-31" and "2017-02-29".  If the day of the month is provided, it should be checked to make sure it's actually valid for the supplied month and year.

Ah yes, I was surprised too, that 31. February 2012 became "Fri Mar 02 2012 00:00:00 GMT+0100 (Mitteleuropäische Zeit) {}"

On it 👍

@LordSputnik @deniercounter - I've raised the PR, let me know what you think - #910


Method to get potential extrasynaptic connectivity

As used in this paper here. The machine-readable receptor mappings and so on are in the S1 Dataset: the paper also includes some new expression data, so I've added it to issue #274.
It would be valuable and possibly not particularly difficult to write a method which takes PyOpenWorm's expression data and uses it to construct the same sort of putative extrasynaptic connectivity matrix as is used in the paper: I think doing it dynamically is the way forward as the edges aren't all experimentally verified and that would be robust to changing expression data.
By getting the graph in networkx format, we can put lots and lots of metadata on the nodes and edges, including things like EC50 values which people could filter on, or how sure we are that something is indeed a receptor (like dop-5 and dop-6, which I think at the moment are just 'expected' dopamine receptors due to sequence similarity to other dopamine receptors).

@clbarnes Could you elaborate on what the extrasynaptic connectivity matrix would look like? It sounds like it would be another set of 1-to-1, unidirectional connections between neurons like the existing synaptic connections in PyOpenWorm-- is that accurate? When you suggest constructing the matrix dynamically though, it sounds like you'd want to store some data that generates the matrix and I'm having trouble reconciling those notions.

Sorry I missed this, but to reiterate what I said in my email so that it's out in the open:
We currently have access to:

which neurons express particular monoamines or neuropeptides
which neurons express particular monoamine or neuropeptide receptors

I don't think we currently do, but could very easily, store

transmitter-receptor mappings (trivial in the case of monoamines but many-to-many in the case of neuropeptides)

In the paper, we just drew 1-1, unidirectional edges between neurons expressing cognate monoamine and neuropeptide transmitters and receptors, regardless of morphology, but obviously these edges are putative in nature and not all of them have experimental backing. This connectivity will also change every time expression patterns do, and users may like to add their own expression data and so on, which would also change it.
As such, my proposal is that we add the transmitter-receptor mappings to the database dump csv (with a relationship of 'ligand' or something). We can then have a method like network.get_extrasynaptic_connectivity(monoamines: bool, neuropeptides: bool) which will basically do this underneath:
import networkx as nx

def _get_extrasynaptic_connectome(list_of_cells, cell_transmitter_mapping, transmitter_receptor_mapping, receptor_cell_mapping)
    """
    list_of_cells: List of neuron names
    cell_transmitter_mapping: Mapping of {cell_name: {set_of_transmitters}}
    transmitter_receptor_mapping: Mapping of {transmitter: {set_of_receptors}}
    receptor_cell_mapping: Mapping of {receptor: {set_of_cells}}
    """

    extrasyn_connectome = nx.MultiDiGraph()
    for cell_name in list_of_cells:
        extrasyn_connectome.add_node(
            cell_name,
            transmitters=cell_transmitter_mapping.get(cell_name, set()),
            receptors=set()
        )

    for source_cell, transmitter_set in cell_transmitter_mapping.items():
        for transmitter in transmitter_set:
            # filter on monoamine/neuropeptide if required
            for receptor in transmitter_receptor_mapping[transmitter]:
                for target_cell in receptor_cell_mapping[receptor]:
                    extrasyn_connectome.node[target_cell]['receptors'].add(receptor)
                    extrasyn_connectome.add_edge(source_cell, target_cell, transmitter=transmitter, receptor=receptor)

    return extrasyn_connectome

Then it'll always be accurate to whatever expression and ligand data the user has available, and we don't shoulder the blame for maintaining an authoritative extrasynaptic connectome where we don't have experimental evidence for some of the edges.

Discussed in slack starting https://openworm.slack.com/archives/pyopenworm/p1486224576000071


Updating sample and removing async "island" sections

Docs Build status updates of commit 3b703c1:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/develop/excel-async-model.md
:white_check_mark:Succeeded

docs/develop/web-client-performance.md
:white_check_mark:Succeeded

docs/resources/scenarios/analyze-web-downloads.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel

Docs Build status updates of commit b52aef7:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/develop/excel-async-model.md
:white_check_mark:Succeeded

docs/develop/web-client-performance.md
:white_check_mark:Succeeded

docs/resources/scenarios/analyze-web-downloads.md
:white_check_mark:Succeeded

docs/toc.yml
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel


Fix docker-compose-collect

Remove duplicate inserter command from docker-compose-collect.yml

+1

Hello,
Thanks for the fix. Sorry it took so long to integrate those changes (cf #2). I made an update today that should fix it.


 Sure, it is a fairly easy way and it will build an encoding that is efficient in terms of sequence length, but is that the only requirement for such an encoding? Would using an encoding that makes sense not make training and inference easier?
Should we not engineer an encoding instead? Using a-priori knowledge of languages from dictionaries for instance?

I don't understand this question. Take a closer look at for example the gpt-4 tokenizer. It basically splits the text up into words. How does this encoding not make sense?

Well, I did look at the cl100k_base tokens. And sure it has lots of words in them. And lots of wordpieces that make sense to me. But also just as an example:
26217 - ancellationToken
34233 -  cancellationToken
36935 -  cancellation
38337 -  CancellationToken
50322 - ancellation
82449 - (CancellationToken
83398 - Cancellation
96570 - cancellationToken
Not to mention things like:
28424 - ]])
8432 - [:,
28290 - ")));
27875 -  [`
27662 - ')).
27657 - ^^^^
27608 - ,.
I hope this clarifies what I mean it doesn't make much sense.

I was thinking a scheme where the tokeniser doesn't just give a sequence of tokens but also a set of modifiers to the tokens. The integer we would use as normal to lookup the token embedding, but the modifiers we map onto synthetic (non-trained) dimensions of the token embedding.
The tokeniser would have to be very different from just doing bpe. Instead we would make an attempt of building a tokeniser using a-priori knowledge of different languages. Just as an example:
" bus", "Bus", "busses" for instance would all map to the same integer and the synthetic dimensions would provide the information of the specific variation. Maybe language could be a modifier too. So that the same word in different languages also have the same integer.

Yes, I do not expect it to be easy. But then again the current approach shows us that our encoding doesn't have to be perfect. A hybrid approach maybe. Partly crafted/designed and using bpe to fill in the blanks.
Of course I am working from my hypothesis that a more sensible encoding has tangible benefits during training and inference. And that would require a demonstration. A test of some sorts.

Yes, i suggest trying it out on the TinyStories dataset as it only contains english words. I would first take a modern BPE, maybe the one from this repo and compare it with yours. But you have to be very careful on how you measure the performance. Maybe compare model parameters with loss?

You can do a lazy evaluation.
For example, just lowercase each input, check if it's part of the subsequent word, and if it is, map it to the same id.
"bus" in "Bus".lower()  # True
"bus" in "busses" # True
# etc

This would require some form of pre-tokenization though.
Keep in mind the more complex it becomes, the more likely you've gone down the wrong path.
The idea and goal would be to remain as general as possible.

@NiceGuySaysHi Thank you for the suggestion. It was honestly helpful. I think your suggestion of taking a modern bpe is good. If the tokeniser gets trained on the entire training data then it would result in a best-case bpe based encoder. This encoding would be the shortest encoding for the training data given a certain dictionary size. And would be the most efficient encoding in terms of required compute per training cycle.
The only way I see for a different encoding to win out in that respect would be if it reached lower loss with less training cycles.
If it doesn't then it would be disappointing but it wouldn't necessarily be a total loss. It may be that the resulting model performs better in other respects. Maybe it performs better outside of the data it was trained on. Or maybe it is less prone to hallucinations. Or maybe the resulting model survives quantisation more gracefully.
It may be interesting to train the same model but using the stock cl100k encoding and llama encoding and compare the training loss curves of those with the best-case bpe encoder.

We looked into what makes good tokenizations from mathematical perspective and found that Rényi entropy is a good ranker across multiple tokenizations. That is if you tokenize either with BPE, morphologically, or with some other algorithm it tends to select the tokenization which will lead to the highest model performance.
There's a tool for this evaluation tokenization-scorer.
I'd be super interested what kind of tokenization maximizes this metric (it's not BPE) and whether it's really the best one from performance perspective. It's a bit tangential to the original question but I still wonder what tokenization could directly optimize this.
Or maybe we could come up with different metrics that measure something else (ie not model performance) based on the tokenization.
(apologies for pushing another paper here)

Can we develop tiny language models based on characters (and or character groups)? Not word-based approaches, like tokens?
The idea is that there're n-chars (something similar to n-grams) as multivectors, from geometric algebra
1-chars are characters
2-chars are words with two characters
3-chars are words with three characters
...
n-chars are words with n characters
So, content is splitting into n-chars as geometric algebra vectors, not a big chunk as tokens (some words and characters)
That way even a dictionary can help the process
Characters are finite, limited to a small number of characters! Words are finite! Phrases are finite! and even sentences are finite!

@zouharvi You're fine. I am super interested to learn anything relating to encoding of text and downstream performance. I haven't properly read your paper yet, but I will.
The biggest issues I see with encoding text using something like bpe is that it quite often constructs tokens that obfuscate some of the contained information contained in the text.
Take 57266 from cl100k for instance. The model needs to learn how and when to use this token from examples. And that is fine, it can do that given enough examples. 57266 by itself doesn't tell me anything, but the sequence of characters associated with this token is ".isLoading" and this is suddenly tells me a lot. An encoding that turns this into a sequence of 3 tokens ".", "is" and "Loading" is certainly longer, but should (I think) allow for much easier generalisation.
I mean it is not like there are no other tokens that follow a similar scheme: .isPresent, .isBlank, .isVisible, .hasMore etc.
Don't even get me started on 24106 - .DataGridViewTextBoxColumn. WTAF.

@marcov-dart I see your point. Morphological tokenization (e.g. using morfessor) might do just that. For example the word pretokenization is split into morphemes as pre token iz ation. I point this out because morphemes are the minimal unit that carries meaning[1] and does not give way to statistical anomalies.
However the paper (and many other previous works) show that this is not the best tokenization. This makes me wonder what really makes good tokenization.
[1] Please correct me if this is wrong.

I feel certain that these problems are related to how human languages work and how the transformer works. In language there is lots of meaning in the separate words and lots of meaning in the structure of the sentence. The transformer learns the meaning of the tokens and learns what to pay attention to in terms of structure. This seems to fit well together which is nice and it explains why transformers work as well as they do.
Where it seems to fall down a bit is on the level of characters that make up the words. I suspect this is because individual characters don't really mean anything and combining characters into a word is a rather arbitrary exercise unless you are combining existing words into a new one.

@marcov-dart that's why I mentioned a character-based or character-grouping (vowels, plosives, fricatives, etc.) approach!
The approach I'm working on is something like applying RAG-like solution in pre-processing, tokenization and other steps!
DataGridViewTextBoxColumn is a 24-char token as a vector
Then it splits it to known n-chars vectors: Data + Grid + View + Text + Box + Column
And each of n-char is based on combination of 1-char vectors: D + t + a

I have a question regarding the discussion that follows. Has anyone ever tried doing something like Backoff merging i.e First merge N tokens instead of pairs, then reduce N and finally come down to a pair.

Library Is All You Need
It will bring efficiency and consistency, scalability, adaptability, and "interoperability" in language models globally
The idea is having a
BPE doesn't have dictionary, it's dependent to the dictionary (vocab pool) LLM builds during the training
I say let's have a separate (external) standard dictionary with universal indexed linguistic unites that is in hands of everyone
And all develop their LLMs based on
Current LLMs, RAGs, and Vector DBs are based on processing "individual characters and words" which is inefficient
There is a need for a universal linguistic unit library/dictionary/model for representation and processing to improve LLMs and reduce costs and hallucinations.
We have Unicode characters
Do we have Unicode character groups
Do we have Unicode words?
Do we have Unicode phrases?
Do we have Unicode sentences?
etc.


DDCE-4901: Update EORI check page and kickout page for public traders

there is one part of the ticket: "Remove the caption (grey text above H1- About the applicant) from the kick out/error screen
" that I think is missing here, unless I didnt notice it...


Folders can be locked and locking works partially

Describe the bug
As per https://github.com/owncloud/ocis/issues/1284#issuecomment-1238336767 ocis doesn't support locking a folder and doesn't have the plan to do so. Sending a LOCK request to the folder returns success status code and it also partially works. While a user can upload new files inside the folder, they however cannot create a new folder inside a folder that is locked.
Steps to reproduce
Steps to reproduce the behavior:

As user Einstein create a folder locked
Lock the folder locked, this works

curl -ueinstein:relativity -XLOCK "https://localhost:9200/remote.php/webdav/locked" -H "Content-Type: application/json" -d"<?xml version='1.0' encoding='UTF-8'?><d:lockinfo xmlns:d='DAV:'><d:lockscope><d:exclusive/></d:lockscope></d:lockinfo>" -vk

Note that the behaviour is same for dav and dav/spaces

Upload a file inside the folder locked , this works

curl -ueinstein:relativity -XPUT "https://localhost:9200/remote.php/webdav/locked/textfile.txt" -d"hello world" -vk

Create a new folder inside the locked folder i.e locked/test, doesn't work

curl -u einstein:relativity -XMKCOL "https://localhost:9200/remote.php/webdav/locked/test" -vk

Expected behavior
The request should be successful. As the locking of the folder is not supported.
Actual behavior
The folder cannot be created and the request returns with 423 Locked
> MKCOL /remote.php/webdav/locked/test HTTP/1.1
> Host: localhost:9200
> Authorization: Basic ZWluc3RlaW46cmVsYXRpdml0eQ==
> User-Agent: curl/7.81.0
> Accept: */*
>
* TLSv1.2 (IN), TLS header, Supplemental data (23):
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
* TLSv1.2 (IN), TLS header, Supplemental data (23):
* Mark bundle as not supporting multiuse
< HTTP/1.1 423 Locked
< Access-Control-Allow-Origin: *
< Content-Length: 278
< Content-Security-Policy: default-src 'none';
< Content-Type: text/xml; charset=utf-8
< Date: Thu, 02 Nov 2023 04:08:03 GMT
< Vary: Origin
< X-Content-Type-Options: nosniff
< X-Download-Options: noopen
< X-Frame-Options: SAMEORIGIN
< X-Permitted-Cross-Domain-Policies: none
< X-Request-Id: swikriti-OptiPlex-3070/1sUYtYpeM4-000261
< X-Robots-Tag: none
< X-Xss-Protection: 1; mode=block
<
<?xml version="1.0" encoding="UTF-8"?>
* Connection #0 to host localhost left intact
<d:error xmlns:d="DAV" xmlns:s="http://sabredav.org/ns"><s:exception>Sabre\DAV\Exception\Locked</s:exception><s:message>error: locked by create container: error: locked by urn:uuid:7163a1d7-f88e-4cd7-bbaf-99561594f9d7</s:message></d:error>%

Also, the folder looks like it is locked on the UI level as well

Setup
Please describe how you started the server and provide a list of relevant environment variables or configuration files.

OCIS: dfc55c39ef167fd4cebf671a8b9e6e9cba7c1508

Hi, @ScharfViktor  I have updated this issue, if the folder is not supposed to be locked then I think this behavior as explained in the issue is a bug. Please go through this and you can close the issue if this is not relevant.

I suggest:

create please only one test: user tries to lock folder and expect forbidden status code.
put to expected failures file and link with this issue
delete all steps related creating lock for folder

Note that the behavior is the same in public links as well. Public user can lock the folder partially as described in this issue if they have enough permission.


Hide warning output when running specs

Parser warnings that come up from various specs have been appearing in the output for a while now. I think they used to be hidden by a MYST_ENV variable being set to test, but that isn't happening anymore.
The proper solution for this is to use interpret_with_mocked_output for these specs so that the output is captured and can be tested properly (right now the specs just check if a warning was raised, not what that warning was).
Most of the offending specs are probably using the it_warns helper method defined here:
https://github.com/myst-lang/myst/blob/d5015522e4773429e578de347b93eabbe6a34c1b/spec/support/interpret.cr#L76-L83
The fix would be to call interpret_with_mocked_output(source) from this method instead of creating a new Interpreter and running it directly, then checking the warnings from the interpreter object returned by that method.

It actually looks like these messages are coming from vm_spec.cr where it's testing the standard IO usage. I'm not sure what the best approach to solving this is.

What makes you think it comes from vm_spec.cr? Code containing underscore vars is not run in the VM specs. And we really should rename VM 😅 ... I clearly remember dealing with just this issue before, I might have forgotten to push it here though, or I i did, and it somehow got broken.

Well, I commented out everything in vm_spec because a test was failing (I had made some radical changes at the time) and the warning output didn't appear.
I think this is the offending line:
https://github.com/myst-lang/myst/blob/d5015522e4773429e578de347b93eabbe6a34c1b/src/myst/vm.cr#L15
It assigns the ENV variable, which will persist for the duration of the test suite. So even if the tests that actually output warnings to the terminal are in another file, this should be addressed to avoid leaking.
I think the best solution would be to remove that line entirely. The VM shouldn't be responsible for managing environment variables.


Example code doesn't run on my machine (windows 7.pro)

the sample code on http://htmlpy.readthedocs.org/en/master/quickstart.html#standalone-application is not running on my machine, i think you forgot to place 'u' in front of string parameters for functions AppGUI and WebAppGUI. nice project btw, thanks

Maybe the example code is running under Python3 :joy:

owww..havent tried that, im running 2.7, and it fixed the error somehow, i think

This is an error with the documentation. I'll update it.


Add demo Edge-Inference Node using TensorFlow

Codecov Report
Patch coverage has no change and project coverage change: +0.05 :tada:

Comparison is base (8e76885) 49.81% compared to head (0832d39) 49.86%.

Additional details and impacted files
@@            Coverage Diff             @@
##             main      #80      +/-   ##
==========================================
+ Coverage   49.81%   49.86%   +0.05%
==========================================
  Files          57       57
  Lines        1885     1885
  Branches      634      634
==========================================
+ Hits          939      940       +1
  Misses        505      505
+ Partials      441      440       -1

Impacted Files
Coverage Δ

...workload_distribution_demo/computing_node_sync.cpp
0.00% <ø> (ø)

... and 1 file with indirect coverage changes

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Any recomended way to run workers in the same process?

I've been using Que specifically using whisper. I could use Que.wake! to run the jobs in the same process. I beleave I used concurrent-ruby for dealing with concurrency.

Running the workers in your web process hasn't been officially supported for a while, because it tended to trigger runtime issues that were painful to debug. If you want to figure it out on your own, though, you can look at how the CLI instantiates and stops a Que::Locker instance, you'll basically want to do that.
Also, wake! doesn't exist anymore in 1.0, and it's recommended that you upgrade if you're using 0.x.


Add ability to disqualify applicant

For example, if they have graduated after the latest graduation date we can accept.
This issue forms the server-side functionality required for https://github.com/hackcambridge/hc-applications/issues/28.

Closed in #547


macOS client unhides the dock when clicking the Mattermost icon in the menu bar

I confirm (by marking "x" in the [ ] below: [x]):

[x] This is not a troubleshooting question. Troubleshooting questions go here: http://www.mattermost.org/troubleshoot/.
[x] This doesn't reproduce on web browsers (such as in Chrome). If it does, issue reports go to the Mattermost Server repository.
[x] I have read contributing guidelines.

Summary
Clicking on the Mattermost icon in the menu bar of macOS shows the desktop app window and unhides the dock. One must launch an app by clicking on an icon of the dock to hide the dock. This problem does not depend on the position of the dock on the screen.
Environment

Operating System: macOS Monterey version 12.2 Beta (21D5025f) and all previous versions.
Mattermost Desktop App version: 5.0.2 (<IP_ADDRESS>06)
Mattermost Server version: 5.34.2, Database Schema Version: 5.34.0, mySQL

Steps to reproduce

Launch Mattermost from the Applications folder
Check that the option "Show Mattermost icon in the menu bar" is enabled
Once connected to a server, close the window by clicking on the red button
Click on the Mattermost icon in the menu bar
The Dock is unhide and the Finder icon looks selected
The Dock stays unhide until an icon of the dock is clicked.

Expected behavior

The dock stays hidden when one clicks on the Mattermost icon in the menu bar.

Observed behavior
Screenshot taken before clicking on the Mattermost icon in the menu bar.

Screenshot taken after having clicking on the Mattermost icon in the menu bar

Created a ticket: https://mattermost.atlassian.net/browse/MM-40822


Don't check resource type assigned in property

The resource type is validated when assigning to object, so the check in EditorResourcePicker was redundant. This change makes EditorResourcePickers initialize faster, as the valid types are not checked until you actually try to assign something.

Probably needs a code comment so that someone doesn't try to (needlessly) reintroduce the check

Thanks!


Allow empty references (fixes #161)

Is there anything missing for this PR other than the documentation changes? Would you rather have an approach that makes variable number of references continue to work in the API?

Hi,
The discussion in #161 got no replies and stalled. Let me look again into it, to refresh my mind.

Okay, I plan to release v2.2 on Friday, and am going to include this.

Merged with a73315b839dee92c9237c30f64380aa36dda4795.


Added Image Compression Feature

Description
The image size of the uploaded image is large. It can be compressed and then uploaded.
Which will increase the upload speed without much loss in quality.
I have used flutter_image_compress package to compress the image. I had to also use path_provider package.
The user is given an option to either upload with compression or without compression.
Fixes #345
Type of change

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

How Has This Been Tested?
Once the user selects the image he/she gets an alert dialog to choose whether to upload the image with or without compression.

[x] Tested uploading with and without compression

Test Configuration:

Firmware version:  Flutter 1.12.13+hotfix.8
Hardware:
Toolchain:
SDK: 28

Also, include screenshots of the app for the verification and reviewing purposes.

Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] New and existing unit tests pass locally with my changes
[ ] Any dependent changes have been merged and published in downstream modules

@ShreyAmbesh this is a great feature for the classification feature since upload time is dropped but it would be a better user experience if the user is given a checkbox or an option before uploading the image instead of showing a dialog.

I think instead of the image getting uploaded automatically once it is selected maybe an upload button and the compression option in that page will be a better option as the user will get to select it before uploading and once he selects or deselects the compression option he can click the upload button to start the upload.
@UdeshUK  It will be great if you can give me suggestions on this idea.

@ShreyAmbesh Yes, this would be a better implementation. Can you work on it?

Okay, I will implement it and push the code by today.

@UdeshUK I have made the required changes. Kindly go through them.


Segment Fault When Run Drake_CMake_Installed simple_bindings example

Hey, I'm new to using Drake and Pybind11. I just followed the README file and tried to test the simple_bindings example. However, I encountered a segmentation fault when running the command adder = builder.AddSystem(SimpleAdder(100.)). It seems like there's an issue when calling the C++ Drake function in Python with Pybind11 and I can't figure out the reason.
Following is the cmake output:
[main] Configuring project: drake_cmake_installed
[proc] Executing command: /usr/bin/cmake -DCMAKE_BUILD_TYPE:STRING=Debug -DCMAKE_EXPORT_COMPILE_COMMANDS:BOOL=TRUE -DCMAKE_C_COMPILER:FILEPATH=/usr/bin/gcc -DCMAKE_CXX_COMPILER:FILEPATH=/usr/bin/g++ --no-warn-unused-cli -S/home/${username}/projects/drake-external-examples/drake_cmake_installed -B/home/${username}/projects/drake-external-examples/drake_cmake_installed/build -G "Unix Makefiles"
[cmake] Not searching for unused variables given on the command line.
[cmake] -- Found pybind11: /usr/include (found version "2.9.1")
[cmake] -- Configuring done
[cmake] You have changed variables that require your cache to be deleted.
[cmake] Configure will be re-run and you may have to reset some variables.
[cmake] The following variables have changed:
[cmake] CMAKE_C_COMPILER= /usr/bin/gcc
[cmake] CMAKE_CXX_COMPILER= /usr/bin/g++
[cmake]
[cmake] -- The C compiler identification is GNU 11.4.0
[cmake] -- The CXX compiler identification is GNU 11.4.0
[cmake] -- Detecting C compiler ABI info
[cmake] -- Detecting C compiler ABI info - done
[cmake] -- Check for working C compiler: /usr/bin/gcc - skipped
[cmake] -- Detecting C compile features
[cmake] -- Detecting C compile features - done
[cmake] -- Detecting CXX compiler ABI info
[cmake] -- Detecting CXX compiler ABI info - done
[cmake] -- Check for working CXX compiler: /usr/bin/g++ - skipped
[cmake] -- Detecting CXX compile features
[cmake] -- Detecting CXX compile features - done
[cmake] -- Looking for pthread.h
[cmake] -- Looking for pthread.h - found
[cmake] -- Performing Test CMAKE_HAVE_LIBC_PTHREAD
[cmake] -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
[cmake] -- Found Threads: TRUE
[cmake] -- Found Python3: /home/${username}/miniconda3/envs/drake/bin/python (found version "3.10.14") found components: Interpreter Development Development.Module Development.Embed
[cmake] -- Performing Test HAS_FLTO
[cmake] -- Performing Test HAS_FLTO - Success
[cmake] -- Found pybind11: /usr/include (found version "2.9.1")
[cmake] -- Configuring done
[cmake] -- Generating done
[cmake] -- Build files have been written to: /home/${username}/projects/drake-external-examples/drake_cmake_installed/build
[cpptools] The build configurations generated do not contain the active build configuration. Using "" for CMAKE_BUILD_TYPE instead of "Debug" to ensure that IntelliSense configurations can be found

Failed Test Logfile:
5/6 Testing: simple_bindings_test
5/6 Test: simple_bindings_test
Command: "/home/${username}/miniconda3/envs/drake/bin/python" "/home/${username}/projects/drake-external-examples/drake_cmake_installed/src/simple_bindings/simple_bindings_test.py"
Directory: /home/${username}/projects/drake-external-examples/drake_cmake_installed/build/src/simple_bindings
"simple_bindings_test" start time: Sep 15 10:42 CST
Output:
----------------------------------------------------------
<end of output>
Test time =   0.12 sec
----------------------------------------------------------
Test Failed.
"simple_bindings_test" end time: Sep 15 10:42 CST
"simple_bindings_test" time elapsed: 00:00:00
----------------------------------------------------------

Thanks for reporting and asking!
I am not 100% sure about the problem, but I do see one suspicious thing in the log:
Found pybind11: /usr/include (found version "2.9.1")

The example is supposed to be finding the custom version of pybind11 available at drake/lib/cmake/pybind11/... , because the build command in the README specifies -DCMAKE_PREFIX_PATH=$HOME/drake.  Using a non-Drake version of pybind11 will probably not work, and indeed fail with segfaults (which seems to match what you are seeing).
We usually don't test this example with a version of pybind11 installed system-wide in /usr/include, so it's possible that the order of precedence with CMake finding pybind11 has a mistake in it.
I can have our team try to reproduce this problem, but first can you quickly confirm -- did you do these exact steps from the README ...
###############################################################
# Build Everything
###############################################################
git clone https://github.com/RobotLocomotion/drake-external-examples.git
cd drake-external-examples
mkdir drake_cmake_installed-build && cd drake_cmake_installed-build
cmake -DCMAKE_PREFIX_PATH=$HOME/drake ../drake_cmake_installed
make

... and is $HOME/drake where the tar command unpacked Drake into?

Thanks for your reply and helpful explanation! This error does source from the linking to customed install pybind11.


Geomad specs

Added data_specs folder and _static/data_specs folder.
Added GeoMAD technical specifications document.

@andrewdhicks  I'm not sure I did the index pages correctly, a review would be much appreciated. Also I think the ipynb checkpoints folder is perhaps not supposed to be there...

Thanks Fang!

[x] Can the Technical Explanation be the "Technical Information" section in CMI? Done

[x] Add a Data Access section after product overview, subsection of ODC (odc product name and aliases would go here), S3 (bucket, path and filename), OWS (ows layer) Section added. Not sure of the S3/OWS details.

[x] Specification in product overview needs to be not ODC focused: table 1, expand product name to Annual Sentinel-2 GeoMAD, remove ODC product name; table 2, replace aliases column with short description; move ODC related text to Data Access-> ODC. Done, I tried to keep generic info in Overview and moved ODC-specifics to Data Access, please check

[x] Not sure processing steps are useful. Suggest combine major algorithm, source and processing steps into one section, processing, lineage or algorithm? Steps removed, subsection now titled "Processing lineage and algorithm", but there's not much content there for GeoMAD. It would be nice to have more details there?

In progress:

[ ] Add license and acknowledgement in the reference section (see CMI)
[ ] Optimising equations for webpage


Mockups for v2

Discussion thread for design and mock up for featured version 2 release

Landing page by @saiabhijitht

Unfinised learn page by @saiabhijitht

This is the update for subject page layout.

The first design looks good for the landing page by @saiabhijitht, it solves the current issues with buttons (because they are ghost buttons right now). Would be better if we put some shadow on the cards too.
Also in navbar instead of just underlining links on hover, should be a block with around 50px - 80px square thing would be better, same goes for the mobile too. Need to work on color contrast as well.

Guys, what do you think of this blue color instead of pink.!! I believe pink will give strain to eyes and would not be pleasing to read the content.

I think blue is good here but will not match the logo and the coderplex svg. Even then if we are going with this, better to have two or three colors max. so it gives the whole website a two-color or three-color theme.
And btw navbar looks better now.

@bhansa  Yes, I meant to change the color of the logo also. I just kept it as I am not having the source file  of the logo.

@bhansa  Yes, I meant to change the color of the logo also. I just kept it as I am not having the source file  of the logo.

@saiabhijitht also can you provide the assets used in this versions home page, we are planning to start working on this.

@duttakapil can you please source file for our logo from its creator
@saiabhijitht in which format do you want illlustrator?

@M-ZubairAhmed Pradhan has lost the original files I'm afraid. We might have to recreate the assets from scratch, in high quality. Is anyone up to volunteer for that?

@saiabhijitht @bhansa I now do not think we should have either the pink or the blue. I actually like our use of plain white and space in our current design, and I think we should simply enhance that. I do not feel we should think of the UI to be a feature of our website, it should in fact get out of the way, the user shouldn't even have to notice it, they should simply get absorbed into the UX. I like how both Udacity and Khan Academy as little but visible colors as possible, while filling the rest of the space with white. We should do that, I feel

@duttakapil How about this one..!!

@saiabhijitht would you kindly also look into page after learn/subject https://github.com/coderplex/coderplex/issues/66 and give your suggestions. If you have time could you prepare a rough mock for us to start the work with

Ref: http://deploy-preview-106--coderplex.netlify.com/
@vinaypuppal , I mentioned some changes below in homepage.

Set the global border radius to 0px for now. For all learn cards, event cards and buttons.
Buttons shall be sized as small, medium and Large.

Small for Sign/Signup.(3/8th height of Large buttons)
Medium for CTA buttons and subscribe(Half the height of large buttons)
Large for Join Discord.(The present height of Discord button is good)

Card design:
Image background: #FFF;
Title bg: #F6F6F6;
Stroke: #B9B9B9;
Section bg: #F6F6F6;
Header:
Set Height to 60px.
Reduce the gap between the nav items and add Home section.

@vinaypuppal let us work on invisionapp to discuss changes or any queries right on the image. Follow https://invis.io/MHEFI9L2X for whole project. I will be uploading pages once they are done.

Ref: http://deploy-preview-106--coderplex.netlify.com/
The navbar looks a bit off on mobile. It would be great if it had a sliding transition! Like the navbar sliding into the screen from left on clicking the hamburger icon.

@szohaib yes mobile version needs some work. But menu has sliding down animation, is that not looking good to you?

@duttakapil regarding the content, Can we use data from the stackoverflow documentation dum instead of scraping. If somebody has already done something with that data please share the idea. I think we can use that data as the content.

@vinaypuppal The sliding down animation is at the right of the page currently. It would look good if the animation happens just below the hamburger icon.

@szohaib can you send a screen shot, as we have implemented it to be sliding down from below hamburger icon itself

@M-ZubairAhmed @duttakapil What do you think of this flow and layouts..!!

I think that there should be some pointer/indicator in sidebar which indicates the completed topics. I also think that there should be some indicator in the content section also showing how many tasks have been completed.(But I think 2nd one is not that necessary)

@pbteja1998 Thank you for reminding about progress bar. I actually forgot to include it. I am currently waiting for Kapil's approval of the flow. He is not convinced about having the "laravel" page in between "Learn" and "Coderplex Laravel" for this version of product release.

@M-ZubairAhmed @vinaypuppal  The sliding down is on the right in safari browser.

Interesting @szohaib. This is not the case in Chrome / Blink. Can someone check with other browsers as well? Firefox/Gecko and others?

Yes, it is the same case with Firefox too, but a lot better than safari, I  will upload screenshots of my mobile for reference and you can decide whether it should be dealt with or not.
When clicked on a hamburger icon,

When scrolled down a bit after clicking on the hamburger icon, (it comes back to normal)

There is only very minor difference in Firefox.

Seems to be an issue with positioning

@szohaib Which iOS version and iPhone did you notice this issue. I tested on iPhone7-iOS 11.0  and iPhoneX-iOS 11.0 simulators and did not notice this issue.

iPhone7-iOS 11.0 simulator screenshot
iPhoneX-iOS 11.0 simulator screenshot

@vinaypuppal. On iPhone6-iOS 10.3.2

Modified space page @saiabhijitht and @duttakapil What do you think of this flow and layout..!!

@vinaypuppal this is good. I like the Activities and Schedule section. The previous price section by @M-ZubairAhmed I feel is better

And the Who is this for? section can be worked on I guess

We should also add the word the best, before free in our description of the learn guides.
"Our guides are crowd-sourced recommendations of the best free online resources to learn any technology"

Events Cards.

@saiabhijitht what's up with the sub-text under the headline?
Because you cannot change the world alone, with only the 1st letter capital, is good for now. We would have to rethink this element of every page later though

@M-ZubairAhmed @duttakapil @vinaypuppal I have updated the Learn card design to accommodate the deadline and no. of people learning. The cards are Normal state and On-Hover state respectively. What are your views on it.!!

When people are not enrolled, they can only see Overview Unit and the Edit button will be replaced by Enroll Button.

@M-ZubairAhmed @duttakapil @vinaypuppal

The Background image is provided in Drive Folder. https://drive.google.com/drive/u/0/folders/1iNJmj-qsB48dpgvc6wYDhABKIkzVaYXD
I am working on the Profile page now. Please state if there are any changes that should be made in above pages.

@saiabhijitht  Normal login or Normal Signup is not present. User will only be able to login through LinkedIn or Github.

@pbteja1998 Do we need two buttons for Sign In and Sign Up. Or Is it same link for both actions..!!

It is the same link, but whether there should be two buttons or not, that you should decide. I was unable to test sign in perfectly because I am testing it in postman. I am waiting for @rrmerugu to test it. But for now just assume that there are two separate links. I will be able to tell exactly after @rrmerugu reviews and tests the code.

@saiabhijitht

We don't have password based authentication
And single  page for both login and signup with interface like this for example

@vinaypuppal

@saiabhijitht

Are we change color scheme to orange or red
Apart from colors this looks good but can we have a page instead of popup?  Because I feel popups won't look good on Mobile site.

@M-ZubairAhmed This is a pop-up in mobile from some site, this doesn't look that bad.

@pbteja1998 We gradually want few parts of our site to be a Progressive Web App so people can have rich App(and even offline) like experience. For this case I feel popups might not look good(But its just my personal opinion).

Can we have extra page in mobile and popup in desktop. Khanacademy is doing it.

Yeah we can do this and I like this idea.
And @saiabhijitht can also provide mobile mockups along with desktop versions.

@saiabhijitht

GitHub login should come before LinkedIn
Expect the green, I'm fine with this color scheme. However, I do not think the redish-orage fusion as header of the login popup looks good. We could use the same shade is some other manner perhaps

@duttakapil are we adding projects section to show as a resume, or will there be any feature to do projects in our platform...!!

@duttakapil can we also add the courses which are in progress in the user profile.

@bhansa yes, we will be adding the enrolled guides, that are ongoing and completed by the user.

how are you planning to follow up with mobile versions of the mocks? do you plan to do after we finalize web version?

@M-ZubairAhmed I am not really planning for mobile version for V2. But I am just keeping it in mind for events page while designing them. I need Analytics of learn page, mobile vs desktop ratio after V2 is released. We can then set our priorities for further improvements.

Learn

[ ] Learn page

[ ] Learn/subject page

Events

[ ] Events page

Space

[ ] Space page

Landing Page

[ ] Header

[ ] Banner

[ ] Main Content

[ ] Footer

Profile Page

[ ] Self

[ ] viewed by other community members

[ ] viewed by recruiters

Branding works

[ ] Color Palette

[ ] Logo modifications

Common UI Elements

[ ] Buttons

[ ] Filters and Tags

[ ] Form elements(Input text, calendars, drop-downs, toggle switches, Labels, check buttons, radio buttons etc)

[ ] Progress bar

[ ] Notifications(Successful task completions, errors, info, warnings etc)

[ ] Icons

[ ] Pagination

[ ] Breadcrumbs

@duttakapil @M-ZubairAhmed There should be a brainstorming session for profile pages, where we need to finalize the functional aspects of each page and initial layouts. Can we schedule it tomorrow..!!

@saiabhijitht

I am not really planning for mobile version for V2. But I am just keeping it in mind for events page while designing them. I need Analytics of learn page, mobile vs desktop ratio after V2 is released. We can then set our priorities for further improvements.

But I feel we should go with Mobile first design from starting as many users will be accessing site on Mobile device these days.

@vinaypuppal For the V2, we decided to keep Learn Page as main priority after a couple of days we released V1.
Suppose we have concentrated on space or events page, we are not any way starting our hacker-space right now, and the events call to action is anyway directed to meetups page. As long as we do not have proper traffic to our page, it is really not a good option to spend time on events and space page as it would not give us enough returns. But Learn page is our main product where we want people to focus more. This feature would bring us traffic, establish a market and would make people to make donations. And most of our target audience  for Learn page, as I believe would come from desktop users. I need Analytics to confirm it.
Please share your views. If there are any major issues to be addressed, we shall fix them in V3 or V2 itself, depending on the deadline for V2.

@saiabhijitht

Suppose we have concentrated on space or events page, we are not any way starting our hacker-space right now, and the events call to action is anyway directed to meetups page. As long as we do not have proper traffic to our page, it is really not a good option to spend time on events and space page as it would not give us enough returns. But Learn page is our main product where we want people to focus more.

I am not not talking about any particular page here. I am just saying its better to go with mobile first design.

This feature would bring us traffic, establish a market and would make people to make donations. And most of our target audience for Learn page, as I believe would come from desktop users

Yeah lets hope users will use desktop

But according to you whats the disadvantage of going with mobile first design?
Any specific reasons?
According to you What features on learn page prevents users from using mobile site?

I think If we have best mobile experience it can double the traffic.

I need Analytics to confirm it

For https://coderplex.org we have 15.5% mobile traffic

@duttakapil Do you have any others thoughts?

@saiabhijitht

This is the task list for Mock-ups.  Learn

Learn page

>Learn/subject page

>Events ...

I am putting this list on top so it stands more visible. Let me know if you can still check them off!

@vinaypuppal It is not that I never thought of mobile first design. @M-ZubairAhmed @duttakapil and myself had discussed it many days ago and came with the present layout. In-fact we thought we should go with mobile first concept, but agreed upon the idea that our major target users would use desktop platform. Still we are trying to make it mobile friendly as much as possible. It might be the left and right sections of learn page or what ever, we decided them only when we were sure that we can also do them in mobile.

According to me, there isn't any disadvantage if we go through Mobile first design, except for it would take some more time. Right now, I am the only one designing mocks and I need to give time for all other design works. So why should I spend time on screens that I am not sure users would prefer.

There isn't any specific reason, we just agreed upon it. We can't be perfect in a single version release.

As of now, there isn't any feature in our product that would make people prevent using mobile site. Still, that is not the reason we are avoiding it. What ever our users are learning from the information provided, they have to end up using desktop for practicing.

Even I agree that giving good mobile experience would improve the traffic. Traffic does not give us market. It only means that people are watching our site. Market will expand only when people successfully complete the course and suggest to others. I need our Analytics at the moment when people start learning through coderplex. In a sense, when the avg. session duration is substantial.

@M-ZubairAhmed

Signup Page

Signup Page

@saiabhijitht

How about this design for subject page syllabus

Also it comes with a search bar which is a good use case

Ref:

Learn Mockup

@M-ZubairAhmed  I am not sure if you are proposing for the Visual design or the elements present in it like the icons, secondary nesting etc.
If it is about the visual design, it is not consistent to other elements of the website. We need to have the height of each unit/sub-unit equal to the medium size buttons of ours. If you are trying to remove the background color for the sub units, it is fine for me for now.
If it is about the icons, nesting or the search bar, they are not really necessary for us. If needed in future, we can have a search bar for entire guide, where users can search any concept from the guide. But that will not go in the table of contents section.

@duttakapil

Profile page

I haven't kept the source code link directly on projects cards. It can be shown in the project page and any other links related to the project. What do you think..!!

@saiabhijitht the View Project button would in this case link to the source code or github repo of the project itself, because as I said, most projects wouldn't have some website version to view the project. Only the web-dev projects will have websites to see the project in action

I'm still not certain about the Open For Opportunities toggle on the left hand, below the profile pic. Would like to know what others think about it

@duttakapil we have to show many more details of the project other that the link to the source code. It is highly unlikely that people see the title and look at the source code. We still need to show the description. If needed we also need to show the team/organisation involved in the project or any other project details. That could be heavy content for a card display. What do you think..!!
Regarding the toggle button for opportunities, we can alternatively have a button named career interests directing to a different page/form, where people can choose their career options. But button should still be in the top section of the page. As we have a business model attached to this, it has to be placed where people can easily find it.

@saiabhijitht sorry for the late response, but I think the amount of description you have provided in the mock is sufficient to get a gist of the project. Team / organization or contributions could be a never ending or long list, and members will be able to see that anyway when they open the Git repo of that project. Plus, this is just the early version, we can revisit this at some later time

@saiabhijitht regarding this Open For Opportunities toggle button, what I mean is that when the user or any member of the website open their or anyone else's profile, they should not see a toggle. They should simply see if this person is currently employees anyway, and if no then are they currently looking for a job?
Changing this detail can be in the in-line-edit version of this page

@duttakapil

They should simply see if this person is currently employees anyway, and if no then are they currently looking for a job?

There are many other combinations to this case actually, being employed or not being employed, the user can still be looking for an opportunity or not be looking for it. Let us not connect these two constraints.

Changing this detail can be in the in-line-edit version of this page

I will look into this.

@saiabhijitht we don't have meet all these combinations in this one small space. Let's define the purpose of this button, it's for potential employees to quickly find out if a member of our community is currently looking for a job or not, or if they are already employed somewhere. It's like relationship status on Facebook.
For members who might currently be employed and might still be looking for alternative or new jobs, they will be utilizing our to-be-built Jobs page.

@saiabhijitht User A's profile should look the same for user A as well as every one else on the Internet, including all other members. Similar to how my Twitter profile would look the same to me and you and everyone else on the Internet, even through not on Twitter.
It's only when user A enters Edit mode that the page should look different, where they can make changes to the said profile

@M-ZubairAhmed @duttakapil

Profile page guides

Profile page projects

P.S.: Don't mind the footer. It is still WIP.

@saiabhijitht can you open individual issues for other designs.


tessel wifi --list fails and tessel wifi -n  -p  does not work.

I am trying to use my new Tessel 2, and for whatever reason I cannot get the Tessel 2 to connect to my Wireless network.
If i use the command tessel wifi --list I just get the following exception.
INFO Looking for your Tessel...
INFO Connected to rahulrav over USB
INFO Scanning for available networks...
events.js:154
      throw er; // Unhandled 'error' event
      ^

Error: Error upon remote process exit: 4
    at USBProcess.<anonymous> (/usr/local/lib/node_modules/t2-cli/lib/usb/usb_process.js:49:26)
    at USBProcess.g (events.js:273:16)
    at emitOne (events.js:90:13)
    at USBProcess.emit (events.js:182:7)
    at Parser.<anonymous> (/usr/local/lib/node_modules/t2-cli/lib/usb/usb_daemon.js:121:14)
    at emitOne (events.js:90:13)
    at Parser.emit (events.js:182:7)
    at Parser._write (/usr/local/lib/node_modules/t2-cli/node_modules/usb-daemon-parser/index.js:152:16)
    at doWrite (_stream_writable.js:301:12)
    at writeOrBuffer (_stream_writable.js:287:5)
    at Parser.Writable.write (_stream_writable.js:215:11)
    at ondata (_stream_readable.js:536:20)
    at emitOne (events.js:90:13)
    at emit (events.js:182:7)
    at readableAddChunk (_stream_readable.js:153:18)
    at Readable.push (_stream_readable.js:111:10)

I modified wifi.js with the following patch:
diff --git a/lib/tessel/wifi.js b/lib/tessel/wifi.js
index d70fb1b..26367cc 100644
--- a/lib/tessel/wifi.js
+++ b/lib/tessel/wifi.js
@@ -38,6 +38,10 @@ Tessel.prototype.findAvailableNetworks = function() {

         return networks;
       }, []).sort(compareBySignal);
+    }).catch(function(error) {
+      logs.err('Error while scanning for available networks...', error);
+      // continue to throw the error
+      throw error;
     });
 };

With my changes, when step through the code using node-inspector I see the following:
➜  CLI git:(master) ✗ node-debug t2 wifi --list
Node Inspector v0.12.7
Visit http://<IP_ADDRESS>:8080/?port=5858 to start debugging.
Debugging `t2`

Debugger listening on port 5858
INFO Looking for your Tessel...
INFO Connected to rahulrav.
INFO Scanning for available networks...
ERR! Error while scanning for available networks... [Error: No such wireless device: wlan0
]
ERR! Error: No such wireless device: wlan0

Any ideas on how to fix this ?

Hi @tikurahul I think I've seen this issue on an older version of firmware. Can you run t2 version and report what it outputs?

@johnnyman727, the version is 0.0.10.
➜  ~ t2 version
INFO Looking for your Tessel...
INFO Connected to rahulrav over USB
INFO Tessel [rahulrav] version: 0.0.10

@tikurahul I believe the most recent version is 0.0.11 so you should run t2 update so make sure you have the most up-to-date code.
I'm not sure this will fix the underlying issue because updates don't usually overwrite config files unless explicitly stated to do so. If it doesn't work, one temporary workaround would be to edit this line to be return ['sysupgrade', '-n', path];. It basically tells the operating system to overwrite the configuration files. Bonus points if you submit a PR that adds a optional flag for the update procedure that allows you to run t2 update -d to do exactly this! :)

t2 update would not have worked. @johnnyman727 helped me install new firmware and connect to Wi-Fi. After that everything just worked.

It's also worth noting that some of the issues arose because of confusion generated around where nvm installs packages globally. I created #620 which is an actual issue that we need to fix.

I had a very similar problem as well. The first problem was, that WIFI was not even enabled, for whatever reason. A  "t2 wifi --on" helped me with the error "ERR! Error: No such wireless device: wlan0
".

Thanks @Injac. It should be fixed by https://github.com/tessel/t2-cli/pull/648.

Thanks for all the hard work @johnnyman727  :)

You should thank @boneskull! I just complained.

Well, than a big thank you to @boneskull :)


proposal: change FlushIntervalSeconds to time.Duration

I propose switching the FlushIntervalSeconds configuration from an int to a time.Duration. It improves code expressiveness and sets a precedent for future config options that are durations. The config would be renamed from FlushIntervalSeconds to FlushInterval.
For an example like this in the stdlib, see ReverseProxy.FlushInterval<EMAIL_ADDRESS>cc @keep94 @LukeWinikates

We added a FlushInterval setter that uses time.Duration. We haven't deprecated FlushIntervalSeconds, although I think it's worth considering it.


[OB2 Native] Icon & updater changes

Hey, Some minor improvements if possible
• Make a small change in Native's Icon so we don't mix it up with Web version
• Add a "Check for update" button in home page for quick access
• Button "Delete all proxies" is missing in Native version
With current configuration I currently have 4 OB2 icons on my taskbar with same appearance (It's good for some mind practice though)

OB2 Native
OB2 Native Updater
OB2 Web UI Console
OB2 Web UI Updater

I can change the icons a little bit to recognize them, yeah.
The "check for updates" is not needed as it already checks for updates by itself once a day as you can see here https://github.com/openbullet/OpenBullet2/blob/master/OpenBullet2.Native/Services/UpdateService.cs#L45
The "delete all proxies" can easily be done with CTRL+A and Delete so I'm not sure if this is a vital thing to have 😅

I recommend you to use openbullet2 web-based its much better and faster. there some problems but its still working fine!

I recommend you to use openbullet2 web-based its much better and faster. there some problems but its still working fine!

Let people use whatever they want


Segfault when calling find_remote on macOS Sierra 10.12.6

Here's the lldb thread backtrace:
* thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0xf2a5)
    frame #0: 0x0000000100414db0 amp`regexec(reg=0x00000001012205a0, str="diff.tool", nmatch=0, pmatch=0x0000000000000000, posix_options=0) at regposix.c:192
   189 	    pm = pmatch;
   190 	  }
   191
-> 192 	  ENC_STRING_LEN(ONIG_C(reg)->enc, str, len);
   193 	  end = (UChar* )(str + len);
   194 	  r = onig_search(ONIG_C(reg), (UChar* )str, end, (UChar* )str, end,
   195 			  (OnigRegion* )pm, options);
(lldb) thread backtrace
* thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0xf2a5)
  * frame #0: 0x0000000100414db0 amp`regexec(reg=0x00000001012205a0, str="diff.tool", nmatch=0, pmatch=0x0000000000000000, posix_options=0) at regposix.c:192
    frame #1: 0x0000000100459af5 amp`all_iter_glob_next(entry=0x00007fff5fbfd148, _iter=0x0000000101220570) at config.c:424
    frame #2: 0x0000000100459d7d amp`git_config_next(entry=0x00007fff5fbfd148, iter=0x0000000101220570) at config.c:1079
    frame #3: 0x00000001004aa875 amp`apply_insteadof(config=0x000000010121f480, url="git@github.com:jmacdonald/amp.git", direction=0) at remote.c:2460
    frame #4: 0x00000001004aa33c amp`git_remote_lookup(out=0x00007fff5fbfd2f8, repo=0x000000010121de20, name="origin") at remote.c:463
    frame #5: 0x000000010014bfca amp`git2::repo::{{impl}}::find_remote(self=0x00007fff5fbfee88, name=(data_ptr = "origin", length = 6)) at repo.rs:355
    frame #6: 0x000000010011155a amp`amp::commands::git::copy_remote_url(app=0x00007fff5fbfec70) at git.rs:25
    frame #7: 0x0000000100127b33 amp`amp::models::application::{{impl}}::run(self=0x00007fff5fbfec70) at mod.rs:113
    frame #8: 0x0000000100016284 amp`amp::main at main.rs:13
    frame #9: 0x000000010056a95b amp`panic_unwind::__rust_maybe_catch_panic at lib.rs:98 [opt]
    frame #10: 0x0000000100569d25 amp`std::rt::lang_start [inlined] std::panicking::try<(),closure> at panicking.rs:433 [opt]
    frame #11: 0x0000000100569cf2 amp`std::rt::lang_start [inlined] std::panic::catch_unwind<closure,()> at panic.rs:361 [opt]
    frame #12: 0x0000000100569cf2 amp`std::rt::lang_start at rt.rs:59 [opt]
    frame #13: 0x000000010001670a amp`main + 42
    frame #14: 0x00007fffbc3d6235 libdyld.dylib`start + 1

Thanks for the report! I wonder if this may be an upstream bug in libgit2 rather than one in git2-rs?
Do you have a way to reproduce this locally that I could verify with and help out with as well?

Hey, @alexcrichton!
Thanks for being patient; this Rust binary project will trigger the segfault when run.
Here's the interesting thing: this issue only crops up when the onig dependency is present. I'm assuming that git2 is using Oniguruma when present, and either falling back to a system-installed version or another regex solution entirely when it's unavailable, and its interaction with the Rust/cargo version is broken. Just a guess, though. 🙂

Oh interesting! I wonder if this is just a standard C symbol conflict between the onig-sys dependency and the libgit2 dependency?
It looks like libgit2 has a regexec symbol and sure enough so does onigurama. Presumably they're conflicting where one's overriding the other?
Unfortunately I think this means that you just can't statically link these two native dependencies together, they'd have to be isolated via dynamic libraries :(

Weird thing is, this issue doesn't occur on my Arch Linux desktop. Wondering if one of the dependencies has platform-specific dependencies that limit this issue to macOS.

Probably yeah, once you get into C symbols overriding one another things get really weird.

I'm gonna close this in favor of https://github.com/rust-lang/git2-rs/issues/392


bug: unable to dial to peers received from peer-exchange query

This is a bug report
Problem
When a PeerId, received as a response from a peer exchange request, the dial fails with an error: Error: The dial request has no valid addresses
Proposed solution
ref: https://github.com/ipfs/js-ipfs/issues/4185
Notes
Add any miscellaneous note that are relevant to issue, including but not limited to:

js-waku version: latest master (https://github.com/waku-org/js-waku/commit/0b083201c6f585ad1b3267c1571df5f1b81a1355)
Environment: node18
Nodes connected to: Wakuv2 test fleet
Debugging logs:

  waku:waku Waku node created 12D3KooWGC4JLHT9LQRmTKx5ibLAvFNCUTwiFFzgzm4gZCBvXNZg relay: false, store: true, light push: true, filter: true, peer exchange: true  +0ms
  waku:waku Found peer 16Uiu2HAkvWiyFsgRhuJEb9JfjYxEkoHLgnUQmr1N5mKWnYjxYRVm, dialing. +1s
Found peer 16Uiu2HAkvWiyFsgRhuJEb9JfjYxEkoHLgnUQmr1N5mKWnYjxYRVm, dialing.
  waku:waku Found peer 16Uiu2HAkvWiyFsgRhuJEb9JfjYxEkoHLgnUQmr1N5mKWnYjxYRVm, dialing. +4ms
Found peer 16Uiu2HAkvWiyFsgRhuJEb9JfjYxEkoHLgnUQmr1N5mKWnYjxYRVm, dialing.
{ tags1: [] }
  waku:wait-for-remote-peer Resolving for /vac/waku/peer-exchange/2.0.0-alpha1 [
  '/ipfs/id/1.0.0',
  '/ipfs/ping/1.0.0',
  '/libp2p/autonat/1.0.0',
  '/libp2p/circuit/relay/0.2.0/hop',
  '/vac/waku/filter/2.0.0-beta1',
  '/vac/waku/lightpush/2.0.0-beta1',
  '/vac/waku/peer-exchange/2.0.0-alpha1',
  '/vac/waku/relay/2.0.0',
  '/vac/waku/store/2.0.0-beta4',
  '/vac/waku/swap/2.0.0-beta1'
] +0ms
  waku:libp2p-utils Using codec /vac/waku/peer-exchange/2.0.0-alpha1 +0ms
Secp256k1PeerIdImpl [PeerId(16Uiu2HAmTtLizeHTk59VDjPWttD39AHfu4RhpyyoiGf76YHqMwXK)] {
  type: 'secp256k1',
  multihash: Digest {
    code: 0,
    size: 37,
    digest: <Buffer 08 02 12 21 03 e2 4a e4 41 0e 97 1d 45 16 ab 9e 85 7b 21 22 26 14 ac a2 a3 55 a9 69 8c 54 9f a3 46 5c dd 60 d6>,
    bytes: Uint8Array(39) [
        0,  37,   8,   2, 18,  33,   3, 226,  74,
      228,  65,  14, 151, 29,  69,  22, 171, 158,
      133, 123,  33,  34, 38,  20, 172, 162, 163,
       85, 169, 105, 140, 84, 159, 163,  70,  92,
      221,  96, 214
    ]
  },
  privateKey: undefined,
  publicKey: <Buffer 08 02 12 21 03 e2 4a e4 41 0e 97 1d 45 16 ab 9e 85 7b 21 22 26 14 ac a2 a3 55 a9 69 8c 54 9f a3 46 5c dd 60 d6>
} Error: The dial request has no valid addresses
    at DefaultDialer.dial (file:///Users/danisharora099/Developer/status/waku/node_modules/libp2p/src/connection-manager/dialer/index.ts:190:21)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
    at async EventTarget.openConnection (file:///Users/danisharora099/Developer/status/waku/node_modules/libp2p/src/connection-manager/index.ts:569:26)
    at async EventTarget.dial (file:///Users/danisharora099/Developer/status/waku/node_modules/libp2p/src/libp2p.ts:354:12)
    at async WakuPeerExchange.callback (file:///Users/danisharora099/Developer/status/waku/packages/tests/tests/peer_exchange.node.spec.ts:76:11)
    at async file:///Users/danisharora099/Developer/status/waku/packages/peer-exchange/src/waku_peer_exchange.ts:105:9 {
  code: 'ERR_NO_VALID_ADDRESSES'
}
Secp256k1PeerIdImpl [PeerId(16Uiu2HAmDJdYGZd9tztuuLLwLi7uXnC8SX278X5YAibejFSde2rw)] {
  type: 'secp256k1',

How are we trying to dial the peers received from peer-exchange query? I am guessing we are not processing the ws multiaddr correctly.

First, check that the mutliaddr for the record is present in the received ENR (I believe this was an issue in some instances)
Ensure that the mutliaddr is then processed. Most likely, it needs to be saved in the libp2p peer store. or emitted in the PeerInfo object by the peer discovery PeerExchange class. And then the connection manager needs to process the multiaddr in the PeerInfo object which has been emitted and use it to dial.

Here: https://github.com/waku-org/js-waku/blob/0b083201c6f585ad1b3267c1571df5f1b81a1355/packages/core/src/lib/waku.ts#L140
On the peer id is used to dial
Here, the peer is tagged in the peerStore but the multiaddr is never recorded: https://github.com/waku-org/js-waku/blob/0b083201c6f585ad1b3267c1571df5f1b81a1355/packages/peer-exchange/src/waku_peer_exchange_discovery.ts#L92
I must say I don't understand why it works with bootstrap but not with peer exchange:
https://github.com/libp2p/js-libp2p-bootstrap/blob/dffd518cdb5924686b326b3f78a7823597715119/src/index.ts#L136

I am not sure if https://github.com/ipfs/js-ipfs/issues/4185 is relevant. Log the multiaddr to verify they are wss as expected.

The logged multiaddrs is wss:
  <Multiaddr 36326e6f64652d30312e67632d75732d63656e7472616c312d612e676f2d77616b752e70726f642e737461747573696d2e6e65740601bbde03 - /dns4/node-01.gc-us-central1-a.go-waku.prod.statusim.net/tcp/443/wss>

This might help with reproducing: https://github.com/waku-org/js-waku/pull/1116

This issue was resolved with a bug during multiaddress parsing.