text:
primusrun segfault against nvidia 367.18

Hi @amonakov
I recently updated libglvnd libs (0.1.0.20160519) and nvidia driver (367.18) to lastest .
optirun from bumblebee working fine.
primusrun or optirun -b primus have segfault and does not working at all.
I tried debug primusrun but I have only connection error to :0 display and standard output core dump segmentation fault.
Note: 364.19 nvidia drivers working fine.
ArchLinux x86_64 distro here.

I just reverted to arch libglvnd version packages and primusrun works.
pacman -Q|grep libglv
lib32-libglvnd 0.1.0.20160411-1
libglvnd 0.1.0.20160411-1

source: gharchive/issue

license: isc

license_type: permissive

license_source: bigquery


text:
Backend: Send e-mail

User story

As a (HR employee)
I want / need users to receive mails (in different processes)
So that I am able to communicate with them (e.g. invitation to use DI)

Acceptance criteria

backend sends email to a given email-address

Definition of done (DoD)

Added only after week 5
The same for all features
Here goes the project specific part

DoD general criteria

Feature has been fully implemented
Feature has been merged into the mainline
All acceptance criteria were met
Product owner approved features
All tests are passing
Developers agreed to release

Finished in sprint 5: 8b9cdf974b0592bb76a4d87a3d35fe9834c38272

authors: Idontker TamaraHoock

license: MIT

license_source: github-api


text:
Feature/#168 Rework UI for presets

Changes:

Preset feature is now part of the settings view
Preset drop down list contains a placeholder as long as nothing is selected
Load preset button is disabled if no preset is selected
Buttons for load/save are replaced by icons
Cancel button replaced by X button
Popup now disappears of user clicks outside of the popup
Settings view does not disappear anymore on load/save
Preset dropdown list is updated on storing new presets
Save button is now linked to the "keyup" event

For me this does not work (maybe my fault because of not understanding how this is supposed to work). Saving states works but loading not. When I select a state from existing, I can not click the "upload"-icon and on mouseover the pointer becomes like a stop-sign (although something from the dropdown is selected)

Please re-test I made some changes to the disable logic

source: gharchive/pull-request


text:
Adding meta information does not overwrite default values

   "html-webpack-plugin": "^2.24.1",
   "html-webpack-template": "^5.4.1",

webpack.config.js file:
    plugins: [
		new HtmlWebpackPlugin({
		title: 'Appname',
		inject: false,
		filename: PATHS.prodFile + '/index.html',
		template: require('html-webpack-template'),
		appMountId: 'appContainer',
		meta: {
		    'theme-color': '#FF5A64'
		},
		mobile: true,
		}),
		new FaviconsWebpackPlugin(PATHS.statics + '\\ashojash.png')
							]

I want to add a  theme-color meta to produced files.
I noticed that there is a theme-color by default with content #fff So I deducted that adding theme-color should overwrite it but it doesn't.
Now there is to theme-color meta tag in my file and seems like the browser follows the default one.
What am I doing wrong here?

I found that FaviconsWebpackPlugin was generating that. thanks.

repo: ampedandwired/html-webpack-plugin

license: mit


text:
Request / Response final?

Should we make Request / Response final?

@trowski Thoughts?
Only reason to make it not final would be allowing new JsonResponse IMO, but people can also use a function or static method instead like JsonResponse::create().

My 2 cents:
The incoming Request should be final. Would be weird if something could remove essential request parameters from a request that something else might need later on.
A response should be mutable because various entities might wish to add things/modify things to a response, for example a plugin that wraps a html response into a json response.

@tschallacka This issue isn't about things being mutable or not, it's about users being able to extend the classes or not.

If you are thinking about not making it final just for rendering Json, then there is no need. Because that can be achieved via many other ways. Or you can just add a method in the Response class rendering Json, but I get it that there is not much point to that either.

Yeah, I guess a helper function can easily be used for that. So, I guess there is no need for not making the classes final.

authors: kelunik mega6382 tschallacka

repo: amphp/http-server


text:
[TACHYON-613] Login Mechanism: Add GetTachyonLoginUser method using L…

JIRA: https://tachyon.atlassian.net/browse/TACHYON-613
After adding OS_LOGIN_MODULE and TACHYON_LOGIN_MODULE, we should provide a static method for invocation to get Tachyon login user. Its implementation will leverage the two added modules. This patch also make some change corresponding with configuration, to make the whole procedure complete.
@ooq , @apc999 , could you please take a look at it? Thanks. Please let me know if there are any confusion.

Please review this PR. @apc999 @ooq

Thanks for the patch!
Here is my high-level feedback: previously I thought this class is simply a collection of constants. It looks to me right now it has states, while it has too many static methods. It makes this class really confusing to me. Could you elaborate what we expect from this class, then we can maybe think about if there is a code structure here.

@dongche Thanks for the patch. In addition to the comments I left, I also have the same question as @apc999 . I think the confusion here is that we are not entirely clear how this class is going to be used. It would be helpful if you can elaborate more on that, then we can figure out the best way to structure this class.

Oh, right. I should describe a whole picture for this class at first. Here it is.

Intention of UserInformation (Bold part is in the scope of simple auth. Not bold part is out of the scope and is consideration for future wrok.)

The User class we already added in TACHYON-600 just represents the user itself. The user falls into two types in concept: one is login user (unique) for Tachyon service, the other is client users (multiple) that connects to Tachyon service by RPC.

Then UserInformation instance represents a user in Tachyon from a complete perspective. UserInformation wrap User and bind other useful state with this User, such as Subject, RealUser, in order to support delegation token(decrease auth frequency for performance ) and impersonation(one user proxy another one).

Additionally, it is named as UserInformation for clarification in this simple authentication feature scope. Actually, when we move forward to authorization, it will be rename to UserGroupInformation, like the Hadoop does. At that time, we may bind more info with the user, such as Group, in order to decide permission by checking user and its group.

UserInformation design (only for simple auth stage) - It provide static methods to create kinds of users. Looks like a factory somehow. This class has 4 main part:

code block providing JAAS configuration for supporting login. (Refactor 1: move it to a separate class for clarification.)
static attribute and method about TachyonConf and AuthTypes, used for switch mode. They should be unique in a Tachyon process.
static attribute and method about loginUser. This user should be unique in a Tachyon process.
static method to create and return a client user.

How about doing below refactoring?

Refactor 1: move the JAAS configuration to a separate class for clarification. (mentioned above)
Refactor 2: Simplify the design and impl to only target simple auth scope currently (the bold part above). In the future, we can extend the class when needed. If so, I think User is enough for now, and UserInformation can be changed to something like UserFactory, which provide static methods to create login User and remote client User.

@apc999 , @ooq , thanks for your feedback. What's your opinion about the two possible refactor work? And other thought?
Please let me know if any questions. I like this discussion ^_^. It also help me to think more and design the code better.

@dongche Thanks for the description. To make the discussion easier, let's move to this google doc: https://docs.google.com/document/d/1Ghep_Krsx5W1abXucqns3HYXdxEKtYmqU_caWSQ-F5M/edit?usp=sharing
It's open to edit/comment for everyone.

@dongche @apc999 Left some comments in the doc. Thanks!

@dongche Left more comments on the doc.

@ooq , @apc999 , @gpang , Thanks for your review and feedback! I updated the patch to address most of your comment. Could you take a look at it again?
Since the discussion is still going on at the doc, I did not change too much about the structure. It will be in next patch.

BTW, left some reply on the doc.

@dongche Thanks for the detailed explanation on the google doc. It helped a great deal in understanding what we want to achieve for user login PRs. I think both refactor will make sense!

To sum up what we discussed in the doc: 1, I think refactor 1 is really up to you. If we are only targeting at simple mode for now, which means that we only need one JAAS config setting, we can leave JAAS in user information now. That said, it's usually better to have a separate file. 2, We agree that if we don't need to configure things during tachyon runtime, we should try best to config them during construction and make the parameters to be private final.

With respect to the two logging scenarios you talked about, I would view them as, really, two (independent) features: 1, login for the tachyon service so we know who runs the service; 2, login for tachyon client so we know who connects to tachyon. Both are important for security, while 1 matters more for deployment concerns and 2 matters more for multi-tenancy support. I think for this stage, we should only focus on 2 and add 1 after 2 is finished. That is, for now, we should not perform logging on tachyon service, or any logging that is not for the purpose of identifying a user for a tachyon client. Doing one feature after another simply makes the PRs much easier to understand and in turn boosts up code review.

Thanks for the great summary! @ooq
Patch updated with changes:

Split the JAAS configuration and constants to separate files (TachyonJaasConfiguration and TachyonJaasProperties)
Simplify UserInformation to focus on getting a login user for Tachyon client.
Refine the javadoc for reviewing easier.
Split the unit tests to separate files based on the structure change. (LoginModuleTest and UserInformationTest)

Added some reply to the comments. Fixing for most of them are updated in last commit.

@dongche thanks for the refactoring (it looks much cleaner!) and providing the explanation with more details. I read the discussion in the gdoc above. Here I have a high level question here regarding UserInformation:
Based on its current code, my understanding is that it wraps a  User object and a sAuthType object and both are static. Correct me if I am wrong:  the main purpose to make them static is to make sure these two values are unique across different references of UserInformation, right?
Here is my thought: static members of a class are supposed to be stateless, which seems not the case in our context---you have setter functions to change them. If uniqueness is something we really want to achieve, I think we are using the wrong design pattern and you may want to investigate Singleton for this purpose.

Agree with @apc999 . From what I see now, the current code structure follows the Singleton design pattern to some extent. My suggestion would be to make methods private whenever possible, and make members to be final and private whenever possible. Thanks!

@apc999 , @ooq , yes, it looks like singleton. Thanks.
Updated a patch to use Singleton and remove not necessary static members (sConf and sAuthType). In order to describe the class intention better, this patch rename the class UserInformation to LoginUser and also the corresponding test class. We use LoginUser.get() method to get the unique login user, and it is lazy initialization. The reason of wrapping it with private method LoginUser.get(TachyonConf) is for test purpose.
Please let me know your thought on this design and let's make it better.
Below is some reply:

The main purpose of having them static is to ensure these two values are unique across different references of UserInformation, right?

Yes.

Whenever you have public setter functions to modify these static members (e.g., setsAuthType and reset), ...

The setter functions like reset was intended to be used for unit test and annotated as VisibleForTesting. In the new patch, they are removed and use reflection instead. Not sure this workaround is ok? Thoughts?

@dongche Thanks for the update! I like that the refactoring, the code is much cleaner now. I have left some comments, mostly minor. For the test, I'm wondering if you really need to do reflection to achieve the testing purposes. For example, i think it's fine to make LoginUser#get(TachyonConf conf) public as well, then you should be able to change tachyonConf in the test without reflection?

@dongche , regarding your question about removing reset

The setter functions like reset was intended to be used for unit test and annotated as VisibleForTesting. In the new patch, they are removed and use reflection instead. Not sure this workaround is ok? Thoughts?

Yes, that is a very proper use of reflection in unit tests! thanks for the update!

@ooq , @apc999 , thanks for your continuous review! Patch updated to address comments.

@dongche The PR looks good. Another question: I see that NOSASL is not supported now. As we discussed, for a while, it might be still important to allow some tachyon users to turn off login/authentication, either for performance purpose or if they just want all files to be sharable. How are we going to support that? Are we going to use NOSASL as the configuration parameter? Not necessarily related to this PR but just want to throw it out here.

@ooq Right, we are going to use NOSASL of the configuration parameter value to turn off login/auth. Actually, when NOSASL is configured, the system behavior will be the same as before. From an implementation perspective, there will be a switch branches when getting a Thrift transport, in which NOSASL branch will direct to the original code (TFramedTransport). Also login related methods will not be invoked in NOSASL related logic. These will be taken care in upcoming Jiras.
BTW, I agree with refining the error message and a patch is updated.

LGTM, and the plan on enabling NOSASL sounds good.
This is cool stuff, thanks!

A side note: the two opening PRs (#1176 and this one) have conflicts. I would suggest to merge #1176 first.

Sure, I will rebase this one and change slightly for CUSTOM, after #1176 merged.

Thanks @dongche , this PR turns out a lot cleaner in explaining itself by the code structure. I really appreciate your effort in making this. I left a few very minor comments. Then I will LGTM this PR.
Thanks again.

@apc999 , updated for the comments.
I also like current clean code structure, which is realized based on you guys' feedback. Thanks!

+1 LGTM

Jenkins, test this please.

@dongche merge failed after  #1176
@gpang could you take another look on this PR?

Could you fix the compilation errors? I think there are some issues with PlainSaslServer.java and AuthenticationProviderFactory.java. Thanks!

Jenkins, test this please.

After the compilation fix and the minor rename, this looks good!

Patch updated to rebase and fix compilation error.

LGTM

authors: apc999 dongche gpang ooq

repo: amplab/tachyon


text:
[SMALLFIX] Fixing a broken test build.

This PR fixes the broken tachyon.shell test build.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins/job/Tachyon-Pull-Request-Builder/4641/
Test PASSed.

LGTM

authors: AmplabJenkins gpang jsimsa


text:
test: ip and country test

Summary

Checklist

[ ] Does your PR title have the correct title format?
Does your PR have a breaking change?:

Build is still failed though..

Fixed the failed build.

repo: amplitude/Amplitude-Kotlin


text:
AOT and json source generator fixes

Use json source generator to avoid trimming/AOT issue
Bump AvaloniaEdit to 11.0.5 to fix AOT issue

Fixes #481
Fixes #492

@amwx Could you please take a look at this change?
I know you are busy in the job, but this is a trivial fix to resolve the issue with .NET 8.
.NET 8 GA is coming today, and major people will start to encounter this issue immediately.

repo: amwx/FluentAvalonia


text:
Expose platform functions for performing actions (slack.rename_channel(..))

From proposal https://github.com/amyxzhang/policykit/issues/440
# EXAMPLE 3: performing platform-specific actions

slack.kick_conversation(user=sus[0], channel="xyz")
slack.schedule_message(initiator=sus[0], text="hello world", channel="xyz", post_at=1234)
discord.rename_channel(channel=12345, name="new-name")

opencollective.process_expense(..) is the only existing "action" fucntion that is not post_message or initiate_vote

repo: amyxzhang/policykit


text:
CMake-external-project integration may not work for C projects

It seems to me the cmake-external-project integration only works with C++ projects. With a C project, I get linker errors like
event_id_provider.cpp:(.text+0x1c): undefined reference to __cxa_guard_acquire'`
To reproduce, take this example project, rename the main.cpp to main.c, change CMakeLists.txt to reflect this change and build.
https://github.com/amzn/hawktracer/tree/f0c28d2f525a3674526d231e363de368f2a67b0e/examples/integrations/cmake-external-project
For an easy solution, I'd suggest to add an option to hawktracer.cmake. There is already an option to create a static build.
https://github.com/amzn/hawktracer/blob/f0c28d2f525a3674526d231e363de368f2a67b0e/examples/integrations/cmake-external-project/hawktracer.cmake#L7
Or is there already a solution I have missed?

@andreasbuhr thanks for the report.
The build is failing because the application is not being linked to standard c++ library. There are 2 potential fixes for that:

set HT_BUILD_STATIC to OFF so the library is not needed for linking and is only needed for runtime
link the example with libstdc++:

target_link_libraries(cmake-external-project hawktracer stdc++)

This is by design and I don't think we should be changing anything in HawkTracer. However, I think it'd be good to document above solutions in the code in case somebody experiences similar problems. I'll open a pull request for that soon.

Thanks a lot for looking into this and providing two solutions. I somehow assumed that HawkTracer would work with pure C projects, without any C++ involved anywhere.
Thanks again, I'll go ahead and close this issue.

OK, I think I've misunderstood you. HawkTracer indeed can be compiled just using the C compiler, however, that method is only supported when compiling the amalgamated hawktracer.c file.
The reason why it's not possible to do it with CMake, is because some of the C code is written in .cpp file and ifdef'ed for C++ (e.g. global_timeline.cpp) - the extension makes CMake think that this is C++ file, and it uses C++ compiler for building it.
I think having some kind of flag like FORCE_C as you suggested in the first comment would actually make sense, and that could be implemented using LANGUAGE CMake source file property.
I'll re-open the ticket and will try to implement that flag when I have time as I think it's actually nice addition (or feel free to raise a pull request if it's something you'd like to contribute to :)

I've addressed the problem in https://github.com/amzn/hawktracer/commit/722607722cbb3edd86d0363b22995303ea6e1378
I added FORCE_C_COMPILATION flag so when it's set to ON, cmake uses C compiler.
@andreasbuhr feel free to re-open the issue if you have any other questions regarding this feature.

authors: andreasbuhr loganek

repo: amzn/hawktracer


text:
MAX32672 UART2 port does not work in UART Example Project

Using Max32672 EV Kit, base UART example project fails when using Async interrupt handler. Specifically, Async handler raises a GENERAL_COMMS_ERR followed by infinite loop when polling READ_FLAG to signal end of read.
I found the source to be the UART2 port. This UART example project works as expected when using any read/write combination of UART0, UART1 ports.

Thanks @noahbreit, looks like this is a leftover artifact of #763 - I should have updated all the UART examples.
Essentially, there are two UART DMA modes - "Auto handlers" vs "Manual handlers".  If you are using manual handlers (which the example does), then you need to call the APIs for telling the UART drivers which DMA channels you have configured for the RX/RX parts of the transaction.  The example is missing that code.
In general I'd recommend using auto handlers, since they abstract away the DMA setup complexity.
Below is an updated example we're working on applying to all the micros.
/******************************************************************************
 *
 * Copyright (C) 2024 Analog Devices, Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 ******************************************************************************/

/**
 * @file    main.c
 * @brief   Main for UART example.
 * @details This example sends data from one UART to another. For this example
 *          you must connect a jumper across RX(P2.14) of UART1 and TX(P1.10) of UART2.
 *			UART_BAUD and the BUFF_SIZE can be changed in this example.
 */

/***** Includes *****/
#include <stdio.h>
#include <stdint.h>
#include <string.h>
#include "mxc_device.h"
#include "pb.h"
#include "board.h"
#include "mxc_delay.h"
#include "uart.h"
#include "dma.h"
#include "nvic_table.h"
#include "led.h"

/***** Definitions *****/
#define AUTOHANDLERS

#define UART_BAUD 115200
#define BUFF_SIZE 512

#define RX_UART MXC_UART1
#define TX_UART MXC_UART2

/***** Globals *****/
volatile int READ_FLAG;
volatile int WRITE_FLAG;
volatile int buttonPressed;
static mxc_uart_req_t read_req;
static mxc_uart_req_t write_req;

/***** Functions *****/
#ifndef AUTOHANDLERS
void DMA_RX_Handler(void)
{
    MXC_DMA_Handler();
}

void DMA_TX_Handler(void)
{
    MXC_DMA_Handler();
}
#endif

void readCallback(mxc_uart_req_t *req, int error)
{
    READ_FLAG = error;
}

void writeCallback(mxc_uart_req_t *req, int error)
{
    WRITE_FLAG = error;
}

void buttonHandler(void)
{
    buttonPressed = 1;
}

#ifdef AUTOHANDLERS
int exampleDMAAutoHandlers(void)
{
    int error = 0;

    // Auto DMA handlers will automatically initialize DMA, acquire & assign channels,
    // and guarantee that each transaction's callback function is executed when
    // the transaction is complete.
    MXC_UART_SetAutoDMAHandlers(RX_UART, true);
    MXC_UART_SetAutoDMAHandlers(TX_UART, true);

    // "READ_FLAG" is set in the read transaction's callback.  It will be set to 0 when
    // the read request completes successfully.  We use it to wait for the DMA transaction
    // to complete, since the DMA APIs are asynchronous (non-blocking)
    READ_FLAG = 1;

    error = MXC_UART_TransactionDMA(&read_req);
    if (error) {
        printf("-->Error starting DMA read: %d\n", error);
        printf("-->Example Failed\n");
        return error;
    }

    error = MXC_UART_TransactionDMA(&write_req);
    if (error) {
        printf("-->Error starting DMA write: %d\n", error);
        printf("-->Example Failed\n");
        return error;
    }

    while (READ_FLAG) {}

    printf("-->Transaction completed\n");
    return READ_FLAG;
}
#else
int exampleDMAManualHandlers(void)
{
    int error = 0;

    // Manally initialize DMA
    MXC_DMA_Init();

    // Manually acquire a channel for the read request and assign it to the drivers.
    int rx_channel = MXC_DMA_AcquireChannel();
    if (rx_channel >= 0) {
        printf("Acquired DMA channel %i for RX transaction\n", rx_channel);
    } else {
        printf("Failed to acquire RX DMA channel with error %i\n", rx_channel);
        return rx_channel;
    }
    MXC_UART_SetRXDMAChannel(RX_UART, rx_channel);

    // Additionally, assign the NVIC IRQ to a function that calls "MXC_DMA_Handler()".
    // This is required for any assigned callbacks to work.
    NVIC_EnableIRQ(MXC_DMA_CH_GET_IRQ(rx_channel));
    MXC_NVIC_SetVector(MXC_DMA_CH_GET_IRQ(rx_channel), DMA_RX_Handler);

    // Do the same for the write request.
    int tx_channel = MXC_DMA_AcquireChannel();
    if (tx_channel >= 0) {
        printf("Acquired DMA channel %i for RX transaction\n", tx_channel);
    } else {
        printf("Failed to acquire RX DMA channel with error %i\n", tx_channel);
        return tx_channel;
    }
    MXC_UART_SetTXDMAChannel(TX_UART, tx_channel);
    NVIC_EnableIRQ(MXC_DMA_CH_GET_IRQ(tx_channel));
    MXC_NVIC_SetVector(MXC_DMA_CH_GET_IRQ(tx_channel), DMA_TX_Handler);

    // Initialize flags.  We will use these to monitor when the read/write requests
    // have completed, since the DMA APIs are asynchronous.
    WRITE_FLAG = 1;
    READ_FLAG = 1;

    error = MXC_UART_TransactionDMA(&read_req);
    if (error) {
        printf("-->Error starting DMA read: %d\n", error);
        printf("-->Example Failed\n");
        return error;
    }

    error = MXC_UART_TransactionDMA(&write_req);
    if (error) {
        printf("-->Error starting DMA write: %d\n", error);
        printf("-->Example Failed\n");
        return error;
    }

    while (WRITE_FLAG) {}
    while (READ_FLAG) {}

    printf("-->Transaction completed\n");
    return WRITE_FLAG;
}
#endif // AUTOHANDLERS

/******************************************************************************/
int main(void)
{
    int error, i, fail = 0;
    uint8_t TxData[BUFF_SIZE];
    uint8_t RxData[BUFF_SIZE];

    printf("\n\n**************** UART Example ******************\n");
    printf("This example sends data from one UART to another\n");
    printf("\nConnect RX(P2.14) of UART1 and TX(P1.10) of UART2.\n\n");
    printf("To indicate a successful UART transfer, LED1 will illuminate.\n");
    printf("\nPush SW2 to continue\n");

    buttonPressed = 0;
    PB_RegisterCallback(0, (pb_callback)buttonHandler);
    while (!buttonPressed) {}

    printf("\nUART Baud \t: %d Hz\n", UART_BAUD);
    printf("Test Length \t: %d bytes\n\n", BUFF_SIZE);

    // Initialize the data buffers
    for (i = 0; i < BUFF_SIZE; i++) {
        TxData[i] = i;
    }
    memset(RxData, 0x0, BUFF_SIZE);

    // Initialize the UART
    error = MXC_UART_Init(TX_UART, UART_BAUD);
    if (error < E_NO_ERROR) {
        printf("-->Error initializing UART: %d\n", error);
        printf("-->Example Failed\n");
        return error;
    }

    error = MXC_UART_Init(RX_UART, UART_BAUD);
    if (error < E_NO_ERROR) {
        printf("-->Error initializing UART: %d\n", error);
        printf("-->Example Failed\n");
        return error;
    }

    // Setup request structs describing the transactions.
    // Request structs are placed in the global scope so they
    // don't go out of context.  This can happen when a req struct
    // is declared inside a function and the function completes.
    // The memory would be freed, invalidating the UART driver's
    // pointers to it.
    read_req.uart = RX_UART;
    read_req.rxData = RxData;
    read_req.rxLen = BUFF_SIZE;
    read_req.txLen = 0;
    read_req.callback = readCallback;

    write_req.uart = TX_UART;
    write_req.txData = TxData;
    write_req.txLen = BUFF_SIZE;
    write_req.rxLen = 0;
    write_req.callback = writeCallback;

    printf("-->UART Initialized\n\n");

#ifdef AUTOHANDLERS
    error = exampleDMAAutoHandlers();
#else
    error = exampleDMAManualHandlers();
#endif

    if (READ_FLAG != E_NO_ERROR) {
        printf("-->Error with read callback; %d\n", READ_FLAG);
        fail++;
    }

    if ((error = memcmp(RxData, TxData, BUFF_SIZE)) != 0) {
        printf("-->Error verifying Data: %d\n", error);
        fail++;
    } else {
        printf("-->Data verified\n");
    }

    if (fail != 0) {
        printf("\n-->Example Failed\n");
        LED_On(0); // indicates FAIL
        return E_FAIL;
    }

    LED_On(1); // indicates SUCCESS
    printf("\n-->Example Succeeded\n");
    return E_NO_ERROR;
}

authors: Jake-Carter noahbreit

repo: analogdevicesinc/msdk


text:
Code format

PR:

added formating script and config files from main repo (https://github.com/analogdevicesinc/tof)
formatted entire script

v2:

removed not need clangformatignore paths

repo: analogdevicesinc/tof-ros


text:
Update README.md

Hey @tigerey3,
thanks for the PR. Nice tool.
The README.md is actually just a rendered version of the tools. The actual tools data is in data/tools. Can you create a new YAML file there? 🤓

Hey @tigerey3,
quick update: I went ahead and merged tfsec in #605. Thanks for the suggestion. 👍

repo: analysis-tools-dev/static-analysis


text:
ATR not correct?

backtesting a trading strategy that uses the ATR for stop loss and take profit but the ATR seems way too high. Its being calculated in the thousands here but when I go to trading view/binance it is only in the hundreds.

ok so think ive figured it out. If you are using something like the binance api you want to take the atr you get calculated here and multiply it by the tick size e.g. BTC tick size is 0.01 so a 1000 ATR from here multiplied by 0.01 BTC tick size gives you 10 which is the real ATR values you want to base your stop loss and take profits from


text:
🛑 Cental Pollution Control Board - OCEMS Live Data is down

In bcb0e0c, Cental Pollution Control Board - OCEMS Live Data (https://rtdms.cpcb.gov.in/api/industryList/45/39/Bangalore) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Cental Pollution Control Board - OCEMS Live Data is back up in a339ea9 after 7 minutes.

repo: anandology/uptime


text:
d4rkAvatarOptimizer is "Not Installed" in the project even when it is installed

Description of the bug / バグの説明
Package d4rkpl4y3r.d4rkavataroptimizer is marked as "Not Installed" in the project, even if it is installed in the project.
Steps to Reproduce / 再現手順

Add the listing described in https://github.com/d4rkc0d3r/d4rkAvatarOptimizer to the repositories
Add d4rkAvatarOptimizer to an Avatars project (either using Creator Companion or vrc-get-gui)

Observed:

d4rkAvatarOptimizer is marked as "Not Installed" in vrc-get-gui

Expected Behavior / 想定される挙動
d4rkAvatarOptimizer should be marked as "3.5.2" in vrc-get-gui
Screenshots / スクリーンショット

Software Version / バージョン情報
0.1.0-beta.3-x86_64.exe
OS
Windows 10 Pro 22H2 + Sandboxie-Plus v1.11.0e
Additional context / 補足
No response

Thank you for bug report!
It looks url field in Packages/d4rkpl4y3r.d4rkavataroptimizer/package.json is empty string, which is invalid for url, and vrc-get expects some valid url or just omit url in Packages folder so vrc-get fails to load package.json from. I'll make the restrictions for url field relaxed.


text:
界面显示异常

样式加载问题，下一个版本修复下

@6uu1 最新版本已经修复了，我先 close 掉了

@6uu1 最新版本已经修复了，我先 close 掉了

好，辛苦开发大大了


text:
[feature #143342753] convert stores to es6 format

What does this PR do?
Implement feedback received from the defense session.
Description of Task to be completed?
Convert the application stores to es6 format
##How should this be manually tested?
NA
Any background context you want to provide?
NA
What are the relevant pivotal tracker stories?
#144714671
Screenshots (if appropriate)
NA
Questions:
NA

Coverage increased (+1.5%) to 87.692% when pulling 780b548782f4cbfc59e98951c8efd0892671d362 on implement-defence-feedback-144714671 into 624a2de50a167872ac6fdb479ba379cc12844bb6 on develop.

authors: andela-milesanmi coveralls

repo: andela-milesanmi/mai-headlines


text:
Incompatibility with Kafka v3.0+

Hi everyone,
Im having dependency issue while trying to run this setup.

OPA version: 0.35+
Kafka version: 3.X
Opa Kafka plugin version: 1.4.0

[2022-03-05 17:41:58,778] ERROR [KafkaApi-2] Unexpected error handling request RequestHeader(apiKey=UPDATE_METADATA, apiVersion=7, clientId=2, correlationId=0) -- UpdateMetadataRequestData(controllerId=2, controllerEpoch=3, brokerEpoch=276, ungroupedPartitionStates=[], topicStates=[], liveBrokers=[UpdateMetadataBroker(id=2, v0Host='', v0Port=0, endpoints=[UpdateMetadataEndpoint(port=9093, host='kafka', listener='CLIENT', securityProtocol=2), UpdateMetadataEndpoint(port=9092, host='kafka', listener='OUTSIDE', securityProtocol=1)], rack=null)]) with context RequestContext(header=RequestHeader(apiKey=UPDATE_METADATA, apiVersion=7, clientId=2, correlationId=0), connectionId='127.0.0.1:9092-127.0.0.1:51473-0', clientAddress=/127.0.0.1, principal=User:ANONYMOUS, listenerName=ListenerName(OUTSIDE), securityProtocol=SSL, clientInformation=ClientInformation(softwareName=unknown, softwareVersion=unknown), fromPrivilegedListener=true, principalSerde=Optional[org.apache.kafka.common.security.authenticator.DefaultKafkaPrincipalBuilder@2caf3347]) (kafka.server.KafkaApis)
com.google.common.util.concurrent.ExecutionError: java.lang.ExceptionInInitializerError
	at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2049)
	at com.google.common.cache.LocalCache.get(LocalCache.java:3951)
	at com.google.common.cache.LocalCache$LocalManualCache.get(LocalCache.java:4848)
	at org.openpolicyagent.kafka.OpaAuthorizer.allowAccess$1(OpaAuthorizer.scala:154)
	at org.openpolicyagent.kafka.OpaAuthorizer.doAuthorize(OpaAuthorizer.scala:165)
	at org.openpolicyagent.kafka.OpaAuthorizer.authorizeAction(OpaAuthorizer.scala:121)
	at org.openpolicyagent.kafka.OpaAuthorizer.$anonfun$authorize$1(OpaAuthorizer.scala:49)
	at scala.collection.StrictOptimizedIterableOps.map(StrictOptimizedIterableOps.scala:99)
	at scala.collection.StrictOptimizedIterableOps.map$(StrictOptimizedIterableOps.scala:86)
	at scala.collection.convert.JavaCollectionWrappers$JListWrapper.map(JavaCollectionWrappers.scala:103)
	at org.openpolicyagent.kafka.OpaAuthorizer.authorize(OpaAuthorizer.scala:49)
	at kafka.server.AuthHelper.$anonfun$authorize$1(AuthHelper.scala:49)
	at kafka.server.AuthHelper.$anonfun$authorize$1$adapted(AuthHelper.scala:46)
	at scala.Option.forall(Option.scala:420)
	at kafka.server.AuthHelper.authorize(AuthHelper.scala:46)
	at kafka.server.AuthHelper.authorizeClusterOperation(AuthHelper.scala:54)
	at kafka.server.KafkaApis.handleUpdateMetadataRequest(KafkaApis.scala:336)
	at kafka.server.KafkaApis.handle(KafkaApis.scala:175)
	at kafka.server.KafkaRequestHandler.run(KafkaRequestHandler.scala:75)
	at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: java.lang.ExceptionInInitializerError
	at org.openpolicyagent.kafka.AllowCallable.call(OpaAuthorizer.scala:271)
	at org.openpolicyagent.kafka.AllowCallable.call(OpaAuthorizer.scala:268)
	at com.google.common.cache.LocalCache$LocalManualCache$1.load(LocalCache.java:4853)
	at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3529)
	at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2278)
	at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2155)
	at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2045)
	... 19 more
Caused by: com.fasterxml.jackson.databind.JsonMappingException: Scala module 2.10.5 requires Jackson Databind version >= 2.10.0 and < 2.11.0
	at com.fasterxml.jackson.module.scala.JacksonModule.setupModule(JacksonModule.scala:61)
	at com.fasterxml.jackson.module.scala.JacksonModule.setupModule$(JacksonModule.scala:46)
	at com.fasterxml.jackson.module.scala.DefaultScalaModule.setupModule(DefaultScalaModule.scala:17)
	at com.fasterxml.jackson.databind.ObjectMapper.registerModule(ObjectMapper.java:835)
	at com.fasterxml.jackson.databind.cfg.MapperBuilder.addModule(MapperBuilder.java:243)
	at org.openpolicyagent.kafka.AllowCallable$.<clinit>(OpaAuthorizer.scala:264)
	... 26 more

Immediately after this error broker of course shuts down. In case logs are necessary let me know.
Good thing to mention is that there are no issues on version below 3.0.
Not sure whether you encountered it within testing.

Hey Ivan! And thanks for reporting this. Yeah, I think we're just lagging behind here. Not sure if it's possible to support 3.0+ while also keeping compatibility backwards, but given this plugin is pretty stable by now, perhaps we could just let the current version(s) be the alternative for 2.x versions, and bump the next release to work with 3.x. Thoughts, @scholzj ?

Aloha :)
Reason Im reporting this is because I think I saw in some releases before (think v1.2.0 but I might be wrong) a note where it says that compatibility with v3.0 has been introduced :O

As far as I know it works fine with Kafka 3.x -> at least I did not had any issues and its passing our system tests in Strimzi. You need to make sure to pull in the right libraries to not cause conflicts with the libraries already in Kafka. In Strimzi, we normally exclude bunch of them:
        <dependency>
            <groupId>org.openpolicyagent.kafka</groupId>
            <artifactId>opa-authorizer</artifactId>
            <version>${opa-authorizer.version}</version>
            <exclusions>
                <exclusion>
                    <groupId>com.fasterxml.jackson.module</groupId>
                    <artifactId>jackson-module-scala_2.13</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.apache.kafka</groupId>
                    <artifactId>kafka_2.13</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>com.google.code.findbugs</groupId>
                    <artifactId>jsr305</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

That's useful, Jakub! Might be a good idea to provide a release jar for 3.x as well still, to allow downloading the plugin as-is. Next week looks pretty busy, but I'll see if I can get around to it.

@anderseknert I wonder if the right solution is to mark these dependencies as provided -> It needs Guava, but jackson-module-scala_2.13 and obviously also kafka_2.13 are part of the Kafka distro where the authorizer JAR is copied.

That said, as a Maven user who rarely uses Gradle, I have no clue how to do it.

I spent some time looking at this and opened a PR which should fix it. @iMajna if you have time it would be great if you can doublecheck if it addresses your issue.

I figured I left only emoji instead of a comment, my apologise :S.
Yeap, it fixes the issue, thanks a lot! :)

authors: anderseknert iMajna scholzj

repo: anderseknert/opa-kafka-plugin


text:
Support multibye charactor / unicode

Hi,
It seems this plugin doesn't support multibyte charactor, for example 图片。I tried modifying
function source:get_keyword_pattern()
  return [[\w\+]]
end

to [[\k\+]], but failed.
Currently, multibyte charactor is support in buffer source using
sources = cmp.config.sources({
  {name = 'snippy'}, {name = 'nvim_lsp'},
  {name = 'buffer', option = { keyword_pattern = [[\k\+]]}},
  {name = 'path'},
  {name = 'tmux'},
}),

Sorry for the late reply. I've been really busy all day :sweat_smile:
Thanks. I'll do some investigation on this.

I figured out that this is a problem because of the internal Lua string matching functionality.
This can be solved by tapping into the Neovim multibyte APIs. Gotta do a bit of research on that and I'll open a PR with a solution to test.

authors: andersevenrud tkkcc

repo: andersevenrud/cmp-tmux


text:
Bug: "Ladebalken" wird grau wenn SOC-Abfrage fehlschlägt

Wenn während eines Ladevorgangs die SOC-Abfrage keine gültigen Daten liefert (z. B. wegen API-Serverproblemen) wird der SOC-Balken einfach nur grau ohne Text statt den Status "lädt" ohne SOC anzuzeigen.

Das Renault Api taugt wirklich für jede Art von Exceptiontest 😂

authors: andig premultiply

repo: andig/evcc


text:
Module support (specifically R*Tree)

I was wondering if it's possible to use modules for SQLite such as RTree using react-native-sqlite-storage. I wasn't able to find a clear guide.
If possible, it would be nice to document it. I don't mind writing it once I know how to do it.

R*Tree works ootb. Silly me.

Silly me again, it doesn't work on android. On android it doesn't come with the RTree module.

If you are referring to native Android implementation I suggest you raise a PR in cordova-sqlite-storage. I am using pre-built binaries from the owner of that repo.

Yeah so... I solved it by changing a couple of lines in the code. It's about android.database.sqlite. I made my own aar, but had to change some files to do so.
Would you consider adding that to the repo? It means adding your own aar, but allows you to compile it with whatever you want.
Right now I'll fork it, and you can see what changes I made.

https://github.com/RWOverdijk/rn-sqlite
Currently using this in my app and it works well so far. Made some minor changes, too.

If you tell me what you did exactly and how it works will consider for sure... :)

authors: RWOverdijk andpor

repo: andpor/react-native-sqlite-storage


text:
Feature request: work with a cf foundation with self-signed cert

currently i can't use cf mysql with a cf foundation that uses self-signed certs.  would be great if i could turn off certificate validation.  thanks.

i just noticed there appears to already exist a pull request for this.

Hi! Thanks for reaching out.
I just merged the PR and released 1.4.0. Until it's in the repository you can download it from the releases page.
It would be great if you could test the build and close this bug if it solved your issue.

hi andreas.  just tested.  works great with a cf instance with a self-signed cert.  thanks for the rapid turnaround!

authors: andreasf eitansuez

repo: andreasf/cf-mysql-plugin


text:
🛑 Historisch Museum Den Briel is down

In 0d66b67, Historisch Museum Den Briel (https://www.historischmuseumdenbriel.nl) was down:

HTTP code: 502
Response time: 1009 ms

Resolved: Historisch Museum Den Briel is back up in 35b1a17 after 6 minutes.

repo: andreesg/intk-upptime


text:
🛑 Teylers Museum is down

In c69f28d, Teylers Museum (https://www.teylersmuseum.nl) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Teylers Museum is back up in 185e426.


text:
Error in gcc: error: 'struct a_t' has no member named 't'

input:
console.log("Hello world!");
var a = {t: 42}
function getT(a,b,c) { return a.b*c }
console.log(getT({b: 96}, 2, 3))

passed to gcc results in:

definitely a bug, structure name collision. thanks for reporting, I'll fix it!

license: ISC


text:
🛑 letr.app is down

In ac88bb6, letr.app (https://letr.app) was down:

HTTP code: 0
Response time: 0 ms

Resolved: letr.app is back up in 143100f after 15 minutes.

repo: andreruffert/up


text:
🛑 pharmacomms is down

In 2a03307, pharmacomms (https://pharmacomms.tv/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: pharmacomms is back up in cb96ade after 17 minutes.

repo: andrespitt/uptime


text:
🛑 pharmacomms is down

In ab4820e, pharmacomms (https://pharmacomms.tv/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: pharmacomms is back up in 2197600 after 12 minutes.


text:
404 page is unstyled

[1] go to any unknown page
[2] it will be unstyled

just fixed it


text:
[Bug]: Can't release IP Address

Hey @andrewbaxter, awesome project and appreciate your fork! I'm in the early stages of using fly.io and I've noticed that you can't release an IP Address, deleting the resource gives the following error:
│ Error: Error looking up ip address (app [some-random-app-name], addr [])
│
│   with fly_ip.this,
│   on main.tf line 20, in resource "fly_ip" "this":
│   20: resource "fly_ip" "this" {
│
│ Upstream graphql error: Could not find IPAssignment
│ Graphql path: app.ipAddress

Minimal code to replicate
terraform {
  required_providers {
    fly = {
      source = "andrewbaxter/fly"
      version = "0.1.11"
    }
  }
}

provider "fly" {
  fly_api_token = "<redacted>"
}

resource "fly_app" "this" {
  name = "some-random-app-name"
  org  = "your-org-name"

  assign_shared_ip_address = false
}

resource "fly_ip" "this" {
  app    = fly_app.this.name
  type   = "v4"
  region = "global"
}

If you apply the above example, and run the following commands, you should be able to replicate the issue
terraform apply
terraform destroy -target fly_ip.this

Thanks for the report and the test case! I'll try to take a look soon.
I know deleting ips was working before IIRC... the graphql definitions have changed slightly vs flyctl but the existing parameters are still there.  It looks like it adds a new ip address id which
My plan to test is to run flyctl with graphql logging I hacked in and see what it's sending vs what the provider is sending. If it's using the ip address id instead of the ip itself we could add that field I think.

FWIW here's the flyctl code: https://github.com/superfly/flyctl/blob/9255529e9f423e6aca6eba64457187b6aead53fa/internal/command/ips/release.go#L15
I think it uses https://github.com/superfly/fly-go which is (relatively) new.  The release code is here: https://github.com/superfly/fly-go/blob/main/resource_ip_addresses.go#L112
Trying that library might be an option, although it doesn't look like it's doing anything different.

Ah, this is failing during the "read" phase before it makes changes, so it isn't releasing the ip yet.  That was definitely working before... but the situation is complicated by shared ips even if they're not being used.
Error looking up ip address (app [testreleaseip], addr []) - addr is empty, that seems like it's likely the issue.  I think during create maybe we didn't get the ip address?

From TF_LOG=DEBUG terraform apply... ugly, but:
2024-05-11T15:44:17.326+0900 [DEBUG] provider.terraform-provider-fly: HTTP REQUEST: proto=HTTP/1.1 tf_resource_type=fly_ip @module=fly method=POST tf_req_id=32672630-5b11-78f8-166d-afd00394fabc tf_rpc=ApplyResourceChange tf_provider_addr=registry.terraform.io/fly-apps/fly url=https://api.fly.io/graphql @caller=/.../terraform-provider-fly/utils/clients.go:62 body="{\"query\":\"\nmutation AllocateIpAddress ($app: ID!, $region: String, $addrType: IPAddressType!) {\n\tallocateIpAddress(input: {appId:$app,region:$region,type:$addrType}) {\n\t\tipAddress {\n\t\t\tid\n\t\t\ttype\n\t\t\taddress\n\t\t\tregion\n\t\t}\n\t\tapp {\n\t\t\tsharedIpAddress\n\t\t}\n\t}\n}\n\",\"variables\":{\"app\":\"testreleaseip\",\"region\":\"global\",\"addrType\":\"v4\"},\"operationName\":\"AllocateIpAddress\"}" headers="map[Authorization:[Bearer redacted] Content-Type:[application/json]]" timestamp="2024-05-11T15:44:17.325+0900"

2024-05-11T15:44:17.713+0900 [DEBUG] provider.terraform-provider-fly: HTTP RESPONSE: proto=HTTP/1.1 tf_req_id=32672630-5b11-78f8-166d-afd00394fabc @caller=/.../terraform-provider-fly/utils/clients.go:81 @module=fly body="" code="200 OK" headers="map[Cache-Control:[max-age=0, private, must-revalidate] Content-Type:[application/json; charset=utf-8] Date:[Sat, 11 May 2024 06:44:16 GMT] Etag:[W/\"8ffddaf8b1c2734e80406a12f511f85b\"] Fly-Request-Id:[01HXK6AASJ069B96E7D8178HT3-nrt] Fly-Span-Id:[b8dba11cc944322e] Fly-Trace-Id:[529976f56042725edeb07dc90f2ea6ca] Server:[Fly/00e000b6 (2024-05-10)] Strict-Transport-Security:[max-age=31556952] Vary:[Accept-Encoding] Via:[1.1 fly.io] X-Content-Type-Options:[nosniff] X-Download-Options:[noopen] X-Frame-Options:[sameorigin] X-Permitted-Cross-Domain-Policies:[none] X-Request-Id:[90205e4b-d7f5-4260-9a40-d792f8c18f29] X-Runtime:[0.205880] X-Xss-Protection:[1; mode=block]]" tf_provider_addr=registry.terraform.io/fly-apps/fly tf_resource_type=fly_ip method=POST tf_rpc=ApplyResourceChange url=https://api.fly.io/graphql timestamp="2024-05-11T15:44:17.712+0900"

body="" code="200 OK"
Body is empty, which I guess isn't an issue for graphql?

The response type (graphql) is
# Autogenerated return type of AllocateIPAddress
type AllocateIPAddressPayload {
  app: App!

  # A unique identifier for the client performing the mutation.
  clientMutationId: String
  ipAddress: IPAddress!
}

...
ah yup, upstream it says
"""
Autogenerated return type of ReleaseIPAddress.
"""
"""
Autogenerated return type of AllocateIPAddress.
"""
type AllocateIPAddressPayload {
  app: App!

  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String
  ipAddress: IPAddress
}

I guess ipAddress is now nullable? I'm not sure that's the issue here, but if that's the case how is one to identify the ip address that's just been allocated?

Here's what I got from a slightly old flyctl:
2024/05/11 16:07:26 GRAPHQL -> POST HTTP/1.1 https://api.fly.io/graphql
Headers: http.Header{"Accept":[]string{"application/json; charset=utf-8"}, "Authorization":[]string{"Bearer xyz"}, "Content-Type":[]string{"application/json; charset=utf-8"}, "User-Agent":[]string{"flyctl/2023.12.12-master.1702393204"}}
Body:
{"query":"mutation($input: AllocateIPAddressInput!) { allocateIpAddress(input: $input) { ipAddress { id address type region createdAt } } }","variables":{"input":{"appId":"testreleaseip","type":"v4","region":"global"}}}

2024/05/11 16:07:26 GRAPHQL <- POST HTTP/1.1 https://api.fly.io/graphql = 200 OK
Headers: http.Header{"Cache-Control":[]string{"max-age=0, private, must-revalidate"}, "Content-Type":[]string{"application/json; charset=utf-8"}, "Date":[]string{"Sat, 11 May 2024 07:07:26 GMT"}, "Etag":[]string{"W/\"a38248895ce60763c07d8b540371405b\""}, "Fly-Request-Id":[]string{"01HXK7MQMW5TDYQD04DHJDDC90-nrt"}, "Fly-Span-Id":[]string{"c9e8e1e089d747e8"}, "Fly-Trace-Id":[]string{"c1d972c288abd3af3c90b98ceea91ef9"}, "Server":[]string{"Fly/00e000b6 (2024-05-10)"}, "Strict-Transport-Security":[]string{"max-age=31556952"}, "Vary":[]string{"Accept", "Accept-Encoding"}, "Via":[]string{"1.1 fly.io"}, "X-Content-Type-Options":[]string{"nosniff"}, "X-Download-Options":[]string{"noopen"}, "X-Frame-Options":[]string{"sameorigin"}, "X-Permitted-Cross-Domain-Policies":[]string{"none"}, "X-Request-Id":[]string{"2246e232-12b2-4eb3-a229-b4d40f7b3ad8"}, "X-Runtime":[]string{"0.063613"}, "X-Xss-Protection":[]string{"1; mode=block"}}
Body:
{"data":{"allocateIpAddress":{"ipAddress":{"id":"ip_ly4m2nlnkdk9k3oe","address":"66.51.120.222","type":"v4","region":"global","createdAt":"2024-05-11T07:07:26Z"}}}}

I see appId here vs app above.

{"query":"
mutation AllocateIpAddress ($app: ID!, $region: String, $addrType: IPAddressType!) {
	allocateIpAddress(input: {appId:$app,region:$region,type:$addrType}) {
		ipAddress {
			id
			type
			address
			region
		}
		app {
			sharedIpAddress
		}
	}
}
","variables":{"app":"testreleaseip","region":"global","addrType":"v4"},"operationName":"AllocateIpAddress"}

vs
{"query":"mutation($input: AllocateIPAddressInput!) { allocateIpAddress(input: $input) { ipAddress { id address type region createdAt } } }","variables":{"input":{"appId":"testreleaseip","type":"v4","region":"global"}}}

My gut says operationName is unrelated.
I'm not so familiar with graphql but I think the syntax is something like: mutation input {operation(input) { output } }.  AllocateIPAddressInput must be relying on some known mapping, but I imagine the input ids must match up so appId is sent as appId etc.
I think that means the inputs are the same: appId, type, region.  The main difference seems to be output - the terraform provider wants app { sharedIpAddress } in addition to the other fields, while the flyctl one doesn't have that but instead has createdAt.
IIRC we need sharedIpAddress because when you have type v4_shared it creates the ip address as a property of the app not as a new ip address object, but that seems like the most significant difference here.

Tried it with
mutation AllocateIpAddress ($input: AllocateIPAddressInput!) {
	allocateIpAddress(input: $input) {
		ipAddress {
			id
			address
			type
			region
			createdAt
		}
	}
}
","variables":{"input":{"clientMutationId":"","appId":"testreleaseip","type":"v4","region":"global"}},"operationName":"AllocateIpAddress"}

but no change (empty body in response).  That was copied/pasted from upstream, I just added AllocateIpAddress after mutate because otherwise it was complaining about anonymous things (I think that's just a consequence of having all the operations in one file - each one needs a name).

curl -X POST https://api.fly.io/graphql -H 'Content-Type: application/json' -H "Authorization: Bearer abcd" --data '{"query":"mutation AllocateIpAddress ($input: AllocateIPAddressInput!) { allocateIpAddress(input: $input) { ipAddress { id address type region createdAt } } }","variables":{"input":{"clientMutationId":"","appId":"testreleaseip","type":"v4","region":"global"}},"operationName":"AllocateIpAddress"}' works! I got a non-empty body with the ip address id, etc!
It's the same data as above, but I removed all the new lines from the json string... I'm not sure how the graphql library would mis-encode a json string though, I assumed that was escaping issues with how terraform logs things.

It seems to be a common violation in graphql-land: https://github.com/quarkusio/quarkus/issues/17667 https://stackoverflow.com/questions/53469321/correct-format-for-multiline-data-in-curl-query-to-graphql-endpoint

...query\":\"\n certainly looks wrong (newline right after opening quote). My guess is that I'm not just misreading this, it's actually sending mis-escaped json, and the upstream decoder accepted this.  Then they replaced the upstream decoder with something more strict, and now it's refusing the payload but there's an issue in the pipeline and the errors aren't being sent back to the caller.
I looked at the graphqlient code though and Body is string and it gets passed through json.Marshal which shouldn't have any way to get around the escaping.

I dumped the json directly working around TF's logging, and TF was just messing up the quoting it seems:
{"query":"\nmutation AllocateIpAddress ($input: AllocateIPAddressInput!) {\n\tallocateIpAddress(input: $input) {\n\t\tipAddress {\n\t\t\tid\n\t\t\taddress\n\t\t\ttype\n\t\t\tregion\n\t\t\tcreatedAt\n\t\t}\n\t}\n}\n","variables":{"input":{"clientMutationId":"","appId":"testreleaseip","type":"v4","region":"global"}},"operationName":"AllocateIpAddress"}

That looks valid to me.
And running
curl -X POST https://api.fly.io/graphql -H 'Content-Type: application/json' -H "Authorization: Bearer ." --data '{"query":"\nmutation AllocateIpAddress ($input: AllocateIPAddressInput!) {\n\tallocateIpAddress(input: $input) {\n\t\tipAddress {\n\t\t\tid\n\t\t\taddress\n\t\t\ttype\n\t\t\tregion\n\t\t\tcreatedAt\n\t\t}\n\t}\n}\n","variables":{"input":{"clientMutationId":"","appId":"testreleaseip","type":"v4","region":"global"}},"operationName":"AllocateIpAddress"}'

works (exact payload pasted into curl).
I'm stumped, timing issue?

Ahh... I was logging the request body twice instead of the response body the 2nd time :facepalm: ...
2024-05-11T17:27:37.877+0900 [DEBUG] provider.terraform-provider-fly: HTTP RESPONSE: @caller=/.../terraform-provider-fly/utils/clients.go:81 tf_resource_type=fly_ip headers="map[Cache-Control:[max-age=0, private, must-revalidate] Content-Type:[application/json; charset=utf-8] Date:[Sat, 11 May 2024 08:27:37 GMT] Etag:[W/\"5080c85f49f44abdc054faf9df9a4740\"] Fly-Request-Id:[01HXKC7HNP7Z30GC3HPKGJWNS1-nrt] Fly-Span-Id:[c0e6da88ffabfab4] Fly-Trace-Id:[d30cdff2b87deea0abda66d86a41b1e9] Server:[Fly/00e000b6 (2024-05-10)] Strict-Transport-Security:[max-age=31556952] Vary:[Accept-Encoding] Via:[1.1 fly.io] X-Content-Type-Options:[nosniff] X-Download-Options:[noopen] X-Frame-Options:[sameorigin] X-Permitted-Cross-Domain-Policies:[none] X-Request-Id:[919f9678-84bb-4122-b298-1c539276b46c] X-Runtime:[0.172164] X-Xss-Protection:[1; mode=block]]" method=POST tf_provider_addr=registry.terraform.io/fly-apps/fly url=https://api.fly.io/graphql body="{\"data\":{\"allocateIpAddress\":{\"ipAddress\":{\"id\":\"ip_woml9zy03ny20e6y\",\"address\":\"213.188.207.240\",\"type\":\"v4\",\"region\":\"global\",\"createdAt\":\"2024-05-11T08:27:37Z\"}}}}" proto=HTTP/1.1 @module=fly code="200 OK" tf_req_id=cbe092f4-65c0-7983-abb2-e2aeaa89e61f tf_rpc=ApplyResourceChange timestamp="2024-05-11T17:27:37.877+0900"

And yep, it just wasn't storing the address right during the create operation.  I just re-tested and create and delete work fine.

I fixed it here: https://github.com/andrewbaxter/terraform-provider-fly/commit/867b3722338982361a164eaec3a7323dd8543e12
And pushed it in https://github.com/andrewbaxter/terraform-provider-fly/releases/tag/v0.1.12 - can you try that and let me know if it fixes the issue?

I fixed it here: 867b372
And pushed it in v0.1.12 (release) - can you try that and let me know if it fixes the issue?

Awesome! I submitted this bug report just before I went to sleep, I never expected to wake up to this resolved 😂 I need to run a couple of errands this morning but I'll check it out in a few hours. Thanks for your hard work!

Oh yeah, great! And no rush! It felt like a rather core behavior, and once I started poking at it I couldn't stop...

I still get the same error:
terraform init -upgrade

Initializing the backend...

Initializing provider plugins...
- Finding andrewbaxter/fly versions matching "0.1.13"...
- Installing andrewbaxter/fly v0.1.13...
- Installed andrewbaxter/fly v0.1.13 (self-signed, key ID E3B71A86562F4FC3)

...
terraform destroy --auto-approve
fly_app.this: Refreshing state... [id=my-dirien-app2]
fly_ip.this: Refreshing state... [id=ip_3jwv94dn4459p506]
╷
│ Error: Error looking up ip address (app [my-dirien-app2], addr [])
│
│   with fly_ip.this,
│   on main.tf line 17, in resource "fly_ip" "this":
│   17: resource "fly_ip" "this" {
│
│ Upstream graphql error: Could not find IPAssignment
│ Graphql path: app.ipAddress
╵

@dirien I can dig in more in a bit, but can you check your state file and see if the "address" field in the ip resource is properly populated? IIRC this was actually a bug in create rather than delete -- that is, when the resource was created it didn't properly store the address.
So I think for existing resources you'll need to manually fix up the state file with the ip address...  If that's correct, sorry, I should have written a TLDR after my stream of consciousness dump above.

No not at all! That was important information I forgot to add, so thanks!

authors: andrewbaxter dirien kieranbrown

repo: andrewbaxter/terraform-provider-fly


text:
Fix SSR internal state sync

Fixed SSR syncing internal state (not JSON serialisable) to client
Updated Nuxt example
Updated packages

Fixes #59

repo: andrewcourtice/harlem


text:
Add license to gemspec, is MIT

Per https://github.com/andrewculver/koudoku/issues/30

Where do you get the information that it is MIT?

It's in the repo https://github.com/andrewculver/koudoku/blob/3ad61e3bf390d4e098b57934c25bc20c86e93944/MIT-LICENSE  I don't know if it matters that it's probably from a template and it sounds like you didn't notice it.   Would you like me to change it?  The vast majority of rubygems are MIT, fwiw, which is why the templates default to it.

Awesome, thanks! :rainbow:

repo: andrewculver/koudoku


text:
overall package documentation

I'm hoping that I did this correctly-- I want to be able to type ?oilabs and have the main page come up.

I wasn't able to get the .Rd to be created by running devtools::document. What about you?

authors: AmeliaMN andrewpbray

repo: andrewpbray/oilabs


text:
SSL & Let's Encrypt

I updated the software to get the SSL capability, but was never able to generate a certificate that Chrome on Android was happy with. I think it might have worked if I'd changed the setting to accept all SSL certificates, but that defeats the purpose of using SSL in the first place.
So, I decided to try certificates from Let's Encrypt. The good news is that they're free, but the bad news is that you have to renew them every 90 days.  My initial source of information was here: https://pimylifeup.com/raspberry-pi-ssl-lets-encrypt/
First, edit config.json and set use_https to false.
Since I'm running Raspbian Stretch on the Pi Zero that's running the software, I was able to start with step 5.  I installed the CertBot software using the "Everything Else" step.
In step 6, I port forwarded port 80 from the router to port 8081 and port 443 to port 8444. I have a domain name set up with DynDns so that I can access the server from outside my LAN.  You need to have a domain name set up for the CertBot software to work.
Since we're not using Apache here, I used step 8b with the following command:
sudo certbot certonly --webroot -w /home/pi/garage-door-controller/www -d mydomain.homeip.net
You'll enter a few things the first time you run this, but afterwards, the certificates should renew without further input from you.  When the first certificate is generated, you should get output such as:

Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/mydomain.homeip.net/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/mydomain.homeip.net/privkey.pem
Your cert will expire on 2019-05-11. To obtain a new or tweaked
version of this certificate in the future, simply run certbot
again. To non-interactively renew all of your certificates, run
"certbot renew"

Now, edit the config.json file again, setting the use_https flag to true, and add the certificate and key paths as appropriate in the site section of the configuration file.
Updating:
Before updating the certificates, make sure use_https is set to false and port 80 is still forwarded to your Pi. CertBot will fail if it cannot connect port 80 to port 8081 on the Pi.
To test updating the certificates without actually doing it, use this command:
sudo certbot renew --dry-run
To actually renew the certificates, use this command:
sudo certbot renew
And then turn use_https back on in the config.json file.

Some further notes:
I don't believe it actually uses port 443 during the process of generating the certificate. You'll need it forwarded to the Pi to port 8444 to use https, however.
Installing certbot also installs a cron job to run the certificate renewal process twice per day. Certbot actually only renews the certificates about 30 days before they expire.  Since port 80 won't be available when you set use_https = true in the configuration file, you might as well move the file.  As root, move /etc/cron.d/certbot somewhere else, or delete it.  If port 80 were always available on the web server we're using here, you could leave it in place.
I actually have two web servers running on different machines, and access them using port forwarding. I run an Apache server that has port 80 available on the other server and generate SSL certificates for it as well.  If you're doing something like this, you can generate the certificates on a PC, for example, and copy the resulting certificates to the Pi - instead of generating them on the Pi as well.  I did this, and set up a cron job on the server to copy the certificates to the Pi using secure copy.

Thinking out loud here.  Could you add a cron job to switch the configuration file to port 80 prior to the cron job for the certificate renewal and then another to switch it back afterwards so it is fully automated?

You could. I have another server where I get credentials, and I have a
cron job on that server to copy them to the garage door controller Pi.
I actually copy the key file on a weekly basis and just let the server
update the key whenever it feels a need to do so.
On 2020-12-15 20:22, commputethis wrote:

Thinking out loud here. Could you add a cron job to switch the
configuration file to port 80 prior to the cron job for the certificate
renewal and then another to switch it back afterwards so it is fully
automated?
--
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub [1], or unsubscribe
[2].

Links:
[1]
https://github.com/andrewshilliday/garage-door-controller/issues/106#issuecomment-745701715
[2]
https://github.com/notifications/unsubscribe-auth/AKGHDBUUDGD5R7M4GH2LZ2DSVADVHANCNFSM4GWNB4IA

I like that option much better.

authors: NCAvian commputethis

repo: andrewshilliday/garage-door-controller


text:
E/AsyncHttpRH: User-space exception detected! in App Bundle Only

I am having an issue where if I deploy my app using the android-async-http library as an apk. The app works perfectly.
If I then deploy the App as a bundle through Google Play for testing I get the following error
java.lang.NullPointerException: Attempt to invoke interface method 'int java.util.List.size()' on a null object reference
at au.com.traveldaily.pharmacydaily.b.a(Unknown Source:11)
at au.com.traveldaily.pharmacydaily.f.d$a.onSuccess(Unknown Source:69)
at com.loopj.android.http.AsyncHttpResponseHandler.handleMessage(Unknown Source:164)
at com.loopj.android.http.AsyncHttpResponseHandler$ResponderHandler.handleMessage(Unknown Source:2)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:205)
at android.app.ActivityThread.main(ActivityThread.java:6991)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:884)
I am using version 1.4.10 is there something I need to do differently when deploying as a Bundle.

Well since the issue raises from your code (second level, Unknown Source:11) I'd guess there is some discrepancy between your testing and production environment, and you did not validate the data correctly, before passing to "au.com.traveldaily.pharmacydaily.b.a"
Putting up "on hold" for this issue, if you don't provide more info from debugging in 2 weeks, this ticket will be closed.

Thank you for your help.
The issue was in how the build was created, it is now resolved

authors: caevan smarek

repo: android-async-http/android-async-http


text:
[问答]RecyclerView第二个Item卡顿

用Recyclerview做视图列表，每一个Item比较长，上下滑动时，第二个Item感觉有点卡。但是后面的就好了？请问这个时由于Recyclerview本身视图缓存的原因吗？另外如何解决第二个Item略微卡顿的问题？

item比较长的话建议把每个item再重新分块，例如facebook的滑动列表，每一个item又分成了好几个小的item，这样更好的复用item和减轻每个item创建

@hanhailong  这个是靠谱的做法,实践过, 效果比较明显.

authors: hanhailong ronanhardiman wuchangfeng

repo: android-cn/android-discuss


text:
Inconsistency in flow of player states when seeking from notification and material slider.

Basic Info: I am using MediaSessionService and MediaController for Eight App. All of our audio is in m3u8 format.
Case 1: User seeks using the seekbar in notification, the flow of states go like this:
DISCONTINUITY_REASON_SEEK -> STATE_BUFFERING -> STATE_READY and then continues playing from seek position.
Case 2: User seeks from UI. Below is the screenshot of the UI of player.

The seekbar in this UI uses material slider. When user seeks using this, the flow goes like this:
DISCONTINUITY_REASON_SEEK -> STATE_BUFFERING -> DISCONTINUITY_REASON_SEEK[called multiple times] -> STATE_READY
Any explanation on why is this happening?

I found out the issue, it does not work wit material slider. Using Seekbar fixes the issue.

repo: androidx/media


text:
After adding media, calling prepare() does not move the player out of playbackstate = ENDED

Media3 Version
1.0.0-rc02
Devices that reproduce the issue
Pixel 3
Devices that do not reproduce the issue
No response
Reproducible in the demo app?
Not tested
Reproduction steps

addMediaItems to controller
setPlayWhenReady = true
prepare
They will start playing
Wait for playback to finish
Playbackstate is now 4
addMediaItems once more
setPlayWhenReady = true
prepare
They don't play

Expected result
It plays each time
Actual result
--
Media
--
Bug Report

[ ] You will email the zip file produced by adb bugreport to dev.exoplayer@gmail.com after filing this issue.

This can be "fixed" by calling seekTo(0,0L) on the controller.
But if shuffle mode is enabled it will cause the playlist always to start with the first item.

But if shuffle mode is enabled it will cause the playlist always to start with the first item.

If you call seekTo(/* windowIndex=*/ 0, /* positionMs= */ 0L), then the player starts at windowIndex 0 not at the index 0 of the shuffle sequence.
To seek to the first window of the shuffle sequence you can do:
player.getCurrentTimeline();
int windowIndex = timeline.getFirstWindowIndex(/* shuffleModeEnabled= */ true);
seekTo(windowIndex, /* positionMs= */ C.TIME_UNSET)

I'm closing this issue as it seem answered. Please reopen if you think something needs to be added.

Ok, that answers it. Maybe its something that could be added to the docs. I'll open a PR

But if shuffle mode is enabled it will cause the playlist always to start with the first item.

If you call seekTo(/* windowIndex=*/ 0, /* positionMs= */ 0L), then the player starts at windowIndex 0 not at the index 0 of the shuffle sequence.
To seek to the first window of the shuffle sequence you can do:
player.getCurrentTimeline();
int windowIndex = timeline.getFirstWindowIndex(/* shuffleModeEnabled= */ true);
seekTo(windowIndex, /* positionMs= */ C.TIME_UNSET)

I'm closing this issue as it seem answered. Please reopen if you think something needs to be added.

Unfortunately I have to report that this does not work.
    var isShufflePlayEnabled: Boolean
        get() = controller?.shuffleModeEnabled == true
        set(enabled) {
            controller?.shuffleModeEnabled = enabled
        }

    @Synchronized
    fun addToPlaylist(
        songs: List<Track>,
        cachePermanently: Boolean,
        autoPlay: Boolean,
        shuffle: Boolean
    ) {

        if (shuffle) isShufflePlayEnabled = true
        controller?.addMediaItems(insertAt, mediaItems)

        prepare()

        // Playback doesn't start correctly when the player is in STATE_ENDED.
        // So we need to call seek before (this is what play(0,0)) does.
        // We can't just use play(0,0) then all random playlists will start with the first track.
        // This means that we need to generate the random first track ourselves.
        if (autoPlay) {
            debugShuffleState(isShufflePlayEnabled)
            val start = controller?.currentTimeline?.getFirstWindowIndex(isShufflePlayEnabled) ?: 0
            play(start)
        }
    }

This is our current code. But if shuffle play is enabled before adding the items, the items are not shuffled after insertion. Meaning that getFirstWindowIndex will be 0 anyway...
Console:
13:43:34.715 PlaybackStateSerializer   org.moire.ultrasonic.debug  I  Serialized currentPlayingIndex: -1, currentPlayingPosition: 0, shuffle: true
13:43:34.787 MediaPlayerController     org.moire.ultrasonic.debug  D  Shuffle: windowIndex: 0, at: 0
13:43:34.788 MediaPlayerController     org.moire.ultrasonic.debug  D  Shuffle: windowIndex: 1, at: 1
13:43:34.788 MediaPlayerController     org.moire.ultrasonic.debug  D  Shuffle: windowIndex: 2, at: 2
13:43:34.788 MediaPlayerController     org.moire.ultrasonic.debug  D  Shuffle: windowIndex: 3, at: 3
13:43:34.789 MediaPlayerController     org.moire.ultrasonic.debug  D  Shuffle: windowIndex: 4, at: 4
13:43:34.789 MediaPlayerController     org.moire.ultrasonic.debug  D  Shuffle: windowIndex: 5, at: 5
13:43:34.789 MediaPlayerController     org.moire.ultrasonic.debug  D  Shuffle: windowIndex: 6, at: 6
13:43:34.789 MediaPlayerController     org.moire.ultrasonic.debug  D  Shuffle: windowIndex: 7, at: 7
13:43:34.790 MediaPlayerController     org.moire.ultrasonic.debug  D  Shuffle: windowIndex: 8, at: 8
13:43:34.790 MediaPlayerController     org.moire.ultrasonic.debug  D  Shuffle: windowIndex: 9, at: 9
13:43:34.790 MediaPlayerController     org.moire.ultrasonic.debug  D  Shuffle: windowIndex: -1, at: 10
13:43:35.244 PlaybackStateSerializer   org.moire.ultrasonic.debug  I  Serialized currentPlayingIndex: 0, currentPlayingPosition: 0, shuffle: true

As you can see I call debugShuffleState() to log the current shuffle windows just before calling getFirstWindowIndex and seekTo(), but at this point its not shuffled.
Afterwards two things might happen. Either it continues in a shuffled way (with the problems I mention in the other bug) or often it refuses to play after the first song at all.

authors: marcbaechinger tzugen


text:
Can't run lib-extractor unit test on latest main branch

I'm running lib-extractor unit test, e.g. mp4Sample(), mp4SampleWithAc3Track(), mp4SampleWithAc4Track() in Mp4ExtractorTest.java.
After I click the green arrow to run the specific test case, I got below output:

Task :lib-extractor:testDebugUnitTest FAILED
FAILURE: Build failed with an exception.

What went wrong:
Execution failed for task ':lib-extractor:testDebugUnitTest'.

No tests found for given includes: [androidx.media3.extractor.mp4.Mp4ExtractorTest.mp4SampleWithAc4Track](--tests filter)

Try:

Run with --stacktrace option to get the stack trace.
Run with --info or --debug option to get more log output.
Run with --scan to get full insights.

Get more help at https://help.gradle.org
BUILD FAILED in 4s
148 actionable tasks: 1 executed, 147 up-to-date
10:25:25 AM: Execution finished ':lib-extractor:testDebugUnitTest --tests "androidx.media3.extractor.mp4.Mp4ExtractorTest.mp4SampleWithAc4Track"'.

Do you have any suggestion on how to fix this issue?
Android Media Version: latest code on main branch
Device: Pixel 5 with Android 13
Development Environment 1:

Android Studio Version: Giraffe 2022.3.1 Patch 4
AGP Version: 8.0.1
Gradle JDK: jbr-17 (I didn't change the setting in Android Studio)

Development Environment 2:

Android Studio Version: Hedgehog 2023.1.1
AGP Version: 8.0.1
Gradle JDK: jbr-17 (I didn't change the setting in Android Studio)

The purpose of mine is to add a new test case and test asset for pull request https://github.com/androidx/media/pull/875. Before that, I'd like to make sure my dev environment is correct. Previously I can do the similar thing for ExoPlayer 2.x but I don't know why I failed in running a unit test for Media 3.  Any help is appreciated.

Three more findings:

If I run all the tests in Mp4ExtractorTest together (144 cases, click the green arrow beside "public final class Mp4ExtractorTest {"), this issue disappears. Does it mean I can't run single test case in Media 3? I remember I can do it in ExoPlayer 2.x.

If I run all the tests in Mp4ExtractorTest, all cases will fail due to line-break characters. For example,

Actual data doesn't match dump file: extractordumps/mp4/sample_18byte_nclx_colr.mp4.0.dump
To update the dump file, change DumpFileAsserts#DUMP_FILE_ACTION to WRITE_TO_LOCAL (for Robolectric tests) or WRITE_TO_DEVICE (for instrumentation tests) and re-run the test.
diff (-expected +actual): (line contents match, but line-break characters differ)
  at androidx.media3.test.utils.DumpFileAsserts.assertOutput(DumpFileAsserts.java:172)
  at androidx.media3.test.utils.DumpFileAsserts.assertOutput(DumpFileAsserts.java:99)
  at androidx.media3.test.utils.ExtractorAsserts.assertOutput(ExtractorAsserts.java:461)
  at androidx.media3.test.utils.ExtractorAsserts.assertBehavior(ExtractorAsserts.java:404)
  at androidx.media3.test.utils.ExtractorAsserts.assertBehavior(ExtractorAsserts.java:357)
  at androidx.media3.extractor.mp4.Mp4ExtractorTest.mp4Sample18ByteNclxColr(Mp4ExtractorTest.java:119)

Is it normal? How to fix it?

If I change
private static final @DumpFilesAction int DUMP_FILE_ACTION = COMPARE_WITH_EXISTING;
to
private static final @DumpFilesAction int DUMP_FILE_ACTION = WRITE_TO_DEVICE;
I can't find dump files in folder /storage/emulated/0/Android/data/androidx.media3.demo.main.
If I change to
private static final @DumpFilesAction int DUMP_FILE_ACTION = WRITE_TO_LOCAL;
everything is OK.

Three more findings:

If I run all the tests in Mp4ExtractorTest together (144 cases, click the green arrow beside "public final class Mp4ExtractorTest {"), this issue disappears. Does it mean I can't run single test case in Media 3? I remember I can do it in ExoPlayer 2.x.
If I run all the tests in Mp4ExtractorTest, all cases will fail due to line-break characters. For example,

Actual data doesn't match dump file: extractordumps/mp4/sample_18byte_nclx_colr.mp4.0.dump
To update the dump file, change DumpFileAsserts#DUMP_FILE_ACTION to WRITE_TO_LOCAL (for Robolectric tests) or WRITE_TO_DEVICE (for instrumentation tests) and re-run the test.
diff (-expected +actual): (line contents match, but line-break characters differ)
  at androidx.media3.test.utils.DumpFileAsserts.assertOutput(DumpFileAsserts.java:172)
  at androidx.media3.test.utils.DumpFileAsserts.assertOutput(DumpFileAsserts.java:99)
  at androidx.media3.test.utils.ExtractorAsserts.assertOutput(ExtractorAsserts.java:461)
  at androidx.media3.test.utils.ExtractorAsserts.assertBehavior(ExtractorAsserts.java:404)
  at androidx.media3.test.utils.ExtractorAsserts.assertBehavior(ExtractorAsserts.java:357)
  at androidx.media3.extractor.mp4.Mp4ExtractorTest.mp4Sample18ByteNclxColr(Mp4ExtractorTest.java:119)

Is it normal? How to fix it?

If I change
private static final @DumpFilesAction int DUMP_FILE_ACTION = COMPARE_WITH_EXISTING;
to
private static final @DumpFilesAction int DUMP_FILE_ACTION = WRITE_TO_DEVICE;
I can't find dump files in folder /storage/emulated/0/Android/data/androidx.media3.demo.main.
If I change to
private static final @DumpFilesAction int DUMP_FILE_ACTION = WRITE_TO_LOCAL;
everything is OK.

For above item 2, it is due to EOL conversion. I have solved it. Please ignore this part. Thanks.

The extractor tests are mostly parameterized with ParameterizedRobolectricTestRunner. Unfortunately there's a bug (possibly in Android Studio or Android Gradle Plugin?) that means it's not possible to run a single method of these tests. This is tracked internally as b/155773419. You can also file an externally visible bug here: https://developer.android.com/studio/report-bugs (if you do this, please reply here with a link, so I can link it to the internal one).
I don't believe this is a media3-specific issue, I expect you will see the same behaviour on the tip of the exoplayer dev-v2 branch. It's possible that last time you were working on these tests either Android Studio/AGP wasn't buggy in this way, or it was before google/ExoPlayer@cfa8e19 which switched to using parameterization.
The different WRITE_ values of DUMP_FILE_ACTION are intended to be used for Robolectric (WRITE_TO_LOCAL) and instrumentation (WRITE_TO_DEVICE) - since there isn't a 'device' for Robolectric tests. Mp4ExtractorTest is a Robolectric test, so it's expected that WRITE_TO_LOCAL is the one that works.

@icbaker , it's very clear! Everything can be explained now. I'll submit an external bug tomorrow.

@icbaker, I have created the external bug at https://issuetracker.google.com/issues/316040980.
And as you said, I ran single unit test case long ago (About Feb, 2020, https://github.com/google/ExoPlayer/pull/6971), which is actually before using parameterization ([google/ExoPlayer@cfa8e19], Apr, 2020)

Thanks, I'll close this issue since there's no changes planned in the media3 library for this.


text:
Update data.sql

US #1: add horse names in database

/tina - can you have a look at this?

/tina - done


text:
git rev-parse returns non-translated path with -c args

wslgit rev-parse --show-toplevel

This returns translated path
git -c core.quotepath=false -c color.ui=false rev-parse --show-toplevel

This returns non-translated unix path

Thanks for your report and your PR.
The changes you made in the PR look fine. I'll check and merge it when I have some time.


text:
"while 1" --> "while True"

This is python, not C

Ya, I believe I read long ago that while 1: was faster in earlier versions of Python. I just tested locally and it looks like both are the same. Merging. Thanks!

authors: andymccurdy jeffwidman

repo: andymccurdy/redis-py


text:
Remove the work around for noUnusedVariable

@angelozerr the implementation is currently implementing a workaround for an issue with the tslint unusedVariable rule (https://github.com/angelozerr/tslint-language-service/blob/master/src/index.ts#L171).
This issue has been addressed and the workaround should be deleted and a new version of the node module published.

@egamma  do we keep this code for old version of tslint?

@angelozerr good point. We can keep the code but change the default behavior so that disableNoUnusedVariableRule is off by default. Another solution to make the default tslint version specific.
The setting is mentioned in the docs and this should also be updated.

I wouldn't disable it so soon, because I still see some problems with this rule.
It's not exactly the same as before, but as soon as I enable it, vscode becomes unable to derive the types of elements in complex code (everything becomes any).
Anybody noticed the same? (I'm using tslint-language-service configured in the tsconfig.json, without the vnext tslint extension and everything is working as expected except for this).

@victornoel what version of tslint are you using?

@egamma I've had some issues that sounds similar to what @victornoel said. But mostly, sometimes when I open files it seems like TS can no longer find modules. Even though the modules are installed and the code compiles without errors.

If I remove "disableNoUnusedVariableRule": false, then the issue above no longer occurs.
tslint: 5.7.0
tslint-lanugage-service: 0.9.6
typescript: 2.3.4
{
  "compileOnSave": false,
  "compilerOptions": {
    "outDir": "./dist/out-tsc",
    "baseUrl": "src",
    "strict": true,
    "sourceMap": true,
    "declaration": false,
    "moduleResolution": "node",
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "target": "es5",
    "typeRoots": [
      "node_modules/@types"
    ],
    "lib": [
      "es2016",
      "dom"
    ],
    "plugins": [
      {
        "name": "tslint-language-service",
        "alwaysShowRuleFailuresAsWarnings": true,
        "disableNoUnusedVariableRule": false
      }
    ]
  }
}

@egamma tslint 5.7.0, ts 2.5.2.
@csvn yep, I also had this one, but the problem was coming from angular-language-service apparently… ! but maybe it was a mix of the two? ^^

(I tested latest ts 2.5.3 too, it is the same)

and of course there is zero error log that can explain where lies the problem, if you know how I can investigate, I will do it!

@victornoel I disabled all Angular VS code extensions, deleted @angular/language-service from node_modules, and restarted chrome. This did not help with the "Cannot find module ..." error. Can you elaborate about the issue coming from @angular/language-service? I can't find anything related to Angular with this.

@csvn it is tricky to really know… and actually, know that you ask, maybe I'm confusing things and it was caused by disableNoUnusedVariableRule. In any case, if disabling the rule (aka setting the option to false), fixes the problem, I wouldn't try to look for more.
I don't recommend removing @angular/language-service at all, even though anyway it is really used if you have the vscode angular language service loaded I think… (but this extension doesn't always work well in complex projects…).
Anyway, to get back to the question of disableNoUnusedVariableRule, there is something fishy there and when I set it to false, vscode really gets crazy with types in some cases.
I would like to debug it but I couldn't find how ^^

I was too optimistic, given this discussion in https://github.com/palantir/tslint/pull/2763#issuecomment-333235157 we should NOT remove the workaround and keep the setting and its default.
I'll close this issue.

@victornoel the development setup to debug issues can be found here https://github.com/angelozerr/tslint-language-service#development-setup

authors: angelozerr csvn egamma victornoel

repo: angelozerr/tslint-language-service


text:
Missing IPv6 default route after running the script

After running the script IPv6 stops working on AWS EC2 instance: ping6 google.com returns "Network is unreachable"; inspecting IPv6 routes shows that the default route has disappeared.
To Reproduce
Steps to reproduce the behavior:

Set up an ec2 instance with ipv6 address etc
SSH to it
Run ping6 google.com on the server (works)
Run ip -6 route, see the defaut route
Run the script (all default choices, except for dns = 1)
Run ping6 google.com on the server again, see that "network is unreachable"
Run ip -6 route, see the absense of the default route

Expected behavior
ping6 on the server should continue to work
Server:

OS: Amazon Linux 2
Hosting provider: AWS

Additional context
Manually re-adding the default route temporarily fixes the problem.

An ip -r before and after would be useful.

[ec2-user@ip-172-31-47-233 ~]$ ip -6 route
unreachable ::/96 dev lo metric 1024 error -113 pref medium
unreachable ::ffff:0.0.0.0/96 dev lo metric 1024 error -113 pref medium
unreachable 2002:a00::/24 dev lo metric 1024 error -113 pref medium
unreachable 2002:7f00::/24 dev lo metric 1024 error -113 pref medium
unreachable 2002:a9fe::/32 dev lo metric 1024 error -113 pref medium
unreachable 2002:ac10::/28 dev lo metric 1024 error -113 pref medium
unreachable 2002:c0a8::/32 dev lo metric 1024 error -113 pref medium
unreachable 2002:e000::/19 dev lo metric 1024 error -113 pref medium
2a05:d018:eee:1533:cea3:8b0d:d702:9b86 dev eth0 proto kernel metric 256 expires 401sec pref medium
2a05:d018:eee:1533::/64 dev eth0 proto kernel metric 256 pref medium
unreachable 3ffe:ffff::/32 dev lo metric 1024 error -113 pref medium
fe80::/64 dev eth0 proto kernel metric 256 pref medium
default via fe80::1414:dfff:fe00:3 dev eth0 proto ra metric 1024 expires 1791sec hoplimit 255 pref medium

And after script is executed, the default route is gone:
[ec2-user@ip-172-31-47-233 ~]$ ip -6 route
unreachable ::/96 dev lo metric 1024 error -113 pref medium
unreachable ::ffff:0.0.0.0/96 dev lo metric 1024 error -113 pref medium
unreachable 2002:a00::/24 dev lo metric 1024 error -113 pref medium
unreachable 2002:7f00::/24 dev lo metric 1024 error -113 pref medium
unreachable 2002:a9fe::/32 dev lo metric 1024 error -113 pref medium
unreachable 2002:ac10::/28 dev lo metric 1024 error -113 pref medium
unreachable 2002:c0a8::/32 dev lo metric 1024 error -113 pref medium
unreachable 2002:e000::/19 dev lo metric 1024 error -113 pref medium
2a05:d018:eee:1533:cea3:8b0d:d702:9b86 dev eth0 proto kernel metric 256 expires 412sec pref medium
2a05:d018:eee:1533::/64 dev eth0 proto kernel metric 256 pref medium
unreachable 3ffe:ffff::/32 dev lo metric 1024 error -113 pref medium
fd42:42:42:42::/112 dev tun0 proto kernel metric 256 pref medium
fe80::/64 dev eth0 proto kernel metric 256 pref medium
fe80::/64 dev tun0 proto kernel metric 256 pref medium

I not quite sure how that route is added initially. I guess via NDP? But whatever adds it stops working. Re-adding this route manually helps.

And with -resolve:
[ec2-user@ip-172-31-46-125 ~]$ ip -r -6 route
unreachable ::/96 dev lo metric 1024 error -113 pref medium
unreachable ::ffff:0.0.0.0/96 dev lo metric 1024 error -113 pref medium
unreachable 2002:a00::/24 dev lo metric 1024 error -113 pref medium
unreachable 2002:7f00::/24 dev lo metric 1024 error -113 pref medium
unreachable 2002:a9fe::/32 dev lo metric 1024 error -113 pref medium
unreachable 2002:ac10::/28 dev lo metric 1024 error -113 pref medium
unreachable 2002:c0a8::/32 dev lo metric 1024 error -113 pref medium
unreachable 2002:e000::/19 dev lo metric 1024 error -113 pref medium
ip-172-31-46-125.eu-west-1.compute.internal dev eth0 proto kernel metric 256 expires 392sec pref medium
2a05:d018:eee:1533::/64 dev eth0 proto kernel metric 256 pref medium
unreachable 3ffe:ffff::/32 dev lo metric 1024 error -113 pref medium
fe80::/64 dev eth0 proto kernel metric 256 pref medium
default via gateway dev eth0 proto ra metric 1024 expires 1793sec hoplimit 255 pref medium

after:
[ec2-user@ip-172-31-46-125 ~]$ ip -r -6 route
unreachable ::/96 dev lo metric 1024 error -113 pref medium
unreachable ::ffff:0.0.0.0/96 dev lo metric 1024 error -113 pref medium
unreachable 2002:a00::/24 dev lo metric 1024 error -113 pref medium
unreachable 2002:7f00::/24 dev lo metric 1024 error -113 pref medium
unreachable 2002:a9fe::/32 dev lo metric 1024 error -113 pref medium
unreachable 2002:ac10::/28 dev lo metric 1024 error -113 pref medium
unreachable 2002:c0a8::/32 dev lo metric 1024 error -113 pref medium
unreachable 2002:e000::/19 dev lo metric 1024 error -113 pref medium
ip-172-31-46-125.eu-west-1.compute.internal dev eth0 proto kernel metric 256 expires 382sec pref medium
2a05:d018:eee:1533::/64 dev eth0 proto kernel metric 256 pref medium
unreachable 3ffe:ffff::/32 dev lo metric 1024 error -113 pref medium
fd42:42:42:42::/112 dev tun0 proto kernel metric 256 pref medium
fe80::/64 dev eth0 proto kernel metric 256 pref medium
fe80::/64 dev tun0 proto kernel metric 256 pref medium

Interesting, thanks for the report!

Same for me. Cannot login via IPV6 after installation

Same for me. Cannot login via IPV6 after installation

This issue also happens using Debian 10 at Scaleway Dedibox. This provider requires manual config to have ipv6 working at their servers. Uninstalling the VPN server ipv6 works again. I tested at Scaleway Elements with same os and there works fine. I think this issue can be related to some hosting providers

authors: Sleepyowl angristan asgardius iEddie-cmd

repo: angristan/openvpn-install


text:
Check if gantt has rendered after data changes

api.core.on.rendered is called when the chart is fully rendered the first time only. How can I know if the chart has finished rendering after the data changes? Currently, api.data.on.change fires before the new data is rendered.

wrap the implementation of api.data.on.change listener in a $timeout call.
It will be called during the next $digest cycle, after rendering of the data. That's exactly the way we do to implement api.core.on.rendered, based on api.core.on.ready, and there's no more clean solution in AngularJS.

@spinningarrow Does this solve your issue ?

Yes it does; thanks!

authors: Toilal spinningarrow

repo: angular-gantt/angular-gantt


text:
Slider with the input directive not working

Hello,
I am new to angularjs and also to the rz slide, have implemented rzslider for one of the project with the input value.
https://jsfiddle.net/manasanmurthy/L3zjhros/
Slider have no issues, however the min value of slider is 1000 and even if i enter 100 in the input model slider accepts it. How do i restrict the input to only accept the values in range?

You might want to try setting the enforceRange to true.
However, your demo isn't working so I can't really help more...

Sorry, here is the demo: http://jsfiddle.net/manasanmurthy/277t4jLv/

It's not working:

please use this http://jsfiddle.net/manasanmurthy/huf0zg8b/

As I said, use enforceRange: http://jsfiddle.net/xn1rvh57/

Awesome. Thanks

This doesn't allow me to enter manual values which is in range also, like 3000.

Yes this is the issue with enforceRange if you start typing 3000, then you will get 3, 30, 300 which are not in the range and so get truncated.
What you can do is to wrap your input in a directive that only change the model value after a timeout.

Thanks.
Can you give me one simple example of what you are suggesting?

Basically, you watch the change event of your input, and set the model value after a timeout... So let's say this is the listener attached to your input:
vm.onChange = function() {
    $timeout(function() {
       vm.modelValue = vm.inputValue
    }, 1000) // will fire after one second
}

But it's probably better to simply update the model value on the blur event....

This ng-model-options="{ updateOn: 'blur' }" ?
Do we have any options to update on "enter" as well?

yes this option is probably OK for ng-model... ;)
I don't know for enter, I never really used the ng-model-options

authors: NM-Manasa ValentinH

repo: angular-slider/angularjs-slider


text:
Angular 16 zone.js:175 Uncaught TypeError: el.setAttribute is not a function

hi ive followed the introduction and i have the following error on angular 16, ive tried both 2.0.0-beta42 and 1.10.7
the error:
zone.js:175 Uncaught TypeError: el.setAttribute is not a function
at EmulatedEncapsulationDomRenderer2.setAttribute (platform-browser.mjs:591:16)
at EmulatedEncapsulationDomRenderer2.applyToHost (platform-browser.mjs:753:14)
at DomRendererFactory2.createRenderer (platform-browser.mjs:459:22)
at AnimationRendererFactory.createRenderer (animations.mjs:139:40)
at NgtRendererFactory.createRenderer (angular-three.mjs:2013:63)
at createRootComponentView (core.mjs:13132:54)
at ComponentFactory.create (core.mjs:13016:35)
at ViewContainerRef.createComponent (core.mjs:23220:47)
at angular-three.mjs:2558:40
at timer (zone.js:2355:41)

I believe you need to be on Angular 18+

I can't reproduce this anymore on latest version. Please follow the instruction (https://angularthree.org/core/getting-started/first-scene/) again and open a new issue if you still run into issues. Thanks

authors: RyannGalea nartc noamamir

repo: angular-threejs/angular-three


text:
fixed bower package name

This should resolve #567

Merged, please see #567 for more details.

authors: Voles itsjustcon

repo: angular-ui-tree/angular-ui-tree


text:
Suggestion list disappears on scrolling when react autosuggest is used in angular ui bootstrap modal

The suggestion list rendered by the react autosuggest component disappears on scrolling the suggestion list using the mouse left click when the autosuggest component is used in a angular ui bootstrap modal popup. This issue is replicated in Chrome, Firefox as well as IE11.
React autosuggest component used is:
https://github.com/moroshko/react-autosuggest

@shreyabharadwaj, pretty sure this isn't the right forum for your issue.

authors: icfantv shreyabharadwaj

repo: angular-ui/bootstrap