Albums screen: Should indicate summary of available downloads

Currently, aside from Push Notifications, there's no way of knowing what albums have new info available in them without going into the specific album and refreshing. What would be better is to have a summary of new information available on the albums screen. E.g., with badges to indicate, say, the count of updates to files.
What then do we want for update info?

New media item count-- e.g., the number of new images. It's not really the number of files that are available to download that are needed, but rather the number of objects-- file groups.

Deletions-- how many objects need deleting in the album.

How many comment files need updating for existing media objects.

If the server supplied the number of non-deleted file groups and the number of deleted file groups, that would be most of this. But it would not get at the number of comments.
What if the server returned, per sharing group:
a) For non-deleted file groups: the last update Date for each file group, in a per file group format like: (file group UUID, last update date).
b) For deleted file groups, a count would be enough.

I made a first effort on this, and it was informative but incomplete. I have learned that dates are insufficient. My first effort used the most recently changed server date across all file groups in a sharing group as a kind of serial number. That dealt with with quite a bit, but left an important use case missing.
When Neebla uploads a comment (or, more generally uploads a change to mutable file), it will subsequently download that update-- because when it updates, it doesn't know the updated version number. Currently, possibly multiple updates could be applied in the Uploader on the server when going to the next version number.
However, this leads to the issue that every time after uploading a new comment, you will have that album marked, erroneously in most cases, as needing a download. (Except for the rare case when someone else at a very similar time also commented on the same media item-- and both updates are included in the downloaded version change). Since adding a comment is a common case, and it will be unusual to have someone else comment at the same time, this needs to be fixed.

I think the following additional changes are needed:

I'm going to have every single change applied by the Uploader increment the version number for a file. E.g., if there are M changes waiting for a file when the Uploader starts, and the file's current version number is N, then the resulting version number for that file will be N + M.

2)The index result when getting info in general for a sharing group (ie., an index request with a nil sharing group) will have more detailed information per file group. In specific, it will also contain the fileUUID+version number for each file contained in each sharing group. While it is tempting to only return fileUUID+version number for mutable files, that seems short sighted. New immutable files can be added to particular file groups at the clients initiative, and a client needs to be informed of such additions of immutable files to existing file groups.

On the client side:

a) We can know more accurately if files need downloading. If a file group returned from the server in the general index (without a sharing group given) is not known to the client, then of course, it needs to be downloaded. If the version number of any file, for a known file group, has been updated then that file group needs downloading.
b) We should be able to skip downloads for comment files having only changes caused by the local client. Since that will cause only a +1 increment to a comment file from its current version.
c) We ought to be able to provide much of this service from IOSBasics.

One refinement: The information returned must be not just  fileUUID+version, but  fileUUID+version+userIdMakingLast change. This is needed to deal with race conditions where another client gets its change in earlier. For example:
time 0: Client 0 gets index
time 1: Client 1 uploads a change to file1, and this change is processed by the Uploader. Resulting in an incremented file version in the index.
time 2: Client 0 uploads a change to file1, and this change is delayed, not yet processed by the Uploader.
time 3: Client 0 gets index, and seeing that the version number of file1 has been incremented thinks the change was its change.
If at time 3, if client 0 could know the id of the user making the last change, it could have resolved the ambiguity.

I think this above change to using fileUUID+version+userIdMakingLast only works for a single change, however.
If more than one change is made to a file, then further race condition complications come in. Since userIdMakingLast only allows a client to know the id of the user making the last change, if two prior changes were made race conditions can ensue.
time 0: Client 0 gets index
time 1: Client 1 uploads a change to file1, and this change is processed by the Uploader. Resulting in an incremented file version in the index.
time 2: Client 0 uploads a change to file1, and this change is processed by the Uploader. Resulting in an incremented file version in the index.
time 3: Client 0 uploads a change to file1, and this change is delayed, not yet processed by the Uploader.
time 4: Client 0 gets index, and seeing that the version number of file1 has been incremented by 2, and has its user id as the last change and thinks both of the recent changes were its changes.

What if I had two cases:

The case of dates as I had at first.

Also return for an index request without a sharing group, per file group, a checksum for the contents of files. The server then would need to track this checksum per file. And the client would also need to track or be able compute this checksum.

If the dates indicated no difference, then this would be sufficient evident that the album had no downloadable change. But, if the dates indicated a change, the checksums would need to be evaluated.
If the underlying files on the server and the client were the same then the checksums would be the same-- so would indicate no download was needed.
If the underlying files on the server and the client were different then the checksums could be different or they could be the same.  In the worst case, we wouldn't indicate to the client that a download was needed at the album level.

This is what I have so far:
In iOSBasics-- when a vN upload is carried out a timer is started to periodically check for deferred uploads. This means that the deferredCompleted delegate method can get called without further user/client interaction. This has a side effect that the push notification method will get called for comments without further user/client interaction.
In Neebla, when the deferredCompleted delegate method is called, sync(sharingGroupUUID: album.sharingGroupUUID) is called to sync an album (it is possible that more than one sharing group/album is referenced in deferredCompleted but that's not dealt with yet).
In Neebla, when a sync completes for a specific album, a check is carried out to see if vN downloads are available. And if so, they are downloaded. This has the effect that when a user has added a comment, that comment will get downloaded. It also has the effect that it prioritizes the downloads of comments more generally.


Some tiny cleanups.

Thanks. I'll set use_log_scale_distortion and gain as non-const again when I add the command line parser.


char_character_full sticker issues

when loading a char_character_full via playlunky, everything works as expected, however, autogenerated stickers for other characters no longer work, making me a tad bit confused as to which characters i have installed or not. Thanks for all of your amazing work!

@Landsurfer2000 I decided to release a new version now because I don't see a reason to sit on a bunch of bug fixes while working on something else. So try v0.6.0 and let me know how it works for you.


Output with a FQDN as host value make a DNS lookup with every event

Hello,
I suspect that this plugin does not cache DNS and does a lookup with each output event.
If used like this:
type remote_syslog
  host "some.cool.host.com"
  ...

Ii will make tons of tons of tons of DNS lookups in the nameserver of that host ("Self-DDoS-ing").
Workaround: Set an IP address as value, it will not make lookups:
type remote_syslog
  host "<IP_ADDRESS>"
  ....

How about a expire_dns_cache like the fluentd "forward Output Plugin" has?
rgds,
j

@derjohn @dlackty
The remote syslog module used looks up the hostname on every execution.
https://github.com/papertrail/remote_syslog_logger/blob/master/lib/remote_syslog_logger/udp_sender.rb#L14

(I'm not the author, but can try to clarify how this works)
@derjohn: are you referring to the local system's hostname (set optionally with hostname param) or the remote destination server's hostname (set with host param)? Your example used the host param, and that's what I suspect you're referring to, but @yfoelling linked to how the local system hostname is determined.
@yfoelling: that LoC is obtaining the local hostname, not resolving the remote server hostname. It should not need to consult DNS. It's an entirely local call.

@troy : I am talking about the name/adress of the remote syslog server (host foo.bar.com). I inserted <IP_ADDRESS> to mask my real IP Adress of the server. I should have taken 192.168.x.y. instead, to be clearer ;)
The thing is, you do a UdpSender.new(@host, .... in the emit(). That is probably causing the DNS lookup on each emit?

@derjohn Thanks for clarifying, that makes sense :)
emit calls UDPSocket.send, which seems to do a DNS request as part of its call to rsock_addrinfo. That said, I'm not an expert about this, I haven't done a detailed review, and the implementation may depend on the VM and version.
If this is all accurate, another likely workaround would be to add an entry to the hosts file.

@troy I made a proposal via PR https://github.com/dlackty/fluent-plugin-remote_syslog/pull/14
The Travis CI fail for ruby2.0.0, due to "serverengine-2.0.0 requires ruby version >= 2.1.0". I didnt' touch serverengine, though.
rgds,
j

An example for an even better approach that implements a cache with expire can be found in fluentd output forwarder: https://github.com/fluent/fluentd/blob/master/lib/fluent/plugin/out_forward.rb
look for the 'def resolved_host' ...


Add topics to the menu

Signed-off-by: Sven Dowideit<EMAIL_ADDRESS>I've added the pages to the top level registry menu, but it feels to me like the gc and test-insecure pages should go into the reference and recipes menus (respectively)
@RichardScothern ?

@RichardScothern @dmp42


Can I access displaycamera output via my network?

My alarm touch-panel supports displaying surveillance camera's stream but it has limitation to one camera per tab. I figured out that I can merge few feeds and build 2x2 display for my four cameras and present it as one stream. So here I am, with configured displaycameras application and judging from command line output it is working. Question is is it accessible via network so it can be set as another rtsp source, or it just merges outputs and present them to monitor connected to device on which it is running?

This is not supported at all. Displaycameras doe not combine streams. It
uses multiple instances of omxplayer to play as many streams as you
configure.
Sorry,
Andy
On Mon, Feb 7, 2022, 4:49 PM guciopl @.***> wrote:

My alarm touch-panel supports displaying surveillance camera's stream but
it has limitation to one camera per tab. I figured out that I can merge few
feeds and build 2x2 display for my four cameras and present it as one
stream. So here I am, with configured displaycameras application and
judging from command line output it is working. Question is is it
accessible via network so it can be set as another rtsp source, or it just
merges outputs and present them to monitor connected to device on which it
is running?
—
Reply to this email directly, view it on GitHub
https://github.com/Anonymousdog/displaycameras/issues/111, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AHIYIKMAZV7NPY3C54ZZKI3U2A47PANCNFSM5NYVM6UA
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>


[language] make diem-workspace-hack a dev-dependency

This makes diem-workspace-hack a dev dependency for all crates inside language. It is a preparation for publishing Move crates to crates.io as dev-dependencies are ignored during that process.
This whole diff is generated using the following python code:
import os

def make_workspace_hack_dev_dependency(path):
    with open(path, 'r+') as f:
        workspace_deps = []
        buffer = []
        for line in f.readlines():
            if 'diem-workspace-hack' in line:
                workspace_deps.append(line)
            else:
                buffer.append(line)

        f.seek(0)
        f.truncate(0)

        for line in buffer:
            f.write(line)
            if workspace_deps != None and '[dev-dependencies]' in line:
                for line in workspace_deps:
                    f.write(line)
                workspace_deps = None

        if workspace_deps != None:
            f.write('\n')
            f.write('[dev-dependencies]\n')
            for line in workspace_deps:
                f.write(line)

for root, dirs, files in os.walk("."):
    for name in files:
        if name == "Cargo.toml":
            path = os.path.join(root, name)
            make_workspace_hack_dev_dependency(path)

/land

:broken_heart: Test Failed - ci-test

/land

:broken_heart: Test Failed - ci-test

my apologize, I am doing cluster upgrading, somehow the maintenance mode on cluster is removed, this landing job is accidentally scheduled on that cluster.

/land


DLL payload generation step

In the payload preparations:
Generate DLL payload, then on a separate Windows host:
[CMD] > certutil -encode [file].dll blob
Is this dll from the posh2?
If yes, there are multiple dll files in the posh2 payloads. Which one should i use?

Hey @mark777t!
We tried to keep the instructions generic in case you were using another C2, but yeah you can just use the generated PoshC2 DLL payloads. In terms of our plan it really doesn't matter which DLL you choose (but check out the .NET version comparability on your victim), but fwiw we used Sharp_v4_x64.dll.

Thank you for the quick response!


templates: add message forwarding

Adds message forwarding capability to complexMessage. Cannot be done in channels YAGPDB doesn't have read message
perms in, or a channel outside the guild. Effectively no different from the message link preview CC but utilizes Discord's UI,
additionally removes the need to parse a message link and get the message, nor build your own embed or other means of
providing a message timestamp, link, and indication that it was a forwarded message. It also looks neat.
Signed-off-by: SoggySaussages<EMAIL_ADDRESS>

Can you add example template too please?

Can you add example template too please?

Here's an example:
{{ sendMessage nil (complexMessage
    "forward" (sdict
        "channel" .Channel.ID
        "message" <messageID>
    )
) }}

Can you add example template too please?

Here's an example:
{{ sendMessage nil (complexMessage
    "forward" (sdict
        "channel" .Channel.ID
        "message" <messageID>
    )
) }}

I'm SoggySaussages and I approve this message.


Problems with Search

There appears to be an issue with the Search when the UnpFlatViewer (1.5.1)  DetailColumn contains a notes date field, a notes time field or even a text derived date time value (i.e. @text(startdate)). the search refuses to return values although the type a-head works. Switching the field to a text (i.e. Venue) - alpha characters only restores search functionality
The List and Values are displayed properly

BTW: The last @text shouldn't be needed its text already

This should be fixed by the addition of the new option to use Full Text search rather than the old view search.


Add svgAttribute option

Users need to add default attribute to their SVG, like in #82. My proposition is to add a "svgAttribute" option.
Usage in CLI
svgr --svg-attribute "focusable=false"
svgr --svg-attribute "a=b" --svg-attribute "c=d"

At first, all attribute values will be considered as a string
Usage in Node / Webpack
transform("...", { svgAttributes: { focusable: "false" } })
transform("...", { svgAttributes: { a: "b", c: "d" } })

Seems like a pretty solution to the problem i was having.
+1

Hello ! I am working on it :)
I'll will do a Pull Request very soon (in maybe one hour), but I'm new in Open Source project so i am searching best practices for making very clear pull request, issues...


emby: <IP_ADDRESS> -> <IP_ADDRESS>

This version requires Mono 5.4 or higher, so let's just use
the default (5.8 at the moment).
Motivation for this change
Update to latest version.
Things done

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

[x] NixOS
[ ] macOS
[ ] other Linux distributions

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

/cc @fadenb

@numinit I'm not using Emby on NixOS anymore atm. If you want you can take the branch and finish it.
Also CC @fadenb as he is mentioned as the maintainer.

Since @bachp aparently isn't intereseted in this anymore, closing in favor of #46724.


save video to specific fixed folder

Hi,
I need to store video/audio clip to the specific folder every time, I can easily got form there. is there any way to store directly specified folder no need to ask every time saveAs window.
is there any way to set up this kind of functionality.

@sureshPprajapati for firefox there is this https://support.mozilla.org/en-US/questions/1192259

No feedback, closing question.


[DOCS] The installation link is wrong in the developer documentation

Which page or section is this issue related to?
The issue is present here: https://docs.argilla.io/en/latest/community/developer_docs.html
Check the link for the text Setup and Installation under the ElasticSearch or OpenSearch sub-heading.

@davidberenstein1957 Can you tell which link should be pointed here?

Hi,I think it is supposed to lead here https://docs.argilla.io/en/latest/getting_started/installation/deployments/deployments.htmlPRs are welcome:)Cheers,DavidOn 10 Jun 2023, at 15:09, Harsh Jain @.***> wrote:
@davidberenstein1957 Can you tell which link should be pointed here?
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you were mentioned.Message ID: @.***>

Okay, I will fix this and create the PR :)

A couple of more links seems to be broken. Will fix it in my PR

Great :)


What tool are you adding and to what category?
We need to add IndiaBix - Platform to prepare for aptitude. We should add this in coding category
Add Tool Link
tool link: https://www.indiabix.com/

Code of Conduct

[X] I agree to follow this project's Code of Conduct
[X] The tool is free for use

I'm working on it

Please remove my no-issue-activity label. I have made a PR. @JasonDsouza212 @VenomFate-619


New method swapAdapter should be more intelligent

The swapAdapter method is just a proxy to RecyclerView's method. But I think this method should do more stuff just like the addAdapter method. For example show/hide loading progress, attach observers and update an empty view, etc.
For now if I update data with the swapAdapter a loader indicator is not hiding.

Thank you for advice.I'll try to enhance the method in the future.


[Bug] torch compile warning

Checklist

[X] 1. I have searched related issues but cannot get the expected help.
[X] 2. The bug has not been fixed in the latest version.
[X] 3. Please note that if the bug-related issue you submitted lacks corresponding environment info and a minimal reproducible demo, it will be challenging for us to reproduce and resolve the issue, reducing the likelihood of receiving feedback.
[X] 4. If the issue you raised is not a bug but a question, please raise a discussion at https://github.com/sgl-project/sglang/discussions/new/choose Otherwise, it will be closed.
[X] 5. Please use English, otherwise it will be closed.

Describe the bug
When using enable-torch-compile, there is a warning message, but it can start normally. Does this have any impact? (Note: I am using an L40 GPU), It seems that the required shared memory exceeds the shared memory of the L40 GPU。However, after using torch compile, the token output speed has indeed increased, from 38+ tokens/s to 39+ tokens/s:
SingleProcess AUTOTUNE benchmarking takes 1.9692 seconds and 0.0000 seconds precompiling. [rank2]:W1115 11:42:22.079000<PHONE_NUMBER>40704 torch/_inductor/select_algorithm.py:1469] [16/384] out of resource: shared memory, Required: 122880, Hardware limit: 101376. Reducing block sizes or num_stages may help.


Running 2 pw-volume status at the same time causes crash

If you run pw-volume status & pw-volume status (first is run in the background, second at the same time as the first one) then it crashes with
thread 'main' panicked at /home/max_ishere/.cargo/registry/src/index.crates.io-6f17d22bba15001f/pw-volume-0.4.0/src/main.rs:395:48:
failed to unmarshal PipeWireObject: Error("trailing characters", line: 7, column: 1)
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
thread 'main' panicked at /home/max_ishere/.cargo/registry/src/index.crates.io-6f17d22bba15001f/pw-volume-0.4.0/src/main.rs:395:48:
failed to unmarshal PipeWireObject: Error("trailing characters", line: 7, column: 1)
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
fish: Job 2, 'pw-volume status' terminated by signal SIGABRT (Abort)

fish: Job 1, 'pw-volume status &' terminated by signal SIGABRT (Abort)

To be honest I have no idea why... I have 2 separate widgets (one an svg of volume, another a text of volume) and they're both on the same signal. This does not work in the current version.
$ cargo install pw-volume
# ...
Installed package `pw-volume v0.4.0` (executable `pw-volume`)

Tested on NixOS and Arch.

After running 2 pw-dumps and diffing their outputs the cause is just... I cant even... this is not valid JSON:
$ pw-dump >/tmp/1.txt & pw-dump >/tmp/2.txt
$ diff /tmp/1.txt /tmp/2.txt --side-by-side | tail
      }                                                               }
    }                                                               }
  }                                                               }
]                                                               ]
                                                              > [
                                                              >   {
                                                              >     "id": 56,
                                                              >     "info": null
                                                              >   }
                                                              > ]

That is the only difference.

I think this should be reported in pipewire, because this project isnt the cause...

I'm just gonna use wpctl (wireplumber)


Expose the ability to replace an Output even before the output is rendered/added to the Notebook Model

In the Jupyter extension there is a need to replace an existing output.
Unfortunately for this to work today, we have to wait for the previous output operations to be completed so that the outputs haver been added to the Notebook model.
However there are cases where the Jupyter extension gets data and needs to replace outputs even before they might be added to the model. Awaiting for the output to be added to the model will reduce the performance of displaying outputs and will undo the work done in the past that improves handling of large outputs (by not keeping in anything in memory).
Note: This functionality exists today and kind of works. It works by chance as the model has been updated by the time the second message comes in).
However there are scenarios where this might not always happen (i.e. we get another message even before the output is added to the Model), as a result outputs are not displayed correctly.
Meaning todays implementation is broken
Proposed Solution (same API as today, no new API changes)
const task = this.controller.createNotebookCellExecution(cell);
task.start();
const output1 = new NotebookCellOutput([....]);
await task.appendOutput(output1);
const output2 = new NotebookCellOutput([....]);
await task.appendOutput(output2);

// At this point the first output needs to be replaced with something else new
// This is an existing API.
task.replaceOutputItems(newOutputItems, output1);

There is absolutely no difference to the underlying API, however the only difference is the second argumen of replaceOutputItems
The description of that is @param output Output object that already exists.
I'm proposing that we change this to be able to pass an Output object that doesn't necessarily yet exist, but one that was previously passed into VS Code API for appending/replacing, .
We can achieve this by adding an id property to the NotebookOutput object (such a property existed and was removed, we could make it internal to VS Code or we could maintain some internal weakmap mapping between the two models).
@roblourens /cc We can possibly chat about this some time next week.

I don't remember all the details of this but I guess I don't understand why it doesn't already work? Also, these updates are already driven by an internal output ID. It still exists, I think it was only removed from the extension API. Happy to chat some more about it

Also, these updates are already driven by an internal output ID

Oh ok, let me have a look then

the problem is with the metadata, will create a separate issue


Add missing block validation checks (missing forks)

Tests are missing, I will see if I can write some test for those small things

validation for previous forks looks perfecto.


Sending Images / GIFS from FileSystem

Hello,
I install your Docker on my Synology NAS and with the Interface i can select, upload and send images / gifs to my pixoo 64. As I want to use the REST calls via CURL (Twitch Chat integration) and tried to execute the CURL commands via Shell but I can't figure out how I can send a local (file is on the Synology NAS) to the pixoo. No matter what syntax, folder will all permission I use, I always get a curl: (26) Failed to open/read local data from file/application error.
e.g. with this one:
curl -X POST "http://<IP_ADDRESS>:8085/sendGif" -H "accept: application/json" -H "Content-Type: multipart/form-data" -F "gif=@/volume1/web/HEADICORN.gif;type=image/gif" -F "speed=100" -F "skip_first_frame=false" curl: (26) Failed to open/read local data from file/application
I hope you can help me out. Thanks in Advance!

Hi,
I assume it's a permission problem on your Synology.
Make sure that curl has access to the referenced file/image.
Try running other commands on that file (from the same shell/path where you've executed the curl command).
e.g.
file /volume1/web/HEADICORN.gif

Anyway, this is not an issue of pixoo-rest, but of your setup/environment.
Maybe someone from the Synology-forums can help here.


Features/components

What
This PR starts adding some initial components to Dripsy. This is not a solidified list. Components will be both added and removed as we work to determine what is the best fit for Dripsy. Resolves #8
To-Do
HTML Elements

[x] H1
[x] H2
[x] H3
[x] H4
[x] H5
[x] H6
[x] A
[x] P
[x] Hr
Others?

React Native

[x] View
[x] ScrollView
[x] FlatList
[x] Text
[x] SafeAreaView
[x] ActivityIndicator
[x] KeyboardAvoidingView
[x] Picker
[ ] Pressable - Needs RN 63.0
[x] SectionList
[x] StatusBar
[x] TouchableHighlight
[x] TouchableOpacity
[x] TouchableWithoutFeedback
[x] VirtualizedList
Do we want the entire library or only specific ones?

Theme-UI Inspired

[x] ImageBackground
[x] Image
[x] Flex
[x] Row
[x] Box
[x] Card
[ ] Checkbox
[ ] Slider
[x] Switch
[x] Text
[x] Heading
[x] Badge
[x] Avatar
[x] Divider
[ ] Progress
[x] Link
[x] Container
[ ] Select
[ ] Textarea
[ ] TextInput
[ ] SVG
[x] Button
[ ] Radio
[ ] Label

Great - thanks. Left a few notes from a glance through.

Related for Pressable + expo: https://github.com/expo/expo/pull/9162

This is what I'm using for Button in my own app. Still just started it
import { Text, Theme, useDripsyTheme, View } from 'dripsy'
import React, { ComponentProps } from 'react'
import { TouchableWithoutFeedback } from 'react-native'
import { DripsyTheme } from '../providers/Dripsy'

type Props = {
  children: React.ReactNode | string
  variant?: keyof DripsyTheme['buttons']
  sx?: ComponentProps<typeof View>['sx']
  labelSx?: ComponentProps<typeof View>['sx']
  isText?: boolean
  onPress?: () => void
  labelProps: ComponentProps<typeof Text>
  touchableProps: ComponentProps<typeof TouchableWithoutFeedback>
} & ComponentProps<typeof View>

export function Button(props: Props) {
  const {
    children,
    variant = 'primary',
    sx = {},
    labelSx = {},
    isText = true,
    onPress,
    labelProps,
    touchableProps,
    ...viewProps
  } = props

  const { theme } = useDripsyTheme()

  const { label: labelStyle = {}, ...variantStyle } = theme.buttons[
    variant
  ] ?? {
    label: {},
  }

  return (
    <TouchableWithoutFeedback {...touchableProps} onPress={onPress}>
      <View {...viewProps} sx={{ variantStyle, ...sx }}>
        {isText ? (
          <Text {...labelProps} sx={{ ...labelStyle, ...labelSx }}>{children}</Text>
        ) : (
          children
        )}
      </View>
    </TouchableWithoutFeedback>
  )
}

I think that would be great to use, for now, we can always add on to it. I use something similar and also have a loading prop that renders an ActivityIndicator.
We might want to break some of the more complex components into there own file.

We might want to break some of the more complex components into there own file.

Agreed

I'm thinking about taking the components from either https://callstack.github.io/react-native-paper/ or https://callstack.github.io/react-native-paper/ and rebuilding them in Dripsy this weekend.
Do you think that these are too opinionated? Also what style do you think that we should be aiming for with the default Dripsy components?
My view is taking one of these more established libraries and rebuilding them as Dripsy components will offer a lot more functionality than trying to figure it out ourselves from scratch, as well as avoid having to make development related designs related to naming conventions, what we add-in, etc.
Thoughts?

I'm on my phone but I'll share my thoughts I've had on this so far.
The way I see it - there are a few components, such as Buttons or badges, where we need some level of opinionated code beyond a native component. Ideally, these would be kept to a minimum and be customizable. In my opinion, you should be able to theme all of your app's core styles from your theme object. I resonate with the theme-ui goal of having a standardized theming system for the web. There are of course some times where this won't be possible, but I view it as the guiding standard.
So, to answer more specifically, I think it would be ideal for Dripsy components to stay more low-level than React Native Paper. Your styles are derived from your theme object, and you can build custom components from there. We could then in the docs have many example examples of theme objects, the way theme-ui does. I view the core of Dripsy as a responsive design system, more than a pre-made component library.
Now, with all that said, I think using Dripsy as the building blocks for an opinionated component library is a great idea. Using the sx prop has been incredibly useful, and I think it should be adopted across React Native component libraries in general. What if we spun off separate packages, such as @dripsy/material, which use dripsy under the hood? Ideally, they would export a theme and a few more opinionated components that require custom code, based on the Dripsy building blocks.
(Another thing to keep in mind for this is maintenance; component libraries might have a bit of a different expectations from people who use them. Do you have to update styles over time to stay up to date with the latest? etc. I'm not too concerned about this, as long as the theme object handles most of the styling. That's the beauty of it.)
Hope this rambling makes sense.

Now, what I just said does make things like buttons a bit unclear. Should dripsy export a button? Probably, yeah. I think the minimal style of theme-ui is a nice starting point for most apps. Whether or not a custom component library would consume that same button, or create its own from scratch, I'm not exactly sure.

The way I see it - there are a few components, such as Buttons or badges, where we need some level of opinionated code beyond a native component. Ideally, these would be kept to a minimum and be customizable. In my opinion, you should be able to theme all of your app's core styles from your theme object. I resonate with the theme-ui goal of having a standardized theming system for the web. There are of course some times where this won't be possible, but I view it as the guiding standard.

All onboard for sticking to the theme-ui paradigm.

So, to answer more specifically, I think it would be ideal for Dripsy components to stay more low-level than React Native Paper. Your styles are derived from your theme object, and you can build custom components from there. We could then in the docs have many example examples of theme objects, the way theme-ui does. I view the core of Dripsy as a responsive design system, more than a pre-made component library.

Definitely the way to go.

Now, with all that said, I think using Dripsy as the building blocks for an opinionated component library is a great idea. Using the sx prop has been incredibly useful, and I think it should be adopted across React Native component libraries in general. What if we spun off separate packages, such as @dripsy/material, which use dripsy under the hood? Ideally, they would export a theme and a few more opinionated components that require custom code, based on the Dripsy building blocks.

I agree with just about everything you said. The idea of mini style-specific libraries is great like @dripsy/material is great. I think that's much better than what I proposed. That will give us tremendous flexibility to experiment and also have a wide range of different themes/styles.
Overall, I think this is great. I'll try to replicate some of these concepts going forward with this branch and hopefully get something out by the end of the weekend.

Tailwind UI might be my favorite inspiration I've come across for a UI library. Very clean and customizable.
https://tailwindui.com/components#product-application-ui

https://blog.expo.io/expo-sdk-39-is-now-available-4c10aa825e3f This should be relevant for creating a Button with the pressable component.

Oh thanks for sharing I hadn't seen that yet. Great release overall, and good to see the Pressable. Funny to see my feature request for screenshot detection get linked to.
They haven't upgraded to RNW 14 yet which will include the new Pressable with hover support, but I've mentioned this to their team and assume it'll get upgraded soon.
For now, I'll probably still use react-native-web-hooks for hovering styles

Another really nice set of components from Vercel: https://react.geist-ui.dev/en-us/components/button

I took a quick look at geist and really the library as a whole. Specifically, I'm a fan of how it seems very comprehensive at the same time without being too opinionated. I personally component libraries with a lot of components. Couple something like that with the themeability that Dripsy offers I think something like that would be awesome.

Closing this temporarily as we transition to monorepo in #48

I've been slowly making a geist-like dripsy package inside of my own app. I've been going component-by-component as I need them, and will move towards putting it in its own package once it feels robust enough.
Here's an example of a component I made following the geist style patterns: https://snack.expo.io/@nandorojo/dripsy-browser-mockup


Fix code bug raised by #473

Related to #473

Make sure position is integer
Fix a logical operation
Add result checking

Please take a check @PoisonAlien and make the code robustly.

@PoisonAlien Could take a took in your spare time?
Especially, the following two rows of code are not identical.
    tsb.dat.cn.vars = tsb.dat[!CN >1.5 & CN < 2.5]
    tsb.dat.cn.vars = tsb.dat[!(CN >1.5 & CN < 2.5)]

Thaks @ShixiangWang for the PR. Works fine.


Use Caffeine instead of homegrown cache for CustomResourceCache

We need to provide a cache that can properly support eviction and we should avoid writing one ourselves. Caffeine looks like a good candidate for that. /cc @csviri

When I was implementing that , was thinking about caffein, but here we don't need automatic cache eviction and featured that caffein provides. In a normal service where you would limit the number of objects cached, and have a nice configurable way of doing caching caffein is the weapon of choice.
However here we actually want to always store the latest CR, so a concurrent hash map was a KISS solution. Although as related to the other issue, we could do this in a configurable way, so open also for other caching ligraries like coffein.

The problem is that the cache will keep growing indefinitely as it is. Imagine a scenario where an operator provisions lots of of long-lived resources which are not modified afterwards. In that scenario, the cache will grow to be quite big but contain resources that are not needed anymore.
The problem is that CustomResourceCache is called cache but it really isn't because the EventHandler actually doesn't work if there's a "cache" miss so this architecture needs to be cleaned up, imo.

@metacosm yes, that is intentional. So that what I mean when we want to have automatic removal of object from cache there are other parts to change, so its not that trivial.
Although in practice this is not really a problem with not extreme amunt of CR's (thus there are no millions of CRs). Note also think about if that in case an operator restarts, we also reconcile all the objects to they will and up all in the cache at least for a certain amount of time. So there is a point where we anyway cache all the object even with caffein.
So the point is that this is much more complex problem then just replacing the cache implementation. And several parts are effected. We have to think also about this reconciliation strategy on startup I think, currently that could be also a self inflected DoS attack if there is a huge amount of CR.

What we agreed on:

CustomResourceEvent source can cache the resources, and transparently get them from the server if there is a miss
The cache will be pluggalble, so anyone can specify a cache implementation (we will have a Cache interface) and replace it. And the default can be caffein with some reasonable defaults. (Evicting oldest object first)

@metacosm @csviri on this topic, should the operator sdk leverage the informer provided by the fabric8 client ?

@lburgazzoli yes it should, when we did the current implementation thge informers were not there yet.  Started to working on that with other improvements, but some changes will require quite major changes. Did not have the time.

Looking at leveraging informers instead of homegrown cache is something I plan to explore soon.

One another thing to think about what would be the nices way to share the caches between event source, somthing like:
<EMAIL_ADDRESS>

Looking on related issue: https://github.com/java-operator-sdk/java-operator-sdk/issues/522
We might want to do this in 2 steps:

Migrate CustomResourceEventSource to Informers (this should be failry quicky & easy )
Implenent improved caching (this might take longer)

For now it seems that we will just migrating to informers would be good enough. Having a cache with some smart eviction functionality would mean that we cannot use Informers as our backbone for CustomResourceEventSource. Which would mean basically reimplementing Informers in a different way.


Rig App: Create layout to handle rendering Rig

I have an initial app that renders any rig here https://github.com/tablelandnetwork/rigs/tree/joe/animation_url/animation_url
to play with it:

clone the rigs repo
cd into animation_url
npm install && npm run dev
open http://localhost:5173?rig=

A potential issue with this is that the rig image urls are all on IPFS and we need to choose a gateway to use within the app.  Currently the app uses https://ipfs.io/ipfs/. This works fine, but it is very slow to load initially.  The market places will cache IPFS addresses on there own content server, but I don't know if they are going to do that for each of the sources inside of the animation_url app.
Is there a better gateway to be using?

@asutula we can use web3.storage / nft.storage for the images, right? they are pinned to one of those iirc

nre, cross posting.  We have a paid pinning/gateway setup that's working well


Update createAuthorizeURL to support token response types

Added support for token based authentication as documented on Spotify's authorization guide.

Coverage remained the same at 89.091% when pulling 28a764f2c675b7997abf29e5c48a7ed4813e1bf6 on gaganza:update-auth-support-token into 37a78656198185776ca825b37e2de4a31c2ae5de on thelinmichael:master.

Thanks a lot @gaganza. Apologies for the delay.


Adding the prior hessian twice

We're adding the gaussian prior hess here: https://github.com/ihmeuw-msca/regmod/blob/7fd61b3c7416cf385059e8cd43b3c3f18cb47d94/src/regmod/models/model.py#L515
and here:
https://github.com/ihmeuw-msca/regmod/blob/7fd61b3c7416cf385059e8cd43b3c3f18cb47d94/src/regmod/models/model.py#L492C15-L492C15
And then these matrices are being multiplied together:
https://github.com/ihmeuw-msca/regmod/blob/7fd61b3c7416cf385059e8cd43b3c3f18cb47d94/src/regmod/models/model.py#L144-L146
This doesn't seem right?
It should be J * (HL + HP)^-1 * J^T, right not it looks like we're doing (J.T * J + HP) * (HL+HP)^-2 * (J.T * J +HP) where HL is hessian of the log likelihood and HP is the hessian of the log prior.

Hi @AHsu98! I think we had this discussion offline, this is sandwich estimation, we try to get variance covariate matrix roughly the order of inverse of hessian but at the same time incorporate the residual information :) I will close this issue. But please let me know if there are further concerns!


Sub operator v0.1.1

Upgrade subscription community operator to V0.1.1 in which  some sample yaml issues are fixed

/lgtm


Update function help

Function help is not all in a supported format for platyps. This results in markdown help files being generated improperly. Primary issue seen is examples with bad formatting and misplaced codeblocks. Review the proper format for platyps to avoid this issue and then update help for functions.

[ ] Update function help
[ ] Update Readme's with links to docs and examples.
[ ] Update main page readme. Consider GIF, Video, or other presentative features.

Updated Examples and Notes to match platyps standardization and made use of some markdown functionality.


Remote jupyter server connections for Native Notebook

For GA at a minimum get feature parity

Get estimate

Nice to have for experiment (based on estimate)

For GA at a minimum get feature parity

Get estimate

Nice to have for experiment (based on estimate)

Notes from https://github.com/microsoft/vscode-jupyter/issues/4328
Here's a temporary solution outlined by @ayim (temporary = Old notebook experience in Native notebooks without the full blow remote experience)
The Jupyter Server entry point that used to be located here:

Will be moved to the global status bar in Native Notebooks since the original entry point is no longer available.

All functionality should remain the same - this will help achieve experience parity in native notebooks.

Notes from https://github.com/microsoft/vscode-jupyter/issues/4328
Here's a temporary solution outlined by @ayim (temporary = Old notebook experience in Native notebooks without the full blow remote experience)
The Jupyter Server entry point that used to be located here:

Will be moved to the global status bar in Native Notebooks since the original entry point is no longer available.

All functionality should remain the same - this will help achieve experience parity in native notebooks.

https://github.com/microsoft/vscode-jupyter/issues/1206
Use as inspo

https://github.com/microsoft/vscode-jupyter/issues/1206
Use as inspo

Parity UI/UX experience
Prototype Link (all users with MS SSO should be able to sign in): https://www.figma.com/file/OGTDR9c9U5sFemy6xMlaE2/Visual-Studio-Code-Toolkit-Community?node-id=91%3A627
Screen: Local

Screen: Local / Connections

Screen: Local / Connections / URI

Screen: Remote

Screen: Remote/Connections

Prototype in Image Form
Local Flow:

Remote Flow:

Parity UI/UX experience
Prototype Link (all users with MS SSO should be able to sign in): https://www.figma.com/file/OGTDR9c9U5sFemy6xMlaE2/Visual-Studio-Code-Toolkit-Community?node-id=91%3A627
Screen: Local

Screen: Local / Connections

Screen: Local / Connections / URI

Screen: Remote

Screen: Remote/Connections

Prototype in Image Form
Local Flow:

Remote Flow:

Hi there. The ideal workflow in my mind would be we open up a remote jupyter notebook in VSC just like what we do when normally open it in a browser: we can see a tree view of the files and can see running kernels/notebooks, and we can edit it directly, but with the strong feature language server and other plugins of VSC

@DonJayamanne This was just marked needs-triage, but it seems like work that was already done? Leaving open for now.

I came here from StackOverflow: https://stackoverflow.com/questions/59765486/vscode-remote-jupyter-notebook-open-an-existing-notebook-in-a-specific-folder
I am confused by this thread from 2 years ago. Does VS Code support opening remote notebooks now or is this still in the "enhancement" request phase? I am also confused as a user that I am able to connect remotely to a notebook server but how do I retrieve my notebooks that are already there? Is this only for people who have local notebooks but for some reason want to have them run remotely on more powerful hardware???

@ejkitchen there are multiple ways to use remote.
If you want to use remote hardware (because maybe the GPU is more powerful), but don't need your files on the remote machine,  then you would use this command:

That connects to a remote jupyter server but does NOT copy any files to the remote machine.
If you want to connect to a remote machine and see all of the files in VS code, then you'd use something like Remote SSH. In the remote SSH scenario, a VS code server runs on the remote machine, serving up files to your local client. Kernels are run from this VS code server and can access all the remote files.
Our long term goal is to unify these two modes so they behave the same, but we haven't gotten that far yet.

Kernels are run from this VS code server

@rchiodo That doesn't work.
https://stackoverflow.com/questions/73408585/vscode-run-remote-jupyter-server-with-remote-notebook-files-all-on-same-remote

Turns out, if you install the local extensions onto the remote server, it actually works. But there aren't many clues in the GUI that suggest that.
Anyway, I've figured it out, it's working now. Would be nice if these features were made more explicit somehow.

I think this feature would be really useful

May I ask what is the current status of this feature. This seems to have been implemented but I'm not able to find any clues from the doc on how to use it.

Here are the docs https://code.visualstudio.com/docs/datascience/jupyter-kernel-management#_existing-jupyter-server

Here are the docs https://code.visualstudio.com/docs/datascience/jupyter-kernel-management#_existing-jupyter-server

That is very different than what is described here as I have mentioned. The goal here is to be able open up existing Jupyter notebook URL and edit files there through VSC as a replacement of the browser. The link you shared only uses the remote kernel. Any running notebook cannot be opened up in VSC with that manner.

You are looking for https://github.com/microsoft/vscode-jupyter/issues/1366


[1048] Disable browser auto-fill

Context
https://trello.com/c/xHwsbyBY/1048-spike-1day-disable-browser-autofill-autocomplete-throughout-service
Changes proposed in this pull request
There are two parts to the solution:
Part 1: add autocomplete="disabled" to input field (can be any string except "off") to prevent Chrome from activating managed address auto-fill.
Part 2: A progressive enhancement solution that disables Chrome's auto suggestion based on past input values. We remove the name attribute on the given input. The script replaces the name attribute with a random string and saves it as a data attribute. When the form gets submitted all name attributes will be replaced with their previous value.
Guidance to review

Make sure have entered your name and address under Chrome => Preferences => Auto-fill => Addresses and more
Visit an edit page
Click on the field - no auto-fill option is presented (both managed addresses and past input suggestions)

Just a thought - does autocomplete="disabled" work as a <form> element attribute or does it have to be applied to the input elements individually?
If it does work, we could add it to our custom form_with helper that is currently adding novalidate: true to all forms across the whole app.

Like @AbigailMcP I'd suspect you'd need something on each input.
I'd also suspect that you'd need a different random value for each field that is randomised each time. Otherwise the risk is chrome will save this value for the key "disabled" and start populating again.

@AbigailMcP Unfortunately, adding autocomplete="disabled" to the form element doesn't work, it has to be on each  input.
@edwardhorsford Giving each input a different random value makes no difference. Chrome probably uses the name attribute to remember previous inputs. And this is where we have a slight problem. Although autocomplete="disabled" prevents Chrome from loading the saved addresses, it doesn't prevent the auto suggestion pop-up from appearing which gives you past inputs. There are only two was prevent that. Turn it off via Chrome settings or do exactly what is suggested here, but we can't because the name attribute, e.g. contact_detail_form[postcode] is meant to be in a different format to say id.
Is this good enough?

@jhenderson Chrome may use the name as part of the heuristics, but it won't be the only thing used. I think a value of autocomplete="disabled" is unlikely to work for long.
Have you tried / can we try with random autocomplete values? do they still show suggestions in Chrome?

 [Spike 1day] Disable browser autofill / autocomplete throughout service

I've tested this in VoiceOver with Safari and it seems to have no impact. I'm going to try to track down some people on cross gov slack who can try in some other AT.

Checked with JAWS 2021 on Chrome (88), Edge (88) and IE11.
Works with no issues on Edge and Chrome. Form submitted as expected. Form controls dialog showed the inputs along with the labels. This on both initial load and when returning to the form when editing.
IE11 worked but wasn't showing the name change in the inspector and triggered a js error in the console.


[WIP] Fixing tests depending on history

Fix #819
This is only the testing infrastructure since they are only failing in master. I'm passing the tests in my local machine.

Solved for unfathomable reasons.


Could not install package 'SkiaSharp 1.60.1'

Description
My project is PCL. now in shared code, I cannot upgrade skiasharp

Could not install package 'SkiaSharp 1.60.1'. You are trying to install this package into a project that targets '.NETPortable,Version=v4.5,Profile=Profile111', but the package does not contain any assembly references or content files that are compatible with that framework. For more information, contact the package author.
If SkiaSharp dropped support for PCL then what should we do. should we re-start the 10,000 lines code project from scratch on .Net standard just to be able to upgrade a nugget package?

Expected Behavior

Actual Behavior

Basic Information

Version with issue:
Last known good version:
IDE:
Platform Target Frameworks:

Android:
iOS:
Linux:
macOS:
Tizen:
tvOS:
UWP:
watchOS:
Windows Classic:

Target Devices:

Screenshots

Reproduction Link

The world is moving towards .NET Standard, and away from PCL. Unfortunately, we can't always support everything, so something had to give.
The good news is that SkiaSharp support .NET Standard 1.3, so this really only excludes the wp8 and win8 platforms. https://docs.microsoft.com/en-us/dotnet/standard/net-standard
There is even more good news that the upgrade is not actually painful in most cases. The new project system is pretty good at getting the right things in. I have been doing this with many of my projects - no need for complex upgrades and other tools.
In fact, just open the .csproj in a text editor (such as VSCode/notepad/text edit) and then replace everything with:
<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>netstandard2.0</TargetFramework>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="Xamarin.Forms" Version="<IP_ADDRESS>2510" />
  </ItemGroup>
</Project>

That should probably get you started right away - but you may have to add your other NuGet references as well. If you attach/send me your .csproj and your packages.config, I can show you exactly what things should look like.

Hi,
this issue is affecting my projects too. I need to find a quick solution because I work for a company. Could you help me please? Thanks.

If you really need to support PCL, then the last version that supports it was 1x.60.0. I conceptually removed PCL support with the v1.60.x series, but left it in for the first release so that any critical bugs in the old m59 series could be resolved.
We won't be adding PCL back, you will have to remain on the v1.60.0 release.

jawdrop just like that, screw all the projects that were depending on this library... wow, just... wow

@gmagana PCL has been deprecated and considered Legacy since July of last year:
https://github.com/MicrosoftDocs/xamarin-docs/commit/46bb04016d3c35d91ff434b38474e0cb8197961b#diff-37abf543ed880c4ccf4e8c9ce9d997bd
I personally wouldn't support PCL in anything I was maintaining either 🤷♂


uses alt base image based on the stack for local

it would be nice to include a test that starts on each pg version the standard stack, i.e. matrix build for local, minimal example

Yup. Working on tests in the next PR for local & cloud.


Get file download for multipass when GZIP is active

Hi when I actvate multipass without GZIP everthing is working.
When I add following GZIP parameter into the config, I get a file download popup for multipass path.
gzip {
  level 6
}

only solution is currently to add the multipass path to except path for gzip.
gzip {
  level 6
  not /multipass
}

I can confirm that this is an bug. The Content-Type header isn't set in multipass.go#L185


How to test with the original image scale?

I used random cropping in the training, so I wanted to test with the original scale of the image. Where should I change the code?

You can modify any behavior here.

@hellock Thank you. I solve the problem.


[PE-D][Tester C] User Guide Sample GUI Does Not Resemble App

This is the sample GUI presented in the 2nd page of the UG:

However following the instructions to open the app itself looks very different:

New users of your app might be very confused if they were following your quick start to the tee, so I've assigned it a Medium severity level.
Don't forget to change it for your final UG!

Labels: severity.Medium type.DocumentationBug
original: drustanyjt/ped#1

similar to #109


DateTimePicker as inline Picker

Is it possible to display the plugin as inline-picker in a div without forcing it with css and js?

No. It is not possible.
Plugin code should be changed to achieve that.


There is no README for this repo

A README for this repo can explain what Fastlane is and what each of the plugins do.

Resolved


TypeError: session.keepAlive is not a function

Environment details

OS: macOS Sierra v10.12.6
Node.js version: 7.10.0
npm version: 4.2.0
@google-cloud/spanner version: 0.7.1

Steps to reproduce

Open a connection to the database
Let the connection sit for a while

Here is the error we are seeing in Stackdriver:
TypeError: session.keepAlive is not a function
    at SessionEvictor.evict (/usr/src/gMail/node_modules/@google-cloud/spanner/src/session-pool.js:608:13)
    at Pool._evict (/usr/src/gMail/node_modules/generic-pool/lib/Pool.js:338:41)
    at Timeout._scheduledEviction.setTimeout [as _onTimeout] (/usr/src/gMail/node_modules/generic-pool/lib/Pool.js:353:14)
    at ontimeout (timers.js:386:14)
    at tryOnTimeout (timers.js:250:5)
    at Timer.listOnTimeout (timers.js:214:5)

We specify the keepAlive as 30 in the configuration:
var Spanner = require('@google-cloud/spanner');

...

var spanner = Spanner(_.pick(config, ['projectId', 'keyFilename']));
var instance = spanner.instance(config.instance);
self.connection = instance.database(config.database, {
  min: 1,
  keepAlive: 30
});

hey @jfeigel, I tried to reproduce this locally but was unable to do so. My first suggestion would be to try upgrading to 0.8.0. If that does not resolve your issue, would you mind putting together a gist/repo that consistently reproduces the bug?

@callmehiphop We solved the issue. Turns out the DBs that we were trying to connect to did not exist, however spanner allowed us to "connect" and didn't send back any kind of error or warning to this fact. So when the session tried the keepAlive it errored out because there wasn't one.

If the DB did not exist, then creating a session itself would fail and it should not even try to keep alive the session. @callmehiphop I think we should fail more gracefully here.

Yeah, I agree. I think we might want to either create an open method which will report any initial failures creating initial sessions/etc. Or else turn the database object into an event emitter that will emit these types of errors.
@stephenplusplus WDYT?

I would lean towards emitting errors. What do you think, @jfeigel?

@stephenplusplus Yes, I think emitting errors would be preferable.

@jfeigel I've just published a new release (0.9.0) that turns database objects into event emitters, you should be able to do the following now.
database.on('error', err => console.error(err));

Going to close this now, thanks for the help!


All events stop being emitted on Linux when file is replaced

As of chokidar v.1.6.1
Steps to repro:
const chokidar = require('chokidar')

let watcher = chokidar.watch('file.txt')
watcher.on('raw', (event, path, details) => {
  console.log('Raw event info:', event, path, details)
})

Now, if I modify the file file.txt
touch file.txt
# or
echo some > file.txt

events are reported.
If I do something like:
echo something > z.txt
mv z.txt file.txt

i.e. replace the original file.txt with new one, chokidar stops emitting events.
This issue may be seen when using Emacs with chokidar on Linux: Emacs seems to be doing exactly what is described above when it creates backups. Maybe this could be relevant to somebody in frustration about what is going on.
EDIT tried that on my MacOS (same script, same chokidar version) -- it won't repro.

Why are you only watching the individual file and only listening to the raw event? That's only showing you what fs.watch() is doing, not what chokidar is doing.
usePolling: true is one solution, but I suspect this is a contrived example.
Listening to chokidar's regular events, and watching the directory, or even a glob that would only match this file (like [f]ile.txt), would likely solve the problem. You could also play with the atomic option.

Sorry, my bad.
I've actually listened to both raw and all. Watching the directory instead of a single file indeed solves the problem.


Use utf-8 encoding for message logs

Should probably be made configurable.

broken tests. you should use the codecs module so it can work with py2

I've fixed that using codecs. Thanks anyway


docs: update readme file

Description
I'm not sure that I interpreted the input.tfvars usage correctly. Please help me get it correct.
(After the text approved, I'll update the other references in the examples.)

Moved the content from the 2nd usage section to the top.
Removed the content about overriding default variable values. That seems like standard Terraform behavior.
Added some missing sections

iam permissions statement
contributing section

Editorial updates

Check the relevant boxes:

[ ] Bug fix (nonbreaking change that fixes an issue)
[ ] New feature (nonbreaking change that adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Examples or tests (addition or updates of examples or tests)
[x] Documentation update
[ ] CI related update (pipeline, etc.)

Checklist

[ ] If relevant, a test for the change has been added or updated as part of this PR.
[ ] If relevant, documentation for the change has been added or updated as part of this PR.

Merge

Merge using "Squash and merge".
Make sure to use a relevant conventional commit message that is based on the PR contents. The commit message determines whether a new version of the modules needs to be released, and if so, which semver number to use).

:tada: This PR is included in version 1.2.1 :tada:
The release is available on:

GitHub release
v1.2.1

Your semantic-release bot :package::rocket:


Implement defaults output for hazard domain in PDF

Implement a generic hazard statement styling for PDF2.

In order to make all custom symbol images the same size, we would need to refactor the image templates. Or rather, I could just copy image templates and change how the size is calculated, or then we change the normal image templates to make it easier to have custom size configuration.

I haven't chosen whether to implement ANSI or ISO spec for this. I have access to the ANSI spec, but not ISO. Preferably it should be user definable via property.
I don't have HTML5 implementation planned right now.

@robander changed the inconsistent caution output when @type was not defined.


*: handle more errors properly

What problem does this PR solve?
There are lots of errors which are not handled properly.
What is changed and how it works?
This PR tries to handle these errors instead of ignoring them. Also, this PR does some cleanup.
Check List
Tests

Unit test

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@38221ce). Click here to learn what that means.
The diff coverage is 30.76%.

@@            Coverage Diff            @@
##             master    #1405   +/-   ##
=========================================
  Coverage          ?   75.38%
=========================================
  Files             ?      135
  Lines             ?    13139
  Branches          ?        0
=========================================
  Hits              ?     9905
  Misses            ?     2327
  Partials          ?      907

Impacted Files
Coverage Δ

server/api/diagnose.go
65.51% <ø> (ø)

server/region_syncer/client.go
80.26% <0%> (ø)

server/api/config.go
45.68% <0%> (ø)

tools/pd-ctl/pdctl/ctl.go
5.12% <0%> (ø)

server/region_syncer/server.go
80.73% <0%> (ø)

server/core/kv.go
77.69% <0%> (ø)

client/client.go
68.08% <0%> (ø)

tools/pd-ctl/pdctl/command/region_command.go
48.19% <0%> (ø)

tools/pd-ctl/pdctl/command/global.go
40.54% <0%> (ø)

server/schedule/basic_cluster.go
92.15% <100%> (ø)

... and 5 more

Continue to review full report at Codecov.

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


Fixed concurrency issue on iOS.

The productsRequest method as per Apple docs can be called on any thread (source: https://developer.apple.com/documentation/storekit/skproductsrequestdelegate (please check text in read)).
Working with validProducts on such thread can cause concurrency issues, such as this one:
"Terminating app due to uncaught exception 'NSGenericException', reason: '* Collection <__NSArrayM: 0x283ca4090> was mutated while being enumerated.'"**
Moreover, flutter results must be called on platform main thread only (source: https://docs.flutter.dev/development/platform-integration/platform-channels)
"Even though Flutter sends messages to and from Dart asynchronously, whenever you invoke a channel method, you must invoke that method on the platform’s main thread."
To fix these issues I simply wrapped all the code in dispatch_async(dispatch_get_main_queue, ^{ ... }).
Please pull this fix.

5.4.1 released 🎉


Fix: void type is not a subtype of undefined type

The current docs says void type is a subtype of undefined.

a subtype of undefined intended for use as a return type.

However, undefined type is assignable to void type, but not vice-versa.
const v: void = undefined; // OK
const u: undefined = v; // [Error]
//    ^: Type 'void' is not assignable to type 'undefined'.

And also, the archived specification says void type is a supertype of null type and undefined type.

The only possible values for the Void type are null and undefined. The Void type is a subtype of the Any type and a supertype of the Null and Undefined types, but otherwise Void is unrelated to all other types.
( https://github.com/microsoft/TypeScript/blob/main/doc/spec-ARCHIVED.md#325-the-void-type )

It seems a mistake.

If the archived spec is correct, type hierarchy(subtype & supertype relationship) should be like this.
graph LR
  U[unknown]
  N[never]
  A[any]
  u[undefined]
  n[null]
  U --> A
  A --> void --> u & n --> N

p.s. I hope official docs have a type hierarchy diagram like this which clarify assignability and sub-super relationship.

#2760 fixed this issue.(deleted subtype info itself) So, closed.


erofs-utils 1.7 is broken

Describe the bug
erofs-utils is broken since 1.7.
Steps To Reproduce
Build an filesystem image with erofs-utils 1.7 and try to access file on from a running VM.
Expected behavior
Accessing files from a filesystem image created with erofs-utils should work.
Screenshots
If applicable, add screenshots to help explain your problem.
Additional context
This was reported first in https://github.com/NixOS/nixpkgs/pull/256937
Notify maintainers

Metadata
Please run nix-shell -p nix-info --run "nix-info -m" and paste the result.
[user@system:~]$ nix-shell -p nix-info --run "nix-info -m"
output here

I see this when building a /nix/store image. With 1.7 I get the following. With 1.6 everything is ok.
[admin@nixos:~]$ du -d1 /nix/store > /dev/null
[   24.768545] erofs: (device sda3): erofs_read_inode: bogus i_mode (0) @ nid 0
du: cannot access '/nix/store/dk5vk3c9zknbjzzxmiglzv46qgv32gb0-tzdata-2023c/share/zoneinfo/Brazil/Acre': Structure needs cleaning
[   24.772263] erofs: (device sda3): erofs_read_inode: bogus i_mode (0) @ nid 0
du: cannot access '/nix/store/dk5vk3c9zknbjzzxmiglzv46qgv32gb0-tzdata-2023c/share/zoneinfo/Brazil/DeNoronha': Structure needs cleaning
[   24.777193] erofs: (device sda3): erofs_read_inode: bogus i_mode (0) @ nid 0
du: cannot access '/nix/store/dk5vk3c9zknbjzzxmiglzv46qgv32gb0-tzdata-2023c/share/zoneinfo/Brazil/East': Structure needs cleaning

@ehmry @LeSuisse Should we downgrade or does upstream already have a fix we can backport?

can you give me some dataset to reproduce it?

If you clone this branch: https://github.com/blitz/nixos-appliance-example/tree/erofs-borken
You can do:
$ nix -L build .\#nixosConfigurations.image.config.system.build.image
$ mkdir /tmp/erofs
$ sudo mount -t erofs result/image.linux-generic.raw /tmp/erofs
$ du -d1 /tmp/erofs > /dev/null
du: cannot access '/tmp/foo/dk5vk3c9zknbjzzxmiglzv46qgv32gb0-tzdata-2023c/share/zoneinfo/Brazil/Acre': Structure needs cleaning
du: cannot access '/tmp/foo/dk5vk3c9zknbjzzxmiglzv46qgv32gb0-tzdata-2023c/share/zoneinfo/Brazil/DeNoronha': Structure needs cleaning
du: cannot access '/tmp/foo/dk5vk3c9zknbjzzxmiglzv46qgv32gb0-tzdata-2023c/share/zoneinfo/Brazil/East': Structure needs cleaning
du: cannot access '/tmp/foo/dk5vk3c9zknbjzzxmiglzv46qgv32gb0-tzdata-2023c/share/zoneinfo/Brazil/West': Structure needs cleaning
du: cannot access '/tmp/foo/dk5vk3c9zknbjzzxmiglzv46qgv32gb0-tzdata-2023c/share/zoneinfo/Canada/Atlantic': Structure needs cleaning
...

This references some pretty experimental nixpkgs, so it might build a while. But none of the nixpkgs changes should be relevant to the broken erofs image.

If you clone this branch: https://github.com/blitz/nixos-appliance-example/tree/erofs-borken
You can do:
$ nix -L build .\#nixosConfigurations.image.config.system.build.image
$ mkdir /tmp/erofs
$ sudo mount -t erofs result/image.linux-generic.raw /tmp/erofs
$ du -d1 /tmp/erofs > /dev/null
du: cannot access '/tmp/foo/dk5vk3c9zknbjzzxmiglzv46qgv32gb0-tzdata-2023c/share/zoneinfo/Brazil/Acre': Structure needs cleaning
du: cannot access '/tmp/foo/dk5vk3c9zknbjzzxmiglzv46qgv32gb0-tzdata-2023c/share/zoneinfo/Brazil/DeNoronha': Structure needs cleaning
du: cannot access '/tmp/foo/dk5vk3c9zknbjzzxmiglzv46qgv32gb0-tzdata-2023c/share/zoneinfo/Brazil/East': Structure needs cleaning
du: cannot access '/tmp/foo/dk5vk3c9zknbjzzxmiglzv46qgv32gb0-tzdata-2023c/share/zoneinfo/Brazil/West': Structure needs cleaning
du: cannot access '/tmp/foo/dk5vk3c9zknbjzzxmiglzv46qgv32gb0-tzdata-2023c/share/zoneinfo/Canada/Atlantic': Structure needs cleaning
...

This references some pretty experimental nixpkgs, so it might build a while. But none of the nixpkgs changes should be relevant to the broken erofs image.

I just also found a case to reproduce that, would you mind trying if the following patch could fix the issue?
<EMAIL_ADDRESS>I think I need to release an erofs-utils 1.7.1 to fix the issue finally.

@hsiangkao I can wormhole the filesystem image, if that's easier. You can ping me on Matrix: @js:ukvly.org.

I don't have Matrix, yet I think a patched erofs-utils will resolve this issue, could you help confirm this?

@yu-re-ka has identified another problem: https://github.com/NixOS/nixpkgs/pull/261661#issuecomment-1766787027


Can't see some of profile pictures (including mine)

This used to work before, but now I cannot see most of the users profile pictures, including mine. They show as 'missing profile picture' - head silhouette.
Twister-core built on ubuntu commit 66394b047f3a64a25408d2faf93d6424792f2786
I can do any kind of testing and send back information - but please tell me what shoud I look for.
debug.log:
Twister version v<IP_ADDRESS>-unk-beta (2014-11-13 17:08:50 -0200)
Using OpenSSL version OpenSSL 1.0.1f 6 Jan 2014
Startup time: 2015-03-23 21:00:28
Default data directory /home/username/.twister
Using data directory /home/username/.twister
Using at most 125 connections (1024 file descriptors available)
init message: Verifying wallet...
dbenv.open LogDir=/home/username/.twister/database ErrorFile=/home/username/.twister/db.log
Bound to [::]:28333
Bound to <IP_ADDRESS>:28333
init message: Loading block index...
Opening LevelDB in /home/username/.twister/blocks/index
Opened LevelDB successfully
Opening LevelDB in /home/username/.twister/chainstate
Opened LevelDB successfully
LoadBlockIndexDB(): last block file = 0
LoadBlockIndexDB(): last block file info: CBlockFileInfo(blocks=79426, size=23750617, heights=0...79423, time=2013-11-14...2015-03-23)
LoadBlockIndexDB(): hashBestChain=8b0ff28ad7e1b61f7ba9574ad6136fff94032ee0a8aadddc5af8ae55184be937  height=79423 date=2015-03-23 20:54:35
init message: Verifying blocks...
Verifying last 500 blocks at level 3
No coin database inconsistencies in last 501 blocks (594 transactions)
block index            2000ms
init message: Loading wallet...
nFileVersion = 92800
Keys: 1 plaintext, 0 encrypted, 1 w/ metadata, 1 total
Performing wallet upgrade to 60000
wallet                  146ms
init message: Loading addresses...
Loaded 8091 addresses from peers.dat  19ms
mapBlockIndex.size() = 79426
nBestHeight = 79423
setKeyPool.size() = 0
mapWallet.size() = 0
mapAddressBook.size() = 0
AddLocal([2a00:1028:8380:ac86:[redacted]]:28333,1)
IPv6 wlan0: 2a00:1028:8380:[redacted]
AddLocal([2a00:1028:8380:ac86:226:[redacted]]:28333,1)
IPv6 wlan0: 2a00:1028:8380:ac86:[redacted]
init message: Done loading
startSessionTorrent (waiting for external IP)
Opening LevelDB in /home/username/.twister/swarm/db
ext-ip thread start
dnsseed thread start
Loading addresses from DNS seeds (could take a while)
net thread start
addcon thread start
opencon thread start
msghand thread start
dumpaddr thread start
Opened LevelDB successfully
Creating new libtorrent session ext_ip=2a00:1028:8380:[redacted] port=29333 proxy=
00:00:00.000: session_impl::start_session log created
00:00:00.000:  max number of open files: 1024
00:00:00.000:  generated peer ID: -TW1000-e9Xp4oP(RyvM
00:00:00.000:  spawning network thread
00:00:00.004:  *** session thread init
00:00:00.004:  open listen port
00:00:00.004:  listening on: <IP_ADDRESS>:29333 external port: 29333
00:00:00.004:  listening on: <IP_ADDRESS>:4433 external port: 4433
00:00:00.004:  listening on: [::]:29333 external port: 29333
00:00:00.004: failed to bind to interface "[::]:4433": Address already in use
00:00:00.004:  listening on: [::]:4434 external port: 4434
00:00:00.005:  done starting session
00:00:00.005:  *** session paused ***
libtorrent + dht started
node dht: loading storage... (13741 node_id keys)
connected x.y.z.q:28333
send version message: version 70003, blocks=79423, us=[2a00:1028:8380:xxxx:xxx:xxxx:xxxx:xxxx]:28333, them=x.y.z.q:28333, peer=x.y.z.q:28333
sending: version (103 bytes)
received: version (103 bytes)
Added time data, samples 2, offset +0 (+0 minutes)
sending: verack (0 bytes)
sending: getaddr (0 bytes)
receive version message: version 70003, blocks=79423, us=p.o.i.u:31524, them=x.y.z.q:28333, peer=x.y.z.q:28333
sending: addr (31 bytes)
received: verack (0 bytes)
received: cp (106 bytes)
received: cp (107 bytes)
received: cp (106 bytes)
received: cp (106 bytes)
sending: getblocks (933 bytes)
ERROR: GetMyExternalIP() : connection to d.f.g.h:80 failed
GetMyExternalIP() received [Service Unavailable] [::]:0
received: addr (30003 bytes)
Added 651 addresses from x.y.z.q: 129 tried, 7962 new
connected a.b.c.d:28333
send version message: version 70003, blocks=79423, us=[2a00:1028:8380:[redacted]]:28333, them=a.b.c.d:28333, peer=a.b.c.d:28333
sending: version (103 bytes)
received: addr (30003 bytes)
Added 689 addresses from x.y.z.q: 129 tried, 7959 new
received: addr (15003 bytes)
Added 328 addresses from x.y.z.q: 129 tried, 7960 new
ThreadRPCServer method=listwalletusers
ThreadRPCServer method=listwalletusers
ThreadRPCServer method=dhtget
ThreadRPCServer method=dhtget
ThreadRPCServer method=dhtget
ThreadRPCServer method=follow
adding torrent for [mytwistername,tracker]
ThreadRPCServer method=dhtget
received: version (103 bytes)
Added time data, samples 3, offset -1 (+0 minutes)
sending: verack (0 bytes)
sending: getaddr (0 bytes)
receive version message: version 70003, blocks=79423, us=p.o.i.u:31528, them=a.b.c.d:28333, peer=a.b.c.d:28333
sending: addr (31 bytes)
received: verack (0 bytes)
received: cp (106 bytes)
received: cp (107 bytes)
received: cp (106 bytes)
received: cp (106 bytes)
received: cp (109 bytes)
sending: cp (109 bytes)
received: cp (113 bytes)
sending: cp (113 bytes)
received: addr (30003 bytes)
Added 410 addresses from a.b.c.d: 129 tried, 7957 new
received: addr (30003 bytes)
Added 462 addresses from a.b.c.d: 129 tried, 7951 new
received: addr (15003 bytes)
Added 208 addresses from a.b.c.d: 129 tried, 7950 new
GetMyExternalIP() received [p.o.i.u] p.o.i.u:0
GetMyExternalIP() returned p.o.i.u
AddLocal(p.o.i.u:28333,4)
ext-ip thread exit
sending: addr (31 bytes)
sending: addr (31 bytes)
ThreadRPCServer method=follow
00:00:16.611: adding magnet link with resume data
00:00:16.611: found metadata in resume data
00:00:16.611: info-hash matched
00:00:16.611: 7280c5: creating torrent: mytwistername
00:00:16.611: 7280c5: starting torrent
00:00:16.621: 7280c5: fastresume data accepted
00:00:16.621: 7280c5: set_state() 3
00:00:16.621: 7280c5: start_announcing(), paused
BlockChain is now up-to-date: unpausing libtorrent session
ThreadRPCServer method=dhtget
ThreadRPCServer method=getdirectmsgs
INCOMING ERROR: invalid transaction id
ThreadRPCServer method=getdirectmsgs
node dht: saving storage... (storage_table.size = 13741)
ThreadRPCServer method=getposts
ThreadRPCServer method=gettrendinghashtags
node dht: loading storage... (13741 node_id keys)
INCOMING ERROR: invalid transaction id
INCOMING ERROR: invalid transaction id
INCOMING ERROR: invalid transaction id
loaded user_data for 1 users
adding torrent for [3mi,tracker]
00:00:33.965: adding magnet link with resume data
00:00:33.965: found metadata in resume data
00:00:33.965: info-hash matched
00:00:33.965: 0395a5: creating torrent: 3mi
00:00:33.965: 0395a5: starting torrent
adding torrent for [aaronsw,tracker]
ThreadRPCServer method=dhtget
00:00:33.974: 0395a5: fastresume data accepted
00:00:33.974: 0395a5: set_state() 3
00:00:33.974: adding magnet link with resume data
00:00:33.974: found metadata in resume data
00:00:33.974: info-hash matched
00:00:33.974: 5c4782: creating torrent: aaronsw
00:00:33.974: 5c4782: starting torrent
adding torrent for [ajenews,tracker]
00:00:33.978: 5c4782: fastresume data accepted
00:00:33.978: 5c4782: set_state() 3
00:00:33.978: adding magnet link with resume data
00:00:33.978: found metadata in resume data
00:00:33.978: info-hash matched
00:00:33.979: 221e75: creating torrent: ajenews
00:00:33.979: 221e75: starting torrent
adding torrent for [black_puppydog,tracker]
00:00:33.980: 221e75: fastresume data accepted
00:00:33.980: 221e75: set_state() 3
00:00:33.980: adding magnet link with resume data
00:00:33.980: found metadata in resume data
00:00:33.980: info-hash matched
00:00:33.980: e0fa4e: creating torrent: black_puppydog
00:00:33.981: e0fa4e: starting torrent
adding torrent for [bluszcz,tracker]
00:00:33.981: e0fa4e: fastresume data accepted
00:00:33.981: e0fa4e: set_state() 3
00:00:33.982: adding magnet link with resume data
00:00:33.982: found metadata in resume data
00:00:33.982: info-hash matched
00:00:33.982: eeb5fb: creating torrent: bluszcz
00:00:33.982: eeb5fb: starting torrent
adding torrent for [calm_client,tracker]
00:00:33.983: eeb5fb: fastresume data accepted
00:00:33.983: eeb5fb: set_state() 3
00:00:33.983: adding magnet link with resume data
00:00:33.983: found metadata in resume data
00:00:33.983: info-hash matched
00:00:33.984: 3008a2: creating torrent: calm_client
00:00:33.984: 3008a2: starting torrent
adding torrent for [corzntin,tracker]
00:00:33.984: 3008a2: fastresume data accepted
00:00:33.984: 3008a2: set_state() 3
00:00:33.985: adding magnet link with resume data
00:00:33.985: found metadata in resume data
00:00:33.985: info-hash matched
00:00:33.985: 8a83d6: creating torrent: corzntin
00:00:33.985: 8a83d6: starting torrent
adding torrent for [eisos,tracker]
00:00:33.986: 8a83d6: fastresume data accepted
00:00:33.986: 8a83d6: set_state() 3
00:00:33.986: adding magnet link with resume data
00:00:33.986: found metadata in resume data
00:00:33.986: info-hash matched
00:00:33.986: d482e8: creating torrent: eisos
00:00:33.987: d482e8: starting torrent
adding torrent for [erkan_yilmaz,tracker]
00:00:33.987: d482e8: fastresume data accepted
00:00:33.987: d482e8: set_state() 3
00:00:33.988: adding magnet link with resume data
00:00:33.988: found metadata in resume data
00:00:33.988: info-hash matched
00:00:33.988: b6e2c6: creating torrent: erkan_yilmaz
00:00:33.988: b6e2c6: starting torrent
adding torrent for [fieldmouse,tracker]
00:00:33.989: b6e2c6: fastresume data accepted
00:00:33.989: b6e2c6: set_state() 3
00:00:33.990: adding magnet link with resume data
00:00:33.990: found metadata in resume data
00:00:33.990: info-hash matched
00:00:33.990: d29b51: creating torrent: fieldmouse
00:00:33.990: d29b51: starting torrent
adding torrent for [godel,tracker]
00:00:33.991: d29b51: fastresume data accepted
00:00:33.991: d29b51: set_state() 3
00:00:33.992: adding magnet link with resume data
00:00:33.992: found metadata in resume data
00:00:33.992: info-hash matched
00:00:33.992: 14234f: creating torrent: godel
00:00:33.992: 14234f: starting torrent
adding torrent for [hackerspacepl,tracker]
00:00:33.993: 14234f: fastresume data accepted
00:00:33.993: 14234f: set_state() 3
00:00:33.993: adding magnet link with resume data
00:00:33.994: found metadata in resume data
00:00:33.994: info-hash matched
00:00:33.994: 4e1467: creating torrent: hackerspacepl
00:00:33.994: 4e1467: starting torrent
adding torrent for [hn,tracker]
00:00:33.995: 4e1467: fastresume data accepted
00:00:33.995: 4e1467: set_state() 3
00:00:33.995: adding magnet link with resume data
00:00:33.995: found metadata in resume data
00:00:33.995: info-hash matched
00:00:33.996: 996a1e: creating torrent: hn
00:00:33.996: 996a1e: starting torrent
adding torrent for [intercept,tracker]
00:00:33.998: 996a1e: fastresume data accepted
00:00:33.999: 996a1e: set_state() 3
00:00:33.999: adding magnet link with resume data
00:00:33.999: found metadata in resume data
00:00:33.999: info-hash matched
00:00:33.999: d9854b: creating torrent: intercept
00:00:34.000: d9854b: starting torrent
adding torrent for [kseistrup,tracker]
00:00:34.000: d9854b: fastresume data accepted
00:00:34.001: d9854b: set_state() 3
00:00:34.001: adding magnet link with resume data
00:00:34.001: found metadata in resume data
00:00:34.001: info-hash matched
00:00:34.001: c7f27a: creating torrent: kseistrup
00:00:34.001: c7f27a: starting torrent
adding torrent for [kublaykan,tracker]
00:00:34.002: c7f27a: fastresume data accepted
00:00:34.002: c7f27a: set_state() 3
00:00:34.002: adding magnet link with resume data
00:00:34.002: found metadata in resume data
00:00:34.002: info-hash matched
00:00:34.002: bc6b51: creating torrent: kublaykan
00:00:34.002: bc6b51: starting torrent
adding torrent for [lanzarote,tracker]
00:00:34.003: bc6b51: fastresume data accepted
00:00:34.003: bc6b51: set_state() 3
00:00:34.003: adding magnet link with resume data
00:00:34.003: found metadata in resume data
00:00:34.003: info-hash matched
00:00:34.003: 2f9a60: creating torrent: lanzarote
00:00:34.003: 2f9a60: starting torrent
adding torrent for [lemonde,tracker]
00:00:34.004: 2f9a60: fastresume data accepted
00:00:34.004: 2f9a60: set_state() 3
00:00:34.004: adding magnet link with resume data
00:00:34.004: found metadata in resume data
00:00:34.004: info-hash matched
00:00:34.004: fb56d8: creating torrent: lemonde
00:00:34.004: fb56d8: starting torrent
adding torrent for [lohang,tracker]
00:00:34.005: fb56d8: fastresume data accepted
00:00:34.005: fb56d8: set_state() 3
00:00:34.005: adding magnet link with resume data
00:00:34.005: found metadata in resume data
00:00:34.005: info-hash matched
00:00:34.005: d3ec7b: creating torrent: lohang
00:00:34.005: d3ec7b: starting torrent
adding torrent for [lxoliva,tracker]
00:00:34.006: d3ec7b: fastresume data accepted
00:00:34.006: d3ec7b: set_state() 3
00:00:34.009: adding magnet link with resume data
00:00:34.009: found metadata in resume data
00:00:34.009: info-hash matched
00:00:34.009: f48ef1: creating torrent: lxoliva
00:00:34.009: f48ef1: starting torrent
adding torrent for [mbelousov,tracker]
00:00:34.010: f48ef1: fastresume data accepted
00:00:34.010: f48ef1: set_state() 3
00:00:34.011: adding magnet link with resume data
00:00:34.011: found metadata in resume data
00:00:34.011: info-hash matched
00:00:34.011: 97a470: creating torrent: mbelousov
00:00:34.011: 97a470: starting torrent
adding torrent for [meduza_io,tracker]
INCOMING ERROR: invalid transaction id
00:00:34.012: 97a470: fastresume data accepted
00:00:34.012: 97a470: set_state() 3
00:00:34.012: adding magnet link with resume data
00:00:34.012: found metadata in resume data
00:00:34.012: info-hash matched
00:00:34.013: 429f73: creating torrent: meduza_io
00:00:34.013: 429f73: starting torrent
adding torrent for [mfreitas,tracker]
00:00:34.014: 429f73: fastresume data accepted
00:00:34.014: 429f73: set_state() 3
00:00:34.014: adding magnet link with resume data
00:00:34.014: found metadata in resume data
00:00:34.014: info-hash matched
00:00:34.014: 5cebb4: creating torrent: mfreitas
00:00:34.015: 5cebb4: starting torrent
adding torrent for [ministryoftruth,tracker]
00:00:34.016: 5cebb4: fastresume data accepted
00:00:34.016: 5cebb4: set_state() 3
00:00:34.016: adding magnet link with resume data
00:00:34.016: found metadata in resume data
00:00:34.016: info-hash matched
00:00:34.016: 7b51b9: creating torrent: ministryoftruth
00:00:34.016: 7b51b9: starting torrent
adding torrent for [myleneb,tracker]
00:00:34.017: 7b51b9: fastresume data accepted
00:00:34.017: 7b51b9: set_state() 3
00:00:34.017: adding magnet link with resume data
00:00:34.017: found metadata in resume data
00:00:34.017: info-hash matched
00:00:34.018: 26415f: creating torrent: myleneb
00:00:34.018: 26415f: starting torrent
adding torrent for [piratenpartei_de,tracker]
INCOMING ERROR: invalid transaction id
00:00:34.019: 26415f: fastresume data accepted
00:00:34.019: 26415f: set_state() 3
00:00:34.019: adding magnet link with resume data
00:00:34.019: found metadata in resume data
00:00:34.019: info-hash matched
00:00:34.019: d5caff: creating torrent: piratenpartei_de
00:00:34.019: d5caff: starting torrent
adding torrent for [piratpartiet,tracker]
00:00:34.020: d5caff: fastresume data accepted
00:00:34.020: d5caff: set_state() 3
00:00:34.021: adding magnet link with resume data
00:00:34.021: found metadata in resume data
00:00:34.021: info-hash matched
00:00:34.021: 3658be: creating torrent: piratpartiet
00:00:34.021: 3658be: starting torrent
adding torrent for [retroshare,tracker]
00:00:34.022: 3658be: fastresume data accepted
00:00:34.022: 3658be: set_state() 3
00:00:34.022: adding magnet link with resume data
00:00:34.022: found metadata in resume data
00:00:34.023: info-hash matched
00:00:34.023: 58ddc8: creating torrent: retroshare
00:00:34.023: 58ddc8: starting torrent
adding torrent for [rysiek,tracker]
00:00:34.024: 58ddc8: fastresume data accepted
00:00:34.024: 58ddc8: set_state() 3
00:00:34.024: adding magnet link with resume data
00:00:34.024: found metadata in resume data
00:00:34.024: info-hash matched
00:00:34.024: 8940fe: creating torrent: rysiek
00:00:34.025: 8940fe: starting torrent
adding torrent for [samir,tracker]
00:00:34.025: 8940fe: fastresume data accepted
00:00:34.026: 8940fe: set_state() 3
00:00:34.026: adding magnet link with resume data
00:00:34.026: found metadata in resume data
00:00:34.026: info-hash matched
00:00:34.026: 8f22a0: creating torrent: samir
00:00:34.027: 8f22a0: starting torrent
adding torrent for [spock,tracker]
00:00:34.028: 8f22a0: fastresume data accepted
00:00:34.028: 8f22a0: set_state() 3
00:00:34.028: adding magnet link with resume data
00:00:34.028: found metadata in resume data
00:00:34.028: info-hash matched
00:00:34.028: d3c6ee: creating torrent: spock
00:00:34.028: d3c6ee: starting torrent
adding torrent for [swistak35,tracker]
00:00:34.030: d3c6ee: fastresume data accepted
00:00:34.030: d3c6ee: set_state() 3
00:00:34.030: adding magnet link with resume data
00:00:34.030: found metadata in resume data
00:00:34.030: info-hash matched
00:00:34.030: 921d9d: creating torrent: swistak35
00:00:34.030: 921d9d: starting torrent
adding torrent for [thedod,tracker]
00:00:34.031: 921d9d: fastresume data accepted
00:00:34.031: 921d9d: set_state() 3
00:00:34.031: adding magnet link with resume data
00:00:34.031: found metadata in resume data
00:00:34.031: info-hash matched
00:00:34.031: 3db48d: creating torrent: thedod
00:00:34.031: 3db48d: starting torrent
adding torrent for [tom9009,tracker]
00:00:34.032: 3db48d: fastresume data accepted
00:00:34.032: 3db48d: set_state() 3
00:00:34.032: adding magnet link with resume data
00:00:34.033: found metadata in resume data
00:00:34.033: info-hash matched
00:00:34.033: f2b968: creating torrent: tom9009
00:00:34.033: f2b968: starting torrent
adding torrent for [tomedwards,tracker]
00:00:34.033: f2b968: fastresume data accepted
00:00:34.033: f2b968: set_state() 3
00:00:34.034: adding magnet link with resume data
00:00:34.034: found metadata in resume data
00:00:34.034: info-hash matched
00:00:34.034: 717585: creating torrent: tomedwards
00:00:34.034: 717585: starting torrent
adding torrent for [twister,tracker]
00:00:34.035: 717585: fastresume data accepted
00:00:34.035: 717585: set_state() 3
00:00:34.035: adding magnet link with resume data
00:00:34.035: found metadata in resume data
00:00:34.035: info-hash matched
00:00:34.035: 5fa786: creating torrent: twister
00:00:34.035: 5fa786: starting torrent
adding torrent for [vegos,tracker]
00:00:34.036: 5fa786: fastresume data accepted
00:00:34.036: 5fa786: set_state() 3
00:00:34.039: adding magnet link with resume data
00:00:34.039: found metadata in resume data
00:00:34.039: info-hash matched
00:00:34.040: a14927: creating torrent: vegos
00:00:34.040: a14927: starting torrent
adding torrent for [xsmurf,tracker]
00:00:34.041: a14927: fastresume data accepted
00:00:34.041: a14927: set_state() 3
00:00:34.041: adding magnet link with resume data
00:00:34.042: found metadata in resume data
00:00:34.042: info-hash matched
00:00:34.042: 2c2e02: creating torrent: xsmurf
00:00:34.042: 2c2e02: starting torrent
adding torrent for [ysth,tracker]
00:00:34.043: 2c2e02: fastresume data accepted
00:00:34.043: 2c2e02: set_state() 3
00:00:34.043: adding magnet link with resume data
00:00:34.043: found metadata in resume data
00:00:34.043: info-hash matched
00:00:34.044: 7d76e4: creating torrent: ysth
00:00:34.044: 7d76e4: starting torrent
wait-extip thread exit
00:00:34.045: 7d76e4: fastresume data accepted
00:00:34.045: 7d76e4: set_state() 3
INCOMING ERROR: invalid transaction id
INCOMING ERROR: invalid transaction id
INCOMING ERROR: invalid transaction id
ThreadRPCServer method=dhtget
INCOMING ERROR: invalid transaction id
INCOMING ERROR: invalid transaction id
INCOMING ERROR: invalid transaction id
INCOMING ERROR: invalid transaction id
ThreadRPCServer method=dhtget
ThreadRPCServer method=dhtget
00:00:56.851: a14927: CLOSING CONNECTION "z.x.c.v:29333" peer list full
connected t.y.u.i:28333
send version message: version 70003, blocks=79423, us=p.o.i.u:28333, them=t.y.u.i:28333, peer=t.y.u.i:28333
sending: version (103 bytes)
received: version (103 bytes)
Added time data, samples 4, offset +0 (+0 minutes)
sending: verack (0 bytes)
sending: getaddr (0 bytes)
sending: cp (106 bytes)
sending: cp (107 bytes)
sending: cp (106 bytes)
sending: cp (106 bytes)
sending: cp (109 bytes)
sending: cp (113 bytes)
receive version message: version 70003, blocks=79423, us=p.o.i.u:31580, them=<IP_ADDRESS>:0, peer=t.y.u.i:28333
sending: addr (31 bytes)
received: verack (0 bytes)
received: cp (106 bytes)
received: cp (107 bytes)
received: cp (106 bytes)
received: cp (106 bytes)
received: addr (211 bytes)
adding torrent for [wowo,tracker]
00:01:03.054: adding magnet link with resume data
00:01:03.054: found metadata in resume data
00:01:03.054: info-hash matched
00:01:03.054: 0fe58c: creating torrent: wowo
00:01:03.054: 0fe58c: starting torrent
00:01:03.056: 0fe58c: fastresume data accepted
00:01:03.056: 0fe58c: set_state() 3
adding torrent for [le_greg,tracker]
00:01:03.060: adding magnet link with resume data
00:01:03.060: found metadata in resume data
00:01:03.060: info-hash matched
00:01:03.060: 0b3c8e: creating torrent: le_greg
00:01:03.060: 0b3c8e: starting torrent
00:01:03.063: 0b3c8e: fastresume data accepted
00:01:03.063: 0b3c8e: set_state() 3
adding torrent for [cryptomars,tracker]
00:01:05.636: adding magnet link with resume data
00:01:05.636: found metadata in resume data
00:01:05.636: info-hash matched
00:01:05.636: 19a191: creating torrent: cryptomars
00:01:05.636: 19a191: starting torrent
00:01:05.636: 19a191: fastresume data accepted
00:01:05.636: 19a191: set_state() 3
00:01:05.636: 19a191: start_announcing(), paused

When I had such issues I think it was due to something blocked (from firewall)
e.g. I noticed then that when I ran twister over tor (1), the avatar was available.
(1) http://skilledtests.com/wiki/Twister_and_Tor

see also #154


Enable Proto Round Trips in the DirectRunner Tests

The default option remains false, but to gain coverage of proto
translations, the NeedsRunner tests can capture the success (or failure)
of proto round trips.

Follow this checklist to help us incorporate your contribution quickly and easily:

[ ] Make sure there is a JIRA issue filed for the change (usually before you start working on it).  Trivial changes like typos do not require a JIRA issue.  Your pull request should address just this issue, without pulling in other changes.
[ ] Format the pull request title like [BEAM-XXX] Fixes bug in ApproximateQuantiles, where you replace BEAM-XXX with the appropriate JIRA issue.
[ ] Write a pull request description that is detailed enough to understand:

[ ] What the pull request does
[ ] Why it does it
[ ] How it does it
[ ] Why this approach

[ ] Each commit in the pull request should have a meaningful subject line and body.
[ ] Run mvn clean verify to make sure basic checks pass. A more thorough check will be performed on your pull request automatically.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

I'm not hugely convinced it'll be useful long-term; but for the intermediate time, I don't think it'll harm us.

retest this please


SCAD Regression Estimator

Implemented the SCAD regression class within estimators.py. This was inspired by the MCPRegression class in the skglm/estimators.py, and I wanted to create an analogous regression for the SCAD Penalty function.

Hello Mathurin,
Yes, I do, I just started the semester of my MS program and have been a bit
busy. If this is a problem let me know, and I can maybe reach back out when
I have more time. Sorry for the late response.
Viren
On Fri, Oct 6, 2023 at 9:30 AM mathurinm @.***> wrote:

Hi @v4gadkari https://github.com/v4gadkari , do you still plan on
working on this ?
—
Reply to this email directly, view it on GitHub
https://github.com/scikit-learn-contrib/skglm/pull/185#issuecomment-1750686657,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ANU45ITPSHMBZCVW6TIGU5TX6ABYFAVCNFSM6AAAAAA2UAUYJSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTONJQGY4DMNRVG4
.
You are receiving this because you were mentioned.Message ID:
@.***>

Hi @v4gadkari, this has been inactive for a while so I'll close. Feel free to reopen if you want to continue working on this.

Hi mathurin,
Apologies for not responding. Feel free to close it. I will reopen if I get
time again. Was very busy in my first year of school and so never got the
chance. My apologies.
Viren
On Mon, Jul 15, 2024 at 2:14 AM mathurinm @.***> wrote:

Hi @v4gadkari https://github.com/v4gadkari, this has been inactive for
a while so I'll close. Feel free to reopen if you want to continue working
on this.
—
Reply to this email directly, view it on GitHub
https://github.com/scikit-learn-contrib/skglm/pull/185#issuecomment-2227837021,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ANU45ITZ3SBNV2ZHHTNKPKLZMNZFBAVCNFSM6AAAAABK36TZU6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEMRXHAZTOMBSGE
.
You are receiving this because you were mentioned.Message ID:
@.***>

Hi Viren,
No need to apologize. If you find time at some point we'll be happy to work with you.


⚡ Excludes outdated candidates

Is this still needed? Does it result in the same atomicals blockhash from a fresh sync?

Is this still needed? Does it result in the same atomicals blockhash from a fresh sync?

It does. Working on a resync to check if any diffs.

Closing as it changes indexed assets.