[BUG] Floating point linear scale for text values

Current Behavior
Y scales show floating point linear scale from -1.0 to 1.0 and does not plot anything
Expected Behavior
When values are of type string, scales should be of type category and use values as ticks
Possible Solution
For values of type string change scales type to category and use distinct values as ticks
Steps to Reproduce (for bugs)
http://codepen.io/anon/pen/GNeZaJ
Environment

Chart.js version: 2.4.0

I can see how this is an issue, but I'm not sure it's right to automatically switch the axis type. cc @chartjs/maintainers thoughts?

If nothing ploted with 'good' data then it should be considered a bug.
For numbers it's safe to asume that scale would be linear with min/max from values.
But for strings this should be 'category', and use values as ticks. This is expected behaviour.

This problem is a direct consequence of chartjs not having notion of data types.
Beyond Numbers there is partial support for Category and Time but I can't see any overall picture on how this all fits together.
Should I add this as a feature request? Because i think this is a key to resolve this and other issues( #3725, #3193, #3305)

This is definitely a feature request. I was thinking about this a bit more and realized that there are also a lot of other things that need to be worked out at the same time. For instance, it's pretty common (judging by the number of times people have asked questions about it or opened issues) to pass in data that looks like
['10', '20', '30'] and expect it to be treated as numbers even though there are actually string values there.
Lets use this issue to brainstorm a proposal and then we can figure out what features need to get done to get there.

I should add that some of these changes might require a major version bump if we can't maintain backwards compatibility

Creating an ordinal scale shouldn't be too difficult. I think it could derive from the category scale and simply override getLabels https://github.com/chartjs/Chart.js/blob/master/src/scales/scale.category.js#L17

There is three steps in the process of visualizing chars:

preparation (parsing, type conversion, etc)
visualization (ploting charts)
formating (date, currency, percent, etc)

Apart from visualization chartjs absolutely ignores preparation leaving this task for developers and has limited support for formating...
I think everyone should share their vision on how this parts should fit together.
Preparation and formating are related:

parsing date from the string and formating that date to string again (Moment.js)
parsing integer value from '100%' without percent sign and presenting it as '100%' back at scales and tooltips

Most of the time preparation is done on the server side thats why it actualy looks OK to ignore this step on client side, but there are cases where you don't have access to server-side and forced to do preparation on client side. Or because of known problems with dates in javascript, you want to prepare date as string and parse it using Moment.js on client-side.
Thats why i think preparation should be part of the BUNDLE but not necesarily be part of chartjs library.
I mean it would be cool to find good library for parsing/converting different types and integrate it with chartjs library seamlesly. This will allow lazy developers not to look for it and just use 10MB bundle :).
I think providing a standart set of formating options for tooltips and scales is a MUST and should be in the core (number formating, date formating). All custom formating should be done through common interface, not only user-defined function but some kind of pluggable 'formatter' classes/functions.

@etimberg changing getLabels will work for now... but there is much more bigger picture for this issue.

I like the Google Charts approach where preparation and formating is done before visualization and stored as pair of raw value and formated value. This has a cost of additional memory for storing formated value but allows to show this value efficiently in multiple places(tooltip, scale). Also this simplifies the processing, because you can make both preparation and formating in one path...

http://numeraljs.com/ is the library we looking for!?

NumeralJS looks interesting and could solve a lot of the parsing and formatting problems.
In terms of storing both the raw and formatted values, are you thinking something like:
datasets: [{
  data: [10, 20, 30, 40],
  formatted: ['$10', '$20', '$30', '$40']
}]

I'm guessing the user would supply the data and we would build the formatted property. Would formatting be tied to the axis the dataset is displayed on? or would it be customizable per dataset?
One thing to think about with that example is that the formatting needs to also apply to the tick marks. Presumably if the axis is using '$' we want the tooltip to show the same thing.
In terms of implementing this, I'm wondering if we can ship it as a plugin. As you noted, not everyone wants to download a huge library and we've already got complaints about the current size being too large.
What I was envisioning the plugin would do would be

Format the data for each dataset and attach appropriate format functions to each axis
Ensure the tooltip correctly finds the formatted data

Storing formatted values is not a panacea, but looks good and easy to implement. One of the issues you mentioned is that it will only work for 'category' scales...
This technique is just a complement to pluggable parsers/formatters, most used (Number, Date) should be in core.
What is interesting in NumeralJS is that they have this idea of format/unformat, so you can transform in each way... If you think about it, all this 'number as string' issues happening because data come preformated and you want it to be 'unformated' to raw values wich can be used by chartjs library and then you want it to be formated again. So format/unformat feature is interesting. Also it's already have alot of formats and allow easy integration of custom formatters.
I'm not pushing it, i'm googled this library just today...
As you can see Date/Time are different story...

Interesting question about formating in a situation where same dataset having multiple scales. Is it possible? Any usecases?
I think, currently, this is not possible and the only usecase for this is to look at the same data with different ticks. Let's say from the left would be linear scale and from the right would be 'category' with custom ticks that should match linear ticks. Too complex scenario...

Would formatting be tied to the axis the dataset is displayed on? or would it be customizable per dataset?

For tooltip, formatting will be something like this:

Use suplied formatting function if exist
Use formatter class if defined
Use formatted value if exist
Use raw value

For scale use array of user-defined ticks or autogenerated ticks and follow the same steps to get formatted value.
It's expected behaviour to use same formatting for scale and tooltip, but it shouldn't be a hard restiction... So if scale does not have any formatting it can use formatting from dataset... Looks ok to me...

same dataset having multiple scales

The case of the same dataset having multiple scales shouldn't happen and isn't supported.

If you think about it, all this 'number as string' issues happening because data come preformated and you want it to be 'unformated' to raw values wich can be used by chartjs library and then you want it to be formated again.

That's a very good way to think about it. Something like numeral (doesn't have to be this) will definitely solve problems.

For tooltip, formatting will be something like this:

That sounds like a good idea to me. It would maintain backwards compatibility for anyone using custom functions already.

❤


RGBW Fixture control interface issue

Hello and thanks for the awesome code, i started playing with HASS.io recently and learning python.
ive been finally able to replace the stage lighting software ive been using for automation (what a nightmware) with HASS.io using this plugin to send data to networked artnet lights.
ive configured my fixtures/channels inside the configuration.yaml  and i have set 2 fixtures as RGBW (12v rgbw "dumb" strip)
they are discovered as entities automatically upon restart and respond accurately.
my issue is with the control interface given for these fixtures.
when the dialog open, i can choose RGB value with the color picker (manages RGB values only) and the white channel separately.
for some reason, i am not able to set RGB to off (0,0,0) and only use the white channel (0,0,0,255) like other light fixtures outside this plugin(example : wled device).
the color brightness fader control does not work.
if i set value to 0, nothing happens  (other non dmx light fixtures will set rgb to 0 normally)
if i drag value along fader, wierd fader jumps happen on the interface but no changes on the light.
Would this be user setup error or an issue with the library? How to resolve?
Thanks for your dedicated time.
configuration.yaml snippet

light:

platform: dmx
host: <IP_ADDRESS>
port: 6454
dmx_channels: 512
default_level: 255
universe: 0
devices:

channel: 4
name: Tv RGBW
type: rgbw
channel: 8
name: Kitchen RGBW
type: rgbw

I see the same behavior with my RGBW light strip controller.  Actually, I see the issue in the hass-dmx code is conversion from HS color to RGB, without any available brightness information in the color channel itself:
https://github.com/jnimmo/hass-dmx/blob/ebbb6930b75774ba3a381f5274d10f1b1f2b6064/custom_components/dmx/light.py#L414-L417
https://github.com/jnimmo/hass-dmx/blob/ebbb6930b75774ba3a381f5274d10f1b1f2b6064/custom_components/dmx/light.py#L518-L519
From reading the Light Entity docs, it looks like the problem could be resolved by adding explicit support for color_mode and supported_color_modes.  The Feature Map entries for "SUPPORT_COLOR" and "SUPPORT_WHITE_VALUE" will be removed in the next month or two so this is a required update.
If the dmx integration properly reports that an entity supports only COLOR_MODE_RGBW, then HA will send the rgbw_color attribute that includes correctly scaled R,G,B values, which encode the "color brightness" value we need.


Retain cycle in EasyTipView extension

Noticed this when investigating #617. Reproduction steps on master (53c29feb96f1dbb52c94112d0a9be9aebf33bc92):

Fresh install the app
Click through the onboarding
Perform two navigations, e.g. open stackoverflow.com, then twitter.com (by now 3 tips should have shown)
Fire up the memory graph debugger and notice that 3 instances of TouchView are stuck in memory

One of them showed a NotificationCenter-related cycle for me.

The code in question is this
func handleGlobalTouch(completion: @escaping () -> Void) {

    let view = TouchView()
    UIApplication.shared.keyWindow?.addSubview(view)

    var token: NSObjectProtocol?
    token = NotificationCenter.default.addObserver(forName: TouchView.touchNotification, object: nil, queue: nil) { _ in
        view.removeFromSuperview()
        self.dismiss()
        completion()
        NotificationCenter.default.removeObserver(token!)
    }
}

I am not entirely sure how this creates a strong reference cycle. My suspicion is that NotificationCenter creates a strong reference between the poster (view) and the block. With the block strongly capturing the view, that would then create the cycle back to itself. Using  [unowned view] inside the block seems to break the cycle.
I think this issue should be low impact because you only seem to show a limited number of tips during the first few actions inside the app so the amount of leaked memory is constant.

Hello, @Johennes
Thanks for bringing tis up! This is pretty interesting problem.
In theory 😄, this should not create strong reference cycle: both self and view are held strongly by the block, but the block is outside of the view hierarchy and seem to be only referenced by NotificationCenter.
But as you described, we still get a leak. Moreover, when I tested adding capture list [weak view, weak self] it didn't solve the problem completely (some things were still leaking).
But.. there is one additional thing that is captured: token. Token is described as:
(lldb) po token
▿ Optional<NSObject>
  - some : <__NSObserver: 0x600002c449c0>

and when we dig deeper it turns out this can hold reference to the block. So, here is our cycle.
Now, we cannot really make token weak, as it is not held by anything outside of that block and deallocates instantly, but we can do little wrapper-trick to check if removing token breaks the cycle:
        let tokenWrapper = NSMutableArray()
        let token = NotificationCenter.default.addObserver(forName: TouchView.touchNotification, object: nil, queue: nil) { _ in
            view.removeFromSuperview()
            self.dismiss()
            completion()
            NotificationCenter.default.removeObserver(tokenWrapper[0])
            tokenWrapper.removeAllObjects()
        }
        tokenWrapper.add(token)

With this code, everything works for me as expected.
Once again, thanks for bringing this interesting problem up. :)

Holy cow! This is mind-boggling. I missed that even with view being weakified, there were other things leaking that related to this. Never would have thought the token to be the culprit given that Apple uses the exact same code in the docs. 🤦♂


depth_to_pointcloud.py focal length and principal point in pixels or something else?

I have used the dense_to_pointcloud.py script in order to generate the point clouds of images, but they are highly distorted.

Do I have to convert my camera intrinsics, that is focal length and principal point to other measurement units or is it something else?
The code is provided by @1ssb:
# infer.py
# Code by @1ssb
import argparse
import os
import glob
import torch
import numpy as np
from PIL import Image
import torchvision.transforms as transforms
import open3d as o3d
from tqdm import tqdm
from zoedepth.models.builder import build_model
from zoedepth.utils.config import get_config

# Global settings
FL = 715.0873
FY = 23691.920027359894
FX = 23705.79001167295
NYU_DATA = False
FINAL_HEIGHT = 6336
FINAL_WIDTH = 9504
P_x, P_y = 4820.05051308297, 3127.5650602109763
INPUT_DIR = '~/pictures_2023_09_21-15_51_24_1'
OUTPUT_DIR = '~/Depth-Anything/my_test/output'
DATASET = 'nyu' # Lets not pick a fight with the model's dataloader

def process_images(model):
    if not os.path.exists(OUTPUT_DIR):
        os.makedirs(OUTPUT_DIR)

    image_paths = glob.glob(os.path.join(INPUT_DIR, '*.png')) + glob.glob(os.path.join(INPUT_DIR, '*.JPG'))
    for image_path in tqdm(image_paths, desc="Processing Images"):
        try:
            color_image = Image.open(image_path).convert('RGB')
            original_width, original_height = color_image.size
            image_tensor = transforms.ToTensor()(color_image).unsqueeze(0).to('cuda' if torch.cuda.is_available() else 'cpu')

            pred = model(image_tensor, dataset=DATASET)
            if isinstance(pred, dict):
                pred = pred.get('metric_depth', pred.get('out'))
            elif isinstance(pred, (list, tuple)):
                pred = pred[-1]
            pred = pred.squeeze().detach().cpu().numpy()

            # Resize color image and depth to final size
            resized_color_image = color_image.resize((FINAL_WIDTH, FINAL_HEIGHT), Image.LANCZOS)
            resized_pred = Image.fromarray(pred).resize((FINAL_WIDTH, FINAL_HEIGHT), Image.NEAREST)

            focal_length_x, focal_length_y = (FX, FY) if not NYU_DATA else (FL, FL)
            x, y = np.meshgrid(np.arange(FINAL_WIDTH), np.arange(FINAL_HEIGHT))
            x = (x - P_x) / focal_length_x
            y = (y - P_y) / focal_length_y
            z = np.array(resized_pred)
            points = np.stack((np.multiply(x, z), np.multiply(y, z), z), axis=-1).reshape(-1, 3)
            colors = np.array(resized_color_image).reshape(-1, 3) / 255.0

            pcd = o3d.geometry.PointCloud()
            pcd.points = o3d.utility.Vector3dVector(points)
            pcd.colors = o3d.utility.Vector3dVector(colors)
            o3d.io.write_point_cloud(os.path.join(OUTPUT_DIR, os.path.splitext(os.path.basename(image_path))[0] + ".pcd"), pcd)
        except Exception as e:
            print(f"Error processing {image_path}: {e}")

def main(model_name, pretrained_resource):
    config = get_config(model_name, "eval", DATASET)
    config.pretrained_resource = pretrained_resource
    model = build_model(config).to('cuda' if torch.cuda.is_available() else 'cpu')
    model.eval()
    process_images(model)

if __name__ == '__main__':
    parser = argparse.ArgumentParser()
    parser.add_argument("-m", "--model", type=str, default='zoedepth', help="Name of the model to test")
    parser.add_argument("-p", "--pretrained_resource", type=str, default='local::./checkpoints/depth_anything_metric_depth_indoor.pt', help="Pretrained resource to use for fetching weights.")

    args = parser.parse_args()
    main(args.model, args.pretrained_resource)

YES, oh my god how is your focal length that large?

What do you mean by yes? Now they are in pixels units!

I am not sure, I have never seen such large focal lengths. Try denominations of 10 to figure out what is meaningful to you. If your photo is indeed idk 12000 odd units long, I do not know what to advise you. I have no experience with such images.

Thank you for your advise.
But in general, using you your code, the measurement units should be in pixels or something else? And the results of the point cloud will be in the corresponding measurement units?

The focal lengths are all metric, i do not know how else to answer your question.

Thank you very much

I convert all the pixel units to mm based on the the pixel size of my sensor, and also I used both outdoor and indoor models to check the results. Also, I converted the output the of the model (z) to 1/z and now the results even though they are wrong make more sense, as expected. Also, my focal length is 85 mm.
Yet, in the point cloud below the only thing that make sense are the pipes on the left of the point cloud. Is there any explanation for the distorted point cloud? Maybe the model is not trained for the specific rgb images that I use?

The model outputs depth not disparity. I suggest going through the model code once again and understanding the focal lengths and the image size representations.

My results were correct from the beginning, but my viewpoint was wrong. I believe that the only way to correctly visualize the point cloud is to view it from the camera perspective, that is the viewpoint of the camera when it captured the scene, as shown below.
In order to transform the point cloud generated by a single image to global coordinates, one should apply shifts (Xo, Yo, Zo) and rotations regarding the start of the global coordinate system, right? And then the point cloud will be 'global', that is it will be viewed as if it was captured by a lidar?

Were you not using a 3D application?
On Wed, 27 Mar, 2024, 10:08 pm karantai, @.***> wrote:

My results were correct from the beginning, but my viewpoint was wrong. I
believe that the only way to correctly visualize the point cloud is to view
it from the camera perspective, that is the viewpoint of the camera when it
captured the scene, as shown below.
In order to transform the point cloud generated by a single image to
global coordinates, one should apply shifts (Xo, Yo, Zo) and rotations
regarding the start of the global coordinate system, right? And then the
point cloud will be 'global', that is it will be viewed as if it was
captured by a lidar?
Screenshot.from.2024-03-27.13-04-13.png (view on web)
https://github.com/LiheYoung/Depth-Anything/assets/82314287/ef9405fd-373c-427c-bd49-417b3721a26c
—
Reply to this email directly, view it on GitHub
https://github.com/LiheYoung/Depth-Anything/issues/127#issuecomment-2022500246,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AJWHFEDOIYTBZOSJTVZ6OV3Y2KLDHAVCNFSM6AAAAABEYLAX7GVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAMRSGUYDAMRUGY
.
You are receiving this because you were mentioned.Message ID:
@.***>

No I am not. I am using single RGB images, I use depth_to_pointcloud.py to derive the depth map and construct a point cloud, which is from my understanding is relative to the camera. Now I am trying to derive the global point cloud using the exterior orientation of the camera in that moment. Probably, I am missing something.
Thank you for your immediate responses

To visualize a point cloud it is imperative that you use a 3D application like Meshlab and correct scales. So no you are wrong, even though your visualization looks more correct to you now the fx an fy values along with your width and depth need to be divided by a denomination of 10.
The Meshlab allows you to manipulate the rotation and translation interactively. So no writing scripts for visualisation.


Cannot read properties of null (reading 'Temperature')

Describe The Bug:
[]
(typeerror: Cannot read properties of null (reading 'Temperature'))
To Reproduce:

premier lancement, crash homebridge.
Expected behavior:

Logs:
Show the Homebridge logs here, remove any sensitive information.

Plugin Config:
Show your Homebridge config.json here, remove any sensitive information.

Screenshots:

Environment:

Plugin Version:
Homebridge Version:
Node.js Version:
NPM Version:
Operating System:

sorry, the problem was bad identification !


Requests don't specify response format (alt=json)

Most Google APIs default to JSON as the response format. However, this is not universal, and the Admin SDK Groups Settings API defaults to XML. The library expects a JSON response but doesn't set the alt parameter, resulting in errors like this:
PHP Fatal error:  Uncaught exception 'Google_Service_Exception' with message
'Invalid json in service response: <?xml version="1.0" encoding="UTF-8"?>
...

The library should explicitly set the alt parameter to ensure it always gets a JSON response. As a workaround the alt parameter can be manually set by the caller:
$group = $service->groups->get($groupEmail, array('alt' => 'json'));

I think the place to fix this is in the generated code. The default is specified in the alt parameter description, so we could specify json if atom is the default. Probably a reasonable work around to alwasys specify json as a default in the request object though.

I would suggest the ladder. Regardless of what the API supports or defaults to, the library must have JSON returned in order to function correctly. Therefore I think it should explicitly request it for all requests.

Mostly - we can handle raw media download requests as well, so any patch needs to make sure it doesn't clobber the alt handling for that stuff. There is also a standing bug to handle CSV default format responses which would likely be fixed by respecting the default download type (there are some API calls which respond in CSV by default).

Fixed in https://github.com/googleapis/google-api-php-client-services/pull/132/commits/f59a178b5441dd170c943aed56afd8748b90734a


Chat command to set number of rounds per challenge in CUP mode

I'm missing a command to change number of rounds per challenge in CUP mode.
For example: //scrpc 4, which will do the same as: //call SetCupRoundsPerChallenge 4.

the command is //scrpm


useCookie often doesn't save cookie update which occurs right before navigation

Environment
❯ npx nuxi info
Nuxi 3.5.3 10:37:36 PM
10:37:36 PM
RootDir: /home/redacted/app 10:37:36 PM
Nuxt project info: 10:37:36 PM
Operating System: Linux
Node Version: v20.2.0
Nuxt Version: 3.5.3
Nitro Version: 2.4.1
Package Manager<EMAIL_ADDRESS>Builder: vite
User Config: -
Runtime Modules: -
Build Modules: -

Reproduction
https://stackblitz.com/edit/github-umjns4-lhs2ge?file=pages%2Fdashboard.vue
Once deployed, open the site in a new tab and add /sign-in to the end of the URL. Click back and forth between the dashboard and sign in page and you'll see that every few clicks, the authed/not-authed state is not in sync with the clicks you do. It occasionally becomes in sync again, if that happens, just refresh the page once or twice and it will be out of sync again.
In Firefox, I'm seeing this a lot more consistently, though in Chrome I see it at least every few clicks if I refresh the page enough times.
Describe the bug
I'm using pinia with pinia-plugin-persistentstate to keep track of being logged in, which uses useCookie under the hood.
I added an interceptor to $fetch to notice when API requests receive a 401 and to automatically clear the pinia auth store and to redirect to the login page. However, I noticed that the vast majority of the time, the auth store is actually not cleared before the login page is reached, and the login page tries to redirect back to the app because it thinks we're already signed in.
I've created a minimal repro above which doesn't use pinia, just regular useCookie in a minimal project. You'll see that at least every few clicks, the cookie state after navigation doesn't match the intended result.
In this slightly less minimal repro: https://stackblitz.com/edit/github-umjns4?file=pages%2Fdashboard.vue, if you go to /sign-in, you'll notice that it can take multiple clicks to "Sign in" (if it only takes one click, refresh the page a few times). This is because the /dashboard sends you back to /sign-in if it sees that the cookie is not authed, and rather frequently it does not have an authed state set.
Additional context
No response
Logs
No response

Feels like some sort of timing issue. Wrapping the navigateTo on both pages in the repro app in a setTimeout like this:
setTimeout(() => {
    return navigateTo('/dashboard');
  }, 200);

I can no longer get it to break after repeated attempts. A setTimeout of 50ms still sometimes breaks though. So it looks like navigating quickly after the cookie update breaks for some reason.

No bug in nuxt here - the repro case was a false negative due to StackBlitz's cookie handling oddities, and the issues in my code were due to a number of other causes that happened to combine in an unfortunate way.


TEMP - fix release final script trigger test PR

This is a test PR for https://github.com/LedgerHQ/ledger-live/pull/8681
It modifies the call to release-desktop in ledger-live-build to use the branch at https://github.com/LedgerHQ/ledger-live-build/pull/118 . This branch removes all functionality from that workflow temporarily, so we can call it to make sure the call works, without there being any downstream effects.
To run this test:

manually trigger the release-final workflow in ledger-live from this branch
observe that that workflow calls release-desktop in ledger-live-build
ensure that it calls the branch at https://github.com/LedgerHQ/ledger-live-build/pull/118 , echoing a success message
ensure that the calling process has not created any errors in the workflow from step #1

The test was a pass ✅

Ledger Live release workflow ran without error
Ledger Live Build (dummy) release workflow was triggered correctly


feat(api-client): remove tabs on client.scalar.com

After chatting with @marclave we decided to remove the tabs on client.scalar.com and only have them in the electron app similar to what linear does.
It made the most sense to me to split these into two packages one for the app and one for the web version.
Web
https://github.com/user-attachments/assets/0d838c66-c5b1-4816-bf84-c7842537b7c2
Desktop
https://github.com/user-attachments/assets/218c2dec-4dae-4e55-815e-7ae9163f17df

Excellent idea! Will test more thoroughly later, code looks good though

I’m a bit hesitant with the new entry point. Isn’t it better to stick with the same entrypoint but just add a few conditions around the hotkeys and the components? Or do I underestimate the number of things we need to take into account?

Personally I always lean towards composition over configuration where possible, it is an extra thing to test but so would be a config setting and I feel like the config setting is easier to miss when testing (but yeah we should add some tests for the different entrypoints regardless)

Yeah, let’s just merge this one here. Probably better!


DA Api Metadata

Added Extension to DA Certificate.
In FullReplication DaProtocol this is used to store metadata containing app_id and index for the disseminated data.
The Nomos zone would need to track for which app_id the received attestation was for. It should also control the order the data using index. After receiving sufficient number of attestations from da nodes, Nomos Zone would add metadata as the Certificate extention field and send it to the mempool.
Block Producer would use Certificate and related extention data to form the CertificateID and put it into the block together with the related extension (in FullReplication case metadata).

I'm not sure the naming is the best. But overall looks ok for now.


FileStorage.Upload concurrency failures

I'm using the following code to upload a file using FileStorage.Upload to store a file within an ASP.NET request:
public string UploadFile(string mimeType, string origFileName, string userName, byte[] data)
    {
        string fileName = string.Format("{0}.{1}", Guid.NewGuid(), Path.GetExtension(origFileName).Replace(" ", "").Trim(' ', '.'));
        string filePath = string.Format("$/{0}/{1}", userName, fileName);

        using (var db = new LiteDatabase(BlobDBName))
        {
            LiteFileInfo finfo = new LiteFileInfo(filePath);
            finfo.MimeType = mimeType;
            finfo.Filename = origFileName;

            using (MemoryStream ms = new MemoryStream(data))
            {
                ms.Seek(0, SeekOrigin.Begin);
                db.FileStorage.Upload(finfo, ms);
            }

            return fileName;

        }

    }

The web page uses a control called "DropZone" to asynchronously upload multiple files at a time by calling into a web endpoint.  My endpoint uses the above code to store the file.  When I am uploading multiple files (and also retrieving them), I'm getting a number of strange errors.
The most common one is an access denied error against the journal file, but I also get "IOException: The Segment is already unlocked".  These are bothersome, but not fatal.  The bigger issue is that a number of files will be recorded in the _files collection with a zero length.  I've verified the associated chucks exist and are properly recorded, but the file length is never updated.  I am using the latest NuGet package (1.0).  Any idea on what may be causing this?
FYI: My retrieval code looks like this:
public FileInformation GetFile(string userName, string fileName)
    {
        using (var db = new LiteDatabase(BlobDBName))
        {
            string filePath = string.Format("$/{0}/{1}", userName, fileName);
            var liteFileInfo = db.FileStorage.FindById(filePath);

            if (liteFileInfo == null)
                return null;

            FileInformation ret = new FileInformation();
            ret.SizeInBytes = liteFileInfo.Length;
            ret.MimeType = liteFileInfo.MimeType;
            ret.Extension = Path.GetExtension(liteFileInfo.Filename).Trim('.');
            ret.OriginalFileName = liteFileInfo.Filename;
            ret.FileName = fileName;

            using (MemoryStream ms = new MemoryStream())
            {
                liteFileInfo.CopyTo(ms);
                ret.data = ms.ToArray();
            }
            return ret;
        }
    }

Hi @mykemaas, thanks for your contribuition. I will create a unit test to try to isolate this problem and fix.

Hi @mykemaas, I did some fixes on dev branch. Can you test? I tested in unit tests and with an dropzone example that I made. To me works now.

I just did a quick test in my application using the dev branch...  looks like it's working well!  I uploaded 20 5+ megabytes files simultaneously, and it handled it like a dream.  I'll be sure to do some more thorough testing this evening and report back.  Thank you!!!

There is a new version on Nuget/Github Release: 1.0.1 fixing this problem.


Can you provide me the pretrained of lrs. thanks in advance.

          Can you provide me the pretrained of lrs. thanks in advance.

Originally posted by @Thaonguyennnee in https://github.com/KAIST-AILab/SyncVSR/issues/6#issuecomment-2404110753

Uploaded! Please check the release section for the detail.


convos: 6.26 -> 6.42

Motivation for this change
Bugfixes and fixes for security issues
https://github.com/convos-chat/convos/blob/v6.42/Changes
dependencies:
perlPackages.TextMarkdownHoedown: init at 1.03
perlPackages.MojoliciousPluginSyslog: 0.04 -> 0.05
perlPackages.CryptPassphraseBcrypt: init at 0.001
perlPackages.CryptPassphraseArgon2: 0.002 -> 0.003
Things done

Built on platform(s)

[X] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[X] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[X] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[X] Tested basic functionality of all binary files (usually in ./result/bin/)
22.05 Release Notes (or backporting 21.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[ ] Fits CONTRIBUTING.md.

This is quite a big bump to backport to stable, and it also has the effect of bumping CryptPassphraseArgon2

https://github.com/convos-chat/convos/commit/a2d26518330a23a5a663116f3d5c9e1cc426492d appears to be the fix commit

Result of nixpkgs-review pr 150538 run on x86_64-linux 1

6 packages built:

convos
hydra-unstable
perl532Packages.CryptPassphraseArgon2
perl532Packages.CryptPassphraseBcrypt
perl534Packages.CryptPassphraseArgon2
perl534Packages.CryptPassphraseBcrypt

convos daemon - the web application seemed to work and also connected to some irc

This is quite a big bump to backport to stable

convos 6.26 -> 6.40 contains mostly bugfixes and shouldn't cause any regressions and should be within the criteria for backporting. Meanwhile, 6.42 is out with additional bugfixes so I'll update this PR to 6.42

and it also has the effect of bumping CryptPassphraseArgon2

Crypt::Passphrase::Argon2 0.002 -> 0.003 appears to contain only documentation changes.

@GrahamcOfBorg build perlPackages.TextMarkdownHoedown perlPackages.MojoliciousPluginSyslog perlPackages.CryptPassphraseBcrypt perlPackages.CryptPassphraseArgon2

@GrahamcOfBorg build perlPackages.TextMarkdownHoedown perlPackages.MojoliciousPluginSyslog perlPackages.CryptPassphraseBcrypt perlPackages.CryptPassphraseArgon

@GrahamcOfBorg build hydra-unstable


bat files that run the projects automatically

You can run the scripts by running the following commands in the command prompts:

bash run-backend.bat
bash run-frontend.bat

🕸


Update Python language classifier from 2 to 3 in setup

Huh, I just fixed that, I have not noticed that you made a pull request for this. Thanks anyway!


List monsters feature

Resolves #1

Do you think it'd be tidier todo something like:
/app/Models
  Characters/
    Character.php
    Player.php
    Monster.php

?

Yiss


Feat/wizard wrapper

Add wrapper prop to <Wizard />, it's an optional wrapper that is exclusively wrapped around the active step component. It is not wrapped around the header and footer
⚠ TODO: update documentation
Fixes #51

Solution works for me with framer-motion, need help with the docs?

PRs are always welcome, thanks in advance!

Hi @devrnt, are there any news on the release of this feature?
Thanks in advance

I was waiting for people to need this feature and apparently, this is clearly the case.
I'll try to ship this feature soon

Closes https://github.com/devrnt/react-use-wizard/issues/51 and https://github.com/devrnt/react-use-wizard/issues/118


get process args by bytes.Split

find the process args issue when try commits in https://github.com/opencontainers/ocitools/pull/97
Signed-off-by: liang chenye<EMAIL_ADDRESS>

da5ac4614 looks good to me.

LGTM


Adding PMS colors to Color Picker

I think this feature will help some people to pick a color using PMS colors.

Thanks for the suggestion, we'll log this in our suggested enhancements milestone and follow up after our general stability efforts.

Thank you, Hope to see this feature soon!


⚠ SceneTime has degraded performance

In fd685ac, SceneTime ($ST) experienced degraded performance:

HTTP code: 200
Response time: 1491 ms

Resolved: SceneTime performance has improved in 4316541 after 9 minutes.


⚠ ClamAV has degraded performance

In 2fab7c1, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 198 ms

Resolved: ClamAV performance has improved in 10f3bc8.


Add compiler check for 2020.2 AssetImporters package namespace change in 1.2

Please check if the pull request fulfills these requirements

[ ] Tests for the changes have been added (for bug fixes / features) -- No tests needed; namespace error
[ ] Docs have been added / updated (for bug fixes / features) -- No docs needed; namespace error
[x] CHANGELOG.md has been updated to describe this change

To update the documentation on yarnspinner.dev, please visit the documentation repository.

What kind of change does this pull request introduce?

[x] Bug Fix
[ ] Feature
[ ] Something else

What is the current behavior? (You can also link to an open issue here)

#117. AssetImporter was promoted out of Experimental in Unity 2020.2, but 1.2 did not check for this. However, the 2.x branch already has this accounted for. This PR will backport this change to the 1.2 branch.

What is the new behavior (if this is a feature change)?

N/A (compiler error)

Does this pull request introduce a breaking change? (What changes might users need to make in their application due to this PR?)

Experimental namespace promotion -- equivalent behavior

Other information:

Unity automatically offers to upgrade namespaces for you, so this is not a critical bug.

Perfect! Thank you!


Binary PCK generation tutorial

As suggested by the Spice NAIF team I reported here an issue I encountered and its solution could be useful for others.
For work reasons, I have no access to the internet but I have to use the latest EOP data from IERS Bulletin and automatically and internally update the earth_latest_high_prec.bpc when the bulletin is provided.
Reading the SPICE guide (here) I tried to generate my bpc file but with no useful results.
BPC generation
I attached in the zip file the testgenerationpck.py file where I am trying to build my bpc file starting from the earth_latest_high_prec.bpc used to generate a rotation matrix for each specific time necessary for the Chebyshev polynomials generation.
This script has the only purpose to search the correct way to build a binary PCK file.
I supposed the problem was on the rotation angles order then I tried several combinations with no success.
Precession Nutation Model Adopted
Searching what is wrong I identified something that I am not completely sure about the earth_latest_high_prec.bpc comment. In the Particurals section is explained that the model adopted for precession and nutation are the 1976 IAU model and the 1980 IAU model, respectively. Using the following code I made a comparison between the SPICE EOP data and the IERS IAU SOFA data ( provided by this website https://hpiers.obspm.fr/eop-pc/index.php?index=rotation&lang=en). On the website, it is defined the model used for the computation of the matrix orientation:

Transformation from the international terrestrial reference system (ITRF) to the international celestial reference frame (ICRF): transformation coordinate and associated quaternion. Computation of Celestial Pole coordinates (X, Y), Earth rotation angle, Celestial Intermediate Origin locator, Terrestrial Intermediate Origin locator are performed by FORTRAN programs of the SOFA IAU library, consistent with the IAU 2000/2006 resolutions.

Using another python script (issuePCK_JPL.py) I tested the results between the Sofa website and the spice kernel for three dates:
  Date 2021/11/18
  SPICE - SOFAWEB:
  [[-8.36408121e-09 -5.26288901e-09 -2.85880329e-08]
   [ 5.30570088e-09 -8.31998515e-09 -6.56178744e-09]
   [-2.08866204e-08  2.05868687e-08  5.99987837e-11]]

  Date 2021/11/19
  SPICE - SOFAWEB:
  [[-7.35634476e-09 -4.44592985e-09 -2.81641371e-08]
   [ 4.48837256e-09 -7.31285243e-09 -6.90231290e-09]
   [-2.06001698e-08  2.04022694e-08  5.91263705e-11]]

  Date 2021/11/20
  SPICE - SOFAWEB:
  [[-8.56023530e-09 -4.98599650e-09 -2.77258759e-08]
   [ 5.02802544e-09 -8.51731463e-09 -7.25655761e-09]
   [-2.03260714e-08  2.01975239e-08  5.82177639e-11]]

The relative difference is so low that I suppose that the model adopted is the same.
The questions are:

The comment is correct? The models for precession and nutation adopted are Precession (1976 IAU model) and Nutation (1980 IAU model)?

The ITRF definition adopted is the latest and the name is maintained only for retro compatibility purposes?

Thanks in advance for the consideration and the help trying to answer all these questions.
BinaryPCKgenerationTutorial.zip

@TommasoPino
At the top, you suggest that the problem is solved, but at the bottom you ask two questions that are out of scope for spiceypy entirely, so it is a little unclear why the issue was posted here, if there actually is an issue at all, or why the naif suggested that you should post it here since it doesn't seem to be specific to SpiceyPy.
If I interpret you correctly, another project independently implemented from SPICE returns slightly different numbers for some state.
SpiceyPy wraps SPICE and cannot return different results than SPICE. Therefore, if there is a numerical issue with the result you are getting, and you know the SPICE results are wrong, not just different, then you need to talk to the NAIF. If you don't know which value is actually correct then you will need to speak to both the NAIF and IERS.
Both the NAIF and the IERS is far better equipped to answer this question, without looking at your attachment it depends on the initial state, what actual computations  are performed, and all the various issues involving floating point math.
I will close this issue after a day or two. Issues posted on this website must be specific to SpiceyPy. If you can demonstrate that SpiceyPy returns different results than say CSPICE, SPICE, MICE, or ICY then I would consider it in scope.

@AndrewAnnex thanks for your reply to this issue. I agree to close the issue as it is. NAIF will continue discussing the issue with @TommasoPino via email.

Sorry to everyone, I have misunderstood the meaning of a previous email.
To ensure a clean spiceypy repository we could directly delete this issue.

Il giorno 3 gen 2022, alle ore 22:06, Marc Costa Sitja @.***> ha scritto:

@AndrewAnnex thanks for your reply to this issue. I agree to close the issue as it is. NAIF will continue discussing the issue with @TommasoPino via email.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications on the go with GitHub Mobile for iOS or Android.
You are receiving this because you were mentioned.


Abiliity to calculate serialized size when writing - Feature request

Hi, firstly thanks for the crate, it is the most ergonomic solution I have found to read and write binary data.
In my use case I need to write data in variable size structures and also later in the file format have other structures with pointers/offsets to the first data.
One option at least for streams that implement Seek is to query the stream for the current offset using stream_position(), however, that seems like it might not be too efficient, and also it has to be stored.
Currently I have solved calculating the positions of the data by manually implementing the following trait and keeping a running total of bytes written (or that will be written).
pub trait SerializedSize {
    fn serialized_size(&self) -> usize;
}

However, it is error prone as one has to manually sum up the sizes of the data structures, taking into account optional fields, variable length data structures ie vec and magic number sizes.
It would be really useful if the macros could implement such functionality automatically.
If this is already possible and I missed it in the documentation, maybe it could be put in a more prominent place.
I realize it may be complicated to calculate the size with nested structures and enums, so possibly one could use a marker attribute to indicate when this functionality is required and if the data structure is too complex error out at compile time.
Thanks in advance

Hi, thanks for your report!
The longstanding general issue for handling offset writing is at #4 and then also a request for easier macro positioning at #161. This is also a question that has come up before in e.g. #264. I have updated that first ticket title to hopefully be clearer since I see a lot of reports this week about it :-)
All streams used with binrw have to implement Seek anyway, and stream position is already queried frequently for error handling, so I wouldn’t worry about efficiency asking for size from the stream unless you are measuring it and it is a problem. I am not sure that would ever actually be faster to calculate sizes separately than to use a stream wrapper that updates a single u64, since such a wrapper is doing almost no work (but I have not measured anything and have been wrong before).
The best case I can argue for such a feature would be that it could enable single-pass writes in some cases where it would otherwise be necessary to emit placeholder values and then seek back to fill them in later, but even then there are additional considerations. To avoid bloating codegen times this should probably be an opt-in feature, and even then I am unsure the benefits outweigh the limitations. As you note, anything that does something non-trivial (e.g. write_with) would not be able to calculate the size in advance, and then you are back to having to query the stream again anyway. I’m a big fan of generalisable solutions to problems until specialisation is needed and it is not 100% clear to me right now that doing more work in binrw in order to avoid performance issues with stream position tracking is warranted. Let me know if you have some data on this, though! Otherwise, certainly the issue of needing to write offsets is known and tracked in #4.
Thanks,

I understand your reasoning, and Im not sure how I missed the other issues.
Just to clarify my intended use case, I wanted to decouple the generating of the structs from the writing of them, however, there are offsets in some structs that reference other structs, and they get written to different parts of the file. ie its not a case of sequential writes.
One of the workarounds I considered was to append to vectors in memory and then write them in the correct places in the output file, however this means I have the data structures in memory and also the serialized output. The second one which is what I opted to implement is to write a separate file for each stream, and then concatenate the files. At least then I only have the data structures in memory. However, I dont consider the solution to be elegant, as I write to disk and then read from disk.
The solution I wanted to implement was to create an iterator of data struct A use scan to build up the offsets, and then zip those with another iterator of struct B (which has the offsets to struct A) and then chain them together to write the final file.
Feel free to close this issue and track it in one of the others you referenced.
Thanks once again for the excellent crate.


Add ios tracker to TV category in readme

Added iOS tracker to 'TV' category of readme as well as mobile, since I believe it's tested for appleTV. @AlexBenny is that correct? Any other trackers fit in any other categories?

Thanks for your pull request. Is this your first contribution to a Snowplow open source project? Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).
:memo: Please visit https://docs.snowplowanalytics.com/docs/contributing/contributor-license-agreement/ to learn more and sign.
Once you've signed, please reply here (e.g. I signed it!) and we'll verify. Thanks.

Good point! Actually we could add iOS, Android and recently React Native tracker.

Oh cool we added to RN! Super I'll add all 3 so!

Spoke to Paul, just the one approval will do for this one. Merging.


o	A total shift to web monetization may cause online advertising to go extinct which creates problems for companies that base their business models on online advertising.
o	It may take some time for this technology to be implemented all over the web as it is relatively new. It would require measures such as awareness campaigns. This may cause some trouble for websites already implementing this technology as sufficient revenue generation may take time.

Outreachy's Project Contribution
Web Monetization
The process of converting existing traffic being sent to a particular website is named as Wb Monetization. Different providers act as a webmaster in placing advertisements or an extension on website to benefit from the traffic the site gets. In real time it pays the creators through an API in which Interledger protocol micropayments to monetize a website
Some of the popular ways of Monetizing are
*Pay per click (PPC)
*Cost per impression (CPI/CPM)
*advertising
*Affiliate programs
*Paid Subscriptions
*Data Monetization
And the two most important metrics that counts to a web publisher to monetize their website are

Fill Rate or the percentage of inventory
eCPM (cost per thousand impression)
Why use Web Monetization?
•	Easy to use- all you need is a tag
•	Simple to use
•	Secure
•	No action required from users
•	Traffic equals payment so quality content is rewarded.
How Web Monetization can improve user’s satisfaction
•	Web Monetization can improve the user overall satisfaction with your web content because he won’t be persecuted by your ads, and you still will make money from him.
•	In fact, Web Monetization offers the user to choose where its web monetization funds should go when navigating the web.

Web Monetization wallets
Web Monetization wallets that accepts ILP payments are
XRP Tipbot
Gatehub
StrongHold
Web Monetization Provider
Coil is the only known web monetization provider which acts like a medium where we can share articles and offers a monthly fee for viewing article.
How do I web monetize my own content? 💰
Implementing Web Monetization is quite easy, in fact, this consists in adding only a line to your html files. This new line is called Web Monetization Meta Tag.
Setup a Web Monetization Wallet
In order to receive payments you need to set up a Web Monetization Wallet, you can use one of the above.
Get your payment pointer
When you finish to set up your new account you’ll receive a Payment Pointer. A Payment Pointer looks like this:
$coil.xrptipbot.com/C3adA1B9Q5qMu4Z3i4Bfhw
Generate your Meta Tag
The Meta tag is the tag we’re going to add to our web monetized web pages. This looks like this:

The tag’s name have to be monetization
Add your new Meta Tag to your pages
Copy your Meta Tag and add it to your websites’  section. It should look like the example below:
<!doctype html>

Web Monetized Site

@annatuma Greetings, everyone and my name is Ruth and I am Creole form Hamburg, North Germany. I am an Outreachy applicant and the last 4 weeks have been a living hell here in Germany. I sincerely hope for everyone that their family and relatives are safe and wish you all the best. Unfortunately, I was not as lucky, my entire community broke down to say the least. Below, I have my application proposal and I would appreciate if Corona pandemic can be taken into account as to why my proposal is so late. There were many days where my city was in a state of emergency including those I love dearly. Kind Regards Ruth
Web monetization
07.04.2020
By Ruth Stern
Outreachy Applicant 2020
Content

Definition: What is Web monetization
20 web monetization opportunities
Challenges
The future of web monetization post CORONA
Resources
Overview
The Web has revolutionized our modern day lives beyond imagination. While it
has enabled us to connect with like minded individuals from across the globe, it
has created endless new opportunities to generate an income. For instance
creatives of any kind can now showcase their work to a wider audience, charities
can make their cause be heard by many and service providers can offer their
services internationally. But when it comes to web monetization, it is not only
creating products that can be purchased online, web monetization itself
describes the ART of creating revenue through the traffic to one's website. It is
an umbrella term that describes implementing techniques from online
marketing to generate an automated revenue system that suits the needs of the
company or individual.

While people may believe in get rich quick schemes, this is not the case when it
comes to web monetization.
On the contrary, successful web monetization is the result of a good strategy
implemented, creativity to engage the audience and thus, web monetization
is hard work. Furthermore, the techniques are being increasingly critisized for not being ethical.
In this short proposal, it is the intention to create an overview of the most
commonly used techniques and how they can be implemented on the Creative
common Website. Finally concluding with theoveral cahllenges and some ideas of how it could be reshaped in the future.
Web monetization techniques
Affiliate Marketing (.. and affiliate links)
Affiliate marketing describes promoting products of third party companies on
the website via an affiliate link. This link can be either used in an email list or on
the website itself. The idea behind it is that once the visitors use the link to
purchase the product, the promoter, in this case, the website, will receive a
commission.
It is proven to work and one of the most sought after web monetization
techniques.The commission percentage may be very small and thus the website
will have to have a lot of traffic in order to generate a substantial profit from this
particular technique.
Google Adsese also known as Pay“Pay Per Click” advertising
AdWords and Adsense are part of google advertising systems that allow
companies to run ads on your website. This is super simple to set up. Google
uses their algorithm to determine the context of the website, so that only
relevant ads will be run. Simply create an account and apply to be accepted for
Adsense to gain the automated pop up ads on your website and once a visitor
clicks the link, the company receives a commission.
Selling ad space
There are always companies that want to sponsor a blog and these companies
might just need a persistent banner on your website. It could be for a fixed price
and generate income. Depending on the traffic generated on the sire, one could
increase the ad spacing price to reflect the traffic the ad is exposed to.
There is no third party involved and thus more control of what kind of company
advertises as one chooses the margins and the ad spot oneself.
Creating an email list
This could be done with a simple email list button in which a visitor can
subscribe to the site and be updated with the most recent developments within
creative common. These individuals can then be targeted with blog posts which
may or may not include affiliate links or banners from companies, thus using a
combination of techniques.Again this is very simple. Adding a subscribe button
and storing the email data is not a lot of work for a developer. This is a long term
strategy and will require time and effort. Continuously engaging with the email
list, not overwhelming, or rather spamming them and thus finding the right
balance is the key.
The main idea is to create a long term relationship with website visitors, creating
a valuable base of followers who can then be targeted with high quality content,
ideas, product etc.
Use monetization widgets
Using widgets on a wordpress powered website. These are also very similar to
Google Adsense, so they’re worth trying out as an alternative.
Using an RSS feed for the ads.
This is another way of using ads in line with RSS feed content.
Creating a job board on the website for creatives of all kinds.
This is also a very nice way to reach out to the community and change only
companies to advertise their vacancies.
Content Lockers
Example www.medium.com
The website medium is a great example of this technique. Once a visitor reads a
previously specified amount of content, the website blogs additional content
until a previously specified action is taken. This could be signing up for the
newsletter, or paying a subscription fee.
6
Using audio ads
Instead of using banners or adSense, one could also use audio that plays once
someone clicks over the ad.
Selling e books
This is another great strategy used by many which involves creating digital
products that people can download from the website for a fee. The money can
directly be reinvested and the payment can be securely done using paypal.
Create a conference for Creative Common visitors.
In the time of the Coronavirus, this sounds like a super bad idea. But generally
speaking, this hard work of organizing an event and advertising this on one's
one website, selling tickets can pay off and be a very positive encounter for all
like minded individuals.
Challenges of the broader adaptation.
“The web’s richness and diversity comes from its individual creators: writers,
coders, musicians, podcasters, app makers, journalists. But in the current web
ecosystem, big platforms and invasive, targeted advertising make the rules and
the profit. Consumers lose out, too — they unwittingly relinquish reams of
personal data when browsing content. That’s the whole idea behind ‘surveillance
capitalism.’ Our goal in joining Grant for the Web is to support a new vision of
the future. One where creators and consumers can thrive.”Mark Surman,
Mozilla’s executive director.
The quote summarizes the feeling shared by many when it comes to making
money on the web.

When using third party advertising instruments, such as Google Adsense,
Youtube, one must submit to their rules and regulations. This may mean
that the commission base for an affiliate link may suddenly change,
decreasing value or that an adsense account may be deleted just because
of a breach with code of conduct. These are forces that are beyond one's
control. It is thus imperative to continuously stay up to date with the
changes when using thesex web monititzation techniques.
The AI that controls what is good and what is not.
Today, most of what is trending is actually calculated or rather dictated by
algorithms. Today, a lot of creators fear the fact that they will not BE
creative, rather, they will be attempting to please an ever changing
algorithm.

3. Some criticize the so-called data mining.
Data mining explains the process in which large companies gather
consumer data through various rather dubious techniques which leave
the consumer in the dark when it comes to realising what is happening
with their data once they click on a certain banner.
Web monetization of the future.
“Grant for the Web uses open technology and direct funding to promote
alternative online business models for content — and a healthier internet.”
Grant for the Web is an initiative between Mozilla, Coils and the Creative
Commons to tackle some of the challenges listed above by providing grants to
creators, freeing them to fall victim to some rather exploitive measures and
algorithms.
These initiatives understand the complexity of the web and realise that in order
to keep the quality of content at the highest, one must find and protecta those
who aim to do so.
”I think that a common standard of monetization for the web and the creation of
new browser APIs could improve the adoption rate of future web monetization.“
sais Seth Corker.
He continues to argue that there will also need to be a change in perception.
Firstly, we need better browser API’s for all to better incorporate financial
endorsement techniques and consumers need to have it easier to pay for the
quality they receive.
In order to protect the privacy of the consumers and also the APIs that
developers use, there needs to a global initiative for open web monetization
techniques that are more flexible than those ones offered by the very few big
companies.
Resources
https://foundation.mozilla.org/en/blog/100-million-investment-reshape-economi
cs-web/
https://medium.com/front-end-field-guide/the-future-of-web-monetization-4dfb
0701efdf
https://www.brid.tv/7-best-alternatives-youtube-video-monetization/
https://en.wikipedia.org/wiki/Website_monetization

Outreachy's Project Contribution | What is Web Monetization? | Oluseyi Yoloye
Brief Description:
Web monetization in layman's terms is the process in which money is made from the web; website visits are converted to revenue. Before development practices became more popular, there wasn't any industry-wide standard for web monetization. Web monetization happened across companies like Twitter and Facebook who monetized their sites through paid Ads. The W3C proposed an open, neutral standard API for web monetization. The proposed API is built on the Interledger(IRL) protocol which is described on its official site as “an open protocol suite for sending payments across different ledgers.”There is the Payment Request API and the Payment Handler API.
How does web monetization work?
Essentially there are two wallets, one receives payments and the other sends payments. The user's wallet is the web monetization provider, whereas the website's wallet is the web monetization receiver. The intermediary between the two is the web monetization agent. The user’s wallet information is recorded when the extension is installed and the website’s wallet information is available in the meta tag (snippet of the text that describe page contents) of the website. The browser plays a key role in implementing Web Monetization.
How can you monetize your website? (*These are just a few ways)
Banner advertising
Affiliate programs
Data monetization
Pay per click
Banner advertising
Paid subscriptions
Donations
Advantages of Web Monetization

Users can determine where funds will go on the web
Web monetization setup is relatively easy
Web trafffic creates increased revenue as users are on page longer
The technology can easily be customized by developers
Users can determine where funds will go on the web
Better Privacy for user
Improve payment performance and simplicity

Challenges for individual implementation:
Web monetization hasn't been widely adopted so new users may face challenges in regard to implementing the API.
Opportunities for individual implementation:
Adoption widely will allow website owners to generate increased revenues as there is no direct reliance on subscription conversion rates. Additionally, it is easy to use and advanced experience is not required.
Challenges for broader adoption:
Online advertising may in the foreseeable future no longer exist, This poses as a challenge to companies whose business model is primarily due to online advertising.
Opportunities for broader adoption:
Security and Privacy: According to computing ethical standards, a users privacy must be preserved. Websites should not be able to track users based on the payments they make. Additionally, and a user's browsing history should not be available to the web monetization provider.

Web Monetizaton:
Monetization basically refers to turning non-revenue generating thing into a profit generating one. Web Monetization is a process through which website owner can generate revenue from its website traffic.
How Web monetization works?
For a website owner to earn a consistent amount from a website/blog through web monetization,the website has to have some existing traffic base. The website/blog owners then chooses the right web monetization technique to target the audience coming to its website to stay. Website that now has activated web monetization by adding a code to their site will start generating revenue from the user that are logged in from browser have web monetization agent working. Web monetization platform sends and receives payment with the help of Interledger protocol.
Opportunities and challenges of Individual Implementation:
Opportunities:

Few lines of code is required to implement this approach or it is an easy to use approach
For the payment purpose, the sender and receiver do not need to have same payment network or same currency.
Challenges:
Great amount of effort is needed to generate revenue from existing methods.
Small payments have high processing cost.

Opportunities and challenges of Broader adoption:
Opportunities:

User's privacy is the top concern in this as the web monetization provider don't have any access to user's browsing history.
It doesn't have any strict content policies to follow
Challenges:
Adoption of this relatively new method by users is a challenge itself.
It is hard to make the users subscribe as people are not willing to pay for online content.

 Writing your blog in your little journal is great and all but no one else is experiencing it, so you launch a website. Now sharing your wise words is wonderful but at the end of the day we’ve all got to eat so it’s time to turn that blog into a money maker. But how do you do that? Simple: web monetization. Each visitor to your website makes a certain amount of money. How? Think back to the last time you visited a blog. The article was there but without fail, ads lined up the side. Looking at the blog, you are a visitor, and viewing the ads generates money. If I’m a third party business that wants to get other people to see my really cool pen, I want to make an ad. If you, the blogger, have a lot of traffic, or number of visitors to your website, I want to put my ad in your blog so that lots of different people see it and buy my pen. That’s one of the most common ways to monetize your website. Another common way is to sell something. So if your blog is all about power tools, selling power tools or selling a subscription to your Power Tools For All magazine will also generate money. That’s the simplified version. To be a little more mathematical, the effectiveness of your monetization is measured in Effective CPM (eCPM). eCPM is denoted by the formula total costs / impressions * 1000. For perspective, websites with little traffic can get CPM’s less than $1 but if your website is gold, then CPM’s can exceed $100. Multiply your CPM by how many visitors you get and that’s your monthly revenue. To make the most money, get more visitors or get more CPM.
Individual Opportunities
Web monetization represents your ticket to the golden city. The most obvious opportunity is money. You play this right, and the money will practically earn itself. Many people fear delving into the monetization world because it will be too techy and they don’t know how to do that, but here’s the kicker: it’s not. If anything it’s a business venture, one easily learned through trial and error. Not only do you get that money, but suddenly you’ll find your words and products viewed but a greater audience.
Individual Challenges
It won’t be all sunshine and rainbows. When starting a website, one of the most frustrating aspects is lack of visitors. When you see your CPM low, your visitors low, it’s disheartening. Web monetization isn’t for quitters. It’s a lot of decision making too. What kind of ads do you want to run? Should they count as traffic if they’re viewed or do they have to be clicked? Will you sell anything? How you will sell it? These are just a few of the questions you have to answer. It’s a lot of work and time.
Broader Adoption
Individual benefits are great, but monetization of your website is also altruistic. For example, implementing ads will connect your viewers with new opportunities. Looking back at my previous example, maybe some of your viewers were looking for a pen, and through you, they finally found what they were looking for.  You’re also supporting other businesses just like you. Getting traffic to other websites strengthens the web economy. Not many challenges exist for broader adoption but there once again stems this concern of brick-and-mortar stores vs. online stores. If web monetization flourishes and becomes more lucrative than brick-and-mortar stores, businesses will move towards the money maker and close physical stores, leading to a rise in unemployment and other issues.

Thanks to everyone for their submission. Because the application period has passed, we are now reviewing final proposals, and are no longer accepting contributions on this task.


[Bug]: Improper display of some sections

Is there an existing issue for this?

[X] I have searched the existing issues

Describe the bug

The packaging list section is a bit cut from below , i am new to contributing so i was thinking maybe i can do something little like this
Expected behavior
It should display correctly without any cuts.
I am a beginner and want to contribute please guide me
Add ScreenShots
No response
On which device are you experiencing this bug?
Windows
Record

[X] I have read the Contributing Guidelines
[X] I'm a GSSOC'24 contributor
[ ] I'm a VSOC'24 contributor
[X] I have starred the repository

Guys i am totally new so help me if you can

@Nivesh2003 I think there is no cut in the website , But Maybe it happens to you for maybe due to your screen width .
But sorry to close this issue for now .
But as u are a beginner try to make new issues on which u want to work on & if u need any type of help , feel free to reach out me


Not up-to-date with TF

I get the error:
'module' object has no attribute 'SummaryWriter'
which I found out is due to a deprecation in the code.
I recommend changing these lines or updating the FAQ to suggest a specific version of TensorFlow.
Thanks for your work! Hopefully I can get it up and running.

Hey, yep currently this code only works with TF 0.12. I'll be updating it soon though! Thanks for the heads up
Sent from my iPhone

On May 16, 2017, at 12:13 AM, Stalgia Grigg<EMAIL_ADDRESS>wrote:
I get the error:
'module' object has no attribute 'SummaryWriter'
which I found out is due to a deprecation in the code.
I recommend changing these lines or updating the FAQ to suggest a specific version of TensorFlow.
Thanks for your work! Hopefully I can get it up and running.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.

Thanks for the quick reply! I'll go back to 0.12 in the meantime.


Improved Footer

'Closes #27'
Changes proposed

Screenshots
Before:

After:

Hello, @asdsyd. I like the changes, and I am thinking to remove the Navigation links from the footer. Could you pull it off?

Alright.

@RakeshSangem done.
Before:

After:

I believe you also need to remove the CSS code which is related to think links.

Have a look.


ZSSRichTextEditor "highlight" issue

Can anyone provide a workaround for the following issue?
https://github.com/nnhubbard/ZSSRichTextEditor/issues/252#issue-542460709
The issue I guess is with the Java script code.

@manikandan-gopal You can check out wassabeef/RichEditor-android (works slightly better than this repo's). All-in-all, though, we use document.execHTML so we don't have this issue.
Our issue is with memory issues (even with WKWebView) to the point that sometimes we can't have underline and strikethrough at the same time.
But, I'll look into your code if you haven't solved it yet. However, I'm no JS expert (and by the looks of it, are you guys using JQuery?).

Try this
rich_editor.js
RE.isCommandEnabled = function(commandName) {
    return document.queryCommandState(commandName);
}

document.addEventListener('touchend', function(e) {
    RE.callback("touchend");
});

document.addEventListener('touchmove', function(e) {
    RE.callback("touchmove");
});

document.addEventListener('touchstart', function(e) {
    RE.callback("touchstart");
});

document.addEventListener("selectionchange", function(e) {
    RE.callback("selectionchange");
    RE.backuprange();
});

RichEditorView.swift
in private func performCommand(_ method: String)
 if method.hasPrefix("touchend") {
             enabledEditingItems()
         }
         else if method.hasPrefix("touchmove") {
             enabledEditingItems()
         }
         else if method.hasPrefix("touchstart") {
             enabledEditingItems()
         }
         else if method.hasPrefix("selectionchange") {
             enabledEditingItems()
         }

 func enabledEditingItems() {
         runJS("RE.isCommandEnabled('bold')") { content in
                print(content) // Bool
         }
 }

then you can check the "content" value for each style. I know its not best, but it does work for me :)


problems with timestamps.

So, I am having some odd issue with timestamps that I am just not understanding.
For a test I am sending a batch of 250 updates, I increment the value by 1 each time and I add a second to each one.
As an example I am sending an update using a timestamp of<PHONE_NUMBER>859 which should be:
Date in your timezone*: 5/28/2015, 10:10:36 AM
but in zabbix I am seeing it as: 2015.May.27 06:25:21
also, as part of my test I add some time to the time stamp for each iteration. What is odd is that the value should be MS, but if I add "1000" I see a 16 minute difference in zabbix (like it was treating MS as seconds).
Very confused...

Can you show me the test code?

I wanted some batching behavior so I added an add method where the DataObject gets added to a list until it reaches a threshold and then they are all sent together. But my basic code looks like:
long time = System.currentTimeMillis();
System.out.println("Time in MS = " + Long.toString(time));
		for (long i = 0; i < 300; i++)
		{
			long tmp = time + i;
			System.out.println("Posting Time in MS = " + Long.toString(tmp));
			sender.add(new DataObject(tmp,"LogstashTest","TestItem",String.valueOf(i)));
		}


🐞 [BUG] - Navbar cluttering

Description
when I am changing the screen size, the navbar is cluttering and breaking.
Current behaviour
Current behaviour, As you can see in this video
https://github.com/user-attachments/assets/a7686f0a-58ac-4649-869a-4f912302f5a2
Expected behaviour
Expected, The navbar should be stable in all width device.
Reproduction steps
1. open home page in laptop
2. start minimizing screen size
3. you will notice the navbar breaking in between
4. the bug need to be fixed

Screenshots
No response
Logs
No response
Browsers
Chrome
OS
Mac
Are you contributing for a program ?
Other
Code of Conduct

[X] I have read and agree to the Contributing Guidelines of this project.

Can you assign this issue to me under GSSOC ext, Hacktoberfest


java.util.ArrayList cannot be cast to java.util.Map

CrateDB version: 1.0.1, Build: 22739b2/2016-12-12T16:41:45Z, ES: 2.4.2, JVM:
JVM version: 1.8.0_111-internal
OS version / environment description: official docker image, alpine 3.4.4
Problem description:
Selecting from a table crashed crate.
Query: select * from sometable where (d = 153 limit 1
SQLActionException: INTERNAL_SERVER_ERROR 5000 ClassCastException: java.util.ArrayList cannot be cast to java.util.Map
	at io.crate.types.ObjectType.value(ObjectType.java:59)
	at io.crate.types.ObjectType.value(ObjectType.java:32)
	at io.crate.operation.reference.doc.lucene.DocCollectorExpression$1.value(DocCollectorExpression.java:72)
	at io.crate.operation.InputRow.get(InputRow.java:44)
	at io.crate.executor.transport.StreamBucket$Builder.add(StreamBucket.java:68)
	at io.crate.operation.fetch.FetchCollector.collect(FetchCollector.java:89)
	at io.crate.operation.fetch.NodeFetchOperation$CollectRunnable.run(NodeFetchOperation.java:229)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at java.lang.Thread.run(Thread.java:745)

Steps to reproduce:
Unfortunately I cannot provide steps to reproduce. Data in the table could not be accessed anymore, so I truncated it and started afresh. The problem then did not appear again.
Table structure:
CREATE TABLE IF NOT EXISTS "doc"."sometable" (
   "created_at" TIMESTAMP,
   "description" STRING,
   "id" LONG,
   "keywords" STRING,
   "media" OBJECT (DYNAMIC) AS (
      "logo" ARRAY(OBJECT (DYNAMIC) AS (
         "alttext" STRING,
         "caption" STRING,
         "copyright" STRING,
         "created_at" STRING,
         "id" LONG,
         "location" STRING,
         "mimetype" STRING,
         "ref_attribute" STRING,
         "ref_id" LONG,
         "ref_sort" LONG,
         "ref_table" STRING,
         "self" STRING,
         "updated_at" STRING,
         "url" STRING
      ))
   ),
   "parent_id" INTEGER,
   "slug" STRING,
   "sort" INTEGER,
   "title" STRING,
   "updated_at" TIMESTAMP
)

media was only defined as DYNAMIC when creating the table, the rest of the structure was defined by crate automatically.
It's ok if you close this issue immediately because there are no reproducing steps. I just wanted to have that error logged here.

hi @cweiske, thanks for reporting. we will look into this and keep you up to date.

Hi @cweiske
It looks like that the media data payload is not uniform. Possibly, it is represented in your raw data by both an array and object.
You can get data into CrateDB by using, for instance, inserts and copy from. The difference is that the first tries to validate new values against the defined schema or the one which has been dynamically created, which is not the case for copy from.
For example, you cannot do something like that with inserts:
create table some table (id long, media as object(dynamic));
insert into sometable (id, media) values (1, {});
insert into sometable (id, media) values (1, [{}]); // fails, it validates the new values

But it is possible to achieve that with copy from, such as the values won't be validated:
create table sometable (id long, media as object(dynamic));
copy sometable from '/tmp/test.json';

> cat /tmp/test.json
{"id": 1, "media": {}}
{"id": 1, "media": [{}]}

When you attempt to select from this table, the query will fail, and the reason would be exactly the casting exception:
SQLActionException[ClassCastException: java.util.ArrayList cannot be cast to java.util.Map]`

Have you imported you date with copy from? If it is the case, you would probably have to do something about your data or make the schema more strict.

No, I did not use copy from.
But my code actually may have issues that data get imported as object once, and as array on another run. That's my fault indeed.

@cweiske that actually should not be the case such as the schema creation is a synchronous operation.

Ok, then let's close this issue since I cannot help any further with reproducing it.


fs/nxffs: Fix scan good block slowly and scan an invalid block

Summary
I am in charge of porting ESP32 SPI flash driver to NuttX, and I develop it as MTD. I mount the SPI Flash MTD to NxFFS, then test it with nuttx-app/fstest.
The first testing is success, but the second testing fail. I open the debug information and found that the scanning function find the invalid "block" as start block and write data fail.
I add the following scanning algorithm:

scan the block to find "block header"
at offset 5 of block, try to find continue 128 data of 0xff
if fail. then read and check next block
if OK, mark it as first good block

Impact

scan faster
fix scanning an invalid block

Testing
Test nuttx-app/fstest for multi time.

@donghengqaz could you fix nxstyle warning:
https://github.com/apache/incubator-nuttx/pull/1431/checks?check_run_id=888265746


Cursor Position is Horribly Wrong

Hey there,
I've got an issue using the cursor position where it's incredibly wrong. I typed in the following
123456789 123456789
My cursor was at the end and it said it was at 33
The format of my code is a contentEditable div with a  inside so I can create line numbers using the :before psuedoelement
Is there a reason why the cursor position is so wrong?
Thanks!

IAmDragon

https://github.com/ichord/Caret.js/pull/61
#61
might be related


[posix] tolerate infra if initialization failure

instead of stopping the whole OpenThread stack, it would be more graceful to
tolerate the infra if initialization failure and disable the border routing manager
in this case.
This PR also changes the default status of the routing manager from enabled
to disabled. But the border routing feature will still be auto-started for posix.

We may want to auto start/stop the routing manager when the infra interface status changes.


MM-28038: reset pagination on filtering

Summary
When changing the filter settings on the incident list, reset pagination to avoid being stuck on a second page without any results.
Ticket Link
Fixes: https://mattermost.atlassian.net/browse/MM-28038

Codecov Report

Merging #287 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #287   +/-   ##
=======================================
  Coverage   49.04%   49.04%
=======================================
  Files          18       18
  Lines        2255     2255
=======================================
  Hits         1106     1106
  Misses        993      993
  Partials      156      156

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 90d9780...95540a7. Read the comment docs.


create test suite for error estimation tools

non currently exists

As of #514, this module no longer exists.


Method for delete certificate

I noticed that it is enough just once to apply the certificate and it remains "forever" on the device, even if you delete the application!
Tested it on this site https://client.badssl.com/ (iPad mini 3)
Because there are no built-in tools for iOS for managing certificates, I would like to have a method that would allow to remove the installed certificate('s)

Met this issue as well, is there any workaround?


webpack dll plugin support?

are there any plans for this plugin to support webpack-dll-plugin out of the box? or is the recommended approach to use a plugin like copy-webpack-plugin to copy the "vendor.dll.js" file to each lambda function's .aws-sam/build/[function name] folder?

I'm not familiar with the webpack-dll-plugin but my best guess is that it's incompatible.

webpack dll plugin pre-compiles node_modules (for example) into a single vendor-dll.js file, then webpack will reference this dll for dependencies. This is very useful for drastically faster compile times since only the lambda functions need to be compiled (one time compile for dll) vs. lambda + node_modules.
The problem is, the vendor-dll.js file needs to copied to each lambda folder in the .aws-sam/build[function name] folder, which your plugin creates and is aware of.  I don't  think copy-webpack-plugin is smart enough to do this correctly.
perhaps making a aws-sam-webpack-dll-plugin plugin project based on your plugin would be best?
https://webpack.js.org/plugins/dll-plugin/

If you just need to copy a file into a different location then the copy plugin should work.

i got this working with an 'afterEmit' webpack hook. 'copy webpack plugin' did not work because it tries to copy before the dll is built.
example webpack.config.js:
const AwsSamPlugin = require('aws-sam-webpack-plugin');

plugins: [
{
    apply: (compiler) => {
        compiler.hooks.afterEmit.tap('CopyAfterEmitPlugin', compilation => {
          Object.keys(awsSamPlugin.entry()).forEach(entry => {
            // merge dll here e.g.
            // merge /.aws-sam/build/vendor.dll.js => '/.aws-sam/build' + entry + '/app.js'
         })
      });
    }
 }


Readme.md Updated: Gradle Added

Updated Readme.md to help Android Studio users

Can one of the admins verify this patch?


Documentation Links

Links to the documentation on the top are no longer working.
e.g. https://go.microsoft.com/fwlink/p/?LinkId=80347
This LinkId is beeing used in more articles like MBAM and older DaRT versions (https://www.google.com/search?q=https%3A%2F%2Fgo.microsoft.com%2Ffwlink%2Fp%2F%3FLinkId%3D80347)
Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 2435ab4a-ddf7-d26d-d362-d7de3ff13b64
Version Independent ID: c6354c18-4e1d-15aa-13c2-0c1dc3ce63b2
Content: Getting Started with DaRT 10
Content Source: mdop/dart-v10/getting-started-with-dart-10.md
Product: w10
GitHub Login: @jamiejdt
Microsoft Alias: jamiet

@ariendg Thanks for pointing this out, we'll get it fixed.


Output parameters and Return Status might be accidentally reused

Describe the bug
When we pass output parameters to a query, or a *ReturnStatus, they are stored in the connection.
This means they can be accidentally shared between several queries.
There is a function named clearOuts that's supposed to fix that, but:

It does not clear the *ReturnStatus.
It might not be called, if an errors occurs in sendQuery, for example.

To Reproduce
func main() {
	db, err := sql.Open("sqlserver", "sqlserver://sa:sa@localhost/sqlexpress?database=master")
	if err != nil {
		log.Fatalln(err)
	}
	defer db.Close()

	var rs mssql.ReturnStatus
	r, _ := db.QueryContext(context.TODO(), "exec sp_recompile 'bad'", &rs)
	if r != nil {
		r.Close()
	}
	rs = 0
	r, _ = db.QueryContext(context.TODO(), "exec sp_recompile 'bad'") // don't pass &rs
	if r != nil {
		r.Close()
	}
	if rs != 0 {
		log.Fatalln("rs has been overwritten by the second query, the connection was the same")
	}
	log.Println("rs == 0, the second query ran on another connection, or the bug is fixed")
}

Expected behavior
The second query shouldn't have written to rs.
Question
Why do we have outs in Conn and returnStatus in tdbSession ?
I have the feeling they both belong to Stmt, but I might miss something....
If this is how it should be, I can provide a simple PR to fix that.

for tracking this issue, I'm writing a reply to https://github.com/denisenkom/go-mssqldb/pull/656#issuecomment-833542872

Do you have an idea of how we could safely handle "query scope" as opposed to connection/statement scope ?

For Go 1.10 or later, driver.SesstionResetter is easiest way.
Or, call Conn.clearOuts on and the head of QueryContext and ExecContext.
Does someone know why Conn.clearOuts is not called on the head, but after startReading?

Thanks, SessionResetter is interesting.
But, I eventually think we should call clearOuts in entry points, as you said.
Could this be done like this?


Switch Key Vault canary region to Central US

/azp run net - keyvault - tests

/azp run net - keyvault - tests-weekly

Talking with @benbp offline, we'll need this change anyway since the linux App Service is only available in centraluseuap anyway.

@heaths my onboarding ticket is still pending.

/azp run net - keyvault - tests-weekly

The problems with China are all known timeouts that started happening about a month ago. Tracking resolution in https://github.com/Azure/azure-sdk-tools/issues/6175. Will override.

/check-enforcer override


API: Snapshots for Robot

Currently the https://runmyrobot.com/api/v1/snapshots is not really feasible to digest within the app.
Ideally we'd be able to specify a robot ID and it'll return an array of snapshots with links to the image/gif (not actually the image stored within the feed in what I can only guess is the bytes representation)

@runmyrobot The API doesn't return a link to the image, it actually returns the image as part of the API - could really do with just a link!

Having spoken to Theo today looks like there are two change on the to do list:
https://runmyrobot.com/api/v1/snapshots
will return links to images rather than returning the images within the feed.
https://runmyrobot.com/api/v1/snapshots/:robotid
will return the same information but filtered to only show snapshots from the provided robotid


Class "Filament\Pages\Tenancy\EditTenantProfile" not found

Package
filament/filament
Package Version
v3.0.0-beta1
Laravel Version
v10.15.0
Livewire Version
v3.0
PHP Version
PHP 8.1.20
Problem description
Missing file: Class "Filament\Pages\Tenancy\EditTenantProfile" not found
Flare link: https://flareapp.io/share/KPgQzoX5
Expected behavior
Try to set multitenant via v3 documentation
Steps to reproduce
Create app/Filament/Pages/Tenancy/EditTeamProfile.php nad try to use EditTenantProfile.php as extended file
Reproduction repository
filamentphp/filament
Relevant log output
No response

Have you tried running composer dump-autoload?

@peterkeri Run composer update after installing as well. I had the same issue.

Just run composer update and it's resolved for me


Issue in REMnux upgrade

Just installed REMnux in vsphere by importing the OVA file
Earlier i got the error of draios so i changed the apt source repository and it got working but still the upgrade was failing at another step(thanks for the issues posted here)
Also im now getting a notice while I tried remnux upgrade:

<EMAIL_ADDRESS>remnux-version: v2022.28.1
NOTICE: Fixing incorrect Saltstack version configuration.
Installing and configuring Saltstack properly ...

Because of this now i am getting 2 different directories in the remnux/cli
v2022.28.1
v2023.40.2
This is the error im getting right now:

Running: echo "wireshark-common wireshark-common/install-setuid select True"| debconf-set-selections; dpkg-reconfigure -f noninteractive wireshark-common
Running: wireshark
Running: ssh
Update returned exit code not zero
Error: Update returned exit code not zero
at ChildProcess. (/snapshot/remnux-cli/remnux-cli.js:571:23)
at ChildProcess.emit (events.js:315:20)
at maybeClose (internal/child_process.js:1021:16)
at Process.ChildProcess._handle.onexit (internal/child_process.js:286:5)

Sometimes problems occur due to network or server issues when
downloading packages, in which case retrying your operation
a bit later might lead to good results.

To determine the nature of the issue, please review the
saltstack.log file under /var/cache/remnux/cli in the
subdirectory that matches the REMnux version you're installing.
Search for the log file for "result: false" messages and look at
the surrounding lines to diagnose the issue.

Log file: /var/cache/remnux/cli/v2023.40.2/saltstack.log

just noticed this could be helpful while fidning the error!
Please find attached the saltstack.log file as well
saltstack.log v2022.28.1
saltstack.log v2023.40.2

Log file: /var/cache/remnux/cli/v2023.40.2/saltstack.log
just noticed this and thought this might be useful in finding out the issue

Seems like the issue while i checked on the log file was that there is a temporary issue is name resolution. I checked on the host system and it seems like the website is down for some reason.
What would be plausible solution for the same?

Hi @NotMorphus , the error you encountered is only for the 2023.40.2 log, as the VM was installed with version 2022.28.1 on setup, and doesn't affect the issues you're experiencing now.
As for the actual error itself, there was a temporary issue with name resolution for the netresec.com page, which prevented the installers ability to download PolarProxy and NetworkMiner. Sometimes this can occur if you're behind a proxy, or behind a firewall which may not allow access to certain sites.
Everything else installed correctly, your installation is just missing those two tools. You can download them manually, or re-run the installer.
Cheers!

Is there a way i can delete those tools
Well i am behind a proxy but it is confirmed that there's no rule to disallow the URL
Also this is just a concern but what is the difference between remnux upgrade and just a regular sudo apt-get update/upgrade for that matter

While doing update also I'm facing the same issue

Running: echo "wireshark-common wireshark-common/install-setuid select True"| debconf-set-selections; dpkg-reconfigure -f noninteractive wireshark-common
Running: wireshark
Running: ssh
Update returned exit code not zero
Error: Update returned exit code not zero
at ChildProcess. (/snapshot/remnux-cli/remnux-cli.js:571:23)
at ChildProcess.emit (events.js:315:20)
at maybeClose (internal/child_process.js:1021:16)
at Process.ChildProcess._handle.onexit (internal/child_process.js:286:5)

saltstack.log

Hey thanks!
but i think you forgot to answer this question -> Is there a way i can delete those tools

Theoretically, yes, if you figure out which files or packages to delete, possibly after reviewing the REMnux state files that describe how the tools are installed. But even if you do that, the next time you run remnux upgrade, these tools will be automatically reinstalled.

Right okay thanks!
Closing this now will open the same if I dont get the update soon ;)


fix: copy-rename-maven-plugin plugin execution order

The copy-rename-maven-plugin:copy was coping the unfiltered
camel-connector-schema.json to sql-stored-connector.json and kept
the ${project.version} token in the resulting JSON. This changes so
that the filtered resource from target/classes is copied after it gets
created.
Fixes #88

LGTM


⚠ ClamAV has degraded performance

In 809e8e1, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 65 ms

Resolved: ClamAV performance has improved in 4b92164.


Contributors documentation

Following the issue opened by @evilz. Here's a first draft for a contributor's guide to Fulma project
It WILL have errors and it WILL be incomplete. So if you have some time, please review it so that I can update it accordingly.
Thanks!
(just don't take car of the branch name, although it will hint what I am up to 😉 )

Nice 👍

Thank you 👍


About GPUs and training time

Hi, I am very interested in your research.
Could you tell me what GPUs you used and how long the training took?

Dear eine-kenta,
We use one NVIDIA RTX A6000 GPU with 48G memory. But the code only consumes <10G memory.
We provide the code of the zero-shot classification and segmentation task, and no training time is needed.
Xiangyang Zhu


feat: add Event::Ready

Signed-off-by: David Lemarier<EMAIL_ADDRESS>

What kind of change does this PR introduce? (check at least one)

[ ] Bugfix
[x] Feature
[ ] Docs
[ ] New Binding Issue #___
[ ] Code style update
[ ] Refactor
[ ] Build-related changes
[ ] Other, please describe:

Does this PR introduce a breaking change? (check one)

[ ] Yes. Issue #___
[x] No

The PR fulfills these requirements:

[ ] When resolving a specific issue, it's referenced in the PR's title (e.g. fix: #xxx[,#xxx], where "xxx" is the issue number)
[x] A change file is added if any packages will require a version bump due to this PR per the instructions in the readme.

If adding a new feature, the PR's description includes:

[ ] A convincing reason for adding this feature (to avoid wasting your time, it's best to open a suggestion issue first and wait for approval before working on it)

Other information:

Seems like we are bit by bit adding new events and making the run() callback similar to tao's EventLoop::run(), should we just move all the events handling there instead of hooks on the builder ? I think it will make it easier for users since they won't have to keep cloning/moving their structs into multiple closures.

Seems like we are bit by bit adding new events and making the run() callback similar to tao's EventLoop::run(), should we just move all the events handling there instead of hooks on the builder ? I think it will make it easier for users since they won't have to keep cloning/moving their structs into multiple closures.

Yeah ofc this would be great but not sure whats the main plan, also as the main objective is to support others runtime, not sure exposing tao event loop directly is safe. So it'll require anyhow some kind of wrapper.

ofc removing the hooks are breaking changes so we could keep hooks and also expose all events inside run() and later in tauri 2.0 we could remove one of them based on what users like more or just let them coexist?

Yes I think you are 100% right here

Yeah ofc this would be great but not sure whats the main plan, but as we may support others runtime, not sure exposing tao event loop directly is safe. So it'll require anyhow some kind of wrapper.

No, I didn't mean tao's events directly, I meant exposing tauri's events, instead of splitting some of them on the Builder and some of them inside run()

I think we're ok right now, the other events are not related to the event loop.


Iterator with variable list

To solve the problem with replacing the player in the player list, reordering the list and instantiating the iterator, we could just cheat a little bit and replace the player in the list of the iterator, so that the index remains the same.

The player iterator now takes a mutable array of players. With the replace function, the iterator is not reinstantiated and the current index remains the same.


Release checklist

[x] Fix bounce scroll thing
[x] Fix username too big for top bar
[x] Contributor view
[x] Use autolayout for drawer button and FAB to fix display issues
[ ] Fix new posts not loading? maybe if I can reproduce it
[x] Change Pro boolean so they can purchase it for real
[x] Pro in other currencies still shows old price as $4.99
[x] Remove alpha testing notification
[x] Un comment rate bar
[x] Add FAB toggle to welcome screen
[x] Remove gallery mode!

We are ready for release! Can't believe two years has led up to this :)


Improve storage component

Coverage decreased (-0.2%) to 91.923% when pulling cc0c8ab0adce1455546d72f362a6010195b8e33e on OscarWang114:improve-storage into 3768c505c06f2ae64a3a8743ee91f88e87ed344d on T13-B1-JAROP:master.


[refactor] add static type checking

This is a first PR to enable type hints (see #79).
It adds typing for one of the modules.
Also, a mypy config is provided so that contributors could do static type checking for their code.
The next steps would be gradually cover the codebase with type hints

This is excellent as it allows different developers to quickly familiarize themselves with the project. Looking forward to gradual improvement.