BLE connection issues in AMP mode

Very cool project, all is working except to connect to my iPhone through the Spark app. It gives me the "Failed to connect" message.
Steps to reproduce the behavior:

Start the Ignitron in AMP mode (long pressing switch 1 during boot up)
Choose "Connect" in Spark App on iPhone (with Spark Amp off)

The serial monitor in Arduino IDE says this:
======= Entering AMP mode =======
Initialization done.
Multi-connect support: start advertising
Address: 7f:a3:ea:ef:61:d6 Subscribed to notfications for 0xffc2
Address: 7f:a3:ea:ef:61:d6 Unsubscribed to 0xffc2
Client disconnected
Start advertising
The duration for this is 5 s, I have tried to increase to 30 as it says in the comments in "SparkBLEControl.cpp", but to no avail.
Is this linked to the Spark App on the iPhone not supporting the Ignitron anymore, or am I mlissing something?
Thanks
Oskar

@oskarsjogren great to hear from another Ignitron build, thanks for your kind words!
Regarding the issue: The app should still work with Ignitron. As it sends multiple requests to Ignitron it would be interesting to see what exactly happens. To do so, please set the DEBUG flag in the file Config.h and rebuilt. The logs should then show the exact messages. Afterwards, I can have a look.

Thanks @stangreg .
This morning, flashing with debug flag on, it works...
Output from Serial monitor:
Operation mode: 2
======= Entering AMP mode =======
Initialization done.
Multi-connect support: start advertising
Address: 51:c2:d5:d1:ad:74 Subscribed to notfications for 0xffc2
0xffc1: onWrite()
Received data:
01FE000053FE17000000000000000000F00101000223F7
Reading request from Amp
Found request for serial number
Sending data:
01FE000041FF29000000000000000000F001013F0323020D2D533939394300393939423939390177F7
Clients notified.
0xffc1: onWrite()
Received data:
01FE000053FE17000000000000000000F00102000272F7
Reading request from Amp
Found invalid request: 72
Clients notified.
0xffc1: onWrite()
Received data:
01FE000053FE17000000000000000000F00103000271F7
Reading request from Amp
Found invalid request: 71
Clients notified.
0xffc1: onWrite()
Received data:
01FE000053FE17000000000000000000F0010400022FF7
Reading request from Amp
Found request for firmware version
Sending data:
01FE000041FF1D000000000000000000F001046A032F114E01070536F7
Clients notified.
0xffc1: onWrite()
Received data:
01FE000053FE1D000000000000000000F0010515022A011400010203F7
Reading request from Amp
Found request for hw checksum
Sending data:
01FE000041FF1E000000000000000000F001052D032A0D147D4C075A58F7
Clients notified.
0xffc1: onWrite()
Received data:
01FE000053FE17000000000000000000F00106000210F7
Reading request from Amp
Found request for hw preset number
Sending data:
01FE000041FF1B000000000000000000F0010600031000000000F7
Clients notified.
0xffc1: onWrite()
Received data:
01FE000053FE3C000000000000000000F0010701020100010000000000000000000000000000000000000000000000000000000000000000000000F7
Reading request from Amp
Found request for current preset
Sending data:
01FE000041FF6A000000000000000000F001077403012010001901005924004336434338354400362D413646352D00343330322D4146F7F001073103010010011946362D30003036304439393610413342313353770065657420436869F7F00107000301001002196C64
Sending data:
01FE000041FF6A000000000000000000204F4066204D696E652308302E3725536C610473682869636F6EF7F00107660301001003192E706E67614A43340000172E00626961732E6E6F0069736567617465F7F0010719030158100419431200114D4A3E1D597F01113D4A
Sending data:
01FE000041FF6A0000000000000000003E6E3E60284C00413241436F6D70F7F001076803015810051942130011414A000000000111514A3F366C740211294A3F390C7E2D44F7F001073D0301001006196973746F007274696F6E54533639431300114A3E334F037B0111
Sending data:
01FE000041FF6A0000000000000000004A3EF7F001071D030108100719263F14026B114A3E74602A2E004F7665724472690076656E4A4D3435F7F001077C03015810081943150011514A3F3B6A680111594A3F5A5A3A0211494A3F242F4F0311F7F00107250301681009
Sending data:
01FE000041FF6A000000000000000000194A3E1D254C1204114A3F516B0305275472656D6F6C6C6F421300114AF7F0010737030150100A193E687F4C4601114A3F332C256602114A3F182010012944656C61794DF7F001071E030140100B196F6E6F432D1500114A3E07
Sending data:
01FE000041FF6A0000000000000000006C2D0B01114A3E0C636D7102114A3E1607F7F0010708030160100C192B03114A6C3F19191A04114A10000000002B62690061732E72657665F7F0010773030160100D19726243171600114A3E1247455601114A3E51194E160211
Sending data:
01FE000041FF4C0000000000000000004A3E143958F7F0010779030130100E1903114A3E33464F4204114A3F3415040105114A3F3026666606114A3EF7F0010743030130100F044C4C4D25F7
Clients notified.
0xffc1: onWrite()
Received data:
01FE000053FE17000000000000000000F00108000271F7
Reading request from Amp
Found invalid request: 71
Clients notified.
I really don't know why, but now it works. Forget this issue.


Quality assurance: Review and update root Readme file for final delivery

The root folder Readme file should be updated to contain the most recent project information to present for the final thesis delivery. Eimen is in charge of the Readme, but the other team members will review the work as well. The update should contain basic information about the project, available functionality, list what features are supported, and showcase the application.

I think I am happy with the Readme the way it is now. I'm closing #124, we can finalise the details and discuss the Readme further in #123 if we need to.

This last commit mention was supposed to reference #121, not #124.


Moving from 0.34.0 to 0.47.0, issue with default values

Which packages are impacted by your issue?
@graphprotocol/graph-cli
Describe the issue
:wave: I've upgraded from 0.34.0 to 0.47.0. I noticed that the generated schemas are now missing the default values, see example below
0.34.0
export class Resolution extends Entity {
  constructor(id: string) {
    super();
    this.set("id", Value.fromString(id));

    this.set("snapshotId", Value.fromBigInt(BigInt.zero()));
    this.set("ipfsDataURI", Value.fromString(""));
    this.set("isNegative", Value.fromBoolean(false));
    this.set("yesVotesTotal", Value.fromBigInt(BigInt.zero()));
    this.set("resolutionType", Value.fromString(""));
    this.set("createTimestamp", Value.fromBigInt(BigInt.zero()));
    this.set("updateTimestamp", Value.fromBigInt(BigInt.zero()));
    this.set("approveTimestamp", Value.fromBigInt(BigInt.zero()));
    this.set("rejectTimestamp", Value.fromBigInt(BigInt.zero()));
    this.set("createBy", Value.fromBytes(Bytes.empty()));
    this.set("voters", Value.fromStringArray(new Array(0)));
    this.set("hasQuorum", Value.fromBoolean(false));
    this.set("executionTo", Value.fromBytesArray(new Array(0)));
    this.set("executionData", Value.fromBytesArray(new Array(0)));
  }

  // ...

Source: https://github.com/NeokingdomDAO/subgraph/blob/89a6068b0437ef75ed2b1242e5d94f0300747074/dao/generated/schema.ts#L182-L201
0.47.0
export class Resolution extends Entity {
  constructor(id: string) {
    super();
    this.set("id", Value.fromString(id));
  }

  // ...

Source: https://github.com/NeokingdomDAO/subgraph/blob/23970e8ace0d061317026a128fa7bfc25c3ed9c2/dao/generated/schema.ts#L216-L220
Question
Is there any flag I need to pass to the generator to create the missing default values?
Reproduction
https://github.com/NeokingdomDAO/contracts
Steps to Reproduce the Bug or Issue

Clone the repo
Run codegen
Check the generated code.

Expected behavior
The version I used before to generate the schema included initialization with default values. Now it doesn't do it anymore. I would expect one of the following thing:

add a flag in the generator to enable the creation of the default values; or
make the generator work as before.

Screenshots or Videos
No response
Platform

OS: Linux
NodeJS: 18
"dependencies": {
"@graphprotocol/graph-cli": "0.47.2",
"@graphprotocol/graph-ts": "0.29.3"
}

Subgraph Manifest
No response
Subgraph GraphQL Schema
No response
Additional context
No response

Thus has been answered on Discord. I suppose the issue can be closed.


There is no option for the default decoration.

The decoration prop needs a value that can be set for it instead of null.   When a wrapper is applied to the class with a different default value then vue spews errors when null/empty string is passed for the decoration property value.
Example wrapper definition
<template>
  <q-ribbon
    :position="position"
    :color="color"
    :background-color="backgroundColor"
    :leaf-position="leafPosition"
    :leaf-color="leafColor"
    :decoration="decoration"
    v-on="$listeners"
    v-bind="$attrs"
  >
    <slot></slot>
  </q-ribbon>
</template>

export default {
  name: 'Ribbon',
  props: {
    position: { default: 'left' },
    color: { default: '#ffffff' },
    backgroundColor: { default: 'primary' },
    leafPosition: { default: 'bottom' },
    leafColor: { default: 'accent' },
    decoration: { default: 'point-in', validator: prop => typeof prop === 'string' || prop === null }
  },

  data () {
    return {}
  }
}

Example desired usage
<ribbon
  size="full"
  decoration="leaf" <!-- or even "default" -->
>
    My Ribbon Text
</ribbon>

@sskwrl I've added something to fix this in the "next" branch (we're porting to the new AE template) so it'll be available soon.
Sorry for the delay!


feature request: emudeck

I think it would be nice if you could download and install emudeck from the web UI or at least have it ready to go on the desktop from the web UI.

Sorry, EmuDeck would have to be available in Flathub for this to work.
We are exploring some other ways to make the installation of EmuDeck easier.


[Message] - No Inverted variant

Steps to Reproduce

Create a

Expected
The Message should use light text on dark background.
Result
The Message does not do this

I'm unable to replicate the issue on the latest version of semantic, please try updating your local installation to a newer version.


Find a better way of interacting with nodes

As the tutorial shows, implementing a node with rclrs is currently very different from rclcpp/rclpy and comparatively difficult: In particular, a lot of locking is going on.
There probably is room for an abstraction that, at the very least, hides this from the user. For instance, perhaps callbacks could receive a mutable reference to the "node state" along with the message itself, which would correspond to the members of your Node class in C++.

I did an internship in the company Pollen Robotics about transcription of Python ROS code to Rust ROS code. Here is the result with its Python equivalent inside of it. It may not be the best but in the end it worked as intended. I was using the client-service branch just before its merge with the main branch. I made some things to allow an easier usage of the ros2-rust crate, resolving partially the locking issue and the transcription from Python.
For the locking issue I resolved it by making the macro ameis (Arc Mutex Edit Inner Safely). The arc_mutex macro can be simplified, as it spam in debug profile but only for user friendliness purpose (to backtrack the usage of locks and therefore data) :
#[allow(unused_mut)]
macro_rules! arc_mutex {
    ($name_arc:ident => $name_var:ident) => {
        #[cfg(not(debug_assertions))]
        {
            $name_var = $name_arc.lock().unwrap();
        }
        #[cfg(debug_assertions)]
        loop {
            if let Ok(some) = $name_arc.try_lock() {
                $name_var = some;
                println!(
                    "macro getting lock of {}: {:?} at {:?}",
                    stringify!($name_arc),
                    line!(),
                    std::time::Instant::now()
                );
                break;
            } else {
                std::thread::sleep(std::time::Duration::from_millis(100));
                println!("macro {}: {:?}", stringify!($name_var), line!());
            }
        }
    };
}

macro_rules! ameis {
    ($am_var:ident => $var:ident; $some:block ) => {
        {
            #[allow(unused_mut)]
            let mut $var;
            arc_mutex!($am_var=>$var);
            $some
        }
    };
}

Simplified version with an example :
use std::sync::{Arc, Mutex};

macro_rules! ameis {
    ($am_var:ident => $var:ident; $some:block ) => {
        {
            #[allow(unused_mut)]
            let mut $var;
            $var = $am_var.lock().unwrap();
            $some
        }
    };
}

fn main() {
    println!("Hello, ArcMutex!");
    let var = Arc::new(Mutex::new(String::from("init")));
    println!("{:?}", var);
    ameis!(var=>temp_var;{*temp_var = String::from("inner")});
    println!("{:?}", var);
    ameis!(var => temp_var ; {
        println!("{}", temp_var);
        *temp_var = String::from("second");
    });
    println!("{:?}", var);
}

But this simplified version needs a correct usage of mutex to be safe to use as it wont help otherwise and could lock the code. It may imply some repetition in the code but allow a easier usage of the parameters, especially with a struct where you need to keep the Mutex alive.
It may need another place to be but in my internship I also made the crate cargo-rost which skips most of the boring stuff of the transcription of Python ROS to Rust ROS but it is currently oriented to be used on a class structured Python code (if it is how it is called) to work properly (tests were made on initials python codes of the intern ship ex: this one by running the following command cargo rost camera_focus.py).
It may not resolve the issue but adding a struct to contain Data that implement the Deref/DerefMut trait with the target type being a MutexGuard to the data (or maybe as the MutexGuard never drop after, the only easy way is the ameis macro). It would simplify the user experience but it may be something totally new for the ROS environment (I have not that much experience in ROS so I can not really say anything) but it may not be appreciated to be implemented as being a Rust only thing.


Failure to write request swallows problem

server.py, line 137-139:
If the response is malformed, Sanic will log an error (thankfully), but will not return any kind of response (simply killing the connection).
Sanic should generate an exception that can be handled by the error handler, and ultimately return a 500.
Note that this can be generated by attempting to return a Flask-type tuple instead of a Sanic response object.

@seemethere the natural thing to do here in my opinion is to import the exceptions and raise one if the response from the server is invalid. However that would cause a circular import because exceptions uses response.py. Should we refactor, and include exceptions in response.py? That's tye typical way to deal with circular imports, since if they both rely on each other there is no reason to keep them separate.
Or, can you think of another way of doing this?

Method write_response:
except Exception as e:
self.bail_out(
"Writing response failed, connection closed {}".format(e))

Closed with #223


Get detailed information for failed assert

Hello.
Sorry if this is already asked, but I couldn't find it. Thanks in advance for the information.
I'm attaching handlers for all the possible QUnit events: moduleStart, moduleDone, done, error.onError, fail and so on. I'm specifically need a more detailed information for which asserts didn't pass (for example the fail message), not only the number of the failing asserts. I imagined this to be inside the moduleDone event, but the arguments have only information for the count of the failed asserts. Am I missing some configuration and is this possible?
Best regards

Sorry for the late answer. You can use QUnit.log(...), see /phantomjs/bridge.js#L30-L50:
  // These methods connect QUnit to PhantomJS.
  QUnit.log(function(obj) {
    // What is this I don’t even
    if (obj.message === '[object Object], undefined:undefined') { return; }

    // Parse some stuff before sending it.
    var actual, expected, dump;
    if (!obj.result) {
      // In order to maintain backwards compatibility with `QUnit <1.15.0`
      // Older versions of QUnit (`<1.15.0`) use `QUnit.jsDump`, but this poperty was
      // deprecated and moved to `QUnit.dump` and will be removed in `QUnit 2.0`.
      dump = QUnit.dump || QUnit.jsDump;

      // Dumping large objects can be very slow, and the dump isn't used for
      // passing tests, so only dump if the test failed.
      actual = dump.parse(obj.actual);
      expected = dump.parse(obj.expected);
    }
    // Send it.
    sendMessage('qunit.log', obj.result, actual, expected, obj.message, obj.source);
  });

Will close this for now, feel free to ask if you have followup question.

Thanks, I will check that.

The following event handler never gets reached:
grunt.event.on('qunit.log', function (result, actual, expected, message, source) {    });

I'm having the following "grunt-contrib-qunit" version: 1.1.0. In addition I have "grunt-qunit-istanbul", version "0.5.0". Can that be the problem?
Thanks

AFAIK, if you're using grunt-qunit-istanbul then you can drop this plugin and you continue using the former.
Also, after exploring the source code of grunt-qunit-istanbul, I don't see it prevent the event in question from emitting. I'll test that when the time allows.

Yeah, I have removed the grunt-qunit-istanbul and still I have the same problem. It seems the problem is with my grunt configuration, I guess, so I will continue debugging it. What I wanted to know from you, is that you are sure you don't know something about such a problem with the 'log' event.
Thank you.

What I wanted to know from you, is that you are sure you don't know something about such a problem with the 'log' event, in some of the grunt-contrib-qunit module versions.

Yes, I'm sure. I've been using this plugin since version 0.4.0 and never encountered that problem.
I don't know what code do you use, but here is a snippet of code using the qunit.log event (this is inside Gruntfile):
// ...

var assertionsCount = 0;
grunt.event.on("qunit.log", function() {
  assertionsCount++;
});

grunt.registerTask("log", function() {
  // Do something with `assertionsCount`
  console.log(assertionsCount + " assertions passed");
});

// ...

grunt.registerTask("default", [ "qunit", "log" ]);


Provide better errot message when username/password is incorrect in kubectl config file.

Rancher Version:Build from master
Have a kubernetes environment set up.
Copy config from kubectl window to local machine.
In the config file , make the username/password invalid.
When kubectl commands are executed , user is presented with the following error message:
"Error form server has prevented the request from succeeding"
The error message provided should be more descriptive of the actual problem.

I was wondering if #5564 has something related to this topic.


New Version

Can we stop the download when we want to stop in some defenid period like --hls-duration"7200" in streamlink or it have to be downloaded the hole file and merged then

I can't properly use --live-perform-as-vod "true" --live-record-limit "02:30:00"


How to use developerPayload in Google In-app?

Hi,
Follow Google development doc here: https://developer.android.com/google/play/billing/billing_integrate.html
Security Recommendation: When you send a purchase request, create a String token that uniquely identifies this purchase request and include this token in the developerPayload.You can use a randomly generated string as the token. When you receive the purchase response from Google Play, make sure to check the returned data signature, the orderId, and the developerPayload String. For added security, you should perform the checking on your own secure server. Make sure to verify that the orderId is a unique value that you have not previously processed, and the developerPayload String matches the token that you sent previously with the purchase request.
How can I send a developerPayload with identifier?
Thanks,

gdx-pay doesn't support attaching a developer payload, as it is not supported by all payment platforms (i.e. not cross-platform).
From reading the development documentation for Google Play the developer payload appears redundant to (a) the identifier you are already supplying and (b) the unique order ID that is generated for each separate order. What are you trying to accomplish using the developer payload?
If you really need it, you could modify the OpenIAB backend for gdx-pay. We currently supply a payload of null (it's in the source). You would have to add custom methods/custom handling for the payload but it's not impossible to do. However, it's not cross-platform. There is no developer payload I am aware of for iTunes. Also, are you sure you need a developer payload?

@noblemaster your in app purchases can be easily hacked if you aren't using payload value (anyone can get item for free)


Cygwin: missing x86_64-cygwin in sbcl prevents any action

Issue description
x86_64-cygwin is not an option in the file pkgs/development/compilers/sbcl/bootstrap.nix
Because of this, the evaluation fails and Is not possible to install anything.
I bypassed this just by putting
x86_64-cygwin = armv7l-linux;
Since I was NOT trying to install sbcl, it was not a problem. Windows binary are however available here http://www.sbcl.org/platform-table.html , so I think it can just be fixed adding an entry for cygwin.

commit 97b9c5407968aa9862fc3251841045d4d13b8157 should fix this

Can we close this?


WAS-467 added startup probe for awes

The application has only 35 seconds to start now. If it exceeds the deadline, Kubernetes will force the pod to restart. It may cause restart loops. It would be better if we increase periodSeconds for startupProbe.

The application has only 35 seconds to start now. If it exceeds the deadline, Kubernetes will force the pod to restart. It may cause restart loops. It would be better if we increase periodSeconds for startupProbe.

I think what's required in addition is a definition of failureThreshold which defines how many times the start  up probe can fail before k8s gives up and tries to restart. See Configure Liveness, Readiness and Startup Probes.

The application has only 35 seconds to start now. If it exceeds the deadline, Kubernetes will force the pod to restart. It may cause restart loops. It would be better if we increase periodSeconds for startupProbe.

I think what's required in addition is a definition of failureThreshold which defines how many times the start up probe can fail before k8s gives up and tries to restart. See Configure Liveness, Readiness and Startup Probes.

Right, in default failureThreshold value is 3, we can increase it also.

ok. Should I increase it to 10 or its too big number for failureThreshold?

The application has only 35 seconds to start now. If it exceeds the deadline, Kubernetes will force the pod to restart. It may cause restart loops. It would be better if we increase periodSeconds for startupProbe.

I think what's required in addition is a definition of failureThreshold which defines how many times the start up probe can fail before k8s gives up and tries to restart. See Configure Liveness, Readiness and Startup Probes.

Right, in default failureThreshold value is 3, we can increase it also.

ok. Should I increase it to 10 or its too big number for failureThreshold?

200 seconds is 3 1/2 minutes. Probably that is not too long for us with W|A and is better than 1 minute as it is currently where I wouldn't be surprised if we erroneously hit that limit every now and then.


feat: retrieve repository's username/password from environment

Make possible to retrieve username/password from the environment for Helm repositories, like it is done for OCI registries.
Related to https://github.com/roboll/helmfile/pull/1629

see: https://github.com/roboll/helmfile/issues/2148

Moved to https://github.com/helmfile/helmfile/pull/415.


Add :caption and :download options to Kino.Mermaid

Originating from this thread on the forums, this PR:

Gives Kino.Mermaid diagrams an optional on-hover download button
Makes the rendered diagram an HTML5 <figure>

Uses flexbox to horizontally center the rendered diagram
Allows for an optional <figcaption> to describe the rendered diagram

Images

Flexbox-centered <figure> (chrome browser defaults stylesheets adds a 1em margin to them)

Figure with caption (styled roughly after Livebook's .info-box CSS)

Flexbox-centering in a grid

Download button with title

Download with custom filename

Default captions for Kino.Process.app_tree example

Default captions for named Kino.Process.sup_tree example

Default captions for pid Kino.Process.sup_tree example

Default captions for Kino.Process.seq_trace example

Note: I did not check in all the changes to the bundled mermaid assets, as there is a lot of churn there. Is that handled in the package publication process, or should I push the changes to lib/assets up too?

@christhekeele thanks for the PR! I updated the styling and simplified some of the options :)

Note: I did not check in all the changes to the bundled mermaid assets, as there is a lot of churn there. Is that handled in the package publication process, or should I push the changes to lib/assets up too?

Bundling in the PR is fine, I bundle before or after merging anyway :) (we want to keep git in sync, in case someone installs the package from GitHub)

I did notice a couple of possible UI regressions with the updated styling, @jonatanklosko , thought I'd report them here.

Large diagrams now get very small—unsure if this is intentional? (Partially mitigated by the full diagram being downloadable, now).
For example, the Kino.Process.seq_trace/1 example
{_, diagram} = Kino.Process.seq_trace(fn ->
  {:ok, agent_pid} = Agent.start_link(fn -> [] end)
  Process.monitor(agent_pid)

  1..2
  |> Task.async_stream(
    fn value ->
      Agent.get(agent_pid, fn value -> value end)
      100 * value
    end,
    max_concurrency: 3
  )
  |> Stream.run()

  Agent.stop(agent_pid)
end)

diagram

with new styling it renders illegibly for me, like:

whereas in the current release of Kino, it renders full-width:

Additionally, vanilla unstyled diagrams have gotten... chonkier? post-update. New:

old:

Unsure if these are undesirable or not, just thought I'd mention them!
OSX, recent Chrome

@christhekeele thanks, the diagram width shrinking is unexpected, I've just fixed on main. The second is an expected change in mermaid v11, which I updated on main after this PR :)


Docker Implementation

Docker Implementation
Added docker compose with 3 services:

mongo
client (React)
server (Node)

Fixes Issue #2

Awesome thanks! Just pushed a couple of things:

added node_modules as a volume for the server - fixes an issue I was getting with index.js not being able to import dependencies
reverted stripped-down .gitignore for people (me :smile:) that still have a node_modules etc. directory

It's good to go :rocket:


Can no longer filter questions using not_guessed_by

Current behavior
Describe the current behavior of the thing you wish to change. Please provide relevant links and screenshots
not_guessed_by query param to /questions/ API is not respected
Expected/desired behavior
Describe the behavior you expect or desire to have. Please provide links to mocks and or similar.
Questions are filtered by those not yet guessed by the given user

I believe this was replaced by not_forecaster_id=. @hlbmtc could you confirm?

Working on a fix to enable the not_guessed_by so the API is backwards compatible with respect to that param too.

from what I can tell the PR has been merged and deployed, but still not seeing the filtering applied:
https://www.metaculus.com/api2/questions/?limit=20&offset=0&project=32506&status=open&not_guessed_by=191935

You are right, @pgodzin. We do seem to have some issues with that filter, my bad.
We are looking into it.

@pgodzin Try it now.
If it works, feel free to close this ticket.

works, thanks!


Problems with program operation

Hello,
I'm trying to run this program by using ./les.seq, but I get this error:
At line 231 of file /public/home/CHJ/UCLALES-SALSA-CHJ/UCLALES-SALSA/src/src_LES/LES.f90 (unit = 1, file = 'NAMELIST')
Fortran runtime error: Cannot match namelist object name tspinup.
Meanwhile, there are some differences between the original runles in github and the compiled runles, I'm not sure this is normal.
##################################################################################################
##################################################################################################
My NAMELIST is shown below.
&version
ver="OASIS-UAE-v1.0"
/
&model
nxp =   100
nyp =   100
nzp =   80
deltax = 50.
deltay = 50.
deltaz = 20.
nxpart = .true.
dzmax  = 1500.
dzrat  = 1.0
dtlong = 1.
distim = 100.
timmax = 43200.
Tspinup = 3600.
runtype = "INITIAL"
level = 4
CCN = 50.e6
prndtl = -0.3333333
filprf = 'DYCOMSIIRF02'
hfilin = 'DYCOMSIIRF02.h.rst'
ssam_intvl = 120.
savg_intvl = 120.
mcflg = .FALSE.
lbinanl = .FALSE.
frqanl = 600.
corflg = .false.
itsflg = 1
strtim = 180.0
sed_aero = .FALSE.
sed_cloud = .FALSE.
sed_precp = .TRUE.
sed_ice = .TRUE.
sed_snow = .TRUE.
iradtyp = 3
case_name = 'default'
div = 3.75e-6
sfc_albedo = 0.05
radsounding = 'datafiles/dsrt.lay'
dthcon = 16.
drtcon = 93.
ubmin  = -0.25
zrough = 0.01
th00 = 289.
umean =  0.1
vmean = -0.1
/
&salsa
nlcoag = .TRUE.       ! Master coagulation switch
nlcgcc = .TRUE.       ! Self-collection of cloud droplets
nlcgpp = .TRUE.       ! Self-collection of rain drops
nlcgpc = .TRUE.       ! Rain collection of cloud droplets
nlcgaa = .FALSE.      ! Aerosol coagulation
nlcgca = .TRUE.       ! Cloud collection of aerosols
nlcgpa = .TRUE.       ! Rain collection of aerosols
nlcgia = .TRUE.       ! Ice collection of aerosols
nlcgic = .TRUE.       ! Ice collection of cloud droplets
nlcgii = .TRUE.       ! Self-collection of ice
nlcgip = .TRUE.       ! Ice collection of rain drops
nlcgsa = .TRUE.       ! Snow collection of aerosols
nlcgsc = .TRUE.       ! Snow collection of cloud droplets
nlcgsi = .TRUE.       ! Snow collection of ice particles
nlcgsp = .TRUE.       ! Snow collection of rain drops
nlcgss = .TRUE.       ! Self-collection of snow
nlcnd       = .TRUE.  ! Master condensation switch
nlcndgas    = .TRUE.  ! --Aerosol precursor gas codensation
nlcndh2oae  = .TRUE.  ! --Condensation of water on aerosols (if FALSE, equilibrium assumed)
nlcndh2ocl  = .TRUE.  ! --Condensation of water on cloud droplets (and drizzle)
nlcndh2oic  = .TRUE.  ! --Condensation of water on ice particles
nlauto      = .TRUE.  ! Master autoconversion switch
nlautosnow  = .FALSE. ! Master snow autoconversion switch
nlactiv     = .TRUE.  ! Master cloud activation switch
nlactbase   = .FALSE.  ! --Switch for parameterized cloud base activation
nlactintst  = .TRUE.  ! --Switch for interstitial activation based on host model Smax
nlichom     = .FALSE.     ! Switch for homogeneous ice nucleation
nlichet     = .FALSE.     ! Switch for heterogeneous ice nucleation
nlicimmers  = .FALSE.   ! Switch for ice nucleation by immersion
nlicmelt    = .FALSE.    ! Switch for ice'n' snow melting
rhlim = 1.2          ! RH limit for SALSA during initialization and spinup
isdtyp = 0
nspec = 1
listspec = 'SO4','','','','','',''
volDistA = 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0
volDistB = 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0
nf2a = 1.0
sigmag = 1.2, 1.7, 2.0, 2.0, 2.0, 2.0, 2.0  ! Stdev for initial aerosol size distribution for isdtyp == 0 (uniform)
dpg = 0.022, 0.12, 0.2, 0.2, 0.2, 0.2, 0.2   ! Mode mean diameters in micrometers
n = 125., 65., 0., 0., 0., 0., 0.         ! Mode number concentrations in #/cm^3
/
#########################################################################################
#########################################################################################
My runles is shown below.
#!/bin/sh
###############################################################
This jobscript is written for the FMI's Cray XC30 system.
Job submission is done at the end of the script. It can do
both sequential or parallel runs by adjusting the value
IsSeq below. For running on simple linux workstation, set
IsSeq=1 and simply run ./runles.

Note: For cluster runs, you most likely need to adjust the
generation of the file job.sh and the job submission command
to your local system specifications.
###############################################################
--------------------------------------------------
IsSeq=1 # 0 for mpi runs, 1 for sequential
EXPNAME="DYCOMSIIRF02"  # Name of the experiment
NPROCS=144          # Number of processors (for IsSeq==0)
TWALL=40:00:00      # Required wallclock time for batch system
NXP=100             # Number of points in X-direction (including "halo" points)
NYP=100             # Number of points in Y-direction (including "halo" points)
NZP=80              # Number of points in Z-direction
DX=50.              # Resolution in X-direction (meters)
DY=50.              # Resolution in Y-direction (meters)
DZ=20.              # Resolution in Z-direction (meters)
DT=1.               # (max) Timestep length (seconds)
Tspinup=3600.       # Length of the spinup period (seconds)
Texp=43200.         # Length of the experiment (seconds)
LEVEL=4             # Thermodynamic level ( 1-3 for bulk microphysics, 4- for SALSA )
-------------------------------------------------- </USER SPECIFIED INFORMATION>
---------------------------------------------------------------
Get the current version from GIT (if used - this functionality
is not available otherwise and a default value is used)
command -v git 2>&1 >/dev/null
if [ $? -eq 0 ]; then
ver=git describe --tags 2>&1
if [ $? -ne 0 ]; then
echo "Ignore possible error, git just doesn't find a version tag - using default value"
ver=vx.x.x
fi
else
ver=latest
fi
---------------------------------------------------------------- </DO NOT CHANGE>
Create namelists
cat > NAMELIST <<EOF
&version
ver="${ver}"
/
&model
nxp =   ${NXP}
nyp =   ${NYP}
nzp =   ${NZP}
deltax = ${DX}
deltay = ${DY}
deltaz = ${DZ}
nxpart = .true.
dzmax  = 1500.
dzrat  = 1.0
dtlong = ${DT}
distim = 100.
timmax = ${Texp}
Tspinup = ${Tspinup}
runtype = "INITIAL"
level = ${LEVEL}
CCN = 50.e6
prndtl = -0.3333333
filprf = '${EXPNAME}'
hfilin = '${EXPNAME}.h.rst'
ssam_intvl = 120.
savg_intvl = 120.
mcflg = .FALSE.
lbinanl = .FALSE.
frqanl = 600.
corflg = .false.
itsflg = 1
strtim = 180.0
sed_aero = .FALSE.
sed_cloud = .FALSE.
sed_precp = .TRUE.
sed_ice = .TRUE.
sed_snow = .TRUE.
iradtyp = 3
case_name = 'default'
div = 3.75e-6
sfc_albedo = 0.05
radsounding = 'datafiles/dsrt.lay'
dthcon = 16.
drtcon = 93.
ubmin  = -0.25
zrough = 0.01
th00 = 289.
umean =  0.1
vmean = -0.1
/
&salsa
nlcoag = .TRUE.       ! Master coagulation switch
nlcgcc = .TRUE.       ! Self-collection of cloud droplets
nlcgpp = .TRUE.       ! Self-collection of rain drops
nlcgpc = .TRUE.       ! Rain collection of cloud droplets
nlcgaa = .FALSE.      ! Aerosol coagulation
nlcgca = .TRUE.       ! Cloud collection of aerosols
nlcgpa = .TRUE.       ! Rain collection of aerosols
nlcgia = .TRUE.       ! Ice collection of aerosols
nlcgic = .TRUE.       ! Ice collection of cloud droplets
nlcgii = .TRUE.       ! Self-collection of ice
nlcgip = .TRUE.       ! Ice collection of rain drops
nlcgsa = .TRUE.       ! Snow collection of aerosols
nlcgsc = .TRUE.       ! Snow collection of cloud droplets
nlcgsi = .TRUE.       ! Snow collection of ice particles
nlcgsp = .TRUE.       ! Snow collection of rain drops
nlcgss = .TRUE.       ! Self-collection of snow
nlcnd       = .TRUE.  ! Master condensation switch
nlcndgas    = .TRUE.  ! --Aerosol precursor gas codensation
nlcndh2oae  = .TRUE.  ! --Condensation of water on aerosols (if FALSE, equilibrium assumed)
nlcndh2ocl  = .TRUE.  ! --Condensation of water on cloud droplets (and drizzle)
nlcndh2oic  = .TRUE.  ! --Condensation of water on ice particles
nlauto      = .TRUE.  ! Master autoconversion switch
nlautosnow  = .FALSE. ! Master snow autoconversion switch
nlactiv     = .TRUE.  ! Master cloud activation switch
nlactbase   = .FALSE.  ! --Switch for parameterized cloud base activation
nlactintst  = .TRUE.  ! --Switch for interstitial activation based on host model Smax
nlichom     = .FALSE.     ! Switch for homogeneous ice nucleation
nlichet     = .FALSE.     ! Switch for heterogeneous ice nucleation
nlicimmers  = .FALSE.   ! Switch for ice nucleation by immersion
nlicmelt    = .FALSE.    ! Switch for ice'n' snow melting
rhlim = 1.2          ! RH limit for SALSA during initialization and spinup
isdtyp = 0
nspec = 1
listspec = 'SO4','','','','','',''
volDistA = 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0
volDistB = 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0
nf2a = 1.0
sigmag = 1.2, 1.7, 2.0, 2.0, 2.0, 2.0, 2.0  ! Stdev for initial aerosol size distribution for isdtyp == 0 (uniform)
dpg = 0.022, 0.12, 0.2, 0.2, 0.2, 0.2, 0.2   ! Mode mean diameters in micrometers
n = 125., 65., 0., 0., 0., 0., 0.         ! Mode number concentrations in #/cm^3
/
EOF
if [ $IsSeq -eq 0 ]; then
The stuff below depends entirely on your system specifics
cat > job.sh <<EOF
#! /bin/sh
#PBS -N ${EXPNAME}
#PBS -l mppwidth=${NPROCS}
#PBS -l mppnppn=20
#PBS -l walltime=${TWALL}
export MPICH_ENV_DISPLAY=1
cd $PBS_O_WORKDIR
aprun -n ${NPROCS} les.mpi | tee uclales-salsa.output
set -ex
EOF
qsub job.sh
elif [ $IsSeq -eq 1 ]; then
./les.seq
fi
################################################################################################
################################################################################################
I hope I can get your help.
Thank you!

Your NAMELIST is not compatible with the model version that you are using. Model version with tag OASIS-UAE-v1.0 has no NAMELIST input called tspinup. Please see the job script runles made for your model version. It should be able to generate valid NAMELIST.

After replacing runles and compiling, the following tips appear：
#################################################################
cd /public/home/CHJ/UCLALES-SALSA_测试/UCLALES-SALSA/src; make LES_ARC=seq
FFLAGS='-O2 -fdefault-real-8 -I/public/home/CHJ/env/netcdf/include -I/public/home/CHJ/env/mpich4/include -std=f2008 -fbounds-check  -g -fcheck=all -Wall -Wtabs  -fbacktrace -ffpe-trap=invalid,zero,overflow -I/public/home/CHJ/UCLALES-SALSA_测试/UCLALES-SALSA/src' F90=gfortran
OUT=/public/home/CHJ/UCLALES-SALSA_测试/UCLALES-SALSA/bin/les.seq LIBS='-L/public/home/CHJ/env/netcdf/lib -lnetcdff -L/public/home/CHJ/env/mpich4/lib -lmpichfort' SRCUTIL=/public/home/CHJ/UCLALES-SALSA_测试/UCLALES-SALSA/src/src_util
SRCLES=/public/home/CHJ/UCLALES-SALSA_测试/UCLALES-SALSA/src/src_LES SRCSALSA=/public/home/CHJ/UCLALES-SALSA_测试/UCLALES-SALSA/src/src_salsa
SRCRAD=/public/home/CHJ/UCLALES-SALSA_测试/UCLALES-SALSA/src/src_rad SRCEMIS=/public/home/CHJ/UCLALES-SALSA_测试/UCLALES-SALSA/src/src_emission
SRCSHARED=/public/home/CHJ/UCLALES-SALSA_测试/UCLALES-SALSA/src/src_shared SRCIO=/public/home/CHJ/UCLALES-SALSA_测试/UCLALES-SALSA/src/src_IO
make[1]: Entering directory /public/home/CHJ/UCLALES-SALSA_测试/UCLALES-SALSA/src' make[1]: Nothing to be done for all'.
make[1]: Leaving directory `/public/home/CHJ/UCLALES-SALSA_测试/UCLALES-SALSA/src'
########################################################################
Also, replaced runles and my NAMELIST still have tspinup

There is something wrong with you path: "_测试" is not valid character.
Model version with tag OASIS-UAE-v1.0 should work. The script runles has variable tspinup, but it produces NAMELIST where spinup is set corretly (e.g., sed_cloud%delay = ${Tspinup}).

Thank you for your help. I will try again.

A new error appear when using ./les.seq:
#####################################################################################
At line 1116 of file /public/home/CHJ/UCLALES-SALSA-CHJ/UCLALES-SALSA/src/src_LES/init.f90 (unit = 11)
Fortran runtime error: Cannot open file 'aerosol_in': No such file or directory
#####################################################################################
If the lack of aerosol_in is the result of an error in the installation?

A new error appear when using ./les.seq:
#####################################################################################
At line 1116 of file /public/home/CHJ/UCLALES-SALSA-CHJ/UCLALES-SALSA/src/src_LES/init.f90 (unit = 11)
Fortran runtime error: Cannot open file 'aerosol_in': No such file or directory
#####################################################################################
If the lack of aerosol_in is the result of some errors in the installation?

Installation seems to be ok, but input file aerosol_in is missing. I don’t have that file because it is needed for the OASIS case only. If you are trying to simulate the OASIS case, Juha Tonttila made those simulations, so he might be able to help you. If you are trying to simulate some other case, let me know which one.

Could you tell me which paper used the OASIS case? Maybe I can find input file there. Or I can try to contact Juha Tonttila for help. I recently want to familiarize with UCLALES-SALSA by simulating this case, it may be used to simulate other cases that I need in the future.

There are actually two OASIS papers:

Tonttila, J., Afzalifar, A., Kokkola, H., Raatikainen, T., Korhonen, H., and Romakkaniemi, S.: Precipitation enhancement in stratocumulus clouds through airborne seeding: sensitivity analysis by UCLALES-SALSA, Atmos. Chem. Phys., 21, 1035–1048, https://doi.org/10.5194/acp-21-1035-2021, 2021.
Tonttila, J., A. Korpinen, H. Kokkola, S. Romakkaniemi, C. Fortelius, and H. Korhonen, 2022: Interaction between Hygroscopic Seeding and Mixed-Phase Microphysics in Convective Clouds. J. Appl. Meteor. Climatol., 61, 1533–1547, https://doi.org/10.1175/JAMC-D-21-0183.1.

These are relatively complicated simulations, so you might want to try something simple. Puijo case by Calderon et al. (2020) is simpler or just try if the DEV (this is the most recent model version; master is quite old now) branch example case works. It may need some modifications to run. The third option is branch IceDevelOrg and the example case (just remove _sample from both NAMELIST and sound_in). IceDevelOrg differs from the current model (DEV and master), but it is still used.
Calderón, S. M., Tonttila, J., Buchholz, A., Joutsensaari, J., Komppula, M., Leskinen, A., Hao, L., Moisseev, D., Pullinen, I., Tiitta, P., Xu, J., Virtanen, A., Kokkola, H., and Romakkaniemi, S.: Aerosol–stratocumulus interactions: towards a better process understanding using closures between observations and large eddy simulations, Atmos. Chem. Phys., 22, 12417–12441, https://doi.org/10.5194/acp-22-12417-2022, 2022.

Ok I get it, thanks for your advice!


Continuous artifact deployment in clojars

Following the same approach used for Java, it would be great to enhance the Travis CI build process with a SNAPSHOT deployment on clojars (or Maven Central).
I'm looking for:

Guidance to understand if clojars or Maven Central is the best option; for the latter, we have the advantage of having already a workflow defined and fully working
Code changes that are needed for the integration
Existing integrations (including clojure tools) that provide the same end goal and can be easily reused

Clojars is the idiomatic repository for Clojure - I would recommend that over Maven Central unless there's a strongly compelling reason not to use it.

I've added support for automatic deployment from Travis CI to the project, however @maoo will need to create encrypted environment variables containing the Clojars credentials in order for deployment to occur (right now Travis CI builds will hang at the deploy step, since Leiningen isn't finding those environment variables and falls back on prompting for interactive input).  These variables are:

CLOJARS_USERNAME - the username of the Clojars user
CLOJARS_PASSWORD - the password of that Clojars user

I've created a Clojars user appropriate for use by the Foundation, and sent those credentials via secure channel to @maoo.
As best I can tell, encrypted environment variables can be defined in TravisCI in one of 2 ways:

by adding encrypted environment variables to the .travis.yml file and submitting a PR (please reference this issue in the PR subject)
by defining repository-specific environment variables

(though it's not clear to me if the second approach is secure - @maoo do you know?)
In the meantime, I manually ran a Clojars deployment, to confirm that the pipeline is working (it is), so everything should Just Work™ once those environment variables are defined and a Travis CI build triggered.

I've added support for automatic deployment from Travis CI to the project, however @maoo will need to create encrypted environment variables containing the Clojars credentials in order for deployment to occur (right now Travis CI builds will hang at the deploy step, since Leiningen isn't finding those environment variables and falls back on prompting for interactive input).  These variables are:

CLOJARS_USERNAME - the username of the Clojars user
CLOJARS_PASSWORD - the password of that Clojars user

I've created a Clojars user appropriate for use by the Foundation, and sent those credentials via secure channel to @maoo.
As best I can tell, encrypted environment variables can be defined in TravisCI in one of 2 ways:

by adding encrypted environment variables to the .travis.yml file and submitting a PR (please reference this issue in the PR subject)
by defining repository-specific environment variables

(though it's not clear to me if the second approach is secure - @maoo do you know?)
In the meantime, I manually ran a Clojars deployment, to confirm that the pipeline is working (it is), so everything should Just Work™ once those environment variables are defined and a Travis CI build triggered.

Thanks @pmonks , the build is green! https://travis-ci.org/symphonyoss/clj-symphony
I saved clojars credentials and added Travis configuration, using repository-specific environment variables (option no. 2).
To answer your question, yes, also the second approach is secure, since:

it boils down to the same implementation of the first approach (both encrypted and hidden on build logs)
variables are only visible by the creator, even in the settings page; the repository settings are only accessible by github project administrators; other administrators (that are not the variable creators) can only remove (and/or re-add) the variable, but cannot view its value.

One interesting note; symbols in passwords MUST be escaped, regardless of the approach selected.
I'll finalise the documentation on symphonyoss.atlassian.net before resolving the issue. Thanks again for this.

Documentation ready; will be live on the Wiki next week.


NEW SEX@VIDEOS] Tummy Tear Dark female Lea𝚔ed Video Viral 𝖮𝗋𝗂𝗀𝗂𝗇𝖺𝗅 Private Video On Social Media Twitter-X

This week, social media and video platforms around the world were abuzz with a viral video, the “Tummy Tear” video. The video not only caught the attention of YouTube users, but also topped the charts on platforms like Twitter, Instagram, and TikTok. But what exactly happened in this video? Why did it catch so much attention? Let’s dive deeper into this phenomenon.
𝖶𝖺𝗍𝖼𝗁 🟢 ➤ ➤ ➤ 🌐 𝖢𝗅𝗂𝖼𝗄 𝖧𝖾𝗋𝖾 𝖳𝗈 𝗅𝗂𝗇𝗄 (𝖥𝗎𝗅𝗅 𝖵𝗂𝗋𝖺𝗅 𝖵𝗂𝖽𝖾𝗈 𝖫𝗂𝗇𝗄)
🔴 ➤►𝖣𝖮𝖶𝖭𝖫𝖮𝖠𝖣👉👉 (𝖥𝗎𝗅𝗅 𝖵𝗂𝗋𝖺𝗅 𝖵𝗂𝖽𝖾𝗈 𝖫𝗂𝗇𝗄) 𝖶𝖺𝗍𝖼𝗁
🟢 ➤ ➤ ➤ 🌐 𝖢𝗅𝗂𝖼𝗄 𝖧𝖾𝗋𝖾 𝖳𝗈 𝗅𝗂𝗇𝗄 (𝖥𝗎𝗅𝗅 𝖵𝗂𝗋𝖺𝗅 𝖵𝗂𝖽𝖾𝗈 𝖫𝗂𝗇𝗄)
🔴 ➤►𝖣𝖮𝖶𝖭𝖫𝖮𝖠𝖣👉👉 (𝖥𝗎𝗅𝗅 𝖵𝗂𝗋𝖺𝗅 𝖵𝗂𝖽𝖾𝗈 𝖫𝗂𝗇𝗄)
The “Tummy Tear” video shows a content creator, known by the username “@FitNFun,” doing a unique and extreme fitness challenge. In the video, the creator performs a series of intense physical exercises, and in the middle of the session, she experiences a rather dramatic incident when her stomach is “injured” due to excessive movement. Although no serious injuries occurred, her silly reactions and facial expressions during the incident made viewers laugh and feel tense at the same time.
The video, which is about five minutes long, has many funny and entertaining moments, such as shocked expressions and sarcastic comments that invite laughter. Good lighting, dynamic editing, and the use of energetic background music make this video even more interesting to watch.
There are several factors that caused the “Tummy Tear” video to go viral on social media:
Element of Surprise: The moment when the creator experiences a “tummy tear” is an unexpected element of surprise. Many viewers initially felt relaxed while watching, but were then shocked when the incident occurred. This makes the video memorable.
The Power of Humor: Humor is one of the important elements in this video. The creator’s exaggerated reactions, accompanied by humorous comments, create an entertaining atmosphere. This video becomes more than just fitness content; it also entertains the audience.
Interaction on Social Media: After this video was uploaded, many social media users began sharing it, making memes, or giving funny comments. This high interaction added to the appeal of the video, so that more people were curious to watch it.
Fitness Challenge: With more and more people interested in fitness and a healthy lifestyle, this video managed to touch on that aspect. Many people were interested in trying the same challenge, so this video attracted a wider audience.
As this video went viral, reactions from social media users were very diverse. On Twitter, many commented on how funny the incident was. Some even shared video clips with silly captions, while others uploaded memes with images of the creator at the time of the incident.
On TikTok, the “Tummy Tear” challenge began to emerge. TikTok users flocked to create their own versions of the challenge, with different styles. From here, it seems that the original video is getting more views, and new users are coming to find out more about the challenge.
Although the video received a lot of praise, there were also quite a few criticisms. Some people thought the video was inappropriate because it could risk causing others to try the same thing without understanding the possible risks. Some fitness experts also commented that although the content was funny, it was important for viewers to be aware of their own physical limitations and not try extreme exercises without proper guidance.
In response, the creator, @FitNFun, issued a statement on his social media. He stated that the purpose of his videos was to entertain and show the funny side of fitness, not to encourage people to do dangerous things. He also reminded his followers to always exercise safely and wisely.
The virality of the “Tummy Tear” video may only be a temporary trend on social media, but its impact could be much bigger. First, this video shows how powerful the power of humor is in attracting public attention. Entertaining and funny content always has a place in the hearts of viewers, and this can be a lesson for other creators to produce more creative content. Second, this video also shows how important interaction is on social media. An active and enthusiastic online community can help content go viral quickly.


Update installer cli to indicate correct support matrix

Describe the solution you'd like
Current output of listing supported OS and K8s version
$ ./cli --list-supported
OS			K8S Version	BYOH Bundle Name
---			-----------	----------------
Ubuntu_20.04.1_x86-64	 v1.22.3	byoh-bundle-ubuntu_20.04.1_x86-64_k8s_v1.22.3

We need to update the OS support to indicate Ubuntu 20.04.*
After #411, we will be flexible enough to support any version in a given minor series. So the K8s version column should read v1.22.*. The output should contain a message saying the corresponding bundles (particular to a patch version) should be pushed to the OCI registry of choice. By default, BYOH uses projects.registry.vmware.com
Similarly, the BYOH Bundle Name also needs to be updated.
Update local-dev.md guide to reflect the changes.

Anything else you would like to add:
While we may have to wait for #411 to be completed to update K8s version column, in the meantime (as part of a different PR), update the OS column

Closing this as it was fixed in this PR #437


Slow inserts for objects with many properties

Goals

Insert realm objects into the database quickly. I am trying to insert 100k objects with around 25 properties with no values plus an empty list.
Expected Results

I expect them to be inserted very quickly.
Actual Results

Performance is quite slow, especially on older devices. On iphone 6S+ running iOS 11.2 it's more or less ok, about 5 seconds. On iPhone 5 running iOS 10.3.3 it's very slow, around 37 seconds.
If the properties are not optional and are actually set then the performance is even slower, around 54 seconds on the iPhone 5 and 8 on iPhone 6S+ if the properties have default values.
Steps to Reproduce

I downloaded the example realm projects and updated the app delegate in the Simple project as shown below. Then just ran the code and checked the NSLog timestamps.
Code Sample

import UIKit
import RealmSwift

class Dog: Object {
  @objc dynamic var name : String?
  let age = RealmOptional<Int>()
  @objc dynamic var name2: String?
  @objc dynamic var name3 : String?
  @objc dynamic var name4 : String?
  @objc dynamic var name5 : String?
  @objc dynamic var name6 : String?
  @objc dynamic var name7 : String?
  @objc dynamic var name8 : String?
  @objc dynamic var name9 : String?
  @objc dynamic var name10 : String?
  @objc dynamic var name11 : String?
  @objc dynamic var name12 : String?
  @objc dynamic var name13 : String?
  @objc dynamic var name14 : String?
  @objc dynamic var name15 : String?
  @objc dynamic var name16 : String?
  let name17 = RealmOptional<Bool>()
  let name18 = RealmOptional<Bool>()
  let name19 = RealmOptional<Bool>()
  let name20 = RealmOptional<Int>()
  let name21 = RealmOptional<Int>()
  let name22 = RealmOptional<Int>()
  let name23 = RealmOptional<Int>()

  let persons = List<Person>()
}

class Person: Object {
    @objc dynamic var name = ""
    let dogs = List<Dog>()
}

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey : Any]? = nil) -> Bool {
        window = UIWindow(frame: UIScreen.main.bounds)
        window?.rootViewController = UIViewController()
        window?.makeKeyAndVisible()

        do {
            try FileManager.default.removeItem(at: Realm.Configuration.defaultConfiguration.fileURL!)
        } catch {}

      let realm = try! Realm()

      var items = [Dog]()
      for _ in 0...100000 {
        let item = Dog()
        items.append(item)
      }
      NSLog("about to write")
      try! realm.write {
        realm.add(items, update: false)
      }
      NSLog("finished writing")

        return true
    }
}

Version of Realm and Tooling

Realm framework version: 3.2.0
Realm Object Server version: N/A
Xcode version: 9.2
iOS/OSX version: iOS 11.2 and iOS 10.3.3
Dependency manager + version: Cocoapods latest
Swift version: swift-3.2.3

@igorest7 I'm sure we can optimize bulk inserts without values. But it's not something we have heard a use case for yet. It also highly depends on if you insert in one transaction or in 100k transactions. Doing the later takes a lot of time - we are mostly bound by disk access time.
Do you have any other reference to hold this up against to conclude that it's unreasonable slow?

Closing this issue with no recent activity. I assume this issue has been resolved -- please let us know if that is not the case.


Cannot Install SPFx Solution or Activate Custom Feature using a Site Design

It is not possible to install an SPFx solution or activate the custom feature that contains the Application Customizers custom actions. Instead, the OOB features are able to be activated. Is there a way at least to access to more traceable information than "Action failed"?

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: b9f52c85-8e87-991f-5002-149f011fe8d0
Version Independent ID: 352955bd-4e1a-126a-a026-440d2b62de38
Content: SharePoint site design and site script overview
Content Source: docs/declarative-customization/site-design-overview.md
Product: sharepoint
GitHub Login: @spdevdocs
Microsoft Alias: spdevdocs

Can you provide your Site Script to review? Deploying an Application Customizer is possible with Site Scripts.

{
"$schema": "schema.json",
"actions": [
{
"verb": "installSolution",
"id": "de5b5cce-0a0c-40b2-820c-1569ba81e9d0",
"name": "MY_SOLUTION"
},
{
"verb": "activateSPFeature",
"featureId": "15a572c6-e545-4d32-897a-bab6f5846e18"
},
{
"verb": "activateSPFeature",
"featureId": "4cd826ba-70fd-4e81-9149-d6edc243e4b0"
},
{
"verb": "applyTheme",
"themeName": "MY_THEME"
}
],
"bindata": { },
"version": 1
}
Our solution contains both webparts and extensions, that is why we use the installSolution action, that already includes both (so no need to do the associateExtension action). We tried with and without the name in the installSolution, since it has been included in the latest schema: https://developer.microsoft.com/json-schemas/sp/site-design-script-actions.schema.json

@qazqwertish if you're still experiencing this issue, please raise a support ticket so we can look into this issue. Improving error reporting is in our backlog.

I confirm that we experience the same same issue:
Site Design JSON:
{
    "$schema": "schema.json",
    "actions": [
        {
            "verb": "installSolution",
            "id": "{AppPackageId:ContosoCentral}"
        }
    ],
    "version": 1
  }


@media all leads to an invalid rule

The media query @media all { ... } is processed to @media { ... } which is invalid for ie11. So either the complete @media all should be deleted or if all is the only media type it should not be deleted

Expected behavior, looks we should use browserslist, WIP


add quality option for the user

We have a show with very long shots and very simple visuals and with 100% quality we're getting massive preview files. I've added a quality attribute for easier control.

Makes sense!


Need an mechanism to set the modules dir for scss to use

We currently set a less variable here:
https://github.com/digitalbazaar/bedrock-views/blob/master/lib/config.js#L190-L191
We need support for this for scss as well. Either that, or we need some other paradigm. This variable is used to define things like a path for font awesome fonts.

No longer applicable, closing.


Container stuck when calling start

Hi!
I'm trying to use the testcontainers for Ruby to use a minIO image in my rspec. I tried multiple ways but didn't succeed. The container keeps being stuck forever when calling start. I thought it was the way I passed the arguments to the container but I think it's not.
So I tried to use one of the example with memcached
    puts 'Starting'
    memcached = Testcontainers::GenericContainer.new("memcached:latest").with_exposed_port(11211).start
    puts 'Started'

And the 'Started' log is never written.
I can see that the image has been downloaded by the test container but then nothing. It get stuck.
REPOSITORY              TAG                            IMAGE ID       CREATED         SIZE
localstack/localstack   3.0                            8c92f9339e48   9 days ago      1.17GB
minio/minio             RELEASE.2023-10-25T06-33-25Z   7c07ce16e586   4 weeks ago     289MB
memcached               latest                         f05ec0c73b4a   5 weeks ago     126MB
minio/minio             RELEASE.2023-09-04T19-57-37Z   9701b708d3cb   2 months ago    292MB
alpine                  3.16                           47a0d92d42c9   3 months ago    5.3MB
adobe/s3mock            2.17.0                         871cb24de6e3   4 months ago    98MB
testcontainers/ryuk     0.5.1                          8be3fdcaa3e8   6 months ago    12.2MB
confluentinc/cp-kafka   7.2.2                          93fe61e45a92   14 months ago   846MB
testcontainers/ryuk     0.3.4                          5d28cedc492d   16 months ago   11.5MB

I'm using the minIO testcontainer for java in JUnit tests and it works fine. So the docker part is working fine in my laptop.
But when using with RSpec it doesn't work. I'm using it like this (and tried many different ways using with_xxx):
@container = Testcontainers::DockerContainer.new(image: "minio/minio:RELEASE.2023-10-25T06-33-25Z",
                                                     port_bindings: 9000,
                                                     command: %w[server /data]
                                                     )
    @container.add_wait_for(:logs, /1 Online, 0 Offline/)
    @container.start

How can I understand what's going on?
Can 'start' be called anywhere in the RSpec?

@ruiarodrigues thanks for reporting this, I'll investigate it during the next days and hopefully return with some answers


Login to private account not working

See

Same problem

Might be that the IP you're executing from is banned. Instagram filters out requests that are from known IP address ranges from datacenters. I was only able to run this script from my local machine.


Review use of @Named with IOC Providers

Feature Request
Description of Problem:
One issue with passing in named interfaces to the providers is if the wrong version is passed in, Any tests for what the provider returns will not pick this issue up.
For example, this test for the DecisionTreeWalkerProvider tests what happens when the config says to return Reductive walker.
    @ Test
    public void decisionTreeWalkerProvider_providesReductiveWalker_whenConfigIsReductive() {
        GenerationConfigSource config = mock(GenerationConfigSource.class);
        when(config.getWalkerType()).thenReturn(GenerationConfig.TreeWalkerType.REDUCTIVE);

        DecisionTreeWalkerProvider provider = new DecisionTreeWalkerProvider(
            mock(ReductiveDecisionTreeWalker.class),
            mock(CartesianProductDecisionTreeWalker.class),
            mock(DecisionTreeRoutesTreeWalker.class),
            config);

        Assert.assertThat(provider.get(), instanceOf(ReductiveDecisionTreeWalker.class));
    }

However, if the IocContainer is set up incorrectly, and doesn't pass in the reductive walker as its named argument
bind(DecisionTreeWalker.class).annotatedWith(Names.named("reductive")).to(CartesianProductDecisionTreeWalker.class);
Then the test will still pass, but the provider will not be returning a reductive walker in production code.
Potential Solutions:
The solution to this is to let the provider know about the concrete DecisionTreeWalker implementations
Either by 'new'ing up concrete walkers
Or by injecting the concrete types directly
this way the test will remain the same, but will be testing what the provider actually returns.

Vote by a narrow margin shows a preference towards concrete types. That means the removal of @Named (except where required). Describe the constructor as requiring a concrete type of dependency rather than its interface and an @Named annotation to select the correct type.
For further clarity the changes suggested are, from
ctor(@Named("name") MyDependencyInterface dependency)

To
ctor(MyDependencyImplementation dependency)


workbox/workbox-window.prod.mjs not loading

Version(s) affected
1.3.x (and ^1.2)
Description
Failed to load module script: Expected a JavaScript module script but the server responded with a MIME type of "application/octet-stream". Strict MIME type checking is enforced for module scripts
https://ff.survos.com/workbox/workbox-window.prod.mjs
How to reproduce
https://ff.survos.com/events/index
I'm trying to debug why this doesn't have an "Install" option in the debug tools.  Perhaps it's related to the above error with the workbox not being loaded.
Possible Solution
No response
Additional Context
pwa.yaml
pwa:
    image_processor: 'pwa.image_processor.imagick'
#    favicons:
#        enabled: true
#        src: assets/icons/symfony.svg

    manifest:
        enabled: true
        background_color: "#c026d3"
        theme_color: "#c026d3"
        name: 'Foothills Forum Photo collection'
        short_name: 'ff-photos'
        description: 'Foothills Forum Photo collection allows users to submit photos of local high school sporting events in Rappahannock'
        orientation: "any"
        display: "standalone"
        scope: "/"
        display_override: ['fullscreen', 'minimal-ui', 'window-controls-overlay']
        id: "/"
        start_url: "/"
        icons:
#            - https://www.svgrepo.com/svg/522368/camera
            - src: "images/camera-svgrepo-com.svg"
              sizes: any
#            - src: "images/space-planet-icon.svg"
#              sizes: any

        screenshots:
            - src: screenshots/screenshot-1200x1100.png
              width: 1200
              height: 1100
              format: image/png

        categories: []
        shortcuts: []
        edge_side_panel:
            preferred_width: 280
        widgets: []
    serviceworker:
        enabled: true
        src: "sw.js"
        skip_waiting: true
        workbox:
#            resource_caches:
#                - cache_name: page
#                  strategy: staleWhileRevalidate
#                  regex: 'what-should-this-becopose'
#                  urls:
#    #                    - {path: "app_planet_show", params: {id: 5}}
#                        - 'app_homepage'
#                        - 'app_terms'
#            offline_fallback:
#                page: 'app_homepage'
##                page: 'app_offline_page'
##                    image: 'images/offline.svg'
##                        font: 'fonts/normal.ttf'

Hi,
Is it the same issue as https://github.com/Spomky-Labs/pwa-bundle/issues/217?
To me and because the satic files are directly served by the web server (Caddy, nginx...), it looks like it is a server configuration issue.


[Feature Request]: Parquet Output Transform - Show the maximum row width in bytes on the dialog

What would you like to happen?
Figuring out the size of a parquet file output is dependent on several factors.  One of the more important factors is the width of the row in bytes.  When the user gets fields to output, we know the metadata of those fields and either the specific field width/size or the underlying data type's maximum width.
I suggest putting a label and calculating this size and showing it to the user on the UI so they can decide how to adjust their row splits or adjust the other fields like row group size (also in bytes), etc.
This will help them with calculating the optimal file size for letting query engines read their files on object storage.
Issue Priority
Priority: 3
Issue Component
Component: Transforms

I guess it's not used or useful anywhere else, except to overcome the limitations of the Parquet file format?
Perhaps some extra logging or statistics capturing in the transform itself might be more useful.


🚧Refactor KeyboardState to readonly struct

Description:
To allow this pull request to be merged, please make sure that the following items of this pull request are complete.
This pull request closes #804
✅The pull request head branch must be a feature branch with the syntax 'feature/-sync-testing'.
✅The pull request base branch must be a 'main' or 'preview' branch..
✅The pull request head branch contains a valid issue number.
✅The pull request title matches the linked issue title exactly.
✅The pull request assignees match the assignees of the issue.
✅The pull request labels match the labels of the issue.
✅The pull request organizational projects match the organizational projects of the issue.
✅The pull requests milestone matches the milestone of the issue.

Additional Info:

Pull requests are automatically synced with the associated issue upon creation by one of the KinsonDigital workflow bots.
The associated issue is the issue number that is embedded in the pull request head branch.
The list above will be automatically updated as the pull request's various settings match or do not match the associated issue.
To manually sync the pull request to the issue, create a comment with the [run-sync] command.

Note You must be an admin member of the organization to use this command.

[x] Sync with the issue.  Use this to enable or disable this pull request from syncing with its associated issue.

[!NOTE]
Fixed https://github.com/KinsonDigital/Velaptor/labels/🐛bug 's below

Fixed a bug where the KeyboardState.KeyToChar() method was returning a single apostrophe instead of a double apostrophe when a shift key was pressed down.

[!WARNGIN]
Introduced the following https://github.com/KinsonDigital/Velaptor/labels/🧨breaking changes

Removed the GetKeyStates() method from the KeyboardState struct.  This method was not needed due to the other methods available for users to get the state of the keyboard keys.  This was also removed to prevent allocations.


Remove superfluous io.netty:netty-tcnative BOM entry

https://github.com/quarkiverse/quarkus-azure-services/pull/53 hit my eyes due to upgrading to netty 2.0.55 that is different from what is Quarkus 2.15.3 using (2.0.54). Investigating further has shown that io.netty:netty-tcnative should not be needed at all. So let's remove it.

Thanks @ppalaga.  The less useless dependencies the better


auto update the results page

Story
As an autocross attendee, I want the data in the results page to update automatically when new results are available so that I don't have to manually refresh to wipe out local state.
Acceptance Criteria

Results page will update without manually refreshing
Data reload should be transparent without rerendering  the current view.
Reload should be transparent even on lower end phones

Implemented


Make podManagementPolicy configurable on StatefulSets

Issue #, if available:
Description of changes:
Make podManagementPolicy configurable on both (master and data) StatefulSets, while keeping OrderedReady as default.
Test Results:
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on signing off your commits, please check here.

btw, while adding elasticsearch.data.podManagementPolicy option to the README.md I noticed there is elasticsearch.master.updateStrategy instead of elasticsearch.data.updateStrategy in the data section of the README.
Apparently when someone was adding updateStrategy, they copy&pasted the README line from the master part but forgot to modify the line to mention "data" nodes instead of "master".
Should I include a fix to that README line? And if so, should it be an additional commit or a separate pull request?

Hi @k3a,
Can you please open a separate request to change the Readme file. Thanks for bringing it up.
Thanks
Sreekar


Add bulk filename change

What feature or improvement do you think would benefit Files?
I noticed Files doesn't let me change names of multiple files at once. I would really appreciate if you add this functionality.
Requirements
This proposal will add the functionality of bulk filename change in Files.
Files Version
<IP_ADDRESS>
Windows Version
Windows 10 (22H2): 19045
Comments
No response

Thanks for the feedback, can you confirm if this is the same as #8191.

Thanks for the feedback, can you confirm if this is the same as #8191.

Yeah, it's the same. Thanks for mentioning this, for some reason I didn't find this issue.


Include variable name in error message when setting read-only variable

~> try failed; except false; tried
<interact>:1:20: eval error: read-only; cannot be set
try failed; except false; tried

Hmm, this is because your code tries to set $false which is read-only.
Perhaps the error message should claim which variable it is trying to set.

I have clarified the error message a bit and given the word after except the color of variables. I hope this makes things less confusing.
I am leaving this issue open though, since ideally this message should be "$false is read-only". Unfortunately this is a bit hard to do now, since such an error message is generated in a place with no access to the variable name (https://github.com/elves/elvish/blob/ebf34e1c64786f6d62f49cdf9eadbe52277f3c1e/eval/variable.go#L54).
Had we sticked to the error-returning-style error handling that is typically of golang, this will be a lot easier, since the caller will likely have access to the variable name. Perhaps we should re-evaluate the benefits and drawbacks of the current approach of using panic and recover for error handling some day.

FWIW, This issue is still relevant although the way to reproduce it needs to be updated:
> try { fail } except false { put $false }
Exception: read-only variable; cannot be set
[tty 37], line 1: try { fail } except false { put $false }

Also, "the current approach of using panic and recover for error handling" is no longer relevant to this issue since the implementation no longer uses Go's panic function to implement this behavior.

FYI, The fix for this issue is straightforward. Simply replace the ErrSetReadOnlyVar var with a type that implements the error interface and modify the callers of NewReadOnly to explicitly pass the var name. I've got that working. TBD is adding unit tests and fixing the Set method in pkg/eval/vars/callback.go. At the moment I'm hard-coding a literal var name in that function so the compilation succeeds.

Not to nitpick but the fix only highlight the affected var in the backtrace. It doesn't actually interpolate the var name in the error message. Which behavior is better is unclear but I, like the person who opened this question, was hoping the var name would be in the error message -- not just shown in a distinct fashion in the backtrace. Especially since there are cases, such as the updated reproducer in my previous comment, that does not highlight just the variable name. For example:
> try { fail } except false { put $false }
Exception: read-only variable; cannot be set
[tty 5], line 1: try { fail } except false { put $false }

Note that the entire statement is highlighted -- not just the false var name. Whereas with my rejected pull-request the error is Exception: read-only variable builtin:false cannot be set.


rabbitmq-server: Don't look for plugins in the store path

Description of changes
By default RabbitMQ searches for plugins in its store path. This can only work for plugins which are built as part of the server, because the store is immutable and other packages are not allowed to install files there.
This change sets the plugin search path to point into the overlying symlinkJoined layer, so that out-of-tree plugins can be built, packaged and installed independently.
This works for my current use case, installing RabbitMQ into a Docker container. I'm not sure what'll happen if someone does eg nix-env -iA nixpkgs.rabbitmq-server to install it into a path other than the root. Should RABBITMQ_PLUGINS_DIR have a prefix prepended to it in this case? I'd appreciate some advice on how to make this change properly.

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

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

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

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

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

[ ] Fits CONTRIBUTING.md.

Can you give more details about your use case? Maybe a minimal config? I'm not sure but it looks like this broke the integration test.

Sure. Here's a Nix expression that demonstrates the problem.
{ pkgs ? import <nixpkgs> {} }:

with pkgs;

let
  rabbitmq-delimiter-exchange = stdenv.mkDerivation rec {
    version = "v3.8.x";
    pname = "rabbitmq_delimiter_exchange";

    src = fetchFromGitHub {
      owner = "whitfin";
      repo = "rabbitmq-delimiter-exchange";
      rev = "${version}";
      sha256 = "SNuuZ5HH7+rlmMX0DDI1gdgdl1t0R1Y9EDJUx5R7IUQ=";
    };

    buildInputs = [ erlang elixir (beam.packagesWith erlang).hex git curl python rsync zip which ];

    buildPhase = ''
      export HOME=`pwd`
      export GIT_SSL_CAINFO="${cacert}/etc/ssl/certs/ca-bundle.crt"
      export SSL_CERT_FILE="${cacert}/etc/ssl/certs/ca-bundle.crt"
      make dist
    '';

    installPhase = ''
      mkdir -p $out/plugins
      cp -r plugins/rabbitmq_delimiter_exchange* $out/plugins/
    '';
  };

in
dockerTools.buildLayeredImage {
  name = "rabbitmq-container";
  tag = "latest";
  contents = [
    tini
    bashInteractive
    coreutils
    rabbitmq-server
    rabbitmq-delimiter-exchange
  ];
  config = {
    Entrypoint = [
      "/bin/tini" "--"
      "/bin/bash"
    ];
  };
}

Build this and start the resulting Docker container. Run rabbitmq-plugins list and note that the rabbitmq-delimiter-exchange plugin is not shown in the output.
One way to fix it and make the plugin visible is to run
cp -r /plugins/rabbitmq_delimiter_exchange-0.0.0/ /nix/store/y8ihxmnnjbmh3w268gjdgjzz9hw8bwfj-rabbitmq-server-3.9.14/plugins/
This is very naughty because it modifies the contents of the Nix store!
Another way to make the plugin visible is to run
export RABBITMQ_PLUGINS_DIR=/plugins

I have the feeling this should be really a parameter in the rabbitmq-server derivation or CLI tooling.
It's not easy to provide one defaults for everyone without any recourse to override it.


replace deprecated Buffer constructor

Fixes: https://github.com/dominictarr/json-buffer/issues/9

merged into 3.0.1

oh I thought this was the other thing with new Buffer(number) which was a security thing. new Buffer(string) may be depreciated but they'll never actually remove it, because it would break too much stuff. I've merged this, but I'm not interested in making such trivial changes to any other modules. (although changing new Buffer(number) to Buffer.alloc(number) is okay) there are just too many instances where I have done this and I have better things to do with my time.

I feel I should give a little more context: I have hundreds of modules, many that are used in various other things, but that I no longer use my self. I don't get anything out of maintaining them, it's not exciting to work on them anymore, and neither is there any financial reward. This is not a personal feedback on anyone, I'm just not motivated to maintain these modules anymore. This is an unsatisfying state of affairs for everyone, users of these modules and my self, but that is the situation that the state of the tools leaves us in.

@dominictarr this has been a fairly systematic PR. Basically,
git grep -nH 'new Buffer' | \
  awk -F ':' '{print $1;}' | \
  sort -u | \
  while read; do \
    sed -i"" -r "s/new Buffer[(]([^,'\"[]+)[)]/Buffer.alloc(\\1)/" "$REPLY" && \
    sed -i"" 's/new Buffer(/Buffer.from(/g' "$REPLY" ; \
  done

... and then going through the git diff by hand because it sometimes replaces with Buffer.alloc(...) when it should be replacing with Buffer.from(...).
If I run into any other modules that need this change, I will submit a similarly systematic PR.

yeah, I know it's trivial that is the point, it still takes ten minutes to do email, checkout clone, npm pub etc etc. it's just a waste of my time. please don't submit a PR. I guess if it's really important your company can contract me to look at this stuff. otherwise I'd rather ignore this stuff. This is not a reflection on you or anything like this, I just don't care about this stuff anymore, but unfortunately there is no easy way to put these modules up for adoption (in bulk) or similar.

@dominictarr OK, I understand.


Add version: taers232c.GAMADV-XTD3 version 6.77.08

Pull request has been created with WinGet Releaser v2 :rocket:
Microsoft Reviewers: Open in CodeFlow

@wingetbot run

/azp run


Docs logo has a broken link

The light and dark logo at docs.solanaagentkit.xyz is broken

Points to aws link which is not public - https://mintlify.s3.us-west-1.amazonaws.com/sendai-a2cf1bab/logo/dark.svg
This is what the link returns -
<Error>
AccessDenied
<Message>Access Denied</Message>
<RequestId>XXB8SCPV5A7X98ZS</RequestId>
<HostId>EKjaVgW48pr8zLfKj8ZySwfEM+NDQiu3Jm6uAVxIbFkOH9HJKKmlC8px+C2mOCYQ2S/j/ECGnMFYhCqyiCTICw==</HostId>
</Error>

cc: @thearyanag

Fixed !


Error on project creation

Unable to create file 'src/app/.env.ci error
➜  f213 cookiecutter --version
Cookiecutter 1.6.0 from /usr/local/lib/python3.7/site-packages (Python 3.7)

➜  f213 cookiecutter gh:f213/django
You've downloaded /Users/o/.cookiecutters/django before. Is it okay to delete and re-download it? [yes]: yes
project_slug [django]: f213
Unable to create file 'src/app/.env.ci'
Error message: 'random_ascii_string' is undefined
Context: {
    "cookiecutter": {
        "_copy_without_render": [
            ".circleci/config.yml"
        ],
        "_template": "gh:f213/django",
        "project_slug": "f213"
    }
}
➜  f213

random_ascii_string is available only after cookiecutter 1.7. You should upgrade it to the latest version: pip install --upgrade cookiecutter.


Unable to publish with image if tweet contains a URL

I have an image to tweet and the tweet text contains a URL.
I shorten the url using google url shortener before I add it to the tweet text.
The total length of the tweet text with the shortened URL in it is 131.
Tried both PublishTweetWithImage and publish with optional paramters  (Medias) both fail to publish.
If I simply remove the URL from the tweet text, the tweet succeeds and the image is published.
If I remove the image and publish just the text with the URL, the tweet succeeds.
It is only when a URL exists in the text of the tweet AND you try to publish with image that the tweet fails.
Note: failure is always indicated in the returned ITweet by:
'((Tweetinvi.Logic.Tweet)response).PublishedTweetLength' threw an exception of type 'System.InvalidOperationException'
Note also that I use TweetLength to verify that the tweet text is 131 just prior to the publish operation.  IOW: the url has already been shortened and the total text including the shortened URL is 131

Hi.
Thanks for reporting this issue.
Could you share your code please.
Also let me know which version of tweetinvi you are using.
Linvi

Version <IP_ADDRESS>
Did a little more investigation - it actually works if the tweet text length is under 118.
        // test
        byte[] image = System.IO.File.ReadAllBytes(@"C:\temp\testTweetImage.jpg");
        string text = "abcdefghijklmnopqrstuvwxy abcdefghijklmnopqrstuvwxy abcdefghijklmnopqrstuvwxy abcdefghijklmop" + "http://bit.ly/tinyurlwiki";
        int tl = text.TweetLength();
        var tweet = Tweet.PublishTweetWithImage(text, image);

play around by adding/subtracting characters to the last set of alphabet chars to see this succeed and fail.

Hi this is not the correct way to calculate the size with media. Please do the following:
byte[] image = System.IO.File.ReadAllBytes(@"C:\temp\testTweetImage.jpg");
string text = "abcdefghijklmnopqrstuvwxy abcdefghijklmnopqrstuvwxy abcdefghijklmnopqrstuvwxy abcdefghijklmop" + "http://bit.ly/tinyurlwiki";

var publishParameter = new PublishTweetParameters(text)
{
    MediaBinaries = { image }
};

var tl = Tweet.Length(publishParameter); // returns 141

I will try to improve this in future releases.

You can find the work item here.


Normalize all path separators to Unix-style /

In most cases, tar already wrote only / separators between path
components.  This is the only separator that works on Unix, and it's
acceptable on Windows too.  However, long paths in GNU headers were
writing the full path2bytes result without translation, which meant
Windows could write tar files with \ that aren't portable to Unix.
Now path2bytes will normalize all \ to / on Windows.
The new path_separators test makes sure that short and long paths with
UStar and GNU headers will round-trip correctly, meaning the path()
compares equal, while checking that path_bytes() doesn't contain \
path separators.  The long GNU path was writing \ on Windows before.

FWIW, I did find 1382ad45add193de43fee56add607c632f54dcbc which tweaked this behavior before, but that appears to be more about how paths were read.  And it sounds like the intention was that Windows would still translate to /, but the GNU long names appear to be a buggy loophole.  So here, I'm only translating how paths are converted into the tar file, and only on Windows.  If a Unix user wants to write a filename with \, they still can.

Everything here looks spot on, thanks so much @cuviper! I'll publish this with a new release.

Note that this doesn't actually affect cargo, ... yet. For weird historical reasons Cargo still uses ustar archives, but I think it's been ~years since that bug was fixed so this'll be a very welcome fix when it switches to gnu archives!


ShardedJedisPool.getResource blocked forever

Expected behavior
getResouce should return quickly under not heavy load environment
Actual behavior
getResource got blocked forever, and core dump shows more than 200 threads wait lock as the following:
4 "http-bio-1602-exec-696" daemon prio=10 tid=0x00007f5714422800 nid=0x3bdc waiting on condition [0x00007f53c84c2000]
5    java.lang.Thread.State: WAITING (parking)
6         at sun.misc.Unsafe.park(Native Method)
7         - parking to wait for  <0x00000006801fbb70> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
8         at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)
9         at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2043)
10         at org.apache.commons.pool2.impl.LinkedBlockingDeque.takeFirst(LinkedBlockingDeque.java:583)
11         at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:442)
12         at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:363)
13         at redis.clients.util.Pool.getResource(Pool.java:49)
14         at redis.clients.jedis.ShardedJedisPool.getResource(ShardedJedisPool.java:36)
15         at com.jd.jss.service.cache.RedisCacheServiceImpl.get(RedisCacheServiceImpl.java:62)
Steps to reproduce:
Please create a reproducible case of your problem. Make sure
that case repeats consistently and it's not random
1.
2.
3.
Redis / Jedis Configuration
<bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
    <property name="maxTotal">
        <value>20</value>
    </property>
    <property name="maxIdle">
        <value>5</value>
    </property>
    <property name="testOnBorrow" value="true"/>
    <property name="testOnReturn" value="true"/>
</bean>

<bean id="shardedJedisPool" class="com.jd.jss.service.cache.redis.clients.jedis"  scope="singleton">
    <constructor-arg index="0" ref="jedisPoolConfig" />
    <constructor-arg index="1">
        <list>
            <bean class="redis.clients.jedis.JedisShardInfo">
                <constructor-arg name="host" value="${redis.uri}" />
            </bean>
        </list>
    </constructor-arg>
</bean>

Jedis version:
2.9.0
Redis version:
3.2.11
Java version:
1.7
code snippet:
    String result = null;
    ShardedJedis shardedJedis = null;
    try{
        String redisKey = redisKey(object.getClass(), key);
        RunLog.LOG.info("{} set key={} into redis begin",PREFIX, redisKey);
        shardedJedis = shardedJedisPool.getResource();
        result = shardedJedis.setex(redisKey, expireInSec, JSON.toJSONString(object));
        RunLog.LOG.info("{} set key={} into redis end",PREFIX, redisKey);
    }finally {
        if (shardedJedis!=null)
            shardedJedis.close();
    }

the thread got stuck at getResource() method call.
The i monitor the resource occupy by override ShardedJedisPool class and ran testing under much higher load, but not reproduce the issue after more than one day.
the only difference is i replace shardedJedis.close() call with shardedJedisPool.returnResource(shardedJedis) (it's deprecated)

@henryZhangDev Try setMaxWaitMillis of GenericObjectPoolConfig.

Thanks, the root cause has been found, actually we forget to return resource to the pool, and also we set MaxWaitMillis in case to avoid issue in the futher, thanks a lot @sazzad16


helm: Remove duplicated key hostAliases

The original commit adding .Values.hostAliases was to support cluster
mesh installation, however, recently, clustermesh installation via helm
is more polished in #17851. Hence, it's better to remove one.
Relates: 18a5fa95cf0489d4075f3d4eb1d6a976bb0ca2ee
Relates: #17851
Signed-off-by: Tam Mach<EMAIL_ADDRESS>

ConformanceAKS is disabled, ci-l4lb is not required as per https://github.com/cilium/cilium/actions/runs/2542449087. All other tests are passed.
Marking this ready to merge.


Add Diff operator to BDD and BCDD

I might just be unable to find this function, but the binary diff operator (including operator overload for the - operator) is missing for oxidd::bdd_function and oxidd::bcdd_function. This operator is equivalent to f & ~g. With complement edges, one can safely do this using and and not; but without them, one needs a function to not compute/construct ~g.

Ah, it's called imp_strict.

Note that compared to diff, imp_strict has operands swapped. I’d say this is a weak point of the current API, we should provide diff (and all other set operators) as aliases to the respective operators on Boolean functions.

Yes, one can indeed interpret this issue as a missing alias.


Atom fatal error from app-root-path

In Atom Editor when using linter-tslint and codelyzer 2.0.0-beta.1 we're unable to lint files currently because app-root-path fails. I'm not sure why? But putting it inside the try catch to fail silently stops it from being broken.

Thanks for the PR! I'll include it as part of beta.2, which should be released in the next week or two.


Error during loading

Describe the bug
During the loading the connector mod didn't load correctly
Steps to reproduce
1- As indicated in the instructions, I downloaded the mod and also the dependencies.
2- Then start minecraft and when loading, the error came out.

Logs
https://gist.github.com/other-seki-arefake/6177ebeda1fb4c7a128d77cc66798a17
Additional context
when installing the connector mod, i've add a mod that needed dependencies (NiftyCarts). These were "forge config screen [Fabric]" and "forge config API port [Fabric]"

Looks to be an incompatibility in Forge config api port, that provides additional constructors for the ModConfig class, which don't exist on Forge. This causes problems when the Forge class is used in Connector rather than what the mod ships.

Marked forgeconfigapiport as incompatible


2021-09-05 v. 1.0.7: updated app build and GitHub Actions configs

Closed:

closed #78.

Codecov Report

Merging #84 (369619f) into master (8139570) will not change coverage.
The diff coverage is n/a.

:exclamation: Current head 369619f differs from pull request most recent head 377cacd. Consider uploading reports for the commit 377cacd to get more accurate results

@@           Coverage Diff           @@
##           master      #84   +/-   ##
=======================================
  Coverage   65.88%   65.88%
=======================================
  Files          53       53
  Lines        1199     1199
  Branches       53       53
=======================================
  Hits          790      790
  Misses        372      372
  Partials       37       37

Continue to review full report at Codecov.

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


Support for scenarios to integration test application modules

Working with application modules, and ones driven by @ApplicationEventListeners in particular introduces a couple of challenges:

Events stimulating the module need to be published in a transactional way. Thus, the test code is likely to require access to TransactionOperations and ApplicationEventPublisher.
As these events are usually handled asynchronously, an Awaitility pipeline will have to be set up.
Success or failure of an operation is usually determined by another event being published or some state change on the module being observed.
Additional verifications on the resulting event, the observed state changed, or stimulus result need to be performed

While all of this can be assembled using already existing abstractions, it would be nice if there was a way to formulate such scenarios in a readable API. An event-based scenario could look something like this:
scenario.publish(new ProductAdded(productId)) // <1>
  .andWaitAtMost(Duration.ofSeconds(2)) // <2>
  .forEventOfType(InventoryItemAdded.class) // <3>
  .toArriveAndVerify(it -> { // <4>
    assertThat(inventory.findByProductIdentifier(productId)).isPresent();
    assertThat(inventory.findById(it.id())).isPresent();
  });

<1> Stimulates the system through an event publication.
<2> (Optional) Customizations of the execution
<3> Define expectation by describing the event that's supposed to appear, optionally defining filters.
<4> (Optional) Formulate additional verifications. The most simple variant is toArrive().
Alternatively, the scenario could be described based on state changes.
scenario.stimulate(tx -> …) // <1>
  .forStateChange(() -> inventory.findByProductIdentifier(productId)) // <2>
  .andVerify(it -> { // <3>
    assertThat(it).…;
  });

<1> Would trigger some method of a module's service or the like. Access TransactionOperations to make sure that transactional event listeners are triggered for events potentially published during the operation.
<2> Inspect some state on the module. By default, accept a non-null (non-empty in the case of an Optional) as concluding.
<3> Additional verifications based on the value returned by the stimulus or expected changed state (out of <2>).

Find a bit of preliminary documentation here.

This looks very promising, can't wait to try it!
Is it already included in a snapshot version?

Available in 0.4 / 0.4.1.


Cassandra 12532 log statement

This supercedes #1299. Passes locally on Tyler's branch and HEAD on cassandra-3.0 cassandra-2.2 cassandra-2.1.
@thobbs, could you review please?

and if you're happy with it feel free to merge.

+1


MCloud command to pre-tokenize C4 and upload to OCI

Including a MCloud command that will pre-tokenize C4 and upload the dataset to OCI

@bcui19 mostly cosmetic changes, I put a default PREFIX because it's really easy for users to forget the trailing / and better to give them a default showcasing it. I also added more splits and reordered them so small ones finish first, so you can watch progress happening without thinking there's a hang.


Loading Python extension problem opens window including the following question: "Did you attach the CPU-Profile?"

Python Extensions do not load anymore. Window with the following questions appears: "Did you attach the CPU-Profile?"
Attached you can find my ms-python.python-unresponsive.cpuprofile.txt
Environment data

VS Code version: 1.55,2
Extension version: Python v2021.3.680753044 / Jupyter v2021.5.745244803
OS and version: Windows 10
Python version: Python 3.8 / Anaconda Navigator 1.10.0
Type of virtual environment used: conda

ms-python.python-unresponsive.cpuprofile.txt

Thanks for the bug report! We investigate issues in order based on priority and severity, which includes the impact it has on your ability to use the extension to do productive work, and the number of people affected. If other users come forward and leave a comment demonstrating they are seeing/reproducing the problem then we will raise this issue's priority.
Thanks for your understanding and patience!

Just by having a glance, it seems your issue is because of the new discovery experiment. Please add this setting in the User settings,
"python.experiments.optOutFrom": ["pythonDiscoveryModule"]
And see if it solves the issue. I'll be getting back in a few days as we're quite busy next few days. Please also check if installing an older version of the extension, and see if your problem happens?
You can follow the prompts from "Extensions: Install Specific Version of Extension..." in the command palette:

Or you can open the extensions side bar, click on the settings for the Python extension and pick "Install Another Version...":

Installing the oldest version of the extension solved the problem. However, I don't know why the other extension versions create problems...


Remove config reference in Peer

Removing config reference in Peer will help us in creating multiple peers easily.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

I will rebase to master after @MushMal change gets merged.


Project create form

Pull Request Description
Closes https://github.com/enso-org/cloud-v2/issues/480
Important Notes
None
Checklist
Please ensure that the following checklist has been satisfied before submitting the PR:

[x] The documentation has been updated, if necessary.
[x] Screenshots/screencasts have been attached, if there are any visual changes. For interactive or animated visual changes, a screencast is preferred.
[x] All code follows the
Scala,
Java,
and
Rust
style guides. In case you are using a language not listed above, follow the Rust style guide.
All code has been tested:

[x] Unit tests have been written where possible.
[x] If GUI codebase was changed, the GUI was tested when built using ./run ide build.

@somebody1234 my bad, we changed the idea. lets make the + just adds new project directly (the same action as New empty project)


Remove now-redundant release-drafter workflow

Codecov Report

Merging #11 (6a04ba0) into main (dd13fe7) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##              main       #11   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files            5         5
  Lines          296       296
  Branches        73        73
=========================================
  Hits           296       296

Continue to review full report at Codecov.

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